From 47703f9950004aea57bd8f31db69db0088639844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Fri, 2 Mar 2018 11:10:02 -0400 Subject: [PATCH 01/29] PCHR-3400: Change Workflow help text --- .../tasksassignments.php | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 0c439aec..8bd9c797 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -287,7 +287,7 @@ function _tasksassignments_moveCiviCaseAdminSubMenuItemsUnderTaskAdminSubMenu(&$ 'tasksassignments_administer', ['Case Types' => 'Workflow Types'] ); - + _tasksassignments_deleteAdministerSubMenu($administerMenuItems, 'CiviCase'); } @@ -337,7 +337,7 @@ function _tasksassignments_cloneMenuItemsInAdministerSubMenuAndChangeLabels(&$ad foreach ($menuItems as $item) { $itemID = $item['attributes']['navID']; - $item['attributes']['parentID'] = $subMenuTargetID; + $item['attributes']['parentID'] = $subMenuTargetID; if ($labelsMapping[$item['attributes']['name']]) { $item['attributes']['label'] = $labelsMapping[$item['attributes']['name']]; @@ -350,7 +350,7 @@ function _tasksassignments_cloneMenuItemsInAdministerSubMenuAndChangeLabels(&$ad /** * Deletes a sub menu of the given name from the Administer main menu * - * @param array $administerMenuItems + * @param array $administerMenuItems * @param string $subMenuName */ function _tasksassignments_deleteAdministerSubMenu(&$administerMenuItems, $subMenuName) { @@ -415,3 +415,32 @@ function tasksassignments_extensionsPageRedirect() { ); CRM_Utils_System::redirect($url); } + +/** + * Implements the alterAngular hook so it can modify the template for the + * Workflow Create/Edit screen. + * + * @param \Civi\Angular\Manager $angular + * @return \Civi\Angular\ChangeSet + */ +function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { + $changeSet = \Civi\Angular\ChangeSet::create('Workflow Modifications'); + + $changeSet->alterHtml('~/crmCaseType/edit.html', function (phpQueryObject $doc) { + _tasksAssignments_civicrm_alterAngular_change_workflow_help_text($doc); + }); + + $angular->add($changeSet); +} + +/** + * Modifies the help text for the Workflow Create/Edit screen. + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_civicrm_alterAngular_change_workflow_help_text(phpQueryObject $doc) { + $text = '

' . ts('Configure your workflow timelines below. Each workflow type can have several different task timelines. Each timeline allows you to set different tasks and documents which become part of your task list on your task dashboard. As such different timelines can be setup in the system if slightly different steps are required when the workflow is used for different staff types or situations. For example you may wish to configure a different joining timeline for head office staff as for regional staff.') . '

'; + $text .= '

' . ts('Workflows are normally used to manage joining and exiting processes but can be used for other processes too, such as a person going on maternity leave or moving region or location.') . '

'; + + $doc->find('.crmCaseType .help')->html($text); +} From 697ae8cd5e4c780626ea6480a0dbd703243297d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Fri, 2 Mar 2018 12:02:54 -0400 Subject: [PATCH 02/29] PCHR-3400: PR Feedback --- .../tasksassignments.php | 50 +++++++++++-------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 8bd9c797..ce8d82d1 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -268,6 +268,26 @@ function tasksassignments_civicrm_navigationMenu(&$params) { _tasksassignments_moveCiviCaseAdminSubMenuItemsUnderTaskAdminSubMenu($params); } +/** + * Implements the alterAngular hook so it can modify the template for the + * Workflow Create/Edit screen. + * + * @param \Civi\Angular\Manager $angular + * + * @return \Civi\Angular\ChangeSet + * + * @link https://docs.civicrm.org/dev/en/latest/framework/angular/changeset/ + */ +function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { + $changeSet = \Civi\Angular\ChangeSet::create('Workflow Modifications'); + + $changeSet->alterHtml('~/crmCaseType/edit.html', function (phpQueryObject $doc) { + _tasksAssignments_change_workflow_help_text($doc); + }); + + $angular->add($changeSet); +} + /** * Moves some of the items of the "Administer > Civi Case" sub menu under the "Administer > Tasks" sub menu * @@ -416,31 +436,21 @@ function tasksassignments_extensionsPageRedirect() { CRM_Utils_System::redirect($url); } -/** - * Implements the alterAngular hook so it can modify the template for the - * Workflow Create/Edit screen. - * - * @param \Civi\Angular\Manager $angular - * @return \Civi\Angular\ChangeSet - */ -function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { - $changeSet = \Civi\Angular\ChangeSet::create('Workflow Modifications'); - - $changeSet->alterHtml('~/crmCaseType/edit.html', function (phpQueryObject $doc) { - _tasksAssignments_civicrm_alterAngular_change_workflow_help_text($doc); - }); - - $angular->add($changeSet); -} - /** * Modifies the help text for the Workflow Create/Edit screen. * * @param phpQueryObject $doc */ -function _tasksAssignments_civicrm_alterAngular_change_workflow_help_text(phpQueryObject $doc) { - $text = '

' . ts('Configure your workflow timelines below. Each workflow type can have several different task timelines. Each timeline allows you to set different tasks and documents which become part of your task list on your task dashboard. As such different timelines can be setup in the system if slightly different steps are required when the workflow is used for different staff types or situations. For example you may wish to configure a different joining timeline for head office staff as for regional staff.') . '

'; - $text .= '

' . ts('Workflows are normally used to manage joining and exiting processes but can be used for other processes too, such as a person going on maternity leave or moving region or location.') . '

'; +function _tasksAssignments_change_workflow_help_text(phpQueryObject $doc) { + $text = '

' . ts('Configure your workflow timelines below. Each workflow type can have several + different task timelines. Each timeline allows you to set different tasks and documents which + become part of your task list on your task dashboard. As such different timelines can be setup + in the system if slightly different steps are required when the workflow is used for different + staff types or situations. For example you may wish to configure a different joining timeline + for head office staff as for regional staff.') . '

'; + $text .= '

' . ts('Workflows are normally used to manage joining and exiting processes but can + be used for other processes too, such as a person going on maternity leave or moving region or + location.') . '

'; $doc->find('.crmCaseType .help')->html($text); } From 6ccb633f8a41176802d73639e450e4672c9f82a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Sun, 4 Mar 2018 19:27:33 -0400 Subject: [PATCH 03/29] PCHR-3402: Remove non relevant tabs from workflows configuration --- .../tasksassignments.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index ce8d82d1..0fc72b64 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -283,6 +283,7 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { $changeSet->alterHtml('~/crmCaseType/edit.html', function (phpQueryObject $doc) { _tasksAssignments_change_workflow_help_text($doc); + _tasksAssignments_remove_non_civihr_tabs_from_workflow($doc); }); $angular->add($changeSet); @@ -454,3 +455,17 @@ function _tasksAssignments_change_workflow_help_text(phpQueryObject $doc) { $doc->find('.crmCaseType .help')->html($text); } + +/** + * Removes tabs that are not relevant for CiviHR from the workflow configuration screen. + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_remove_non_civihr_tabs_from_workflow (phpQueryObject $doc) { + $tabs = ['roles', 'statuses', 'actType']; + + foreach ($tabs as $tab) { + $doc->find('a[href=#acttab-' . $tab . ']')->remove(); + $doc->find('#acttab-' . $tab)->remove(); + } +} From 49a8728dc260b68f6a1bd93930b0317389bfdc26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Sun, 4 Mar 2018 20:06:21 -0400 Subject: [PATCH 04/29] PCHR-3403: Replace action dropdown with add timeline button --- .../tasksassignments.php | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 0fc72b64..75fbaad9 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -284,6 +284,7 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { $changeSet->alterHtml('~/crmCaseType/edit.html', function (phpQueryObject $doc) { _tasksAssignments_change_workflow_help_text($doc); _tasksAssignments_remove_non_civihr_tabs_from_workflow($doc); + _tasksAssignments_allow_only_add_timeline_action($doc); }); $angular->add($changeSet); @@ -469,3 +470,22 @@ function _tasksAssignments_remove_non_civihr_tabs_from_workflow (phpQueryObject $doc->find('#acttab-' . $tab)->remove(); } } + +/** + * Removes the Workflow configuration's actions dropdown and replaces it with a + * button that only allows the "Add timeline" action. + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_allow_only_add_timeline_action (phpQueryObject $doc) { + $actionDropdown = $doc->find('select[ng-model="newActivitySetWorkflow"]'); + $addTimelineBtn = ' + '; + + $actionDropdown->after($addTimelineBtn); + $actionDropdown->remove(); +} From caef6c46bbf18d954faf2489cf8d971f85e0356b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Tue, 6 Mar 2018 07:20:19 -0400 Subject: [PATCH 05/29] PCHR-3403: Move help text outside of case type form --- .../tasksassignments.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 75fbaad9..46eb416d 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -444,6 +444,8 @@ function tasksassignments_extensionsPageRedirect() { * @param phpQueryObject $doc */ function _tasksAssignments_change_workflow_help_text(phpQueryObject $doc) { + $helpBlock = $doc->find('.crmCaseType .help'); + $text = '

' . ts('Configure your workflow timelines below. Each workflow type can have several different task timelines. Each timeline allows you to set different tasks and documents which become part of your task list on your task dashboard. As such different timelines can be setup @@ -454,7 +456,9 @@ function _tasksAssignments_change_workflow_help_text(phpQueryObject $doc) { be used for other processes too, such as a person going on maternity leave or moving region or location.') . '

'; - $doc->find('.crmCaseType .help')->html($text); + $helpBlock->html($text); + // Places the help text outside of the case type form: + $helpBlock->insertBefore('.crmCaseType'); } /** From e272714d04d354a1afb78999fa07cb322ca1c791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Mon, 9 Apr 2018 00:16:40 -0400 Subject: [PATCH 06/29] PCHR-3405: Rename the case status for Ongoing and Resolved to In Progress and Completed --- .../CRM/Tasksassignments/Upgrader.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php index 32add8bc..bc16b8f3 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php @@ -761,6 +761,16 @@ public function upgrade_1033() { return TRUE; } + /* + * Renames the case status Ongoing and Resolved to In Progress and Completed. + */ + public function upgrade_1034() { + $this->_renameCaseStatus('Ongoing', 'In Progress'); + $this->_renameCaseStatus('Resolved', 'Completed'); + + return TRUE; + } + public function uninstall() { CRM_Core_DAO::executeQuery("DELETE FROM `civicrm_navigation` WHERE name IN ('tasksassignments', 'ta_dashboard_tasks', 'ta_dashboard_documents', 'ta_dashboard_calendar', 'ta_dashboard_keydates', 'tasksassignments_administer', 'ta_settings')"); CRM_Core_BAO_Navigation::resetNavigation(); @@ -842,4 +852,24 @@ private function _uninstallActivityTypes($component, array $types) { civicrm_api3('OptionValue', 'delete', array('id' => $id)); } } + + /** + * Renames the label for a case status + * + * @param string $fromLabel + * @param string $toLabel + */ + private function _renameCaseStatus($fromLabel, $toLabel) { + $optionValue = civicrm_api3('OptionValue', 'getsingle', [ + 'option_group_id.name' => 'case_status', + 'label' => $fromLabel, + 'is_reserved' => 1, + 'options' => [ 'limit' => 1 ], + ]); + + civicrm_api3('OptionValue', 'create', [ + 'id' => $optionValue['id'], + 'label' => $toLabel + ]); + } } From 469dfd5f3e6939110096e4eba5087f3ab0701162 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Mon, 9 Apr 2018 14:27:46 +0530 Subject: [PATCH 07/29] PCHR-3416: Hide reserved activity types --- .../CRM/Tasksassignments/Page/Options.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Page/Options.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Page/Options.php index 244fb382..b56c33de 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Page/Options.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Page/Options.php @@ -3,11 +3,25 @@ require_once 'CRM/Core/Page.php'; class CRM_Tasksassignments_Page_Options extends CRM_Admin_Page_Options { - + function run() { parent::run(); } - + + /** + * Browse all options. + */ + public function browse() { + parent::browse(); + + $optionValues = $this->get_template_vars('rows'); + $optionValues = array_filter($optionValues, function ($item) { + return $item['is_reserved'] == 0; + }); + + $this->assign('rows', $optionValues); + } + /** * Use the form name to create the tpl file name * @@ -20,7 +34,7 @@ function getTemplateFileName() { 'CRM_Admin_Page_Options' ) . '.tpl'; } - + function editForm() { //return self::$_gName ? 'CRM_Admin_Form_Options' : 'CRM_Admin_Form_OptionGroup'; if (self::$_gName === 'activity_type') { From f6abf78e8e63b9b1798187d549bfa4f99710c69e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Mon, 9 Apr 2018 11:04:40 -0400 Subject: [PATCH 08/29] PCHR-3405: PR Feedback --- .../CRM/Tasksassignments/Upgrader.php | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php index bc16b8f3..b76478c0 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php @@ -761,12 +761,14 @@ public function upgrade_1033() { return TRUE; } - /* + /** * Renames the case status Ongoing and Resolved to In Progress and Completed. + * + * @return bool */ public function upgrade_1034() { - $this->_renameCaseStatus('Ongoing', 'In Progress'); - $this->_renameCaseStatus('Resolved', 'Completed'); + $this->_relabelCaseStatus('Ongoing', 'In Progress'); + $this->_relabelCaseStatus('Resolved', 'Completed'); return TRUE; } @@ -859,17 +861,20 @@ private function _uninstallActivityTypes($component, array $types) { * @param string $fromLabel * @param string $toLabel */ - private function _renameCaseStatus($fromLabel, $toLabel) { - $optionValue = civicrm_api3('OptionValue', 'getsingle', [ + private function _relabelCaseStatus($fromLabel, $toLabel) { + $result = civicrm_api3('OptionValue', 'get', [ 'option_group_id.name' => 'case_status', 'label' => $fromLabel, 'is_reserved' => 1, + 'sequential' => 1, 'options' => [ 'limit' => 1 ], ]); - civicrm_api3('OptionValue', 'create', [ - 'id' => $optionValue['id'], - 'label' => $toLabel - ]); + if ($result['count']) { + civicrm_api3('OptionValue', 'create', [ + 'id' => $result['values'][0]['id'], + 'label' => $toLabel + ]); + } } } From 949befe6c97b0652efba611b95e97b5023600e51 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Fri, 13 Apr 2018 13:48:32 +0530 Subject: [PATCH 09/29] PCHR-3529: POC --- package-lock.json | 362 ++++++++++++++++++ package.json | 3 + .../gulpfile.js | 35 +- .../js/dist/crm-tasks-workflows.min.js | 2 + .../js/src/crm-tasks-workflows.js | 10 + .../casetype.extended.controller.js | 45 +++ .../decorators/crm-add-name.decorator.js | 64 ++++ .../crm-tasks-workflows.controllers.js | 7 + .../modules/crm-tasks-workflows.decorators.js | 7 + .../tasksassignments.php | 11 + 10 files changed, 537 insertions(+), 9 deletions(-) create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.controllers.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js diff --git a/package-lock.json b/package-lock.json index ec99de47..c83f76f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3,6 +3,51 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "@gulp-sourcemaps/identity-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz", + "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=", + "dev": true, + "requires": { + "acorn": "5.4.1", + "css": "2.2.1", + "normalize-path": "2.1.1", + "source-map": "0.5.7", + "through2": "2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "2.1.1", + "through2": "2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + } + } + }, "JSONStream": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", @@ -1656,6 +1701,23 @@ "typedarray": "0.0.6" } }, + "concat-with-sourcemaps": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.5.tgz", + "integrity": "sha512-YtnS0VEY+e2Khzsey/6mra9EoM6h/5gxaC0e3mcHpA5yfDxafhygytNmcJWodvUgyXzSiL5MSkPO6bQGgfliHw==", + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "connect": { "version": "3.6.5", "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz", @@ -1829,6 +1891,53 @@ "randomfill": "1.0.3" } }, + "css": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", + "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "source-map": "0.1.43", + "source-map-resolve": "0.3.1", + "urix": "0.1.0" + }, + "dependencies": { + "atob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", + "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "source-map-resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "dev": true, + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", + "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", + "dev": true + } + } + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -1844,6 +1953,15 @@ "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.42" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1901,6 +2019,17 @@ "ms": "2.0.0" } }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "requires": { + "debug": "3.1.0", + "memoizee": "0.4.12", + "object-assign": "4.1.1" + } + }, "debug-log": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", @@ -2085,6 +2214,12 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, "detective": { "version": "4.7.1", "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", @@ -2446,6 +2581,50 @@ "is-symbol": "1.0.1" } }, + "es5-ext": { + "version": "0.10.42", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", + "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-symbol": "3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -2743,6 +2922,16 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42" + } + }, "eventemitter3": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", @@ -4837,6 +5026,51 @@ } } }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "1.0.5", + "through2": "2.0.3", + "vinyl": "2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "2.1.2", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.0.0", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + } + } + }, "gulp-rename": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", @@ -4935,6 +5169,48 @@ } } }, + "gulp-sourcemaps": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", + "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "1.0.1", + "@gulp-sourcemaps/map-sources": "1.0.0", + "acorn": "5.4.1", + "convert-source-map": "1.1.3", + "css": "2.2.1", + "debug-fabulous": "1.1.0", + "detect-newline": "2.1.0", + "graceful-fs": "4.1.11", + "source-map": "0.6.1", + "strip-bom-string": "1.0.0", + "through2": "2.0.3" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "gulp-uglify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", + "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", + "dev": true, + "requires": { + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash": "4.17.5", + "make-error-cause": "1.2.2", + "through2": "2.0.3", + "uglify-js": "3.3.21", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, "gulp-util": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", @@ -6964,6 +7240,15 @@ "yallist": "2.1.2" } }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "requires": { + "es5-ext": "0.10.42" + } + }, "mailcomposer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz", @@ -7012,6 +7297,21 @@ } } }, + "make-error": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", + "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "1.3.4" + } + }, "make-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", @@ -7118,6 +7418,22 @@ "mimic-fn": "1.2.0" } }, + "memoizee": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.12.tgz", + "integrity": "sha512-sprBu6nwxBWBvBOh5v2jcsGqiGLlL2xr2dLub3vR8dnE8YB17omwtm/0NSHl8jjNbcsJd5GMWJAnTSVe/O0Wfg==", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-weak-map": "2.0.2", + "event-emitter": "0.3.5", + "is-promise": "2.1.0", + "lru-queue": "0.1.0", + "next-tick": "1.0.0", + "timers-ext": "0.1.5" + } + }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", @@ -7484,6 +7800,12 @@ "dev": true, "optional": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", @@ -10396,6 +10718,12 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", @@ -10970,6 +11298,16 @@ "process": "0.11.10" } }, + "timers-ext": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", + "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", + "dev": true, + "requires": { + "es5-ext": "0.10.42", + "next-tick": "1.0.0" + } + }, "timespan": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", @@ -11221,6 +11559,30 @@ "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", "dev": true }, + "uglify-js": { + "version": "3.3.21", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.21.tgz", + "integrity": "sha512-uy82472lH8tshK3jS3c5IFb5MmNKd/5qyBd0ih8sM42L3jWvxnE339U9gZU1zufnLVs98Stib9twq8dLm2XYCA==", + "dev": true, + "requires": { + "commander": "2.15.1", + "source-map": "0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", diff --git a/package.json b/package.json index e297420c..9161031a 100644 --- a/package.json +++ b/package.json @@ -45,10 +45,13 @@ "civicrm-cv": "^0.1.2", "gulp": "^3.9.1", "gulp-clean": "^0.4.0", + "gulp-concat": "^2.6.1", "gulp-rename": "^1.2.2", "gulp-replace": "^0.6.1", "gulp-sass": "^3.1.0", "gulp-sass-bulk-import": "^1.0.1", + "gulp-sourcemaps": "^2.6.4", + "gulp-uglify": "^3.0.0", "husky": "^0.14.3", "jasmine-core": "^2.9.1", "karma": "^2.0.0", diff --git a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js index 9ee6c686..a2f9d1b9 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js +++ b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js @@ -1,5 +1,6 @@ var gulp = require('gulp'); var clean = require('gulp-clean'); +var concat = require('gulp-concat'); var rename = require('gulp-rename'); var replace = require('gulp-replace'); var karma = require('karma'); @@ -7,6 +8,8 @@ var exec = require('child_process').exec; var path = require('path'); var fs = require('fs'); var argv = require('yargs').argv; +var uglify = require('gulp-uglify'); +var sourcemaps = require('gulp-sourcemaps'); gulp.task('sass', function (done) { // The app style relies on compass's gems, so we need to rely on it @@ -17,6 +20,20 @@ gulp.task('sass', function (done) { }); }); +gulp.task('js', function () { + return gulp.src([ + 'js/src/crm-tasks-workflows/modules/*.js', + 'js/src/crm-tasks-workflows/controllers/*.js', + 'js/src/crm-tasks-workflows/decorators/*.js', + 'js/src/crm-tasks-workflows.js' + ]) + .pipe(sourcemaps.init()) + .pipe(concat('crm-tasks-workflows.min.js')) + .pipe(uglify()) + .pipe(sourcemaps.write()) + .pipe(gulp.dest('js/dist/')); +}); + gulp.task('requirejs-bundle', function (done) { exec('r.js -o js/build.js', function (err, stdout, stderr) { err && err.code && console.log(stdout); @@ -80,8 +97,8 @@ var test = (function () { for: function (srcFile) { var srcFileNoExt = path.basename(srcFile, path.extname(srcFile)); var testFile = srcFile - .replace('src/tasks-assignments/', 'test/') - .replace(srcFileNoExt + '.js', srcFileNoExt + '.spec.js'); + .replace('src/tasks-assignments/', 'test/') + .replace(srcFileNoExt + '.js', srcFileNoExt + '.spec.js'); try { var stats = fs.statSync(testFile); @@ -104,14 +121,14 @@ var test = (function () { var configFile = 'karma.' + path.basename(testFile, path.extname(testFile)) + '.conf.temp.js'; gulp.src(path.join(__dirname, '/js/karma.conf.js')) - .pipe(replace('*.spec.js', path.basename(testFile))) - .pipe(rename(configFile)) - .pipe(gulp.dest(path.join(__dirname, '/js'))) - .on('end', function () { - runServer(configFile, function () { - gulp.src(path.join(__dirname, '/js/', configFile), { read: false }).pipe(clean()); + .pipe(replace('*.spec.js', path.basename(testFile))) + .pipe(rename(configFile)) + .pipe(gulp.dest(path.join(__dirname, '/js'))) + .on('end', function () { + runServer(configFile, function () { + gulp.src(path.join(__dirname, '/js/', configFile), { read: false }).pipe(clean()); + }); }); - }); } }; })(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js new file mode 100644 index 00000000..0ddf01ec --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -0,0 +1,2 @@ +!function(e){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(e){"use strict";angular.module("crm-tasks-workflows.decorators",[])}(),function(e){"use strict";function t(e,t,o){e.debug("Controller: CaseTypeExtendedController"),t.activityTypeOptions=[],o("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(e){t.activityTypeOptions=e.values.map(function(e){return{id:e.name,text:e.label,icon:e.icon}})})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$log","$scope","crmApi"]}(),function(e){"use strict";function t(e){return e[0].compile=function(){return function(t,e,o){var n=CRM.$("input",e);function r(){CRM.$(n).crmSelect2({data:t[o.crmOptions],createSearchChoice:function(e){return{id:e,text:e+" ("+ts("new")+")"}},createSearchChoicePosition:"bottom",placeholder:o.placeholder})}r(),t.$watch(o.crmOptions,r),CRM.$(n).on("select2-selecting",function(e){t[o.crmVar]=e.val,t.$evalAsync(o.crmOnAdd),t.$evalAsync("_resetSelection()"),e.preventDefault()}),t._resetSelection=function(){CRM.$(n).select2("close"),CRM.$(n).select2("val",""),t[o.crmVar]=""}}},e}angular.module("crm-tasks-workflows.decorators").config(["$provide",function(e){e.decorator("crmAddNameDirective",t)}]),t.$inject=["$delegate"]}(),angular.module("crm-tasks-workflows",["crmCaseType"].concat(["crm-tasks-workflows.controllers","crm-tasks-workflows.decorators"])); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLWFkZC1uYW1lLmRlY29yYXRvci5qcyIsImNybS10YXNrcy13b3JrZmxvd3MuanMiXSwibmFtZXMiOlsiYW5ndWxhciIsIm1vZHVsZSIsIkNhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsIklOIiwic2VxdWVudGlhbCIsIm9wdGlvbnMiLCJzb3J0IiwibGltaXQiLCJ0aGVuIiwiZGF0YSIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiY29udHJvbGxlciIsIiRpbmplY3QiLCJDcm1BZGROYW1lRGVjb3JhdG9yIiwiJGRlbGVnYXRlIiwiY29tcGlsZSIsInNjb3BlIiwiZWxlbWVudCIsImF0dHJzIiwiaW5wdXQiLCJDUk0iLCIkIiwiaW5pdFNlbGVjdDIiLCJjcm1TZWxlY3QyIiwiY3JtT3B0aW9ucyIsImNyZWF0ZVNlYXJjaENob2ljZSIsInRlcm0iLCJ0cyIsImNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCIkd2F0Y2giLCJvbiIsImUiLCJjcm1WYXIiLCJ2YWwiLCIkZXZhbEFzeW5jIiwiY3JtT25BZGQiLCJwcmV2ZW50RGVmYXVsdCIsIl9yZXNldFNlbGVjdGlvbiIsInNlbGVjdDIiLCJjb25maWciLCIkcHJvdmlkZSIsImRlY29yYXRvciIsImNvbmNhdCJdLCJtYXBwaW5ncyI6IkNBRUEsU0FBQUEsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGtDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBR0FBLFFBREFDLE9BQUEsaUNBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFTQSxTQUFBRSxFQUFBQyxFQUFBQyxFQUFBQyxHQUNBRixFQUFBRyxNQUFBLDBDQUVBRixFQUFBRyxvQkFBQSxHQVlBRixFQUFBLGNBQUEsTUFBQSxDQUNBRyxnQkFBQSxnQkFDQUMsYUFBQSxDQUFBQyxHQUFBLENBQUEsV0FBQSxpQkFDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxLQUVBQyxLQUFBLFNBQUFDLEdBQ0FaLEVBQUFHLG9CQUFBUyxFQUFBQyxPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxVQU9BeEIsUUF2Q0FDLE9BQUEsbUNBQ0F3QixXQUFBLDZCQUFBdkIsR0FFQUEsRUFBQXdCLFFBQUEsQ0FDQSxPQUFBLFNBQUEsVUFQQSxHQ0FBLFNBQUExQixHQUNBLGFBV0EsU0FBQTJCLEVBQUFDLEdBNkNBLE9BNUNBQSxFQUFBLEdBRUFDLFFBQUEsV0FDQSxPQUFBLFNBQUFDLEVBQUFDLEVBQUFDLEdBQ0EsSUFBQUMsRUFBQUMsSUFBQUMsRUFBQSxRQUFBSixHQXVCQSxTQUFBSyxJQUNBRixJQUFBQyxFQUFBRixHQUFBSSxXQUFBLENBQ0FyQixLQUFBYyxFQUFBRSxFQUFBTSxZQUNBQyxtQkFBQSxTQUFBQyxHQUNBLE1BQUEsQ0FBQXBCLEdBQUFvQixFQUFBbEIsS0FBQWtCLEVBQUEsS0FBQUMsR0FBQSxPQUFBLE1BRUFDLDJCQUFBLFNBQ0FDLFlBQUFYLEVBQUFXLGNBM0JBUCxJQWdDQU4sRUFBQWMsT0FBQVosRUFBQU0sV0FBQUYsR0FwQkFGLElBQUFDLEVBQUFGLEdBQUFZLEdBQUEsb0JBQUEsU0FBQUMsR0FDQWhCLEVBQUFFLEVBQUFlLFFBQUFELEVBQUFFLElBQ0FsQixFQUFBbUIsV0FBQWpCLEVBQUFrQixVQUNBcEIsRUFBQW1CLFdBQUEscUJBQ0FILEVBQUFLLG1CQVhBckIsRUFBQXNCLGdCQUFBLFdBQ0FsQixJQUFBQyxFQUFBRixHQUFBb0IsUUFBQSxTQUNBbkIsSUFBQUMsRUFBQUYsR0FBQW9CLFFBQUEsTUFBQSxJQUNBdkIsRUFBQUUsRUFBQWUsUUFBQSxNQTZCQW5CLEVBSUE1QixRQTFEQUMsT0FBQSxrQ0FDQXFELE9BQUEsQ0FBQSxXQUFBLFNBQUFDLEdBQ0FBLEVBQUFDLFVBQUEsc0JBQUE3QixNQUdBQSxFQUFBRCxRQUFBLENBQ0EsYUFUQSxHQ09BMUIsUUFKQUMsT0FBQSxzQkFGQSxDQUFBLGVBRUF3RCxPQUFBLENBQ0Esa0NBQ0EiLCJmaWxlIjoiY3JtLXRhc2tzLXdvcmtmbG93cy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJywgW10pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMnLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnKVxuICAgIC5jb250cm9sbGVyKCdDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicsIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyKTtcblxuICBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlci4kaW5qZWN0ID0gW1xuICAgICckbG9nJywgJyRzY29wZScsICdjcm1BcGknXG4gIF07XG5cbiAgZnVuY3Rpb24gQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIgKCRsb2csICRzY29wZSwgY3JtQXBpKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gW107XG5cbiAgICAoZnVuY3Rpb24gaW5pdCAoKSB7XG4gICAgICBmZXRjaEFjdGl2aXR5VHlwZXMoKTtcbiAgICB9KSgpO1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggYWN0aXZpdHkgdHlwZXMgd2hpY2ggYXJlIGNvbXBvbmVudHMgb2YgQ2l2aVRhc2sgb3IgQ2l2aURvY3VtZW50XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZldGNoQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICByZXR1cm4gY3JtQXBpKCdPcHRpb25WYWx1ZScsICdnZXQnLCB7XG4gICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICBjb21wb25lbnRfaWQ6IHsnSU4nOiBbJ0NpdmlUYXNrJywgJ0NpdmlEb2N1bWVudCddfSxcbiAgICAgICAgc2VxdWVudGlhbDogMSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICBsaW1pdDogMFxuICAgICAgICB9XG4gICAgICB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gZGF0YS52YWx1ZXMubWFwKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IHR5cGUubmFtZSwgdGV4dDogdHlwZS5sYWJlbCwgaWNvbjogdHlwZS5pY29uIH07XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciwgdHMgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3JzJylcbiAgICAuY29uZmlnKFsnJHByb3ZpZGUnLCBmdW5jdGlvbiAoJHByb3ZpZGUpIHtcbiAgICAgICRwcm92aWRlLmRlY29yYXRvcignY3JtQWRkTmFtZURpcmVjdGl2ZScsIENybUFkZE5hbWVEZWNvcmF0b3IpO1xuICAgIH1dKTtcblxuICBDcm1BZGROYW1lRGVjb3JhdG9yLiRpbmplY3QgPSBbXG4gICAgJyRkZWxlZ2F0ZSdcbiAgXTtcblxuICBmdW5jdGlvbiBDcm1BZGROYW1lRGVjb3JhdG9yICgkZGVsZWdhdGUpIHtcbiAgICB2YXIgZGlyZWN0aXZlID0gJGRlbGVnYXRlWzBdO1xuXG4gICAgZGlyZWN0aXZlLmNvbXBpbGUgPSBmdW5jdGlvbiBjb21waWxlICgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoc2NvcGUsIGVsZW1lbnQsIGF0dHJzKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IENSTS4kKCdpbnB1dCcsIGVsZW1lbnQpO1xuXG4gICAgICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgICAgICBpbml0U2VsZWN0MigpO1xuICAgICAgICAgIGluaXRXYXRjaGVycygpO1xuICAgICAgICAgIGluaXRFdmVudHMoKTtcbiAgICAgICAgfSkoKTtcblxuICAgICAgICBzY29wZS5fcmVzZXRTZWxlY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLnNlbGVjdDIoJ2Nsb3NlJyk7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLnNlbGVjdDIoJ3ZhbCcsICcnKTtcbiAgICAgICAgICBzY29wZVthdHRycy5jcm1WYXJdID0gJyc7XG4gICAgICAgIH07XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdEV2ZW50cyAoKSB7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLm9uKCdzZWxlY3QyLXNlbGVjdGluZycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBzY29wZVthdHRycy5jcm1WYXJdID0gZS52YWw7XG4gICAgICAgICAgICBzY29wZS4kZXZhbEFzeW5jKGF0dHJzLmNybU9uQWRkKTtcbiAgICAgICAgICAgIHNjb3BlLiRldmFsQXN5bmMoJ19yZXNldFNlbGVjdGlvbigpJyk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpbml0U2VsZWN0MiAoKSB7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLmNybVNlbGVjdDIoe1xuICAgICAgICAgICAgZGF0YTogc2NvcGVbYXR0cnMuY3JtT3B0aW9uc10sXG4gICAgICAgICAgICBjcmVhdGVTZWFyY2hDaG9pY2U6IGZ1bmN0aW9uICh0ZXJtKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7aWQ6IHRlcm0sIHRleHQ6IHRlcm0gKyAnICgnICsgdHMoJ25ldycpICsgJyknfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjcmVhdGVTZWFyY2hDaG9pY2VQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogYXR0cnMucGxhY2Vob2xkZXJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluaXRXYXRjaGVycyAoKSB7XG4gICAgICAgICAgc2NvcGUuJHdhdGNoKGF0dHJzLmNybU9wdGlvbnMsIGluaXRTZWxlY3QyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuICRkZWxlZ2F0ZTtcbiAgfVxuXG4gIHJldHVybiBDcm1BZGROYW1lRGVjb3JhdG9yO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgdmFyIGNvcmVNb2R1bGVzID0gWydjcm1DYXNlVHlwZSddO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzJywgY29yZU1vZHVsZXMuY29uY2F0KFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9ycydcbiAgXSkpO1xufSkoYW5ndWxhcik7XG4iXX0= diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js new file mode 100644 index 00000000..cf31e0bb --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js @@ -0,0 +1,10 @@ +/* global angular */ + +(function (angular) { + var coreModules = ['crmCaseType']; + + angular.module('crm-tasks-workflows', coreModules.concat([ + 'crm-tasks-workflows.controllers', + 'crm-tasks-workflows.decorators' + ])); +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js new file mode 100644 index 00000000..4709fe25 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -0,0 +1,45 @@ +/* global angular */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.controllers') + .controller('CaseTypeExtendedController', CaseTypeExtendedController); + + CaseTypeExtendedController.$inject = [ + '$log', '$scope', 'crmApi' + ]; + + function CaseTypeExtendedController ($log, $scope, crmApi) { + $log.debug('Controller: CaseTypeExtendedController'); + + $scope.activityTypeOptions = []; + + (function init () { + fetchActivityTypes(); + })(); + + /** + * Fetch activity types which are components of CiviTask or CiviDocument + * + * @return {Promise} + */ + function fetchActivityTypes () { + return crmApi('OptionValue', 'get', { + option_group_id: 'activity_type', + component_id: {'IN': ['CiviTask', 'CiviDocument']}, + sequential: 1, + options: { + sort: 'name', + limit: 0 + } + }).then(function (data) { + $scope.activityTypeOptions = data.values.map(function (type) { + return { id: type.name, text: type.label, icon: type.icon }; + }); + }); + } + } + + return CaseTypeExtendedController; +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js new file mode 100644 index 00000000..a5b3a814 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js @@ -0,0 +1,64 @@ +/* global angular, ts */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.decorators') + .config(['$provide', function ($provide) { + $provide.decorator('crmAddNameDirective', CrmAddNameDecorator); + }]); + + CrmAddNameDecorator.$inject = [ + '$delegate' + ]; + + function CrmAddNameDecorator ($delegate) { + var directive = $delegate[0]; + + directive.compile = function compile () { + return function (scope, element, attrs) { + var input = CRM.$('input', element); + + (function init () { + initSelect2(); + initWatchers(); + initEvents(); + })(); + + scope._resetSelection = function () { + CRM.$(input).select2('close'); + CRM.$(input).select2('val', ''); + scope[attrs.crmVar] = ''; + }; + + function initEvents () { + CRM.$(input).on('select2-selecting', function (e) { + scope[attrs.crmVar] = e.val; + scope.$evalAsync(attrs.crmOnAdd); + scope.$evalAsync('_resetSelection()'); + e.preventDefault(); + }); + } + + function initSelect2 () { + CRM.$(input).crmSelect2({ + data: scope[attrs.crmOptions], + createSearchChoice: function (term) { + return {id: term, text: term + ' (' + ts('new') + ')'}; + }, + createSearchChoicePosition: 'bottom', + placeholder: attrs.placeholder + }); + } + + function initWatchers () { + scope.$watch(attrs.crmOptions, initSelect2); + } + }; + }; + + return $delegate; + } + + return CrmAddNameDecorator; +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.controllers.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.controllers.js new file mode 100644 index 00000000..72bd57cf --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.controllers.js @@ -0,0 +1,7 @@ +/* global angular */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.controllers', []); +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js new file mode 100644 index 00000000..51fda66d --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js @@ -0,0 +1,7 @@ +/* global angular */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.decorators', []); +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 46eb416d..ee9658d0 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -285,11 +285,22 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { _tasksAssignments_change_workflow_help_text($doc); _tasksAssignments_remove_non_civihr_tabs_from_workflow($doc); _tasksAssignments_allow_only_add_timeline_action($doc); + + $doc->find('.crmCaseType') + ->attr('ng-controller', 'CaseTypeExtendedController'); }); $angular->add($changeSet); } +function tasksAssignments_civicrm_angularModules(&$angularModules) { + $angularModules['crm-tasks-workflows'] = array( + 'ext' => 'civicrm', + 'js' => array( + 'tools/extensions/civihr_tasks/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js') + ); +} + /** * Moves some of the items of the "Administer > Civi Case" sub menu under the "Administer > Tasks" sub menu * From 4d2d04e837657b69f45c46f075652cf7ebf1803f Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Fri, 13 Apr 2018 14:40:36 +0530 Subject: [PATCH 10/29] PCHR-3529: Change dropdown placeholder --- .../tasksassignments.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index ee9658d0..63deb5b9 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -290,6 +290,10 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { ->attr('ng-controller', 'CaseTypeExtendedController'); }); + $changeSet->alterHtml('~/crmCaseType/timelineTable.html', function (phpQueryObject $doc) { + _tasksAssignments_change_add_activity_dropdown_placeholder($doc); + }); + $angular->add($changeSet); } @@ -449,6 +453,17 @@ function tasksassignments_extensionsPageRedirect() { CRM_Utils_System::redirect($url); } +/** + * Modifies the placeholder of Add Activity Dropdown + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_change_add_activity_dropdown_placeholder(phpQueryObject $doc) { + $addActivityDropDown = $doc->find('[crm-options=activityTypeOptions]'); + $newPlaceHolder = 'Add task or document'; + + $addActivityDropDown->attr('placeholder', $newPlaceHolder); +} /** * Modifies the help text for the Workflow Create/Edit screen. * From 9d0ae8091c04eb6e089c04e5e1036f50ba260aa8 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Fri, 13 Apr 2018 14:57:59 +0530 Subject: [PATCH 11/29] PCHR-3529: Move core dependies --- .../js/dist/crm-tasks-workflows.min.js | 4 ++-- .../js/src/crm-tasks-workflows.js | 7 ++++--- .../modules/crm-tasks-workflows.core.js | 9 +++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.core.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index 0ddf01ec..97a0e90e 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(e){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(e){"use strict";angular.module("crm-tasks-workflows.decorators",[])}(),function(e){"use strict";function t(e,t,o){e.debug("Controller: CaseTypeExtendedController"),t.activityTypeOptions=[],o("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(e){t.activityTypeOptions=e.values.map(function(e){return{id:e.name,text:e.label,icon:e.icon}})})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$log","$scope","crmApi"]}(),function(e){"use strict";function t(e){return e[0].compile=function(){return function(t,e,o){var n=CRM.$("input",e);function r(){CRM.$(n).crmSelect2({data:t[o.crmOptions],createSearchChoice:function(e){return{id:e,text:e+" ("+ts("new")+")"}},createSearchChoicePosition:"bottom",placeholder:o.placeholder})}r(),t.$watch(o.crmOptions,r),CRM.$(n).on("select2-selecting",function(e){t[o.crmVar]=e.val,t.$evalAsync(o.crmOnAdd),t.$evalAsync("_resetSelection()"),e.preventDefault()}),t._resetSelection=function(){CRM.$(n).select2("close"),CRM.$(n).select2("val",""),t[o.crmVar]=""}}},e}angular.module("crm-tasks-workflows.decorators").config(["$provide",function(e){e.decorator("crmAddNameDirective",t)}]),t.$inject=["$delegate"]}(),angular.module("crm-tasks-workflows",["crmCaseType"].concat(["crm-tasks-workflows.controllers","crm-tasks-workflows.decorators"])); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLWFkZC1uYW1lLmRlY29yYXRvci5qcyIsImNybS10YXNrcy13b3JrZmxvd3MuanMiXSwibmFtZXMiOlsiYW5ndWxhciIsIm1vZHVsZSIsIkNhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsIklOIiwic2VxdWVudGlhbCIsIm9wdGlvbnMiLCJzb3J0IiwibGltaXQiLCJ0aGVuIiwiZGF0YSIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiY29udHJvbGxlciIsIiRpbmplY3QiLCJDcm1BZGROYW1lRGVjb3JhdG9yIiwiJGRlbGVnYXRlIiwiY29tcGlsZSIsInNjb3BlIiwiZWxlbWVudCIsImF0dHJzIiwiaW5wdXQiLCJDUk0iLCIkIiwiaW5pdFNlbGVjdDIiLCJjcm1TZWxlY3QyIiwiY3JtT3B0aW9ucyIsImNyZWF0ZVNlYXJjaENob2ljZSIsInRlcm0iLCJ0cyIsImNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCIkd2F0Y2giLCJvbiIsImUiLCJjcm1WYXIiLCJ2YWwiLCIkZXZhbEFzeW5jIiwiY3JtT25BZGQiLCJwcmV2ZW50RGVmYXVsdCIsIl9yZXNldFNlbGVjdGlvbiIsInNlbGVjdDIiLCJjb25maWciLCIkcHJvdmlkZSIsImRlY29yYXRvciIsImNvbmNhdCJdLCJtYXBwaW5ncyI6IkNBRUEsU0FBQUEsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGtDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBR0FBLFFBREFDLE9BQUEsaUNBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFTQSxTQUFBRSxFQUFBQyxFQUFBQyxFQUFBQyxHQUNBRixFQUFBRyxNQUFBLDBDQUVBRixFQUFBRyxvQkFBQSxHQVlBRixFQUFBLGNBQUEsTUFBQSxDQUNBRyxnQkFBQSxnQkFDQUMsYUFBQSxDQUFBQyxHQUFBLENBQUEsV0FBQSxpQkFDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxLQUVBQyxLQUFBLFNBQUFDLEdBQ0FaLEVBQUFHLG9CQUFBUyxFQUFBQyxPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxVQU9BeEIsUUF2Q0FDLE9BQUEsbUNBQ0F3QixXQUFBLDZCQUFBdkIsR0FFQUEsRUFBQXdCLFFBQUEsQ0FDQSxPQUFBLFNBQUEsVUFQQSxHQ0FBLFNBQUExQixHQUNBLGFBV0EsU0FBQTJCLEVBQUFDLEdBNkNBLE9BNUNBQSxFQUFBLEdBRUFDLFFBQUEsV0FDQSxPQUFBLFNBQUFDLEVBQUFDLEVBQUFDLEdBQ0EsSUFBQUMsRUFBQUMsSUFBQUMsRUFBQSxRQUFBSixHQXVCQSxTQUFBSyxJQUNBRixJQUFBQyxFQUFBRixHQUFBSSxXQUFBLENBQ0FyQixLQUFBYyxFQUFBRSxFQUFBTSxZQUNBQyxtQkFBQSxTQUFBQyxHQUNBLE1BQUEsQ0FBQXBCLEdBQUFvQixFQUFBbEIsS0FBQWtCLEVBQUEsS0FBQUMsR0FBQSxPQUFBLE1BRUFDLDJCQUFBLFNBQ0FDLFlBQUFYLEVBQUFXLGNBM0JBUCxJQWdDQU4sRUFBQWMsT0FBQVosRUFBQU0sV0FBQUYsR0FwQkFGLElBQUFDLEVBQUFGLEdBQUFZLEdBQUEsb0JBQUEsU0FBQUMsR0FDQWhCLEVBQUFFLEVBQUFlLFFBQUFELEVBQUFFLElBQ0FsQixFQUFBbUIsV0FBQWpCLEVBQUFrQixVQUNBcEIsRUFBQW1CLFdBQUEscUJBQ0FILEVBQUFLLG1CQVhBckIsRUFBQXNCLGdCQUFBLFdBQ0FsQixJQUFBQyxFQUFBRixHQUFBb0IsUUFBQSxTQUNBbkIsSUFBQUMsRUFBQUYsR0FBQW9CLFFBQUEsTUFBQSxJQUNBdkIsRUFBQUUsRUFBQWUsUUFBQSxNQTZCQW5CLEVBSUE1QixRQTFEQUMsT0FBQSxrQ0FDQXFELE9BQUEsQ0FBQSxXQUFBLFNBQUFDLEdBQ0FBLEVBQUFDLFVBQUEsc0JBQUE3QixNQUdBQSxFQUFBRCxRQUFBLENBQ0EsYUFUQSxHQ09BMUIsUUFKQUMsT0FBQSxzQkFGQSxDQUFBLGVBRUF3RCxPQUFBLENBQ0Esa0NBQ0EiLCJmaWxlIjoiY3JtLXRhc2tzLXdvcmtmbG93cy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJywgW10pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMnLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnKVxuICAgIC5jb250cm9sbGVyKCdDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicsIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyKTtcblxuICBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlci4kaW5qZWN0ID0gW1xuICAgICckbG9nJywgJyRzY29wZScsICdjcm1BcGknXG4gIF07XG5cbiAgZnVuY3Rpb24gQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIgKCRsb2csICRzY29wZSwgY3JtQXBpKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gW107XG5cbiAgICAoZnVuY3Rpb24gaW5pdCAoKSB7XG4gICAgICBmZXRjaEFjdGl2aXR5VHlwZXMoKTtcbiAgICB9KSgpO1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggYWN0aXZpdHkgdHlwZXMgd2hpY2ggYXJlIGNvbXBvbmVudHMgb2YgQ2l2aVRhc2sgb3IgQ2l2aURvY3VtZW50XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZldGNoQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICByZXR1cm4gY3JtQXBpKCdPcHRpb25WYWx1ZScsICdnZXQnLCB7XG4gICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICBjb21wb25lbnRfaWQ6IHsnSU4nOiBbJ0NpdmlUYXNrJywgJ0NpdmlEb2N1bWVudCddfSxcbiAgICAgICAgc2VxdWVudGlhbDogMSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICBsaW1pdDogMFxuICAgICAgICB9XG4gICAgICB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gZGF0YS52YWx1ZXMubWFwKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IHR5cGUubmFtZSwgdGV4dDogdHlwZS5sYWJlbCwgaWNvbjogdHlwZS5pY29uIH07XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciwgdHMgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3JzJylcbiAgICAuY29uZmlnKFsnJHByb3ZpZGUnLCBmdW5jdGlvbiAoJHByb3ZpZGUpIHtcbiAgICAgICRwcm92aWRlLmRlY29yYXRvcignY3JtQWRkTmFtZURpcmVjdGl2ZScsIENybUFkZE5hbWVEZWNvcmF0b3IpO1xuICAgIH1dKTtcblxuICBDcm1BZGROYW1lRGVjb3JhdG9yLiRpbmplY3QgPSBbXG4gICAgJyRkZWxlZ2F0ZSdcbiAgXTtcblxuICBmdW5jdGlvbiBDcm1BZGROYW1lRGVjb3JhdG9yICgkZGVsZWdhdGUpIHtcbiAgICB2YXIgZGlyZWN0aXZlID0gJGRlbGVnYXRlWzBdO1xuXG4gICAgZGlyZWN0aXZlLmNvbXBpbGUgPSBmdW5jdGlvbiBjb21waWxlICgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoc2NvcGUsIGVsZW1lbnQsIGF0dHJzKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IENSTS4kKCdpbnB1dCcsIGVsZW1lbnQpO1xuXG4gICAgICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgICAgICBpbml0U2VsZWN0MigpO1xuICAgICAgICAgIGluaXRXYXRjaGVycygpO1xuICAgICAgICAgIGluaXRFdmVudHMoKTtcbiAgICAgICAgfSkoKTtcblxuICAgICAgICBzY29wZS5fcmVzZXRTZWxlY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLnNlbGVjdDIoJ2Nsb3NlJyk7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLnNlbGVjdDIoJ3ZhbCcsICcnKTtcbiAgICAgICAgICBzY29wZVthdHRycy5jcm1WYXJdID0gJyc7XG4gICAgICAgIH07XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdEV2ZW50cyAoKSB7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLm9uKCdzZWxlY3QyLXNlbGVjdGluZycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBzY29wZVthdHRycy5jcm1WYXJdID0gZS52YWw7XG4gICAgICAgICAgICBzY29wZS4kZXZhbEFzeW5jKGF0dHJzLmNybU9uQWRkKTtcbiAgICAgICAgICAgIHNjb3BlLiRldmFsQXN5bmMoJ19yZXNldFNlbGVjdGlvbigpJyk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpbml0U2VsZWN0MiAoKSB7XG4gICAgICAgICAgQ1JNLiQoaW5wdXQpLmNybVNlbGVjdDIoe1xuICAgICAgICAgICAgZGF0YTogc2NvcGVbYXR0cnMuY3JtT3B0aW9uc10sXG4gICAgICAgICAgICBjcmVhdGVTZWFyY2hDaG9pY2U6IGZ1bmN0aW9uICh0ZXJtKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7aWQ6IHRlcm0sIHRleHQ6IHRlcm0gKyAnICgnICsgdHMoJ25ldycpICsgJyknfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjcmVhdGVTZWFyY2hDaG9pY2VQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogYXR0cnMucGxhY2Vob2xkZXJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluaXRXYXRjaGVycyAoKSB7XG4gICAgICAgICAgc2NvcGUuJHdhdGNoKGF0dHJzLmNybU9wdGlvbnMsIGluaXRTZWxlY3QyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuICRkZWxlZ2F0ZTtcbiAgfVxuXG4gIHJldHVybiBDcm1BZGROYW1lRGVjb3JhdG9yO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgdmFyIGNvcmVNb2R1bGVzID0gWydjcm1DYXNlVHlwZSddO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzJywgY29yZU1vZHVsZXMuY29uY2F0KFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9ycydcbiAgXSkpO1xufSkoYW5ndWxhcik7XG4iXX0= +!function(e){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(e){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(e){"use strict";angular.module("crm-tasks-workflows.decorators",[])}(),function(e){"use strict";function t(e,t,o){e.debug("Controller: CaseTypeExtendedController"),t.activityTypeOptions=[],o("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(e){t.activityTypeOptions=e.values.map(function(e){return{id:e.name,text:e.label,icon:e.icon}})})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$log","$scope","crmApi"]}(),function(e){"use strict";function t(e){return e[0].compile=function(){return function(t,e,o){var r=CRM.$("input",e);function c(){CRM.$(r).crmSelect2({data:t[o.crmOptions],createSearchChoice:function(e){return{id:e,text:e+" ("+ts("new")+")"}},createSearchChoicePosition:"bottom",placeholder:o.placeholder})}c(),t.$watch(o.crmOptions,c),CRM.$(r).on("select2-selecting",function(e){t[o.crmVar]=e.val,t.$evalAsync(o.crmOnAdd),t.$evalAsync("_resetSelection()"),e.preventDefault()}),t._resetSelection=function(){CRM.$(r).select2("close"),CRM.$(r).select2("val",""),t[o.crmVar]=""}}},e}angular.module("crm-tasks-workflows.decorators").config(["$provide",function(e){e.decorator("crmAddNameDirective",t)}]),t.$inject=["$delegate"]}(),function(e){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers","crm-tasks-workflows.decorators"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLWFkZC1uYW1lLmRlY29yYXRvci5qcyIsImNybS10YXNrcy13b3JrZmxvd3MuanMiXSwibmFtZXMiOlsiYW5ndWxhciIsIm1vZHVsZSIsIkNhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsIklOIiwic2VxdWVudGlhbCIsIm9wdGlvbnMiLCJzb3J0IiwibGltaXQiLCJ0aGVuIiwiZGF0YSIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiY29udHJvbGxlciIsIiRpbmplY3QiLCJDcm1BZGROYW1lRGVjb3JhdG9yIiwiJGRlbGVnYXRlIiwiY29tcGlsZSIsInNjb3BlIiwiZWxlbWVudCIsImF0dHJzIiwiaW5wdXQiLCJDUk0iLCIkIiwiaW5pdFNlbGVjdDIiLCJjcm1TZWxlY3QyIiwiY3JtT3B0aW9ucyIsImNyZWF0ZVNlYXJjaENob2ljZSIsInRlcm0iLCJ0cyIsImNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCIkd2F0Y2giLCJvbiIsImUiLCJjcm1WYXIiLCJ2YWwiLCIkZXZhbEFzeW5jIiwiY3JtT25BZGQiLCJwcmV2ZW50RGVmYXVsdCIsIl9yZXNldFNlbGVjdGlvbiIsInNlbGVjdDIiLCJjb25maWciLCIkcHJvdmlkZSIsImRlY29yYXRvciJdLCJtYXBwaW5ncyI6IkNBRUEsU0FBQUEsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGtDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBS0FBLFFBSEFDLE9BQUEsMkJBQUEsQ0FDQSxnQkFKQSxHQ0FBLFNBQUFELEdBQ0EsYUFHQUEsUUFEQUMsT0FBQSxpQ0FBQSxJQUhBLEdDQUEsU0FBQUQsR0FDQSxhQVNBLFNBQUFFLEVBQUFDLEVBQUFDLEVBQUFDLEdBQ0FGLEVBQUFHLE1BQUEsMENBRUFGLEVBQUFHLG9CQUFBLEdBWUFGLEVBQUEsY0FBQSxNQUFBLENBQ0FHLGdCQUFBLGdCQUNBQyxhQUFBLENBQUFDLEdBQUEsQ0FBQSxXQUFBLGlCQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLEtBRUFDLEtBQUEsU0FBQUMsR0FDQVosRUFBQUcsb0JBQUFTLEVBQUFDLE9BQUFDLElBQUEsU0FBQUMsR0FDQSxNQUFBLENBQUFDLEdBQUFELEVBQUFFLEtBQUFDLEtBQUFILEVBQUFJLE1BQUFDLEtBQUFMLEVBQUFLLFVBT0F4QixRQXZDQUMsT0FBQSxtQ0FDQXdCLFdBQUEsNkJBQUF2QixHQUVBQSxFQUFBd0IsUUFBQSxDQUNBLE9BQUEsU0FBQSxVQVBBLEdDQUEsU0FBQTFCLEdBQ0EsYUFXQSxTQUFBMkIsRUFBQUMsR0E2Q0EsT0E1Q0FBLEVBQUEsR0FFQUMsUUFBQSxXQUNBLE9BQUEsU0FBQUMsRUFBQUMsRUFBQUMsR0FDQSxJQUFBQyxFQUFBQyxJQUFBQyxFQUFBLFFBQUFKLEdBdUJBLFNBQUFLLElBQ0FGLElBQUFDLEVBQUFGLEdBQUFJLFdBQUEsQ0FDQXJCLEtBQUFjLEVBQUFFLEVBQUFNLFlBQ0FDLG1CQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBcEIsR0FBQW9CLEVBQUFsQixLQUFBa0IsRUFBQSxLQUFBQyxHQUFBLE9BQUEsTUFFQUMsMkJBQUEsU0FDQUMsWUFBQVgsRUFBQVcsY0EzQkFQLElBZ0NBTixFQUFBYyxPQUFBWixFQUFBTSxXQUFBRixHQXBCQUYsSUFBQUMsRUFBQUYsR0FBQVksR0FBQSxvQkFBQSxTQUFBQyxHQUNBaEIsRUFBQUUsRUFBQWUsUUFBQUQsRUFBQUUsSUFDQWxCLEVBQUFtQixXQUFBakIsRUFBQWtCLFVBQ0FwQixFQUFBbUIsV0FBQSxxQkFDQUgsRUFBQUssbUJBWEFyQixFQUFBc0IsZ0JBQUEsV0FDQWxCLElBQUFDLEVBQUFGLEdBQUFvQixRQUFBLFNBQ0FuQixJQUFBQyxFQUFBRixHQUFBb0IsUUFBQSxNQUFBLElBQ0F2QixFQUFBRSxFQUFBZSxRQUFBLE1BNkJBbkIsRUFJQTVCLFFBMURBQyxPQUFBLGtDQUNBcUQsT0FBQSxDQUFBLFdBQUEsU0FBQUMsR0FDQUEsRUFBQUMsVUFBQSxzQkFBQTdCLE1BR0FBLEVBQUFELFFBQUEsQ0FDQSxhQVRBLEdDQUEsU0FBQTFCLEdBQ0EsYUFPQUEsUUFMQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLGtDQUNBLG1DQU5BIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9ycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycpXG4gICAgLmNvbnRyb2xsZXIoJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJywgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIpO1xuXG4gIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyLiRpbmplY3QgPSBbXG4gICAgJyRsb2cnLCAnJHNjb3BlJywgJ2NybUFwaSdcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGxvZywgJHNjb3BlLCBjcm1BcGkpIHtcbiAgICAkbG9nLmRlYnVnKCdDb250cm9sbGVyOiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicpO1xuXG4gICAgJHNjb3BlLmFjdGl2aXR5VHlwZU9wdGlvbnMgPSBbXTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpO1xuICAgIH0pKCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhY3Rpdml0eSB0eXBlcyB3aGljaCBhcmUgY29tcG9uZW50cyBvZiBDaXZpVGFzayBvciBDaXZpRG9jdW1lbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZmV0Y2hBY3Rpdml0eVR5cGVzICgpIHtcbiAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgb3B0aW9uX2dyb3VwX2lkOiAnYWN0aXZpdHlfdHlwZScsXG4gICAgICAgIGNvbXBvbmVudF9pZDogeydJTic6IFsnQ2l2aVRhc2snLCAnQ2l2aURvY3VtZW50J119LFxuICAgICAgICBzZXF1ZW50aWFsOiAxLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogJ25hbWUnLFxuICAgICAgICAgIGxpbWl0OiAwXG4gICAgICAgIH1cbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgJHNjb3BlLmFjdGl2aXR5VHlwZU9wdGlvbnMgPSBkYXRhLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgICByZXR1cm4geyBpZDogdHlwZS5uYW1lLCB0ZXh0OiB0eXBlLmxhYmVsLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXI7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyLCB0cyAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMnKVxuICAgIC5jb25maWcoWyckcHJvdmlkZScsIGZ1bmN0aW9uICgkcHJvdmlkZSkge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCdjcm1BZGROYW1lRGlyZWN0aXZlJywgQ3JtQWRkTmFtZURlY29yYXRvcik7XG4gICAgfV0pO1xuXG4gIENybUFkZE5hbWVEZWNvcmF0b3IuJGluamVjdCA9IFtcbiAgICAnJGRlbGVnYXRlJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENybUFkZE5hbWVEZWNvcmF0b3IgKCRkZWxlZ2F0ZSkge1xuICAgIHZhciBkaXJlY3RpdmUgPSAkZGVsZWdhdGVbMF07XG5cbiAgICBkaXJlY3RpdmUuY29tcGlsZSA9IGZ1bmN0aW9uIGNvbXBpbGUgKCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChzY29wZSwgZWxlbWVudCwgYXR0cnMpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gQ1JNLiQoJ2lucHV0JywgZWxlbWVudCk7XG5cbiAgICAgICAgKGZ1bmN0aW9uIGluaXQgKCkge1xuICAgICAgICAgIGluaXRTZWxlY3QyKCk7XG4gICAgICAgICAgaW5pdFdhdGNoZXJzKCk7XG4gICAgICAgICAgaW5pdEV2ZW50cygpO1xuICAgICAgICB9KSgpO1xuXG4gICAgICAgIHNjb3BlLl9yZXNldFNlbGVjdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBDUk0uJChpbnB1dCkuc2VsZWN0MignY2xvc2UnKTtcbiAgICAgICAgICBDUk0uJChpbnB1dCkuc2VsZWN0MigndmFsJywgJycpO1xuICAgICAgICAgIHNjb3BlW2F0dHJzLmNybVZhcl0gPSAnJztcbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiBpbml0RXZlbnRzICgpIHtcbiAgICAgICAgICBDUk0uJChpbnB1dCkub24oJ3NlbGVjdDItc2VsZWN0aW5nJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHNjb3BlW2F0dHJzLmNybVZhcl0gPSBlLnZhbDtcbiAgICAgICAgICAgIHNjb3BlLiRldmFsQXN5bmMoYXR0cnMuY3JtT25BZGQpO1xuICAgICAgICAgICAgc2NvcGUuJGV2YWxBc3luYygnX3Jlc2V0U2VsZWN0aW9uKCknKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluaXRTZWxlY3QyICgpIHtcbiAgICAgICAgICBDUk0uJChpbnB1dCkuY3JtU2VsZWN0Mih7XG4gICAgICAgICAgICBkYXRhOiBzY29wZVthdHRycy5jcm1PcHRpb25zXSxcbiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaENob2ljZTogZnVuY3Rpb24gKHRlcm0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtpZDogdGVybSwgdGV4dDogdGVybSArICcgKCcgKyB0cygnbmV3JykgKyAnKSd9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBhdHRycy5wbGFjZWhvbGRlclxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdFdhdGNoZXJzICgpIHtcbiAgICAgICAgICBzY29wZS4kd2F0Y2goYXR0cnMuY3JtT3B0aW9ucywgaW5pdFNlbGVjdDIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gJGRlbGVnYXRlO1xuICB9XG5cbiAgcmV0dXJuIENybUFkZE5hbWVEZWNvcmF0b3I7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MnLCBbXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnLFxuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iXX0= diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js index cf31e0bb..ace81f4d 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js @@ -1,10 +1,11 @@ /* global angular */ (function (angular) { - var coreModules = ['crmCaseType']; + 'use strict'; - angular.module('crm-tasks-workflows', coreModules.concat([ + angular.module('crm-tasks-workflows', [ + 'crm-tasks-workflows.core', 'crm-tasks-workflows.controllers', 'crm-tasks-workflows.decorators' - ])); + ]); })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.core.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.core.js new file mode 100644 index 00000000..40215d30 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.core.js @@ -0,0 +1,9 @@ +/* global angular */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.core', [ + 'crmCaseType' + ]); +})(angular); From ef5aa9ae9fac108c92f502944da2418a463becc8 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Fri, 13 Apr 2018 15:19:55 +0530 Subject: [PATCH 12/29] PCHR-3529: Fix tasks --- .../gulpfile.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js index a2f9d1b9..140b108b 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js +++ b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js @@ -20,7 +20,7 @@ gulp.task('sass', function (done) { }); }); -gulp.task('js', function () { +gulp.task('js-crm', function () { return gulp.src([ 'js/src/crm-tasks-workflows/modules/*.js', 'js/src/crm-tasks-workflows/controllers/*.js', @@ -34,7 +34,7 @@ gulp.task('js', function () { .pipe(gulp.dest('js/dist/')); }); -gulp.task('requirejs-bundle', function (done) { +gulp.task('js-requirejs-bundle', function (done) { exec('r.js -o js/build.js', function (err, stdout, stderr) { err && err.code && console.log(stdout); done(); @@ -43,7 +43,16 @@ gulp.task('requirejs-bundle', function (done) { gulp.task('watch', function () { gulp.watch('scss/**/*.scss', ['sass']); - gulp.watch('js/src/**/*.js', ['requirejs-bundle']).on('change', function (file) { + gulp.watch([ + 'js/src/tasks-assignments.js', + 'js/src/tasks-assignments.js/**/*.js' + ], ['js-requirejs-bundle']).on('change', function (file) { + try { test.for(file.path); } catch (ex) { test.all(); } + }); + gulp.watch([ + 'js/src/crm-tasks-workflows.js', + 'js/src/crm-tasks-workflows/**/*.js' + ], ['js-crm']).on('change', function (file) { try { test.for(file.path); } catch (ex) { test.all(); } }); gulp.watch(['js/test/**/*.js', '!js/test/mocks/**/*.js', '!js/test/test-main.js']).on('change', function (file) { @@ -55,7 +64,7 @@ gulp.task('test', function (done) { test.all(); }); -gulp.task('default', ['requirejs-bundle', 'sass', 'test', 'watch']); +gulp.task('default', ['js-crm', 'js-requirejs-bundle', 'sass', 'test', 'watch']); var test = (function () { /** From 74b3dbf9c3ccfe0e6915b66bdebd782b1125a09a Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Fri, 13 Apr 2018 15:30:12 +0530 Subject: [PATCH 13/29] PCHR-3529: Move T&A test files --- .../gulpfile.js | 2 +- .../js/karma.conf.js | 4 +- .../assignments.controller.spec.js | 0 .../document-list.controller.spec.js | 0 .../controllers/document.controller.spec.js | 0 .../controllers/main.controller.spec.js | 0 .../modal/modal-assignment.controller.spec.js | 4 +- .../modal/modal-document.controller.spec.js | 0 .../modal/modal-task.controller.spec.js | 0 .../controllers/tasks-list.controller.spec.js | 0 .../filters/date-field.filter.spec.js | 0 .../filters/date-type.spec.js | 0 .../filters/ownership.filter.spec.js | 0 .../mocks/data/app-settings.data.js | 0 .../mocks/data/assignment.data.js | 0 .../mocks/data/contact.data.js | 0 .../mocks/data/document.data.js | 0 .../mocks/data/key-dates.js | 0 .../mocks/data/task.data.js | 0 .../fabricators/assignment.fabricator.js | 0 .../mocks/fabricators/contact.fabricator.js | 0 .../mocks/fabricators/document.fabricator.js | 0 .../mocks/fabricators/file.fabricator.js | 0 .../mocks/fabricators/task.fabricator.js | 0 .../services/assignment.service.spec.js | 0 .../services/contact.service.spec.js | 0 .../services/document.service.spec.js | 2 +- .../services/settings.service.spec.js | 0 .../services/task.service.spec.js | 0 .../js/test/tasks-assignments/test-main.js | 46 +++++++++++++++++++ .../js/test/test-main.js | 46 ------------------- 31 files changed, 52 insertions(+), 52 deletions(-) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/assignments.controller.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/document-list.controller.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/document.controller.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/main.controller.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/modal/modal-assignment.controller.spec.js (99%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/modal/modal-document.controller.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/modal/modal-task.controller.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/controllers/tasks-list.controller.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/filters/date-field.filter.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/filters/date-type.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/filters/ownership.filter.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/data/app-settings.data.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/data/assignment.data.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/data/contact.data.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/data/document.data.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/data/key-dates.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/data/task.data.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/fabricators/assignment.fabricator.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/fabricators/contact.fabricator.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/fabricators/document.fabricator.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/fabricators/file.fabricator.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/mocks/fabricators/task.fabricator.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/services/assignment.service.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/services/contact.service.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/services/document.service.spec.js (99%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/services/settings.service.spec.js (100%) rename uk.co.compucorp.civicrm.tasksassignments/js/test/{ => tasks-assignments}/services/task.service.spec.js (100%) create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/test-main.js delete mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/test-main.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js index 140b108b..dec55a61 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js +++ b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js @@ -55,7 +55,7 @@ gulp.task('watch', function () { ], ['js-crm']).on('change', function (file) { try { test.for(file.path); } catch (ex) { test.all(); } }); - gulp.watch(['js/test/**/*.js', '!js/test/mocks/**/*.js', '!js/test/test-main.js']).on('change', function (file) { + gulp.watch(['js/test/**/*.js', '!js/test/mocks/**/*.js', '!js/test/tasks-assignments/test-main.js']).on('change', function (file) { test.single(file.path); }); }); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/karma.conf.js b/uk.co.compucorp.civicrm.tasksassignments/js/karma.conf.js index 70fe1f65..ca221530 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/karma.conf.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/karma.conf.js @@ -34,7 +34,7 @@ module.exports = function (config) { { pattern: extPath + '/js/src/tasks-assignments/**/*.js', included: false }, // the mocked components files - { pattern: extPath + '/js/test/mocks/**/*.js', included: false }, + { pattern: extPath + '/js/test/tasks-assignments/mocks/**/*.js', included: false }, // the test files { pattern: extPath + '/js/test/**/*.spec.js', included: false }, @@ -43,7 +43,7 @@ module.exports = function (config) { extPath + '/views/**/*.html', // the requireJS config file that bootstraps the whole test suite - extPath + '/js/test/test-main.js' + extPath + '/js/test/tasks-assignments/test-main.js' ], exclude: [ extPath + '/js/src/tasks-assignments.js' diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/assignments.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/assignments.controller.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/assignments.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/assignments.controller.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/document-list.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/document-list.controller.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/document-list.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/document-list.controller.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/document.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/document.controller.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/document.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/document.controller.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/main.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/main.controller.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/main.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/main.controller.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/modal/modal-assignment.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/modal/modal-assignment.controller.spec.js similarity index 99% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/modal/modal-assignment.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/modal/modal-assignment.controller.spec.js index 8a38c0bf..a286866f 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/modal/modal-assignment.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/modal/modal-assignment.controller.spec.js @@ -251,7 +251,7 @@ define([ describe('Assignment Type cache', function () { var caseTypeId; - beforeEach(function (){ + beforeEach(function () { var mockedTypes = assignmentFabricator.assignmentTypes(); caseTypeId = Object.keys(mockedTypes)[0]; @@ -259,7 +259,7 @@ define([ scope.assignment.subject = ''; scope.assignment.case_type_id = caseTypeId; - $rootScope.cache.assignmentType.obj[caseTypeId] = assignmentFabricator.assignmentTypes()[caseTypeId] + $rootScope.cache.assignmentType.obj[caseTypeId] = assignmentFabricator.assignmentTypes()[caseTypeId]; // remove the activit sets to avoid triggering another watcher $rootScope.cache.assignmentType.obj[caseTypeId].definition.activitySets = []; diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/modal/modal-document.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/modal/modal-document.controller.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/modal/modal-document.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/modal/modal-document.controller.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/modal/modal-task.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/modal/modal-task.controller.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/modal/modal-task.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/modal/modal-task.controller.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/tasks-list.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/tasks-list.controller.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/controllers/tasks-list.controller.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/controllers/tasks-list.controller.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/filters/date-field.filter.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/filters/date-field.filter.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/filters/date-field.filter.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/filters/date-field.filter.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/filters/date-type.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/filters/date-type.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/filters/date-type.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/filters/date-type.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/filters/ownership.filter.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/filters/ownership.filter.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/filters/ownership.filter.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/filters/ownership.filter.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/app-settings.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/app-settings.data.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/app-settings.data.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/app-settings.data.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/assignment.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/assignment.data.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/assignment.data.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/assignment.data.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/contact.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/contact.data.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/contact.data.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/contact.data.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/document.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/document.data.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/document.data.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/document.data.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/key-dates.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/key-dates.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/key-dates.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/key-dates.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/task.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/task.data.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/data/task.data.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/data/task.data.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/assignment.fabricator.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/assignment.fabricator.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/assignment.fabricator.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/assignment.fabricator.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/contact.fabricator.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/contact.fabricator.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/contact.fabricator.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/contact.fabricator.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/document.fabricator.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/document.fabricator.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/document.fabricator.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/document.fabricator.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/file.fabricator.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/file.fabricator.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/file.fabricator.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/file.fabricator.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/task.fabricator.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/task.fabricator.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/mocks/fabricators/task.fabricator.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/mocks/fabricators/task.fabricator.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/services/assignment.service.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/assignment.service.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/services/assignment.service.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/assignment.service.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/services/contact.service.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/contact.service.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/services/contact.service.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/contact.service.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/services/document.service.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/document.service.spec.js similarity index 99% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/services/document.service.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/document.service.spec.js index 5c8bad26..ed9711e9 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/services/document.service.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/document.service.spec.js @@ -42,7 +42,7 @@ define([ Document.save({ action: 'create' }, {json: documentMock.single() || {}} - ); + ); requestBody = Document.save.calls.argsFor(0)[1]; $httpBackend.flush(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/services/settings.service.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/settings.service.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/services/settings.service.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/settings.service.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/services/task.service.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/task.service.spec.js similarity index 100% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/services/task.service.spec.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/task.service.spec.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/test-main.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/test-main.js new file mode 100644 index 00000000..7bebfaf8 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/test-main.js @@ -0,0 +1,46 @@ +var TEST_REGEXP = /(spec|test)\.js$/i; +var allTestFiles = []; +var mocksPath = CRM.tasksAssignments.extensionPath + '/js/test/tasks-assignments/mocks'; +var srcPath = CRM.tasksAssignments.extensionPath + '/js/src/tasks-assignments'; + +Object.keys(window.__karma__.files).forEach(function (file) { + if (TEST_REGEXP.test(file)) { + allTestFiles.push(file); + } +}); + +require.config({ + deps: allTestFiles, + waitSeconds: 60, + paths: { + 'tasks-assignments': srcPath, + 'tasks-assignments/vendor/angular-bootstrap-calendar': srcPath + '/vendor/angular/angular-bootstrap-calendar-tpls-custom', + 'tasks-assignments/vendor/angular-checklist-model': srcPath + '/vendor/angular/checklist-model', + 'tasks-assignments/vendor/angular-router': srcPath + '/vendor/angular/angular-ui-router', + 'tasks-assignments/vendor/angular-select': srcPath + '/vendor/angular/select', + 'tasks-assignments/vendor/angular-xeditable': srcPath + '/vendor/angular/xeditable', + 'tasks-assignments/vendor/angular-xeditable-civi': srcPath + '/vendor/angular/xeditable-civi', + 'tasks-assignments/vendor/text-angular': srcPath + '/vendor/angular/textAngular.min', + 'tasks-assignments/vendor/text-angular-rangy': srcPath + '/vendor/angular/textAngular-rangy.min', + 'tasks-assignments/vendor/text-angular-sanitize': srcPath + '/vendor/angular/textAngular-sanitize.min', + 'mocks': mocksPath + }, + shim: { + 'tasks-assignments/vendor/angular-xeditable-civi': { + deps: [ + 'tasks-assignments/vendor/angular-xeditable', + 'tasks-assignments/vendor/angular-select', + 'tasks-assignments/vendor/text-angular' + ] + }, + 'tasks-assignments/vendor/text-angular': { + deps: [ + 'tasks-assignments/vendor/text-angular-rangy', + 'tasks-assignments/vendor/text-angular-sanitize' + ] + } + }, + callback: function () { + window.__karma__.start(); + } +}); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/test-main.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/test-main.js deleted file mode 100644 index d3aade61..00000000 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/test-main.js +++ /dev/null @@ -1,46 +0,0 @@ -var TEST_REGEXP = /(spec|test)\.js$/i; -var allTestFiles = []; -var mocksPath = CRM.tasksAssignments.extensionPath + '/js/test/mocks'; -var srcPath = CRM.tasksAssignments.extensionPath + '/js/src/tasks-assignments'; - -Object.keys(window.__karma__.files).forEach(function(file) { - if (TEST_REGEXP.test(file)) { - allTestFiles.push(file); - } -}); - -require.config({ - deps: allTestFiles, - waitSeconds: 60, - paths: { - 'tasks-assignments': srcPath, - 'tasks-assignments/vendor/angular-bootstrap-calendar': srcPath + '/vendor/angular/angular-bootstrap-calendar-tpls-custom', - 'tasks-assignments/vendor/angular-checklist-model': srcPath + '/vendor/angular/checklist-model', - 'tasks-assignments/vendor/angular-router': srcPath + '/vendor/angular/angular-ui-router', - 'tasks-assignments/vendor/angular-select': srcPath + '/vendor/angular/select', - 'tasks-assignments/vendor/angular-xeditable': srcPath + '/vendor/angular/xeditable', - 'tasks-assignments/vendor/angular-xeditable-civi': srcPath + '/vendor/angular/xeditable-civi', - 'tasks-assignments/vendor/text-angular': srcPath + '/vendor/angular/textAngular.min', - 'tasks-assignments/vendor/text-angular-rangy': srcPath + '/vendor/angular/textAngular-rangy.min', - 'tasks-assignments/vendor/text-angular-sanitize': srcPath + '/vendor/angular/textAngular-sanitize.min', - 'mocks': mocksPath - }, - shim: { - 'tasks-assignments/vendor/angular-xeditable-civi': { - deps: [ - 'tasks-assignments/vendor/angular-xeditable', - 'tasks-assignments/vendor/angular-select', - 'tasks-assignments/vendor/text-angular' - ] - }, - 'tasks-assignments/vendor/text-angular': { - deps: [ - 'tasks-assignments/vendor/text-angular-rangy', - 'tasks-assignments/vendor/text-angular-sanitize' - ] - } - }, - callback: function () { - window.__karma__.start(); - } -}); From a5ef9f5797ba7647fc16e191c1d6f6eae7751c0b Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Mon, 16 Apr 2018 12:08:10 +0530 Subject: [PATCH 14/29] PCHR-3529: Unit tests --- .../gulpfile.js | 31 ++++++--- .../js/dist/crm-tasks-workflows.min.js | 4 +- .../js/src/crm-tasks-workflows.js | 3 +- .../decorators/crm-add-name.decorator.js | 64 ----------------- .../modules/crm-tasks-workflows.decorators.js | 7 -- .../casetype.extended.controller.spec.js | 68 +++++++++++++++++++ .../js/test/crm-tasks-workflows/karma.conf.js | 45 ++++++++++++ .../mocks/data/crm-api.data.js | 7 ++ .../mocks/modules/crm-case-type.module.js | 5 ++ .../crm-tasks-workflows.mocks.module.js | 5 ++ .../mocks/services/crm-api.service.js | 14 ++++ .../tasks-assignments}/karma.conf.js | 3 +- 12 files changed, 169 insertions(+), 87 deletions(-) delete mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js delete mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/crm-api.data.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-case-type.module.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-tasks-workflows.mocks.module.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js rename uk.co.compucorp.civicrm.tasksassignments/js/{ => test/tasks-assignments}/karma.conf.js (96%) diff --git a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js index dec55a61..a9059fcb 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js +++ b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js @@ -24,7 +24,6 @@ gulp.task('js-crm', function () { return gulp.src([ 'js/src/crm-tasks-workflows/modules/*.js', 'js/src/crm-tasks-workflows/controllers/*.js', - 'js/src/crm-tasks-workflows/decorators/*.js', 'js/src/crm-tasks-workflows.js' ]) .pipe(sourcemaps.init()) @@ -55,8 +54,18 @@ gulp.task('watch', function () { ], ['js-crm']).on('change', function (file) { try { test.for(file.path); } catch (ex) { test.all(); } }); - gulp.watch(['js/test/**/*.js', '!js/test/mocks/**/*.js', '!js/test/tasks-assignments/test-main.js']).on('change', function (file) { - test.single(file.path); + gulp.watch([ + 'js/test/crm-tasks-workflows/**/*.js', + '!js/test/crm-tasks-workflows/mocks/**/*.js' + ]).on('change', function (file) { + test.single('crm-tasks-workflows', file.path); + }); + gulp.watch([ + 'js/test/tasks-assignments/**/*.js', + '!js/test/tasks-assignments/mocks/**/*.js', + '!js/test/tasks-assignments/test-main.js' + ]).on('change', function (file) { + test.single('tasks-assignments', file.path); }); }); @@ -77,7 +86,7 @@ var test = (function () { var reporters = argv.reporters ? argv.reporters.split(',') : ['progress']; new karma.Server({ - configFile: path.join(__dirname, '/js/', configFile), + configFile: path.join(__dirname, '/js/test/', configFile), reporters: reporters, singleRun: true }, function () { @@ -91,7 +100,8 @@ var test = (function () { * Runs all the tests */ all: function () { - runServer('karma.conf.js'); + runServer('crm-tasks-workflows/karma.conf.js'); + runServer('tasks-assignments/karma.conf.js'); }, /** @@ -106,7 +116,7 @@ var test = (function () { for: function (srcFile) { var srcFileNoExt = path.basename(srcFile, path.extname(srcFile)); var testFile = srcFile - .replace('src/tasks-assignments/', 'test/') + .replace('src/', 'test/') .replace(srcFileNoExt + '.js', srcFileNoExt + '.spec.js'); try { @@ -124,18 +134,19 @@ var test = (function () { * It passes to the karma server a temporary config file * which is deleted once the test has been run * + * @param {string} module - The module name * @param {string} testFile - The full path of a test file */ - single: function (testFile) { + single: function (module, testFile) { var configFile = 'karma.' + path.basename(testFile, path.extname(testFile)) + '.conf.temp.js'; - gulp.src(path.join(__dirname, '/js/karma.conf.js')) + gulp.src(path.join(__dirname, '/js/test/', module, '/karma.conf.js')) .pipe(replace('*.spec.js', path.basename(testFile))) .pipe(rename(configFile)) - .pipe(gulp.dest(path.join(__dirname, '/js'))) + .pipe(gulp.dest(path.join(__dirname, '/js/test'))) .on('end', function () { runServer(configFile, function () { - gulp.src(path.join(__dirname, '/js/', configFile), { read: false }).pipe(clean()); + gulp.src(path.join(__dirname, '/js/test', configFile), { read: false }).pipe(clean()); }); }); } diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index 97a0e90e..b0216f9c 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(e){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(e){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(e){"use strict";angular.module("crm-tasks-workflows.decorators",[])}(),function(e){"use strict";function t(e,t,o){e.debug("Controller: CaseTypeExtendedController"),t.activityTypeOptions=[],o("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(e){t.activityTypeOptions=e.values.map(function(e){return{id:e.name,text:e.label,icon:e.icon}})})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$log","$scope","crmApi"]}(),function(e){"use strict";function t(e){return e[0].compile=function(){return function(t,e,o){var r=CRM.$("input",e);function c(){CRM.$(r).crmSelect2({data:t[o.crmOptions],createSearchChoice:function(e){return{id:e,text:e+" ("+ts("new")+")"}},createSearchChoicePosition:"bottom",placeholder:o.placeholder})}c(),t.$watch(o.crmOptions,c),CRM.$(r).on("select2-selecting",function(e){t[o.crmVar]=e.val,t.$evalAsync(o.crmOnAdd),t.$evalAsync("_resetSelection()"),e.preventDefault()}),t._resetSelection=function(){CRM.$(r).select2("close"),CRM.$(r).select2("val",""),t[o.crmVar]=""}}},e}angular.module("crm-tasks-workflows.decorators").config(["$provide",function(e){e.decorator("crmAddNameDirective",t)}]),t.$inject=["$delegate"]}(),function(e){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers","crm-tasks-workflows.decorators"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLWFkZC1uYW1lLmRlY29yYXRvci5qcyIsImNybS10YXNrcy13b3JrZmxvd3MuanMiXSwibmFtZXMiOlsiYW5ndWxhciIsIm1vZHVsZSIsIkNhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsIklOIiwic2VxdWVudGlhbCIsIm9wdGlvbnMiLCJzb3J0IiwibGltaXQiLCJ0aGVuIiwiZGF0YSIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiY29udHJvbGxlciIsIiRpbmplY3QiLCJDcm1BZGROYW1lRGVjb3JhdG9yIiwiJGRlbGVnYXRlIiwiY29tcGlsZSIsInNjb3BlIiwiZWxlbWVudCIsImF0dHJzIiwiaW5wdXQiLCJDUk0iLCIkIiwiaW5pdFNlbGVjdDIiLCJjcm1TZWxlY3QyIiwiY3JtT3B0aW9ucyIsImNyZWF0ZVNlYXJjaENob2ljZSIsInRlcm0iLCJ0cyIsImNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCIkd2F0Y2giLCJvbiIsImUiLCJjcm1WYXIiLCJ2YWwiLCIkZXZhbEFzeW5jIiwiY3JtT25BZGQiLCJwcmV2ZW50RGVmYXVsdCIsIl9yZXNldFNlbGVjdGlvbiIsInNlbGVjdDIiLCJjb25maWciLCIkcHJvdmlkZSIsImRlY29yYXRvciJdLCJtYXBwaW5ncyI6IkNBRUEsU0FBQUEsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGtDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBS0FBLFFBSEFDLE9BQUEsMkJBQUEsQ0FDQSxnQkFKQSxHQ0FBLFNBQUFELEdBQ0EsYUFHQUEsUUFEQUMsT0FBQSxpQ0FBQSxJQUhBLEdDQUEsU0FBQUQsR0FDQSxhQVNBLFNBQUFFLEVBQUFDLEVBQUFDLEVBQUFDLEdBQ0FGLEVBQUFHLE1BQUEsMENBRUFGLEVBQUFHLG9CQUFBLEdBWUFGLEVBQUEsY0FBQSxNQUFBLENBQ0FHLGdCQUFBLGdCQUNBQyxhQUFBLENBQUFDLEdBQUEsQ0FBQSxXQUFBLGlCQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLEtBRUFDLEtBQUEsU0FBQUMsR0FDQVosRUFBQUcsb0JBQUFTLEVBQUFDLE9BQUFDLElBQUEsU0FBQUMsR0FDQSxNQUFBLENBQUFDLEdBQUFELEVBQUFFLEtBQUFDLEtBQUFILEVBQUFJLE1BQUFDLEtBQUFMLEVBQUFLLFVBT0F4QixRQXZDQUMsT0FBQSxtQ0FDQXdCLFdBQUEsNkJBQUF2QixHQUVBQSxFQUFBd0IsUUFBQSxDQUNBLE9BQUEsU0FBQSxVQVBBLEdDQUEsU0FBQTFCLEdBQ0EsYUFXQSxTQUFBMkIsRUFBQUMsR0E2Q0EsT0E1Q0FBLEVBQUEsR0FFQUMsUUFBQSxXQUNBLE9BQUEsU0FBQUMsRUFBQUMsRUFBQUMsR0FDQSxJQUFBQyxFQUFBQyxJQUFBQyxFQUFBLFFBQUFKLEdBdUJBLFNBQUFLLElBQ0FGLElBQUFDLEVBQUFGLEdBQUFJLFdBQUEsQ0FDQXJCLEtBQUFjLEVBQUFFLEVBQUFNLFlBQ0FDLG1CQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBcEIsR0FBQW9CLEVBQUFsQixLQUFBa0IsRUFBQSxLQUFBQyxHQUFBLE9BQUEsTUFFQUMsMkJBQUEsU0FDQUMsWUFBQVgsRUFBQVcsY0EzQkFQLElBZ0NBTixFQUFBYyxPQUFBWixFQUFBTSxXQUFBRixHQXBCQUYsSUFBQUMsRUFBQUYsR0FBQVksR0FBQSxvQkFBQSxTQUFBQyxHQUNBaEIsRUFBQUUsRUFBQWUsUUFBQUQsRUFBQUUsSUFDQWxCLEVBQUFtQixXQUFBakIsRUFBQWtCLFVBQ0FwQixFQUFBbUIsV0FBQSxxQkFDQUgsRUFBQUssbUJBWEFyQixFQUFBc0IsZ0JBQUEsV0FDQWxCLElBQUFDLEVBQUFGLEdBQUFvQixRQUFBLFNBQ0FuQixJQUFBQyxFQUFBRixHQUFBb0IsUUFBQSxNQUFBLElBQ0F2QixFQUFBRSxFQUFBZSxRQUFBLE1BNkJBbkIsRUFJQTVCLFFBMURBQyxPQUFBLGtDQUNBcUQsT0FBQSxDQUFBLFdBQUEsU0FBQUMsR0FDQUEsRUFBQUMsVUFBQSxzQkFBQTdCLE1BR0FBLEVBQUFELFFBQUEsQ0FDQSxhQVRBLEdDQUEsU0FBQTFCLEdBQ0EsYUFPQUEsUUFMQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLGtDQUNBLG1DQU5BIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9ycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycpXG4gICAgLmNvbnRyb2xsZXIoJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJywgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIpO1xuXG4gIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyLiRpbmplY3QgPSBbXG4gICAgJyRsb2cnLCAnJHNjb3BlJywgJ2NybUFwaSdcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGxvZywgJHNjb3BlLCBjcm1BcGkpIHtcbiAgICAkbG9nLmRlYnVnKCdDb250cm9sbGVyOiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicpO1xuXG4gICAgJHNjb3BlLmFjdGl2aXR5VHlwZU9wdGlvbnMgPSBbXTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpO1xuICAgIH0pKCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhY3Rpdml0eSB0eXBlcyB3aGljaCBhcmUgY29tcG9uZW50cyBvZiBDaXZpVGFzayBvciBDaXZpRG9jdW1lbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZmV0Y2hBY3Rpdml0eVR5cGVzICgpIHtcbiAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgb3B0aW9uX2dyb3VwX2lkOiAnYWN0aXZpdHlfdHlwZScsXG4gICAgICAgIGNvbXBvbmVudF9pZDogeydJTic6IFsnQ2l2aVRhc2snLCAnQ2l2aURvY3VtZW50J119LFxuICAgICAgICBzZXF1ZW50aWFsOiAxLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogJ25hbWUnLFxuICAgICAgICAgIGxpbWl0OiAwXG4gICAgICAgIH1cbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgJHNjb3BlLmFjdGl2aXR5VHlwZU9wdGlvbnMgPSBkYXRhLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgICByZXR1cm4geyBpZDogdHlwZS5uYW1lLCB0ZXh0OiB0eXBlLmxhYmVsLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXI7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyLCB0cyAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMnKVxuICAgIC5jb25maWcoWyckcHJvdmlkZScsIGZ1bmN0aW9uICgkcHJvdmlkZSkge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCdjcm1BZGROYW1lRGlyZWN0aXZlJywgQ3JtQWRkTmFtZURlY29yYXRvcik7XG4gICAgfV0pO1xuXG4gIENybUFkZE5hbWVEZWNvcmF0b3IuJGluamVjdCA9IFtcbiAgICAnJGRlbGVnYXRlJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENybUFkZE5hbWVEZWNvcmF0b3IgKCRkZWxlZ2F0ZSkge1xuICAgIHZhciBkaXJlY3RpdmUgPSAkZGVsZWdhdGVbMF07XG5cbiAgICBkaXJlY3RpdmUuY29tcGlsZSA9IGZ1bmN0aW9uIGNvbXBpbGUgKCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChzY29wZSwgZWxlbWVudCwgYXR0cnMpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gQ1JNLiQoJ2lucHV0JywgZWxlbWVudCk7XG5cbiAgICAgICAgKGZ1bmN0aW9uIGluaXQgKCkge1xuICAgICAgICAgIGluaXRTZWxlY3QyKCk7XG4gICAgICAgICAgaW5pdFdhdGNoZXJzKCk7XG4gICAgICAgICAgaW5pdEV2ZW50cygpO1xuICAgICAgICB9KSgpO1xuXG4gICAgICAgIHNjb3BlLl9yZXNldFNlbGVjdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBDUk0uJChpbnB1dCkuc2VsZWN0MignY2xvc2UnKTtcbiAgICAgICAgICBDUk0uJChpbnB1dCkuc2VsZWN0MigndmFsJywgJycpO1xuICAgICAgICAgIHNjb3BlW2F0dHJzLmNybVZhcl0gPSAnJztcbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiBpbml0RXZlbnRzICgpIHtcbiAgICAgICAgICBDUk0uJChpbnB1dCkub24oJ3NlbGVjdDItc2VsZWN0aW5nJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHNjb3BlW2F0dHJzLmNybVZhcl0gPSBlLnZhbDtcbiAgICAgICAgICAgIHNjb3BlLiRldmFsQXN5bmMoYXR0cnMuY3JtT25BZGQpO1xuICAgICAgICAgICAgc2NvcGUuJGV2YWxBc3luYygnX3Jlc2V0U2VsZWN0aW9uKCknKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluaXRTZWxlY3QyICgpIHtcbiAgICAgICAgICBDUk0uJChpbnB1dCkuY3JtU2VsZWN0Mih7XG4gICAgICAgICAgICBkYXRhOiBzY29wZVthdHRycy5jcm1PcHRpb25zXSxcbiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaENob2ljZTogZnVuY3Rpb24gKHRlcm0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtpZDogdGVybSwgdGV4dDogdGVybSArICcgKCcgKyB0cygnbmV3JykgKyAnKSd9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBhdHRycy5wbGFjZWhvbGRlclxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdFdhdGNoZXJzICgpIHtcbiAgICAgICAgICBzY29wZS4kd2F0Y2goYXR0cnMuY3JtT3B0aW9ucywgaW5pdFNlbGVjdDIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gJGRlbGVnYXRlO1xuICB9XG5cbiAgcmV0dXJuIENybUFkZE5hbWVEZWNvcmF0b3I7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MnLCBbXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnLFxuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iXX0= +!function(o){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(o){"use strict";function t(o,t,e){o.debug("Controller: CaseTypeExtendedController"),t.activityTypeOptions=[],e("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(o){t.activityTypeOptions=o.values.map(function(o){return{id:o.name,text:o.label,icon:o.icon}})})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$log","$scope","crmApi"]}(),function(o){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLXRhc2tzLXdvcmtmbG93cy5qcyJdLCJuYW1lcyI6WyJhbmd1bGFyIiwibW9kdWxlIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkbG9nIiwiJHNjb3BlIiwiY3JtQXBpIiwiZGVidWciLCJhY3Rpdml0eVR5cGVPcHRpb25zIiwib3B0aW9uX2dyb3VwX2lkIiwiY29tcG9uZW50X2lkIiwiSU4iLCJzZXF1ZW50aWFsIiwib3B0aW9ucyIsInNvcnQiLCJsaW1pdCIsInRoZW4iLCJkYXRhIiwidmFsdWVzIiwibWFwIiwidHlwZSIsImlkIiwibmFtZSIsInRleHQiLCJsYWJlbCIsImljb24iLCJjb250cm9sbGVyIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6IkNBRUEsU0FBQUEsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGtDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBS0FBLFFBSEFDLE9BQUEsMkJBQUEsQ0FDQSxnQkFKQSxHQ0FBLFNBQUFELEdBQ0EsYUFTQSxTQUFBRSxFQUFBQyxFQUFBQyxFQUFBQyxHQUNBRixFQUFBRyxNQUFBLDBDQUVBRixFQUFBRyxvQkFBQSxHQVlBRixFQUFBLGNBQUEsTUFBQSxDQUNBRyxnQkFBQSxnQkFDQUMsYUFBQSxDQUFBQyxHQUFBLENBQUEsV0FBQSxpQkFDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxLQUVBQyxLQUFBLFNBQUFDLEdBQ0FaLEVBQUFHLG9CQUFBUyxFQUFBQyxPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxVQU9BeEIsUUF2Q0FDLE9BQUEsbUNBQ0F3QixXQUFBLDZCQUFBdkIsR0FFQUEsRUFBQXdCLFFBQUEsQ0FDQSxPQUFBLFNBQUEsVUFQQSxHQ0FBLFNBQUExQixHQUNBLGFBTUFBLFFBSkFDLE9BQUEsc0JBQUEsQ0FDQSwyQkFDQSxvQ0FMQSIsImZpbGUiOiJjcm0tdGFza3Mtd29ya2Zsb3dzLm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsIFtcbiAgICAnY3JtQ2FzZVR5cGUnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkbG9nLCAkc2NvcGUsIGNybUFwaSkge1xuICAgICRsb2cuZGVidWcoJ0NvbnRyb2xsZXI6IENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJyk7XG5cbiAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IFtdO1xuXG4gICAgKGZ1bmN0aW9uIGluaXQgKCkge1xuICAgICAgZmV0Y2hBY3Rpdml0eVR5cGVzKCk7XG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoIGFjdGl2aXR5IHR5cGVzIHdoaWNoIGFyZSBjb21wb25lbnRzIG9mIENpdmlUYXNrIG9yIENpdmlEb2N1bWVudFxuICAgICAqXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmZXRjaEFjdGl2aXR5VHlwZXMgKCkge1xuICAgICAgcmV0dXJuIGNybUFwaSgnT3B0aW9uVmFsdWUnLCAnZ2V0Jywge1xuICAgICAgICBvcHRpb25fZ3JvdXBfaWQ6ICdhY3Rpdml0eV90eXBlJyxcbiAgICAgICAgY29tcG9uZW50X2lkOiB7J0lOJzogWydDaXZpVGFzaycsICdDaXZpRG9jdW1lbnQnXX0sXG4gICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgfVxuICAgICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IGRhdGEudmFsdWVzLm1hcChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiB0eXBlLm5hbWUsIHRleHQ6IHR5cGUubGFiZWwsIGljb246IHR5cGUuaWNvbiB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcjtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cycsIFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycydcbiAgXSk7XG59KShhbmd1bGFyKTtcbiJdfQ== diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js index ace81f4d..fe4be3f1 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js @@ -5,7 +5,6 @@ angular.module('crm-tasks-workflows', [ 'crm-tasks-workflows.core', - 'crm-tasks-workflows.controllers', - 'crm-tasks-workflows.decorators' + 'crm-tasks-workflows.controllers' ]); })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js deleted file mode 100644 index a5b3a814..00000000 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/crm-add-name.decorator.js +++ /dev/null @@ -1,64 +0,0 @@ -/* global angular, ts */ - -(function (angular) { - 'use strict'; - - angular.module('crm-tasks-workflows.decorators') - .config(['$provide', function ($provide) { - $provide.decorator('crmAddNameDirective', CrmAddNameDecorator); - }]); - - CrmAddNameDecorator.$inject = [ - '$delegate' - ]; - - function CrmAddNameDecorator ($delegate) { - var directive = $delegate[0]; - - directive.compile = function compile () { - return function (scope, element, attrs) { - var input = CRM.$('input', element); - - (function init () { - initSelect2(); - initWatchers(); - initEvents(); - })(); - - scope._resetSelection = function () { - CRM.$(input).select2('close'); - CRM.$(input).select2('val', ''); - scope[attrs.crmVar] = ''; - }; - - function initEvents () { - CRM.$(input).on('select2-selecting', function (e) { - scope[attrs.crmVar] = e.val; - scope.$evalAsync(attrs.crmOnAdd); - scope.$evalAsync('_resetSelection()'); - e.preventDefault(); - }); - } - - function initSelect2 () { - CRM.$(input).crmSelect2({ - data: scope[attrs.crmOptions], - createSearchChoice: function (term) { - return {id: term, text: term + ' (' + ts('new') + ')'}; - }, - createSearchChoicePosition: 'bottom', - placeholder: attrs.placeholder - }); - } - - function initWatchers () { - scope.$watch(attrs.crmOptions, initSelect2); - } - }; - }; - - return $delegate; - } - - return CrmAddNameDecorator; -})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js deleted file mode 100644 index 51fda66d..00000000 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorators.js +++ /dev/null @@ -1,7 +0,0 @@ -/* global angular */ - -(function (angular) { - 'use strict'; - - angular.module('crm-tasks-workflows.decorators', []); -})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js new file mode 100644 index 00000000..08c86267 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -0,0 +1,68 @@ +/* eslint-env jasmine */ + +(function () { + 'use strict'; + + describe('CaseTypeExtendedController', function () { + var $controller, $rootScope, $scope, $q, crmApi, crmApiData; + + beforeEach(function () { + module('crm-tasks-workflows.mocks', 'crm-tasks-workflows.controllers'); + }); + + beforeEach(inject(function (_$controller_, _$rootScope_, _$q_, _crmApi_, _crmApiData_) { + $controller = _$controller_; + $rootScope = _$rootScope_; + $q = _$q_; + crmApi = _crmApi_; + crmApiData = _crmApiData_; + + spyCrmApiAndReturn({ + values: crmApiData + }); + + initController(crmApi); + })); + + it('calls the API to get CiviTask and CiviDocument Activity Types', function () { + expect(crmApi).toHaveBeenCalledWith('OptionValue', 'get', { + option_group_id: 'activity_type', + component_id: {'IN': ['CiviTask', 'CiviDocument']}, + sequential: 1, + options: { + sort: 'name', + limit: 0 + } + }); + }); + + it('returns the mapped data from api', function () { + var expectedValues = crmApiData.map(function (type) { + return { id: type.name, text: type.label, icon: type.icon }; + }); + + expect($scope.activityTypeOptions).toEqual(expectedValues); + }); + + function initController (crmApi) { + $scope = $rootScope.$new(); + + $controller('CaseTypeExtendedController', { + $scope: $scope, + crmApi: crmApi + }); + + $scope.$digest(); + } + + function spyCrmApiAndReturn (returnData) { + crmApi = jasmine.createSpy('crmApi', crmApi).and.callFake(function () { + var deferred = $q.defer(); + + deferred.resolve(returnData); + + return deferred.promise; + }); + } + }); +})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js new file mode 100644 index 00000000..f69f3949 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js @@ -0,0 +1,45 @@ +var cv = require('civicrm-cv')({ mode: 'sync' }); + +module.exports = function (config) { + var civicrmPath = cv("path -d '[civicrm.root]'")[0].value; + var extPath = cv('path -x uk.co.compucorp.civicrm.tasksassignments')[0].value; + + config.set({ + basePath: civicrmPath, + browsers: ['ChromeHeadless'], + frameworks: ['jasmine'], + files: [ + // the global dependencies + 'bower_components/angular/angular.min.js', + 'bower_components/angular-mocks/angular-mocks.js', + + { pattern: extPath + '/js/src/crm-tasks-workflows/modules/*.js' }, + { pattern: extPath + '/js/src/crm-tasks-workflows/controllers/*.js' }, + { pattern: extPath + '/js/src/crm-tasks-workflows.js' }, + + // the mocked components files + { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/modules/*.js' }, + { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/services/*.js' }, + { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/data/*.js' }, + + // the test files + { pattern: extPath + '/js/test/crm-tasks-workflows/**/*.spec.js' } + ], + customLaunchers: { + ChromeHeadless: { + base: 'Chrome', + flags: [ + '--headless', + '--disable-gpu', + // Without a remote debugging port, Google Chrome exits immediately. + '--remote-debugging-port=9222' + ] + } + }, + junitReporter: { + outputDir: extPath + '/test-reports', + useBrowserName: false, + outputFile: 'karma.xml' + } + }); +}; diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/crm-api.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/crm-api.data.js new file mode 100644 index 00000000..97d4b533 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/crm-api.data.js @@ -0,0 +1,7 @@ +/* global angular */ + +(function () { + angular.module('crm-tasks-workflows.mocks').constant('crmApiData', [ + { name: 'Jon Snow', label: 'Game of Thrones', icon: 'wolf' } + ]); +})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-case-type.module.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-case-type.module.js new file mode 100644 index 00000000..34110422 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-case-type.module.js @@ -0,0 +1,5 @@ +/* global angular */ + +(function () { + angular.module('crmCaseType', []); +})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-tasks-workflows.mocks.module.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-tasks-workflows.mocks.module.js new file mode 100644 index 00000000..71f7923e --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/modules/crm-tasks-workflows.mocks.module.js @@ -0,0 +1,5 @@ +/* global angular */ + +(function () { + angular.module('crm-tasks-workflows.mocks', []); +})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js new file mode 100644 index 00000000..5db92786 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js @@ -0,0 +1,14 @@ +/* global angular */ + +(function () { + angular.module('crm-tasks-workflows.mocks').factory('crmApi', function ($q) { + var crmApi = function (entity, action, params, message) { + var deferred = $q.defer(); + deferred.resolve(); + + return deferred.promise; + }; + + return crmApi; + }); +})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/karma.conf.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/karma.conf.js similarity index 96% rename from uk.co.compucorp.civicrm.tasksassignments/js/karma.conf.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/karma.conf.js index ca221530..d09d783a 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/karma.conf.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/karma.conf.js @@ -19,7 +19,6 @@ module.exports = function (config) { 'packages/jquery/plugins/jquery.blockUI.js', 'js/Common.js', 'js/crm.ajax.js', - // Global variables that need to be accessible in the test environment extPath + '/js/test/globals.js', @@ -37,7 +36,7 @@ module.exports = function (config) { { pattern: extPath + '/js/test/tasks-assignments/mocks/**/*.js', included: false }, // the test files - { pattern: extPath + '/js/test/**/*.spec.js', included: false }, + { pattern: extPath + '/js/test/tasks-assignments/**/*.spec.js', included: false }, // angular templates extPath + '/views/**/*.html', From de62ef442705eb83890a1f335f679bedc375d5f4 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Tue, 17 Apr 2018 10:05:50 +0530 Subject: [PATCH 15/29] PCHR-3529: PR Feedback --- .../gulpfile.js | 10 +++++----- .../casetype.extended.controller.spec.js | 17 ++--------------- .../js/test/crm-tasks-workflows/karma.conf.js | 1 - .../mocks/services/crm-api.service.js | 14 -------------- .../services/document.service.spec.js | 3 +-- 5 files changed, 8 insertions(+), 37 deletions(-) delete mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js index a9059fcb..bf64cf41 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js +++ b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js @@ -20,7 +20,7 @@ gulp.task('sass', function (done) { }); }); -gulp.task('js-crm', function () { +gulp.task('crm-js-bundle', function () { return gulp.src([ 'js/src/crm-tasks-workflows/modules/*.js', 'js/src/crm-tasks-workflows/controllers/*.js', @@ -33,7 +33,7 @@ gulp.task('js-crm', function () { .pipe(gulp.dest('js/dist/')); }); -gulp.task('js-requirejs-bundle', function (done) { +gulp.task('requirejs-bundle', function (done) { exec('r.js -o js/build.js', function (err, stdout, stderr) { err && err.code && console.log(stdout); done(); @@ -45,13 +45,13 @@ gulp.task('watch', function () { gulp.watch([ 'js/src/tasks-assignments.js', 'js/src/tasks-assignments.js/**/*.js' - ], ['js-requirejs-bundle']).on('change', function (file) { + ], ['requirejs-bundle']).on('change', function (file) { try { test.for(file.path); } catch (ex) { test.all(); } }); gulp.watch([ 'js/src/crm-tasks-workflows.js', 'js/src/crm-tasks-workflows/**/*.js' - ], ['js-crm']).on('change', function (file) { + ], ['crm-js-bundle']).on('change', function (file) { try { test.for(file.path); } catch (ex) { test.all(); } }); gulp.watch([ @@ -73,7 +73,7 @@ gulp.task('test', function (done) { test.all(); }); -gulp.task('default', ['js-crm', 'js-requirejs-bundle', 'sass', 'test', 'watch']); +gulp.task('default', ['crm-js-bundle', 'requirejs-bundle', 'sass', 'test', 'watch']); var test = (function () { /** diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js index 08c86267..576c3261 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -10,16 +10,13 @@ module('crm-tasks-workflows.mocks', 'crm-tasks-workflows.controllers'); }); - beforeEach(inject(function (_$controller_, _$rootScope_, _$q_, _crmApi_, _crmApiData_) { + beforeEach(inject(function (_$controller_, _$rootScope_, _$q_, _crmApiData_) { $controller = _$controller_; $rootScope = _$rootScope_; $q = _$q_; - crmApi = _crmApi_; crmApiData = _crmApiData_; - spyCrmApiAndReturn({ - values: crmApiData - }); + crmApi = jasmine.createSpy('crmApi').and.returnValue($q.resolve({ values: crmApiData })); initController(crmApi); })); @@ -54,15 +51,5 @@ $scope.$digest(); } - - function spyCrmApiAndReturn (returnData) { - crmApi = jasmine.createSpy('crmApi', crmApi).and.callFake(function () { - var deferred = $q.defer(); - - deferred.resolve(returnData); - - return deferred.promise; - }); - } }); })(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js index f69f3949..616b9b28 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js @@ -19,7 +19,6 @@ module.exports = function (config) { // the mocked components files { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/modules/*.js' }, - { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/services/*.js' }, { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/data/*.js' }, // the test files diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js deleted file mode 100644 index 5db92786..00000000 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/services/crm-api.service.js +++ /dev/null @@ -1,14 +0,0 @@ -/* global angular */ - -(function () { - angular.module('crm-tasks-workflows.mocks').factory('crmApi', function ($q) { - var crmApi = function (entity, action, params, message) { - var deferred = $q.defer(); - deferred.resolve(); - - return deferred.promise; - }; - - return crmApi; - }); -})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/document.service.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/document.service.spec.js index ed9711e9..e81bd887 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/document.service.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/tasks-assignments/services/document.service.spec.js @@ -41,8 +41,7 @@ define([ beforeEach(function () { Document.save({ action: 'create' - }, {json: documentMock.single() || {}} - ); + }, {json: documentMock.single() || {}}); requestBody = Document.save.calls.argsFor(0)[1]; $httpBackend.flush(); From dd6669b2f458a633aa65004b2f18b8ae111011e4 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Tue, 17 Apr 2018 10:31:38 +0530 Subject: [PATCH 16/29] PCHR-3529: Add activity options loader --- .../js/dist/crm-tasks-workflows.min.js | 4 +-- .../casetype.extended.controller.js | 9 ++++++- .../casetype.extended.controller.spec.js | 4 +++ .../tasksassignments.php | 27 ++++++++++++++++--- 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index b0216f9c..10cea865 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(o){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(o){"use strict";function t(o,t,e){o.debug("Controller: CaseTypeExtendedController"),t.activityTypeOptions=[],e("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(o){t.activityTypeOptions=o.values.map(function(o){return{id:o.name,text:o.label,icon:o.icon}})})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$log","$scope","crmApi"]}(),function(o){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLXRhc2tzLXdvcmtmbG93cy5qcyJdLCJuYW1lcyI6WyJhbmd1bGFyIiwibW9kdWxlIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkbG9nIiwiJHNjb3BlIiwiY3JtQXBpIiwiZGVidWciLCJhY3Rpdml0eVR5cGVPcHRpb25zIiwib3B0aW9uX2dyb3VwX2lkIiwiY29tcG9uZW50X2lkIiwiSU4iLCJzZXF1ZW50aWFsIiwib3B0aW9ucyIsInNvcnQiLCJsaW1pdCIsInRoZW4iLCJkYXRhIiwidmFsdWVzIiwibWFwIiwidHlwZSIsImlkIiwibmFtZSIsInRleHQiLCJsYWJlbCIsImljb24iLCJjb250cm9sbGVyIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6IkNBRUEsU0FBQUEsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGtDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBS0FBLFFBSEFDLE9BQUEsMkJBQUEsQ0FDQSxnQkFKQSxHQ0FBLFNBQUFELEdBQ0EsYUFTQSxTQUFBRSxFQUFBQyxFQUFBQyxFQUFBQyxHQUNBRixFQUFBRyxNQUFBLDBDQUVBRixFQUFBRyxvQkFBQSxHQVlBRixFQUFBLGNBQUEsTUFBQSxDQUNBRyxnQkFBQSxnQkFDQUMsYUFBQSxDQUFBQyxHQUFBLENBQUEsV0FBQSxpQkFDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxLQUVBQyxLQUFBLFNBQUFDLEdBQ0FaLEVBQUFHLG9CQUFBUyxFQUFBQyxPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxVQU9BeEIsUUF2Q0FDLE9BQUEsbUNBQ0F3QixXQUFBLDZCQUFBdkIsR0FFQUEsRUFBQXdCLFFBQUEsQ0FDQSxPQUFBLFNBQUEsVUFQQSxHQ0FBLFNBQUExQixHQUNBLGFBTUFBLFFBSkFDLE9BQUEsc0JBQUEsQ0FDQSwyQkFDQSxvQ0FMQSIsImZpbGUiOiJjcm0tdGFza3Mtd29ya2Zsb3dzLm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsIFtcbiAgICAnY3JtQ2FzZVR5cGUnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkbG9nLCAkc2NvcGUsIGNybUFwaSkge1xuICAgICRsb2cuZGVidWcoJ0NvbnRyb2xsZXI6IENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJyk7XG5cbiAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IFtdO1xuXG4gICAgKGZ1bmN0aW9uIGluaXQgKCkge1xuICAgICAgZmV0Y2hBY3Rpdml0eVR5cGVzKCk7XG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoIGFjdGl2aXR5IHR5cGVzIHdoaWNoIGFyZSBjb21wb25lbnRzIG9mIENpdmlUYXNrIG9yIENpdmlEb2N1bWVudFxuICAgICAqXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmZXRjaEFjdGl2aXR5VHlwZXMgKCkge1xuICAgICAgcmV0dXJuIGNybUFwaSgnT3B0aW9uVmFsdWUnLCAnZ2V0Jywge1xuICAgICAgICBvcHRpb25fZ3JvdXBfaWQ6ICdhY3Rpdml0eV90eXBlJyxcbiAgICAgICAgY29tcG9uZW50X2lkOiB7J0lOJzogWydDaXZpVGFzaycsICdDaXZpRG9jdW1lbnQnXX0sXG4gICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgfVxuICAgICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IGRhdGEudmFsdWVzLm1hcChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiB0eXBlLm5hbWUsIHRleHQ6IHR5cGUubGFiZWwsIGljb246IHR5cGUuaWNvbiB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcjtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cycsIFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycydcbiAgXSk7XG59KShhbmd1bGFyKTtcbiJdfQ== +!function(t){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(t){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(t){"use strict";function o(t,o,n){t.debug("Controller: CaseTypeExtendedController"),o.activityTypeOptions=[],o.loading={activityOptions:!1},o.loading.activityOptions=!0,n("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(t){o.activityTypeOptions=t.values.map(function(t){return{id:t.name,text:t.label,icon:t.icon}})}).finally(function(){o.loading.activityOptions=!1})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",o),o.$inject=["$log","$scope","crmApi"]}(),function(t){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLXRhc2tzLXdvcmtmbG93cy5qcyJdLCJuYW1lcyI6WyJhbmd1bGFyIiwibW9kdWxlIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkbG9nIiwiJHNjb3BlIiwiY3JtQXBpIiwiZGVidWciLCJhY3Rpdml0eVR5cGVPcHRpb25zIiwibG9hZGluZyIsImFjdGl2aXR5T3B0aW9ucyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsIklOIiwic2VxdWVudGlhbCIsIm9wdGlvbnMiLCJzb3J0IiwibGltaXQiLCJ0aGVuIiwiZGF0YSIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiZmluYWxseSIsImNvbnRyb2xsZXIiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQVNBLFNBQUFFLEVBQUFDLEVBQUFDLEVBQUFDLEdBQ0FGLEVBQUFHLE1BQUEsMENBRUFGLEVBQUFHLG9CQUFBLEdBQ0FILEVBQUFJLFFBQUEsQ0FDQUMsaUJBQUEsR0FhQUwsRUFBQUksUUFBQUMsaUJBQUEsRUFFQUosRUFBQSxjQUFBLE1BQUEsQ0FDQUssZ0JBQUEsZ0JBQ0FDLGFBQUEsQ0FBQUMsR0FBQSxDQUFBLFdBQUEsaUJBQ0FDLFdBQUEsRUFDQUMsUUFBQSxDQUNBQyxLQUFBLE9BQ0FDLE1BQUEsS0FFQUMsS0FBQSxTQUFBQyxHQUNBZCxFQUFBRyxvQkFBQVcsRUFBQUMsT0FBQUMsSUFBQSxTQUFBQyxHQUNBLE1BQUEsQ0FBQUMsR0FBQUQsRUFBQUUsS0FBQUMsS0FBQUgsRUFBQUksTUFBQUMsS0FBQUwsRUFBQUssVUFFQUMsUUFBQSxXQUNBdkIsRUFBQUksUUFBQUMsaUJBQUEsSUFNQVQsUUE5Q0FDLE9BQUEsbUNBQ0EyQixXQUFBLDZCQUFBMUIsR0FFQUEsRUFBQTJCLFFBQUEsQ0FDQSxPQUFBLFNBQUEsVUFQQSxHQ0FBLFNBQUE3QixHQUNBLGFBTUFBLFFBSkFDLE9BQUEsc0JBQUEsQ0FDQSwyQkFDQSxvQ0FMQSIsImZpbGUiOiJjcm0tdGFza3Mtd29ya2Zsb3dzLm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsIFtcbiAgICAnY3JtQ2FzZVR5cGUnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkbG9nLCAkc2NvcGUsIGNybUFwaSkge1xuICAgICRsb2cuZGVidWcoJ0NvbnRyb2xsZXI6IENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJyk7XG5cbiAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IFtdO1xuICAgICRzY29wZS5sb2FkaW5nID0ge1xuICAgICAgYWN0aXZpdHlPcHRpb25zOiBmYWxzZVxuICAgIH07XG5cbiAgICAoZnVuY3Rpb24gaW5pdCAoKSB7XG4gICAgICBmZXRjaEFjdGl2aXR5VHlwZXMoKTtcbiAgICB9KSgpO1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggYWN0aXZpdHkgdHlwZXMgd2hpY2ggYXJlIGNvbXBvbmVudHMgb2YgQ2l2aVRhc2sgb3IgQ2l2aURvY3VtZW50XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZldGNoQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICAkc2NvcGUubG9hZGluZy5hY3Rpdml0eU9wdGlvbnMgPSB0cnVlO1xuXG4gICAgICByZXR1cm4gY3JtQXBpKCdPcHRpb25WYWx1ZScsICdnZXQnLCB7XG4gICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICBjb21wb25lbnRfaWQ6IHsgJ0lOJzogWydDaXZpVGFzaycsICdDaXZpRG9jdW1lbnQnXSB9LFxuICAgICAgICBzZXF1ZW50aWFsOiAxLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogJ25hbWUnLFxuICAgICAgICAgIGxpbWl0OiAwXG4gICAgICAgIH1cbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgJHNjb3BlLmFjdGl2aXR5VHlwZU9wdGlvbnMgPSBkYXRhLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgICByZXR1cm4geyBpZDogdHlwZS5uYW1lLCB0ZXh0OiB0eXBlLmxhYmVsLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgICAgfSk7XG4gICAgICB9KS5maW5hbGx5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJHNjb3BlLmxvYWRpbmcuYWN0aXZpdHlPcHRpb25zID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXI7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MnLCBbXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iXX0= diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js index 4709fe25..6425e209 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -14,6 +14,9 @@ $log.debug('Controller: CaseTypeExtendedController'); $scope.activityTypeOptions = []; + $scope.loading = { + activityOptions: false + }; (function init () { fetchActivityTypes(); @@ -25,9 +28,11 @@ * @return {Promise} */ function fetchActivityTypes () { + $scope.loading.activityOptions = true; + return crmApi('OptionValue', 'get', { option_group_id: 'activity_type', - component_id: {'IN': ['CiviTask', 'CiviDocument']}, + component_id: { 'IN': ['CiviTask', 'CiviDocument'] }, sequential: 1, options: { sort: 'name', @@ -37,6 +42,8 @@ $scope.activityTypeOptions = data.values.map(function (type) { return { id: type.name, text: type.label, icon: type.icon }; }); + }).finally(function () { + $scope.loading.activityOptions = false; }); } } diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js index 576c3261..f28e3243 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -41,6 +41,10 @@ expect($scope.activityTypeOptions).toEqual(expectedValues); }); + it('hides the loader', function () { + expect($scope.loading.activityOptions).toBe(false); + }); + function initController (crmApi) { $scope = $rootScope.$new(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 63deb5b9..d10c9f2e 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -285,13 +285,12 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { _tasksAssignments_change_workflow_help_text($doc); _tasksAssignments_remove_non_civihr_tabs_from_workflow($doc); _tasksAssignments_allow_only_add_timeline_action($doc); - - $doc->find('.crmCaseType') - ->attr('ng-controller', 'CaseTypeExtendedController'); + _tasksAssignments_add_casetype_controller($doc); }); $changeSet->alterHtml('~/crmCaseType/timelineTable.html', function (phpQueryObject $doc) { _tasksAssignments_change_add_activity_dropdown_placeholder($doc); + _tasksAssignments_add_activity_options_loader($doc); }); $angular->add($changeSet); @@ -519,3 +518,25 @@ function _tasksAssignments_allow_only_add_timeline_action (phpQueryObject $doc) $actionDropdown->after($addTimelineBtn); $actionDropdown->remove(); } + +/** + * Adds a new controller to the case type container + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_add_casetype_controller ($doc) { + $doc->find('.crmCaseType') + ->attr('ng-controller', 'CaseTypeExtendedController'); +} + +/** + * Add a loader to the activity options + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_add_activity_options_loader ($doc) { + $doc->find('[crm-options=activityTypeOptions]') + ->attr('ng-hide', 'loading.activityOptions'); + $doc->find('[crm-options=activityTypeOptions]') + ->after('
'); +} From b20ce966ba54b4bd1763cccc9686bab10c93d071 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Tue, 17 Apr 2018 14:41:00 +0530 Subject: [PATCH 17/29] PCHR-3529: Change controller logic --- .../gulpfile.js | 1 + .../js/dist/crm-tasks-workflows.min.js | 4 ++-- .../configs/crm-case-type.config.js | 18 ++++++++++++++++++ .../casetype.extended.controller.js | 8 ++++---- .../casetype.extended.controller.spec.js | 3 ++- .../js/test/crm-tasks-workflows/karma.conf.js | 2 ++ .../mocks/controllers/case-type.controller.js | 6 ++++++ .../tasksassignments.php | 11 ----------- 8 files changed, 35 insertions(+), 18 deletions(-) create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js index bf64cf41..840c5801 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js +++ b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js @@ -23,6 +23,7 @@ gulp.task('sass', function (done) { gulp.task('crm-js-bundle', function () { return gulp.src([ 'js/src/crm-tasks-workflows/modules/*.js', + 'js/src/crm-tasks-workflows/configs/*.js', 'js/src/crm-tasks-workflows/controllers/*.js', 'js/src/crm-tasks-workflows.js' ]) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index 10cea865..2eb0352c 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(t){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(t){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(t){"use strict";function o(t,o,n){t.debug("Controller: CaseTypeExtendedController"),o.activityTypeOptions=[],o.loading={activityOptions:!1},o.loading.activityOptions=!0,n("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(t){o.activityTypeOptions=t.values.map(function(t){return{id:t.name,text:t.label,icon:t.icon}})}).finally(function(){o.loading.activityOptions=!1})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",o),o.$inject=["$log","$scope","crmApi"]}(),function(t){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjYXNldHlwZS5leHRlbmRlZC5jb250cm9sbGVyLmpzIiwiY3JtLXRhc2tzLXdvcmtmbG93cy5qcyJdLCJuYW1lcyI6WyJhbmd1bGFyIiwibW9kdWxlIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkbG9nIiwiJHNjb3BlIiwiY3JtQXBpIiwiZGVidWciLCJhY3Rpdml0eVR5cGVPcHRpb25zIiwibG9hZGluZyIsImFjdGl2aXR5T3B0aW9ucyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsIklOIiwic2VxdWVudGlhbCIsIm9wdGlvbnMiLCJzb3J0IiwibGltaXQiLCJ0aGVuIiwiZGF0YSIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiZmluYWxseSIsImNvbnRyb2xsZXIiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQVNBLFNBQUFFLEVBQUFDLEVBQUFDLEVBQUFDLEdBQ0FGLEVBQUFHLE1BQUEsMENBRUFGLEVBQUFHLG9CQUFBLEdBQ0FILEVBQUFJLFFBQUEsQ0FDQUMsaUJBQUEsR0FhQUwsRUFBQUksUUFBQUMsaUJBQUEsRUFFQUosRUFBQSxjQUFBLE1BQUEsQ0FDQUssZ0JBQUEsZ0JBQ0FDLGFBQUEsQ0FBQUMsR0FBQSxDQUFBLFdBQUEsaUJBQ0FDLFdBQUEsRUFDQUMsUUFBQSxDQUNBQyxLQUFBLE9BQ0FDLE1BQUEsS0FFQUMsS0FBQSxTQUFBQyxHQUNBZCxFQUFBRyxvQkFBQVcsRUFBQUMsT0FBQUMsSUFBQSxTQUFBQyxHQUNBLE1BQUEsQ0FBQUMsR0FBQUQsRUFBQUUsS0FBQUMsS0FBQUgsRUFBQUksTUFBQUMsS0FBQUwsRUFBQUssVUFFQUMsUUFBQSxXQUNBdkIsRUFBQUksUUFBQUMsaUJBQUEsSUFNQVQsUUE5Q0FDLE9BQUEsbUNBQ0EyQixXQUFBLDZCQUFBMUIsR0FFQUEsRUFBQTJCLFFBQUEsQ0FDQSxPQUFBLFNBQUEsVUFQQSxHQ0FBLFNBQUE3QixHQUNBLGFBTUFBLFFBSkFDLE9BQUEsc0JBQUEsQ0FDQSwyQkFDQSxvQ0FMQSIsImZpbGUiOiJjcm0tdGFza3Mtd29ya2Zsb3dzLm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsIFtcbiAgICAnY3JtQ2FzZVR5cGUnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkbG9nLCAkc2NvcGUsIGNybUFwaSkge1xuICAgICRsb2cuZGVidWcoJ0NvbnRyb2xsZXI6IENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJyk7XG5cbiAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IFtdO1xuICAgICRzY29wZS5sb2FkaW5nID0ge1xuICAgICAgYWN0aXZpdHlPcHRpb25zOiBmYWxzZVxuICAgIH07XG5cbiAgICAoZnVuY3Rpb24gaW5pdCAoKSB7XG4gICAgICBmZXRjaEFjdGl2aXR5VHlwZXMoKTtcbiAgICB9KSgpO1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggYWN0aXZpdHkgdHlwZXMgd2hpY2ggYXJlIGNvbXBvbmVudHMgb2YgQ2l2aVRhc2sgb3IgQ2l2aURvY3VtZW50XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZldGNoQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICAkc2NvcGUubG9hZGluZy5hY3Rpdml0eU9wdGlvbnMgPSB0cnVlO1xuXG4gICAgICByZXR1cm4gY3JtQXBpKCdPcHRpb25WYWx1ZScsICdnZXQnLCB7XG4gICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICBjb21wb25lbnRfaWQ6IHsgJ0lOJzogWydDaXZpVGFzaycsICdDaXZpRG9jdW1lbnQnXSB9LFxuICAgICAgICBzZXF1ZW50aWFsOiAxLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogJ25hbWUnLFxuICAgICAgICAgIGxpbWl0OiAwXG4gICAgICAgIH1cbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgJHNjb3BlLmFjdGl2aXR5VHlwZU9wdGlvbnMgPSBkYXRhLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgICByZXR1cm4geyBpZDogdHlwZS5uYW1lLCB0ZXh0OiB0eXBlLmxhYmVsLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgICAgfSk7XG4gICAgICB9KS5maW5hbGx5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJHNjb3BlLmxvYWRpbmcuYWN0aXZpdHlPcHRpb25zID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXI7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MnLCBbXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iXX0= +!function(o){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core").config(["$provide","$routeProvider",function(o,t){function e(o){return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",o}o.decorator("$route",e),e.$inject=["$delegate"]}])}(),function(o){"use strict";function t(o,t,e,n,r){t.debug("Controller: CaseTypeExtendedController"),o("CaseTypeCtrl",{$scope:e,crmApi:n,apiCalls:r}),e.activityTypeOptions=[],e.loading={activityOptions:!1},e.loading.activityOptions=!0,n("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(o){e.activityTypeOptions=o.values.map(function(o){return{id:o.name,text:o.label,icon:o.icon}})}).finally(function(){e.loading.activityOptions=!1})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$controller","$log","$scope","crmApi","apiCalls"]}(),function(o){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tY2FzZS10eXBlLmNvbmZpZy5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwicm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJyb3V0ZXMiLCJjb250cm9sbGVyIiwiZGVjb3JhdG9yIiwiJGluamVjdCIsIkNhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyIiwiJGNvbnRyb2xsZXIiLCIkbG9nIiwiJHNjb3BlIiwiY3JtQXBpIiwiYXBpQ2FsbHMiLCJkZWJ1ZyIsImFjdGl2aXR5VHlwZU9wdGlvbnMiLCJsb2FkaW5nIiwiYWN0aXZpdHlPcHRpb25zIiwib3B0aW9uX2dyb3VwX2lkIiwiY29tcG9uZW50X2lkIiwiSU4iLCJzZXF1ZW50aWFsIiwib3B0aW9ucyIsInNvcnQiLCJsaW1pdCIsInRoZW4iLCJkYXRhIiwidmFsdWVzIiwibWFwIiwidHlwZSIsImlkIiwibmFtZSIsInRleHQiLCJsYWJlbCIsImljb24iLCJmaW5hbGx5Il0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQWNBQSxRQVpBQyxPQUFBLDRCQUNBQyxPQUFBLENBQUEsV0FBQSxpQkFBQSxTQUFBQyxFQUFBQyxHQUtBLFNBQUFDLEVBQUFDLEdBR0EsT0FGQUEsRUFBQUMsT0FBQSxpQkFBQUMsV0FBQSw2QkFFQUYsRUFQQUgsRUFBQU0sVUFBQSxTQUFBSixHQUVBQSxFQUFBSyxRQUFBLENBQUEsZ0JBUEEsR0NBQSxTQUFBVixHQUNBLGFBU0EsU0FBQVcsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsR0FDQUgsRUFBQUksTUFBQSwwQ0FFQUwsRUFBQSxlQUFBLENBQUFFLE9BQUFBLEVBQUFDLE9BQUFBLEVBQUFDLFNBQUFBLElBRUFGLEVBQUFJLG9CQUFBLEdBQ0FKLEVBQUFLLFFBQUEsQ0FDQUMsaUJBQUEsR0FhQU4sRUFBQUssUUFBQUMsaUJBQUEsRUFFQUwsRUFBQSxjQUFBLE1BQUEsQ0FDQU0sZ0JBQUEsZ0JBQ0FDLGFBQUEsQ0FBQUMsR0FBQSxDQUFBLFdBQUEsaUJBQ0FDLFdBQUEsRUFDQUMsUUFBQSxDQUNBQyxLQUFBLE9BQ0FDLE1BQUEsS0FFQUMsS0FBQSxTQUFBQyxHQUNBZixFQUFBSSxvQkFBQVcsRUFBQUMsT0FBQUMsSUFBQSxTQUFBQyxHQUNBLE1BQUEsQ0FBQUMsR0FBQUQsRUFBQUUsS0FBQUMsS0FBQUgsRUFBQUksTUFBQUMsS0FBQUwsRUFBQUssVUFFQUMsUUFBQSxXQUNBeEIsRUFBQUssUUFBQUMsaUJBQUEsSUFJQXBCLFFBOUNBQyxPQUFBLG1DQUNBTyxXQUFBLDZCQUFBRyxHQUVBQSxFQUFBRCxRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxZQVBBLEdDQUEsU0FBQVYsR0FDQSxhQU1BQSxRQUpBQyxPQUFBLHNCQUFBLENBQ0EsMkJBQ0Esb0NBTEEiLCJmaWxlIjoiY3JtLXRhc2tzLXdvcmtmbG93cy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJywgW10pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLCBbXG4gICAgJ2NybUNhc2VUeXBlJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJylcbiAgICAuY29uZmlnKFsnJHByb3ZpZGUnLCAnJHJvdXRlUHJvdmlkZXInLCBmdW5jdGlvbiAoJHByb3ZpZGUsICRyb3V0ZVByb3ZpZGVyKSB7XG4gICAgICAkcHJvdmlkZS5kZWNvcmF0b3IoJyRyb3V0ZScsIHJvdXRlRGVjb3JhdG9yKTtcblxuICAgICAgcm91dGVEZWNvcmF0b3IuJGluamVjdCA9IFsnJGRlbGVnYXRlJ107XG5cbiAgICAgIGZ1bmN0aW9uIHJvdXRlRGVjb3JhdG9yICgkZGVsZWdhdGUpIHtcbiAgICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLmNvbnRyb2xsZXIgPSAnQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInO1xuXG4gICAgICAgIHJldHVybiAkZGVsZWdhdGU7XG4gICAgICB9XG4gICAgfV0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGNvbnRyb2xsZXInLCAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJywgJ2FwaUNhbGxzJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkY29udHJvbGxlciwgJGxvZywgJHNjb3BlLCBjcm1BcGksIGFwaUNhbGxzKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRjb250cm9sbGVyKCdDYXNlVHlwZUN0cmwnLCB7JHNjb3BlOiAkc2NvcGUsIGNybUFwaTogY3JtQXBpLCBhcGlDYWxsczogYXBpQ2FsbHN9KTtcblxuICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gW107XG4gICAgJHNjb3BlLmxvYWRpbmcgPSB7XG4gICAgICBhY3Rpdml0eU9wdGlvbnM6IGZhbHNlXG4gICAgfTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpO1xuICAgIH0pKCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhY3Rpdml0eSB0eXBlcyB3aGljaCBhcmUgY29tcG9uZW50cyBvZiBDaXZpVGFzayBvciBDaXZpRG9jdW1lbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZmV0Y2hBY3Rpdml0eVR5cGVzICgpIHtcbiAgICAgICRzY29wZS5sb2FkaW5nLmFjdGl2aXR5T3B0aW9ucyA9IHRydWU7XG5cbiAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgb3B0aW9uX2dyb3VwX2lkOiAnYWN0aXZpdHlfdHlwZScsXG4gICAgICAgIGNvbXBvbmVudF9pZDogeyAnSU4nOiBbJ0NpdmlUYXNrJywgJ0NpdmlEb2N1bWVudCddIH0sXG4gICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgfVxuICAgICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IGRhdGEudmFsdWVzLm1hcChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiB0eXBlLm5hbWUsIHRleHQ6IHR5cGUubGFiZWwsIGljb246IHR5cGUuaWNvbiB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pLmZpbmFsbHkoZnVuY3Rpb24gKCkge1xuICAgICAgICAkc2NvcGUubG9hZGluZy5hY3Rpdml0eU9wdGlvbnMgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzJywgW1xuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLFxuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIl19 diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js new file mode 100644 index 00000000..56f83eb8 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js @@ -0,0 +1,18 @@ +/* global angular */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.core') + .config(['$provide', '$routeProvider', function ($provide, $routeProvider) { + $provide.decorator('$route', routeDecorator); + + routeDecorator.$inject = ['$delegate']; + + function routeDecorator ($delegate) { + $delegate.routes['/caseType/:id'].controller = 'CaseTypeExtendedController'; + + return $delegate; + } + }]); +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js index 6425e209..511ad7b0 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -7,12 +7,14 @@ .controller('CaseTypeExtendedController', CaseTypeExtendedController); CaseTypeExtendedController.$inject = [ - '$log', '$scope', 'crmApi' + '$controller', '$log', '$scope', 'crmApi', 'apiCalls' ]; - function CaseTypeExtendedController ($log, $scope, crmApi) { + function CaseTypeExtendedController ($controller, $log, $scope, crmApi, apiCalls) { $log.debug('Controller: CaseTypeExtendedController'); + $controller('CaseTypeCtrl', {$scope: $scope, crmApi: crmApi, apiCalls: apiCalls}); + $scope.activityTypeOptions = []; $scope.loading = { activityOptions: false @@ -47,6 +49,4 @@ }); } } - - return CaseTypeExtendedController; })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js index f28e3243..581a82d0 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -50,7 +50,8 @@ $controller('CaseTypeExtendedController', { $scope: $scope, - crmApi: crmApi + crmApi: crmApi, + apiCalls: {} }); $scope.$digest(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js index 616b9b28..60129ccb 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js @@ -14,11 +14,13 @@ module.exports = function (config) { 'bower_components/angular-mocks/angular-mocks.js', { pattern: extPath + '/js/src/crm-tasks-workflows/modules/*.js' }, + { pattern: extPath + '/js/src/crm-tasks-workflows/configs/*.js' }, { pattern: extPath + '/js/src/crm-tasks-workflows/controllers/*.js' }, { pattern: extPath + '/js/src/crm-tasks-workflows.js' }, // the mocked components files { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/modules/*.js' }, + { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/controllers/*.js' }, { pattern: extPath + '/js/test/crm-tasks-workflows/mocks/data/*.js' }, // the test files diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js new file mode 100644 index 00000000..76a64780 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js @@ -0,0 +1,6 @@ +/* global angular */ + +(function () { + angular.module('crm-tasks-workflows.mocks') + .controller('CaseTypeCtrl', function ($scope, crmApi, apiCalls) {}); +})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index d10c9f2e..5f7fdc11 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -285,7 +285,6 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { _tasksAssignments_change_workflow_help_text($doc); _tasksAssignments_remove_non_civihr_tabs_from_workflow($doc); _tasksAssignments_allow_only_add_timeline_action($doc); - _tasksAssignments_add_casetype_controller($doc); }); $changeSet->alterHtml('~/crmCaseType/timelineTable.html', function (phpQueryObject $doc) { @@ -519,16 +518,6 @@ function _tasksAssignments_allow_only_add_timeline_action (phpQueryObject $doc) $actionDropdown->remove(); } -/** - * Adds a new controller to the case type container - * - * @param phpQueryObject $doc - */ -function _tasksAssignments_add_casetype_controller ($doc) { - $doc->find('.crmCaseType') - ->attr('ng-controller', 'CaseTypeExtendedController'); -} - /** * Add a loader to the activity options * From cfd357403791529504335689b7080ab8c3c4353e Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Tue, 17 Apr 2018 16:51:41 +0530 Subject: [PATCH 18/29] PCHR-3529: PR Feedback changes --- .../js/dist/crm-tasks-workflows.min.js | 4 +-- .../configs/crm-case-type.config.js | 15 ++++++++ .../casetype.extended.controller.js | 27 +++----------- .../casetype.extended.controller.spec.js | 36 ++++++------------- ...m-api.data.js => activity-options.data.js} | 2 +- .../tasksassignments.php | 13 ------- 6 files changed, 32 insertions(+), 65 deletions(-) rename uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/{crm-api.data.js => activity-options.data.js} (58%) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index 2eb0352c..23b4f087 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(o){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core").config(["$provide","$routeProvider",function(o,t){function e(o){return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",o}o.decorator("$route",e),e.$inject=["$delegate"]}])}(),function(o){"use strict";function t(o,t,e,n,r){t.debug("Controller: CaseTypeExtendedController"),o("CaseTypeCtrl",{$scope:e,crmApi:n,apiCalls:r}),e.activityTypeOptions=[],e.loading={activityOptions:!1},e.loading.activityOptions=!0,n("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}}).then(function(o){e.activityTypeOptions=o.values.map(function(o){return{id:o.name,text:o.label,icon:o.icon}})}).finally(function(){e.loading.activityOptions=!1})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",t),t.$inject=["$controller","$log","$scope","crmApi","apiCalls"]}(),function(o){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tY2FzZS10eXBlLmNvbmZpZy5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwicm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJyb3V0ZXMiLCJjb250cm9sbGVyIiwiZGVjb3JhdG9yIiwiJGluamVjdCIsIkNhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyIiwiJGNvbnRyb2xsZXIiLCIkbG9nIiwiJHNjb3BlIiwiY3JtQXBpIiwiYXBpQ2FsbHMiLCJkZWJ1ZyIsImFjdGl2aXR5VHlwZU9wdGlvbnMiLCJsb2FkaW5nIiwiYWN0aXZpdHlPcHRpb25zIiwib3B0aW9uX2dyb3VwX2lkIiwiY29tcG9uZW50X2lkIiwiSU4iLCJzZXF1ZW50aWFsIiwib3B0aW9ucyIsInNvcnQiLCJsaW1pdCIsInRoZW4iLCJkYXRhIiwidmFsdWVzIiwibWFwIiwidHlwZSIsImlkIiwibmFtZSIsInRleHQiLCJsYWJlbCIsImljb24iLCJmaW5hbGx5Il0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQWNBQSxRQVpBQyxPQUFBLDRCQUNBQyxPQUFBLENBQUEsV0FBQSxpQkFBQSxTQUFBQyxFQUFBQyxHQUtBLFNBQUFDLEVBQUFDLEdBR0EsT0FGQUEsRUFBQUMsT0FBQSxpQkFBQUMsV0FBQSw2QkFFQUYsRUFQQUgsRUFBQU0sVUFBQSxTQUFBSixHQUVBQSxFQUFBSyxRQUFBLENBQUEsZ0JBUEEsR0NBQSxTQUFBVixHQUNBLGFBU0EsU0FBQVcsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsR0FDQUgsRUFBQUksTUFBQSwwQ0FFQUwsRUFBQSxlQUFBLENBQUFFLE9BQUFBLEVBQUFDLE9BQUFBLEVBQUFDLFNBQUFBLElBRUFGLEVBQUFJLG9CQUFBLEdBQ0FKLEVBQUFLLFFBQUEsQ0FDQUMsaUJBQUEsR0FhQU4sRUFBQUssUUFBQUMsaUJBQUEsRUFFQUwsRUFBQSxjQUFBLE1BQUEsQ0FDQU0sZ0JBQUEsZ0JBQ0FDLGFBQUEsQ0FBQUMsR0FBQSxDQUFBLFdBQUEsaUJBQ0FDLFdBQUEsRUFDQUMsUUFBQSxDQUNBQyxLQUFBLE9BQ0FDLE1BQUEsS0FFQUMsS0FBQSxTQUFBQyxHQUNBZixFQUFBSSxvQkFBQVcsRUFBQUMsT0FBQUMsSUFBQSxTQUFBQyxHQUNBLE1BQUEsQ0FBQUMsR0FBQUQsRUFBQUUsS0FBQUMsS0FBQUgsRUFBQUksTUFBQUMsS0FBQUwsRUFBQUssVUFFQUMsUUFBQSxXQUNBeEIsRUFBQUssUUFBQUMsaUJBQUEsSUFJQXBCLFFBOUNBQyxPQUFBLG1DQUNBTyxXQUFBLDZCQUFBRyxHQUVBQSxFQUFBRCxRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxZQVBBLEdDQUEsU0FBQVYsR0FDQSxhQU1BQSxRQUpBQyxPQUFBLHNCQUFBLENBQ0EsMkJBQ0Esb0NBTEEiLCJmaWxlIjoiY3JtLXRhc2tzLXdvcmtmbG93cy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJywgW10pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLCBbXG4gICAgJ2NybUNhc2VUeXBlJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJylcbiAgICAuY29uZmlnKFsnJHByb3ZpZGUnLCAnJHJvdXRlUHJvdmlkZXInLCBmdW5jdGlvbiAoJHByb3ZpZGUsICRyb3V0ZVByb3ZpZGVyKSB7XG4gICAgICAkcHJvdmlkZS5kZWNvcmF0b3IoJyRyb3V0ZScsIHJvdXRlRGVjb3JhdG9yKTtcblxuICAgICAgcm91dGVEZWNvcmF0b3IuJGluamVjdCA9IFsnJGRlbGVnYXRlJ107XG5cbiAgICAgIGZ1bmN0aW9uIHJvdXRlRGVjb3JhdG9yICgkZGVsZWdhdGUpIHtcbiAgICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLmNvbnRyb2xsZXIgPSAnQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInO1xuXG4gICAgICAgIHJldHVybiAkZGVsZWdhdGU7XG4gICAgICB9XG4gICAgfV0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGNvbnRyb2xsZXInLCAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJywgJ2FwaUNhbGxzJ1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkY29udHJvbGxlciwgJGxvZywgJHNjb3BlLCBjcm1BcGksIGFwaUNhbGxzKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRjb250cm9sbGVyKCdDYXNlVHlwZUN0cmwnLCB7JHNjb3BlOiAkc2NvcGUsIGNybUFwaTogY3JtQXBpLCBhcGlDYWxsczogYXBpQ2FsbHN9KTtcblxuICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gW107XG4gICAgJHNjb3BlLmxvYWRpbmcgPSB7XG4gICAgICBhY3Rpdml0eU9wdGlvbnM6IGZhbHNlXG4gICAgfTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpO1xuICAgIH0pKCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhY3Rpdml0eSB0eXBlcyB3aGljaCBhcmUgY29tcG9uZW50cyBvZiBDaXZpVGFzayBvciBDaXZpRG9jdW1lbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZmV0Y2hBY3Rpdml0eVR5cGVzICgpIHtcbiAgICAgICRzY29wZS5sb2FkaW5nLmFjdGl2aXR5T3B0aW9ucyA9IHRydWU7XG5cbiAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgb3B0aW9uX2dyb3VwX2lkOiAnYWN0aXZpdHlfdHlwZScsXG4gICAgICAgIGNvbXBvbmVudF9pZDogeyAnSU4nOiBbJ0NpdmlUYXNrJywgJ0NpdmlEb2N1bWVudCddIH0sXG4gICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgfVxuICAgICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IGRhdGEudmFsdWVzLm1hcChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiB0eXBlLm5hbWUsIHRleHQ6IHR5cGUubGFiZWwsIGljb246IHR5cGUuaWNvbiB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pLmZpbmFsbHkoZnVuY3Rpb24gKCkge1xuICAgICAgICAkc2NvcGUubG9hZGluZy5hY3Rpdml0eU9wdGlvbnMgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzJywgW1xuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLFxuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIl19 +!function(o){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core").config(["$provide","$routeProvider",function(o,e){function t(o){function e(o){return o("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}})}return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",(o.routes["/caseType/:id"].resolve.activityOptions=e).$inject=["crmApi"],o}o.decorator("$route",t),t.$inject=["$delegate"]}])}(),function(o){"use strict";function e(o,e,t,r,n,s){e.debug("Controller: CaseTypeExtendedController"),o("CaseTypeCtrl",{$scope:t,crmApi:r,apiCalls:n}),t.activityTypeOptions=s.values.map(function(o){return{id:o.name,text:o.label,icon:o.icon}})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",e),e.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptions"]}(),function(o){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tY2FzZS10eXBlLmNvbmZpZy5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwicm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJhY3Rpdml0eU9wdGlvbnMiLCJjcm1BcGkiLCJvcHRpb25fZ3JvdXBfaWQiLCJjb21wb25lbnRfaWQiLCJJTiIsInNlcXVlbnRpYWwiLCJvcHRpb25zIiwic29ydCIsImxpbWl0Iiwicm91dGVzIiwiY29udHJvbGxlciIsInJlc29sdmUiLCIkaW5qZWN0IiwiZGVjb3JhdG9yIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkY29udHJvbGxlciIsIiRsb2ciLCIkc2NvcGUiLCJhcGlDYWxscyIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIl0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQTZCQUEsUUEzQkFDLE9BQUEsNEJBQ0FDLE9BQUEsQ0FBQSxXQUFBLGlCQUFBLFNBQUFDLEVBQUFDLEdBS0EsU0FBQUMsRUFBQUMsR0FNQSxTQUFBQyxFQUFBQyxHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0FDLGdCQUFBLGdCQUNBQyxhQUFBLENBQUFDLEdBQUEsQ0FBQSxXQUFBLGlCQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLEtBS0EsT0FqQkFULEVBQUFVLE9BQUEsaUJBQUFDLFdBQUEsOEJBQ0FYLEVBQUFVLE9BQUEsaUJBQUFFLFFBQUFYLGdCQUFBQSxHQUVBWSxRQUFBLENBQUEsVUFjQWIsRUF0QkFILEVBQUFpQixVQUFBLFNBQUFmLEdBRUFBLEVBQUFjLFFBQUEsQ0FBQSxnQkFQQSxHQ0FBLFNBQUFuQixHQUNBLGFBU0EsU0FBQXFCLEVBQUFDLEVBQUFDLEVBQUFDLEVBQUFoQixFQUFBaUIsRUFBQWxCLEdBQ0FnQixFQUFBRyxNQUFBLDBDQUVBSixFQUFBLGVBQUEsQ0FBQUUsT0FBQUEsRUFBQWhCLE9BQUFBLEVBQUFpQixTQUFBQSxJQVlBRCxFQUFBRyxvQkFBQXBCLEVBQUFxQixPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxRQUlBbkMsUUEzQkFDLE9BQUEsbUNBQ0FnQixXQUFBLDZCQUFBSSxHQUVBQSxFQUFBRixRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxXQUFBLG1CQVBBLEdDQUEsU0FBQW5CLEdBQ0EsYUFNQUEsUUFKQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLG9DQUxBIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScpXG4gICAgLmNvbmZpZyhbJyRwcm92aWRlJywgJyRyb3V0ZVByb3ZpZGVyJywgZnVuY3Rpb24gKCRwcm92aWRlLCAkcm91dGVQcm92aWRlcikge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCckcm91dGUnLCByb3V0ZURlY29yYXRvcik7XG5cbiAgICAgIHJvdXRlRGVjb3JhdG9yLiRpbmplY3QgPSBbJyRkZWxlZ2F0ZSddO1xuXG4gICAgICBmdW5jdGlvbiByb3V0ZURlY29yYXRvciAoJGRlbGVnYXRlKSB7XG4gICAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5jb250cm9sbGVyID0gJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJztcbiAgICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zO1xuXG4gICAgICAgIGFjdGl2aXR5T3B0aW9ucy4kaW5qZWN0ID0gWydjcm1BcGknXTtcblxuICAgICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnMgKGNybUFwaSkge1xuICAgICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgICAgY29tcG9uZW50X2lkOiB7ICdJTic6IFsnQ2l2aVRhc2snLCAnQ2l2aURvY3VtZW50J10gfSxcbiAgICAgICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAkZGVsZWdhdGU7XG4gICAgICB9XG4gICAgfV0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGNvbnRyb2xsZXInLCAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJywgJ2FwaUNhbGxzJywgJ2FjdGl2aXR5T3B0aW9ucydcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGNvbnRyb2xsZXIsICRsb2csICRzY29wZSwgY3JtQXBpLCBhcGlDYWxscywgYWN0aXZpdHlPcHRpb25zKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRjb250cm9sbGVyKCdDYXNlVHlwZUN0cmwnLCB7JHNjb3BlOiAkc2NvcGUsIGNybUFwaTogY3JtQXBpLCBhcGlDYWxsczogYXBpQ2FsbHN9KTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpO1xuICAgIH0pKCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhY3Rpdml0eSB0eXBlcyB3aGljaCBhcmUgY29tcG9uZW50cyBvZiBDaXZpVGFzayBvciBDaXZpRG9jdW1lbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZmV0Y2hBY3Rpdml0eVR5cGVzICgpIHtcbiAgICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHsgaWQ6IHR5cGUubmFtZSwgdGV4dDogdHlwZS5sYWJlbCwgaWNvbjogdHlwZS5pY29uIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cycsIFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycydcbiAgXSk7XG59KShhbmd1bGFyKTtcbiJdfQ== diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js index 56f83eb8..3eafec97 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js @@ -11,6 +11,21 @@ function routeDecorator ($delegate) { $delegate.routes['/caseType/:id'].controller = 'CaseTypeExtendedController'; + $delegate.routes['/caseType/:id'].resolve.activityOptions = activityOptions; + + activityOptions.$inject = ['crmApi']; + + function activityOptions (crmApi) { + return crmApi('OptionValue', 'get', { + option_group_id: 'activity_type', + component_id: { 'IN': ['CiviTask', 'CiviDocument'] }, + sequential: 1, + options: { + sort: 'name', + limit: 0 + } + }); + } return $delegate; } diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js index 511ad7b0..fc8e7b5f 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -7,19 +7,14 @@ .controller('CaseTypeExtendedController', CaseTypeExtendedController); CaseTypeExtendedController.$inject = [ - '$controller', '$log', '$scope', 'crmApi', 'apiCalls' + '$controller', '$log', '$scope', 'crmApi', 'apiCalls', 'activityOptions' ]; - function CaseTypeExtendedController ($controller, $log, $scope, crmApi, apiCalls) { + function CaseTypeExtendedController ($controller, $log, $scope, crmApi, apiCalls, activityOptions) { $log.debug('Controller: CaseTypeExtendedController'); $controller('CaseTypeCtrl', {$scope: $scope, crmApi: crmApi, apiCalls: apiCalls}); - $scope.activityTypeOptions = []; - $scope.loading = { - activityOptions: false - }; - (function init () { fetchActivityTypes(); })(); @@ -30,22 +25,8 @@ * @return {Promise} */ function fetchActivityTypes () { - $scope.loading.activityOptions = true; - - return crmApi('OptionValue', 'get', { - option_group_id: 'activity_type', - component_id: { 'IN': ['CiviTask', 'CiviDocument'] }, - sequential: 1, - options: { - sort: 'name', - limit: 0 - } - }).then(function (data) { - $scope.activityTypeOptions = data.values.map(function (type) { - return { id: type.name, text: type.label, icon: type.icon }; - }); - }).finally(function () { - $scope.loading.activityOptions = false; + $scope.activityTypeOptions = activityOptions.values.map(function (type) { + return { id: type.name, text: type.label, icon: type.icon }; }); } } diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js index 581a82d0..6141f5e2 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -4,54 +4,38 @@ 'use strict'; describe('CaseTypeExtendedController', function () { - var $controller, $rootScope, $scope, $q, crmApi, crmApiData; + var $controller, $rootScope, $scope, crmApi, activityOptionsData, activityOptions; beforeEach(function () { module('crm-tasks-workflows.mocks', 'crm-tasks-workflows.controllers'); }); - beforeEach(inject(function (_$controller_, _$rootScope_, _$q_, _crmApiData_) { + beforeEach(inject(function (_$controller_, _$rootScope_, _activityOptionsData_) { $controller = _$controller_; $rootScope = _$rootScope_; - $q = _$q_; - crmApiData = _crmApiData_; + activityOptionsData = _activityOptionsData_; - crmApi = jasmine.createSpy('crmApi').and.returnValue($q.resolve({ values: crmApiData })); + activityOptions = { values: activityOptionsData }; - initController(crmApi); + initController(crmApi, activityOptions); })); - it('calls the API to get CiviTask and CiviDocument Activity Types', function () { - expect(crmApi).toHaveBeenCalledWith('OptionValue', 'get', { - option_group_id: 'activity_type', - component_id: {'IN': ['CiviTask', 'CiviDocument']}, - sequential: 1, - options: { - sort: 'name', - limit: 0 - } - }); - }); - it('returns the mapped data from api', function () { - var expectedValues = crmApiData.map(function (type) { + var expectedValues = activityOptionsData.map(function (type) { return { id: type.name, text: type.label, icon: type.icon }; }); expect($scope.activityTypeOptions).toEqual(expectedValues); }); - it('hides the loader', function () { - expect($scope.loading.activityOptions).toBe(false); - }); - - function initController (crmApi) { + function initController (crmApi, activityOptions) { $scope = $rootScope.$new(); $controller('CaseTypeExtendedController', { $scope: $scope, - crmApi: crmApi, - apiCalls: {} + crmApi: {}, + apiCalls: {}, + activityOptions: activityOptions }); $scope.$digest(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/crm-api.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/activity-options.data.js similarity index 58% rename from uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/crm-api.data.js rename to uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/activity-options.data.js index 97d4b533..dc1ee161 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/crm-api.data.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/activity-options.data.js @@ -1,7 +1,7 @@ /* global angular */ (function () { - angular.module('crm-tasks-workflows.mocks').constant('crmApiData', [ + angular.module('crm-tasks-workflows.mocks').constant('activityOptionsData', [ { name: 'Jon Snow', label: 'Game of Thrones', icon: 'wolf' } ]); })(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 5f7fdc11..d706920d 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -289,7 +289,6 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { $changeSet->alterHtml('~/crmCaseType/timelineTable.html', function (phpQueryObject $doc) { _tasksAssignments_change_add_activity_dropdown_placeholder($doc); - _tasksAssignments_add_activity_options_loader($doc); }); $angular->add($changeSet); @@ -517,15 +516,3 @@ function _tasksAssignments_allow_only_add_timeline_action (phpQueryObject $doc) $actionDropdown->after($addTimelineBtn); $actionDropdown->remove(); } - -/** - * Add a loader to the activity options - * - * @param phpQueryObject $doc - */ -function _tasksAssignments_add_activity_options_loader ($doc) { - $doc->find('[crm-options=activityTypeOptions]') - ->attr('ng-hide', 'loading.activityOptions'); - $doc->find('[crm-options=activityTypeOptions]') - ->after('
'); -} From 4e4e9c2033626aef72bf528f9e83971f5697fff3 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Tue, 17 Apr 2018 12:39:09 +0530 Subject: [PATCH 19/29] PCHR-3575: Hide Columns and Show component type --- .../js/dist/crm-tasks-workflows.min.js | 2 +- .../casetype.extended.controller.js | 2 +- .../tasksassignments.php | 36 +++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index 23b4f087..dc31c3b8 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ !function(o){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core").config(["$provide","$routeProvider",function(o,e){function t(o){function e(o){return o("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}})}return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",(o.routes["/caseType/:id"].resolve.activityOptions=e).$inject=["crmApi"],o}o.decorator("$route",t),t.$inject=["$delegate"]}])}(),function(o){"use strict";function e(o,e,t,r,n,s){e.debug("Controller: CaseTypeExtendedController"),o("CaseTypeCtrl",{$scope:t,crmApi:r,apiCalls:n}),t.activityTypeOptions=s.values.map(function(o){return{id:o.name,text:o.label,icon:o.icon}})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",e),e.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptions"]}(),function(o){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tY2FzZS10eXBlLmNvbmZpZy5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwicm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJhY3Rpdml0eU9wdGlvbnMiLCJjcm1BcGkiLCJvcHRpb25fZ3JvdXBfaWQiLCJjb21wb25lbnRfaWQiLCJJTiIsInNlcXVlbnRpYWwiLCJvcHRpb25zIiwic29ydCIsImxpbWl0Iiwicm91dGVzIiwiY29udHJvbGxlciIsInJlc29sdmUiLCIkaW5qZWN0IiwiZGVjb3JhdG9yIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkY29udHJvbGxlciIsIiRsb2ciLCIkc2NvcGUiLCJhcGlDYWxscyIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIl0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQTZCQUEsUUEzQkFDLE9BQUEsNEJBQ0FDLE9BQUEsQ0FBQSxXQUFBLGlCQUFBLFNBQUFDLEVBQUFDLEdBS0EsU0FBQUMsRUFBQUMsR0FNQSxTQUFBQyxFQUFBQyxHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0FDLGdCQUFBLGdCQUNBQyxhQUFBLENBQUFDLEdBQUEsQ0FBQSxXQUFBLGlCQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLEtBS0EsT0FqQkFULEVBQUFVLE9BQUEsaUJBQUFDLFdBQUEsOEJBQ0FYLEVBQUFVLE9BQUEsaUJBQUFFLFFBQUFYLGdCQUFBQSxHQUVBWSxRQUFBLENBQUEsVUFjQWIsRUF0QkFILEVBQUFpQixVQUFBLFNBQUFmLEdBRUFBLEVBQUFjLFFBQUEsQ0FBQSxnQkFQQSxHQ0FBLFNBQUFuQixHQUNBLGFBU0EsU0FBQXFCLEVBQUFDLEVBQUFDLEVBQUFDLEVBQUFoQixFQUFBaUIsRUFBQWxCLEdBQ0FnQixFQUFBRyxNQUFBLDBDQUVBSixFQUFBLGVBQUEsQ0FBQUUsT0FBQUEsRUFBQWhCLE9BQUFBLEVBQUFpQixTQUFBQSxJQVlBRCxFQUFBRyxvQkFBQXBCLEVBQUFxQixPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxRQUlBbkMsUUEzQkFDLE9BQUEsbUNBQ0FnQixXQUFBLDZCQUFBSSxHQUVBQSxFQUFBRixRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxXQUFBLG1CQVBBLEdDQUEsU0FBQW5CLEdBQ0EsYUFNQUEsUUFKQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLG9DQUxBIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScpXG4gICAgLmNvbmZpZyhbJyRwcm92aWRlJywgJyRyb3V0ZVByb3ZpZGVyJywgZnVuY3Rpb24gKCRwcm92aWRlLCAkcm91dGVQcm92aWRlcikge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCckcm91dGUnLCByb3V0ZURlY29yYXRvcik7XG5cbiAgICAgIHJvdXRlRGVjb3JhdG9yLiRpbmplY3QgPSBbJyRkZWxlZ2F0ZSddO1xuXG4gICAgICBmdW5jdGlvbiByb3V0ZURlY29yYXRvciAoJGRlbGVnYXRlKSB7XG4gICAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5jb250cm9sbGVyID0gJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJztcbiAgICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zO1xuXG4gICAgICAgIGFjdGl2aXR5T3B0aW9ucy4kaW5qZWN0ID0gWydjcm1BcGknXTtcblxuICAgICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnMgKGNybUFwaSkge1xuICAgICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgICAgY29tcG9uZW50X2lkOiB7ICdJTic6IFsnQ2l2aVRhc2snLCAnQ2l2aURvY3VtZW50J10gfSxcbiAgICAgICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAkZGVsZWdhdGU7XG4gICAgICB9XG4gICAgfV0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGNvbnRyb2xsZXInLCAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJywgJ2FwaUNhbGxzJywgJ2FjdGl2aXR5T3B0aW9ucydcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGNvbnRyb2xsZXIsICRsb2csICRzY29wZSwgY3JtQXBpLCBhcGlDYWxscywgYWN0aXZpdHlPcHRpb25zKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRjb250cm9sbGVyKCdDYXNlVHlwZUN0cmwnLCB7JHNjb3BlOiAkc2NvcGUsIGNybUFwaTogY3JtQXBpLCBhcGlDYWxsczogYXBpQ2FsbHN9KTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpO1xuICAgIH0pKCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhY3Rpdml0eSB0eXBlcyB3aGljaCBhcmUgY29tcG9uZW50cyBvZiBDaXZpVGFzayBvciBDaXZpRG9jdW1lbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZmV0Y2hBY3Rpdml0eVR5cGVzICgpIHtcbiAgICAgICRzY29wZS5hY3Rpdml0eVR5cGVPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHsgaWQ6IHR5cGUubmFtZSwgdGV4dDogdHlwZS5sYWJlbCwgaWNvbjogdHlwZS5pY29uIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cycsIFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycydcbiAgXSk7XG59KShhbmd1bGFyKTtcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tY2FzZS10eXBlLmNvbmZpZy5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwicm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJhY3Rpdml0eU9wdGlvbnMiLCJjcm1BcGkiLCJvcHRpb25fZ3JvdXBfaWQiLCJjb21wb25lbnRfaWQiLCJJTiIsInNlcXVlbnRpYWwiLCJvcHRpb25zIiwic29ydCIsImxpbWl0Iiwicm91dGVzIiwiY29udHJvbGxlciIsInJlc29sdmUiLCIkaW5qZWN0IiwiZGVjb3JhdG9yIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkY29udHJvbGxlciIsIiRsb2ciLCIkc2NvcGUiLCJhcGlDYWxscyIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIl0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQTZCQUEsUUEzQkFDLE9BQUEsNEJBQ0FDLE9BQUEsQ0FBQSxXQUFBLGlCQUFBLFNBQUFDLEVBQUFDLEdBS0EsU0FBQUMsRUFBQUMsR0FNQSxTQUFBQyxFQUFBQyxHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0FDLGdCQUFBLGdCQUNBQyxhQUFBLENBQUFDLEdBQUEsQ0FBQSxXQUFBLGlCQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLEtBS0EsT0FqQkFULEVBQUFVLE9BQUEsaUJBQUFDLFdBQUEsOEJBQ0FYLEVBQUFVLE9BQUEsaUJBQUFFLFFBQUFYLGdCQUFBQSxHQUVBWSxRQUFBLENBQUEsVUFjQWIsRUF0QkFILEVBQUFpQixVQUFBLFNBQUFmLEdBRUFBLEVBQUFjLFFBQUEsQ0FBQSxnQkFQQSxHQ0FBLFNBQUFuQixHQUNBLGFBU0EsU0FBQXFCLEVBQUFDLEVBQUFDLEVBQUFDLEVBQUFoQixFQUFBaUIsRUFBQWxCLEdBQ0FnQixFQUFBRyxNQUFBLDBDQUVBSixFQUFBLGVBQUEsQ0FBQUUsT0FBQUEsRUFBQWhCLE9BQUFBLEVBQUFpQixTQUFBQSxJQVlBRCxFQUFBRyxvQkFBQXBCLEVBQUFxQixPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxRQUlBbkMsUUEzQkFDLE9BQUEsbUNBQ0FnQixXQUFBLDZCQUFBSSxHQUVBQSxFQUFBRixRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxXQUFBLG1CQVBBLEdDQUEsU0FBQW5CLEdBQ0EsYUFNQUEsUUFKQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLG9DQUxBIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScpXG4gICAgLmNvbmZpZyhbJyRwcm92aWRlJywgJyRyb3V0ZVByb3ZpZGVyJywgZnVuY3Rpb24gKCRwcm92aWRlLCAkcm91dGVQcm92aWRlcikge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCckcm91dGUnLCByb3V0ZURlY29yYXRvcik7XG5cbiAgICAgIHJvdXRlRGVjb3JhdG9yLiRpbmplY3QgPSBbJyRkZWxlZ2F0ZSddO1xuXG4gICAgICBmdW5jdGlvbiByb3V0ZURlY29yYXRvciAoJGRlbGVnYXRlKSB7XG4gICAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5jb250cm9sbGVyID0gJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJztcbiAgICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zO1xuXG4gICAgICAgIGFjdGl2aXR5T3B0aW9ucy4kaW5qZWN0ID0gWydjcm1BcGknXTtcblxuICAgICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnMgKGNybUFwaSkge1xuICAgICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgICAgY29tcG9uZW50X2lkOiB7ICdJTic6IFsnQ2l2aVRhc2snLCAnQ2l2aURvY3VtZW50J10gfSxcbiAgICAgICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAkZGVsZWdhdGU7XG4gICAgICB9XG4gICAgfV0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGNvbnRyb2xsZXInLCAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJywgJ2FwaUNhbGxzJywgJ2FjdGl2aXR5T3B0aW9ucydcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGNvbnRyb2xsZXIsICRsb2csICRzY29wZSwgY3JtQXBpLCBhcGlDYWxscywgYWN0aXZpdHlPcHRpb25zKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRjb250cm9sbGVyKCdDYXNlVHlwZUN0cmwnLCB7JHNjb3BlOiAkc2NvcGUsIGNybUFwaTogY3JtQXBpLCBhcGlDYWxsczogYXBpQ2FsbHN9KTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpXG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoIGFjdGl2aXR5IHR5cGVzIHdoaWNoIGFyZSBjb21wb25lbnRzIG9mIENpdmlUYXNrXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZldGNoQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IGFjdGl2aXR5T3B0aW9ucy52YWx1ZXMubWFwKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIHJldHVybiB7IGlkOiB0eXBlLm5hbWUsIHRleHQ6IHR5cGUubGFiZWwsIGljb246IHR5cGUuaWNvbiB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MnLCBbXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iXX0= diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js index fc8e7b5f..6eccaf7a 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -20,7 +20,7 @@ })(); /** - * Fetch activity types which are components of CiviTask or CiviDocument + * Fetch activity types * * @return {Promise} */ diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index d706920d..53338043 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -289,6 +289,8 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { $changeSet->alterHtml('~/crmCaseType/timelineTable.html', function (phpQueryObject $doc) { _tasksAssignments_change_add_activity_dropdown_placeholder($doc); + _tasksAssignments_remove_columns_from_timeline($doc); + _tasksAssignments_change_column_text($doc); }); $angular->add($changeSet); @@ -516,3 +518,37 @@ function _tasksAssignments_allow_only_add_timeline_action (phpQueryObject $doc) $actionDropdown->after($addTimelineBtn); $actionDropdown->remove(); } + +/** + * Remove columns from timeline + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_remove_columns_from_timeline ($doc) { + $selectColumnHeader = $doc->find('table th:nth-child(6)'); + $selectColumnBody = $doc->find('table td:nth-child(6)'); + $referenceColumnHeader = $doc->find('table th:nth-child(4)'); + $referenceColumnBody = $doc->find('table td:nth-child(4)'); + $statusColumnHeader = $doc->find('table th:nth-child(3)'); + $statusColumnBody = $doc->find('table td:nth-child(3)'); + + $elementsToRemove = [ + $selectColumnHeader, $selectColumnBody, + $referenceColumnHeader, $referenceColumnBody, + $statusColumnHeader, $statusColumnBody + ]; + + foreach( $elementsToRemove as $element ) { + $element->remove(); + } +} + +/** + * Change column text for timeline + * + * @param phpQueryObject $doc + */ +function _tasksAssignments_change_column_text ($doc) { + $doc->find('th:contains("Activity")') + ->text('Task / Document Type'); +} From a7b43958f9c417af8f49f00498d149477de86dd1 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Tue, 17 Apr 2018 19:35:11 +0530 Subject: [PATCH 20/29] PCHR-3575: Hide Columns and Show component type --- .../gulpfile.js | 2 +- .../js/dist/crm-tasks-workflows.min.js | 4 +- .../js/src/crm-tasks-workflows.js | 3 +- .../configs/crm-case-type.config.js | 33 ----------- .../casetype.extended.controller.js | 44 ++++++++++++--- .../decorators/route.decorator.js | 56 +++++++++++++++++++ .../modules/crm-tasks-workflows.decorator.js | 7 +++ .../casetype.extended.controller.spec.js | 36 ++++++++---- .../js/test/crm-tasks-workflows/karma.conf.js | 2 +- .../mocks/data/activity-options.data.js | 7 --- .../data/document-activity-options.data.js | 20 +++++++ .../mocks/data/task-activity-options.data.js | 20 +++++++ 12 files changed, 169 insertions(+), 65 deletions(-) delete mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js delete mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/activity-options.data.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/document-activity-options.data.js create mode 100644 uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/task-activity-options.data.js diff --git a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js index 840c5801..c07e3743 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js +++ b/uk.co.compucorp.civicrm.tasksassignments/gulpfile.js @@ -23,8 +23,8 @@ gulp.task('sass', function (done) { gulp.task('crm-js-bundle', function () { return gulp.src([ 'js/src/crm-tasks-workflows/modules/*.js', - 'js/src/crm-tasks-workflows/configs/*.js', 'js/src/crm-tasks-workflows/controllers/*.js', + 'js/src/crm-tasks-workflows/decorators/*.js', 'js/src/crm-tasks-workflows.js' ]) .pipe(sourcemaps.init()) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index dc31c3b8..d21a4714 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(o){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(o){"use strict";angular.module("crm-tasks-workflows.core").config(["$provide","$routeProvider",function(o,e){function t(o){function e(o){return o("OptionValue","get",{option_group_id:"activity_type",component_id:{IN:["CiviTask","CiviDocument"]},sequential:1,options:{sort:"name",limit:0}})}return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",(o.routes["/caseType/:id"].resolve.activityOptions=e).$inject=["crmApi"],o}o.decorator("$route",t),t.$inject=["$delegate"]}])}(),function(o){"use strict";function e(o,e,t,r,n,s){e.debug("Controller: CaseTypeExtendedController"),o("CaseTypeCtrl",{$scope:t,crmApi:r,apiCalls:n}),t.activityTypeOptions=s.values.map(function(o){return{id:o.name,text:o.label,icon:o.icon}})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",e),e.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptions"]}(),function(o){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tY2FzZS10eXBlLmNvbmZpZy5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwicm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJhY3Rpdml0eU9wdGlvbnMiLCJjcm1BcGkiLCJvcHRpb25fZ3JvdXBfaWQiLCJjb21wb25lbnRfaWQiLCJJTiIsInNlcXVlbnRpYWwiLCJvcHRpb25zIiwic29ydCIsImxpbWl0Iiwicm91dGVzIiwiY29udHJvbGxlciIsInJlc29sdmUiLCIkaW5qZWN0IiwiZGVjb3JhdG9yIiwiQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIiLCIkY29udHJvbGxlciIsIiRsb2ciLCIkc2NvcGUiLCJhcGlDYWxscyIsImRlYnVnIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJpZCIsIm5hbWUiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIl0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQTZCQUEsUUEzQkFDLE9BQUEsNEJBQ0FDLE9BQUEsQ0FBQSxXQUFBLGlCQUFBLFNBQUFDLEVBQUFDLEdBS0EsU0FBQUMsRUFBQUMsR0FNQSxTQUFBQyxFQUFBQyxHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0FDLGdCQUFBLGdCQUNBQyxhQUFBLENBQUFDLEdBQUEsQ0FBQSxXQUFBLGlCQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLEtBS0EsT0FqQkFULEVBQUFVLE9BQUEsaUJBQUFDLFdBQUEsOEJBQ0FYLEVBQUFVLE9BQUEsaUJBQUFFLFFBQUFYLGdCQUFBQSxHQUVBWSxRQUFBLENBQUEsVUFjQWIsRUF0QkFILEVBQUFpQixVQUFBLFNBQUFmLEdBRUFBLEVBQUFjLFFBQUEsQ0FBQSxnQkFQQSxHQ0FBLFNBQUFuQixHQUNBLGFBU0EsU0FBQXFCLEVBQUFDLEVBQUFDLEVBQUFDLEVBQUFoQixFQUFBaUIsRUFBQWxCLEdBQ0FnQixFQUFBRyxNQUFBLDBDQUVBSixFQUFBLGVBQUEsQ0FBQUUsT0FBQUEsRUFBQWhCLE9BQUFBLEVBQUFpQixTQUFBQSxJQVlBRCxFQUFBRyxvQkFBQXBCLEVBQUFxQixPQUFBQyxJQUFBLFNBQUFDLEdBQ0EsTUFBQSxDQUFBQyxHQUFBRCxFQUFBRSxLQUFBQyxLQUFBSCxFQUFBSSxNQUFBQyxLQUFBTCxFQUFBSyxRQUlBbkMsUUEzQkFDLE9BQUEsbUNBQ0FnQixXQUFBLDZCQUFBSSxHQUVBQSxFQUFBRixRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxXQUFBLG1CQVBBLEdDQUEsU0FBQW5CLEdBQ0EsYUFNQUEsUUFKQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLG9DQUxBIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScpXG4gICAgLmNvbmZpZyhbJyRwcm92aWRlJywgJyRyb3V0ZVByb3ZpZGVyJywgZnVuY3Rpb24gKCRwcm92aWRlLCAkcm91dGVQcm92aWRlcikge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCckcm91dGUnLCByb3V0ZURlY29yYXRvcik7XG5cbiAgICAgIHJvdXRlRGVjb3JhdG9yLiRpbmplY3QgPSBbJyRkZWxlZ2F0ZSddO1xuXG4gICAgICBmdW5jdGlvbiByb3V0ZURlY29yYXRvciAoJGRlbGVnYXRlKSB7XG4gICAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5jb250cm9sbGVyID0gJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJztcbiAgICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zO1xuXG4gICAgICAgIGFjdGl2aXR5T3B0aW9ucy4kaW5qZWN0ID0gWydjcm1BcGknXTtcblxuICAgICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnMgKGNybUFwaSkge1xuICAgICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgICAgY29tcG9uZW50X2lkOiB7ICdJTic6IFsnQ2l2aVRhc2snLCAnQ2l2aURvY3VtZW50J10gfSxcbiAgICAgICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAkZGVsZWdhdGU7XG4gICAgICB9XG4gICAgfV0pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJylcbiAgICAuY29udHJvbGxlcignQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInLCBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcik7XG5cbiAgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIuJGluamVjdCA9IFtcbiAgICAnJGNvbnRyb2xsZXInLCAnJGxvZycsICckc2NvcGUnLCAnY3JtQXBpJywgJ2FwaUNhbGxzJywgJ2FjdGl2aXR5T3B0aW9ucydcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGNvbnRyb2xsZXIsICRsb2csICRzY29wZSwgY3JtQXBpLCBhcGlDYWxscywgYWN0aXZpdHlPcHRpb25zKSB7XG4gICAgJGxvZy5kZWJ1ZygnQ29udHJvbGxlcjogQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXInKTtcblxuICAgICRjb250cm9sbGVyKCdDYXNlVHlwZUN0cmwnLCB7JHNjb3BlOiAkc2NvcGUsIGNybUFwaTogY3JtQXBpLCBhcGlDYWxsczogYXBpQ2FsbHN9KTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIGZldGNoQWN0aXZpdHlUeXBlcygpXG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoIGFjdGl2aXR5IHR5cGVzIHdoaWNoIGFyZSBjb21wb25lbnRzIG9mIENpdmlUYXNrXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZldGNoQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IGFjdGl2aXR5T3B0aW9ucy52YWx1ZXMubWFwKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIHJldHVybiB7IGlkOiB0eXBlLm5hbWUsIHRleHQ6IHR5cGUubGFiZWwsIGljb246IHR5cGUuaWNvbiB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MnLCBbXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iXX0= +!function(t){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(t){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(t){"use strict";angular.module("crm-tasks-workflows.decorator",[])}(),function(t){"use strict";function o(t,o,e,n,r,i,c){o.debug("Controller: CaseTypeExtendedController"),t("CaseTypeCtrl",{$scope:e,crmApi:n,apiCalls:r});var s,a,l=e.addActivity;e.addActivity=function(t,o){l(t,o),t.activityTypes.forEach(function(t){if(t.name===o)return delete t.reference_activity,!1})},s=i.values.map(function(t){return{id:t.name,text:t.label+" (Task)",icon:t.icon}}),a=c.values.map(function(t){return{id:t.name,text:t.label+" (Document)",icon:t.icon}}),e.activityTypeOptions=s.concat(a)}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",o),o.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptionsTask","activityOptionsDocument"]}(),function(t){"use strict";function e(o){return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviTask",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsTask=t).$inject=["crmApi"]}(),function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviDocument",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsDocument=t).$inject=["crmApi"]}(),o}angular.module("crm-tasks-workflows.decorator").config(["$provide","$routeProvider",function(t,o){t.decorator("$route",e)}]),e.$inject=["$delegate"]}(),function(t){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers","crm-tasks-workflows.decorator"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvci5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJyb3V0ZS5kZWNvcmF0b3IuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciIsIiRjb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImFwaUNhbGxzIiwiYWN0aXZpdHlPcHRpb25zVGFzayIsImFjdGl2aXR5T3B0aW9uc0RvY3VtZW50IiwiZGVidWciLCJ0YXNrT3B0aW9ucyIsImRvY3VtZW50T3B0aW9ucyIsIm9yaWdpbmFsQWRkQWN0aXZpdHkiLCJhZGRBY3Rpdml0eSIsImFjdGl2aXR5U2V0IiwiYWN0aXZpdHlUeXBlIiwiYWN0aXZpdHlUeXBlcyIsImZvckVhY2giLCJhY3Rpdml0eSIsIm5hbWUiLCJyZWZlcmVuY2VfYWN0aXZpdHkiLCJ2YWx1ZXMiLCJtYXAiLCJ0eXBlIiwiaWQiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsImNvbmNhdCIsImNvbnRyb2xsZXIiLCIkaW5qZWN0IiwiUm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJyb3V0ZXMiLCJvcHRpb25fZ3JvdXBfaWQiLCJjb21wb25lbnRfaWQiLCJzZXF1ZW50aWFsIiwib3B0aW9ucyIsInNvcnQiLCJsaW1pdCIsInJlc29sdmUiLCJhZGRBY3Rpdml0eU9wdGlvbnNUYXNrIiwiYWRkQWN0aXZpdHlPcHRpb25zRG9jdW1lbnQiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwiZGVjb3JhdG9yIl0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGdDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBU0EsU0FBQUUsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsR0FDQUwsRUFBQU0sTUFBQSwwQ0FFQVAsRUFBQSxlQUFBLENBQUFFLE9BQUFBLEVBQUFDLE9BQUFBLEVBQUFDLFNBQUFBLElBRUEsSUFnQ0FJLEVBSUFDLEVBcENBQyxFQUFBUixFQUFBUyxZQUVBVCxFQUFBUyxZQVlBLFNBQUFDLEVBQUFDLEdBRUFILEVBQUFFLEVBQUFDLEdBR0FELEVBQUFFLGNBQUFDLFFBQUEsU0FBQUMsR0FDQSxHQUFBQSxFQUFBQyxPQUFBSixFQUdBLGNBRkFHLEVBQUFFLG9CQUVBLEtBU0FWLEVBQUFILEVBQUFjLE9BQUFDLElBQUEsU0FBQUMsR0FDQSxNQUFBLENBQUFDLEdBQUFELEVBQUFKLEtBQUFNLEtBQUFGLEVBQUFHLE1BQUEsVUFBQUMsS0FBQUosRUFBQUksUUFHQWhCLEVBQUFILEVBQUFhLE9BQUFDLElBQUEsU0FBQUMsR0FDQSxNQUFBLENBQUFDLEdBQUFELEVBQUFKLEtBQUFNLEtBQUFGLEVBQUFHLE1BQUEsY0FBQUMsS0FBQUosRUFBQUksUUFHQXZCLEVBQUF3QixvQkFBQWxCLEVBQUFtQixPQUFBbEIsR0FHQVosUUF2REFDLE9BQUEsbUNBQ0E4QixXQUFBLDZCQUFBN0IsR0FFQUEsRUFBQThCLFFBQUEsQ0FDQSxjQUFBLE9BQUEsU0FBQSxTQUFBLFdBQUEsc0JBQUEsMkJBUEEsR0NBQSxTQUFBaEMsR0FDQSxhQVNBLFNBQUFpQyxFQUFBQyxHQXlDQSxPQXZDQUEsRUFBQUMsT0FBQSxpQkFBQUosV0FBQSw2QkFLQSxXQUlBLFNBQUF2QixFQUFBRixHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0E4QixnQkFBQSxnQkFDQUMsYUFBQSxXQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLE1BVkFQLEVBQUFDLE9BQUEsaUJBQUFPLFFBQUFsQyxvQkFBQUEsR0FDQXdCLFFBQUEsQ0FBQSxVQU5BVyxHQXFCQSxXQUlBLFNBQUFsQyxFQUFBSCxHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0E4QixnQkFBQSxnQkFDQUMsYUFBQSxlQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLE1BVkFQLEVBQUFDLE9BQUEsaUJBQUFPLFFBQUFqQyx3QkFBQUEsR0FDQXVCLFFBQUEsQ0FBQSxVQXRCQVksR0FxQ0FWLEVBRUFsQyxRQWxEQUMsT0FBQSxpQ0FDQTRDLE9BQUEsQ0FBQSxXQUFBLGlCQUFBLFNBQUFDLEVBQUFDLEdBQ0FELEVBQUFFLFVBQUEsU0FBQWYsTUFHQUEsRUFBQUQsUUFBQSxDQUFBLGFBUkEsR0NBQSxTQUFBaEMsR0FDQSxhQU9BQSxRQUxBQyxPQUFBLHNCQUFBLENBQ0EsMkJBQ0Esa0NBQ0Esa0NBTkEiLCJmaWxlIjoiY3JtLXRhc2tzLXdvcmtmbG93cy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJywgW10pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLCBbXG4gICAgJ2NybUNhc2VUeXBlJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3InLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnKVxuICAgIC5jb250cm9sbGVyKCdDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicsIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyKTtcblxuICBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlci4kaW5qZWN0ID0gW1xuICAgICckY29udHJvbGxlcicsICckbG9nJywgJyRzY29wZScsICdjcm1BcGknLCAnYXBpQ2FsbHMnLCAnYWN0aXZpdHlPcHRpb25zVGFzaycsICdhY3Rpdml0eU9wdGlvbnNEb2N1bWVudCdcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGNvbnRyb2xsZXIsICRsb2csICRzY29wZSwgY3JtQXBpLCBhcGlDYWxscywgYWN0aXZpdHlPcHRpb25zVGFzaywgYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQpIHtcbiAgICAkbG9nLmRlYnVnKCdDb250cm9sbGVyOiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicpO1xuXG4gICAgJGNvbnRyb2xsZXIoJ0Nhc2VUeXBlQ3RybCcsIHskc2NvcGU6ICRzY29wZSwgY3JtQXBpOiBjcm1BcGksIGFwaUNhbGxzOiBhcGlDYWxsc30pO1xuXG4gICAgdmFyIG9yaWdpbmFsQWRkQWN0aXZpdHkgPSAkc2NvcGUuYWRkQWN0aXZpdHk7XG5cbiAgICAkc2NvcGUuYWRkQWN0aXZpdHkgPSBhZGRBY3Rpdml0eTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIHByZXBhcmVBY3Rpdml0eVR5cGVzKCk7XG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBuZXcgYWN0aXZpdHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFjdGl2aXR5U2V0XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGFjdGl2aXR5VHlwZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFkZEFjdGl2aXR5IChhY3Rpdml0eVNldCwgYWN0aXZpdHlUeXBlKSB7XG4gICAgICAvLyBjYWxsIHBhcmVudFxuICAgICAgb3JpZ2luYWxBZGRBY3Rpdml0eShhY3Rpdml0eVNldCwgYWN0aXZpdHlUeXBlKTtcblxuICAgICAgLy8gcmVtb3ZlIHJlZmVyZW5jZV9hY3Rpdml0eSBwcm9wZXJ0eSBmcm9tIG5ld2x5IGFkZGVkIGFjdGl2aXR5XG4gICAgICBhY3Rpdml0eVNldC5hY3Rpdml0eVR5cGVzLmZvckVhY2goZnVuY3Rpb24gKGFjdGl2aXR5KSB7XG4gICAgICAgIGlmIChhY3Rpdml0eS5uYW1lID09PSBhY3Rpdml0eVR5cGUpIHtcbiAgICAgICAgICBkZWxldGUgYWN0aXZpdHkucmVmZXJlbmNlX2FjdGl2aXR5O1xuXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgY29tcG9uZW50IHR5cGUgbGFiZWwgdG8gYWN0aXZpdHkgdHlwZXNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwcmVwYXJlQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICB2YXIgdGFza09wdGlvbnMgPSBhY3Rpdml0eU9wdGlvbnNUYXNrLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHsgaWQ6IHR5cGUubmFtZSwgdGV4dDogKHR5cGUubGFiZWwgKyAnIChUYXNrKScpLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgZG9jdW1lbnRPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQudmFsdWVzLm1hcChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICByZXR1cm4geyBpZDogdHlwZS5uYW1lLCB0ZXh0OiAodHlwZS5sYWJlbCArICcgKERvY3VtZW50KScpLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgIH0pO1xuXG4gICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IHRhc2tPcHRpb25zLmNvbmNhdChkb2N1bWVudE9wdGlvbnMpO1xuICAgIH1cbiAgfVxufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcicpXG4gICAgLmNvbmZpZyhbJyRwcm92aWRlJywgJyRyb3V0ZVByb3ZpZGVyJywgZnVuY3Rpb24gKCRwcm92aWRlLCAkcm91dGVQcm92aWRlcikge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCckcm91dGUnLCBSb3V0ZURlY29yYXRvcik7XG4gICAgfV0pO1xuXG4gIFJvdXRlRGVjb3JhdG9yLiRpbmplY3QgPSBbJyRkZWxlZ2F0ZSddO1xuXG4gIGZ1bmN0aW9uIFJvdXRlRGVjb3JhdG9yICgkZGVsZWdhdGUpIHtcbiAgICAoZnVuY3Rpb24gaW5pdCAoKSB7XG4gICAgICAkZGVsZWdhdGUucm91dGVzWycvY2FzZVR5cGUvOmlkJ10uY29udHJvbGxlciA9ICdDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcic7XG4gICAgICBhZGRBY3Rpdml0eU9wdGlvbnNUYXNrKCk7XG4gICAgICBhZGRBY3Rpdml0eU9wdGlvbnNEb2N1bWVudCgpO1xuICAgIH0pKCk7XG5cbiAgICBmdW5jdGlvbiBhZGRBY3Rpdml0eU9wdGlvbnNUYXNrICgpIHtcbiAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5yZXNvbHZlLmFjdGl2aXR5T3B0aW9uc1Rhc2sgPSBhY3Rpdml0eU9wdGlvbnNUYXNrO1xuICAgICAgYWN0aXZpdHlPcHRpb25zVGFzay4kaW5qZWN0ID0gWydjcm1BcGknXTtcblxuICAgICAgZnVuY3Rpb24gYWN0aXZpdHlPcHRpb25zVGFzayAoY3JtQXBpKSB7XG4gICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICBvcHRpb25fZ3JvdXBfaWQ6ICdhY3Rpdml0eV90eXBlJyxcbiAgICAgICAgICBjb21wb25lbnRfaWQ6ICdDaXZpVGFzaycsXG4gICAgICAgICAgc2VxdWVudGlhbDogMSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgICBsaW1pdDogMFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkQWN0aXZpdHlPcHRpb25zRG9jdW1lbnQgKCkge1xuICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQgPSBhY3Rpdml0eU9wdGlvbnNEb2N1bWVudDtcbiAgICAgIGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50LiRpbmplY3QgPSBbJ2NybUFwaSddO1xuXG4gICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnNEb2N1bWVudCAoY3JtQXBpKSB7XG4gICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICBvcHRpb25fZ3JvdXBfaWQ6ICdhY3Rpdml0eV90eXBlJyxcbiAgICAgICAgICBjb21wb25lbnRfaWQ6ICdDaXZpRG9jdW1lbnQnLFxuICAgICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgc29ydDogJ25hbWUnLFxuICAgICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAkZGVsZWdhdGU7XG4gIH1cbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cycsIFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9yJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIl19 diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js index fe4be3f1..62f092d8 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js @@ -5,6 +5,7 @@ angular.module('crm-tasks-workflows', [ 'crm-tasks-workflows.core', - 'crm-tasks-workflows.controllers' + 'crm-tasks-workflows.controllers', + 'crm-tasks-workflows.decorator' ]); })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js deleted file mode 100644 index 3eafec97..00000000 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/configs/crm-case-type.config.js +++ /dev/null @@ -1,33 +0,0 @@ -/* global angular */ - -(function (angular) { - 'use strict'; - - angular.module('crm-tasks-workflows.core') - .config(['$provide', '$routeProvider', function ($provide, $routeProvider) { - $provide.decorator('$route', routeDecorator); - - routeDecorator.$inject = ['$delegate']; - - function routeDecorator ($delegate) { - $delegate.routes['/caseType/:id'].controller = 'CaseTypeExtendedController'; - $delegate.routes['/caseType/:id'].resolve.activityOptions = activityOptions; - - activityOptions.$inject = ['crmApi']; - - function activityOptions (crmApi) { - return crmApi('OptionValue', 'get', { - option_group_id: 'activity_type', - component_id: { 'IN': ['CiviTask', 'CiviDocument'] }, - sequential: 1, - options: { - sort: 'name', - limit: 0 - } - }); - } - - return $delegate; - } - }]); -})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js index 6eccaf7a..8add7a8a 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -7,27 +7,55 @@ .controller('CaseTypeExtendedController', CaseTypeExtendedController); CaseTypeExtendedController.$inject = [ - '$controller', '$log', '$scope', 'crmApi', 'apiCalls', 'activityOptions' + '$controller', '$log', '$scope', 'crmApi', 'apiCalls', 'activityOptionsTask', 'activityOptionsDocument' ]; - function CaseTypeExtendedController ($controller, $log, $scope, crmApi, apiCalls, activityOptions) { + function CaseTypeExtendedController ($controller, $log, $scope, crmApi, apiCalls, activityOptionsTask, activityOptionsDocument) { $log.debug('Controller: CaseTypeExtendedController'); $controller('CaseTypeCtrl', {$scope: $scope, crmApi: crmApi, apiCalls: apiCalls}); + var originalAddActivity = $scope.addActivity; + + $scope.addActivity = addActivity; + (function init () { - fetchActivityTypes(); + prepareActivityTypes(); })(); /** - * Fetch activity types + * Add new activity * - * @return {Promise} + * @param {Array} activitySet + * @param {String} activityType + */ + function addActivity (activitySet, activityType) { + // call parent + originalAddActivity(activitySet, activityType); + + // remove reference_activity property from newly added activity + activitySet.activityTypes.forEach(function (activity) { + if (activity.name === activityType) { + delete activity.reference_activity; + + return false; + } + }); + } + + /** + * Add component type label to activity types */ - function fetchActivityTypes () { - $scope.activityTypeOptions = activityOptions.values.map(function (type) { - return { id: type.name, text: type.label, icon: type.icon }; + function prepareActivityTypes () { + var taskOptions = activityOptionsTask.values.map(function (type) { + return { id: type.name, text: (type.label + ' (Task)'), icon: type.icon }; }); + + var documentOptions = activityOptionsDocument.values.map(function (type) { + return { id: type.name, text: (type.label + ' (Document)'), icon: type.icon }; + }); + + $scope.activityTypeOptions = taskOptions.concat(documentOptions); } } })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js new file mode 100644 index 00000000..908a56c8 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js @@ -0,0 +1,56 @@ +/* global angular */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.decorator') + .config(['$provide', '$routeProvider', function ($provide, $routeProvider) { + $provide.decorator('$route', RouteDecorator); + }]); + + RouteDecorator.$inject = ['$delegate']; + + function RouteDecorator ($delegate) { + (function init () { + $delegate.routes['/caseType/:id'].controller = 'CaseTypeExtendedController'; + addActivityOptionsTask(); + addActivityOptionsDocument(); + })(); + + function addActivityOptionsTask () { + $delegate.routes['/caseType/:id'].resolve.activityOptionsTask = activityOptionsTask; + activityOptionsTask.$inject = ['crmApi']; + + function activityOptionsTask (crmApi) { + return crmApi('OptionValue', 'get', { + option_group_id: 'activity_type', + component_id: 'CiviTask', + sequential: 1, + options: { + sort: 'name', + limit: 0 + } + }); + } + } + + function addActivityOptionsDocument () { + $delegate.routes['/caseType/:id'].resolve.activityOptionsDocument = activityOptionsDocument; + activityOptionsDocument.$inject = ['crmApi']; + + function activityOptionsDocument (crmApi) { + return crmApi('OptionValue', 'get', { + option_group_id: 'activity_type', + component_id: 'CiviDocument', + sequential: 1, + options: { + sort: 'name', + limit: 0 + } + }); + } + } + + return $delegate; + } +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js new file mode 100644 index 00000000..937ffce9 --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js @@ -0,0 +1,7 @@ +/* global angular */ + +(function (angular) { + 'use strict'; + + angular.module('crm-tasks-workflows.decorator', []); +})(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js index 6141f5e2..a29d933a 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -4,38 +4,50 @@ 'use strict'; describe('CaseTypeExtendedController', function () { - var $controller, $rootScope, $scope, crmApi, activityOptionsData, activityOptions; + var $controller, $rootScope, $scope, TaskActivityOptionsData, DocumentActivityOptionsData; beforeEach(function () { module('crm-tasks-workflows.mocks', 'crm-tasks-workflows.controllers'); }); - beforeEach(inject(function (_$controller_, _$rootScope_, _activityOptionsData_) { + beforeEach(inject(function (_$controller_, _$rootScope_, _TaskActivityOptionsData_, _DocumentActivityOptionsData_) { $controller = _$controller_; $rootScope = _$rootScope_; - activityOptionsData = _activityOptionsData_; + DocumentActivityOptionsData = _DocumentActivityOptionsData_; + TaskActivityOptionsData = _TaskActivityOptionsData_; - activityOptions = { values: activityOptionsData }; - - initController(crmApi, activityOptions); + initController(); })); - it('returns the mapped data from api', function () { - var expectedValues = activityOptionsData.map(function (type) { - return { id: type.name, text: type.label, icon: type.icon }; + describe('when initialized', function () { + var expectedValue; + + beforeEach(function () { + var taskOptions = TaskActivityOptionsData.map(function (type) { + return { id: type.name, text: (type.label + ' (Task)'), icon: type.icon }; + }); + + var documentOptions = DocumentActivityOptionsData.map(function (type) { + return { id: type.name, text: (type.label + ' (Document)'), icon: type.icon }; + }); + + expectedValue = taskOptions.concat(documentOptions); }); - expect($scope.activityTypeOptions).toEqual(expectedValues); + it('stores the activity options after adding component type in label', function () { + expect($scope.activityTypeOptions).toEqual(expectedValue); + }); }); - function initController (crmApi, activityOptions) { + function initController () { $scope = $rootScope.$new(); $controller('CaseTypeExtendedController', { $scope: $scope, crmApi: {}, apiCalls: {}, - activityOptions: activityOptions + activityOptionsTask: { values: TaskActivityOptionsData }, + activityOptionsDocument: { values: DocumentActivityOptionsData } }); $scope.$digest(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js index 60129ccb..becf1dcc 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/karma.conf.js @@ -14,8 +14,8 @@ module.exports = function (config) { 'bower_components/angular-mocks/angular-mocks.js', { pattern: extPath + '/js/src/crm-tasks-workflows/modules/*.js' }, - { pattern: extPath + '/js/src/crm-tasks-workflows/configs/*.js' }, { pattern: extPath + '/js/src/crm-tasks-workflows/controllers/*.js' }, + { pattern: extPath + '/js/src/crm-tasks-workflows/decorators/*.js' }, { pattern: extPath + '/js/src/crm-tasks-workflows.js' }, // the mocked components files diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/activity-options.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/activity-options.data.js deleted file mode 100644 index dc1ee161..00000000 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/activity-options.data.js +++ /dev/null @@ -1,7 +0,0 @@ -/* global angular */ - -(function () { - angular.module('crm-tasks-workflows.mocks').constant('activityOptionsData', [ - { name: 'Jon Snow', label: 'Game of Thrones', icon: 'wolf' } - ]); -})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/document-activity-options.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/document-activity-options.data.js new file mode 100644 index 00000000..140a760e --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/document-activity-options.data.js @@ -0,0 +1,20 @@ +/* global angular */ + +(function () { + angular.module('crm-tasks-workflows.mocks').constant('DocumentActivityOptionsData', [ + { + 'id': '1016', + 'option_group_id': '2', + 'label': 'Certificate of sponsorship (COS)', + 'value': '61', + 'name': 'Certificate of sponsorship (COS)', + 'filter': '0', + 'is_default': '0', + 'weight': '63', + 'is_optgroup': '0', + 'is_reserved': '0', + 'is_active': '1', + 'component_id': '11' + } + ]); +})(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/task-activity-options.data.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/task-activity-options.data.js new file mode 100644 index 00000000..6d2e280e --- /dev/null +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/data/task-activity-options.data.js @@ -0,0 +1,20 @@ +/* global angular */ + +(function () { + angular.module('crm-tasks-workflows.mocks').constant('TaskActivityOptionsData', [ + { + 'id': '1108', + 'option_group_id': '2', + 'label': 'Background Check', + 'value': '99', + 'name': 'Background Check', + 'filter': '0', + 'is_default': '0', + 'weight': '102', + 'is_optgroup': '0', + 'is_reserved': '0', + 'is_active': '1', + 'component_id': '10' + } + ]); +})(); From 657b7c4430c24ffc518e142ecfda82f7c5ce4439 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Wed, 18 Apr 2018 11:48:17 +0530 Subject: [PATCH 21/29] PCHR-3575: Unit Tests --- .../js/dist/crm-tasks-workflows.min.js | 4 +- .../js/src/crm-tasks-workflows.js | 2 +- .../casetype.extended.controller.js | 28 +++++--- .../decorators/route.decorator.js | 2 +- .../modules/crm-tasks-workflows.decorator.js | 2 +- .../casetype.extended.controller.spec.js | 66 ++++++++++++++----- .../mocks/controllers/case-type.controller.js | 4 +- 7 files changed, 78 insertions(+), 30 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index d21a4714..b8d494c1 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(t){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(t){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(t){"use strict";angular.module("crm-tasks-workflows.decorator",[])}(),function(t){"use strict";function o(t,o,e,n,r,i,c){o.debug("Controller: CaseTypeExtendedController"),t("CaseTypeCtrl",{$scope:e,crmApi:n,apiCalls:r});var s,a,l=e.addActivity;e.addActivity=function(t,o){l(t,o),t.activityTypes.forEach(function(t){if(t.name===o)return delete t.reference_activity,!1})},s=i.values.map(function(t){return{id:t.name,text:t.label+" (Task)",icon:t.icon}}),a=c.values.map(function(t){return{id:t.name,text:t.label+" (Document)",icon:t.icon}}),e.activityTypeOptions=s.concat(a)}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",o),o.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptionsTask","activityOptionsDocument"]}(),function(t){"use strict";function e(o){return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviTask",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsTask=t).$inject=["crmApi"]}(),function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviDocument",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsDocument=t).$inject=["crmApi"]}(),o}angular.module("crm-tasks-workflows.decorator").config(["$provide","$routeProvider",function(t,o){t.decorator("$route",e)}]),e.$inject=["$delegate"]}(),function(t){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers","crm-tasks-workflows.decorator"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvci5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJyb3V0ZS5kZWNvcmF0b3IuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciIsIiRjb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImFwaUNhbGxzIiwiYWN0aXZpdHlPcHRpb25zVGFzayIsImFjdGl2aXR5T3B0aW9uc0RvY3VtZW50IiwiZGVidWciLCJ0YXNrT3B0aW9ucyIsImRvY3VtZW50T3B0aW9ucyIsIm9yaWdpbmFsQWRkQWN0aXZpdHkiLCJhZGRBY3Rpdml0eSIsImFjdGl2aXR5U2V0IiwiYWN0aXZpdHlUeXBlIiwiYWN0aXZpdHlUeXBlcyIsImZvckVhY2giLCJhY3Rpdml0eSIsIm5hbWUiLCJyZWZlcmVuY2VfYWN0aXZpdHkiLCJ2YWx1ZXMiLCJtYXAiLCJ0eXBlIiwiaWQiLCJ0ZXh0IiwibGFiZWwiLCJpY29uIiwiYWN0aXZpdHlUeXBlT3B0aW9ucyIsImNvbmNhdCIsImNvbnRyb2xsZXIiLCIkaW5qZWN0IiwiUm91dGVEZWNvcmF0b3IiLCIkZGVsZWdhdGUiLCJyb3V0ZXMiLCJvcHRpb25fZ3JvdXBfaWQiLCJjb21wb25lbnRfaWQiLCJzZXF1ZW50aWFsIiwib3B0aW9ucyIsInNvcnQiLCJsaW1pdCIsInJlc29sdmUiLCJhZGRBY3Rpdml0eU9wdGlvbnNUYXNrIiwiYWRkQWN0aXZpdHlPcHRpb25zRG9jdW1lbnQiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwiZGVjb3JhdG9yIl0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGdDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBU0EsU0FBQUUsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsR0FDQUwsRUFBQU0sTUFBQSwwQ0FFQVAsRUFBQSxlQUFBLENBQUFFLE9BQUFBLEVBQUFDLE9BQUFBLEVBQUFDLFNBQUFBLElBRUEsSUFnQ0FJLEVBSUFDLEVBcENBQyxFQUFBUixFQUFBUyxZQUVBVCxFQUFBUyxZQVlBLFNBQUFDLEVBQUFDLEdBRUFILEVBQUFFLEVBQUFDLEdBR0FELEVBQUFFLGNBQUFDLFFBQUEsU0FBQUMsR0FDQSxHQUFBQSxFQUFBQyxPQUFBSixFQUdBLGNBRkFHLEVBQUFFLG9CQUVBLEtBU0FWLEVBQUFILEVBQUFjLE9BQUFDLElBQUEsU0FBQUMsR0FDQSxNQUFBLENBQUFDLEdBQUFELEVBQUFKLEtBQUFNLEtBQUFGLEVBQUFHLE1BQUEsVUFBQUMsS0FBQUosRUFBQUksUUFHQWhCLEVBQUFILEVBQUFhLE9BQUFDLElBQUEsU0FBQUMsR0FDQSxNQUFBLENBQUFDLEdBQUFELEVBQUFKLEtBQUFNLEtBQUFGLEVBQUFHLE1BQUEsY0FBQUMsS0FBQUosRUFBQUksUUFHQXZCLEVBQUF3QixvQkFBQWxCLEVBQUFtQixPQUFBbEIsR0FHQVosUUF2REFDLE9BQUEsbUNBQ0E4QixXQUFBLDZCQUFBN0IsR0FFQUEsRUFBQThCLFFBQUEsQ0FDQSxjQUFBLE9BQUEsU0FBQSxTQUFBLFdBQUEsc0JBQUEsMkJBUEEsR0NBQSxTQUFBaEMsR0FDQSxhQVNBLFNBQUFpQyxFQUFBQyxHQXlDQSxPQXZDQUEsRUFBQUMsT0FBQSxpQkFBQUosV0FBQSw2QkFLQSxXQUlBLFNBQUF2QixFQUFBRixHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0E4QixnQkFBQSxnQkFDQUMsYUFBQSxXQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLE1BVkFQLEVBQUFDLE9BQUEsaUJBQUFPLFFBQUFsQyxvQkFBQUEsR0FDQXdCLFFBQUEsQ0FBQSxVQU5BVyxHQXFCQSxXQUlBLFNBQUFsQyxFQUFBSCxHQUNBLE9BQUFBLEVBQUEsY0FBQSxNQUFBLENBQ0E4QixnQkFBQSxnQkFDQUMsYUFBQSxlQUNBQyxXQUFBLEVBQ0FDLFFBQUEsQ0FDQUMsS0FBQSxPQUNBQyxNQUFBLE1BVkFQLEVBQUFDLE9BQUEsaUJBQUFPLFFBQUFqQyx3QkFBQUEsR0FDQXVCLFFBQUEsQ0FBQSxVQXRCQVksR0FxQ0FWLEVBRUFsQyxRQWxEQUMsT0FBQSxpQ0FDQTRDLE9BQUEsQ0FBQSxXQUFBLGlCQUFBLFNBQUFDLEVBQUFDLEdBQ0FELEVBQUFFLFVBQUEsU0FBQWYsTUFHQUEsRUFBQUQsUUFBQSxDQUFBLGFBUkEsR0NBQSxTQUFBaEMsR0FDQSxhQU9BQSxRQUxBQyxPQUFBLHNCQUFBLENBQ0EsMkJBQ0Esa0NBQ0Esa0NBTkEiLCJmaWxlIjoiY3JtLXRhc2tzLXdvcmtmbG93cy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJywgW10pO1xufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLCBbXG4gICAgJ2NybUNhc2VUeXBlJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3InLCBbXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnKVxuICAgIC5jb250cm9sbGVyKCdDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicsIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyKTtcblxuICBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlci4kaW5qZWN0ID0gW1xuICAgICckY29udHJvbGxlcicsICckbG9nJywgJyRzY29wZScsICdjcm1BcGknLCAnYXBpQ2FsbHMnLCAnYWN0aXZpdHlPcHRpb25zVGFzaycsICdhY3Rpdml0eU9wdGlvbnNEb2N1bWVudCdcbiAgXTtcblxuICBmdW5jdGlvbiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciAoJGNvbnRyb2xsZXIsICRsb2csICRzY29wZSwgY3JtQXBpLCBhcGlDYWxscywgYWN0aXZpdHlPcHRpb25zVGFzaywgYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQpIHtcbiAgICAkbG9nLmRlYnVnKCdDb250cm9sbGVyOiBDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcicpO1xuXG4gICAgJGNvbnRyb2xsZXIoJ0Nhc2VUeXBlQ3RybCcsIHskc2NvcGU6ICRzY29wZSwgY3JtQXBpOiBjcm1BcGksIGFwaUNhbGxzOiBhcGlDYWxsc30pO1xuXG4gICAgdmFyIG9yaWdpbmFsQWRkQWN0aXZpdHkgPSAkc2NvcGUuYWRkQWN0aXZpdHk7XG5cbiAgICAkc2NvcGUuYWRkQWN0aXZpdHkgPSBhZGRBY3Rpdml0eTtcblxuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIHByZXBhcmVBY3Rpdml0eVR5cGVzKCk7XG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBuZXcgYWN0aXZpdHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFjdGl2aXR5U2V0XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGFjdGl2aXR5VHlwZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFkZEFjdGl2aXR5IChhY3Rpdml0eVNldCwgYWN0aXZpdHlUeXBlKSB7XG4gICAgICAvLyBjYWxsIHBhcmVudFxuICAgICAgb3JpZ2luYWxBZGRBY3Rpdml0eShhY3Rpdml0eVNldCwgYWN0aXZpdHlUeXBlKTtcblxuICAgICAgLy8gcmVtb3ZlIHJlZmVyZW5jZV9hY3Rpdml0eSBwcm9wZXJ0eSBmcm9tIG5ld2x5IGFkZGVkIGFjdGl2aXR5XG4gICAgICBhY3Rpdml0eVNldC5hY3Rpdml0eVR5cGVzLmZvckVhY2goZnVuY3Rpb24gKGFjdGl2aXR5KSB7XG4gICAgICAgIGlmIChhY3Rpdml0eS5uYW1lID09PSBhY3Rpdml0eVR5cGUpIHtcbiAgICAgICAgICBkZWxldGUgYWN0aXZpdHkucmVmZXJlbmNlX2FjdGl2aXR5O1xuXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgY29tcG9uZW50IHR5cGUgbGFiZWwgdG8gYWN0aXZpdHkgdHlwZXNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwcmVwYXJlQWN0aXZpdHlUeXBlcyAoKSB7XG4gICAgICB2YXIgdGFza09wdGlvbnMgPSBhY3Rpdml0eU9wdGlvbnNUYXNrLnZhbHVlcy5tYXAoZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHsgaWQ6IHR5cGUubmFtZSwgdGV4dDogKHR5cGUubGFiZWwgKyAnIChUYXNrKScpLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgZG9jdW1lbnRPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQudmFsdWVzLm1hcChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICByZXR1cm4geyBpZDogdHlwZS5uYW1lLCB0ZXh0OiAodHlwZS5sYWJlbCArICcgKERvY3VtZW50KScpLCBpY29uOiB0eXBlLmljb24gfTtcbiAgICAgIH0pO1xuXG4gICAgICAkc2NvcGUuYWN0aXZpdHlUeXBlT3B0aW9ucyA9IHRhc2tPcHRpb25zLmNvbmNhdChkb2N1bWVudE9wdGlvbnMpO1xuICAgIH1cbiAgfVxufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcicpXG4gICAgLmNvbmZpZyhbJyRwcm92aWRlJywgJyRyb3V0ZVByb3ZpZGVyJywgZnVuY3Rpb24gKCRwcm92aWRlLCAkcm91dGVQcm92aWRlcikge1xuICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCckcm91dGUnLCBSb3V0ZURlY29yYXRvcik7XG4gICAgfV0pO1xuXG4gIFJvdXRlRGVjb3JhdG9yLiRpbmplY3QgPSBbJyRkZWxlZ2F0ZSddO1xuXG4gIGZ1bmN0aW9uIFJvdXRlRGVjb3JhdG9yICgkZGVsZWdhdGUpIHtcbiAgICAoZnVuY3Rpb24gaW5pdCAoKSB7XG4gICAgICAkZGVsZWdhdGUucm91dGVzWycvY2FzZVR5cGUvOmlkJ10uY29udHJvbGxlciA9ICdDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcic7XG4gICAgICBhZGRBY3Rpdml0eU9wdGlvbnNUYXNrKCk7XG4gICAgICBhZGRBY3Rpdml0eU9wdGlvbnNEb2N1bWVudCgpO1xuICAgIH0pKCk7XG5cbiAgICBmdW5jdGlvbiBhZGRBY3Rpdml0eU9wdGlvbnNUYXNrICgpIHtcbiAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5yZXNvbHZlLmFjdGl2aXR5T3B0aW9uc1Rhc2sgPSBhY3Rpdml0eU9wdGlvbnNUYXNrO1xuICAgICAgYWN0aXZpdHlPcHRpb25zVGFzay4kaW5qZWN0ID0gWydjcm1BcGknXTtcblxuICAgICAgZnVuY3Rpb24gYWN0aXZpdHlPcHRpb25zVGFzayAoY3JtQXBpKSB7XG4gICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICBvcHRpb25fZ3JvdXBfaWQ6ICdhY3Rpdml0eV90eXBlJyxcbiAgICAgICAgICBjb21wb25lbnRfaWQ6ICdDaXZpVGFzaycsXG4gICAgICAgICAgc2VxdWVudGlhbDogMSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgICBsaW1pdDogMFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkQWN0aXZpdHlPcHRpb25zRG9jdW1lbnQgKCkge1xuICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQgPSBhY3Rpdml0eU9wdGlvbnNEb2N1bWVudDtcbiAgICAgIGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50LiRpbmplY3QgPSBbJ2NybUFwaSddO1xuXG4gICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnNEb2N1bWVudCAoY3JtQXBpKSB7XG4gICAgICAgIHJldHVybiBjcm1BcGkoJ09wdGlvblZhbHVlJywgJ2dldCcsIHtcbiAgICAgICAgICBvcHRpb25fZ3JvdXBfaWQ6ICdhY3Rpdml0eV90eXBlJyxcbiAgICAgICAgICBjb21wb25lbnRfaWQ6ICdDaXZpRG9jdW1lbnQnLFxuICAgICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgc29ydDogJ25hbWUnLFxuICAgICAgICAgICAgbGltaXQ6IDBcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAkZGVsZWdhdGU7XG4gIH1cbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cycsIFtcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9yJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIl19 +!function(t){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(t){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(t){"use strict";angular.module("crm-tasks-workflows.decorators",[])}(),function(t){"use strict";function o(t,o,e,r,n,i,s){o.debug("Controller: CaseTypeExtendedController");var c,a,l=e.addActivity;e.addActivity=function(t,o){l(t,o),t.activityTypes.forEach(function(t){t.name===o&&delete t.reference_activity})},n.actTypes={values:(c=i.values.map(function(t){return t.label=t.label+" (Task)",t}),a=s.values.map(function(t){return t.label=t.label+" (Document)",t}),c.concat(a))},t("CaseTypeCtrl",{$scope:e,crmApi:r,apiCalls:n})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",o),o.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptionsTask","activityOptionsDocument"]}(),function(t){"use strict";function e(o){return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviTask",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsTask=t).$inject=["crmApi"]}(),function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviDocument",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsDocument=t).$inject=["crmApi"]}(),o}angular.module("crm-tasks-workflows.decorators").config(["$provide","$routeProvider",function(t,o){t.decorator("$route",e)}]),e.$inject=["$delegate"]}(),function(t){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers","crm-tasks-workflows.decorators"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvci5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJyb3V0ZS5kZWNvcmF0b3IuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciIsIiRjb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImFwaUNhbGxzIiwiYWN0aXZpdHlPcHRpb25zVGFzayIsImFjdGl2aXR5T3B0aW9uc0RvY3VtZW50IiwiZGVidWciLCJ0YXNrT3B0aW9ucyIsImRvY3VtZW50T3B0aW9ucyIsIm9yaWdpbmFsQWRkQWN0aXZpdHkiLCJhZGRBY3Rpdml0eSIsImFjdGl2aXR5U2V0IiwiYWN0aXZpdHlUeXBlIiwiYWN0aXZpdHlUeXBlcyIsImZvckVhY2giLCJhY3Rpdml0eSIsIm5hbWUiLCJyZWZlcmVuY2VfYWN0aXZpdHkiLCJhY3RUeXBlcyIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJsYWJlbCIsImRvY3VtZW50IiwiY29uY2F0IiwiY29udHJvbGxlciIsIiRpbmplY3QiLCJSb3V0ZURlY29yYXRvciIsIiRkZWxlZ2F0ZSIsInJvdXRlcyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsInNlcXVlbnRpYWwiLCJvcHRpb25zIiwic29ydCIsImxpbWl0IiwicmVzb2x2ZSIsImFkZEFjdGl2aXR5T3B0aW9uc1Rhc2siLCJhZGRBY3Rpdml0eU9wdGlvbnNEb2N1bWVudCIsImNvbmZpZyIsIiRwcm92aWRlIiwiJHJvdXRlUHJvdmlkZXIiLCJkZWNvcmF0b3IiXSwibWFwcGluZ3MiOiJDQUVBLFNBQUFBLEdBQ0EsYUFHQUEsUUFEQUMsT0FBQSxrQ0FBQSxJQUhBLEdDQUEsU0FBQUQsR0FDQSxhQUtBQSxRQUhBQyxPQUFBLDJCQUFBLENBQ0EsZ0JBSkEsR0NBQSxTQUFBRCxHQUNBLGFBR0FBLFFBREFDLE9BQUEsaUNBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFTQSxTQUFBRSxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxHQUNBTCxFQUFBTSxNQUFBLDBDQUVBLElBd0NBQyxFQU1BQyxFQTlDQUMsRUFBQVIsRUFBQVMsWUFFQVQsRUFBQVMsWUFZQSxTQUFBQyxFQUFBQyxHQUVBSCxFQUFBRSxFQUFBQyxHQUdBRCxFQUFBRSxjQUFBQyxRQUFBLFNBQUFDLEdBQ0FBLEVBQUFDLE9BQUFKLFVBQ0FHLEVBQUFFLHNCQVNBZCxFQUFBZSxTQUFBLENBQUFDLFFBVUFaLEVBQUFILEVBQUFlLE9BQUFDLElBQUEsU0FBQUMsR0FHQSxPQUZBQSxFQUFBQyxNQUFBRCxFQUFBQyxNQUFBLFVBRUFELElBR0FiLEVBQUFILEVBQUFjLE9BQUFDLElBQUEsU0FBQUcsR0FHQSxPQUZBQSxFQUFBRCxNQUFBQyxFQUFBRCxNQUFBLGNBRUFDLElBR0FoQixFQUFBaUIsT0FBQWhCLEtBckJBVCxFQUFBLGVBQUEsQ0FBQUUsT0FBQUEsRUFBQUMsT0FBQUEsRUFBQUMsU0FBQUEsSUF3QkFQLFFBakVBQyxPQUFBLG1DQUNBNEIsV0FBQSw2QkFBQTNCLEdBRUFBLEVBQUE0QixRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxXQUFBLHNCQUFBLDJCQVBBLEdDQUEsU0FBQTlCLEdBQ0EsYUFTQSxTQUFBK0IsRUFBQUMsR0F5Q0EsT0F2Q0FBLEVBQUFDLE9BQUEsaUJBQUFKLFdBQUEsNkJBS0EsV0FJQSxTQUFBckIsRUFBQUYsR0FDQSxPQUFBQSxFQUFBLGNBQUEsTUFBQSxDQUNBNEIsZ0JBQUEsZ0JBQ0FDLGFBQUEsV0FDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxNQVZBUCxFQUFBQyxPQUFBLGlCQUFBTyxRQUFBaEMsb0JBQUFBLEdBQ0FzQixRQUFBLENBQUEsVUFOQVcsR0FxQkEsV0FJQSxTQUFBaEMsRUFBQUgsR0FDQSxPQUFBQSxFQUFBLGNBQUEsTUFBQSxDQUNBNEIsZ0JBQUEsZ0JBQ0FDLGFBQUEsZUFDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxNQVZBUCxFQUFBQyxPQUFBLGlCQUFBTyxRQUFBL0Isd0JBQUFBLEdBQ0FxQixRQUFBLENBQUEsVUF0QkFZLEdBcUNBVixFQUVBaEMsUUFsREFDLE9BQUEsa0NBQ0EwQyxPQUFBLENBQUEsV0FBQSxpQkFBQSxTQUFBQyxFQUFBQyxHQUNBRCxFQUFBRSxVQUFBLFNBQUFmLE1BR0FBLEVBQUFELFFBQUEsQ0FBQSxhQVJBLEdDQUEsU0FBQTlCLEdBQ0EsYUFPQUEsUUFMQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLGtDQUNBLG1DQU5BIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9ycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycpXG4gICAgLmNvbnRyb2xsZXIoJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJywgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIpO1xuXG4gIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyLiRpbmplY3QgPSBbXG4gICAgJyRjb250cm9sbGVyJywgJyRsb2cnLCAnJHNjb3BlJywgJ2NybUFwaScsICdhcGlDYWxscycsICdhY3Rpdml0eU9wdGlvbnNUYXNrJywgJ2FjdGl2aXR5T3B0aW9uc0RvY3VtZW50J1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkY29udHJvbGxlciwgJGxvZywgJHNjb3BlLCBjcm1BcGksIGFwaUNhbGxzLCBhY3Rpdml0eU9wdGlvbnNUYXNrLCBhY3Rpdml0eU9wdGlvbnNEb2N1bWVudCkge1xuICAgICRsb2cuZGVidWcoJ0NvbnRyb2xsZXI6IENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJyk7XG5cbiAgICB2YXIgb3JpZ2luYWxBZGRBY3Rpdml0eSA9ICRzY29wZS5hZGRBY3Rpdml0eTtcblxuICAgICRzY29wZS5hZGRBY3Rpdml0eSA9IGFkZEFjdGl2aXR5O1xuXG4gICAgKGZ1bmN0aW9uIGluaXQgKCkge1xuICAgICAgaW5pdFBhcmVudENvbnRyb2xsZXIoKTtcbiAgICB9KSgpO1xuXG4gICAgLyoqXG4gICAgICogQWRkIG5ldyBhY3Rpdml0eVxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcnJheX0gYWN0aXZpdHlTZXRcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gYWN0aXZpdHlUeXBlXG4gICAgICovXG4gICAgZnVuY3Rpb24gYWRkQWN0aXZpdHkgKGFjdGl2aXR5U2V0LCBhY3Rpdml0eVR5cGUpIHtcbiAgICAgIC8vIGNhbGwgcGFyZW50XG4gICAgICBvcmlnaW5hbEFkZEFjdGl2aXR5KGFjdGl2aXR5U2V0LCBhY3Rpdml0eVR5cGUpO1xuXG4gICAgICAvLyByZW1vdmUgcmVmZXJlbmNlX2FjdGl2aXR5IHByb3BlcnR5IGZyb20gbmV3bHkgYWRkZWQgYWN0aXZpdHlcbiAgICAgIGFjdGl2aXR5U2V0LmFjdGl2aXR5VHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoYWN0aXZpdHkpIHtcbiAgICAgICAgaWYgKGFjdGl2aXR5Lm5hbWUgPT09IGFjdGl2aXR5VHlwZSkge1xuICAgICAgICAgIGRlbGV0ZSBhY3Rpdml0eS5yZWZlcmVuY2VfYWN0aXZpdHk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpc2UgdGhlIHBhcmVudCBjb250cm9sbGVyXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdFBhcmVudENvbnRyb2xsZXIgKCkge1xuICAgICAgYXBpQ2FsbHMuYWN0VHlwZXMgPSB7IHZhbHVlczogcHJlcGFyZUFjdGl2aXR5VHlwZXMoKSB9O1xuICAgICAgJGNvbnRyb2xsZXIoJ0Nhc2VUeXBlQ3RybCcsIHskc2NvcGU6ICRzY29wZSwgY3JtQXBpOiBjcm1BcGksIGFwaUNhbGxzOiBhcGlDYWxsc30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBjb21wb25lbnQgdHlwZSBsYWJlbCB0byBhY3Rpdml0eSB0eXBlc1xuICAgICAqXG4gICAgICogQHJldHVybiB7QXJyYXl9XG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJlcGFyZUFjdGl2aXR5VHlwZXMgKCkge1xuICAgICAgdmFyIHRhc2tPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zVGFzay52YWx1ZXMubWFwKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIHR5cGUubGFiZWwgPSAodHlwZS5sYWJlbCArICcgKFRhc2spJyk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICB9KTtcblxuICAgICAgdmFyIGRvY3VtZW50T3B0aW9ucyA9IGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50LnZhbHVlcy5tYXAoZnVuY3Rpb24gKGRvY3VtZW50KSB7XG4gICAgICAgIGRvY3VtZW50LmxhYmVsID0gKGRvY3VtZW50LmxhYmVsICsgJyAoRG9jdW1lbnQpJyk7XG5cbiAgICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0YXNrT3B0aW9ucy5jb25jYXQoZG9jdW1lbnRPcHRpb25zKTtcbiAgICB9XG4gIH1cbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3JzJylcbiAgICAuY29uZmlnKFsnJHByb3ZpZGUnLCAnJHJvdXRlUHJvdmlkZXInLCBmdW5jdGlvbiAoJHByb3ZpZGUsICRyb3V0ZVByb3ZpZGVyKSB7XG4gICAgICAkcHJvdmlkZS5kZWNvcmF0b3IoJyRyb3V0ZScsIFJvdXRlRGVjb3JhdG9yKTtcbiAgICB9XSk7XG5cbiAgUm91dGVEZWNvcmF0b3IuJGluamVjdCA9IFsnJGRlbGVnYXRlJ107XG5cbiAgZnVuY3Rpb24gUm91dGVEZWNvcmF0b3IgKCRkZWxlZ2F0ZSkge1xuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5jb250cm9sbGVyID0gJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJztcbiAgICAgIGFkZEFjdGl2aXR5T3B0aW9uc1Rhc2soKTtcbiAgICAgIGFkZEFjdGl2aXR5T3B0aW9uc0RvY3VtZW50KCk7XG4gICAgfSkoKTtcblxuICAgIGZ1bmN0aW9uIGFkZEFjdGl2aXR5T3B0aW9uc1Rhc2sgKCkge1xuICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zVGFzayA9IGFjdGl2aXR5T3B0aW9uc1Rhc2s7XG4gICAgICBhY3Rpdml0eU9wdGlvbnNUYXNrLiRpbmplY3QgPSBbJ2NybUFwaSddO1xuXG4gICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnNUYXNrIChjcm1BcGkpIHtcbiAgICAgICAgcmV0dXJuIGNybUFwaSgnT3B0aW9uVmFsdWUnLCAnZ2V0Jywge1xuICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgIGNvbXBvbmVudF9pZDogJ0NpdmlUYXNrJyxcbiAgICAgICAgICBzZXF1ZW50aWFsOiAxLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICAgIGxpbWl0OiAwXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRBY3Rpdml0eU9wdGlvbnNEb2N1bWVudCAoKSB7XG4gICAgICAkZGVsZWdhdGUucm91dGVzWycvY2FzZVR5cGUvOmlkJ10ucmVzb2x2ZS5hY3Rpdml0eU9wdGlvbnNEb2N1bWVudCA9IGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50O1xuICAgICAgYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQuJGluamVjdCA9IFsnY3JtQXBpJ107XG5cbiAgICAgIGZ1bmN0aW9uIGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50IChjcm1BcGkpIHtcbiAgICAgICAgcmV0dXJuIGNybUFwaSgnT3B0aW9uVmFsdWUnLCAnZ2V0Jywge1xuICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgIGNvbXBvbmVudF9pZDogJ0NpdmlEb2N1bWVudCcsXG4gICAgICAgICAgc2VxdWVudGlhbDogMSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgICBsaW1pdDogMFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICRkZWxlZ2F0ZTtcbiAgfVxufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzJywgW1xuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLFxuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3JzJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIl19 diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js index 62f092d8..ace81f4d 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows.js @@ -6,6 +6,6 @@ angular.module('crm-tasks-workflows', [ 'crm-tasks-workflows.core', 'crm-tasks-workflows.controllers', - 'crm-tasks-workflows.decorator' + 'crm-tasks-workflows.decorators' ]); })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js index 8add7a8a..2daf0a30 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -13,14 +13,12 @@ function CaseTypeExtendedController ($controller, $log, $scope, crmApi, apiCalls, activityOptionsTask, activityOptionsDocument) { $log.debug('Controller: CaseTypeExtendedController'); - $controller('CaseTypeCtrl', {$scope: $scope, crmApi: crmApi, apiCalls: apiCalls}); - var originalAddActivity = $scope.addActivity; $scope.addActivity = addActivity; (function init () { - prepareActivityTypes(); + initParentController(); })(); /** @@ -37,25 +35,37 @@ activitySet.activityTypes.forEach(function (activity) { if (activity.name === activityType) { delete activity.reference_activity; - - return false; } }); } + /** + * Initialise the parent controller + */ + function initParentController () { + apiCalls.actTypes = { values: prepareActivityTypes() }; + $controller('CaseTypeCtrl', {$scope: $scope, crmApi: crmApi, apiCalls: apiCalls}); + } + /** * Add component type label to activity types + * + * @return {Array} */ function prepareActivityTypes () { var taskOptions = activityOptionsTask.values.map(function (type) { - return { id: type.name, text: (type.label + ' (Task)'), icon: type.icon }; + type.label = (type.label + ' (Task)'); + + return type; }); - var documentOptions = activityOptionsDocument.values.map(function (type) { - return { id: type.name, text: (type.label + ' (Document)'), icon: type.icon }; + var documentOptions = activityOptionsDocument.values.map(function (document) { + document.label = (document.label + ' (Document)'); + + return document; }); - $scope.activityTypeOptions = taskOptions.concat(documentOptions); + return taskOptions.concat(documentOptions); } } })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js index 908a56c8..2997bc2c 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js @@ -3,7 +3,7 @@ (function (angular) { 'use strict'; - angular.module('crm-tasks-workflows.decorator') + angular.module('crm-tasks-workflows.decorators') .config(['$provide', '$routeProvider', function ($provide, $routeProvider) { $provide.decorator('$route', RouteDecorator); }]); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js index 937ffce9..51fda66d 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/modules/crm-tasks-workflows.decorator.js @@ -3,5 +3,5 @@ (function (angular) { 'use strict'; - angular.module('crm-tasks-workflows.decorator', []); + angular.module('crm-tasks-workflows.decorators', []); })(angular); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js index a29d933a..e398d23f 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -1,21 +1,24 @@ /* eslint-env jasmine */ +/* global angular */ (function () { 'use strict'; describe('CaseTypeExtendedController', function () { - var $controller, $rootScope, $scope, TaskActivityOptionsData, DocumentActivityOptionsData; + var $controller, $log, $rootScope, $scope, TaskActivityOptionsData, DocumentActivityOptionsData; beforeEach(function () { module('crm-tasks-workflows.mocks', 'crm-tasks-workflows.controllers'); }); - beforeEach(inject(function (_$controller_, _$rootScope_, _TaskActivityOptionsData_, _DocumentActivityOptionsData_) { + beforeEach(inject(function (_$controller_, _$log_, _$rootScope_, _TaskActivityOptionsData_, _DocumentActivityOptionsData_) { $controller = _$controller_; + $log = _$log_; $rootScope = _$rootScope_; DocumentActivityOptionsData = _DocumentActivityOptionsData_; TaskActivityOptionsData = _TaskActivityOptionsData_; + spyOn($log, 'debug'); initController(); })); @@ -23,34 +26,67 @@ var expectedValue; beforeEach(function () { - var taskOptions = TaskActivityOptionsData.map(function (type) { - return { id: type.name, text: (type.label + ' (Task)'), icon: type.icon }; - }); + expectedValue = { actTypes: { values: getActivityTypes() } }; + }); + + it('initialises the parent controller with activity types having component labels', function () { + expect($log.debug).toHaveBeenCalledWith('Init CaseTypeCtrl with', jasmine.any(Object), jasmine.any(Object), expectedValue); + }); + }); + + describe('addActivity', function () { + var activityTypes, activityType; + var addActivityInParent = jasmine.createSpy('addActivityInParent'); - var documentOptions = DocumentActivityOptionsData.map(function (type) { - return { id: type.name, text: (type.label + ' (Document)'), icon: type.icon }; - }); + beforeEach(function () { + $scope = $rootScope.$new(); + $scope.addActivity = addActivityInParent; + + activityTypes = getActivityTypes(); + activityTypes[0].reference_activity = '1'; + activityType = activityTypes[0].name; + + initController($scope); + $scope.addActivity({ activityTypes: activityTypes }, activityType); + }); - expectedValue = taskOptions.concat(documentOptions); + it('calls the parent function', function () { + expect(addActivityInParent).toHaveBeenCalledWith({ activityTypes: activityTypes }, activityType); }); - it('stores the activity options after adding component type in label', function () { - expect($scope.activityTypeOptions).toEqual(expectedValue); + it('removes the reference property for the activity type', function () { + expect(activityTypes[0].reference_activity).toBeUndefined(); }); }); - function initController () { - $scope = $rootScope.$new(); + function initController ($scope) { + $scope = $scope || $rootScope.$new(); $controller('CaseTypeExtendedController', { $scope: $scope, crmApi: {}, apiCalls: {}, - activityOptionsTask: { values: TaskActivityOptionsData }, - activityOptionsDocument: { values: DocumentActivityOptionsData } + activityOptionsTask: { values: angular.copy(TaskActivityOptionsData) }, + activityOptionsDocument: { values: angular.copy(DocumentActivityOptionsData) } }); $scope.$digest(); } + + function getActivityTypes () { + var taskOptions = TaskActivityOptionsData.map(function (type) { + type.label = (type.label + ' (Task)'); + + return type; + }); + + var documentOptions = DocumentActivityOptionsData.map(function (document) { + document.label = (document.label + ' (Document)'); + + return document; + }); + + return taskOptions.concat(documentOptions); + } }); })(); diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js index 76a64780..9b5786e8 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/mocks/controllers/case-type.controller.js @@ -2,5 +2,7 @@ (function () { angular.module('crm-tasks-workflows.mocks') - .controller('CaseTypeCtrl', function ($scope, crmApi, apiCalls) {}); + .controller('CaseTypeCtrl', function ($scope, crmApi, apiCalls, $log) { + $log.debug('Init CaseTypeCtrl with', $scope, crmApi, apiCalls); + }); })(); From 6512dc039bcaae7e3ca9d31617fdd183764193bc Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Wed, 18 Apr 2018 18:15:13 +0530 Subject: [PATCH 22/29] PCHR-3575: PR Feedback --- .../js/dist/crm-tasks-workflows.min.js | 4 +- .../casetype.extended.controller.js | 7 +--- .../decorators/route.decorator.js | 39 ++++++------------- .../casetype.extended.controller.spec.js | 10 +++++ .../tasksassignments.php | 28 ++++++------- 5 files changed, 36 insertions(+), 52 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js index b8d494c1..254456ad 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/crm-tasks-workflows.min.js @@ -1,2 +1,2 @@ -!function(t){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(t){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(t){"use strict";angular.module("crm-tasks-workflows.decorators",[])}(),function(t){"use strict";function o(t,o,e,r,n,i,s){o.debug("Controller: CaseTypeExtendedController");var c,a,l=e.addActivity;e.addActivity=function(t,o){l(t,o),t.activityTypes.forEach(function(t){t.name===o&&delete t.reference_activity})},n.actTypes={values:(c=i.values.map(function(t){return t.label=t.label+" (Task)",t}),a=s.values.map(function(t){return t.label=t.label+" (Document)",t}),c.concat(a))},t("CaseTypeCtrl",{$scope:e,crmApi:r,apiCalls:n})}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",o),o.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptionsTask","activityOptionsDocument"]}(),function(t){"use strict";function e(o){return o.routes["/caseType/:id"].controller="CaseTypeExtendedController",function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviTask",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsTask=t).$inject=["crmApi"]}(),function(){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:"CiviDocument",sequential:1,options:{sort:"name",limit:0}})}(o.routes["/caseType/:id"].resolve.activityOptionsDocument=t).$inject=["crmApi"]}(),o}angular.module("crm-tasks-workflows.decorators").config(["$provide","$routeProvider",function(t,o){t.decorator("$route",e)}]),e.$inject=["$delegate"]}(),function(t){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers","crm-tasks-workflows.decorators"])}(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvci5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJyb3V0ZS5kZWNvcmF0b3IuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciIsIiRjb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImFwaUNhbGxzIiwiYWN0aXZpdHlPcHRpb25zVGFzayIsImFjdGl2aXR5T3B0aW9uc0RvY3VtZW50IiwiZGVidWciLCJ0YXNrT3B0aW9ucyIsImRvY3VtZW50T3B0aW9ucyIsIm9yaWdpbmFsQWRkQWN0aXZpdHkiLCJhZGRBY3Rpdml0eSIsImFjdGl2aXR5U2V0IiwiYWN0aXZpdHlUeXBlIiwiYWN0aXZpdHlUeXBlcyIsImZvckVhY2giLCJhY3Rpdml0eSIsIm5hbWUiLCJyZWZlcmVuY2VfYWN0aXZpdHkiLCJhY3RUeXBlcyIsInZhbHVlcyIsIm1hcCIsInR5cGUiLCJsYWJlbCIsImRvY3VtZW50IiwiY29uY2F0IiwiY29udHJvbGxlciIsIiRpbmplY3QiLCJSb3V0ZURlY29yYXRvciIsIiRkZWxlZ2F0ZSIsInJvdXRlcyIsIm9wdGlvbl9ncm91cF9pZCIsImNvbXBvbmVudF9pZCIsInNlcXVlbnRpYWwiLCJvcHRpb25zIiwic29ydCIsImxpbWl0IiwicmVzb2x2ZSIsImFkZEFjdGl2aXR5T3B0aW9uc1Rhc2siLCJhZGRBY3Rpdml0eU9wdGlvbnNEb2N1bWVudCIsImNvbmZpZyIsIiRwcm92aWRlIiwiJHJvdXRlUHJvdmlkZXIiLCJkZWNvcmF0b3IiXSwibWFwcGluZ3MiOiJDQUVBLFNBQUFBLEdBQ0EsYUFHQUEsUUFEQUMsT0FBQSxrQ0FBQSxJQUhBLEdDQUEsU0FBQUQsR0FDQSxhQUtBQSxRQUhBQyxPQUFBLDJCQUFBLENBQ0EsZ0JBSkEsR0NBQSxTQUFBRCxHQUNBLGFBR0FBLFFBREFDLE9BQUEsaUNBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFTQSxTQUFBRSxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxFQUFBQyxHQUNBTCxFQUFBTSxNQUFBLDBDQUVBLElBd0NBQyxFQU1BQyxFQTlDQUMsRUFBQVIsRUFBQVMsWUFFQVQsRUFBQVMsWUFZQSxTQUFBQyxFQUFBQyxHQUVBSCxFQUFBRSxFQUFBQyxHQUdBRCxFQUFBRSxjQUFBQyxRQUFBLFNBQUFDLEdBQ0FBLEVBQUFDLE9BQUFKLFVBQ0FHLEVBQUFFLHNCQVNBZCxFQUFBZSxTQUFBLENBQUFDLFFBVUFaLEVBQUFILEVBQUFlLE9BQUFDLElBQUEsU0FBQUMsR0FHQSxPQUZBQSxFQUFBQyxNQUFBRCxFQUFBQyxNQUFBLFVBRUFELElBR0FiLEVBQUFILEVBQUFjLE9BQUFDLElBQUEsU0FBQUcsR0FHQSxPQUZBQSxFQUFBRCxNQUFBQyxFQUFBRCxNQUFBLGNBRUFDLElBR0FoQixFQUFBaUIsT0FBQWhCLEtBckJBVCxFQUFBLGVBQUEsQ0FBQUUsT0FBQUEsRUFBQUMsT0FBQUEsRUFBQUMsU0FBQUEsSUF3QkFQLFFBakVBQyxPQUFBLG1DQUNBNEIsV0FBQSw2QkFBQTNCLEdBRUFBLEVBQUE0QixRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxXQUFBLHNCQUFBLDJCQVBBLEdDQUEsU0FBQTlCLEdBQ0EsYUFTQSxTQUFBK0IsRUFBQUMsR0F5Q0EsT0F2Q0FBLEVBQUFDLE9BQUEsaUJBQUFKLFdBQUEsNkJBS0EsV0FJQSxTQUFBckIsRUFBQUYsR0FDQSxPQUFBQSxFQUFBLGNBQUEsTUFBQSxDQUNBNEIsZ0JBQUEsZ0JBQ0FDLGFBQUEsV0FDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxNQVZBUCxFQUFBQyxPQUFBLGlCQUFBTyxRQUFBaEMsb0JBQUFBLEdBQ0FzQixRQUFBLENBQUEsVUFOQVcsR0FxQkEsV0FJQSxTQUFBaEMsRUFBQUgsR0FDQSxPQUFBQSxFQUFBLGNBQUEsTUFBQSxDQUNBNEIsZ0JBQUEsZ0JBQ0FDLGFBQUEsZUFDQUMsV0FBQSxFQUNBQyxRQUFBLENBQ0FDLEtBQUEsT0FDQUMsTUFBQSxNQVZBUCxFQUFBQyxPQUFBLGlCQUFBTyxRQUFBL0Isd0JBQUFBLEdBQ0FxQixRQUFBLENBQUEsVUF0QkFZLEdBcUNBVixFQUVBaEMsUUFsREFDLE9BQUEsa0NBQ0EwQyxPQUFBLENBQUEsV0FBQSxpQkFBQSxTQUFBQyxFQUFBQyxHQUNBRCxFQUFBRSxVQUFBLFNBQUFmLE1BR0FBLEVBQUFELFFBQUEsQ0FBQSxhQVJBLEdDQUEsU0FBQTlCLEdBQ0EsYUFPQUEsUUFMQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLGtDQUNBLG1DQU5BIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9ycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycpXG4gICAgLmNvbnRyb2xsZXIoJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJywgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIpO1xuXG4gIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyLiRpbmplY3QgPSBbXG4gICAgJyRjb250cm9sbGVyJywgJyRsb2cnLCAnJHNjb3BlJywgJ2NybUFwaScsICdhcGlDYWxscycsICdhY3Rpdml0eU9wdGlvbnNUYXNrJywgJ2FjdGl2aXR5T3B0aW9uc0RvY3VtZW50J1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkY29udHJvbGxlciwgJGxvZywgJHNjb3BlLCBjcm1BcGksIGFwaUNhbGxzLCBhY3Rpdml0eU9wdGlvbnNUYXNrLCBhY3Rpdml0eU9wdGlvbnNEb2N1bWVudCkge1xuICAgICRsb2cuZGVidWcoJ0NvbnRyb2xsZXI6IENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJyk7XG5cbiAgICB2YXIgb3JpZ2luYWxBZGRBY3Rpdml0eSA9ICRzY29wZS5hZGRBY3Rpdml0eTtcblxuICAgICRzY29wZS5hZGRBY3Rpdml0eSA9IGFkZEFjdGl2aXR5O1xuXG4gICAgKGZ1bmN0aW9uIGluaXQgKCkge1xuICAgICAgaW5pdFBhcmVudENvbnRyb2xsZXIoKTtcbiAgICB9KSgpO1xuXG4gICAgLyoqXG4gICAgICogQWRkIG5ldyBhY3Rpdml0eVxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcnJheX0gYWN0aXZpdHlTZXRcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gYWN0aXZpdHlUeXBlXG4gICAgICovXG4gICAgZnVuY3Rpb24gYWRkQWN0aXZpdHkgKGFjdGl2aXR5U2V0LCBhY3Rpdml0eVR5cGUpIHtcbiAgICAgIC8vIGNhbGwgcGFyZW50XG4gICAgICBvcmlnaW5hbEFkZEFjdGl2aXR5KGFjdGl2aXR5U2V0LCBhY3Rpdml0eVR5cGUpO1xuXG4gICAgICAvLyByZW1vdmUgcmVmZXJlbmNlX2FjdGl2aXR5IHByb3BlcnR5IGZyb20gbmV3bHkgYWRkZWQgYWN0aXZpdHlcbiAgICAgIGFjdGl2aXR5U2V0LmFjdGl2aXR5VHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoYWN0aXZpdHkpIHtcbiAgICAgICAgaWYgKGFjdGl2aXR5Lm5hbWUgPT09IGFjdGl2aXR5VHlwZSkge1xuICAgICAgICAgIGRlbGV0ZSBhY3Rpdml0eS5yZWZlcmVuY2VfYWN0aXZpdHk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpc2UgdGhlIHBhcmVudCBjb250cm9sbGVyXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdFBhcmVudENvbnRyb2xsZXIgKCkge1xuICAgICAgYXBpQ2FsbHMuYWN0VHlwZXMgPSB7IHZhbHVlczogcHJlcGFyZUFjdGl2aXR5VHlwZXMoKSB9O1xuICAgICAgJGNvbnRyb2xsZXIoJ0Nhc2VUeXBlQ3RybCcsIHskc2NvcGU6ICRzY29wZSwgY3JtQXBpOiBjcm1BcGksIGFwaUNhbGxzOiBhcGlDYWxsc30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBjb21wb25lbnQgdHlwZSBsYWJlbCB0byBhY3Rpdml0eSB0eXBlc1xuICAgICAqXG4gICAgICogQHJldHVybiB7QXJyYXl9XG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJlcGFyZUFjdGl2aXR5VHlwZXMgKCkge1xuICAgICAgdmFyIHRhc2tPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zVGFzay52YWx1ZXMubWFwKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIHR5cGUubGFiZWwgPSAodHlwZS5sYWJlbCArICcgKFRhc2spJyk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICB9KTtcblxuICAgICAgdmFyIGRvY3VtZW50T3B0aW9ucyA9IGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50LnZhbHVlcy5tYXAoZnVuY3Rpb24gKGRvY3VtZW50KSB7XG4gICAgICAgIGRvY3VtZW50LmxhYmVsID0gKGRvY3VtZW50LmxhYmVsICsgJyAoRG9jdW1lbnQpJyk7XG5cbiAgICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0YXNrT3B0aW9ucy5jb25jYXQoZG9jdW1lbnRPcHRpb25zKTtcbiAgICB9XG4gIH1cbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3JzJylcbiAgICAuY29uZmlnKFsnJHByb3ZpZGUnLCAnJHJvdXRlUHJvdmlkZXInLCBmdW5jdGlvbiAoJHByb3ZpZGUsICRyb3V0ZVByb3ZpZGVyKSB7XG4gICAgICAkcHJvdmlkZS5kZWNvcmF0b3IoJyRyb3V0ZScsIFJvdXRlRGVjb3JhdG9yKTtcbiAgICB9XSk7XG5cbiAgUm91dGVEZWNvcmF0b3IuJGluamVjdCA9IFsnJGRlbGVnYXRlJ107XG5cbiAgZnVuY3Rpb24gUm91dGVEZWNvcmF0b3IgKCRkZWxlZ2F0ZSkge1xuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXS5jb250cm9sbGVyID0gJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJztcbiAgICAgIGFkZEFjdGl2aXR5T3B0aW9uc1Rhc2soKTtcbiAgICAgIGFkZEFjdGl2aXR5T3B0aW9uc0RvY3VtZW50KCk7XG4gICAgfSkoKTtcblxuICAgIGZ1bmN0aW9uIGFkZEFjdGl2aXR5T3B0aW9uc1Rhc2sgKCkge1xuICAgICAgJGRlbGVnYXRlLnJvdXRlc1snL2Nhc2VUeXBlLzppZCddLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zVGFzayA9IGFjdGl2aXR5T3B0aW9uc1Rhc2s7XG4gICAgICBhY3Rpdml0eU9wdGlvbnNUYXNrLiRpbmplY3QgPSBbJ2NybUFwaSddO1xuXG4gICAgICBmdW5jdGlvbiBhY3Rpdml0eU9wdGlvbnNUYXNrIChjcm1BcGkpIHtcbiAgICAgICAgcmV0dXJuIGNybUFwaSgnT3B0aW9uVmFsdWUnLCAnZ2V0Jywge1xuICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgIGNvbXBvbmVudF9pZDogJ0NpdmlUYXNrJyxcbiAgICAgICAgICBzZXF1ZW50aWFsOiAxLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNvcnQ6ICduYW1lJyxcbiAgICAgICAgICAgIGxpbWl0OiAwXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRBY3Rpdml0eU9wdGlvbnNEb2N1bWVudCAoKSB7XG4gICAgICAkZGVsZWdhdGUucm91dGVzWycvY2FzZVR5cGUvOmlkJ10ucmVzb2x2ZS5hY3Rpdml0eU9wdGlvbnNEb2N1bWVudCA9IGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50O1xuICAgICAgYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQuJGluamVjdCA9IFsnY3JtQXBpJ107XG5cbiAgICAgIGZ1bmN0aW9uIGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50IChjcm1BcGkpIHtcbiAgICAgICAgcmV0dXJuIGNybUFwaSgnT3B0aW9uVmFsdWUnLCAnZ2V0Jywge1xuICAgICAgICAgIG9wdGlvbl9ncm91cF9pZDogJ2FjdGl2aXR5X3R5cGUnLFxuICAgICAgICAgIGNvbXBvbmVudF9pZDogJ0NpdmlEb2N1bWVudCcsXG4gICAgICAgICAgc2VxdWVudGlhbDogMSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBzb3J0OiAnbmFtZScsXG4gICAgICAgICAgICBsaW1pdDogMFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICRkZWxlZ2F0ZTtcbiAgfVxufSkoYW5ndWxhcik7XG4iLCIvKiBnbG9iYWwgYW5ndWxhciAqL1xuXG4oZnVuY3Rpb24gKGFuZ3VsYXIpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdjcm0tdGFza3Mtd29ya2Zsb3dzJywgW1xuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUnLFxuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmNvbnRyb2xsZXJzJyxcbiAgICAnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3JzJ1xuICBdKTtcbn0pKGFuZ3VsYXIpO1xuIl19 +!function(t){"use strict";angular.module("crm-tasks-workflows.controllers",[])}(),function(t){"use strict";angular.module("crm-tasks-workflows.core",["crmCaseType"])}(),function(t){"use strict";angular.module("crm-tasks-workflows.decorators",[])}(),function(t){"use strict";function o(t,o,e,r,n,s,c){var a,i;o.debug("Controller: CaseTypeExtendedController"),n.actTypes={values:(a=s.values.map(function(t){return t.label=t.label+" (Task)",t}),i=c.values.map(function(t){return t.label=t.label+" (Document)",t}),a.concat(i))},t("CaseTypeCtrl",{$scope:e,crmApi:r,apiCalls:n});var l=e.addActivity;e.addActivity=function(t,o){l(t,o),t.activityTypes.forEach(function(t){t.name===o&&delete t.reference_activity})}}angular.module("crm-tasks-workflows.controllers").controller("CaseTypeExtendedController",o),o.$inject=["$controller","$log","$scope","crmApi","apiCalls","activityOptionsTask","activityOptionsDocument"]}(),function(t){"use strict";function e(t){var o;function e(o){function t(t){return t("OptionValue","get",{option_group_id:"activity_type",component_id:o,sequential:1,options:{sort:"name",limit:0}})}return t.$inject=["crmApi"],t}return(o=t.routes["/caseType/:id"]).controller="CaseTypeExtendedController",o.resolve.activityOptionsTask=e("CiviTask"),o.resolve.activityOptionsDocument=e("CiviDocument"),t}angular.module("crm-tasks-workflows.decorators").config(["$provide","$routeProvider",function(t,o){t.decorator("$route",e)}]),e.$inject=["$delegate"]}(),function(t){"use strict";angular.module("crm-tasks-workflows",["crm-tasks-workflows.core","crm-tasks-workflows.controllers","crm-tasks-workflows.decorators"])}(); +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmNvcmUuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvci5qcyIsImNhc2V0eXBlLmV4dGVuZGVkLmNvbnRyb2xsZXIuanMiLCJyb3V0ZS5kZWNvcmF0b3IuanMiLCJjcm0tdGFza3Mtd29ya2Zsb3dzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlciIsIiRjb250cm9sbGVyIiwiJGxvZyIsIiRzY29wZSIsImNybUFwaSIsImFwaUNhbGxzIiwiYWN0aXZpdHlPcHRpb25zVGFzayIsImFjdGl2aXR5T3B0aW9uc0RvY3VtZW50IiwidGFza09wdGlvbnMiLCJkb2N1bWVudE9wdGlvbnMiLCJkZWJ1ZyIsImFjdFR5cGVzIiwidmFsdWVzIiwibWFwIiwidHlwZSIsImxhYmVsIiwiZG9jdW1lbnQiLCJjb25jYXQiLCJvcmlnaW5hbEFkZEFjdGl2aXR5IiwiYWRkQWN0aXZpdHkiLCJhY3Rpdml0eVNldCIsImFjdGl2aXR5VHlwZSIsImFjdGl2aXR5VHlwZXMiLCJmb3JFYWNoIiwiYWN0aXZpdHkiLCJuYW1lIiwicmVmZXJlbmNlX2FjdGl2aXR5IiwiY29udHJvbGxlciIsIiRpbmplY3QiLCJSb3V0ZURlY29yYXRvciIsIiRkZWxlZ2F0ZSIsImNhc2VUeXBlRWRpdFJvdXRlIiwiZ2V0UmVzb2x2ZXJGb3JBY3Rpdml0eVR5cGVDb21wb25lbnQiLCJjb21wb25lbnROYW1lIiwiYWN0aXZpdHlPcHRpb25zUmVzb2x2ZXIiLCJvcHRpb25fZ3JvdXBfaWQiLCJjb21wb25lbnRfaWQiLCJzZXF1ZW50aWFsIiwib3B0aW9ucyIsInNvcnQiLCJsaW1pdCIsInJvdXRlcyIsInJlc29sdmUiLCJjb25maWciLCIkcHJvdmlkZSIsIiRyb3V0ZVByb3ZpZGVyIiwiZGVjb3JhdG9yIl0sIm1hcHBpbmdzIjoiQ0FFQSxTQUFBQSxHQUNBLGFBR0FBLFFBREFDLE9BQUEsa0NBQUEsSUFIQSxHQ0FBLFNBQUFELEdBQ0EsYUFLQUEsUUFIQUMsT0FBQSwyQkFBQSxDQUNBLGdCQUpBLEdDQUEsU0FBQUQsR0FDQSxhQUdBQSxRQURBQyxPQUFBLGlDQUFBLElBSEEsR0NBQSxTQUFBRCxHQUNBLGFBU0EsU0FBQUUsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsR0E2QkEsSUFXQUMsRUFNQUMsRUE3Q0FQLEVBQUFRLE1BQUEsMENBNkJBTCxFQUFBTSxTQUFBLENBQUFDLFFBVUFKLEVBQUFGLEVBQUFNLE9BQUFDLElBQUEsU0FBQUMsR0FHQSxPQUZBQSxFQUFBQyxNQUFBRCxFQUFBQyxNQUFBLFVBRUFELElBR0FMLEVBQUFGLEVBQUFLLE9BQUFDLElBQUEsU0FBQUcsR0FHQSxPQUZBQSxFQUFBRCxNQUFBQyxFQUFBRCxNQUFBLGNBRUFDLElBR0FSLEVBQUFTLE9BQUFSLEtBckJBUixFQUFBLGVBQUEsQ0FBQUUsT0FBQUEsRUFBQUMsT0FBQUEsRUFBQUMsU0FBQUEsSUEzQkEsSUFBQWEsRUFBQWYsRUFBQWdCLFlBRUFoQixFQUFBZ0IsWUFRQSxTQUFBQyxFQUFBQyxHQUVBSCxFQUFBRSxFQUFBQyxHQUdBRCxFQUFBRSxjQUFBQyxRQUFBLFNBQUFDLEdBQ0FBLEVBQUFDLE9BQUFKLFVBQ0FHLEVBQUFFLHNCQWtDQTVCLFFBOURBQyxPQUFBLG1DQUNBNEIsV0FBQSw2QkFBQTNCLEdBRUFBLEVBQUE0QixRQUFBLENBQ0EsY0FBQSxPQUFBLFNBQUEsU0FBQSxXQUFBLHNCQUFBLDJCQVBBLEdDQUEsU0FBQTlCLEdBQ0EsYUFTQSxTQUFBK0IsRUFBQUMsR0FDQSxJQUNBQyxFQU9BLFNBQUFDLEVBQUFDLEdBR0EsU0FBQUMsRUFBQTlCLEdBQ0EsT0FBQUEsRUFBQSxjQUFBLE1BQUEsQ0FDQStCLGdCQUFBLGdCQUNBQyxhQUFBSCxFQUNBSSxXQUFBLEVBQ0FDLFFBQUEsQ0FBQUMsS0FBQSxPQUFBQyxNQUFBLEtBSUEsT0FYQU4sRUFBQU4sUUFBQSxDQUFBLFVBV0FNLEVBR0EsT0F0QkFILEVBQUFELEVBQUFXLE9BQUEsa0JBRUFkLFdBQUEsNkJBQ0FJLEVBQUFXLFFBQUFwQyxvQkFBQTBCLEVBQUEsWUFDQUQsRUFBQVcsUUFBQW5DLHdCQUFBeUIsRUFBQSxnQkFrQkFGLEVBRUFoQyxRQWpDQUMsT0FBQSxrQ0FDQTRDLE9BQUEsQ0FBQSxXQUFBLGlCQUFBLFNBQUFDLEVBQUFDLEdBQ0FELEVBQUFFLFVBQUEsU0FBQWpCLE1BR0FBLEVBQUFELFFBQUEsQ0FBQSxhQVJBLEdDQUEsU0FBQTlCLEdBQ0EsYUFPQUEsUUFMQUMsT0FBQSxzQkFBQSxDQUNBLDJCQUNBLGtDQUNBLG1DQU5BIiwiZmlsZSI6ImNybS10YXNrcy13b3JrZmxvd3MubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb3JlJywgW1xuICAgICdjcm1DYXNlVHlwZSdcbiAgXSk7XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MuZGVjb3JhdG9ycycsIFtdKTtcbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5jb250cm9sbGVycycpXG4gICAgLmNvbnRyb2xsZXIoJ0Nhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJywgQ2FzZVR5cGVFeHRlbmRlZENvbnRyb2xsZXIpO1xuXG4gIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyLiRpbmplY3QgPSBbXG4gICAgJyRjb250cm9sbGVyJywgJyRsb2cnLCAnJHNjb3BlJywgJ2NybUFwaScsICdhcGlDYWxscycsICdhY3Rpdml0eU9wdGlvbnNUYXNrJywgJ2FjdGl2aXR5T3B0aW9uc0RvY3VtZW50J1xuICBdO1xuXG4gIGZ1bmN0aW9uIENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyICgkY29udHJvbGxlciwgJGxvZywgJHNjb3BlLCBjcm1BcGksIGFwaUNhbGxzLCBhY3Rpdml0eU9wdGlvbnNUYXNrLCBhY3Rpdml0eU9wdGlvbnNEb2N1bWVudCkge1xuICAgICRsb2cuZGVidWcoJ0NvbnRyb2xsZXI6IENhc2VUeXBlRXh0ZW5kZWRDb250cm9sbGVyJyk7XG5cbiAgICBpbml0UGFyZW50Q29udHJvbGxlcigpO1xuICAgIHZhciBvcmlnaW5hbEFkZEFjdGl2aXR5ID0gJHNjb3BlLmFkZEFjdGl2aXR5O1xuXG4gICAgJHNjb3BlLmFkZEFjdGl2aXR5ID0gYWRkQWN0aXZpdHk7XG5cbiAgICAvKipcbiAgICAgKiBBZGQgbmV3IGFjdGl2aXR5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhY3Rpdml0eVNldFxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBhY3Rpdml0eVR5cGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhZGRBY3Rpdml0eSAoYWN0aXZpdHlTZXQsIGFjdGl2aXR5VHlwZSkge1xuICAgICAgLy8gY2FsbCBwYXJlbnRcbiAgICAgIG9yaWdpbmFsQWRkQWN0aXZpdHkoYWN0aXZpdHlTZXQsIGFjdGl2aXR5VHlwZSk7XG5cbiAgICAgIC8vIHJlbW92ZSByZWZlcmVuY2VfYWN0aXZpdHkgcHJvcGVydHkgZnJvbSBuZXdseSBhZGRlZCBhY3Rpdml0eVxuICAgICAgYWN0aXZpdHlTZXQuYWN0aXZpdHlUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uIChhY3Rpdml0eSkge1xuICAgICAgICBpZiAoYWN0aXZpdHkubmFtZSA9PT0gYWN0aXZpdHlUeXBlKSB7XG4gICAgICAgICAgZGVsZXRlIGFjdGl2aXR5LnJlZmVyZW5jZV9hY3Rpdml0eTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGlzZSB0aGUgcGFyZW50IGNvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0UGFyZW50Q29udHJvbGxlciAoKSB7XG4gICAgICBhcGlDYWxscy5hY3RUeXBlcyA9IHsgdmFsdWVzOiBwcmVwYXJlQWN0aXZpdHlUeXBlcygpIH07XG4gICAgICAkY29udHJvbGxlcignQ2FzZVR5cGVDdHJsJywgeyRzY29wZTogJHNjb3BlLCBjcm1BcGk6IGNybUFwaSwgYXBpQ2FsbHM6IGFwaUNhbGxzfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGxpc3Qgb2YgYWN0aXZpdHkgdHlwZXMgd2l0aCBjb21wb25lbnQgdHlwZSBhZGRlZCB0byBsYWJlbFxuICAgICAqXG4gICAgICogQHJldHVybiB7QXJyYXl9XG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJlcGFyZUFjdGl2aXR5VHlwZXMgKCkge1xuICAgICAgdmFyIHRhc2tPcHRpb25zID0gYWN0aXZpdHlPcHRpb25zVGFzay52YWx1ZXMubWFwKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIHR5cGUubGFiZWwgPSAodHlwZS5sYWJlbCArICcgKFRhc2spJyk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICB9KTtcblxuICAgICAgdmFyIGRvY3VtZW50T3B0aW9ucyA9IGFjdGl2aXR5T3B0aW9uc0RvY3VtZW50LnZhbHVlcy5tYXAoZnVuY3Rpb24gKGRvY3VtZW50KSB7XG4gICAgICAgIGRvY3VtZW50LmxhYmVsID0gKGRvY3VtZW50LmxhYmVsICsgJyAoRG9jdW1lbnQpJyk7XG5cbiAgICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0YXNrT3B0aW9ucy5jb25jYXQoZG9jdW1lbnRPcHRpb25zKTtcbiAgICB9XG4gIH1cbn0pKGFuZ3VsYXIpO1xuIiwiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cblxuKGZ1bmN0aW9uIChhbmd1bGFyKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnY3JtLXRhc2tzLXdvcmtmbG93cy5kZWNvcmF0b3JzJylcbiAgICAuY29uZmlnKFsnJHByb3ZpZGUnLCAnJHJvdXRlUHJvdmlkZXInLCBmdW5jdGlvbiAoJHByb3ZpZGUsICRyb3V0ZVByb3ZpZGVyKSB7XG4gICAgICAkcHJvdmlkZS5kZWNvcmF0b3IoJyRyb3V0ZScsIFJvdXRlRGVjb3JhdG9yKTtcbiAgICB9XSk7XG5cbiAgUm91dGVEZWNvcmF0b3IuJGluamVjdCA9IFsnJGRlbGVnYXRlJ107XG5cbiAgZnVuY3Rpb24gUm91dGVEZWNvcmF0b3IgKCRkZWxlZ2F0ZSkge1xuICAgIChmdW5jdGlvbiBpbml0ICgpIHtcbiAgICAgIHZhciBjYXNlVHlwZUVkaXRSb3V0ZSA9ICRkZWxlZ2F0ZS5yb3V0ZXNbJy9jYXNlVHlwZS86aWQnXTtcblxuICAgICAgY2FzZVR5cGVFZGl0Um91dGUuY29udHJvbGxlciA9ICdDYXNlVHlwZUV4dGVuZGVkQ29udHJvbGxlcic7XG4gICAgICBjYXNlVHlwZUVkaXRSb3V0ZS5yZXNvbHZlLmFjdGl2aXR5T3B0aW9uc1Rhc2sgPSBnZXRSZXNvbHZlckZvckFjdGl2aXR5VHlwZUNvbXBvbmVudCgnQ2l2aVRhc2snKTtcbiAgICAgIGNhc2VUeXBlRWRpdFJvdXRlLnJlc29sdmUuYWN0aXZpdHlPcHRpb25zRG9jdW1lbnQgPSBnZXRSZXNvbHZlckZvckFjdGl2aXR5VHlwZUNvbXBvbmVudCgnQ2l2aURvY3VtZW50Jyk7XG4gICAgfSkoKTtcblxuICAgIGZ1bmN0aW9uIGdldFJlc29sdmVyRm9yQWN0aXZpdHlUeXBlQ29tcG9uZW50IChjb21wb25lbnROYW1lKSB7XG4gICAgICBhY3Rpdml0eU9wdGlvbnNSZXNvbHZlci4kaW5qZWN0ID0gWydjcm1BcGknXTtcblxuICAgICAgZnVuY3Rpb24gYWN0aXZpdHlPcHRpb25zUmVzb2x2ZXIgKGNybUFwaSkge1xuICAgICAgICByZXR1cm4gY3JtQXBpKCdPcHRpb25WYWx1ZScsICdnZXQnLCB7XG4gICAgICAgICAgb3B0aW9uX2dyb3VwX2lkOiAnYWN0aXZpdHlfdHlwZScsXG4gICAgICAgICAgY29tcG9uZW50X2lkOiBjb21wb25lbnROYW1lLFxuICAgICAgICAgIHNlcXVlbnRpYWw6IDEsXG4gICAgICAgICAgb3B0aW9uczogeyBzb3J0OiAnbmFtZScsIGxpbWl0OiAwIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY3Rpdml0eU9wdGlvbnNSZXNvbHZlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gJGRlbGVnYXRlO1xuICB9XG59KShhbmd1bGFyKTtcbiIsIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbihmdW5jdGlvbiAoYW5ndWxhcikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgYW5ndWxhci5tb2R1bGUoJ2NybS10YXNrcy13b3JrZmxvd3MnLCBbXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29yZScsXG4gICAgJ2NybS10YXNrcy13b3JrZmxvd3MuY29udHJvbGxlcnMnLFxuICAgICdjcm0tdGFza3Mtd29ya2Zsb3dzLmRlY29yYXRvcnMnXG4gIF0pO1xufSkoYW5ndWxhcik7XG4iXX0= diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js index 2daf0a30..a9939e98 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/controllers/casetype.extended.controller.js @@ -13,14 +13,11 @@ function CaseTypeExtendedController ($controller, $log, $scope, crmApi, apiCalls, activityOptionsTask, activityOptionsDocument) { $log.debug('Controller: CaseTypeExtendedController'); + initParentController(); var originalAddActivity = $scope.addActivity; $scope.addActivity = addActivity; - (function init () { - initParentController(); - })(); - /** * Add new activity * @@ -48,7 +45,7 @@ } /** - * Add component type label to activity types + * Get list of activity types with component type added to label * * @return {Array} */ diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js index 2997bc2c..dae9c431 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/src/crm-tasks-workflows/decorators/route.decorator.js @@ -12,43 +12,26 @@ function RouteDecorator ($delegate) { (function init () { - $delegate.routes['/caseType/:id'].controller = 'CaseTypeExtendedController'; - addActivityOptionsTask(); - addActivityOptionsDocument(); + var caseTypeEditRoute = $delegate.routes['/caseType/:id']; + + caseTypeEditRoute.controller = 'CaseTypeExtendedController'; + caseTypeEditRoute.resolve.activityOptionsTask = getResolverForActivityTypeComponent('CiviTask'); + caseTypeEditRoute.resolve.activityOptionsDocument = getResolverForActivityTypeComponent('CiviDocument'); })(); - function addActivityOptionsTask () { - $delegate.routes['/caseType/:id'].resolve.activityOptionsTask = activityOptionsTask; - activityOptionsTask.$inject = ['crmApi']; + function getResolverForActivityTypeComponent (componentName) { + activityOptionsResolver.$inject = ['crmApi']; - function activityOptionsTask (crmApi) { + function activityOptionsResolver (crmApi) { return crmApi('OptionValue', 'get', { option_group_id: 'activity_type', - component_id: 'CiviTask', + component_id: componentName, sequential: 1, - options: { - sort: 'name', - limit: 0 - } + options: { sort: 'name', limit: 0 } }); } - } - function addActivityOptionsDocument () { - $delegate.routes['/caseType/:id'].resolve.activityOptionsDocument = activityOptionsDocument; - activityOptionsDocument.$inject = ['crmApi']; - - function activityOptionsDocument (crmApi) { - return crmApi('OptionValue', 'get', { - option_group_id: 'activity_type', - component_id: 'CiviDocument', - sequential: 1, - options: { - sort: 'name', - limit: 0 - } - }); - } + return activityOptionsResolver; } return $delegate; diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js index e398d23f..7649a5d1 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/test/crm-tasks-workflows/controllers/casetype.extended.controller.spec.js @@ -59,6 +59,11 @@ }); }); + /** + * Initialise the controller + * + * @param {Object} $scope + */ function initController ($scope) { $scope = $scope || $rootScope.$new(); @@ -73,6 +78,11 @@ $scope.$digest(); } + /** + * Get list of activity types with component type added to label + * + * @return {Array} activity types + */ function getActivityTypes () { var taskOptions = TaskActivityOptionsData.map(function (type) { type.label = (type.label + ' (Task)'); diff --git a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php index 53338043..15fda549 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php +++ b/uk.co.compucorp.civicrm.tasksassignments/tasksassignments.php @@ -289,8 +289,8 @@ function tasksAssignments_civicrm_alterAngular(\Civi\Angular\Manager $angular) { $changeSet->alterHtml('~/crmCaseType/timelineTable.html', function (phpQueryObject $doc) { _tasksAssignments_change_add_activity_dropdown_placeholder($doc); - _tasksAssignments_remove_columns_from_timeline($doc); _tasksAssignments_change_column_text($doc); + _tasksAssignments_remove_columns_from_timeline($doc); }); $angular->add($changeSet); @@ -524,22 +524,16 @@ function _tasksAssignments_allow_only_add_timeline_action (phpQueryObject $doc) * * @param phpQueryObject $doc */ -function _tasksAssignments_remove_columns_from_timeline ($doc) { - $selectColumnHeader = $doc->find('table th:nth-child(6)'); - $selectColumnBody = $doc->find('table td:nth-child(6)'); - $referenceColumnHeader = $doc->find('table th:nth-child(4)'); - $referenceColumnBody = $doc->find('table td:nth-child(4)'); - $statusColumnHeader = $doc->find('table th:nth-child(3)'); - $statusColumnBody = $doc->find('table td:nth-child(3)'); - - $elementsToRemove = [ - $selectColumnHeader, $selectColumnBody, - $referenceColumnHeader, $referenceColumnBody, - $statusColumnHeader, $statusColumnBody - ]; +function _tasksAssignments_remove_columns_from_timeline (phpQueryObject $doc) { + $columnsToBeRemovedFromTimeline = [ 'Status', 'Reference', 'Select' ]; + + foreach ($columnsToBeRemovedFromTimeline as $columnName) { + $columnHeader = $doc->find('table th:contains("' . $columnName . '"'); + $columnIndex = $doc->find('table th')->index($columnHeader) + 1; + $columnBody = $doc->find('table td:nth-child('. $columnIndex .')'); - foreach( $elementsToRemove as $element ) { - $element->remove(); + $columnHeader->remove(); + $columnBody->remove(); } } @@ -548,7 +542,7 @@ function _tasksAssignments_remove_columns_from_timeline ($doc) { * * @param phpQueryObject $doc */ -function _tasksAssignments_change_column_text ($doc) { +function _tasksAssignments_change_column_text (phpQueryObject $doc) { $doc->find('th:contains("Activity")') ->text('Task / Document Type'); } From c432c30f0f21a71e7833daf1af25a297aac9c742 Mon Sep 17 00:00:00 2001 From: Debarshi Bhaumik Date: Fri, 20 Apr 2018 13:21:20 +0530 Subject: [PATCH 23/29] PCHR-3596: Rename T&A Modal --- .../js/dist/tasks-assignments.min.js | 2 +- .../controllers/modal/modal-dialog.controller.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/js/dist/tasks-assignments.min.js b/uk.co.compucorp.civicrm.tasksassignments/js/dist/tasks-assignments.min.js index a094f449..a590fffc 100644 --- a/uk.co.compucorp.civicrm.tasksassignments/js/dist/tasks-assignments.min.js +++ b/uk.co.compucorp.civicrm.tasksassignments/js/dist/tasks-assignments.min.js @@ -14,7 +14,7 @@ */ define("tasks-assignments/modules/tasks-assignments.constants",["common/angular"],function(e){"use strict";e.module("tasks-assignments.constants",[]).constant("config",{DEBUG:!!+CRM.debug,CLASS_NAME_PREFIX:"ct-",CONTACT_ID:CRM.contactId||null,LOGGED_IN_CONTACT_ID:CRM.adminId||null,path:{EXT:CRM.tasksAssignments.extensionPath,TPL:CRM.tasksAssignments.extensionPath+"views/"},permissions:{allowDelete:CRM.tasksAssignments.permissions.delete_tasks_and_documents},url:{REST:CRM.url("civicrm/ajax/rest"),ASSIGNMENTS:CRM.url("civicrm/case"),CIVI_DASHBOARD:CRM.url("civicrm/"),CONTACT:CRM.url("civicrm/contact/view"),FILE:"/civicrm/tasksassignments/file",CSV_EXPORT:CRM.url("civicrm/tasksassignments")},status:{resolve:{DOCUMENT:["3","4"],TASK:["2","3","6","8"]}}})}),define("tasks-assignments/controllers/assignments.controller",[],function(){"use strict";function e(e,t,n,a,s,r,i){e.info("Controller: AssignmentsController")}return e.__name="AssignmentsController",e.$inject=["$log","$rootElement","$rootScope","$scope","$uibModal","$state","config"],e}),define("tasks-assignments/controllers/calendar.controller",["common/angular","common/moment"],function(e,t){"use strict";function n(n,a,s,r,i,o,c,l,u,d){function m(n,a,s){var r=[];return e.forEach(a,function(e){e.activity_date_time=t(e.activity_date_time).toDate(),this.push({id:e.id,title:s[e.activity_type_id],type:n,startsAt:e.activity_date_time,endsAt:e.activity_date_time,editable:!1,deletable:!1,incrementsBadgeTotal:!0}),e.expire_date&&(e.expire_date=t(e.expire_date).toDate(),+e.expire_date!=+e.activity_date_time&&this.push({id:e.id,title:s[e.activity_type_id],type:n,startsAt:e.expire_date,endsAt:e.expire_date,editable:!1,deletable:!1,incrementsBadgeTotal:!0}))},r),r}function f(e){r.calendarDay=t(e).toDate(),r.calendarView="day"}function g(e,n,a,s,r){var i,o,c,l=e.id,u=n.id,d=a.length,m=0;if(u)for(;m-1?{}:t,n,r.calTaskList,s.cache.taskType.obj,"task")}),r.$on("documentDelete",function(e,t){g({},{id:t},r.calDocList)}),r.$on("documentFormSuccess",function(e,t,n){g(s.cache.documentStatusResolve.indexOf(t.status_id)>-1?{}:t,n,r.calDocList,s.cache.documentType.obj,"document")}),r.$on("assignmentFormSuccess",function(e,t){Array.prototype.push.apply(r.calTaskList,this.createCalEventList("task",t.taskList,s.cache.taskType.obj)),+l.tabEnabled.documents&&Array.prototype.push.apply(r.calDocList,this.createCalEventList("document",t.documentList,s.cache.documentType.obj))}.bind(this))}r.calendarDay=new Date,r.calendarTitle="",r.calendarView=o.params.calendarView||"month",r.calTaskList=[],r.calDocList=[],this.createCalEventList=m.bind(this),r.displayDayView=f,function(){v.call(this),r.calTaskList=this.createCalEventList("task",d,s.cache.taskType.obj),+l.tabEnabled.documents&&(r.calDocList=this.createCalEventList("document",u,s.cache.documentType.obj))}.bind(this)()}return n.__name="CalendarController",n.$inject=["$filter","$log","$rootScope","$scope","$timeout","$state","$stateParams","settings","documentList","taskList"],n}),define("tasks-assignments/controllers/date-list.controller",["common/moment"],function(e){"use strict";function t(t,n,a,s,r,i,o,c,l,u){function d(e){for(var t,n=0,a=e.length,s={},r=[];n-1;a.task.resolved=t,a.task.completed=t}),a.$watch("task.activity_date_time",function(e){a.task.due=new Date(e).setHours(0,0,0,0)<(new Date).setHours(0,0,0,0)})}t.debug("Controller: TaskController"),a.isCollapsed=!0,a.picker={opened:!1},a.task.activity_date_time=a.task.activity_date_time?e(a.task.activity_date_time).toDate():null,a.dpOpen=s,function(){r()}()}return n.__name="TaskController",n.$inject=["$log","$rootScope","$scope"],n}),define("tasks-assignments/controllers/dashboard/nav-main.controller",[],function(){"use strict";function e(e,t,n){function a(e){return n.includes(e)}e.debug("Controller: NavMainController"),t.isActive=a}return e.__name="NavMainController",e.$inject=["$log","$scope","$state"],e}),define("tasks-assignments/controllers/dashboard/top-bar.controller",[],function(){"use strict";function e(e,t,n,a){e.debug("Controller: TopBarController"),t.itemAdd={},t.itemAdd.fn=function(){a.includes("documents")?t.modalDocument():t.modalTask()},t.itemAdd.label=function(){return a.includes("documents")?"Add Document":"Add Task"}}return e.__name="TopBarController",e.$inject=["$log","$rootScope","$scope","$state"],e}),define("tasks-assignments/services/contact.service",["common/angular","common/lodash"],function(e,t){"use strict";function n(n,a,s,r,i,o,c,l){function u(e){if(!e||"number"!=typeof+e&&"object"!=typeof e)return null;var a=r.defer();return e={IN:t.uniq(e.IN)},n.get({json:{id:e,return:"display_name, sort_name, id, contact_id, contact_type, email"}},function(e){c.errorHandler(e,"Unable to fetch contacts",a)||a.resolve(e.values)},function(){a.reject("Unable to fetch contact")}),a.promise}function d(t,a){if(a&&"object"!=typeof a)return null;var s=r.defer(),i={};return e.extend(i,a),i.display_name=t,i.return="display_name, contact_id, contact_type, email",n.get({action:"get",json:i},function(e){if(!c.errorHandler(e,"Unable to fetch contact list",s)){var t=[];for(var n in e.values)t.push({label:e.values[n].display_name,description:[e.values[n].email],id:e.values[n].contact_id,icon_class:e.values[n].contact_type});s.resolve(t)}},function(){s.reject("Unable to fetch contact list")}),s.promise}function m(t){var n,a,s=o.cache.contact.obj||{},r=[],c=[];e.extend(s,t);for(a in s)n=s[a],r.push(n),c.push({description:n.email?[n.email]:[],label:n.display_name,icon_class:n.contact_type,id:n.contact_id});r=i("orderBy")(r,"sort_name"),c=i("orderBy")(c,"label"),o.cache.contact={arr:r,obj:s,arrSearch:c}}return l.debug("Service: contactService"),{get:u,search:d,updateCache:m}}return n.__name="contactService",n.$inject=["Contact","$resource","config","$q","$filter","$rootScope","utilsService","$log"],n}),define("tasks-assignments/services/document.service",["common/angular","common/lodash"],function(e,t){"use strict";function n(n,a,s,r,i,o,c,l){function u(t,s){if(!t||!e.isArray(t)||!s||"number"!=typeof+s)return null;if(!t.length)return t;var r=a.defer();return n.save({action:"copy_to_assignment"},{json:{id:t,case_id:s}||{}},function(e){i.errorHandler(e,"Unable to assign documents",r)||r.resolve(e.values)},function(){r.reject("Unable to assign documents")}),r.promise}function d(e,n){var i,l,u=[],d=[];return void 0===n&&(n=["contacts","assignments"]),n=Array.isArray(n)?n:[n],t.contains(n,"contacts")&&(u=m(e),s.CONTACT_ID&&u.push(s.CONTACT_ID),i=u&&u.length?o.get({IN:u}).then(function(e){o.updateCache(e)}):a.resolve()),t.contains(n,"assignments")&&(d=f(e),l=d&&d.length&&r.extEnabled.assignments?c.get({IN:d}).then(function(e){c.updateCache(e)}):a.resolve()),a.all([i,l])}function m(e){return t(e).map(function(e){var t=[];return t.push(e.source_contact_id),e.assignee_contact_id&&e.assignee_contact_id.length&&(t=t.concat(e.assignee_contact_id)),e.target_contact_id&&e.target_contact_id.length&&t.push(e.target_contact_id[0]),t}).flatten().value()}function f(e){return e.filter(function(e){return!!e.case_id}).map(function(e){return e.case_id})}function g(e){if(!e||"number"!=typeof+e)return null;var t=a.defer();return n.delete({action:"delete",json:{id:e}},function(e){t.resolve(e)},function(){t.reject("Could not delete document ID: "+e)}),t.promise}function v(t){var s=a.defer();return t=t&&"object"==typeof t?t:{},t=e.extend({component:"CiviDocument",options:{limit:0},is_current_revision:"1",is_deleted:"0",sequential:"1",return:"activity_date_time, activity_type_id, assignee_contact_id, details, id, source_contact_id, target_contact_id, subject, status_id, expire_date"},t),n.get({json:t},function(e){s.resolve(e.values)},function(){s.reject("Unable to fetch documents list")}),s.promise}function p(){var e=a.defer(),s={arr:[],obj:{}};return n.get({action:"getoptions",json:{field:"status_id"}},function(n){t.each(n.values,function(e){s.arr.push({key:e.key.toString(),value:e.value}),s.obj[e.key]=e.value}),e.resolve(s)}),e.promise}function h(){var e=a.defer(),s={arr:[],obj:{}};return n.get({action:"getoptions",json:{field:"activity_type_id",options:{limit:0}}},function(n){t.each(n.values,function(e){s.arr.push({key:e.key,value:e.value}),s.obj[e.key]=e.value}),e.resolve(s)}),e.promise}function y(){return a.all({documentType:this.getDocumentTypes(),documentStatus:this.getDocumentStatus()})}function _(t){if(!t||"object"!=typeof t)return null;var r,o=a.defer(),c=e.extend({sequential:1,debug:s.DEBUG},t);return n.save({action:"create"},{json:c||{}},function(e){i.errorHandler(e,"Unable to save document",o)||(r=e.values,o.resolve(1===r.length?r[0]:null))},function(){o.reject("Unable to save document")}),o.promise}function k(t){if(!t||!e.isArray(t))return null;if(!t.length)return t;var s=a.defer();return n.save({action:"create_multiple"},{json:{document:t}||{}},function(e){i.errorHandler(e,"Unable to save documents",s)||s.resolve(e.values)},function(){s.reject("Unable to save documents")}),s.promise}function $(e,t){if(!e||"number"!=typeof+e)return null;var s=a.defer();return n.save({action:"sendreminder"},{json:{activity_id:e,notes:t||""}||{}},function(e){i.errorHandler(e,"Unable to send a reminder",s)||s.resolve(e)},function(){s.reject("Unable to send a reminder")}),s.promise}return l.debug("Service: documentService"),{assign:u,cacheContactsAndAssignments:d,delete:g,get:v,getOptions:y,getDocumentStatus:p,getDocumentTypes:h,save:_,saveMultiple:k,sendReminder:$}}return n.__name="documentService",n.$inject=["Document","$q","config","settings","utilsService","contactService","assignmentService","$log"],n}),define("tasks-assignments/services/task.service",["common/angular","common/lodash","common/moment"],function(e,t,n){"use strict";function a(a,s,r,i,o){function c(t,n){if(!t||!e.isArray(t)||!n||"number"!=typeof+n)return null;if(!t.length)return t;var r=s.defer();return a.save({action:"copy_to_assignment"},{json:{id:t,case_id:n}||{}},function(e){i.errorHandler(e,"Unable to assign tasks",r)||r.resolve(e.values)},function(){r.reject("Unable to assign tasks")}),r.promise}function l(e){if(!e||"number"!=typeof+e)return null;var t=s.defer();return a.delete({action:"delete",json:{id:e}},function(e){t.resolve(e)},function(){t.reject("Could not delete task ID: "+e)}),t.promise}function u(t){var n=s.defer();return t=t&&"object"==typeof t?t:{},t=e.extend({component:"CiviTask",options:{limit:0},is_current_revision:"1",is_deleted:"0",sequential:"1",return:"activity_date_time, activity_type_id, assignee_contact_id, details, id, source_contact_id, target_contact_id, subject, status_id"},t),a.get({json:t},function(e){n.resolve(e.values)},function(){n.reject("Unable to fetch tasks list")}),n.promise}function d(){var e=s.defer(),n={arr:[],obj:{}};return a.get({action:"getoptions",json:{field:"activity_type_id",options:{limit:0}}},function(a){t.each(a.values,function(e){n.arr.push({key:e.key,value:e.value}),n.obj[e.key]=e.value}),e.resolve(n)}),e.promise}function m(){return s.all({taskType:this.getActivityTypes(),taskStatus:this.getTaskStatus()})}function f(){var e=s.defer(),n={arr:[],obj:{}};return a.get({action:"getoptions",json:{field:"status_id"}},function(a){t.each(a.values,function(e){n.arr.push({key:e.key,value:e.value}),n.obj[e.key]=e.value}),e.resolve(n)}),e.promise}function g(t){if(!t||"object"!=typeof t)return null;t.activity_date_time instanceof Date&&(t.activity_date_time=n(t.activity_date_time.getTime()).format("YYYY-MM-DD"));var r,o=s.defer(),c=e.extend({},t);return a.save({action:"create"},{json:c||{}},function(e){i.errorHandler(e,"Unable to save task",o)||(r=e.values,o.resolve(1===r.length?r[0]:null))},function(){o.reject("Unable to save task")}),o.promise}function v(t){if(!t||!e.isArray(t))return null;if(!t.length)return t;t.forEach(function(e){e.activity_date_time instanceof Date&&(e.activity_date_time=n(e.activity_date_time.getTime()).format("YYYY-MM-DD"))});var r=s.defer();return a.save({action:"create_multiple"},{json:{task:t}||{}},function(e){i.errorHandler(e,"Unable to save tasks",r)||r.resolve(e.values)},function(){r.reject("Unable to save tasks")}),r.promise}function p(e,t){if(!e||"number"!=typeof+e)return null;var n=s.defer();return a.save({action:"sendreminder"},{json:{activity_id:e,notes:t}},function(e){i.errorHandler(e,"Unable to send a reminder",n)||n.resolve(e)},function(){n.reject("Unable to send a reminder")}),n.promise}return o.debug("Service: taskService"),{assign:c,delete:l,get:u,getActivityTypes:d,getOptions:m, -getTaskStatus:f,save:g,saveMultiple:v,sendReminder:p}}return a.__name="taskService",a.$inject=["Task","$q","config","utilsService","$log"],a}),define("tasks-assignments/services/assignment.service",["common/angular","common/lodash"],function(e,t){"use strict";function n(t,n,a,s,r,i,o,c,l,u,d,m,f,g){function v(e,n){if(!e||"number"!=typeof+e||!n||"number"!=typeof+n)return null;var a=i.defer();return t.save({action:"create",json:{sequential:1,contact_id_a:e,contact_id_b:o.LOGGED_IN_CONTACT_ID,relationship_type_id:9,case_id:n}},null,function(e){c.errorHandler(e,"Unable to assign coordinator",a)||a.resolve(e.values)},function(){a.reject("Unable to assign coordinator")}),a.promise}function p(e){if(!e||"number"!=typeof+e&&"object"!=typeof e)return null;var t=i.defer();return n.get({json:{options:{limit:0},id:e,return:["case_type_id","contacts","client_id","contact_id","id","is_deleted","start_date","status_id","subject"],debug:o.DEBUG}},function(e){c.errorHandler(e,"Unable to fetch assignments",t)||t.resolve(e.values)},function(){t.reject("Unable to fetch assignments")}),t.promise}function h(){var e=i.defer();return s.get({},function(t){c.errorHandler(t,"Unable to fetch assignment types",e)||e.resolve(t.values)},function(){e.reject("Unable to fetch assignment types")}),e.promise}function y(t){if(!t||"object"!=typeof t)return null;var a,s=i.defer(),r=e.extend({sequential:1,debug:o.DEBUG},t);return n.save({action:"create",json:r},null,function(e){c.errorHandler(e,"Unable to save an assignment",s)||(a=e.values,s.resolve(1===a.length?a[0]:null))},function(){s.reject("Unable to save an assignment")}),s.promise}function _(e,t,n){return n=Array.isArray(n)?n.join(","):n,a.query({sortName:e,excludeCaseIds:t,includeContactIds:n}).$promise}function k(e){return document.getElementsByClassName("CRM_Case_Form_Search").length?void CRM.refreshParent(".CRM_Case_Form_Search"):document.getElementById("tab_case")?void CRM.tabHeader.updateCount("#tab_case",CRM.tabHeader.getCount("#tab_case")+(e||0)):void("/assignments"===u.path()&&d.reload(!0))}function $(t){var n,a,s,r=m.cache.assignment.obj||{},i=[],o=[];e.extend(r,t);for(a in r)n=r[a],s=m.cache.assignmentType.obj[n.case_type_id].title,i.push(n),o.push({label:n.contacts[0].sort_name+" - "+s+(n.end_date?" (closed)":""),label_class:+n.is_deleted||n.end_date?"strikethrough":"",id:a,extra:{case_subject:n.subject,case_type:s,contact_id:n.contacts[0].contact_id,end_date:n.end_date,sort_name:n.contacts[0].sort_name,start_date:n.start_date}});i=l("orderBy")(i,"subject"),o=l("orderBy")(o,"label"),m.cache.assignment={arr:i,obj:r,arrSearch:o}}return f.debug("Service: assignmentService"),{get:p,assignCoordinator:v,getTypes:h,save:y,search:_,updateCache:$,updateTab:k}}return n.__name="assignmentService",n.$inject=["Relationship","Assignment","AssignmentSearch","AssignmentType","contactService","$q","config","utilsService","$filter","$location","$state","$rootScope","$log","$timeout"],n}),define("tasks-assignments/controllers/modal/modal-assignment-activity.controller",["common/lodash","common/angular","common/moment","tasks-assignments/services/contact.service","tasks-assignments/services/document.service","tasks-assignments/services/task.service","tasks-assignments/services/assignment.service"],function(e,t,n){"use strict";function a(e,t){function a(){t.$watch("$parent.assignment.dueDate",function(e){t.activity.create&&(t.activity.activity_date_time=e?n(e).add(t.activity.offset,"days").toDate():null)}),t.$watch("$parent.assignment.contact_id",function(e){e&&t.activity.create&&(t.activity.target_contact_id=[e])})}e.debug("Controller: ModalAssignmentTaskController"),t.isDisabled=!t.activity.activity_type_id&&!t.activity.isAdded,t.activity.create=!t.isDisabled,function(){a()}()}return a.__name="ModalAssignmentActivityController",a.$inject=["$log","$scope"],a}),define("tasks-assignments/controllers/modal/modal-assignment.controller",["common/lodash","common/angular","common/moment"],function(e,t,n){"use strict";function a(n,a,s,r,i,o,c,l,u,d,m,f,g,v,p){function h(e){e&&e.push(t.extend(t.copy(j),{isAdded:!0}))}function y(e){var t={};t[e.id]={contact_id:e.id,contact_type:e.icon_class,sort_name:e.label,display_name:e.label,email:e.description.length?e.description[0]:""},v.updateCache(t)}function _(){c.dismiss("cancel")}function k(){if(!n("filter")(i.taskList,{create:!0}).length&&!n("filter")(i.documentList,{create:!0}).length)return i.alert.msg="Please add at least one task.",void(i.alert.show=!0);A(i.assignment)&&(i.$broadcast("ct-spinner-show"),i.assignment.start_date=new Date,m.save(i.assignment).then(function(e){var n=i.documentList.filter(function(e){return e.create}).map(function(t){return t.case_id=e.id,t}),a=i.taskList.filter(function(e){return e.create}).map(function(t){return t.case_id=e.id,t});s.all({relationship:m.assignCoordinator(i.assignment.contact_id,e.id),document:g.saveMultiple(n.map(function(e){return t.copy(e)})),task:f.saveMultiple(a.map(function(e){return t.copy(e)}))}).then(function(s){var o,l=[],d=[],f={};for(o=0;o=se.fileSizeLimit&&(a=!1)}),!a&&b.alert("Large files",n,{expires:5e3}),a}function te(e){var t=[];if(e.target_contact_id[0]||t.push("Contact"),e.activity_type_id||t.push("Document type"),e.status_id||t.push("Document status"),e.status_id||t.push("Status"),t.length){var n=1===t.length?"Required field":"Required fields",a=t.join(", ");return b.alert(n,a,{expires:5e3}),!1}return!0}function ne(e){o.$broadcast("ct-spinner-show"),$.openFile(e).then(function(e){o.$broadcast("ct-spinner-hide")})}function ae(){o.$watch("cache.contact.arrSearch",M)}s.debug("Controller: ModalDocumentController");var se=this;se.document={},se.files=[],se.fileSizeLimit=0,se.filesTrash=[],se.mode=w,se.modalTitle="edit"===se.mode?"Edit Document":"New Document",se.containsFiles=!0,se.remindMeMessage='Checking this box sets a reminder that this document needs to be renewed a set number of days before the Expiry Date. You can set this by going here CiviHR will do this by creating a copy of this document with the status ‘awaiting upload’, which you will be able to see in your Documents list.',se.role=C||"admin",se.showCId=!v.CONTACT_ID,se.uploader=k.uploader("civicrm_activity"),se.dpOpened={due:!1,exp:!1,form:!1},se.addAssignee=T,se.addQueryParam=E,se.cacheAssignment=x,se.cacheContact=A,se.cancel=j,se.confirm=I,se.dpOpen=R,se.dropzoneClick=L,se.fileMoveToTrash=P,se.getDocumentType=H,se.getDocumentStatus=q,se.getStatusIdByName=U,se.isRole=B,se.onContactChanged=Y,se.parseDate=G,se.removeAssignee=W,se.refreshAssignments=z,se.refreshContacts=K,se.remindMeInfo=X,se.statusFieldVisible=Z,se.showStatusField=Q,se.searchContactAssignments=J,se.viewFile=ne,function(){e.copy(D,se.document),e.copy(S,se.files),O(),N(),M(),ae(),F()}()}return a.__name="ModalDocumentController",a.$inject=["$filter","$log","$q","$rootElement","$rootScope","$scope","$timeout","$window","$dialog","$uibModal","$uibModalInstance","HR_settings","config","appSettingsService","assignmentService","contactService","documentService","fileServiceTA","fileService","notificationService","modalMode","role","data","files"],a}),define("tasks-assignments/controllers/modal/modal-progress.controller",[],function(){"use strict";function e(e,t,n,a,s,r,i,o){function c(){s.dismiss("File upload canceled")}e.debug("Controller: ModalProgressController"),n.uploader=i,n.cancel=c,function(){i.queue.length&&(i.item=i.queue[0].file.name),i.onProgressItem=function(e){this.item=e.file.name},r.upload(i,o).then(function(e){a(function(){s.close(e)},500)})}()}return e.__name="ModalProgressController",e.$inject=["$log","$q","$scope","$timeout","$uibModalInstance","fileServiceTA","uploader","entityId"],e}),define("tasks-assignments/controllers/modal/modal-reminder.controller",["common/angular"],function(e){"use strict";function t(t,n,a,s,r,i,o,c,l,u,d,m){function f(){o.dismiss("cancel")}function g(){r.$broadcast("ct-spinner-show"),("task"===m?l:c).sendReminder(r.data.id,r.reminder.notes).then(function(){CRM.alert("Message sent to: "+s.cache.contact.obj[r.data.assignee_contact_id[0]].sort_name,"Reminder sent","success"),o.close(),r.$broadcast("ta-spinner-hide")},function(e){return CRM.alert(e,"Error","error"),o.dismiss(),r.$broadcast("ta-spinner-hide"),a.reject()})}n.debug("Controller: ModalReminderController"),r.data={},r.type=m,e.copy(d,r.data),r.reminder={},r.data.assignee_contact_id=r.data.assignee_contact_id||[],r.data.target_contact_id=r.data.target_contact_id||[u.CONTACT_ID],r.contacts=s.cache.contact.arrSearch,r.showCId=!u.CONTACT_ID,r.cancel=f,r.confirm=g}return t.__name="ModalReminderController",t.$inject=["$filter","$log","$q","$rootScope","$scope","$dialog","$uibModalInstance","documentService","taskService","config","data","type"],t}),define("tasks-assignments/controllers/modal/modal-task-migrate.controller",["common/angular"],function(e){"use strict";function t(t,n,a,s,r,i,o,c,l,u,d,m,f,g,v,p,h){function y(e){var t={};t[e.id]={contact_id:e.id,contact_type:e.icon_class,sort_name:e.label,display_name:e.label,email:e.description.length?e.description[0]:""},m.updateCache(t)}function _(){if(i.taskMigrateForm.$pristine)return void l.dismiss("cancel");u.open({copyCancel:"No",msg:"Are you sure you want to cancel? Changes will be lost!"}).then(function(e){e&&(i.$broadcast("ct-spinner-hide"),l.dismiss("cancel"))})}function k(){if(i.migrate.task.statusListSelected||i.migrate.document.statusListSelected){var t,n=[],s=[],o=0;e.forEach(i.migrate.task.list,function(e){i.migrate.task.statusListSelected.indexOf(e.status_id)>-1&&this.push(e)},n),+h.tabEnabled.documents&&e.forEach(i.migrate.document.list,function(e){i.migrate.document.statusListSelected.indexOf(e.status_id)>-1&&this.push(e)},n),i.$broadcast("ct-spinner-show"),e.forEach(n,function(n){n.assignee_contact_id[0]=i.migrate.to,this.push(function(){var s=a.defer();return t=o?this[o-1]:{},a.when(t).then(function(){v.save({entity:"Activity",action:"create",json:e.extend({sequential:"1",component:""},n)},null,function(e){g.errorHandler(e,"Unable to save task",s)||s.resolve(1===e.values.length?e.values[0]:null)},function(){s.reject("Unable to save task")})}),s.promise}.bind(this)()),o++},s),a.all(s).then(function(e){e.length?CRM.alert(e.length+" item(s) re-assigned from: "+r.cache.contact.obj[i.migrate.from].sort_name+" to: "+r.cache.contact.obj[i.migrate.to].sort_name,"Migrate Tasks","success"):CRM.alert("0 items re-assigned.","Migrate Tasks","warning"),l.dismiss(),i.$broadcast("ct-spinner-hide")},function(e){CRM.alert(e,"Error","error"),l.dismiss(),i.$broadcast("ct-spinner-hide")})}}function $(n){i.$broadcast("ct-spinner-show"),n=n||i.migrate.from,i.migrate.task.statusList=[],i.migrate.task.statusListSelected=[],i.migrate.document.statusList=[],i.migrate.document.statusListSelected=[],i.migrate.dataLoaded=!1;var a=[];v.get({entity:"ActivityContact",json:{component:"",sequential:"1",return:"activity_id",contact_id:n,record_type_id:"1",options:{limit:"0"}}},function(n){n.values&&n.values.length?(e.forEach(n.values,function(e){this.push(e.activity_id)},a),v.get({entity:"Activity",json:{component:"",options:{limit:0},id:{IN:a},is_current_revision:"1",is_deleted:"0",sequential:"1",return:"assignee_contact_id, activity_type_id, assignee_contact_id, id, status_id"}},function(n){function a(e,t){var n=i.migrate[e];n.list.push(t),n.statusList.indexOf(t.status_id)>-1||(o[e].indexOf(t.status_id)>-1?n.statusList.push(t.status_id):(n.statusList.unshift(t.status_id),n.statusListSelected.push(t.status_id)))}var s=r.cache.documentType.obj,o={task:r.cache.taskStatusResolve,document:r.cache.documentStatusResolve};n.values&&n.values.length&&(n.values=t("orderBy")(n.values,"-status_id"),e.forEach(n.values,function(e){s[e.activity_type_id]?a("document",e):a("task",e)})),i.migrate.dataLoaded=!0,i.$broadcast("ct-spinner-hide")})):(i.migrate.dataLoaded=!0,i.$broadcast("ct-spinner-hide"))})}function b(e){e&&m.search(e,{contact_type:"Individual"}).then(function(e){i.contacts=e})}n.debug("Controller: ModalTaskMigrateController"),i.contacts=r.cache.contact.arrSearch,i.migrate={},i.migrate.dataLoaded=!1,i.migrate.from="",i.migrate.to="",i.migrate.document={list:[],statusList:[],statusListSelected:[]},i.migrate.task={list:[],statusList:[],statusListSelected:[]},i.cacheContact=y,i.cancel=_,i.confirm=k,i.getActivities=$,i.refreshContacts=b}return t.__name="ModalTaskMigrateController",t.$inject=["$filter","$log","$q","$rootElement","$rootScope","$scope","$timeout","$uibModal","$uibModalInstance","$dialog","assignmentService","contactService","taskService","utilsService","Task","activityType","settings"],t}),define("tasks-assignments/controllers/modal/modal-task.controller",["common/angular","common/moment"],function(e,t){"use strict";function n(n,a,s,r,i,o,c,l,u,d,m,f,g,v,p,h){function y(e){if(!i.cache.assignment.obj[e.id]){var t={};t[e.id]={case_type_id:n("filter")(i.cache.assignmentType.arr,{title:e.extra.case_type})[0].id,client_id:{1:e.extra.contact_id},contact_id:{1:e.extra.contact_id},contacts:[{sort_name:e.extra.sort_name,contact_id:e.extra.contact_id}],end_date:e.extra.end_date,id:e.id,is_deleted:"strikethrough"===e.label_class?"1":"0",start_date:e.extra.start_date,subject:e.extra.case_subject},m.updateCache(t)}}function _(e){var t={};t[e.id]={contact_id:e.id,contact_type:e.icon_class,sort_name:e.label,display_name:e.label,email:e.description.length?e.description[0]:""},f.updateCache(t)}function k(){if(o.taskForm.$pristine)return void u.dismiss("cancel");d.open({copyCancel:"No",msg:"Are you sure you want to cancel? Changes will be lost!"}).then(function(e){e&&(o.$broadcast("ct-spinner-hide"),u.dismiss("cancel"))})}function $(){var t=e.copy(o.task);if(T(t)){if(e.equals(p,t))return void u.dismiss("cancel");o.$broadcast("ct-spinner-show"),+t.case_id==+p.case_id&&delete t.case_id,t.activity_date_time=t.activity_date_time||new Date,g.save(t).then(function(e){o.task.id=e.id,o.task.case_id=e.case_id,m.updateTab(),o.openNew&&(o.task.open=!0,o.openNew=!1),u.close(o.task),o.$broadcast("ct-spinner-hide")},function(e){return CRM.alert(e,"Error","error"),o.$broadcast("ct-spinner-hide"),s.reject()})}}function b(e){e.preventDefault(),e.stopPropagation(),o.dpOpened=!0}function w(e){var t=i.cache.contact.arrSearch;return o.task.id?t.filter(function(t){return+o.task[e+"_contact_id"][0]==+t.id}):[]}function C(){o.$watch("task.target_contact_id",function(e,t){e!==t&&(o.task.case_id=null,o.showFieldAssignment=!1,D(e))},!0)}function D(e){o.assignments=[],e[0]&&(c(function(){o.$broadcast("ct-spinner-show")},0),m.search(null,null,e).then(function(e){o.assignments=e,o.$broadcast("ct-spinner-hide")}))}function S(e,t){e&&f.search(e,{contact_type:"Individual"}).then(function(e){o.contacts[t]=e})}function T(e){var t=[];if(e.target_contact_id[0]||t.push("Task Target"),e.activity_type_id||t.push("Task type"),e.activity_date_time||t.push("Due date"),t.length){var n=CRM.alert(t.join(", "),1===t.length?"Required field":"Required fields","error");return c(function(){n.close(),n=null},5e3),!1}return!0}a.debug("Controller: ModalTaskController"),o.assignments=[],o.format=v.DATE_FORMAT.toLowerCase(),o.data=p,o.showCId=!h.CONTACT_ID,o.showFieldAssignment=!1,o.task={},e.copy(p,o.task),o.task.activity_date_time=o.task.activity_date_time||t().toDate(),o.task.assignee_contact_id=o.task.assignee_contact_id||[],o.task.source_contact_id=o.task.source_contact_id||h.LOGGED_IN_CONTACT_ID,o.task.target_contact_id=o.task.target_contact_id||[h.CONTACT_ID],o.contacts={target:w("target"),assignee:w("assignee")},o.cacheAssignment=y,o.cacheContact=_,o.cancel=k,o.confirm=$,o.dpOpen=b,o.refreshContacts=S,function(){C(),o.task.id&&D(o.task.target_contact_id)}()}return n.__name="ModalTaskController",n.$inject=["$filter","$log","$q","$rootElement","$rootScope","$scope","$timeout","$uibModal","$uibModalInstance","$dialog","assignmentService","contactService","taskService","HR_settings","data","config"],n}),define("tasks-assignments/modules/tasks-assignments.controllers",["common/angular","tasks-assignments/controllers/assignments.controller","tasks-assignments/controllers/calendar.controller","tasks-assignments/controllers/date-list.controller","tasks-assignments/controllers/document-list.controller","tasks-assignments/controllers/document.controller","tasks-assignments/controllers/external-page.controller","tasks-assignments/controllers/main.controller","tasks-assignments/controllers/settings.controller","tasks-assignments/controllers/task-list.controller","tasks-assignments/controllers/task.controller","tasks-assignments/controllers/dashboard/nav-main.controller","tasks-assignments/controllers/dashboard/top-bar.controller","tasks-assignments/controllers/modal/modal-assignment-activity.controller","tasks-assignments/controllers/modal/modal-assignment.controller","tasks-assignments/controllers/modal/modal-dialog.controller","tasks-assignments/controllers/modal/modal-document.controller","tasks-assignments/controllers/modal/modal-progress.controller","tasks-assignments/controllers/modal/modal-reminder.controller","tasks-assignments/controllers/modal/modal-task-migrate.controller","tasks-assignments/controllers/modal/modal-task.controller"],function(e,t,n,a,s,r,i,o,c,l,u,d,m,f,g,v,p,h,y,_,k){"use strict";return e.module("tasks-assignments.controllers",[]).controller(t.__name,t).controller(n.__name,n).controller(a.__name,a).controller(s.__name,s).controller(r.__name,r).controller(i.__name,i).controller(o.__name,o).controller(c.__name,c).controller(l.__name,l).controller(u.__name,u).controller(d.__name,d).controller(m.__name,m).controller(f.__name,f).controller(g.__name,g).controller(v.__name,v).controller(p.__name,p).controller(h.__name,h).controller(y.__name,y).controller(_.__name,_).controller(k.__name,k)}),define("tasks-assignments/vendor/angular-bootstrap-calendar",["common/moment"],function(e){"use strict";angular.module("mwl.calendar",[]),angular.module("mwl.calendar").run(["$templateCache",function(e){e.put("src/templates/calendar.html",'
The value passed to the view attribute of the calendar is not set
The value passed to current-day attribute of the calendar is not set
'),e.put("src/templates/calendarCustom.html",'
The value passed to the view attribute of the calendar is not set
The value passed to current-day attribute of the calendar is not set
'), +getTaskStatus:f,save:g,saveMultiple:v,sendReminder:p}}return a.__name="taskService",a.$inject=["Task","$q","config","utilsService","$log"],a}),define("tasks-assignments/services/assignment.service",["common/angular","common/lodash"],function(e,t){"use strict";function n(t,n,a,s,r,i,o,c,l,u,d,m,f,g){function v(e,n){if(!e||"number"!=typeof+e||!n||"number"!=typeof+n)return null;var a=i.defer();return t.save({action:"create",json:{sequential:1,contact_id_a:e,contact_id_b:o.LOGGED_IN_CONTACT_ID,relationship_type_id:9,case_id:n}},null,function(e){c.errorHandler(e,"Unable to assign coordinator",a)||a.resolve(e.values)},function(){a.reject("Unable to assign coordinator")}),a.promise}function p(e){if(!e||"number"!=typeof+e&&"object"!=typeof e)return null;var t=i.defer();return n.get({json:{options:{limit:0},id:e,return:["case_type_id","contacts","client_id","contact_id","id","is_deleted","start_date","status_id","subject"],debug:o.DEBUG}},function(e){c.errorHandler(e,"Unable to fetch assignments",t)||t.resolve(e.values)},function(){t.reject("Unable to fetch assignments")}),t.promise}function h(){var e=i.defer();return s.get({},function(t){c.errorHandler(t,"Unable to fetch assignment types",e)||e.resolve(t.values)},function(){e.reject("Unable to fetch assignment types")}),e.promise}function y(t){if(!t||"object"!=typeof t)return null;var a,s=i.defer(),r=e.extend({sequential:1,debug:o.DEBUG},t);return n.save({action:"create",json:r},null,function(e){c.errorHandler(e,"Unable to save an assignment",s)||(a=e.values,s.resolve(1===a.length?a[0]:null))},function(){s.reject("Unable to save an assignment")}),s.promise}function _(e,t,n){return n=Array.isArray(n)?n.join(","):n,a.query({sortName:e,excludeCaseIds:t,includeContactIds:n}).$promise}function k(e){return document.getElementsByClassName("CRM_Case_Form_Search").length?void CRM.refreshParent(".CRM_Case_Form_Search"):document.getElementById("tab_case")?void CRM.tabHeader.updateCount("#tab_case",CRM.tabHeader.getCount("#tab_case")+(e||0)):void("/assignments"===u.path()&&d.reload(!0))}function $(t){var n,a,s,r=m.cache.assignment.obj||{},i=[],o=[];e.extend(r,t);for(a in r)n=r[a],s=m.cache.assignmentType.obj[n.case_type_id].title,i.push(n),o.push({label:n.contacts[0].sort_name+" - "+s+(n.end_date?" (closed)":""),label_class:+n.is_deleted||n.end_date?"strikethrough":"",id:a,extra:{case_subject:n.subject,case_type:s,contact_id:n.contacts[0].contact_id,end_date:n.end_date,sort_name:n.contacts[0].sort_name,start_date:n.start_date}});i=l("orderBy")(i,"subject"),o=l("orderBy")(o,"label"),m.cache.assignment={arr:i,obj:r,arrSearch:o}}return f.debug("Service: assignmentService"),{get:p,assignCoordinator:v,getTypes:h,save:y,search:_,updateCache:$,updateTab:k}}return n.__name="assignmentService",n.$inject=["Relationship","Assignment","AssignmentSearch","AssignmentType","contactService","$q","config","utilsService","$filter","$location","$state","$rootScope","$log","$timeout"],n}),define("tasks-assignments/controllers/modal/modal-assignment-activity.controller",["common/lodash","common/angular","common/moment","tasks-assignments/services/contact.service","tasks-assignments/services/document.service","tasks-assignments/services/task.service","tasks-assignments/services/assignment.service"],function(e,t,n){"use strict";function a(e,t){function a(){t.$watch("$parent.assignment.dueDate",function(e){t.activity.create&&(t.activity.activity_date_time=e?n(e).add(t.activity.offset,"days").toDate():null)}),t.$watch("$parent.assignment.contact_id",function(e){e&&t.activity.create&&(t.activity.target_contact_id=[e])})}e.debug("Controller: ModalAssignmentTaskController"),t.isDisabled=!t.activity.activity_type_id&&!t.activity.isAdded,t.activity.create=!t.isDisabled,function(){a()}()}return a.__name="ModalAssignmentActivityController",a.$inject=["$log","$scope"],a}),define("tasks-assignments/controllers/modal/modal-assignment.controller",["common/lodash","common/angular","common/moment"],function(e,t,n){"use strict";function a(n,a,s,r,i,o,c,l,u,d,m,f,g,v,p){function h(e){e&&e.push(t.extend(t.copy(j),{isAdded:!0}))}function y(e){var t={};t[e.id]={contact_id:e.id,contact_type:e.icon_class,sort_name:e.label,display_name:e.label,email:e.description.length?e.description[0]:""},v.updateCache(t)}function _(){c.dismiss("cancel")}function k(){if(!n("filter")(i.taskList,{create:!0}).length&&!n("filter")(i.documentList,{create:!0}).length)return i.alert.msg="Please add at least one task.",void(i.alert.show=!0);A(i.assignment)&&(i.$broadcast("ct-spinner-show"),i.assignment.start_date=new Date,m.save(i.assignment).then(function(e){var n=i.documentList.filter(function(e){return e.create}).map(function(t){return t.case_id=e.id,t}),a=i.taskList.filter(function(e){return e.create}).map(function(t){return t.case_id=e.id,t});s.all({relationship:m.assignCoordinator(i.assignment.contact_id,e.id),document:g.saveMultiple(n.map(function(e){return t.copy(e)})),task:f.saveMultiple(a.map(function(e){return t.copy(e)}))}).then(function(s){var o,l=[],d=[],f={};for(o=0;o=se.fileSizeLimit&&(a=!1)}),!a&&b.alert("Large files",n,{expires:5e3}),a}function te(e){var t=[];if(e.target_contact_id[0]||t.push("Contact"),e.activity_type_id||t.push("Document type"),e.status_id||t.push("Document status"),e.status_id||t.push("Status"),t.length){var n=1===t.length?"Required field":"Required fields",a=t.join(", ");return b.alert(n,a,{expires:5e3}),!1}return!0}function ne(e){o.$broadcast("ct-spinner-show"),$.openFile(e).then(function(e){o.$broadcast("ct-spinner-hide")})}function ae(){o.$watch("cache.contact.arrSearch",M)}s.debug("Controller: ModalDocumentController");var se=this;se.document={},se.files=[],se.fileSizeLimit=0,se.filesTrash=[],se.mode=w,se.modalTitle="edit"===se.mode?"Edit Document":"New Document",se.containsFiles=!0,se.remindMeMessage='Checking this box sets a reminder that this document needs to be renewed a set number of days before the Expiry Date. You can set this by going here CiviHR will do this by creating a copy of this document with the status ‘awaiting upload’, which you will be able to see in your Documents list.',se.role=C||"admin",se.showCId=!v.CONTACT_ID,se.uploader=k.uploader("civicrm_activity"),se.dpOpened={due:!1,exp:!1,form:!1},se.addAssignee=T,se.addQueryParam=E,se.cacheAssignment=x,se.cacheContact=A,se.cancel=j,se.confirm=I,se.dpOpen=R,se.dropzoneClick=L,se.fileMoveToTrash=P,se.getDocumentType=H,se.getDocumentStatus=q,se.getStatusIdByName=U,se.isRole=B,se.onContactChanged=Y,se.parseDate=G,se.removeAssignee=W,se.refreshAssignments=z,se.refreshContacts=K,se.remindMeInfo=X,se.statusFieldVisible=Z,se.showStatusField=Q,se.searchContactAssignments=J,se.viewFile=ne,function(){e.copy(D,se.document),e.copy(S,se.files),O(),N(),M(),ae(),F()}()}return a.__name="ModalDocumentController",a.$inject=["$filter","$log","$q","$rootElement","$rootScope","$scope","$timeout","$window","$dialog","$uibModal","$uibModalInstance","HR_settings","config","appSettingsService","assignmentService","contactService","documentService","fileServiceTA","fileService","notificationService","modalMode","role","data","files"],a}),define("tasks-assignments/controllers/modal/modal-progress.controller",[],function(){"use strict";function e(e,t,n,a,s,r,i,o){function c(){s.dismiss("File upload canceled")}e.debug("Controller: ModalProgressController"),n.uploader=i,n.cancel=c,function(){i.queue.length&&(i.item=i.queue[0].file.name),i.onProgressItem=function(e){this.item=e.file.name},r.upload(i,o).then(function(e){a(function(){s.close(e)},500)})}()}return e.__name="ModalProgressController",e.$inject=["$log","$q","$scope","$timeout","$uibModalInstance","fileServiceTA","uploader","entityId"],e}),define("tasks-assignments/controllers/modal/modal-reminder.controller",["common/angular"],function(e){"use strict";function t(t,n,a,s,r,i,o,c,l,u,d,m){function f(){o.dismiss("cancel")}function g(){r.$broadcast("ct-spinner-show"),("task"===m?l:c).sendReminder(r.data.id,r.reminder.notes).then(function(){CRM.alert("Message sent to: "+s.cache.contact.obj[r.data.assignee_contact_id[0]].sort_name,"Reminder sent","success"),o.close(),r.$broadcast("ta-spinner-hide")},function(e){return CRM.alert(e,"Error","error"),o.dismiss(),r.$broadcast("ta-spinner-hide"),a.reject()})}n.debug("Controller: ModalReminderController"),r.data={},r.type=m,e.copy(d,r.data),r.reminder={},r.data.assignee_contact_id=r.data.assignee_contact_id||[],r.data.target_contact_id=r.data.target_contact_id||[u.CONTACT_ID],r.contacts=s.cache.contact.arrSearch,r.showCId=!u.CONTACT_ID,r.cancel=f,r.confirm=g}return t.__name="ModalReminderController",t.$inject=["$filter","$log","$q","$rootScope","$scope","$dialog","$uibModalInstance","documentService","taskService","config","data","type"],t}),define("tasks-assignments/controllers/modal/modal-task-migrate.controller",["common/angular"],function(e){"use strict";function t(t,n,a,s,r,i,o,c,l,u,d,m,f,g,v,p,h){function y(e){var t={};t[e.id]={contact_id:e.id,contact_type:e.icon_class,sort_name:e.label,display_name:e.label,email:e.description.length?e.description[0]:""},m.updateCache(t)}function _(){if(i.taskMigrateForm.$pristine)return void l.dismiss("cancel");u.open({copyCancel:"No",msg:"Are you sure you want to cancel? Changes will be lost!"}).then(function(e){e&&(i.$broadcast("ct-spinner-hide"),l.dismiss("cancel"))})}function k(){if(i.migrate.task.statusListSelected||i.migrate.document.statusListSelected){var t,n=[],s=[],o=0;e.forEach(i.migrate.task.list,function(e){i.migrate.task.statusListSelected.indexOf(e.status_id)>-1&&this.push(e)},n),+h.tabEnabled.documents&&e.forEach(i.migrate.document.list,function(e){i.migrate.document.statusListSelected.indexOf(e.status_id)>-1&&this.push(e)},n),i.$broadcast("ct-spinner-show"),e.forEach(n,function(n){n.assignee_contact_id[0]=i.migrate.to,this.push(function(){var s=a.defer();return t=o?this[o-1]:{},a.when(t).then(function(){v.save({entity:"Activity",action:"create",json:e.extend({sequential:"1",component:""},n)},null,function(e){g.errorHandler(e,"Unable to save task",s)||s.resolve(1===e.values.length?e.values[0]:null)},function(){s.reject("Unable to save task")})}),s.promise}.bind(this)()),o++},s),a.all(s).then(function(e){e.length?CRM.alert(e.length+" item(s) re-assigned from: "+r.cache.contact.obj[i.migrate.from].sort_name+" to: "+r.cache.contact.obj[i.migrate.to].sort_name,"Migrate Tasks","success"):CRM.alert("0 items re-assigned.","Migrate Tasks","warning"),l.dismiss(),i.$broadcast("ct-spinner-hide")},function(e){CRM.alert(e,"Error","error"),l.dismiss(),i.$broadcast("ct-spinner-hide")})}}function $(n){i.$broadcast("ct-spinner-show"),n=n||i.migrate.from,i.migrate.task.statusList=[],i.migrate.task.statusListSelected=[],i.migrate.document.statusList=[],i.migrate.document.statusListSelected=[],i.migrate.dataLoaded=!1;var a=[];v.get({entity:"ActivityContact",json:{component:"",sequential:"1",return:"activity_id",contact_id:n,record_type_id:"1",options:{limit:"0"}}},function(n){n.values&&n.values.length?(e.forEach(n.values,function(e){this.push(e.activity_id)},a),v.get({entity:"Activity",json:{component:"",options:{limit:0},id:{IN:a},is_current_revision:"1",is_deleted:"0",sequential:"1",return:"assignee_contact_id, activity_type_id, assignee_contact_id, id, status_id"}},function(n){function a(e,t){var n=i.migrate[e];n.list.push(t),n.statusList.indexOf(t.status_id)>-1||(o[e].indexOf(t.status_id)>-1?n.statusList.push(t.status_id):(n.statusList.unshift(t.status_id),n.statusListSelected.push(t.status_id)))}var s=r.cache.documentType.obj,o={task:r.cache.taskStatusResolve,document:r.cache.documentStatusResolve};n.values&&n.values.length&&(n.values=t("orderBy")(n.values,"-status_id"),e.forEach(n.values,function(e){s[e.activity_type_id]?a("document",e):a("task",e)})),i.migrate.dataLoaded=!0,i.$broadcast("ct-spinner-hide")})):(i.migrate.dataLoaded=!0,i.$broadcast("ct-spinner-hide"))})}function b(e){e&&m.search(e,{contact_type:"Individual"}).then(function(e){i.contacts=e})}n.debug("Controller: ModalTaskMigrateController"),i.contacts=r.cache.contact.arrSearch,i.migrate={},i.migrate.dataLoaded=!1,i.migrate.from="",i.migrate.to="",i.migrate.document={list:[],statusList:[],statusListSelected:[]},i.migrate.task={list:[],statusList:[],statusListSelected:[]},i.cacheContact=y,i.cancel=_,i.confirm=k,i.getActivities=$,i.refreshContacts=b}return t.__name="ModalTaskMigrateController",t.$inject=["$filter","$log","$q","$rootElement","$rootScope","$scope","$timeout","$uibModal","$uibModalInstance","$dialog","assignmentService","contactService","taskService","utilsService","Task","activityType","settings"],t}),define("tasks-assignments/controllers/modal/modal-task.controller",["common/angular","common/moment"],function(e,t){"use strict";function n(n,a,s,r,i,o,c,l,u,d,m,f,g,v,p,h){function y(e){if(!i.cache.assignment.obj[e.id]){var t={};t[e.id]={case_type_id:n("filter")(i.cache.assignmentType.arr,{title:e.extra.case_type})[0].id,client_id:{1:e.extra.contact_id},contact_id:{1:e.extra.contact_id},contacts:[{sort_name:e.extra.sort_name,contact_id:e.extra.contact_id}],end_date:e.extra.end_date,id:e.id,is_deleted:"strikethrough"===e.label_class?"1":"0",start_date:e.extra.start_date,subject:e.extra.case_subject},m.updateCache(t)}}function _(e){var t={};t[e.id]={contact_id:e.id,contact_type:e.icon_class,sort_name:e.label,display_name:e.label,email:e.description.length?e.description[0]:""},f.updateCache(t)}function k(){if(o.taskForm.$pristine)return void u.dismiss("cancel");d.open({copyCancel:"No",msg:"Are you sure you want to cancel? Changes will be lost!"}).then(function(e){e&&(o.$broadcast("ct-spinner-hide"),u.dismiss("cancel"))})}function $(){var t=e.copy(o.task);if(T(t)){if(e.equals(p,t))return void u.dismiss("cancel");o.$broadcast("ct-spinner-show"),+t.case_id==+p.case_id&&delete t.case_id,t.activity_date_time=t.activity_date_time||new Date,g.save(t).then(function(e){o.task.id=e.id,o.task.case_id=e.case_id,m.updateTab(),o.openNew&&(o.task.open=!0,o.openNew=!1),u.close(o.task),o.$broadcast("ct-spinner-hide")},function(e){return CRM.alert(e,"Error","error"),o.$broadcast("ct-spinner-hide"),s.reject()})}}function b(e){e.preventDefault(),e.stopPropagation(),o.dpOpened=!0}function w(e){var t=i.cache.contact.arrSearch;return o.task.id?t.filter(function(t){return+o.task[e+"_contact_id"][0]==+t.id}):[]}function C(){o.$watch("task.target_contact_id",function(e,t){e!==t&&(o.task.case_id=null,o.showFieldAssignment=!1,D(e))},!0)}function D(e){o.assignments=[],e[0]&&(c(function(){o.$broadcast("ct-spinner-show")},0),m.search(null,null,e).then(function(e){o.assignments=e,o.$broadcast("ct-spinner-hide")}))}function S(e,t){e&&f.search(e,{contact_type:"Individual"}).then(function(e){o.contacts[t]=e})}function T(e){var t=[];if(e.target_contact_id[0]||t.push("Task Target"),e.activity_type_id||t.push("Task type"),e.activity_date_time||t.push("Due date"),t.length){var n=CRM.alert(t.join(", "),1===t.length?"Required field":"Required fields","error");return c(function(){n.close(),n=null},5e3),!1}return!0}a.debug("Controller: ModalTaskController"),o.assignments=[],o.format=v.DATE_FORMAT.toLowerCase(),o.data=p,o.showCId=!h.CONTACT_ID,o.showFieldAssignment=!1,o.task={},e.copy(p,o.task),o.task.activity_date_time=o.task.activity_date_time||t().toDate(),o.task.assignee_contact_id=o.task.assignee_contact_id||[],o.task.source_contact_id=o.task.source_contact_id||h.LOGGED_IN_CONTACT_ID,o.task.target_contact_id=o.task.target_contact_id||[h.CONTACT_ID],o.contacts={target:w("target"),assignee:w("assignee")},o.cacheAssignment=y,o.cacheContact=_,o.cancel=k,o.confirm=$,o.dpOpen=b,o.refreshContacts=S,function(){C(),o.task.id&&D(o.task.target_contact_id)}()}return n.__name="ModalTaskController",n.$inject=["$filter","$log","$q","$rootElement","$rootScope","$scope","$timeout","$uibModal","$uibModalInstance","$dialog","assignmentService","contactService","taskService","HR_settings","data","config"],n}),define("tasks-assignments/modules/tasks-assignments.controllers",["common/angular","tasks-assignments/controllers/assignments.controller","tasks-assignments/controllers/calendar.controller","tasks-assignments/controllers/date-list.controller","tasks-assignments/controllers/document-list.controller","tasks-assignments/controllers/document.controller","tasks-assignments/controllers/external-page.controller","tasks-assignments/controllers/main.controller","tasks-assignments/controllers/settings.controller","tasks-assignments/controllers/task-list.controller","tasks-assignments/controllers/task.controller","tasks-assignments/controllers/dashboard/nav-main.controller","tasks-assignments/controllers/dashboard/top-bar.controller","tasks-assignments/controllers/modal/modal-assignment-activity.controller","tasks-assignments/controllers/modal/modal-assignment.controller","tasks-assignments/controllers/modal/modal-dialog.controller","tasks-assignments/controllers/modal/modal-document.controller","tasks-assignments/controllers/modal/modal-progress.controller","tasks-assignments/controllers/modal/modal-reminder.controller","tasks-assignments/controllers/modal/modal-task-migrate.controller","tasks-assignments/controllers/modal/modal-task.controller"],function(e,t,n,a,s,r,i,o,c,l,u,d,m,f,g,v,p,h,y,_,k){"use strict";return e.module("tasks-assignments.controllers",[]).controller(t.__name,t).controller(n.__name,n).controller(a.__name,a).controller(s.__name,s).controller(r.__name,r).controller(i.__name,i).controller(o.__name,o).controller(c.__name,c).controller(l.__name,l).controller(u.__name,u).controller(d.__name,d).controller(m.__name,m).controller(f.__name,f).controller(g.__name,g).controller(v.__name,v).controller(p.__name,p).controller(h.__name,h).controller(y.__name,y).controller(_.__name,_).controller(k.__name,k)}),define("tasks-assignments/vendor/angular-bootstrap-calendar",["common/moment"],function(e){"use strict";angular.module("mwl.calendar",[]),angular.module("mwl.calendar").run(["$templateCache",function(e){e.put("src/templates/calendar.html",'
The value passed to the view attribute of the calendar is not set
The value passed to current-day attribute of the calendar is not set
'),e.put("src/templates/calendarCustom.html",'
The value passed to the view attribute of the calendar is not set
The value passed to current-day attribute of the calendar is not set
'), e.put("src/templates/calendarDayView.html",'
'),e.put("src/templates/calendarMonthDay.html",'
'),e.put("src/templates/calendarMonthDayCustom.html",'
  • Tasks
  • Documents
'),e.put("src/templates/calendarMonthEventsList.html",'
'),e.put("src/templates/calendarMonthView.html",'
'),e.put("src/templates/calendarMonthViewCustom.html",'
'),e.put("src/templates/calendarSlideBox.html",'
'),e.put("src/templates/calendarWeekView.html",'

'),e.put("src/templates/calendarWeekViewCustom.html",''),e.put("src/templates/calendarYearView.html",'
')}]),angular.module("mwl.calendar").constant("moment",e),angular.module("mwl.calendar").factory("calendarTitle",["moment","calendarConfig",function(e,t){function n(n){return e(n).format(t.titleFormats.day)}function a(n){return t.titleFormats.week.replace("{week}",e(n).week()).replace("{year}",e(n).format("YYYY"))}function s(n){return e(n).format(t.titleFormats.month)}function r(n){return e(n).format(t.titleFormats.year)}return{day:n,week:a,month:s,year:r}}]),angular.module("mwl.calendar").factory("calendarHelper",["moment","calendarConfig",function(e,t){function n(t,n,a,s){return t=e(t),n=e(n),a=e(a),s=e(s),t.isAfter(a)&&t.isBefore(s)||n.isAfter(a)&&n.isBefore(s)||t.isBefore(a)&&n.isAfter(s)||t.isSame(a)||n.isSame(s)}function a(t,a,s){var r=e(t).startOf(a),i=e(t).endOf(a);return s.filter(function(e){return n(e.startsAt,e.endsAt,r,i)})}function s(e){return e.filter(function(e){return!1!==e.incrementsBadgeTotal}).length}function r(){for(var n=[],a=0;a<7;)n.push(e().weekday(a++).format(t.dateFormats.weekDay));return n}function i(e,t,a){return e.filter(function(e){return n(e.startsAt,e.endsAt,t,a)})}function o(n,r){for(var o=[],c=a(r,"year",n),l=e(r).startOf("year"),u=0;u<12;){var d=l.clone(),m=d.clone().endOf("month"),f=i(c,d,m);o.push({label:d.format(t.dateFormats.month),isToday:d.isSame(e().startOf("month")),events:f,date:d,badgeTotal:s(f)}),l.add(1,"month"),u++}return o}function c(t,n,r){for(var o=a(r,"month",t),c=a(r,"month",n),l=e(r).startOf("month"),u=l.clone().startOf("week"),d=e(r).endOf("month").endOf("week"),m=[],f=e().startOf("day");u.isBefore(d);){var g=u.month()===e(r).month(),v=[],p=[];g&&(v=i(o,u,u.clone().endOf("day")),p=i(c,u,u.clone().endOf("day"))),m.push({label:u.date(),date:u.clone(),inMonth:g,isPast:f.isAfter(u),isToday:f.isSame(u),isFuture:f.isBefore(u),isWeekend:[0,6].indexOf(u.day())>-1,events:v,documents:p,badgeEventsTotal:s(v),badgeDocumentsTotal:s(p)}),u.add(1,"day")}return m}function l(n,a,s){for(var r=e(s).startOf("week"),o=e(s).endOf("week"),c=r.clone(),l=[],u=[],d=10,m=e().startOf("day");l.length<7;)u.push([]),l.push({weekDayLabel:c.format(t.dateFormats.weekDay),date:c.clone(),dayLabel:c.format(t.dateFormats.day),isPast:c.isBefore(m),isToday:c.isSame(m),isFuture:c.isAfter(m),isWeekend:[0,6].indexOf(c.day())>-1}),c.add(1,"day");var f=i(n.concat(a),r,o).map(function(t){var n,a,s=e(t.startsAt).startOf("day"),i=e(t.endsAt).startOf("day"),c=e(r).startOf("day"),l=e(o).startOf("day");return n=s.isBefore(c)||s.isSame(c)?0:s.diff(c,"days"),i.isAfter(l)&&(i=l),s.isBefore(c)&&(s=c),a=e(i).diff(s,"days")+1,t.daySpan=a,t.dayOffset=n,t.overdue=s.isBefore(m),u[n].push(t),t});return u.map(function(e){d=e.length>d?e.length:d}),u.map(function(e){if(e.lengthu&&(t.height=0),t.left=0,t}).filter(function(e){return e.height>0}).map(function(e){var t=!0;return m.forEach(function(a,s){var r=!0;a.forEach(function(t){(n(e.startsAt,e.endsAt,t.startsAt,t.endsAt)||n(t.startsAt,t.endsAt,e.startsAt,e.endsAt))&&(r=!1)}),r&&t&&(t=!1,e.left=150*s,m[s].push(e))}),t&&(e.left=150*m.length,m.push([e])),e})}return{getWeekDayNames:r,getYearView:o,getMonthView:c,getWeekView:l,getDayView:u}}]),angular.module("mwl.calendar").service("calendarDebounce",["$timeout",function(e){function t(t,n,a){var s;return function(){function r(){s=null,a||t.apply(i,o)}var i=this,o=arguments,c=a&&!s;e.cancel(s),s=e(r,n),c&&t.apply(i,o)}}return t}]),angular.module("mwl.calendar").provider("calendarConfig",function(){var e={hour:"ha",day:"D MMM",month:"MMMM",weekDay:"dddd"},t={day:"dddd D MMMM, YYYY",week:"Week {week} of {year}",month:"MMMM YYYY",year:"YYYY"},n={eventsLabel:"Events",timeLabel:"Time"},a=this;a.setDateFormats=function(t){return angular.extend(e,t),a},a.setTitleFormats=function(e){return angular.extend(t,e),a},a.setI18nStrings=function(e){return angular.extend(n,e),a},a.$get=function(){return{dateFormats:e,titleFormats:t,i18nStrings:n}}}),angular.module("mwl.calendar").filter("calendarTruncateEventTitle",function(){return function(e,t,n){return e?e.length>=t&&e.length/20>n/30?e.substr(0,t)+"...":e:""}}),angular.module("mwl.calendar").filter("calendarLimitTo",function(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):parseInt(t),isNaN(t)?e:(angular.isNumber(e)&&(e=e.toString()),angular.isArray(e)||angular.isString(e)?(n=!n||isNaN(n)?0:parseInt(n),n=n<0&&n>=-e.length?e.length+n:n,t>=0?e.slice(n,n+t):0===n?e.slice(t,e.length):e.slice(Math.max(0,n+t),n)):e)}}),angular.module("mwl.calendar").directive("mwlDateModifier",function(){return{restrict:"A",controller:["$element","$attrs","$scope","moment",function(e,t,n,a){function s(){angular.isDefined(t.setToToday)?n.date=new Date:angular.isDefined(t.increment)?n.date=a(n.date).add(1,n.increment).toDate():angular.isDefined(t.decrement)&&(n.date=a(n.date).subtract(1,n.decrement).toDate()),n.$apply()}e.bind("click",s),n.$on("$destroy",function(){e.unbind("click",s)})}],scope:{date:"=",increment:"=",decrement:"="}}}),angular.module("mwl.calendar").directive("mwlCollapseFallback",["$injector",function(e){return e.has("collapseDirective")?{}:{restrict:"A",controller:["$scope","$attrs","$element",function(e,t,n){var a=e.$watch(t.mwlCollapseFallback,function(e){e?n.addClass("ng-hide"):n.removeClass("ng-hide")}),s=e.$on("$destroy",function(){s(),a()})}]}}]),angular.module("mwl.calendar").directive("mwlCalendarYear",function(){return{templateUrl:"src/templates/calendarYearView.html",restrict:"EA",require:"^mwlCalendar",scope:{events:"=",currentDay:"=",onEventClick:"=",onEditEventClick:"=",onDeleteEventClick:"=",editEventHtml:"=",deleteEventHtml:"=",autoOpen:"=",onTimespanClick:"="},controller:["$scope","moment","calendarHelper",function(e,t,n){var a=this,s=!0;e.$on("calendar.refreshView",function(){a.view=n.getYearView(e.events,e.currentDay),e.autoOpen&&s&&(s=!1,a.view.forEach(function(n){t(e.currentDay).startOf("month").isSame(n.date)&&a.monthClicked(n,!0)}))}),a.monthClicked=function(t,n){n||e.onTimespanClick({calendarDate:t.date.toDate()}),a.openRowIndex=null;var s=a.view.indexOf(t);s===a.openMonthIndex?a.openMonthIndex=null:(a.openMonthIndex=s,a.openRowIndex=Math.floor(s/4))}}],controllerAs:"vm",link:function(e,t,n,a){e.vm.calendarCtrl=a}}}),angular.module("mwl.calendar").directive("mwlCalendarWeek",function(){return{templateUrl:"src/templates/calendarWeekViewCustom.html",restrict:"EA",require:"^mwlCalendar",scope:{documents:"=",events:"=",currentDay:"=",onEventClick:"="},controller:["$scope","calendarHelper",function(e,t){var n=this;e.$on("calendar.refreshView",function(){n.view=t.getWeekView(e.events,e.documents,e.currentDay)})}],controllerAs:"vm",link:function(e,t,n,a){e.vm.calendarCtrl=a}}}),angular.module("mwl.calendar").directive("mwlCalendarSlideBox",function(){return{restrict:"EA",templateUrl:"src/templates/calendarSlideBox.html",replace:!0,controller:["$scope","$sce",function(e,t){var n=this;n.$sce=t;var a=e.$watch("isOpen",function(e){n.shouldCollapse=!e}),s=e.$on("$destroy",function(){s(),a()})}],controllerAs:"vm",require:["^?mwlCalendarMonth","^?mwlCalendarYear"],link:function(e,t,n,a){e.isMonthView=!!a[0],e.isYearView=!!a[1]},scope:{isOpen:"=",events:"=",onEventClick:"=",editEventHtml:"=",onEditEventClick:"=",deleteEventHtml:"=",onDeleteEventClick:"="}}}),angular.module("mwl.calendar").directive("mwlCalendarMonth",function(){return{templateUrl:"src/templates/calendarMonthViewCustom.html",restrict:"EA",require:"^mwlCalendar",scope:{events:"=",documents:"=",currentDay:"=",onEventClick:"=",onEditEventClick:"=",onDeleteEventClick:"=",editEventHtml:"=",deleteEventHtml:"=",autoOpen:"=",onTimespanClick:"="},controller:["$scope","moment","calendarHelper",function(e,t,n){var a=this,s=!0;e.$on("calendar.refreshView",function(){a.weekDays=n.getWeekDayNames(),a.view=n.getMonthView(e.events,e.documents,e.currentDay);var r=Math.floor(a.view.length/7);a.monthOffsets=[];for(var i=0;i-1&&(n.highlightClass="day-highlight dh-event-"+e.type)}})}}],controllerAs:"vm",link:function(e,t,n,a){e.vm.calendarCtrl=a}}}),angular.module("mwl.calendar").directive("mwlCalendarDay",function(){return{templateUrl:"src/templates/calendarDayView.html",restrict:"EA",require:"^mwlCalendar",scope:{events:"=",currentDay:"=",onEventClick:"=",dayViewStart:"=",dayViewEnd:"=",dayViewSplit:"="},controller:["$scope","$timeout","moment","calendarHelper","calendarConfig",function(e,t,n,a,s){function r(){i=n(e.dayViewStart||"00:00","HH:mm"),o=n(e.dayViewEnd||"23:00","HH:mm"),c.dayViewSplit=parseInt(e.dayViewSplit),c.hourHeight=60/e.dayViewSplit*30,c.hours=[];for(var t=n(i),a=0;a<=o.diff(i,"hours");a++)c.hours.push({label:t.format(s.dateFormats.hour)}),t.add(1,"hour")}var i,o,c=this;c.calendarConfig=s;var l=n.locale();e.$on("calendar.refreshView",function(){l!==n.locale()&&(l=n.locale(),r()),c.view=a.getDayView(e.events,e.currentDay,i.hours(),o.hours(),c.hourHeight)}),r()}],controllerAs:"vm"}}),angular.module("mwl.calendar").directive("mwlCalendar",function(){return{templateUrl:"src/templates/calendarCustom.html",restrict:"EA",scope:{events:"=",documents:"=",view:"=",viewTitle:"=",currentDay:"=",editEventHtml:"=",deleteEventHtml:"=",autoOpen:"=",onEventClick:"&",onEditEventClick:"&",onDeleteEventClick:"&",onTimespanClick:"&",onDrillDownClick:"&",dayViewStart:"@",dayViewEnd:"@",dayViewSplit:"@"},controller:["$scope","$timeout","moment","calendarTitle","calendarDebounce",function(e,t,n,a,s){var r=this;e.events=e.events||[],e.documents=e.documents||[],r.changeView=function(t,n){e.view=t,e.currentDay=n},r.drillDown=function(t){var a=n(t).toDate(),s={year:"month",month:"day",week:"day"};!1!==e.onDrillDownClick({calendarDate:a,calendarNextView:s[e.view]})&&r.changeView(s[e.view],a)};var i=n(e.currentDay),o=angular.copy(e.view),c=s(function(){a[e.view]&&(e.viewTitle=a[e.view](e.currentDay));var t=n(e.currentDay),s=!0;i.clone().startOf(e.view).isSame(t.clone().startOf(e.view))&&!i.isSame(t)&&e.view===o&&(s=!1),i=t,o=angular.copy(e.view),s&&e.$broadcast("calendar.refreshView")},50),l=e.$watch(function(){return n.locale()},c),u=[];u.push(l),u.push(e.$watch("currentDay",c)),u.push(e.$watch("view",c)),u.push(e.$watch("events",c,!0)),u.push(e.$watch("documents",c,!0));var d=e.$on("$destroy",function(){u.forEach(function(e){e()})});u.push(d)}]}})}),angular.module("checklist-model",[]).directive("checklistModel",["$parse","$compile",function(e,t){function n(e,t,n){if(angular.isArray(e))for(var a=e.length;a--;)if(n(e[a],t))return!0;return!1}function a(e,t,a){return e=angular.isArray(e)?e:[],n(e,t,a)||e.push(t),e}function s(e,t,n){if(angular.isArray(e))for(var a=e.length;a--;)if(n(e[a],t)){e.splice(a,1);break}return e}function r(r,i,o){function c(e,t){r.checked=n(e,m,f)}t(i)(r);var l=e(o.checklistModel),u=l.assign,d=e(o.checklistChange),m=e(o.checklistValue)(r.$parent),f=angular.equals;o.hasOwnProperty("checklistComparator")&&(f=e(o.checklistComparator)(r.$parent)),r.$watch("checked",function(e,t){if(e!==t){var n=l(r.$parent);!0===e?u(r.$parent,a(n,m,f)):u(r.$parent,s(n,m,f)),d&&d(r)}}),angular.isFunction(r.$parent.$watchCollection)?r.$parent.$watchCollection(o.checklistModel,c):r.$parent.$watch(o.checklistModel,c,!0)}return{restrict:"A",priority:1e3,terminal:!0,scope:!0,compile:function(e,t){if("INPUT"!==e[0].tagName||"checkbox"!==t.type)throw'checklist-model should be applied to `input[type="checkbox"]`.';if(!t.checklistValue)throw"You should provide `checklist-value`.";return e.removeAttr("checklist-model"),e.attr("ng-model","checked"),r}}}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(e,t,n){function a(e,t){return F(new(F(function(){},{prototype:e})),t)}function s(e){return N(arguments,function(t){t!==e&&N(t,function(t,n){e.hasOwnProperty(n)||(e[n]=t)})}),e}function r(e,t){var n=[];for(var a in e.path){if(e.path[a]!==t.path[a])break;n.push(e.path[a])}return n}function i(e){if(Object.keys)return Object.keys(e);var t=[];return N(e,function(e,n){t.push(n)}),t}function o(e,t){if(Array.prototype.indexOf)return e.indexOf(t,Number(arguments[2])||0);var n=e.length>>>0,a=Number(arguments[2])||0;for(a=a<0?Math.ceil(a):Math.floor(a),a<0&&(a+=n);a=0||(u.push(s[m]),l[s[m]]=e[s[m]]);return F({},l,t)}function l(e,t,n){if(!n){n=[];for(var a in e)n.push(a)}for(var s=0;s "));if(y[n]=a,R(e))p.push(n,[function(){return t.get(e)}],l);else{var s=t.annotate(e);N(s,function(e){e!==n&&c.hasOwnProperty(e)&&f(c[e],e)}),p.push(n,e,s)}h.pop(),y[n]=r}}function g(e){return L(e)&&e.then&&e.$$promises}if(!L(c))throw new Error("'invocables' must be an object");var v=i(c||{}),p=[],h=[],y={};return N(c,f),c=h=y=null,function(a,r,i){function o(){--_||(k||s(y,r.$$values),f.$$values=y,f.$$promises=f.$$promises||!0,delete f.$$inheritedValues,l.resolve(y))}function c(e){f.$$failure=e,l.reject(e)}if(g(a)&&i===n&&(i=r,r=a,a=null),a){if(!L(a))throw new Error("'locals' must be an object")}else a=u;if(r){if(!g(r))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else r=d;var l=e.defer(),f=l.promise,h=f.$$promises={},y=F({},a),_=1+p.length/3,k=!1;if(O(r.$$failure))return c(r.$$failure),f;r.$$inheritedValues&&s(y,m(r.$$inheritedValues,v)),F(h,r.$$promises),r.$$values?(k=s(y,m(r.$$values,v)),f.$$inheritedValues=m(r.$$values,v),o()):(r.$$inheritedValues&&(f.$$inheritedValues=m(r.$$inheritedValues,v)),r.then(o,c));for(var $=0,b=p.length;$=0));)y=r(h.id,h.type,h.cfg,"path"),d+=i(h.segment,y.type.pattern.source,y.squash,y.isOptional),f.push(h.segment),m=l.lastIndex;_=e.substring(m);var k=_.indexOf("?");if(k>=0){var $=this.sourceSearch=_.substring(k);if(_=_.substring(0,k),this.sourcePath=e.substring(0,m+k),$.length>0)for(m=0;c=u.exec($);)h=o(c,!0),y=r(h.id,h.type,h.cfg,"search"),m=l.lastIndex}else this.sourcePath=e,this.sourceSearch="";d+=i(_)+(!1===t.strict?"/?":"")+"$",f.push(_),this.regexp=new RegExp(d,t.caseInsensitive?"i":n),this.prefix=f[0],this.$$paramNames=p}function y(e){F(this,e)}function _(){function e(e){return null!=e?e.toString().replace(/\//g,"%2F"):e}function s(e){return null!=e?e.toString().replace(/%2F/g,"/"):e}function r(){return{strict:v,caseInsensitive:m}}function c(e){return I(e)||P(e)&&I(e[e.length-1])}function l(){for(;b.length;){var e=b.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(k[e.name],d.invoke(e.def))}}function u(e){F(this,e||{})}U=this;var d,m=!1,v=!0,p=!1,k={},$=!0,b=[],w={string:{encode:e,decode:s,is:function(e){return null==e||!O(e)||"string"==typeof e},pattern:/[^\/]*/},int:{encode:e,decode:function(e){return parseInt(e,10)},is:function(e){return O(e)&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return!0===e||!1===e},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^\/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};_.$$getDefaultValue=function(e){if(!c(e.value))return e.value;if(!d)throw new Error("Injectable functions cannot be called at configuration time");return d.invoke(e.value)},this.caseInsensitive=function(e){return O(e)&&(m=e),m},this.strictMode=function(e){return O(e)&&(v=e),v},this.defaultSquashPolicy=function(e){if(!O(e))return p;if(!0!==e&&!1!==e&&!R(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return p=e,e},this.compile=function(e,t){return new h(e,F(r(),t))},this.isMatcher=function(e){if(!L(e))return!1;var t=!0;return N(h.prototype,function(n,a){I(n)&&(t=t&&O(e[a])&&I(e[a]))}),t},this.type=function(e,t,n){if(!O(t))return k[e];if(k.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return k[e]=new y(F({name:e},t)),n&&(b.push({name:e,def:n}),$||l()),this},N(w,function(e,t){k[t]=new y(F({name:t},e))}),k=a(k,{}),this.$get=["$injector",function(e){return d=e,$=!1,l(),N(w,function(e,t){k[t]||(k[t]=new y(e))}),this}],this.Param=function(e,t,a,s){function r(){if(!d)throw new Error("Injectable functions cannot be called at configuration time");var e=d.invoke(a.$$fn);if(null!==e&&e!==n&&!m.type.is(e))throw new Error("Default value ("+e+") for parameter '"+m.id+"' is not an instance of Type ("+m.type.name+")");return e}function l(e){function t(e){return function(t){return t.from===e}}return e=function(e){var n=g(f(m.replace,t(e)),function(e){return e.to});return n.length?n[0]:e}(e),O(e)?m.type.$normalize(e):r()}function u(){return"{Param:"+e+" "+t+" squash: '"+_+"' optional: "+h+"}"}var m=this;a=function(e){var t=L(e)?i(e):[];return-1===o(t,"value")&&-1===o(t,"type")&&-1===o(t,"squash")&&-1===o(t,"array")&&(e={value:e}),e.$$fn=c(e.value)?e.value:function(){return e.value},e}(a),t=function(t,n,a){if(t.type&&n)throw new Error("Param '"+e+"' has two type configurations.");return n||(t.type?t.type instanceof y?t.type:new y(t.type):"config"===a?k.any:k.string)}(a,t,s);var v=function(){var t={array:"search"===s&&"auto"},n=e.match(/\[\]$/)?{array:!0}:{};return F(t,n,a).array}();t=v?t.$asArray(v,"search"===s):t,"string"!==t.name||v||"path"!==s||a.value!==n||(a.value="");var h=a.value!==n,_=function(e,t){var n=e.squash;if(!t||!1===n)return!1;if(!O(n)||null==n)return p;if(!0===n||R(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}(a,h),$=function(e,t,a,s){var r,i,c=[{from:"",to:a||t?n:""},{from:null,to:a||t?n:""}];return r=P(e.replace)?e.replace:[],R(s)&&r.push({from:s,to:n}),i=g(r,function(e){return e.from}),f(c,function(e){return-1===o(i,e.from)}).concat(r)}(a,v,h,_);F(this,{id:e,type:t, location:s,array:v,squash:_,replace:$,isOptional:h,value:l,dynamic:n,config:a,toString:u})},u.prototype={$$new:function(){return a(this,F(new u,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,a=i(u.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),N(t,function(t){N(i(t),function(t){-1===o(e,t)&&-1===o(a,t)&&e.push(t)})}),e},$$values:function(e){var t={},n=this;return N(n.$$keys(),function(a){t[a]=n[a].value(e&&e[a])}),t},$$equals:function(e,t){var n=!0,a=this;return N(a.$$keys(),function(s){var r=e&&e[s],i=t&&t[s];a[s].type.equals(r,i)||(n=!1)}),n},$$validates:function(e){var a,s,r,i,o,c=this.$$keys();for(a=0;a=0)throw new Error("State must have a valid name");if(D.hasOwnProperty(n))throw new Error("State '"+n+"'' is already defined");var s=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):R(t.parent)?t.parent:L(t.parent)&&R(t.parent.name)?t.parent.name:"";if(s&&!D[s])return f(s,t.self);for(var r in E)I(E[r])&&(t[r]=E[r](t,E.$delegates[r]));return D[n]=t,!t[T]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){C.$current.navigable==t&&l(e,n)||C.transitionTo(t,e,{inherit:!0,location:!1})}]),v(n),t}function h(e){return e.indexOf("*")>-1}function y(e){for(var t=e.split("."),n=C.$current.name.split("."),a=0,s=t.length;a=x;a--)i=g[a],i.self.onExit&&o.invoke(i.self.onExit,i.self,i.locals.globals),i.locals=null;for(a=x;a=0?s:s+"@"+(r?r.state.name:"")}function T(e,t){var n,a=e.match(/^\s*({[^}]*})\s*$/);if(a&&(e=t+"("+a[1]+")"),!(n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/))||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function E(e){var t=e.parent().inheritedData("$uiView");if(t&&t.state&&t.state.name)return t.state}function x(e,n){var a=["location","inherit","reload","absolute"];return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(s,r,i,o){var c=T(i.uiSref,e.current.name),l=null,u=E(r)||e.$current,d="[object SVGAnimatedString]"===Object.prototype.toString.call(r.prop("href"))?"xlink:href":"href",m=null,f="A"===r.prop("tagName").toUpperCase(),g="FORM"===r[0].nodeName,v=g?"action":d,p=!0,h={relative:u,inherit:!0},y=s.$eval(i.uiSrefOpts)||{};t.forEach(a,function(e){e in y&&(h[e]=y[e])});var _=function(n){if(n&&(l=t.copy(n)),p){m=e.href(c.state,l,h);var a=o[1]||o[0];if(a&&a.$$addStateInfo(c.state,l),null===m)return p=!1,!1;i.$set(v,m)}};c.paramExpr&&(s.$watch(c.paramExpr,function(e,t){e!==l&&_(e)},!0),l=t.copy(s.$eval(c.paramExpr))),_(),g||r.bind("click",function(t){if(!((t.which||t.button)>1||t.ctrlKey||t.metaKey||t.shiftKey||r.attr("target"))){var a=n(function(){e.go(c.state,l,h)});t.preventDefault();var s=f&&!m?1:0;t.preventDefault=function(){s--<=0&&n.cancel(a)}}})}}}function A(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs",function(t,a,s){function r(){i()?a.addClass(c):a.removeClass(c)}function i(){for(var e=0;e=t&&(e<=n||null===n)||null===e&&null===n}return t.debug("Filter: filterByDateField"),function(e,t,a,s){if(!e)return null;var r=new Date,i=[],o=0,c=e.length,l=r.setHours(0,0,0,0);if(!a)throw new Error("Field name to filter a list is required");if(!c||!t)return e;switch(t){case"overdue":var u;for(o;ol&&d>=h.setHours(0,0,0,0)&&d=l&&new Date(e[o][a]).setHours(0,0,0,0)<=_&&i.push(e[o]);break;case"dueInNinetyDays":var k=r.setDate(r.getDate()+90);for(o;o=l&&new Date(e[o][a]).setHours(0,0,0,0)<=k&&i.push(e[o])}return i}}return e.__name="filterByDateField",e.$inject=["$filter","$log"],e}),define("tasks-assignments/filters/date-parse.filter",["common/moment"],function(e){"use strict";function t(t,n){return n.debug("Filter: dateParse"),function(t){return e(t).toDate()}}return t.__name="dateParse",t.$inject=["$filter","$log"],t}),define("tasks-assignments/filters/date-type.filter",["common/lodash"],function(e){"use strict";function t(t,n,a){return a.debug("Filter: filterBy.dateType"),function(t,n){var a=[];return t.length&&n.length?(e.forEach(t,function(t){var s=t.dateContactList;s?e.forEach(s,function(e){if(-1!==n.indexOf(e.type))return a.push(t),!1}):-1!==n.indexOf(t.type)&&a.push(t)}),a):t}}return t.__name="filterByDateType",t.$inject=["$filter","$rootScope","$log"],t}),define("tasks-assignments/filters/date.filter",["common/moment"],function(e){"use strict";function t(t,n){return n.debug("Filter: filterBy.date"),function(t,n){if(!t||!t.length||!n)return[];var a,s,r,i=[],o=0,c=t.length;for(a=e().startOf(n),s=e().endOf(n);oa&&r Date: Sun, 22 Apr 2018 21:15:42 -0400 Subject: [PATCH 24/29] PCHR-3417: Add upgrader to remove activity types not needed by the extension --- .../CRM/Tasksassignments/Upgrader.php | 88 ++++++++++++++++++- 1 file changed, 86 insertions(+), 2 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php index b76478c0..dbc0f88b 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php @@ -773,6 +773,54 @@ public function upgrade_1034() { return TRUE; } + /** + * Deletes activity types that are not needed by T&W. + */ + public function upgrade_1035() { + $this->_uninstallAllComponentActivities([ + 'CiviCampaign', + 'CiviContribute', + 'CiviEvent', + 'CiviMember', + 'CiviPledge', + ]); + + $this->_uninstallActivitiesByLabel([ + 'Downloaded Invoice', + 'Emailed Invoice', + 'Inbound SMS', + 'Outbound SMS', + 'SMS delivery', + 'Tell a Friend', + ]); + + $this->_uninstallActivityTypes('CiviCase', [ + 'Background_Check', + 'Collate and print goals', + 'Collection of Appraisal forms', + 'Collection of appraisal paperwork', + 'Conduct appraisal', + 'Follow up on progress', + 'ID badge', + 'Interview Prospect', + 'Issue confirmation/warning letter', + 'Issue extension letter', + 'Prepare and email schedule', + 'Prepare formats', + 'Print formats', + 'Revoke access to databases', + ]); + + $this->_uninstallActivityTypes('CiviDocument', [ + 'Joining Document 2', + 'Joining Document 3', + 'Exiting document 2', + 'Exiting document 3', + ]); + + return TRUE; + } + public function uninstall() { CRM_Core_DAO::executeQuery("DELETE FROM `civicrm_navigation` WHERE name IN ('tasksassignments', 'ta_dashboard_tasks', 'ta_dashboard_documents', 'ta_dashboard_calendar', 'ta_dashboard_keydates', 'tasksassignments_administer', 'ta_settings')"); CRM_Core_BAO_Navigation::resetNavigation(); @@ -833,14 +881,32 @@ private function _installActivityTypes($component, array $types) { } } + /** + * Removes activity types by using their labels as reference. + * + * @param array $activityLabels + */ + private function _uninstallActivitiesByLabel(array $activityLabels) { + $result = civicrm_api3('OptionValue', 'get', [ + 'sequential' => 1, + 'option_group_id' => 'activity_type', + 'label' => [ 'IN' => $activityLabels ], + 'return' => 'id' + ]); + + foreach ($result['values'] as $activity) { + civicrm_api3('OptionValue', 'delete', ['id' => $activity['id']]); + } + } + /** * Uninstall (if they exist) the given activity types for the given component * * @param string $component * @param array $types */ - private function _uninstallActivityTypes($component, array $types) { - $params = $this->_fetchActivityTypeParams('CiviDocument'); + private function _uninstallActivityTypes($componentName, array $types) { + $params = $this->_fetchActivityTypeParams($componentName); $typeIds = array_map(function ($type) { return $type['id']; }, civicrm_api3('OptionValue', 'get', array( @@ -855,6 +921,24 @@ private function _uninstallActivityTypes($component, array $types) { } } + /** + * Removes activity types by using their parent component as reference. + * + * @param array $componentNames + */ + private function _uninstallAllComponentActivities(array $componentNames) { + $result = civicrm_api3('OptionValue', 'get', [ + 'sequential' => 1, + 'option_group_id' => 'activity_type', + 'component_id' => [ 'IN' => $componentNames ], + 'return' => 'id' + ]); + + foreach ($result['values'] as $activity) { + civicrm_api3('OptionValue', 'delete', ['id' => $activity['id']]); + } + } + /** * Renames the label for a case status * From 6e189f1615bdc372c5736236e65dc66e84e1e5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Sun, 22 Apr 2018 21:35:17 -0400 Subject: [PATCH 25/29] PCHR-3417: Fix lint issues --- .../CRM/Tasksassignments/Upgrader.php | 223 ++++++++++-------- 1 file changed, 131 insertions(+), 92 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php index dbc0f88b..cf27e16d 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php @@ -1,13 +1,13 @@ executeCustomDataFile('xml/customdata.xml'); $this->executeSqlFile('sql/install.sql'); $revisions = $this->getRevisions(); + foreach ($revisions as $revision) { $methodName = 'upgrade_' . $revision; if (is_callable(array($this, $methodName))) { @@ -16,23 +16,23 @@ public function install() { } $this->setComponentStatuses(array( - 'CiviTask' => true, - 'CiviDocument' => true, + 'CiviTask' => TRUE, + 'CiviDocument' => TRUE, )); } public function enable() { $this->setComponentStatuses(array( - 'CiviTask' => true, - 'CiviDocument' => true, + 'CiviTask' => TRUE, + 'CiviDocument' => TRUE, )); return TRUE; } public function disable() { $this->setComponentStatuses(array( - 'CiviTask' => false, - 'CiviDocument' => false, + 'CiviTask' => FALSE, + 'CiviDocument' => FALSE, )); } @@ -42,26 +42,30 @@ public function disable() { * * Note: This API has only been tested with CiviCRM 4.4. * - * @param array $components keys are component names (e.g. "CiviMail"); values are booleans + * @param array $components keys are component names (e.g. "CiviMail"); values are bools */ public function setComponentStatuses($components) { $getResult = civicrm_api3('setting', 'getsingle', array( 'domain_id' => CRM_Core_Config::domainID(), 'return' => array('enable_components'), )); + if (!is_array($getResult['enable_components'])) { throw new CRM_Core_Exception("Failed to determine component statuses"); } // Merge $components with existing list $enableComponents = $getResult['enable_components']; + foreach ($components as $component => $status) { if ($status) { $enableComponents = array_merge($enableComponents, array($component)); - } else { + } + else { $enableComponents = array_diff($enableComponents, array($component)); } } + civicrm_api3('setting', 'create', array( 'domain_id' => CRM_Core_Config::domainID(), 'enable_components' => array_unique($enableComponents), @@ -70,8 +74,8 @@ public function setComponentStatuses($components) { } public function upgrade_0001() { - $optionGroupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'task_status', 'id', 'name'); + if (!$optionGroupID) { $params = array( 'name' => 'task_status', @@ -79,12 +83,15 @@ public function upgrade_0001() { 'is_active' => 1, 'is_reserved' => 1, ); + civicrm_api3('OptionGroup', 'create', $params); + $optionsValue = array( 1 => 'Task sample status 1', 2 => 'Task sample status 2', 3 => 'Task sample status 3', ); + foreach ($optionsValue as $key => $value) { $opValueParams = array( 'option_group_id' => 'task_status', @@ -92,6 +99,7 @@ public function upgrade_0001() { 'label' => $value, 'value' => $key, ); + civicrm_api3('OptionValue', 'create', $opValueParams); } } @@ -106,20 +114,20 @@ public function upgrade_0002() { $weight = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Navigation', 'Contacts', 'weight', 'name'); //$contactNavId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Navigation', 'Contacts', 'id', 'name'); $importJobNavigation = new CRM_Core_DAO_Navigation(); - $params = array ( + $params = array( 'domain_id' => CRM_Core_Config::domainID(), 'label' => ts('Tasks and Assignments'), 'name' => 'tasksassignments', 'url' => 'civicrm/tasksassignments/dashboard#/tasks', - 'parent_id' => null, - 'weight' => $weight+1, + 'parent_id' => NULL, + 'weight' => $weight + 1, 'permission' => 'access Tasks and Assignments', 'separator' => 1, - 'is_active' => 1 + 'is_active' => 1, ); + $importJobNavigation->copyValues($params); $importJobNavigation->save(); - CRM_Core_BAO_Navigation::resetNavigation(); return TRUE; @@ -129,18 +137,21 @@ public function upgrade_0003() { // Remove custom 'task_status' option group / values and group four of default 'activity_status' values as 'resolved'. $taskStatuses = array('Completed', 'Cancelled', 'Not Required', 'No_show'); - $optionGroupID = (int)CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'task_status', 'id', 'name'); + $optionGroupID = (int) CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'task_status', 'id', 'name'); + if ($optionGroupID) { CRM_Core_DAO::executeQuery("DELETE FROM `civicrm_option_value` WHERE option_group_id = {$optionGroupID}"); CRM_Core_DAO::executeQuery("DELETE FROM `civicrm_option_group` WHERE id = {$optionGroupID}"); } - $optionGroupID = (int)CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'activity_status', 'id', 'name'); + $optionGroupID = (int) CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'activity_status', 'id', 'name'); + if ($optionGroupID) { $result = civicrm_api3('OptionValue', 'get', array( 'sequential' => 1, 'option_group_id' => $optionGroupID, )); + foreach ($result['values'] as $value) { if (in_array($value['name'], $taskStatuses)) { civicrm_api3('OptionValue', 'create', array( @@ -155,12 +166,14 @@ public function upgrade_0003() { return TRUE; } - /* + /** * Install Documents statuses + * + * @return bool */ public function upgrade_0006() { - $optionGroupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'document_status', 'id', 'name'); + if (!$optionGroupID) { $params = array( 'name' => 'document_status', @@ -168,13 +181,16 @@ public function upgrade_0006() { 'is_active' => 1, 'is_reserved' => 1, ); + civicrm_api3('OptionGroup', 'create', $params); + $optionsValue = array( 1 => 'awaiting upload', 2 => 'awaiting approval', 3 => 'approved', 4 => 'rejected', ); + foreach ($optionsValue as $key => $value) { $opValueParams = array( 'option_group_id' => 'document_status', @@ -182,6 +198,7 @@ public function upgrade_0006() { 'label' => $value, 'value' => $key, ); + civicrm_api3('OptionValue', 'create', $opValueParams); } } @@ -189,12 +206,14 @@ public function upgrade_0006() { return TRUE; } - /* + /** * Install Tasks Assignments custom settings. + * + * @return bool */ public function upgrade_0007() { - $optionGroupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'ta_settings', 'id', 'name'); + if (!$optionGroupID) { $params = array( 'name' => 'ta_settings', @@ -202,7 +221,9 @@ public function upgrade_0007() { 'is_active' => 1, 'is_reserved' => 1, ); + civicrm_api3('OptionGroup', 'create', $params); + $optionsValue = array( 'documents_tab' => array( 'label' => 'Show or hide the Documents tab', @@ -225,6 +246,7 @@ public function upgrade_0007() { 'value' => '', ), ); + foreach ($optionsValue as $key => $value) { $opValueParams = array( 'option_group_id' => 'ta_settings', @@ -232,6 +254,7 @@ public function upgrade_0007() { 'label' => $value['label'], 'value' => $value['value'], ); + civicrm_api3('OptionValue', 'create', $opValueParams); } } @@ -239,15 +262,13 @@ public function upgrade_0007() { return TRUE; } - public function upgrade_0008() - { + public function upgrade_0008() { $this->executeCustomDataFile('xml/activity_custom_fields.xml'); return TRUE; } - public function upgrade_0009() - { + public function upgrade_0009() { $this->executeCustomDataFile('xml/probation.xml'); return TRUE; @@ -264,11 +285,12 @@ public function upgrade_0009() return TRUE; }*/ - /* + /** * Install Dummy Document Types (Activity Types) + * + * @return bool */ - public function upgrade_1011() - { + public function upgrade_1011() { $this->_installActivityTypes('CiviDocument', array( 'Joining Document 1', 'Exiting document 1', @@ -277,21 +299,22 @@ public function upgrade_1011() return TRUE; } - /* + /** * Set up Daily Reminder job + * + * @return bool */ - public function upgrade_1012() - { + public function upgrade_1012() { $dao = new CRM_Core_DAO_Job(); $dao->api_entity = 'task'; $dao->api_action = 'senddailyreminder'; $dao->find(TRUE); - if (!$dao->id) - { + + if (!$dao->id) { $dao = new CRM_Core_DAO_Job(); $dao->domain_id = CRM_Core_Config::domainID(); $dao->run_frequency = 'Daily'; - $dao->parameters = null; + $dao->parameters = NULL; $dao->name = 'Tasks and Assignments Daily Reminder'; $dao->description = 'Tasks and Assignments Daily Reminder'; $dao->api_entity = 'task'; @@ -303,16 +326,17 @@ public function upgrade_1012() return TRUE; } - /* + /** * Add Settings page to Tasks and Assignments top menu + * + * @return bool */ - public function upgrade_1013() - { + public function upgrade_1013() { $taNavigation = new CRM_Core_DAO_Navigation(); $taNavigation->name = 'tasksassignments'; - $taNavigation->find(true); - if ($taNavigation->id) - { + $taNavigation->find(TRUE); + + if ($taNavigation->id) { $taNavigation->url = ''; $taNavigation->save(); @@ -326,14 +350,14 @@ public function upgrade_1013() 'label' => ts('Settings'), 'name' => 'ta_settings', 'url' => 'civicrm/tasksassignments/settings', - ) + ), ); - foreach ($submenu as $key => $item) - { + foreach ($submenu as $key => $item) { $item['parent_id'] = $taNavigation->id; $item['weight'] = $key; $item['is_active'] = 1; + CRM_Core_BAO_Navigation::add($item); } @@ -343,15 +367,16 @@ public function upgrade_1013() return TRUE; } - /* + /** * Add Settings page to Administer top menu + * + * @return bool */ - public function upgrade_1014() - { + public function upgrade_1014() { // Add Tasks and Assignments to the Administer menu $administerNavId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Navigation', 'Administer', 'id', 'name'); - if ($administerNavId) - { + + if ($administerNavId) { CRM_Core_DAO::executeQuery("DELETE FROM `civicrm_navigation` WHERE name = 'tasksassignments_administer' and parent_id = %1", array( 1 => array($administerNavId, 'Integer'), @@ -359,23 +384,24 @@ public function upgrade_1014() ); $taAdminNavigation = new CRM_Core_DAO_Navigation(); - $params = array ( + $params = array( 'domain_id' => CRM_Core_Config::domainID(), 'label' => ts('Tasks and Assignments'), 'name' => 'tasksassignments_administer', - 'url' => null, + 'url' => NULL, 'parent_id' => $administerNavId, 'separator' => 1, - 'is_active' => 1 + 'is_active' => 1, ); + $taAdminNavigation->copyValues($params); $taAdminNavigation->save(); $taSettings = new CRM_Core_DAO_Navigation(); $taSettings->name = 'ta_settings'; - $taSettings->find(true); - if ($taSettings->id) - { + $taSettings->find(TRUE); + + if ($taSettings->id) { $taSettings->parent_id = $taAdminNavigation->id; $taSettings->save(); } @@ -386,11 +412,10 @@ public function upgrade_1014() return TRUE; } - public function upgrade_1015() - { + public function upgrade_1015() { $setting = civicrm_api3('OptionValue', 'get', array( 'option_group_id' => 'ta_settings', - 'name' => 'is_task_dashboard_default' + 'name' => 'is_task_dashboard_default', )); if (empty($setting['id'])) { @@ -398,7 +423,7 @@ public function upgrade_1015() 'option_group_id' => 'ta_settings', 'name' => 'is_task_dashboard_default', 'label' => 'Is task dashboard the default page', - 'value' => '1' + 'value' => '1', ); civicrm_api3('OptionValue', 'create', $opValueParams); } @@ -406,11 +431,10 @@ public function upgrade_1015() return TRUE; } - public function upgrade_1016() - { + public function upgrade_1016() { CRM_Tasksassignments_DashboardSwitcher::switchToTasksAndAssignments(); - return true; + return TRUE; } /** @@ -421,29 +445,29 @@ public function upgrade_1016() public function upgrade_1018() { $taNavigation = new CRM_Core_BAO_Navigation(); $taNavigation->name = 'tasksassignments'; - $taNavigation->find(true); + $taNavigation->find(TRUE); - if($taNavigation->id && !$taNavigation->permission) { + if ($taNavigation->id && !$taNavigation->permission) { $navigation = new CRM_Core_BAO_Navigation(); $foo = array( 'id' => $taNavigation->id, 'permission' => 'access Tasks and Assignments', 'separator' => 1, - 'is_active' => 1 + 'is_active' => 1, ); $params = $navigation->add($foo); - return true; + return TRUE; } - return false; + return FALSE; } /** * Disables the Case menu items if Tasks&Assignments is enabled * - * @return {boolean} + * @return bool */ public function upgrade_1019() { $isEnabled = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Extension', 'uk.co.compucorp.civicrm.tasksassignments', 'is_active', 'full_name'); @@ -453,18 +477,19 @@ public function upgrade_1019() { CRM_Core_BAO_Navigation::resetNavigation(); } - return true; + return TRUE; } - /* + /** * Install Tasks Assignments 'days_to_create_a_document_clone' setting field. * It keeps a number of days to create a document clone before original * expiry date. * - * @return {boolean} + * @return bool */ public function upgrade_1020() { $optionGroupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'ta_settings', 'id', 'name'); + if (!$optionGroupID) { civicrm_api3('OptionGroup', 'create', array( 'name' => 'ta_settings', @@ -473,11 +498,13 @@ public function upgrade_1020() { 'is_reserved' => 1, )); } + $optionValue = civicrm_api3('OptionValue', 'get', array( 'sequential' => 1, 'option_group_id' => 'ta_settings', 'name' => "days_to_create_a_document_clone", )); + if (empty($optionValue['id'])) { civicrm_api3('OptionValue', 'create', array( 'option_group_id' => 'ta_settings', @@ -486,16 +513,20 @@ public function upgrade_1020() { 'value' => 0, )); } + return TRUE; } /** * Uninstalls the dummy document types in old CiviHR installs * And adds real, default values + * + * @return bool */ public function upgrade_1021() { $this->_uninstallActivityTypes('CiviDocument', array( - 'Joining Document 1', 'Exiting Document 1' + 'Joining Document 1', + 'Exiting Document 1', )); $this->_installActivityTypes('CiviDocument', array( @@ -504,30 +535,29 @@ public function upgrade_1021() { 'Government Photo ID', 'Driving licence', 'Identity card', - 'Certificate of sponsorship (COS)' + 'Certificate of sponsorship (COS)', )); return TRUE; } - /* + /** * Set up scheduled job which clones documents on pre-set days before * their original expiry date. * * @see PCHR-1365 */ - public function upgrade_1022() - { + public function upgrade_1022() { $dao = new CRM_Core_DAO_Job(); $dao->api_entity = 'document'; $dao->api_action = 'clonedocuments'; $dao->find(TRUE); - if (!$dao->id) - { + + if (!$dao->id) { $dao = new CRM_Core_DAO_Job(); $dao->domain_id = CRM_Core_Config::domainID(); $dao->run_frequency = 'Daily'; - $dao->parameters = null; + $dao->parameters = NULL; $dao->name = 'Clone Documents'; $dao->description = 'Clone any approved document within pre-set days before its original expiry date'; $dao->api_entity = 'document'; @@ -542,18 +572,17 @@ public function upgrade_1022() /** * Set up Documents Notification scheduled job. */ - public function upgrade_1023() - { + public function upgrade_1023() { $dao = new CRM_Core_DAO_Job(); $dao->api_entity = 'document'; $dao->api_action = 'senddocumentsnotification'; $dao->find(TRUE); - if (!$dao->id) - { + + if (!$dao->id) { $dao = new CRM_Core_DAO_Job(); $dao->domain_id = CRM_Core_Config::domainID(); $dao->run_frequency = 'Daily'; - $dao->parameters = null; + $dao->parameters = NULL; $dao->name = 'Documents Notification'; $dao->description = 'Tasks and Assignments Documents Notification'; $dao->api_entity = 'document'; @@ -565,8 +594,7 @@ public function upgrade_1023() return TRUE; } - public function upgrade_1024() - { + public function upgrade_1024() { $this->executeCustomDataFile('xml/activity_custom_fields.xml'); return TRUE; @@ -593,6 +621,8 @@ public function upgrade_1026() { /** * Remove the old Dashboard submenu item + * + * @return bool */ public function upgrade_1027() { $taDashboard = new CRM_Core_DAO_Navigation(); @@ -611,6 +641,8 @@ public function upgrade_1027() { /** * Add new submenu links + * + * @return bool */ public function upgrade_1028() { $taNavigation = new CRM_Core_DAO_Navigation(); @@ -659,6 +691,8 @@ public function upgrade_1028() { /** * Rename "Tasks and Assignments" menu items to just "Tasks" + * + * @return bool */ public function upgrade_1029() { $default = []; @@ -682,6 +716,8 @@ public function upgrade_1029() { /** * Rename "Settings" menu item to "Tasks Settings" + * + * @return bool */ public function upgrade_1030() { $default = []; @@ -705,7 +741,7 @@ public function upgrade_1031() { $params = [ 'name' => 'tasksassignments', 'api.Navigation.create' => ['id' => '$value.id', 'icon' => 'crm-i fa-list-ul'], - 'parent_id' => ['IS NULL' => true], + 'parent_id' => ['IS NULL' => TRUE], ]; civicrm_api3('Navigation', 'get', $params); @@ -775,6 +811,8 @@ public function upgrade_1034() { /** * Deletes activity types that are not needed by T&W. + * + * @return bool */ public function upgrade_1035() { $this->_uninstallAllComponentActivities([ @@ -836,7 +874,7 @@ public function uninstall() { * @return array */ private function _fetchActivityTypeParams($component) { - $componentId = null; + $componentId = NULL; $componentQuery = 'SELECT id FROM civicrm_component WHERE name = %1'; $componentParams = array(1 => array($component, 'String')); $componentResult = CRM_Core_DAO::executeQuery($componentQuery, $componentParams); @@ -863,7 +901,7 @@ private function _fetchActivityTypeParams($component) { return array( 'component_id' => $componentId, - 'option_group_id' => $optionGroupID + 'option_group_id' => $optionGroupID, ); } @@ -902,8 +940,8 @@ private function _uninstallActivitiesByLabel(array $activityLabels) { /** * Uninstall (if they exist) the given activity types for the given component * - * @param string $component - * @param array $types + * @param string $componentName + * @param array $types */ private function _uninstallActivityTypes($componentName, array $types) { $params = $this->_fetchActivityTypeParams($componentName); @@ -913,7 +951,7 @@ private function _uninstallActivityTypes($componentName, array $types) { 'component_id' => $params['component_id'], 'option_group_id' => $params['option_group_id'], 'name' => array('IN' => $types), - 'return' => 'id' + 'return' => 'id', ))['values']); foreach ($typeIds as $id) { @@ -961,4 +999,5 @@ private function _relabelCaseStatus($fromLabel, $toLabel) { ]); } } + } From 0be17fefb0d91122ee6a264f28863d7f58b6f1c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Sun, 22 Apr 2018 22:02:19 -0400 Subject: [PATCH 26/29] PCHR-3417: Refactor activity uninstall function --- .../CRM/Tasksassignments/Upgrader.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php index cf27e16d..a68270b0 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php @@ -833,7 +833,7 @@ public function upgrade_1035() { ]); $this->_uninstallActivityTypes('CiviCase', [ - 'Background_Check', + 'Background Check', 'Collate and print goals', 'Collection of Appraisal forms', 'Collection of appraisal paperwork', @@ -945,17 +945,15 @@ private function _uninstallActivitiesByLabel(array $activityLabels) { */ private function _uninstallActivityTypes($componentName, array $types) { $params = $this->_fetchActivityTypeParams($componentName); - $typeIds = array_map(function ($type) { - return $type['id']; - }, civicrm_api3('OptionValue', 'get', array( + $result = civicrm_api3('OptionValue', 'get', [ 'component_id' => $params['component_id'], 'option_group_id' => $params['option_group_id'], 'name' => array('IN' => $types), 'return' => 'id', - ))['values']); + ]); - foreach ($typeIds as $id) { - civicrm_api3('OptionValue', 'delete', array('id' => $id)); + foreach ($result['values'] as $activity) { + civicrm_api3('OptionValue', 'delete', ['id' => $activity['id']]); } } From ecc22b5e3d25a802a6a3ee9141054cc2bf556104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Mon, 23 Apr 2018 10:57:57 -0400 Subject: [PATCH 27/29] PCHR-3417: PR Feedback --- .../CRM/Tasksassignments/Upgrader.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php index a68270b0..204a8250 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php @@ -823,11 +823,11 @@ public function upgrade_1035() { 'CiviPledge', ]); - $this->_uninstallActivitiesByLabel([ + $this->_uninstallActivitiesByName([ 'Downloaded Invoice', 'Emailed Invoice', 'Inbound SMS', - 'Outbound SMS', + 'SMS', 'SMS delivery', 'Tell a Friend', ]); @@ -920,15 +920,15 @@ private function _installActivityTypes($component, array $types) { } /** - * Removes activity types by using their labels as reference. + * Removes activity types by using their names as reference. * - * @param array $activityLabels + * @param array $activityNames */ - private function _uninstallActivitiesByLabel(array $activityLabels) { + private function _uninstallActivitiesByName(array $activityNames) { $result = civicrm_api3('OptionValue', 'get', [ 'sequential' => 1, 'option_group_id' => 'activity_type', - 'label' => [ 'IN' => $activityLabels ], + 'name' => ['IN' => $activityNames], 'return' => 'id' ]); @@ -948,7 +948,7 @@ private function _uninstallActivityTypes($componentName, array $types) { $result = civicrm_api3('OptionValue', 'get', [ 'component_id' => $params['component_id'], 'option_group_id' => $params['option_group_id'], - 'name' => array('IN' => $types), + 'name' => ['IN' => $types], 'return' => 'id', ]); @@ -964,9 +964,8 @@ private function _uninstallActivityTypes($componentName, array $types) { */ private function _uninstallAllComponentActivities(array $componentNames) { $result = civicrm_api3('OptionValue', 'get', [ - 'sequential' => 1, 'option_group_id' => 'activity_type', - 'component_id' => [ 'IN' => $componentNames ], + 'component_id' => ['IN' => $componentNames], 'return' => 'id' ]); From 0adee25f8fa0ab335ebf6644ab88a622bbc81fec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Wed, 25 Apr 2018 06:36:57 -0400 Subject: [PATCH 28/29] PCHR-3417: Add missing activity type to be removed --- .../CRM/Tasksassignments/Upgrader.php | 1 + 1 file changed, 1 insertion(+) diff --git a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php index 204a8250..53411d74 100755 --- a/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php +++ b/uk.co.compucorp.civicrm.tasksassignments/CRM/Tasksassignments/Upgrader.php @@ -834,6 +834,7 @@ public function upgrade_1035() { $this->_uninstallActivityTypes('CiviCase', [ 'Background Check', + 'Background_Check', 'Collate and print goals', 'Collection of Appraisal forms', 'Collection of appraisal paperwork', From 9eb8de7798cd025496bb1eb04d96c7acbda0058c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Olivo?= Date: Fri, 27 Apr 2018 15:08:18 -0400 Subject: [PATCH 29/29] PCHR-3369: Fix package-lock.json file --- package-lock.json | 10922 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 10922 insertions(+) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..a20b5541 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,10922 @@ +{ + "name": "civihr-taskassignments", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@gulp-sourcemaps/identity-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz", + "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=", + "dev": true, + "requires": { + "acorn": "5.5.3", + "css": "2.2.1", + "normalize-path": "2.1.1", + "source-map": "0.5.7", + "through2": "2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "2.1.1", + "through2": "2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + } + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "addressparser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=", + "dev": true, + "optional": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "dev": true, + "requires": { + "extend": "3.0.1", + "semver": "5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "amqplib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.2.tgz", + "integrity": "sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA==", + "dev": true, + "optional": true, + "requires": { + "bitsyntax": "0.0.4", + "bluebird": "3.5.1", + "buffer-more-ints": "0.0.2", + "readable-stream": "1.1.14", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true, + "optional": true + } + } + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "any-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", + "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + } + } + }, + "app-root-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", + "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.11.0" + } + }, + "array-iterate": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.1.tgz", + "integrity": "sha1-hlv3+K851rCYLGCQKRSsdrwBCPY=", + "dev": true + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", + "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "dev": true, + "optional": true + }, + "async": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz", + "integrity": "sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=", + "dev": true, + "optional": true, + "requires": { + "lodash": "4.17.5" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, + "autoprefixer": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", + "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", + "dev": true, + "requires": { + "browserslist": "2.11.3", + "caniuse-lite": "1.0.30000808", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.17", + "postcss-value-parser": "3.3.0" + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true + }, + "axios": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz", + "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", + "dev": true, + "optional": true, + "requires": { + "follow-redirects": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", + "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9" + } + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "bail": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.2.tgz", + "integrity": "sha1-99bBcxYwqfnw1NNe0fli4gdKF2Q=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "binaryextensions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", + "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U=", + "dev": true + }, + "bitsyntax": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz", + "integrity": "sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI=", + "dev": true, + "optional": true, + "requires": { + "buffer-more-ints": "0.0.2" + } + }, + "bl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true, + "optional": true + } + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.3", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.16" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + } + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + }, + "dependencies": { + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.9.tgz", + "integrity": "sha512-/+o3o6OV1cm3WKrO7U4wykU+ZICE6HiMEuravc2d03NIuM/VaRn5iMcoQ7NyxFXjvpmRICP2EER0YOnh4yIapA==", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000808", + "electron-to-chromium": "1.3.33" + } + }, + "buffer-from": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "dev": true + }, + "buffer-more-ints": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz", + "integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw=", + "dev": true + }, + "buildmail": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz", + "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=", + "dev": true, + "optional": true, + "requires": { + "addressparser": "1.0.1", + "libbase64": "0.1.0", + "libmime": "3.0.0", + "libqp": "1.1.0", + "nodemailer-fetch": "1.6.0", + "nodemailer-shared": "1.1.0", + "punycode": "1.4.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30000808", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000808.tgz", + "integrity": "sha512-vT0JLmHdvq1UVbYXioxCXHYdNw55tyvi+IUWyX0Zeh1OFQi2IllYtm38IJnSgHWCv/zUnX1hdhy3vMJvuTNSqw==", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "ccount": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.2.tgz", + "integrity": "sha1-U7ai+BW7d7nChx97mnLDol8djok=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "character-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.1.tgz", + "integrity": "sha1-92hxvl72bdt/j440eOzDdMJ9bco=", + "dev": true + }, + "character-entities-html4": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.1.tgz", + "integrity": "sha1-NZoqSg9+KdPcKsmb2+Ie45Q46lA=", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.1.tgz", + "integrity": "sha1-9Ad53xoQGHK7UQo9KV4fzPFHIC8=", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.1.tgz", + "integrity": "sha1-lCg191Dk7GGjCOYMLvjMEBEgLvw=", + "dev": true + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "child-process-promise": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz", + "integrity": "sha1-RzChHvYQ+tRQuPIjx50x172tgHQ=", + "dev": true, + "requires": { + "cross-spawn": "4.0.2", + "node-version": "1.1.0", + "promise-polyfill": "6.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + } + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.2", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "ci-info": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "dev": true + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "civicrm-cv": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/civicrm-cv/-/civicrm-cv-0.1.2.tgz", + "integrity": "sha1-prn+pVahci1Km3ChHGSHVXGmNKg=", + "dev": true, + "requires": { + "child-process-promise": "2.2.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "1.0.1" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "1.0.2" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", + "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", + "dev": true, + "requires": { + "is-regexp": "1.0.0", + "is-supported-regexp-flag": "1.0.0" + } + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "cloneable-readable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", + "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "process-nextick-args": "1.0.7", + "through2": "2.0.3" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collapse-white-space": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.3.tgz", + "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.1.tgz", + "integrity": "sha512-s8+wktIuDSLffCywiwSxQOMqtPxML11a/dtHE17tMn4B1MSWw/C22EKf7M2KGUBcDaVFEGT+S8N02geDXeuNKg==", + "dev": true + }, + "combine-lists": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "dev": true, + "requires": { + "lodash": "4.17.5" + } + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "1.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.6.tgz", + "integrity": "sha512-QxQ5MD9fcxt4fY5wLPZT+cyJsGfrwbko/k68z/fLHxz1fUh49+hc373a2Ajr/03dnCYQXiJTsdcrk/KrEfugZA==", + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.10.0", + "parse-json": "4.0.0", + "require-from-string": "2.0.1" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.1" + } + } + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "css": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", + "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "source-map": "0.1.43", + "source-map-resolve": "0.3.1", + "urix": "0.1.0" + }, + "dependencies": { + "atob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", + "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "source-map-resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "dev": true, + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", + "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", + "dev": true + } + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.42" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", + "dev": true, + "optional": true + }, + "date-fns": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", + "dev": true + }, + "date-format": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", + "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=", + "dev": true + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "requires": { + "debug": "3.1.0", + "memoizee": "0.4.12", + "object-assign": "4.1.1" + } + }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "1.2.0", + "map-obj": "1.0.1" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "1.0.3" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "dev": true, + "optional": true, + "requires": { + "ast-types": "0.11.3", + "escodegen": "1.9.1", + "esprima": "3.1.3" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true, + "optional": true + } + } + }, + "deglob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz", + "integrity": "sha1-TUSr4W7zLHebSXK9FBqAMlApoUo=", + "dev": true, + "requires": { + "find-root": "1.1.0", + "glob": "7.1.2", + "ignore": "3.3.7", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "path-type": "3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + } + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.1", + "void-elements": "2.0.1" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "1.0.1" + } + }, + "double-ended-queue": { + "version": "2.1.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=", + "dev": true, + "optional": true + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz", + "integrity": "sha1-vwBwPWKnxlI4E2V4w1LWxcBCpUU=", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true, + "requires": { + "once": "1.3.3" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + } + } + }, + "engine.io": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz", + "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==", + "dev": true, + "requires": { + "accepts": "1.3.5", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "uws": "9.14.0", + "ws": "3.3.3" + } + }, + "engine.io-client": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", + "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary2": "1.0.2" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", + "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "es5-ext": { + "version": "0.10.42", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", + "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-symbol": "3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "dev": true, + "optional": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "eslint": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.3.0", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.5.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "eslint-config-semistandard": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-12.0.1.tgz", + "integrity": "sha512-4zaPW5uRFasf2uRZkE19Y+W84KBV3q+oyWYOsgUN+5DQXE5HCsh7ZxeWDXxozk7NPycGm0kXcsJzLe5GZ1jCeg==", + "dev": true + }, + "eslint-config-standard": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", + "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==", + "dev": true + }, + "eslint-config-standard-jsx": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", + "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "2.6.9", + "resolve": "1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "dev": true, + "requires": { + "debug": "2.6.9", + "pkg-dir": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", + "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", + "dev": true, + "requires": { + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.1", + "lodash.cond": "4.5.2", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + } + } + }, + "eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "dev": true, + "requires": { + "ignore": "3.3.7", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.5.0" + } + }, + "eslint-plugin-promise": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", + "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.6.1.tgz", + "integrity": "sha512-30aMOHWX/DOaaLJVBHz6RMvYM2qy5GH63+y2PLFdIrYe4YLtODFmT3N1YA7ZqUnaBweVbedr4K4cqxOlWAPjIw==", + "dev": true, + "requires": { + "doctrine": "2.1.0", + "has": "1.0.1", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.1" + } + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "5.5.3", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42" + } + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "dev": true + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, + "execall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", + "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", + "dev": true, + "requires": { + "clone-regexp": "1.0.0" + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-braces": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "dev": true, + "requires": { + "array-slice": "0.2.3", + "array-unique": "0.2.1", + "braces": "0.1.5" + }, + "dependencies": { + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "dev": true, + "requires": { + "expand-range": "0.1.1" + } + }, + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + "dev": true, + "requires": { + "is-number": "0.1.1", + "repeat-string": "0.2.2" + } + }, + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", + "dev": true + }, + "repeat-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", + "dev": true + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + }, + "dependencies": { + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "1.0.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "requires": { + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "dev": true, + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "dev": true + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "1.0.0", + "is-glob": "3.1.0", + "micromatch": "3.1.5", + "resolve-dir": "1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "is-plain-object": "2.0.4", + "object.defaults": "1.1.0", + "object.pick": "1.3.0", + "parse-filepath": "1.0.2" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", + "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", + "dev": true + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "follow-redirects": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", + "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", + "dev": true, + "requires": { + "debug": "3.1.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "1.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.2.tgz", + "integrity": "sha512-iownA+hC4uHFp+7gwP/y5SzaiUo7m2vpa0dhpzw8YuKtiZsz7cIXsFbXpLEeBM6WuCQyw1MH4RRe6XI8GFUctQ==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.10.0", + "node-pre-gyp": "0.9.1" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.9.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.6", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "1.1.14", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true, + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "0.1.0" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-own-enumerable-property-symbols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz", + "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==", + "dev": true + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz", + "integrity": "sha512-7aelVrYqCLuVjq2kEKRTH8fXPTC0xKTkM+G7UlFkEwCXY3sFbSxvY375JoFowOAYbkaU47SrBvOefUlLZZ+6QA==", + "dev": true, + "optional": true, + "requires": { + "data-uri-to-buffer": "1.2.0", + "debug": "2.6.9", + "extend": "3.0.1", + "file-uri-to-path": "1.0.0", + "ftp": "0.3.10", + "readable-stream": "2.3.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "requires": { + "glob": "4.5.3", + "glob2base": "0.0.12", + "minimatch": "2.0.10", + "ordered-read-streams": "0.1.0", + "through2": "0.6.5", + "unique-stream": "1.0.0" + }, + "dependencies": { + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "1.1.9" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "0.5.2" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "0.1.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "1.0.2", + "is-windows": "1.0.1", + "resolve-dir": "1.0.1" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "homedir-polyfill": "1.0.1", + "ini": "1.3.5", + "is-windows": "1.0.1", + "which": "1.3.0" + } + }, + "globals": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", + "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "3.1.21", + "lodash": "1.0.2", + "minimatch": "0.2.14" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "glogg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", + "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "gonzales-pe": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz", + "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==", + "dev": true, + "requires": { + "minimist": "1.1.3" + }, + "dependencies": { + "minimist": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", + "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "1.0.0", + "chalk": "1.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.1.0", + "liftoff": "2.5.0", + "minimist": "1.2.0", + "orchestrator": "0.3.8", + "pretty-hrtime": "1.0.3", + "semver": "4.3.6", + "tildify": "1.2.0", + "v8flags": "2.1.1", + "vinyl-fs": "0.3.14" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "gulp-clean": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/gulp-clean/-/gulp-clean-0.4.0.tgz", + "integrity": "sha512-DARK8rNMo4lHOFLGTiHEJdf19GuoBDHqGUaypz+fOhrvOs3iFO7ntdYtdpNxv+AzSJBx/JfypF0yEj9ks1IStQ==", + "dev": true, + "requires": { + "fancy-log": "1.3.2", + "plugin-error": "0.1.2", + "rimraf": "2.6.2", + "through2": "2.0.3", + "vinyl": "2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.0.0", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "1.0.6", + "through2": "2.0.3", + "vinyl": "2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.0.0", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + } + } + }, + "gulp-rename": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", + "dev": true + }, + "gulp-replace": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.6.1.tgz", + "integrity": "sha1-Eb+Mj85TPjPi9qjy9DC5VboL4GY=", + "dev": true, + "requires": { + "istextorbinary": "1.0.2", + "readable-stream": "2.3.3", + "replacestream": "4.0.3" + } + }, + "gulp-sass": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", + "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", + "dev": true, + "requires": { + "gulp-util": "3.0.8", + "lodash.clonedeep": "4.5.0", + "node-sass": "4.9.0", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-sass-bulk-import": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gulp-sass-bulk-import/-/gulp-sass-bulk-import-1.0.1.tgz", + "integrity": "sha1-AvHW0xDgGOae/iUlgRpOc4E5ZCM=", + "dev": true, + "requires": { + "glob": "4.5.3", + "through2": "0.6.5", + "vinyl-fs": "0.3.14" + }, + "dependencies": { + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "1.1.9" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + } + } + }, + "gulp-sourcemaps": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", + "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "1.0.1", + "@gulp-sourcemaps/map-sources": "1.0.0", + "acorn": "5.5.3", + "convert-source-map": "1.5.1", + "css": "2.2.1", + "debug-fabulous": "1.1.0", + "detect-newline": "2.1.0", + "graceful-fs": "4.1.11", + "source-map": "0.6.1", + "strip-bom-string": "1.0.0", + "through2": "2.0.3" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "gulp-uglify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", + "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", + "dev": true, + "requires": { + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash": "4.17.5", + "make-error-cause": "1.2.2", + "through2": "2.0.3", + "uglify-js": "3.3.22", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.2", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "1.0.1" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.15.1", + "is-my-json-valid": "2.17.2", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-binary2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz", + "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + }, + "dependencies": { + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + } + } + }, + "hipchat-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz", + "integrity": "sha1-ttJJdVQ3wZEII2d5nTupoPI7Ix4=", + "dev": true, + "optional": true, + "requires": { + "lodash": "4.17.5", + "request": "2.79.0" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "1.0.0" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.7.0", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": "1.5.0" + } + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "3.1.0", + "follow-redirects": "1.4.1", + "requires-port": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz", + "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=", + "dev": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.14.1" + } + }, + "httpntlm": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz", + "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=", + "dev": true, + "requires": { + "httpreq": "0.4.24", + "underscore": "1.7.0" + } + }, + "httpreq": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz", + "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=", + "dev": true + }, + "https-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "dev": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "husky": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", + "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + "dev": true, + "requires": { + "is-ci": "1.1.0", + "normalize-path": "1.0.0", + "strip-indent": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflection": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.10.0.tgz", + "integrity": "sha1-W//LEZetPoEFD44X4hZoCH7p6y8=", + "dev": true, + "optional": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "3.1.0", + "chalk": "2.3.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz", + "integrity": "sha1-x+NWzeoiWucbNtcPLnGpK6TkJZA=", + "dev": true, + "optional": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "1.0.0", + "is-windows": "1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-alphabetical": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.1.tgz", + "integrity": "sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg=", + "dev": true + }, + "is-alphanumeric": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.1.tgz", + "integrity": "sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts=", + "dev": true, + "requires": { + "is-alphabetical": "1.0.1", + "is-decimal": "1.0.1" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-ci": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "dev": true, + "requires": { + "ci-info": "1.1.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-decimal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.1.tgz", + "integrity": "sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI=", + "dev": true + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + } + } + }, + "is-hexadecimal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz", + "integrity": "sha1-bghLvJIGH7sJcexYts5tQE4k2mk=", + "dev": true + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "is-my-ip-valid": "1.0.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", + "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", + "dev": true, + "requires": { + "symbol-observable": "0.2.4" + } + }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "dev": true, + "requires": { + "is-number": "3.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-supported-regexp-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", + "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=", + "dev": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-whitespace-character": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz", + "integrity": "sha1-muAXbzKCtlRXoZks2whPil+DPjs=", + "dev": true + }, + "is-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "dev": true + }, + "is-word-character": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.1.tgz", + "integrity": "sha1-WgP6HqkazopusMfNdw64bWXIvvs=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.4" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istextorbinary": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", + "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=", + "dev": true, + "requires": { + "binaryextensions": "1.0.1", + "textextensions": "1.0.2" + } + }, + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true + }, + "jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "21.2.0", + "leven": "2.1.0", + "pretty-format": "21.2.1" + } + }, + "js-base64": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-parse-better-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", + "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "3.0.3" + } + }, + "karma": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.2.tgz", + "integrity": "sha1-TS25QChQpmVR+nhLAWT7CCTtjEs=", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "body-parser": "1.18.2", + "chokidar": "1.7.0", + "colors": "1.2.1", + "combine-lists": "1.0.1", + "connect": "3.6.6", + "core-js": "2.5.5", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "http-proxy": "1.17.0", + "isbinaryfile": "3.0.2", + "lodash": "4.17.5", + "log4js": "2.5.3", + "mime": "1.6.0", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.2.0", + "range-parser": "1.2.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "socket.io": "2.0.4", + "source-map": "0.6.1", + "tmp": "0.0.33", + "useragent": "2.2.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "1.0.1", + "which": "1.3.0" + } + }, + "karma-jasmine": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.1.tgz", + "integrity": "sha1-b+hA51oRYAydkehLM8RY4cRqNSk=", + "dev": true + }, + "karma-junit-reporter": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz", + "integrity": "sha1-T5xAzt+xo5X4rvh2q/lhiZF8Y5Y=", + "dev": true, + "requires": { + "path-is-absolute": "1.0.1", + "xmlbuilder": "8.2.2" + } + }, + "karma-ng-html2js-preprocessor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/karma-ng-html2js-preprocessor/-/karma-ng-html2js-preprocessor-1.0.0.tgz", + "integrity": "sha1-ENjIz6pBNvHIp22RpMvO7evsSjE=", + "dev": true + }, + "karma-requirejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz", + "integrity": "sha1-/driy4fX68FvsCIok1ZNf+5Xh5g=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "known-css-properties": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.5.0.tgz", + "integrity": "sha512-LOS0CoS8zcZnB1EjLw4LLqDXw8nvt3AGH5dXLQP3D9O1nLLA+9GC5GnPl5mmF+JiQAtSX4VyZC7KvEtcA4kUtA==", + "dev": true + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dev": true, + "requires": { + "set-getter": "0.1.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "libbase64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=", + "dev": true + }, + "libmime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz", + "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=", + "dev": true, + "requires": { + "iconv-lite": "0.4.15", + "libbase64": "0.1.0", + "libqp": "1.1.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "dev": true + } + } + }, + "libqp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=", + "dev": true + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "3.0.1", + "findup-sync": "2.0.0", + "fined": "1.1.0", + "flagged-respawn": "1.0.0", + "is-plain-object": "2.0.4", + "object.map": "1.0.1", + "rechoir": "0.6.2", + "resolve": "1.5.0" + } + }, + "lint-staged": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-6.1.1.tgz", + "integrity": "sha512-M/7bwLdXbeG7ZNLcasGeLMBDg60/w6obj3KOtINwJyxAxb53XGY0yH5FSZlWklEzuVbTtqtIfAajh6jYIN90AA==", + "dev": true, + "requires": { + "app-root-path": "2.0.1", + "chalk": "2.3.0", + "commander": "2.15.1", + "cosmiconfig": "4.0.0", + "debug": "3.1.0", + "dedent": "0.7.0", + "execa": "0.8.0", + "find-parent-dir": "0.3.0", + "is-glob": "4.0.0", + "jest-validate": "21.2.1", + "listr": "0.13.0", + "lodash": "4.17.5", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "npm-which": "3.0.1", + "p-map": "1.2.0", + "path-is-inside": "1.0.2", + "pify": "3.0.0", + "staged-git-files": "1.0.0", + "stringify-object": "3.2.2" + }, + "dependencies": { + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "listr": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", + "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "cli-truncate": "0.2.1", + "figures": "1.7.0", + "indent-string": "2.1.0", + "is-observable": "0.2.0", + "is-promise": "2.1.0", + "is-stream": "1.1.0", + "listr-silent-renderer": "1.1.1", + "listr-update-renderer": "0.4.0", + "listr-verbose-renderer": "0.4.1", + "log-symbols": "1.0.2", + "log-update": "1.0.2", + "ora": "0.2.3", + "p-map": "1.2.0", + "rxjs": "5.5.10", + "stream-to-observable": "0.2.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz", + "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "cli-truncate": "0.2.1", + "elegant-spinner": "1.0.1", + "figures": "1.7.0", + "indent-string": "3.2.0", + "log-symbols": "1.0.2", + "log-update": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "cli-cursor": "1.0.2", + "date-fns": "1.29.0", + "figures": "1.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.cond": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", + "dev": true + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "3.0.1" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "2.3.0" + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "1.4.0", + "cli-cursor": "1.0.2" + } + }, + "log4js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.5.3.tgz", + "integrity": "sha512-YL/qpTxYtK0iWWbuKCrevDZz5lh+OjyHHD+mICqpjnYGKdNRBvPeh/1uYjkKUemT1CSO4wwLOwphWMpKAnD9kw==", + "dev": true, + "requires": { + "amqplib": "0.5.2", + "axios": "0.15.3", + "circular-json": "0.5.3", + "date-format": "1.2.0", + "debug": "3.1.0", + "hipchat-notifier": "1.1.0", + "loggly": "1.1.1", + "mailgun-js": "0.7.15", + "nodemailer": "2.7.2", + "redis": "2.8.0", + "semver": "5.5.0", + "slack-node": "0.2.0", + "streamroller": "0.7.0" + }, + "dependencies": { + "circular-json": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.3.tgz", + "integrity": "sha512-YlxLOimeIoQGHnMe3kbf8qIV2Bj7uXLbljMPRguNT49GmSAzooNfS9EJ91rSJKbLBOOzM5agvtx0WyechZN/Hw==", + "dev": true + } + } + }, + "loggly": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz", + "integrity": "sha1-Cg/B0/o6XsRP3HuJe+uipGlc6+4=", + "dev": true, + "optional": true, + "requires": { + "json-stringify-safe": "5.0.1", + "request": "2.75.0", + "timespan": "2.3.0" + }, + "dependencies": { + "form-data": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz", + "integrity": "sha1-bwrrrcxdoWwT4ezBETfYX5uIOyU=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true, + "optional": true + }, + "request": { + "version": "2.75.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.75.0.tgz", + "integrity": "sha1-0rgmiihtoT6qXQGt9dGMyQ9lfZM=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.7.0", + "bl": "1.1.2", + "caseless": "0.11.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.0.0", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "node-uuid": "1.4.8", + "oauth-sign": "0.8.2", + "qs": "6.2.3", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.4.3" + } + } + } + }, + "longest-streak": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.2.tgz", + "integrity": "sha512-TmYTeEYxiAmSVdpbnQDXGtvYOIRsCMg89CVZzwzc2o7GFL1CjoiRPjH5ec0NFAVlAx3fVof9dX/t6KKRAo2OWA==", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "requires": { + "es5-ext": "0.10.42" + } + }, + "mailcomposer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz", + "integrity": "sha1-DhxEsqB890DuF9wUm6AJ8Zyt/rQ=", + "dev": true, + "optional": true, + "requires": { + "buildmail": "4.0.1", + "libmime": "3.0.0" + } + }, + "mailgun-js": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.7.15.tgz", + "integrity": "sha1-7jZqINrGTDwVwD1sGz4O15UlKrs=", + "dev": true, + "optional": true, + "requires": { + "async": "2.1.5", + "debug": "2.2.0", + "form-data": "2.1.4", + "inflection": "1.10.0", + "is-stream": "1.1.0", + "path-proxy": "1.0.0", + "proxy-agent": "2.0.0", + "q": "1.4.1", + "tsscmp": "1.0.5" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "optional": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true, + "optional": true + } + } + }, + "make-error": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", + "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "1.3.4" + } + }, + "make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "markdown-escapes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.1.tgz", + "integrity": "sha1-GZTfLTr0gR3lmmcUk0wrIpJzRRg=", + "dev": true + }, + "markdown-table": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.1.tgz", + "integrity": "sha1-Sz3ToTPRUYuO8NvHCb8qG0gkvIw=", + "dev": true + }, + "mathml-tag-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.0.1.tgz", + "integrity": "sha1-jUEmgWi/htEQK5gQnijlMeejRXg=", + "dev": true + }, + "mdast-util-compact": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.1.tgz", + "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=", + "dev": true, + "requires": { + "unist-util-modify-children": "1.1.1", + "unist-util-visit": "1.3.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "memoizee": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.12.tgz", + "integrity": "sha512-sprBu6nwxBWBvBOh5v2jcsGqiGLlL2xr2dLub3vR8dnE8YB17omwtm/0NSHl8jjNbcsJd5GMWJAnTSVe/O0Wfg==", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-weak-map": "2.0.2", + "event-emitter": "0.3.5", + "is-promise": "2.1.0", + "lru-queue": "0.1.0", + "next-tick": "1.0.0", + "timers-ext": "0.1.5" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.7", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "requires": { + "mime-db": "1.33.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.9" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "natives": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", + "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", + "dev": true, + "optional": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.5", + "request": "2.79.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-sass": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", + "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", + "dev": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.1", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.10.0", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.79.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0", + "true-case-path": "1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "requires": { + "globule": "1.2.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.5", + "minimatch": "3.0.4" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "node-version": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.1.0.tgz", + "integrity": "sha512-t1V2RFiaTavaW3jtQO0A2nok6k7/Gghuvx2rjvICuT0B0dYaObBQ4U0xHL+ZTPFZodt1LMYG2Vi2nypfz4/AJg==", + "dev": true + }, + "nodemailer": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz", + "integrity": "sha1-8kLmSa7q45tsftdA73sGHEBNMPk=", + "dev": true, + "optional": true, + "requires": { + "libmime": "3.0.0", + "mailcomposer": "4.0.1", + "nodemailer-direct-transport": "3.3.2", + "nodemailer-shared": "1.1.0", + "nodemailer-smtp-pool": "2.8.2", + "nodemailer-smtp-transport": "2.7.2", + "socks": "1.1.9" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true, + "optional": true + }, + "socks": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz", + "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=", + "dev": true, + "optional": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + } + } + } + }, + "nodemailer-direct-transport": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz", + "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=", + "dev": true, + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-fetch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", + "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=", + "dev": true + }, + "nodemailer-shared": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", + "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=", + "dev": true, + "requires": { + "nodemailer-fetch": "1.6.0" + } + }, + "nodemailer-smtp-pool": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz", + "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=", + "dev": true, + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-smtp-transport": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz", + "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=", + "dev": true, + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-wellknown": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz", + "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=", + "dev": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, + "npm-path": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", + "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", + "dev": true, + "requires": { + "which": "1.3.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", + "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "dev": true, + "requires": { + "commander": "2.15.1", + "npm-path": "2.0.4", + "which": "1.3.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "1.0.1", + "array-slice": "1.1.0", + "for-own": "1.0.0", + "isobject": "3.0.1" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "1.0.0", + "make-iterator": "1.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + } + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "cli-cursor": "1.0.2", + "cli-spinners": "0.1.2", + "object-assign": "4.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "requires": { + "end-of-stream": "0.1.5", + "sequencify": "0.0.7", + "stream-consume": "0.1.0" + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pac-proxy-agent": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz", + "integrity": "sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ==", + "dev": true, + "optional": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1", + "get-uri": "2.0.1", + "http-proxy-agent": "1.0.0", + "https-proxy-agent": "1.0.0", + "pac-resolver": "2.0.0", + "raw-body": "2.3.2", + "socks-proxy-agent": "2.1.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "pac-resolver": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz", + "integrity": "sha1-mbiNLxk/ve78HJpSnB8yYKtSd80=", + "dev": true, + "optional": true, + "requires": { + "co": "3.0.6", + "degenerator": "1.0.4", + "ip": "1.0.1", + "netmask": "1.0.6", + "thunkify": "2.1.2" + }, + "dependencies": { + "co": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/co/-/co-3.0.6.tgz", + "integrity": "sha1-FEXyJsXrlWE45oyawwFn6n0ua9o=", + "dev": true, + "optional": true + } + } + }, + "parse-entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz", + "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=", + "dev": true, + "requires": { + "character-entities": "1.2.1", + "character-entities-legacy": "1.1.1", + "character-reference-invalid": "1.1.1", + "is-alphanumerical": "1.0.1", + "is-decimal": "1.0.1", + "is-hexadecimal": "1.0.1" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "1.0.0", + "map-cache": "0.2.2", + "path-root": "0.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "dev": true, + "requires": { + "process": "0.11.10", + "util": "0.10.3" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-proxy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz", + "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=", + "dev": true, + "optional": true, + "requires": { + "inflection": "1.3.8" + }, + "dependencies": { + "inflection": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz", + "integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4=", + "dev": true, + "optional": true + } + } + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "0.1.2" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "load-json-file": "4.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.1" + } + } + } + }, + "pkg-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", + "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", + "dev": true, + "requires": { + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + } + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "requires": { + "ansi-cyan": "0.1.1", + "ansi-red": "0.1.1", + "arr-diff": "1.1.0", + "arr-union": "2.1.0", + "extend-shallow": "1.1.4" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-slice": "0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + } + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "6.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.17.tgz", + "integrity": "sha512-Bl1nybsSzWYbP8O4gAVD8JIjZIul9hLNOPTGBIlVmZNUnNAGL+W0cpYWzVwfImZOwumct4c1SDvSbncVWKtXUw==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.2.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "postcss-html": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.12.0.tgz", + "integrity": "sha512-KxKUpj7AY7nlCbLcTOYxdfJnGE7QFAfU2n95ADj1Q90RM/pOLdz8k3n4avOyRFs7MDQHcRzJQWM1dehCwJxisQ==", + "dev": true, + "requires": { + "htmlparser2": "3.9.2", + "remark": "8.0.0", + "unist-util-find-all-after": "1.0.1" + } + }, + "postcss-less": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.3.tgz", + "integrity": "sha512-WS0wsQxRm+kmN8wEYAGZ3t4lnoNfoyx9EJZrhiPR1K0lMHR0UNWnz52Ya5QRXChHtY75Ef+kDc05FpnBujebgw==", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.3", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "postcss-reporter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-5.0.0.tgz", + "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "lodash": "4.17.5", + "log-symbols": "2.2.0", + "postcss": "6.0.17" + } + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "postcss-safe-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-3.0.1.tgz", + "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=", + "dev": true, + "requires": { + "postcss": "6.0.17" + } + }, + "postcss-sass": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.2.0.tgz", + "integrity": "sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg==", + "dev": true, + "requires": { + "gonzales-pe": "4.2.3", + "postcss": "6.0.17" + } + }, + "postcss-scss": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.3.tgz", + "integrity": "sha512-N2ZPDOV5PGEGVwdiB7b1QppxKkmkHodNWkemja7PV+/mHqbUlA6ZcYRreden5Ag5nwBBX8/aRE7lfg1xjdszyg==", + "dev": true, + "requires": { + "postcss": "6.0.17" + } + }, + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "4.2.0", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "postcss-sorting": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-3.1.0.tgz", + "integrity": "sha512-YCPTcJwGIInF1LpMD1lIYvMHTGUL4s97o/OraA6eKvoauhhk6vjwOWDDjm6uRKqug/kyDPMKEzmYZ6FtW6RDgw==", + "dev": true, + "requires": { + "lodash": "4.17.5", + "postcss": "6.0.17" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "2.0.6" + } + }, + "promise-polyfill": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", + "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=", + "dev": true + }, + "prop-types": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", + "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "proxy-agent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz", + "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=", + "dev": true, + "optional": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1", + "http-proxy-agent": "1.0.0", + "https-proxy-agent": "1.0.0", + "lru-cache": "2.6.5", + "pac-proxy-agent": "1.1.0", + "socks-proxy-agent": "2.1.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "lru-cache": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", + "integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U=", + "dev": true, + "optional": true + } + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "optional": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.5.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + }, + "dependencies": { + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + } + } + }, + "redis": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", + "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", + "dev": true, + "optional": true, + "requires": { + "double-ended-queue": "2.1.0-0", + "redis-commands": "1.3.5", + "redis-parser": "2.6.0" + } + }, + "redis-commands": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz", + "integrity": "sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==", + "dev": true, + "optional": true + }, + "redis-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", + "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=", + "dev": true, + "optional": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1" + } + }, + "remark": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-8.0.0.tgz", + "integrity": "sha512-K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw==", + "dev": true, + "requires": { + "remark-parse": "4.0.0", + "remark-stringify": "4.0.0", + "unified": "6.1.6" + } + }, + "remark-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-4.0.0.tgz", + "integrity": "sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==", + "dev": true, + "requires": { + "collapse-white-space": "1.0.3", + "is-alphabetical": "1.0.1", + "is-decimal": "1.0.1", + "is-whitespace-character": "1.0.1", + "is-word-character": "1.0.1", + "markdown-escapes": "1.0.1", + "parse-entities": "1.1.1", + "repeat-string": "1.6.1", + "state-toggle": "1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "1.1.0", + "unherit": "1.1.0", + "unist-util-remove-position": "1.1.1", + "vfile-location": "2.0.2", + "xtend": "4.0.1" + } + }, + "remark-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-4.0.0.tgz", + "integrity": "sha512-xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w==", + "dev": true, + "requires": { + "ccount": "1.0.2", + "is-alphanumeric": "1.0.0", + "is-decimal": "1.0.1", + "is-whitespace-character": "1.0.1", + "longest-streak": "2.0.2", + "markdown-escapes": "1.0.1", + "markdown-table": "1.1.1", + "mdast-util-compact": "1.0.1", + "parse-entities": "1.1.1", + "repeat-string": "1.6.1", + "state-toggle": "1.0.0", + "stringify-entities": "1.3.1", + "unherit": "1.1.0", + "xtend": "4.0.1" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "replacestream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1", + "readable-stream": "2.3.3" + } + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.7.0", + "caseless": "0.11.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.4.3", + "uuid": "3.2.1" + } + }, + "requestretry": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.13.0.tgz", + "integrity": "sha512-Lmh9qMvnQXADGAQxsXHP4rbgO6pffCfuR8XUBdP9aitJcLQJxhp7YZK4xAVYXnPJ5E52mwrfiKQtKonPL8xsmg==", + "dev": true, + "optional": true, + "requires": { + "extend": "3.0.1", + "lodash": "4.17.5", + "request": "2.79.0", + "when": "3.7.8" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz", + "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } + }, + "requirejs": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.5.tgz", + "integrity": "sha512-svnO+aNcR/an9Dpi44C7KSAy5fFGLtmPbaaCeQaklUz8BQhS64tWWIIlvEA5jrWICzlO/X9KSzSeXFnZdBu8nw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "global-modules": "1.0.0" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "1.1.1", + "onetime": "1.1.0" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "rxjs": { + "version": "5.5.10", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", + "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + }, + "dependencies": { + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.5", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + } + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "2.4.3", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "semistandard": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/semistandard/-/semistandard-12.0.1.tgz", + "integrity": "sha512-+FBRXBCi8GC1Nivc4ruw2KXER31bE1lrNyESo7prn2Sv9I9+H/Iqpt0NOtlV/GUxq34AgJwJViBUpA3/PUGqOw==", + "dev": true, + "requires": { + "eslint": "4.18.2", + "eslint-config-semistandard": "12.0.1", + "eslint-config-standard": "11.0.0", + "eslint-config-standard-jsx": "5.0.0", + "eslint-plugin-import": "2.8.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.6.0", + "eslint-plugin-react": "7.6.1", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "dev": true, + "requires": { + "to-object-path": "0.3.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slack-node": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz", + "integrity": "sha1-3kuN3aqLeT9h29KTgQT9q/N9+jA=", + "dev": true, + "optional": true, + "requires": { + "requestretry": "1.13.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "smart-buffer": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", + "dev": true + }, + "smtp-connection": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", + "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=", + "dev": true, + "requires": { + "httpntlm": "1.6.1", + "nodemailer-shared": "1.1.0" + } + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + }, + "dependencies": { + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + } + } + }, + "socket.io": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", + "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "engine.io": "3.1.5", + "socket.io-adapter": "1.1.1", + "socket.io-client": "2.0.4", + "socket.io-parser": "3.1.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", + "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.6.9", + "engine.io-client": "3.1.6", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "3.1.3", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", + "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "3.1.0", + "has-binary2": "1.0.2", + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "socks": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + } + } + }, + "socks-proxy-agent": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz", + "integrity": "sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw==", + "dev": true, + "requires": { + "agent-base": "2.1.1", + "extend": "3.0.1", + "socks": "1.1.10" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "specificity": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz", + "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "staged-git-files": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.0.0.tgz", + "integrity": "sha1-zbhHg3wfzFLAioctSIPMCHdmioA=", + "dev": true + }, + "standard-engine": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", + "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", + "dev": true, + "requires": { + "deglob": "2.1.0", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" + }, + "dependencies": { + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "state-toggle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.0.tgz", + "integrity": "sha1-0g+aYWu08MO5i5GSLSW2QKorxCU=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "dev": true + }, + "stream-to-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", + "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", + "dev": true, + "requires": { + "any-observable": "0.2.0" + } + }, + "streamroller": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", + "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", + "dev": true, + "requires": { + "date-format": "1.2.0", + "debug": "3.1.0", + "mkdirp": "0.5.1", + "readable-stream": "2.3.3" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringify-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.1.tgz", + "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=", + "dev": true, + "requires": { + "character-entities-html4": "1.1.1", + "character-entities-legacy": "1.1.1", + "is-alphanumerical": "1.0.1", + "is-hexadecimal": "1.0.1" + } + }, + "stringify-object": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.2.tgz", + "integrity": "sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "2.0.1", + "is-obj": "1.0.1", + "is-regexp": "1.0.0" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "stylelint": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-8.4.0.tgz", + "integrity": "sha512-56hPH5mTFnk8LzlEuTWq0epa34fHuS54UFYQidBOFt563RJBNi1nz1F2HK2MoT1X1waq47milvRsRahFCCJs/Q==", + "dev": true, + "requires": { + "autoprefixer": "7.2.6", + "balanced-match": "1.0.0", + "chalk": "2.3.0", + "cosmiconfig": "3.1.0", + "debug": "3.1.0", + "execall": "1.0.0", + "file-entry-cache": "2.0.0", + "get-stdin": "5.0.1", + "globby": "7.1.1", + "globjoin": "0.1.4", + "html-tags": "2.0.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "known-css-properties": "0.5.0", + "lodash": "4.17.5", + "log-symbols": "2.2.0", + "mathml-tag-names": "2.0.1", + "meow": "4.0.0", + "micromatch": "2.3.11", + "normalize-selector": "0.2.0", + "pify": "3.0.0", + "postcss": "6.0.17", + "postcss-html": "0.12.0", + "postcss-less": "1.1.3", + "postcss-media-query-parser": "0.2.3", + "postcss-reporter": "5.0.0", + "postcss-resolve-nested-selector": "0.1.1", + "postcss-safe-parser": "3.0.1", + "postcss-sass": "0.2.0", + "postcss-scss": "1.0.3", + "postcss-selector-parser": "3.1.1", + "postcss-value-parser": "3.3.0", + "resolve-from": "4.0.0", + "specificity": "0.3.2", + "string-width": "2.1.1", + "style-search": "0.1.0", + "sugarss": "1.0.1", + "svg-tags": "1.0.0", + "table": "4.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" + } + }, + "cosmiconfig": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-3.1.0.tgz", + "integrity": "sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.10.0", + "parse-json": "3.0.0", + "require-from-string": "2.0.1" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "glob": "7.1.2", + "ignore": "3.3.7", + "pify": "3.0.0", + "slash": "1.0.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.1" + } + } + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.0.tgz", + "integrity": "sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw==", + "dev": true, + "requires": { + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist": "1.2.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "parse-json": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz", + "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "3.0.0" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "3.2.0", + "strip-indent": "2.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + } + } + }, + "stylelint-config-sass-guidelines": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-4.2.0.tgz", + "integrity": "sha512-wbcz+ghAQMZG2vd5SLNkz+yEt49l0EEzfVPyOUHOsWC48vJpvCanGkZcBQhJcDjOq/f27h7JFlN+wFqJz0AxYA==", + "dev": true + }, + "stylelint-order": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-0.8.1.tgz", + "integrity": "sha512-8mp1P2wnI9XShYXVXDsxVigE2eXnc0C2O4ktbwUvTBwjCP4xZskIbUVxp1evSG3OK4R7hXVNl/2BnJCZkrcc/w==", + "dev": true, + "requires": { + "lodash": "4.17.5", + "postcss": "6.0.17", + "postcss-sorting": "3.1.0" + } + }, + "stylelint-scss": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-2.5.0.tgz", + "integrity": "sha512-+joZpza5nQxAyGwzRMancFEl0EH9+1Vy88YzBghRMS0wHulzDPE9fEkBi6ZOlz+I3tYIBI4x9NbqO5/LkbeE3Q==", + "dev": true, + "requires": { + "lodash": "4.17.5", + "postcss-media-query-parser": "0.2.3", + "postcss-resolve-nested-selector": "0.1.1", + "postcss-selector-parser": "3.1.1", + "postcss-value-parser": "3.3.0" + } + }, + "sugarss": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-1.0.1.tgz", + "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==", + "dev": true, + "requires": { + "postcss": "6.0.17" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.0", + "lodash": "4.17.5", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "textextensions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", + "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", + "dev": true, + "optional": true + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "1.0.2" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-ext": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", + "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", + "dev": true, + "requires": { + "es5-ext": "0.10.42", + "next-tick": "1.0.0" + } + }, + "timespan": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", + "dev": true, + "optional": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-trailing-lines": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz", + "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=", + "dev": true + }, + "trough": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.1.tgz", + "integrity": "sha1-qf2LA5Swro//guBjOgo2zK1bX4Y=", + "dev": true + }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "dev": true, + "requires": { + "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.18" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", + "dev": true + }, + "uglify-js": { + "version": "3.3.22", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.22.tgz", + "integrity": "sha512-tqw96rL6/BG+7LM5VItdhDjTQmL5zG/I0b2RqWytlgeHe2eydZHuBHdA9vuGpCDhH/ZskNGcqDhivoR2xt8RIw==", + "dev": true, + "requires": { + "commander": "2.15.1", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "dev": true + }, + "unherit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz", + "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "xtend": "4.0.1" + } + }, + "unified": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.1.6.tgz", + "integrity": "sha512-pW2f82bCIo2ifuIGYcV12fL96kMMYgw7JKVEgh7ODlrM9rj6vXSY3BV+H6lCcv1ksxynFf582hwWLnA1qRFy4w==", + "dev": true, + "requires": { + "bail": "1.0.2", + "extend": "3.0.1", + "is-plain-obj": "1.1.0", + "trough": "1.0.1", + "vfile": "2.3.0", + "x-is-function": "1.0.4", + "x-is-string": "0.1.0" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "unist-util-find-all-after": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.1.tgz", + "integrity": "sha1-TlUSq/734GFnga7Pex7XUcAK+Qg=", + "dev": true, + "requires": { + "unist-util-is": "2.1.1" + } + }, + "unist-util-is": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.1.tgz", + "integrity": "sha1-DDEmKeP5YMZukx6BLT2A53AQlHs=", + "dev": true + }, + "unist-util-modify-children": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.1.tgz", + "integrity": "sha1-ZtfmpEnm9nIguXarPLi166w55R0=", + "dev": true, + "requires": { + "array-iterate": "1.1.1" + } + }, + "unist-util-remove-position": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz", + "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=", + "dev": true, + "requires": { + "unist-util-visit": "1.3.0" + } + }, + "unist-util-stringify-position": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.1.tgz", + "integrity": "sha1-PMvcU2ee7W7PN3fdf14yKcG2qjw=", + "dev": true + }, + "unist-util-visit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.3.0.tgz", + "integrity": "sha512-9ntYcxPFtl44gnwXrQKZ5bMqXMY0ZHzUpqMFiU4zcc8mmf/jzYm8GhYgezuUlX4cJIM1zIDYaO6fG/fI+L6iiQ==", + "dev": true, + "requires": { + "unist-util-is": "2.1.1" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "useragent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", + "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", + "dev": true, + "requires": { + "lru-cache": "2.2.4", + "tmp": "0.0.33" + }, + "dependencies": { + "lru-cache": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", + "dev": true + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true + }, + "uws": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz", + "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==", + "dev": true, + "optional": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "dev": true, + "requires": { + "is-buffer": "1.1.6", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "1.1.1", + "vfile-message": "1.0.0" + }, + "dependencies": { + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + } + } + }, + "vfile-location": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.2.tgz", + "integrity": "sha1-02dcWch3SY5JK0dW/2Xkrxp1IlU=", + "dev": true + }, + "vfile-message": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.0.tgz", + "integrity": "sha512-HPREhzTOB/sNDc9/Mxf8w0FmHnThg5CRSJdR9VRFkD2riqYWs+fuXlj5z8mIpv2LrD7uU41+oPWFOL4Mjlf+dw==", + "dev": true, + "requires": { + "unist-util-stringify-position": "1.1.1" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "requires": { + "defaults": "1.0.3", + "glob-stream": "3.1.18", + "glob-watcher": "0.0.6", + "graceful-fs": "3.0.11", + "mkdirp": "0.5.1", + "strip-bom": "1.0.0", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "1.1.1" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "1.0.0", + "is-utf8": "0.2.1" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "dev": true + }, + "when": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", + "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", + "dev": true, + "optional": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + }, + "x-is-function": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz", + "integrity": "sha1-XSlNw9Joy90GJYDgxd93o5HR+h4=", + "dev": true + }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", + "dev": true + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "dev": true, + "optional": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + } + } +}