From 14d170f3803621d2da676c748b904febfceeb717 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Wed, 17 Apr 2024 17:17:25 +0200 Subject: [PATCH 01/26] feat: create zh-multiselect component --- .../zh-multiselect.component.html | 45 +++++++++ .../zh-multiselect.component.scss | 96 +++++++++++++++++++ .../zh-multiselect.component.ts | 28 ++++++ frontend/app/zh-details/zh-details.module.ts | 3 + frontend/app/zh-search/zh-search.module.ts | 3 +- 5 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html create mode 100644 frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.scss create mode 100644 frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts diff --git a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html new file mode 100644 index 00000000..3cbb0152 --- /dev/null +++ b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html @@ -0,0 +1,45 @@ +{{ label }} + + +
+ + +
+
+ +
+ +
{{ item[keyLabel] }}
+
+
+
\ No newline at end of file diff --git a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.scss b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.scss new file mode 100644 index 00000000..7e9f24a7 --- /dev/null +++ b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.scss @@ -0,0 +1,96 @@ +$primary: #219653; +$primary-darken: #156035; +$primary-lighten: #EFFCF4; +$primary-text: #fff; + +$gray-lighten: #F5F5F5; +$gray-darken: #dcdcdc; +.Multiselect { + color: $primary !important; + ::ng-deep .ng-value-container { + max-height: 200px; + overflow: auto; + } + + ::ng-deep &.ng-select-disabled > .ng-select-container { + background-color: $gray-darken !important; + max-height: 200px; + } + + .MultiselectHeader{ + display: flex; + flex-flow: row nowrap; + justify-content: space-between; + max-width: 100%; + overflow: hidden; + max-height: 24px; + &__search{ + &::placeholder { + opacity: 0.5; + } + max-width: 60%; + border: none; + &:focus { + outline: none; + } + } + &__selectAll{ + white-space: nowrap; + max-height: 24px + } + + } + ::ng-deep .ng-input { + opacity: 0 !important; + } + ::ng-deep .ng-value { + max-width: 90%; + padding-left: 5px; + padding-right: 5px; + background-color: $primary !important; + color: $primary-text !important; + } + // Chip items + &--multiple{ + ::ng-deep .ng-value { + display: flex; + flex-flow: row nowrap; + justify-content: center; + .ng-value-icon{ + align-self: center; + } + .ng-value-icon:hover{ + background-color: $primary !important; + color: $primary-darken !important; + } + .ng-value-label{ + word-wrap: whitespace; + white-space: normal; + } + } + } + + // Option + ::ng-deep .ng-option:hover, + ::ng-deep .ng-option.ng-option-selected:hover { + background-color: $gray-lighten !important; + } + ::ng-deep .ng-option.ng-option-selected { + background-color: $primary-lighten !important; + } + + .MultiselectOptionItem { + display: flex; + flex: row nowrap; + column-gap: 10px; + input[type="checkbox"] { + accent-color: $primary !important; + } + + &__text { + max-width: 80%; + word-wrap: break-all; + white-space: normal; + } + } +} \ No newline at end of file diff --git a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts new file mode 100644 index 00000000..8a080854 --- /dev/null +++ b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts @@ -0,0 +1,28 @@ +import { Component, OnInit, Input } from '@angular/core'; +import { MultiSelectComponent } from '@geonature_common/form/multiselect/multiselect.component'; + +@Component({ + selector: 'zh-multiselect', + templateUrl: './zh-multiselect.component.html', + styleUrls: ['./zh-multiselect.component.scss'], +}) +export class ZHMultiSelectComponent extends MultiSelectComponent implements OnInit { + /** + */ + @Input() multiple: boolean; + constructor() { + super() + this.multiple = true; + } + ngOnInit() { + super.ngOnInit() + } + + public selectAllFiltered(select: any) { + for (const item of select.itemsList.filteredItems) { + select.select(item) + } + // close popup + select.close(); + } +} diff --git a/frontend/app/zh-details/zh-details.module.ts b/frontend/app/zh-details/zh-details.module.ts index cce5f240..cae41aec 100644 --- a/frontend/app/zh-details/zh-details.module.ts +++ b/frontend/app/zh-details/zh-details.module.ts @@ -16,6 +16,7 @@ import { StatutsComponent } from './statuts/statuts.component'; import { CollapseComponent } from '../commonComponents/collapse/collapse.component'; import { TableComponent } from '../commonComponents/table/table.component'; import { LabelComponent } from '../commonComponents/label/label.component'; +import { ZHMultiSelectComponent } from '../commonComponents/zh-multiselect/zh-multiselect.component'; import { HeaderComponent } from './header/header.component'; import { DeleteModalComponent } from '../commonComponents/delete-modal/delete-modal.component'; import { ImageTableComponent } from '../commonComponents/imageTable/image-table.component'; @@ -40,6 +41,7 @@ const routes: Routes = [{ path: 'zhDetails/:id', component: ZhDetailsComponent } CollapseComponent, TableComponent, LabelComponent, + ZHMultiSelectComponent, HeaderComponent, ImageTableComponent, DeleteModalComponent, @@ -52,6 +54,7 @@ const routes: Routes = [{ path: 'zhDetails/:id', component: ZhDetailsComponent } ImageTableComponent, DeleteModalComponent, LabelComponent, + ZHMultiSelectComponent ], }) export class ZhDetailsModule {} diff --git a/frontend/app/zh-search/zh-search.module.ts b/frontend/app/zh-search/zh-search.module.ts index 4ce03d9a..0fb0736e 100644 --- a/frontend/app/zh-search/zh-search.module.ts +++ b/frontend/app/zh-search/zh-search.module.ts @@ -8,6 +8,7 @@ import { ZhSearchComponent } from './zh-search.component'; import { ZhDetailsModule } from '../zh-details/zh-details.module'; import { TableComponent } from '../commonComponents/table/table.component'; import { LabelComponent } from '../commonComponents/label/label.component'; +import { ZHMultiSelectComponent } from '../commonComponents/zh-multiselect/zh-multiselect.component'; import { ZhSearchCodeComponent } from './zh-search-items/zh-search-code/zh-search-code.component'; import { ZhSearchEnsembleComponent } from './zh-search-items/zh-search-ensemble/zh-search-ensemble.component'; import { ZhSearchAreaComponent } from './zh-search-items/zh-search-superficie/zh-search-area.component'; @@ -37,6 +38,6 @@ const routes: Routes = [{ path: 'search', component: ZhSearchComponent }]; ZhAdvancedSearchModule, ZhHierarchySearchModule, ], - exports: [TableComponent, LabelComponent, ZhSearchComponent, AngularMultiSelectModule], + exports: [AngularMultiSelectModule, LabelComponent, TableComponent, ZHMultiSelectComponent, ZhSearchComponent], }) export class ZhSearchModule {} From 1dfc1fedf36b40e4abd84433282780da0d366804 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 13:06:29 +0200 Subject: [PATCH 02/26] feat: adjust search input --- .../zh-search-input.component.html | 27 +++++-------------- .../zh-search-input.component.ts | 2 +- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.html b/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.html index ce053a14..26744170 100644 --- a/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.html +++ b/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.html @@ -3,25 +3,12 @@
- - - - - - - - - - - - - - +
diff --git a/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.ts b/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.ts index cc6cee6f..b785101a 100644 --- a/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.ts +++ b/frontend/app/zh-search/zh-search-items/components/zh-search-input/zh-search-input.component.ts @@ -27,7 +27,7 @@ export class ZhSearchInputComponent implements OnInit { ngOnInit() { this.form.valueChanges.subscribe((x) => { - this.onSelected.emit(x); + this.onSelected.emit([x]); }); } From 4a10c38ebe144e48acd1b9218cf1b72050638834 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Wed, 17 Apr 2024 17:17:47 +0200 Subject: [PATCH 03/26] feat: use zh-multiselect in search-ensemble --- .../zh-search-ensemble.component.html | 12 +++++------- .../zh-search-ensemble.component.ts | 14 -------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.html b/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.html index d7897519..7675a86d 100644 --- a/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.html +++ b/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.html @@ -3,12 +3,10 @@
- - +
diff --git a/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts b/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts index 3ba2fa6b..754d38b6 100644 --- a/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts +++ b/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts @@ -9,22 +9,8 @@ import { FormGroup } from '@angular/forms'; export class ZhSearchEnsembleComponent implements OnInit { @Input() data: any; @Input() form: FormGroup; - public dropdownSettings; constructor() {} ngOnInit() { - this.dropdownSettings = { - enableCheckAll: false, - text: 'Sélectionner', - labelKey: 'name', - primaryKey: 'id_site_space', - searchPlaceholderText: 'Rechercher', - enableSearchFilter: true, - autoPosition: true, - }; - } - - onDeSelectAll() { - this.form.reset(); } } From 78cc4124abb8d39da52e38470f65490c546bc167 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Thu, 18 Apr 2024 11:58:57 +0200 Subject: [PATCH 04/26] feat: use zh-multiselect in search-dependant --- .../zh-search-dependant.component.html | 12 ++++---- .../zh-search-dependant.component.ts | 29 +++++-------------- 2 files changed, 13 insertions(+), 28 deletions(-) diff --git a/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.html b/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.html index 250abbf9..d8e4ed29 100644 --- a/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.html +++ b/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.html @@ -3,12 +3,10 @@
- - +
diff --git a/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.ts b/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.ts index d525fe09..5e9b9d8b 100644 --- a/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.ts +++ b/frontend/app/zh-search/zh-search-items/components/zh-search-dependant/zh-search-dependant.component.ts @@ -20,22 +20,15 @@ export class ZhSearchDependantComponent implements OnInit { } @Output() onSelected = new EventEmitter(); public _inputData: inputDataType[] = null; - public dataForm: FormGroup; - public dropdownSettings = { - enableSearchFilter: true, - text: '', - labelKey: 'name', - primaryKey: 'code', - enableFilterSelectAll: false, - selectAllText: 'Tout sélectionner', - unSelectAllText: 'Tout déselectionner', - searchPlaceholderText: 'Rechercher', - disabled: true, - }; + constructor() {} - ngOnInit() {} + ngOnInit() { + if (!this._inputData || this._inputData.length < 1) { + this.disable() + } + } setData(value) { if (this._inputData != undefined) { @@ -48,16 +41,10 @@ export class ZhSearchDependantComponent implements OnInit { this.disable(); } } - - onDeselectAll() { - this.form.reset(); - } - - //Awkward but taken from the doc : https://cuppalabs.github.io/angular2-multiselect-dropdown/#/disablemode disable() { - this.dropdownSettings = { ...this.dropdownSettings, disabled: true }; + this.form.disable() } enable() { - this.dropdownSettings = { ...this.dropdownSettings, disabled: false }; + this.form.enable() } } From fa6c88c4879e0e0fb271bcd77789989e264a8352 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Thu, 18 Apr 2024 12:09:43 +0200 Subject: [PATCH 05/26] feat: use zh-multiselect in search-sdage component --- .../zh-search-sdage.component.html | 12 +++++------- .../zh-search-sdage/zh-search-sdage.component.ts | 15 --------------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.html b/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.html index b7a0c43d..2d27608d 100644 --- a/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.html +++ b/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.html @@ -3,12 +3,10 @@
- - +
diff --git a/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts b/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts index f94f6959..4fdc90c1 100644 --- a/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts +++ b/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts @@ -10,23 +10,8 @@ export class ZhSearchSDAGEComponent implements OnInit { @Input() data: any; @Input() form: FormGroup; - public dropdownSettings; - constructor() {} ngOnInit() { - this.dropdownSettings = { - enableCheckAll: false, - text: 'Sélectionner', - labelKey: 'mnemonique', - primaryKey: 'id_nomenclature', - searchPlaceholderText: 'Rechercher', - enableSearchFilter: true, - autoPosition: true, - }; - } - - onDeSelectAll() { - this.form.reset(); } } From e12a57f0844a63c7f42d3845f9d6d2a1f249d14f Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Thu, 18 Apr 2024 12:17:20 +0200 Subject: [PATCH 06/26] feat: use zh-multiselect in advanced-search-statuts --- .../zh-advanced-search-statuts.component.html | 36 ++++++++----------- .../zh-advanced-search-statuts.component.ts | 25 ++----------- 2 files changed, 17 insertions(+), 44 deletions(-) diff --git a/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.html b/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.html index 0dd2cda0..207d0e8c 100644 --- a/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.html +++ b/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.html @@ -8,13 +8,11 @@
Statuts et gestion
- - +
@@ -22,13 +20,11 @@
Statuts et gestion
- - +
@@ -36,13 +32,11 @@
Statuts et gestion
- - +
diff --git a/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.ts b/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.ts index 39061c34..5986b6f0 100644 --- a/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.ts +++ b/frontend/app/zh-advanced-search/components/statuts/zh-advanced-search-statuts.component.ts @@ -11,28 +11,7 @@ export class ZhAdvancedSearchStatutsComponent implements OnInit { @Input() plans: []; @Input() strategies: []; @Input() form: FormGroup; - public dropdownSettings: {}; + constructor() {} - - ngOnInit() { - this.dropdownSettings = { - enableCheckAll: false, - text: 'Sélectionner', - labelKey: 'mnemonique', - primaryKey: 'id_nomenclature', - searchPlaceholderText: 'Rechercher', - enableSearchFilter: true, - autoPosition: true, - }; - } - - onDeSelectAllStatuts() { - this.form.get('statuts').reset(); - } - onDeSelectAllPlans() { - this.form.get('plans').reset(); - } - onDeSelectAllStrategies() { - this.form.get('strategies').reset(); - } + ngOnInit() {} } From 14746e04f3e28aa52214f861806c0b7b786211d4 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Thu, 18 Apr 2024 12:28:25 +0200 Subject: [PATCH 07/26] feat: use zh-multiselect in advanced-search-evaluations --- ...advanced-search-evaluations.component.html | 36 ++++++++----------- ...h-advanced-search-evaluations.component.ts | 24 +------------ 2 files changed, 16 insertions(+), 44 deletions(-) diff --git a/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.html b/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.html index f775979f..8a33649e 100644 --- a/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.html +++ b/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.html @@ -8,13 +8,11 @@
Evaluation de l'état fonctionnel de la zone humide et
- - +
@@ -23,13 +21,11 @@
Evaluation de l'état fonctionnel de la zone humide et
- - +
@@ -37,13 +33,11 @@
Evaluation de l'état fonctionnel de la zone humide et
- - +
diff --git a/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.ts b/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.ts index dd2e962c..2a4023ae 100644 --- a/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.ts +++ b/frontend/app/zh-advanced-search/components/evaluations/zh-advanced-search-evaluations.component.ts @@ -12,29 +12,7 @@ export class ZhAdvancedSearchEvaluationsComponent implements OnInit { @Input() bios: []; @Input() menaces: []; - public dropdownSettings: {}; constructor() {} - ngOnInit() { - this.dropdownSettings = { - enableCheckAll: false, - text: 'Sélectionner', - labelKey: 'mnemonique', - primaryKey: 'id_nomenclature', - searchPlaceholderText: 'Rechercher', - enableSearchFilter: true, - autoPosition: false, - position: 'bottom', - }; - } - - onDeSelectAllHydro() { - this.form.get('hydros').reset(); - } - onDeSelectAllBio() { - this.form.get('bios').reset(); - } - onDeSelectAllMenaces() { - this.form.get('menaces').reset(); - } + ngOnInit() {} } From d8d5849aead654f86eaa76dfd202061fc6db81ea Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 15:19:29 +0200 Subject: [PATCH 08/26] feat: add to advanced search --- ...h-advanced-search-fonctions.component.html | 37 ++++++++----------- .../zh-advanced-search-fonctions.component.ts | 31 +--------------- 2 files changed, 18 insertions(+), 50 deletions(-) diff --git a/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.html b/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.html index dc1e3760..8512c0af 100644 --- a/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.html +++ b/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.html @@ -8,13 +8,12 @@
{{ title }}
- - + +
@@ -22,13 +21,11 @@
{{ title }}
- - +
@@ -36,13 +33,11 @@
{{ title }}
- - +
diff --git a/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.ts b/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.ts index ae454473..567444c7 100644 --- a/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.ts +++ b/frontend/app/zh-advanced-search/components/fonctions/zh-advanced-search-fonctions.component.ts @@ -13,37 +13,10 @@ export class ZhAdvancedSearchFonctionsComponent implements OnInit { @Input() title: string = ''; @Input() fonctionLabel: string = 'Fonction'; @Input() form: FormGroup; - public dropdownSettings: {}; - public dropdownSettingsNoCategory: {}; + // public dropdownSettings: {}; + // public dropdownSettingsNoCategory: {}; constructor() {} ngOnInit() { - this.dropdownSettings = { - enableCheckAll: false, - text: 'Sélectionner', - labelKey: 'mnemonique', - primaryKey: 'id_nomenclature', - searchPlaceholderText: 'Rechercher', - enableSearchFilter: true, - position: 'bottom', - autoPosition: false, - }; - this.dropdownSettingsNoCategory = { - enableCheckAll: false, - text: 'Sélectionner', - labelKey: 'mnemonique', - primaryKey: 'id_nomenclature', - autoPosition: false, - }; - } - - onDeSelectAllFcts() { - this.form.get('functions').reset(); - } - onDeSelectAllQual() { - this.form.get('qualifications').reset(); - } - onDeSelectAllConn() { - this.form.get('connaissances').reset(); } } From 301e3e5372bbfa1727ea3e2c2490b826191f49e2 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 15:42:42 +0200 Subject: [PATCH 09/26] feat: zh-multiselect add groupable option --- .../zh-multiselect.component.html | 20 ++++++++++++++++++- .../zh-multiselect.component.ts | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html index 3cbb0152..c80bc860 100644 --- a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html +++ b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html @@ -11,7 +11,11 @@ [formControl]="parentFormControl" (add)="onChange.emit($event)" (remove)="onDelete.emit($event)" - [closeOnSelect]="!multiple"> + [closeOnSelect]="!multiple" + [groupBy]="groupBy" + [selectableGroup]="true" + [selectableGroupAsModel]="false" + >
+ +
+ +
{{ item[groupBy] }}
+
+
Date: Mon, 22 Apr 2024 15:52:53 +0200 Subject: [PATCH 10/26] feat: add to tab-3 --- .../zh-forms/tabs/tab3/zh-form-tab3.component.html | 13 ++++++------- .../zh-forms/tabs/tab3/zh-form-tab3.component.ts | 11 ----------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.html b/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.html index baaf4311..015078c6 100755 --- a/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.html +++ b/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.html @@ -204,14 +204,13 @@
{{ modalTitle }}
Impacts (facteurs influençant l’évolution de la zone) - - + groupBy="category" + /> (); constructor() { super() this.multiple = true; From 53e466c4491499d72e1867471cdeb0baa58ce84f Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 17:07:33 +0200 Subject: [PATCH 12/26] feat: adjust hierarchy zo zh-multiselect --- .../zh-hierarchy-search-table.component.html | 26 +++++++++---------- .../zh-hierarchy-search-table.component.ts | 19 -------------- 2 files changed, 13 insertions(+), 32 deletions(-) diff --git a/frontend/app/zh-hierarchy-search/components/zh-hierarchy-search-table.component.html b/frontend/app/zh-hierarchy-search/components/zh-hierarchy-search-table.component.html index 0edc3174..a1822bd9 100644 --- a/frontend/app/zh-hierarchy-search/components/zh-hierarchy-search-table.component.html +++ b/frontend/app/zh-hierarchy-search/components/zh-hierarchy-search-table.component.html @@ -39,22 +39,22 @@
Rubrique
Attribut
- - +
Connaissance
- - +
Statuts - - + [parentFormControl]="formTab6.controls.protections" + groupBy="category" + keyLabel="mnemonique_status" + />
diff --git a/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.ts b/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.ts index 3df38a8c..8af941a4 100755 --- a/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.ts +++ b/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.ts @@ -725,9 +725,9 @@ export class ZhFormTab6Component implements OnInit { onAddStructure() { // multi select : returns an Array... - const structure = this.formTab6.value.structure[0]; + const structure = this.formTab6.value.structure; if (structure) { - let itemExist = this.managements.some((item) => item.id_org == structure.id_org); + const itemExist = this.managements.some((item) => item.id_org == structure.id_org); if (!itemExist && structure.id_org) { this.managements.push(structure); } From e44254956c41ce4c2f4deec14574bf63467b398e Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 17:08:48 +0200 Subject: [PATCH 14/26] feat: adjust tab7 zo zh-multiselect --- .../tabs/tab7/zh-form-tab7.component.html | 14 ++++++-------- .../zh-forms/tabs/tab7/zh-form-tab7.component.ts | 16 ++-------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/frontend/app/zh-forms/tabs/tab7/zh-form-tab7.component.html b/frontend/app/zh-forms/tabs/tab7/zh-form-tab7.component.html index 00251bca..9e7fd9fb 100755 --- a/frontend/app/zh-forms/tabs/tab7/zh-form-tab7.component.html +++ b/frontend/app/zh-forms/tabs/tab7/zh-form-tab7.component.html @@ -212,14 +212,12 @@
{{ modalTitle }}
Propositions d'actions - - + - + Date: Mon, 22 Apr 2024 17:15:30 +0200 Subject: [PATCH 16/26] feat: placeholder added to zh-multiselect --- .../zh-multiselect/zh-multiselect.component.html | 2 +- .../commonComponents/zh-multiselect/zh-multiselect.component.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html index e70ba0ca..65cee724 100644 --- a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html +++ b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html @@ -4,7 +4,7 @@ [ngClass]="{'Multiselect--multiple': multiple}" [items]="values" [bindLabel]="keyLabel" - placeholder="Sélectionner" + [placeholder]="placeholder" [multiple]="multiple" [clearable]="true" [virtualScroll]="true" diff --git a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts index de92b8e9..b23a28e9 100644 --- a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts +++ b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.ts @@ -11,11 +11,13 @@ export class ZHMultiSelectComponent extends MultiSelectComponent implements OnIn */ @Input() multiple: boolean; @Input() groupBy: string | null; + @Input() placeholder: string; @Output() onOpen = new EventEmitter(); constructor() { super() this.multiple = true; this.groupBy = null; + this.placeholder = "Sélectionner"; } ngOnInit() { super.ngOnInit() From bb76326268554e7bc3345faa8a405d841acbb7f6 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 17:15:41 +0200 Subject: [PATCH 17/26] feat: adjust tab0 to zh-multiselect --- .../zh-forms/tabs/tab0/zh-form-tab0.component.html | 13 ++++++------- .../zh-forms/tabs/tab0/zh-form-tab0.component.ts | 10 ---------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html b/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html index 905781b1..64e44dfa 100755 --- a/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html +++ b/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html @@ -65,13 +65,12 @@
Champs obligatoires
-->
Critères de délimitation de la zone humide - - + Description de l'espace de fonctionnalité
Occupation des sols (Nomenclature Corine Land Cover) - - +
diff --git a/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.ts b/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.ts index 3f25df22..9fbfa066 100755 --- a/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.ts +++ b/frontend/app/zh-forms/tabs/tab3/zh-form-tab3.component.ts @@ -74,7 +74,6 @@ export class ZhFormTab3Component implements OnInit { listCorinBio = []; posted: boolean = false; patchActivity: boolean = false; - dropdownSettings: any; activityForm: FormGroup; modalButtonLabel: string; modalTitle: string; @@ -96,16 +95,6 @@ export class ZhFormTab3Component implements OnInit { ) {} ngOnInit() { - this.dropdownSettings = { - singleSelection: false, - idField: 'id_nomenclature', - textField: 'mnemonique', - searchPlaceholderText: 'Rechercher', - enableCheckAll: false, - allowSearchFilter: true, - maxHeight: 300, - }; - this.activityForm = this.fb.group({ human_activity: [null, Validators.required], localisation: [null, Validators.required], From 46b50948acdf228ddbac2ee17d1c9c0fa2fda55e Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 17:45:45 +0200 Subject: [PATCH 19/26] feat: adjust tab6 to zh-multiselect --- .../tabs/tab6/zh-form-tab6.component.html | 12 +++---- .../tabs/tab6/zh-form-tab6.component.ts | 31 ------------------- 2 files changed, 5 insertions(+), 38 deletions(-) diff --git a/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.html b/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.html index 5a5cd6c8..2ba6b017 100755 --- a/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.html +++ b/frontend/app/zh-forms/tabs/tab6/zh-form-tab6.component.html @@ -470,13 +470,11 @@
{{ modalTitle }}
Type de classement - - + Critères de délimitation de la zone humide
Critères utilisés - - +
Remarque @@ -30,13 +29,11 @@
Critères de délimitation de l'espace de fonctionnali
Critères utilisés - - +
Remarque diff --git a/frontend/app/zh-forms/tabs/tab2/zh-form-tab2.component.ts b/frontend/app/zh-forms/tabs/tab2/zh-form-tab2.component.ts index 76f985f8..321ae0ce 100755 --- a/frontend/app/zh-forms/tabs/tab2/zh-form-tab2.component.ts +++ b/frontend/app/zh-forms/tabs/tab2/zh-form-tab2.component.ts @@ -21,7 +21,6 @@ export class ZhFormTab2Component implements OnInit, AfterViewInit { public formTab2: FormGroup; public critDelim: any; public critDelimFct: any; - public dropdownSettings: any; public submitted: boolean; public posted: boolean; @@ -34,15 +33,6 @@ export class ZhFormTab2Component implements OnInit, AfterViewInit { ) {} ngOnInit() { - this.dropdownSettings = { - singleSelection: false, - idField: 'id_nomenclature', - textField: 'mnemonique', - searchPlaceholderText: 'Rechercher', - enableCheckAll: false, - allowSearchFilter: true, - }; - this.getMetaData(); this.createForm(); } From 23d80e7ce879e98a8f49302c5d07175d4cebc4dd Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 17:53:51 +0200 Subject: [PATCH 21/26] feat: purge ng_multiselect_dropdown --- .../ng-multiselect-dropdown/CHANGELOG.md | 0 .../ng-multiselect-dropdown/README.md | 226 ------ .../bundles/ng-multiselect-dropdown.umd.js | 667 ------------------ .../ng-multiselect-dropdown.umd.js.map | 1 - .../ng-multiselect-dropdown.umd.min.js | 16 - .../ng-multiselect-dropdown.umd.min.js.map | 1 - .../click-outside.directive.d.ts | 12 - .../esm2015/click-outside.directive.js | 33 - .../esm2015/list-filter.pipe.js | 26 - .../esm2015/multiselect.component.js | 346 --------- .../esm2015/multiselect.model.js | 14 - .../esm2015/ng-multiselect-dropdown.js | 8 - .../esm2015/ng-multiselect-dropdown.module.js | 25 - .../esm2015/public_api.js | 3 - .../esm5/click-outside.directive.js | 34 - .../esm5/list-filter.pipe.js | 30 - .../esm5/multiselect.component.js | 367 ---------- .../esm5/multiselect.model.js | 16 - .../esm5/ng-multiselect-dropdown.js | 8 - .../esm5/ng-multiselect-dropdown.module.js | 29 - .../esm5/public_api.js | 3 - .../fesm2015/ng-multiselect-dropdown.js | 434 ------------ .../fesm2015/ng-multiselect-dropdown.js.map | 1 - .../fesm5/ng-multiselect-dropdown.js | 465 ------------ .../fesm5/ng-multiselect-dropdown.js.map | 1 - .../list-filter.pipe.d.ts | 11 - .../multiselect.component.d.ts | 55 -- .../multiselect.model.d.ts | 26 - .../ng-multiselect-dropdown.d.ts | 9 - .../ng-multiselect-dropdown.metadata.json | 1 - .../ng-multiselect-dropdown.module.d.ts | 15 - .../ng-multiselect-dropdown/package.json | 97 --- .../ng-multiselect-dropdown/public_api.d.ts | 3 - .../themes/ng-multiselect-dropdown.theme.scss | 210 ------ .../node_modules/tslib/CopyrightNotice.txt | 15 - frontend/node_modules/tslib/LICENSE.txt | 12 - frontend/node_modules/tslib/README.md | 142 ---- frontend/node_modules/tslib/modules/index.js | 51 -- .../node_modules/tslib/modules/package.json | 3 - frontend/node_modules/tslib/package.json | 37 - .../index.js | 23 - .../package.json | 6 - frontend/node_modules/tslib/tslib.d.ts | 37 - frontend/node_modules/tslib/tslib.es6.html | 1 - frontend/node_modules/tslib/tslib.es6.js | 218 ------ frontend/node_modules/tslib/tslib.html | 1 - frontend/node_modules/tslib/tslib.js | 284 -------- frontend/package-lock.json | 173 ----- frontend/package.json | 1 - 49 files changed, 4197 deletions(-) delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/CHANGELOG.md delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/README.md delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js.map delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js.map delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/click-outside.directive.d.ts delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm2015/click-outside.directive.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm2015/list-filter.pipe.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.component.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.model.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.module.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm2015/public_api.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm5/click-outside.directive.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm5/list-filter.pipe.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.component.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.model.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.module.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/esm5/public_api.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js.map delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js.map delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/list-filter.pipe.d.ts delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/multiselect.component.d.ts delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/multiselect.model.d.ts delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.d.ts delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.metadata.json delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.module.d.ts delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/package.json delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/public_api.d.ts delete mode 100644 frontend/node_modules/ng-multiselect-dropdown/themes/ng-multiselect-dropdown.theme.scss delete mode 100644 frontend/node_modules/tslib/CopyrightNotice.txt delete mode 100644 frontend/node_modules/tslib/LICENSE.txt delete mode 100644 frontend/node_modules/tslib/README.md delete mode 100644 frontend/node_modules/tslib/modules/index.js delete mode 100644 frontend/node_modules/tslib/modules/package.json delete mode 100644 frontend/node_modules/tslib/package.json delete mode 100644 frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js delete mode 100644 frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json delete mode 100644 frontend/node_modules/tslib/tslib.d.ts delete mode 100644 frontend/node_modules/tslib/tslib.es6.html delete mode 100644 frontend/node_modules/tslib/tslib.es6.js delete mode 100644 frontend/node_modules/tslib/tslib.html delete mode 100644 frontend/node_modules/tslib/tslib.js diff --git a/frontend/node_modules/ng-multiselect-dropdown/CHANGELOG.md b/frontend/node_modules/ng-multiselect-dropdown/CHANGELOG.md deleted file mode 100644 index e69de29b..00000000 diff --git a/frontend/node_modules/ng-multiselect-dropdown/README.md b/frontend/node_modules/ng-multiselect-dropdown/README.md deleted file mode 100644 index e8a6b51a..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/README.md +++ /dev/null @@ -1,226 +0,0 @@ -# Angular Multiselect Dropdown - -[![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors-) - - -[![npm version](https://img.shields.io/npm/v/ng-multiselect-dropdown.svg)](https://www.npmjs.com/package/ng-multiselect-dropdown) -[![downloads](https://img.shields.io/npm/dt/ng-multiselect-dropdown.svg)](https://www.npmjs.com/package/ng-multiselect-dropdown) -[![downloads](https://img.shields.io/npm/dm/ng-multiselect-dropdown.svg)](https://www.npmjs.com/package/ng-multiselect-dropdown) - -Angular multiselect dropdown component for web applications. Easy to integrate and use. It can be bind to any custom data source. - -# [Demo](https://nileshpatel17.github.io/ng-multiselect-dropdown/) - -![demo](Screenshots/ng-multiselect-dropdown_v0.1.6.gif) - -## Getting Started - -## Features - -- dropdown with single/multiple selction option -- bind to any custom data source -- search item with custom placeholder text -- limit selection -- select/de-select all items -- custom theme - -### Installation - -``` -npm install ng-multiselect-dropdown -``` - -And then include it in your module (see [app.module.ts](https://github.com/NileshPatel17/ng-multiselect-dropdown/blob/master/src/app/app.module.ts)): - -```ts -import { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown'; -// ... - -@NgModule({ - imports: [ - NgMultiSelectDropDownModule.forRoot() - // ... - ] - // ... -}) -export class AppModule {} -``` - -### Usage - -```ts -import { Component, OnInit } from '@angular/core'; -import { IDropdownSettings } from 'ng-multiselect-dropdown'; - -export class AppComponent implements OnInit { - dropdownList = []; - selectedItems = []; - dropdownSettings = {}; - ngOnInit() { - this.dropdownList = [ - { item_id: 1, item_text: 'Mumbai' }, - { item_id: 2, item_text: 'Bangaluru' }, - { item_id: 3, item_text: 'Pune' }, - { item_id: 4, item_text: 'Navsari' }, - { item_id: 5, item_text: 'New Delhi' } - ]; - this.selectedItems = [ - { item_id: 3, item_text: 'Pune' }, - { item_id: 4, item_text: 'Navsari' } - ]; - this.dropdownSettings:IDropdownSettings = { - singleSelection: false, - idField: 'item_id', - textField: 'item_text', - selectAllText: 'Select All', - unSelectAllText: 'UnSelect All', - itemsShowLimit: 3, - allowSearchFilter: true - }; - } - onItemSelect(item: any) { - console.log(item); - } - onSelectAll(items: any) { - console.log(items); - } -} -``` - -```html - - -``` - -### Settings - -| Setting | Type | Description | Default Value | -| :----------------------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| singleSelection | Boolean | Mode of this component. If set `true` user can select more than one option. | false | -| placeholder | String | Text to be show in the dropdown, when no items are selected. | 'Select' | -| disabled | Boolean | Disable the dropdown | false | -| data | Array | Array of items from which to select. Should be an array of objects with id and `text` properties. You can also use custom properties. In that case you need to map idField and `textField` properties. As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text(no mapping is required) | n/a | -| idField | String | map id field in case of custom array of object | 'id' | -| textField | String | map text field in case of custom array of object | 'text' | -| enableCheckAll | Boolean | Enable the option to select all items in list | false | -| selectAllText | String | Text to display as the label of select all option | Select All | -| unSelectAllText | String | Text to display as the label of unSelect option | UnSelect All | -| allowSearchFilter | Boolean | Enable filter option for the list. | false | -| searchPlaceholderText | String | custom search placeholder | Search | -| clearSearchFilter | Boolean | clear search filter on dropdown close | true | -| maxHeight | Number | Set maximum height of the dropdown list in px. | 197 | -| itemsShowLimit | Number | Limit the number of items to show in the input field. If not set will show all selected. | All | -| limitSelection | Number | Limit the selection of number of items from the dropdown list. Once the limit is reached, all unselected items gets disabled. | none | -| searchPlaceholderText | String | Custom text for the search placeholder text. Default value would be 'Search' | 'Search' | -| noDataAvailablePlaceholderText | String | Custom text when no data is available. | 'No data available' | -| closeDropDownOnSelection | Boolean | Closes the dropdown when item is selected. applicable only in cas of single selection | false | -| defaultOpen | Boolean | open state of dropdown | false | -| allowRemoteDataSearch | Boolean | allow search remote api if no data is present. | false | - - -### Callback Methods - -- `onSelect` - Return the selected item when an item is checked. - Example : (onSelect)="onItemSelect($event)" -- `onSelectAll` - Return the all items. - Example : (onSelectAll)="onSelectAll($event)". -- `onDeSelect` - Return the unselected item when an item is unchecked. - Example : (onDeSelect)="onItemDeSelect($event)" -- `onFilterChange` - Return the key press. - Example : (onFilterChange)="onFilterChange($event)" -- `onDropDownClose`- - Example : (onDropDownClose)="onDropDownClose()" - - -### Custom Theme - -- The component package has a themes folder in node_modules at `ng-multiselet-dropdown\themes\ng-multiselect-dropdown.theme.scss` -- Include the `ng-multiselet-dropdown.theme.css` in `angular-cli.json` (for versions below angular 6) and `angular.json` (for version 6 or more). -- [Refer this file](https://github.com/NileshPatel17/ng-multiselect-dropdown/blob/master/custom-theme.md) on how to add the css file to your angular project. - - - -## Custom Template(in beta): - -### Variables can be used in template - -1. id: return id as number -2. option: return option text. return string -3. isSelected: determine if item is selected or not. returns boolean - -Template for each item -``` - - {{option}} - -``` - -Template for selected item -``` - - {{option}} - -``` - -[Demo](https://codesandbox.io/s/custom-template-uyo0o?file=/src/app/app.component.html) -### Run locally - -- Clone the repository or downlod the .zip,.tar files. -- Run `npm install` -- Run `ng serve` for a dev server -- Navigate to `http://localhost:4200/` - -### Library Build / NPM Package - -Run `yarn build:lib` to build the library and generate an NPM package. The build artifacts will be stored in the dist-lib/ folder. - -## Running unit tests - -Run `yarn test` to execute the unit tests. - -## Development - -This project was generated with Angular CLI version 1.7.1. - -## Contributions - -Contributions are welcome, please open an issue and preferrably file a pull request. - -### Opening Issue - -Please share sample code using codesandbox.com or stackblitz.com to help me re-produce the issue. - -## License - -MIT License. - -## Contributors ✨ - -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - -

Tom Saleeba

💻

Simon Pinfold

💻

Sushil Suthar

💻

Sachin Grover

💻

Mike Roberts

💻

David Sosa

💻
- - - - - -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! diff --git a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js b/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js deleted file mode 100644 index ff359d39..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js +++ /dev/null @@ -1,667 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('@angular/common')) : - typeof define === 'function' && define.amd ? define('ng-multiselect-dropdown', ['exports', '@angular/core', '@angular/forms', '@angular/common'], factory) : - (global = global || self, factory(global['ng-multiselect-dropdown'] = {}, global.ng.core, global.ng.forms, global.ng.common)); -}(this, (function (exports, core, forms, common) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - } - - function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - } - - function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - } - - function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - } - - function __awaiter(thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - } - - function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - } - - function __exportStar(m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - - function __values(o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - } - - function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - } - - function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - } - - function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - } - - function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - } - - function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - } - - function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - } - - function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; - } - - function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; - } - - var ListItem = /** @class */ (function () { - function ListItem(source) { - if (typeof source === 'string' || typeof source === 'number') { - this.id = this.text = source; - this.isDisabled = false; - } - if (typeof source === 'object') { - this.id = source.id; - this.text = source.text; - this.isDisabled = source.isDisabled; - } - } - return ListItem; - }()); - - var ListFilterPipe = /** @class */ (function () { - function ListFilterPipe() { - } - ListFilterPipe.prototype.transform = function (items, filter) { - var _this = this; - if (!items || !filter) { - return items; - } - return items.filter(function (item) { return _this.applyFilter(item, filter); }); - }; - ListFilterPipe.prototype.applyFilter = function (item, filter) { - if (typeof item.text === 'string' && typeof filter.text === 'string') { - return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1); - } - else { - return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1); - } - }; - ListFilterPipe = __decorate([ - core.Pipe({ - name: 'multiSelectFilter', - pure: false - }) - ], ListFilterPipe); - return ListFilterPipe; - }()); - - var DROPDOWN_CONTROL_VALUE_ACCESSOR = { - provide: forms.NG_VALUE_ACCESSOR, - useExisting: core.forwardRef(function () { return MultiSelectComponent; }), - multi: true - }; - var noop = function () { }; - var ɵ0 = noop; - var MultiSelectComponent = /** @class */ (function () { - function MultiSelectComponent(listFilterPipe) { - this.listFilterPipe = listFilterPipe; - this._data = []; - this.selectedItems = []; - this.isDropdownOpen = true; - this._placeholder = "Select"; - this._sourceDataType = null; // to keep note of the source data type. could be array of string/number/object - this._sourceDataFields = []; // store source data fields names - this.filter = new ListItem(this.data); - this.defaultSettings = { - singleSelection: false, - idField: "id", - textField: "text", - disabledField: "isDisabled", - enableCheckAll: true, - selectAllText: "Select All", - unSelectAllText: "UnSelect All", - allowSearchFilter: false, - limitSelection: -1, - clearSearchFilter: true, - maxHeight: 197, - itemsShowLimit: 999999999999, - searchPlaceholderText: "Search", - noDataAvailablePlaceholderText: "No data available", - closeDropDownOnSelection: false, - showSelectedItemsAtTop: false, - defaultOpen: false, - allowRemoteDataSearch: false - }; - this.disabled = false; - this.onFilterChange = new core.EventEmitter(); - this.onDropDownClose = new core.EventEmitter(); - this.onSelect = new core.EventEmitter(); - this.onDeSelect = new core.EventEmitter(); - this.onSelectAll = new core.EventEmitter(); - this.onDeSelectAll = new core.EventEmitter(); - this.onTouchedCallback = noop; - this.onChangeCallback = noop; - } - Object.defineProperty(MultiSelectComponent.prototype, "placeholder", { - set: function (value) { - if (value) { - this._placeholder = value; - } - else { - this._placeholder = "Select"; - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MultiSelectComponent.prototype, "settings", { - set: function (value) { - if (value) { - this._settings = Object.assign(this.defaultSettings, value); - } - else { - this._settings = Object.assign(this.defaultSettings); - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MultiSelectComponent.prototype, "data", { - set: function (value) { - var _this = this; - if (!value) { - this._data = []; - } - else { - var firstItem = value[0]; - this._sourceDataType = typeof firstItem; - this._sourceDataFields = this.getFields(firstItem); - this._data = value.map(function (item) { - return typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[_this._settings.idField], - text: item[_this._settings.textField], - isDisabled: item[_this._settings.disabledField] - }); - }); - } - }, - enumerable: true, - configurable: true - }); - MultiSelectComponent.prototype.onFilterTextChange = function ($event) { - this.onFilterChange.emit($event); - }; - MultiSelectComponent.prototype.onItemClick = function ($event, item) { - if (this.disabled || item.isDisabled) { - return false; - } - var found = this.isSelected(item); - var allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection); - if (!found) { - if (allowAdd) { - this.addSelected(item); - } - } - else { - this.removeSelected(item); - } - if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) { - this.closeDropdown(); - } - }; - MultiSelectComponent.prototype.writeValue = function (value) { - var _this = this; - if (value !== undefined && value !== null && value.length > 0) { - if (this._settings.singleSelection) { - try { - if (value.length >= 1) { - var firstItem = value[0]; - this.selectedItems = [ - typeof firstItem === "string" || typeof firstItem === "number" - ? new ListItem(firstItem) - : new ListItem({ - id: firstItem[this._settings.idField], - text: firstItem[this._settings.textField], - isDisabled: firstItem[this._settings.disabledField] - }) - ]; - } - } - catch (e) { - // console.error(e.body.msg); - } - } - else { - var _data = value.map(function (item) { - return typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[_this._settings.idField], - text: item[_this._settings.textField], - isDisabled: item[_this._settings.disabledField] - }); - }); - if (this._settings.limitSelection > 0) { - this.selectedItems = _data.splice(0, this._settings.limitSelection); - } - else { - this.selectedItems = _data; - } - } - } - else { - this.selectedItems = []; - } - this.onChangeCallback(value); - }; - // From ControlValueAccessor interface - MultiSelectComponent.prototype.registerOnChange = function (fn) { - this.onChangeCallback = fn; - }; - // From ControlValueAccessor interface - MultiSelectComponent.prototype.registerOnTouched = function (fn) { - this.onTouchedCallback = fn; - }; - // Set touched on blur - MultiSelectComponent.prototype.onTouched = function () { - this.closeDropdown(); - this.onTouchedCallback(); - }; - MultiSelectComponent.prototype.trackByFn = function (index, item) { - return item.id; - }; - MultiSelectComponent.prototype.isSelected = function (clickedItem) { - var found = false; - this.selectedItems.forEach(function (item) { - if (clickedItem.id === item.id) { - found = true; - } - }); - return found; - }; - MultiSelectComponent.prototype.isLimitSelectionReached = function () { - return this._settings.limitSelection === this.selectedItems.length; - }; - MultiSelectComponent.prototype.isAllItemsSelected = function () { - // get disabld item count - var filteredItems = this.listFilterPipe.transform(this._data, this.filter); - var itemDisabledCount = filteredItems.filter(function (item) { return item.isDisabled; }).length; - // take disabled items into consideration when checking - if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) { - return false; - } - return filteredItems.length === this.selectedItems.length + itemDisabledCount; - }; - MultiSelectComponent.prototype.showButton = function () { - if (!this._settings.singleSelection) { - if (this._settings.limitSelection > 0) { - return false; - } - // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false; - return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0; - } - else { - // should be disabled in single selection mode - return false; - } - }; - MultiSelectComponent.prototype.itemShowRemaining = function () { - return this.selectedItems.length - this._settings.itemsShowLimit; - }; - MultiSelectComponent.prototype.addSelected = function (item) { - if (this._settings.singleSelection) { - this.selectedItems = []; - this.selectedItems.push(item); - } - else { - this.selectedItems.push(item); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onSelect.emit(this.emittedValue(item)); - }; - MultiSelectComponent.prototype.removeSelected = function (itemSel) { - var _this = this; - this.selectedItems.forEach(function (item) { - if (itemSel.id === item.id) { - _this.selectedItems.splice(_this.selectedItems.indexOf(item), 1); - } - }); - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onDeSelect.emit(this.emittedValue(itemSel)); - }; - MultiSelectComponent.prototype.emittedValue = function (val) { - var _this = this; - var selected = []; - if (Array.isArray(val)) { - val.map(function (item) { - selected.push(_this.objectify(item)); - }); - } - else { - if (val) { - return this.objectify(val); - } - } - return selected; - }; - MultiSelectComponent.prototype.objectify = function (val) { - if (this._sourceDataType === 'object') { - var obj = {}; - obj[this._settings.idField] = val.id; - obj[this._settings.textField] = val.text; - if (this._sourceDataFields.includes(this._settings.disabledField)) { - obj[this._settings.disabledField] = val.isDisabled; - } - return obj; - } - if (this._sourceDataType === 'number') { - return Number(val.id); - } - else { - return val.text; - } - }; - MultiSelectComponent.prototype.toggleDropdown = function (evt) { - evt.preventDefault(); - if (this.disabled && this._settings.singleSelection) { - return; - } - this._settings.defaultOpen = !this._settings.defaultOpen; - if (!this._settings.defaultOpen) { - this.onDropDownClose.emit(); - } - }; - MultiSelectComponent.prototype.closeDropdown = function () { - this._settings.defaultOpen = false; - // clear search text - if (this._settings.clearSearchFilter) { - this.filter.text = ""; - } - this.onDropDownClose.emit(); - }; - MultiSelectComponent.prototype.toggleSelectAll = function () { - if (this.disabled) { - return false; - } - if (!this.isAllItemsSelected()) { - // filter out disabled item first before slicing - this.selectedItems = this.listFilterPipe.transform(this._data, this.filter).filter(function (item) { return !item.isDisabled; }).slice(); - this.onSelectAll.emit(this.emittedValue(this.selectedItems)); - } - else { - this.selectedItems = []; - this.onDeSelectAll.emit(this.emittedValue(this.selectedItems)); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - }; - MultiSelectComponent.prototype.getFields = function (inputData) { - var fields = []; - if (typeof inputData !== "object") { - return fields; - } - // tslint:disable-next-line:forin - for (var prop in inputData) { - fields.push(prop); - } - return fields; - }; - MultiSelectComponent.ctorParameters = function () { return [ - { type: ListFilterPipe } - ]; }; - __decorate([ - core.Input() - ], MultiSelectComponent.prototype, "placeholder", null); - __decorate([ - core.Input() - ], MultiSelectComponent.prototype, "disabled", void 0); - __decorate([ - core.Input() - ], MultiSelectComponent.prototype, "settings", null); - __decorate([ - core.Input() - ], MultiSelectComponent.prototype, "data", null); - __decorate([ - core.Output("onFilterChange") - ], MultiSelectComponent.prototype, "onFilterChange", void 0); - __decorate([ - core.Output("onDropDownClose") - ], MultiSelectComponent.prototype, "onDropDownClose", void 0); - __decorate([ - core.Output("onSelect") - ], MultiSelectComponent.prototype, "onSelect", void 0); - __decorate([ - core.Output("onDeSelect") - ], MultiSelectComponent.prototype, "onDeSelect", void 0); - __decorate([ - core.Output("onSelectAll") - ], MultiSelectComponent.prototype, "onSelectAll", void 0); - __decorate([ - core.Output("onDeSelectAll") - ], MultiSelectComponent.prototype, "onDeSelectAll", void 0); - __decorate([ - core.HostListener("blur") - ], MultiSelectComponent.prototype, "onTouched", null); - MultiSelectComponent = __decorate([ - core.Component({ - selector: "ng-multiselect-dropdown", - template: "
\n
\n \n {{_placeholder}}\n _settings.itemsShowLimit-1\">\n {{item.text}}\n x\n \n \n 0\">+{{itemShowRemaining()}}\n \n \n \n
\n
\n
    \n
  • 0 || _settings.allowRemoteDataSearch) && !_settings.singleSelection && _settings.enableCheckAll && _settings.limitSelection===-1\" class=\"multiselect-item-checkbox\" style=\"border-bottom: 1px solid #ccc;padding:10px\">\n \n
    {{!isAllItemsSelected() ? _settings.selectAllText : _settings.unSelectAllText}}
    \n
  • \n
  • 0 || _settings.allowRemoteDataSearch) && _settings.allowSearchFilter\">\n \n
  • \n
\n
    \n
  • \n \n
    {{item.text}}
    \n
  • \n
  • \n
    {{_settings.noDataAvailablePlaceholderText}}
    \n
  • \n
\n
\n
\n", - providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR], - changeDetection: core.ChangeDetectionStrategy.OnPush, - styles: [".multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\"\"}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:\"\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:\"\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:\"\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}"] - }) - ], MultiSelectComponent); - return MultiSelectComponent; - }()); - - var ClickOutsideDirective = /** @class */ (function () { - function ClickOutsideDirective(_elementRef) { - this._elementRef = _elementRef; - this.clickOutside = new core.EventEmitter(); - } - ClickOutsideDirective.prototype.onClick = function (event, targetElement) { - if (!targetElement) { - return; - } - var clickedInside = this._elementRef.nativeElement.contains(targetElement); - if (!clickedInside) { - this.clickOutside.emit(event); - } - }; - ClickOutsideDirective.ctorParameters = function () { return [ - { type: core.ElementRef } - ]; }; - __decorate([ - core.Output() - ], ClickOutsideDirective.prototype, "clickOutside", void 0); - __decorate([ - core.HostListener('document:click', ['$event', '$event.target']) - ], ClickOutsideDirective.prototype, "onClick", null); - ClickOutsideDirective = __decorate([ - core.Directive({ - selector: '[clickOutside]' - }) - ], ClickOutsideDirective); - return ClickOutsideDirective; - }()); - - var NgMultiSelectDropDownModule = /** @class */ (function () { - function NgMultiSelectDropDownModule() { - } - NgMultiSelectDropDownModule_1 = NgMultiSelectDropDownModule; - NgMultiSelectDropDownModule.forRoot = function () { - return { - ngModule: NgMultiSelectDropDownModule_1 - }; - }; - var NgMultiSelectDropDownModule_1; - NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = __decorate([ - core.NgModule({ - imports: [common.CommonModule, forms.FormsModule], - declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe], - providers: [ListFilterPipe], - exports: [MultiSelectComponent] - }) - ], NgMultiSelectDropDownModule); - return NgMultiSelectDropDownModule; - }()); - - exports.MultiSelectComponent = MultiSelectComponent; - exports.NgMultiSelectDropDownModule = NgMultiSelectDropDownModule; - exports.ɵa = DROPDOWN_CONTROL_VALUE_ACCESSOR; - exports.ɵb = ListFilterPipe; - exports.ɵc = ClickOutsideDirective; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=ng-multiselect-dropdown.umd.js.map diff --git a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js.map b/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js.map deleted file mode 100644 index 3df6c606..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ng-multiselect-dropdown.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://ng-multiselect-dropdown/multiselect.model.ts","ng://ng-multiselect-dropdown/list-filter.pipe.ts","ng://ng-multiselect-dropdown/multiselect.component.ts","ng://ng-multiselect-dropdown/click-outside.directive.ts","ng://ng-multiselect-dropdown/ng-multiselect-dropdown.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export interface IDropdownSettings {\n singleSelection?: boolean;\n idField?: string;\n textField?: string;\n disabledField?: string;\n enableCheckAll?: boolean;\n selectAllText?: string;\n unSelectAllText?: string;\n allowSearchFilter?: boolean;\n clearSearchFilter?: boolean;\n maxHeight?: number;\n itemsShowLimit?: number;\n limitSelection?: number;\n searchPlaceholderText?: string;\n noDataAvailablePlaceholderText?: string;\n closeDropDownOnSelection?: boolean;\n showSelectedItemsAtTop?: boolean;\n defaultOpen?: boolean;\n allowRemoteDataSearch?: boolean;\n}\n\nexport class ListItem {\n id: String | number;\n text: String | number;\n isDisabled?: boolean;\n\n public constructor(source: any) {\n if (typeof source === 'string' || typeof source === 'number') {\n this.id = this.text = source;\n this.isDisabled = false;\n }\n if (typeof source === 'object') {\n this.id = source.id;\n this.text = source.text;\n this.isDisabled = source.isDisabled;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { ListItem } from './multiselect.model';\n\n@Pipe({\n name: 'multiSelectFilter',\n pure: false\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(items: ListItem[], filter: ListItem): ListItem[] {\n if (!items || !filter) {\n return items;\n }\n return items.filter((item: ListItem) => this.applyFilter(item, filter));\n }\n\n applyFilter(item: ListItem, filter: ListItem): boolean {\n if (typeof item.text === 'string' && typeof filter.text === 'string') {\n return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);\n } else {\n return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1);\n }\n }\n}\n","import { Component, HostListener, forwardRef, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport { ListItem, IDropdownSettings } from \"./multiselect.model\";\nimport { ListFilterPipe } from \"./list-filter.pipe\";\n\nexport const DROPDOWN_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n};\nconst noop = () => {};\n\n@Component({\n selector: \"ng-multiselect-dropdown\",\n templateUrl: \"./multi-select.component.html\",\n styleUrls: [\"./multi-select.component.scss\"],\n providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MultiSelectComponent implements ControlValueAccessor {\n public _settings: IDropdownSettings;\n public _data: Array = [];\n public selectedItems: Array = [];\n public isDropdownOpen = true;\n _placeholder = \"Select\";\n private _sourceDataType = null; // to keep note of the source data type. could be array of string/number/object\n private _sourceDataFields: Array = []; // store source data fields names\n filter: ListItem = new ListItem(this.data);\n defaultSettings: IDropdownSettings = {\n singleSelection: false,\n idField: \"id\",\n textField: \"text\",\n disabledField: \"isDisabled\",\n enableCheckAll: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: false,\n limitSelection: -1,\n clearSearchFilter: true,\n maxHeight: 197,\n itemsShowLimit: 999999999999,\n searchPlaceholderText: \"Search\",\n noDataAvailablePlaceholderText: \"No data available\",\n closeDropDownOnSelection: false,\n showSelectedItemsAtTop: false,\n defaultOpen: false,\n allowRemoteDataSearch: false\n };\n\n @Input()\n public set placeholder(value: string) {\n if (value) {\n this._placeholder = value;\n } else {\n this._placeholder = \"Select\";\n }\n }\n @Input()\n disabled = false;\n\n @Input()\n public set settings(value: IDropdownSettings) {\n if (value) {\n this._settings = Object.assign(this.defaultSettings, value);\n } else {\n this._settings = Object.assign(this.defaultSettings);\n }\n }\n\n @Input()\n public set data(value: Array) {\n if (!value) {\n this._data = [];\n } else {\n const firstItem = value[0];\n this._sourceDataType = typeof firstItem;\n this._sourceDataFields = this.getFields(firstItem);\n this._data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n }\n }\n\n @Output(\"onFilterChange\")\n onFilterChange: EventEmitter = new EventEmitter();\n @Output(\"onDropDownClose\")\n onDropDownClose: EventEmitter = new EventEmitter();\n\n @Output(\"onSelect\")\n onSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onDeSelect\")\n onDeSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onSelectAll\")\n onSelectAll: EventEmitter> = new EventEmitter>();\n\n @Output(\"onDeSelectAll\")\n onDeSelectAll: EventEmitter> = new EventEmitter>();\n\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n onFilterTextChange($event) {\n this.onFilterChange.emit($event);\n }\n\n constructor(private listFilterPipe:ListFilterPipe) {}\n\n onItemClick($event: any, item: ListItem) {\n if (this.disabled || item.isDisabled) {\n return false;\n }\n\n const found = this.isSelected(item);\n const allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection);\n if (!found) {\n if (allowAdd) {\n this.addSelected(item);\n }\n } else {\n this.removeSelected(item);\n }\n if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) {\n this.closeDropdown();\n }\n }\n\n writeValue(value: any) {\n if (value !== undefined && value !== null && value.length > 0) {\n if (this._settings.singleSelection) {\n try {\n if (value.length >= 1) {\n const firstItem = value[0];\n this.selectedItems = [\n typeof firstItem === \"string\" || typeof firstItem === \"number\"\n ? new ListItem(firstItem)\n : new ListItem({\n id: firstItem[this._settings.idField],\n text: firstItem[this._settings.textField],\n isDisabled: firstItem[this._settings.disabledField]\n })\n ];\n }\n } catch (e) {\n // console.error(e.body.msg);\n }\n } else {\n const _data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n if (this._settings.limitSelection > 0) {\n this.selectedItems = _data.splice(0, this._settings.limitSelection);\n } else {\n this.selectedItems = _data;\n }\n }\n } else {\n this.selectedItems = [];\n }\n this.onChangeCallback(value);\n }\n\n // From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n // From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n // Set touched on blur\n @HostListener(\"blur\")\n public onTouched() {\n this.closeDropdown();\n this.onTouchedCallback();\n }\n\n trackByFn(index, item) {\n return item.id;\n }\n\n isSelected(clickedItem: ListItem) {\n let found = false;\n this.selectedItems.forEach(item => {\n if (clickedItem.id === item.id) {\n found = true;\n }\n });\n return found;\n }\n\n isLimitSelectionReached(): boolean {\n return this._settings.limitSelection === this.selectedItems.length;\n }\n\n isAllItemsSelected(): boolean {\n // get disabld item count\n let filteredItems = this.listFilterPipe.transform(this._data,this.filter);\n const itemDisabledCount = filteredItems.filter(item => item.isDisabled).length;\n // take disabled items into consideration when checking\n if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) {\n return false;\n }\n return filteredItems.length === this.selectedItems.length + itemDisabledCount;\n }\n\n showButton(): boolean {\n if (!this._settings.singleSelection) {\n if (this._settings.limitSelection > 0) {\n return false;\n }\n // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false;\n return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0;\n } else {\n // should be disabled in single selection mode\n return false;\n }\n }\n\n itemShowRemaining(): number {\n return this.selectedItems.length - this._settings.itemsShowLimit;\n }\n\n addSelected(item: ListItem) {\n if (this._settings.singleSelection) {\n this.selectedItems = [];\n this.selectedItems.push(item);\n } else {\n this.selectedItems.push(item);\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onSelect.emit(this.emittedValue(item));\n }\n\n removeSelected(itemSel: ListItem) {\n this.selectedItems.forEach(item => {\n if (itemSel.id === item.id) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n });\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onDeSelect.emit(this.emittedValue(itemSel));\n }\n\n emittedValue(val: any): any {\n const selected = [];\n if (Array.isArray(val)) {\n val.map(item => {\n selected.push(this.objectify(item));\n });\n } else {\n if (val) {\n return this.objectify(val);\n }\n }\n return selected;\n }\n\n objectify(val: ListItem) {\n if (this._sourceDataType === 'object') {\n const obj = {};\n obj[this._settings.idField] = val.id;\n obj[this._settings.textField] = val.text;\n if (this._sourceDataFields.includes(this._settings.disabledField)) {\n obj[this._settings.disabledField] = val.isDisabled;\n }\n return obj;\n }\n if (this._sourceDataType === 'number') {\n return Number(val.id);\n } else {\n return val.text;\n }\n }\n\n toggleDropdown(evt) {\n evt.preventDefault();\n if (this.disabled && this._settings.singleSelection) {\n return;\n }\n this._settings.defaultOpen = !this._settings.defaultOpen;\n if (!this._settings.defaultOpen) {\n this.onDropDownClose.emit();\n }\n }\n\n closeDropdown() {\n this._settings.defaultOpen = false;\n // clear search text\n if (this._settings.clearSearchFilter) {\n this.filter.text = \"\";\n }\n this.onDropDownClose.emit();\n }\n\n toggleSelectAll() {\n if (this.disabled) {\n return false;\n }\n if (!this.isAllItemsSelected()) {\n // filter out disabled item first before slicing\n this.selectedItems = this.listFilterPipe.transform(this._data,this.filter).filter(item => !item.isDisabled).slice();\n this.onSelectAll.emit(this.emittedValue(this.selectedItems));\n } else {\n this.selectedItems = [];\n this.onDeSelectAll.emit(this.emittedValue(this.selectedItems));\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n }\n\n getFields(inputData) {\n const fields = [];\n if (typeof inputData !== \"object\") {\n return fields;\n }\n // tslint:disable-next-line:forin\n for (const prop in inputData) {\n fields.push(prop);\n }\n return fields;\n }\n}\n","import {Directive, ElementRef, Output, EventEmitter, HostListener} from '@angular/core';\n\n@Directive({\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n constructor(private _elementRef: ElementRef) {\n }\n\n @Output()\n public clickOutside = new EventEmitter();\n\n @HostListener('document:click', ['$event', '$event.target'])\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\n if (!targetElement) {\n return;\n }\n\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MultiSelectComponent } from './multiselect.component';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { ListFilterPipe } from './list-filter.pipe';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe],\n providers: [ListFilterPipe],\n exports: [MultiSelectComponent]\n})\n\nexport class NgMultiSelectDropDownModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: NgMultiSelectDropDownModule\n };\n }\n}\n"],"names":["Pipe","NG_VALUE_ACCESSOR","forwardRef","EventEmitter","tslib_1.__decorate","Input","Output","HostListener","Component","ChangeDetectionStrategy","ElementRef","Directive","NgModule","CommonModule","FormsModule"],"mappings":"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"} \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js b/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js deleted file mode 100644 index c550ee04..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js +++ /dev/null @@ -1,16 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("ng-multiselect-dropdown",["exports","@angular/core","@angular/forms","@angular/common"],t):t((e=e||self)["ng-multiselect-dropdown"]={},e.ng.core,e.ng.forms,e.ng.common)}(this,(function(e,t,i,o){"use strict"; -/*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */function n(e,t,i,o){var n,s=arguments.length,l=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,o);else for(var r=e.length-1;r>=0;r--)(n=e[r])&&(l=(s<3?n(l):s>3?n(t,i,l):n(t,i))||l);return s>3&&l&&Object.defineProperty(t,i,l),l}var s=function(e){"string"!=typeof e&&"number"!=typeof e||(this.id=this.text=e,this.isDisabled=!1),"object"==typeof e&&(this.id=e.id,this.text=e.text,this.isDisabled=e.isDisabled)},l=function(){function e(){}return e.prototype.transform=function(e,t){var i=this;return e&&t?e.filter((function(e){return i.applyFilter(e,t)})):e},e.prototype.applyFilter=function(e,t){return"string"==typeof e.text&&"string"==typeof t.text?!(t.text&&e.text&&-1===e.text.toLowerCase().indexOf(t.text.toLowerCase())):!(t.text&&e.text&&-1===e.text.toString().toLowerCase().indexOf(t.text.toString().toLowerCase()))},e=n([t.Pipe({name:"multiSelectFilter",pure:!1})],e)}(),r={provide:i.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return d})),multi:!0},c=function(){},d=function(){function e(e){this.listFilterPipe=e,this._data=[],this.selectedItems=[],this.isDropdownOpen=!0,this._placeholder="Select",this._sourceDataType=null,this._sourceDataFields=[],this.filter=new s(this.data),this.defaultSettings={singleSelection:!1,idField:"id",textField:"text",disabledField:"isDisabled",enableCheckAll:!0,selectAllText:"Select All",unSelectAllText:"UnSelect All",allowSearchFilter:!1,limitSelection:-1,clearSearchFilter:!0,maxHeight:197,itemsShowLimit:999999999999,searchPlaceholderText:"Search",noDataAvailablePlaceholderText:"No data available",closeDropDownOnSelection:!1,showSelectedItemsAtTop:!1,defaultOpen:!1,allowRemoteDataSearch:!1},this.disabled=!1,this.onFilterChange=new t.EventEmitter,this.onDropDownClose=new t.EventEmitter,this.onSelect=new t.EventEmitter,this.onDeSelect=new t.EventEmitter,this.onSelectAll=new t.EventEmitter,this.onDeSelectAll=new t.EventEmitter,this.onTouchedCallback=c,this.onChangeCallback=c}return Object.defineProperty(e.prototype,"placeholder",{set:function(e){this._placeholder=e||"Select"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"settings",{set:function(e){this._settings=e?Object.assign(this.defaultSettings,e):Object.assign(this.defaultSettings)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"data",{set:function(e){var t=this;if(e){var i=e[0];this._sourceDataType=typeof i,this._sourceDataFields=this.getFields(i),this._data=e.map((function(e){return new s("string"==typeof e||"number"==typeof e?e:{id:e[t._settings.idField],text:e[t._settings.textField],isDisabled:e[t._settings.disabledField]})}))}else this._data=[]},enumerable:!0,configurable:!0}),e.prototype.onFilterTextChange=function(e){this.onFilterChange.emit(e)},e.prototype.onItemClick=function(e,t){if(this.disabled||t.isDisabled)return!1;var i=this.isSelected(t),o=-1===this._settings.limitSelection||this._settings.limitSelection>0&&this.selectedItems.length0)if(this._settings.singleSelection)try{if(e.length>=1){var i=e[0];this.selectedItems=[new s("string"==typeof i||"number"==typeof i?i:{id:i[this._settings.idField],text:i[this._settings.textField],isDisabled:i[this._settings.disabledField]})]}}catch(e){}else{var o=e.map((function(e){return new s("string"==typeof e||"number"==typeof e?e:{id:e[t._settings.idField],text:e[t._settings.textField],isDisabled:e[t._settings.disabledField]})}));this._settings.limitSelection>0?this.selectedItems=o.splice(0,this._settings.limitSelection):this.selectedItems=o}else this.selectedItems=[];this.onChangeCallback(e)},e.prototype.registerOnChange=function(e){this.onChangeCallback=e},e.prototype.registerOnTouched=function(e){this.onTouchedCallback=e},e.prototype.onTouched=function(){this.closeDropdown(),this.onTouchedCallback()},e.prototype.trackByFn=function(e,t){return t.id},e.prototype.isSelected=function(e){var t=!1;return this.selectedItems.forEach((function(i){e.id===i.id&&(t=!0)})),t},e.prototype.isLimitSelectionReached=function(){return this._settings.limitSelection===this.selectedItems.length},e.prototype.isAllItemsSelected=function(){var e=this.listFilterPipe.transform(this._data,this.filter),t=e.filter((function(e){return e.isDisabled})).length;return!((!this.data||0===this.data.length)&&this._settings.allowRemoteDataSearch)&&e.length===this.selectedItems.length+t},e.prototype.showButton=function(){return!this._settings.singleSelection&&!(this._settings.limitSelection>0)},e.prototype.itemShowRemaining=function(){return this.selectedItems.length-this._settings.itemsShowLimit},e.prototype.addSelected=function(e){this._settings.singleSelection?(this.selectedItems=[],this.selectedItems.push(e)):this.selectedItems.push(e),this.onChangeCallback(this.emittedValue(this.selectedItems)),this.onSelect.emit(this.emittedValue(e))},e.prototype.removeSelected=function(e){var t=this;this.selectedItems.forEach((function(i){e.id===i.id&&t.selectedItems.splice(t.selectedItems.indexOf(i),1)})),this.onChangeCallback(this.emittedValue(this.selectedItems)),this.onDeSelect.emit(this.emittedValue(e))},e.prototype.emittedValue=function(e){var t=this,i=[];if(Array.isArray(e))e.map((function(e){i.push(t.objectify(e))}));else if(e)return this.objectify(e);return i},e.prototype.objectify=function(e){if("object"===this._sourceDataType){var t={};return t[this._settings.idField]=e.id,t[this._settings.textField]=e.text,this._sourceDataFields.includes(this._settings.disabledField)&&(t[this._settings.disabledField]=e.isDisabled),t}return"number"===this._sourceDataType?Number(e.id):e.text},e.prototype.toggleDropdown=function(e){e.preventDefault(),this.disabled&&this._settings.singleSelection||(this._settings.defaultOpen=!this._settings.defaultOpen,this._settings.defaultOpen||this.onDropDownClose.emit())},e.prototype.closeDropdown=function(){this._settings.defaultOpen=!1,this._settings.clearSearchFilter&&(this.filter.text=""),this.onDropDownClose.emit()},e.prototype.toggleSelectAll=function(){if(this.disabled)return!1;this.isAllItemsSelected()?(this.selectedItems=[],this.onDeSelectAll.emit(this.emittedValue(this.selectedItems))):(this.selectedItems=this.listFilterPipe.transform(this._data,this.filter).filter((function(e){return!e.isDisabled})).slice(),this.onSelectAll.emit(this.emittedValue(this.selectedItems))),this.onChangeCallback(this.emittedValue(this.selectedItems))},e.prototype.getFields=function(e){var t=[];if("object"!=typeof e)return t;for(var i in e)t.push(i);return t},e.ctorParameters=function(){return[{type:l}]},n([t.Input()],e.prototype,"placeholder",null),n([t.Input()],e.prototype,"disabled",void 0),n([t.Input()],e.prototype,"settings",null),n([t.Input()],e.prototype,"data",null),n([t.Output("onFilterChange")],e.prototype,"onFilterChange",void 0),n([t.Output("onDropDownClose")],e.prototype,"onDropDownClose",void 0),n([t.Output("onSelect")],e.prototype,"onSelect",void 0),n([t.Output("onDeSelect")],e.prototype,"onDeSelect",void 0),n([t.Output("onSelectAll")],e.prototype,"onSelectAll",void 0),n([t.Output("onDeSelectAll")],e.prototype,"onDeSelectAll",void 0),n([t.HostListener("blur")],e.prototype,"onTouched",null),e=n([t.Component({selector:"ng-multiselect-dropdown",template:'
\n
\n \n {{_placeholder}}\n \n {{item.text}}\n x\n \n \n +{{itemShowRemaining()}}\n \n \n \n
\n \n
\n',providers:[r],changeDetection:t.ChangeDetectionStrategy.OnPush,styles:['.multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:""}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:"";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:"";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:"";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}']})],e)}(),a=function(){function e(e){this._elementRef=e,this.clickOutside=new t.EventEmitter}return e.prototype.onClick=function(e,t){t&&(this._elementRef.nativeElement.contains(t)||this.clickOutside.emit(e))},e.ctorParameters=function(){return[{type:t.ElementRef}]},n([t.Output()],e.prototype,"clickOutside",void 0),n([t.HostListener("document:click",["$event","$event.target"])],e.prototype,"onClick",null),e=n([t.Directive({selector:"[clickOutside]"})],e)}(),p=function(){function e(){}var s;return s=e,e.forRoot=function(){return{ngModule:s}},e=s=n([t.NgModule({imports:[o.CommonModule,i.FormsModule],declarations:[d,a,l],providers:[l],exports:[d]})],e)}();e.MultiSelectComponent=d,e.NgMultiSelectDropDownModule=p,e.ɵa=r,e.ɵb=l,e.ɵc=a,Object.defineProperty(e,"__esModule",{value:!0})})); -//# sourceMappingURL=ng-multiselect-dropdown.umd.min.js.map \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js.map b/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js.map deleted file mode 100644 index c1e65534..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/bundles/ng-multiselect-dropdown.umd.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://ng-multiselect-dropdown/multiselect.model.ts","ng://ng-multiselect-dropdown/list-filter.pipe.ts","ng://ng-multiselect-dropdown/multiselect.component.ts","ng://ng-multiselect-dropdown/click-outside.directive.ts","ng://ng-multiselect-dropdown/ng-multiselect-dropdown.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","ListItem","source","this","id","text","isDisabled","ListFilterPipe","prototype","transform","items","filter","_this","item","applyFilter","toLowerCase","indexOf","toString","Pipe","name","pure","DROPDOWN_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","MultiSelectComponent","multi","noop","listFilterPipe","_data","selectedItems","isDropdownOpen","_placeholder","_sourceDataType","_sourceDataFields","data","defaultSettings","singleSelection","idField","textField","disabledField","enableCheckAll","selectAllText","unSelectAllText","allowSearchFilter","limitSelection","clearSearchFilter","maxHeight","itemsShowLimit","searchPlaceholderText","noDataAvailablePlaceholderText","closeDropDownOnSelection","showSelectedItemsAtTop","defaultOpen","allowRemoteDataSearch","disabled","onFilterChange","EventEmitter","onDropDownClose","onSelect","onDeSelect","onSelectAll","onDeSelectAll","onTouchedCallback","onChangeCallback","value","_settings","assign","firstItem","getFields","map","onFilterTextChange","$event","emit","onItemClick","found","isSelected","allowAdd","removeSelected","addSelected","closeDropdown","writeValue","e","splice","registerOnChange","fn","registerOnTouched","onTouched","trackByFn","index","clickedItem","forEach","isLimitSelectionReached","isAllItemsSelected","filteredItems","itemDisabledCount","showButton","itemShowRemaining","push","emittedValue","itemSel","val","selected","Array","isArray","objectify","obj","includes","Number","toggleDropdown","evt","preventDefault","toggleSelectAll","slice","inputData","fields","prop","tslib_1.__decorate","Input","Output","HostListener","Component","selector","template","providers","changeDetection","ChangeDetectionStrategy","OnPush","ClickOutsideDirective","_elementRef","clickOutside","onClick","event","targetElement","nativeElement","contains","ElementRef","Directive","NgMultiSelectDropDownModule","forRoot","ngModule","NgMultiSelectDropDownModule_1","NgModule","imports","CommonModule","FormsModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export interface IDropdownSettings {\n singleSelection?: boolean;\n idField?: string;\n textField?: string;\n disabledField?: string;\n enableCheckAll?: boolean;\n selectAllText?: string;\n unSelectAllText?: string;\n allowSearchFilter?: boolean;\n clearSearchFilter?: boolean;\n maxHeight?: number;\n itemsShowLimit?: number;\n limitSelection?: number;\n searchPlaceholderText?: string;\n noDataAvailablePlaceholderText?: string;\n closeDropDownOnSelection?: boolean;\n showSelectedItemsAtTop?: boolean;\n defaultOpen?: boolean;\n allowRemoteDataSearch?: boolean;\n}\n\nexport class ListItem {\n id: String | number;\n text: String | number;\n isDisabled?: boolean;\n\n public constructor(source: any) {\n if (typeof source === 'string' || typeof source === 'number') {\n this.id = this.text = source;\n this.isDisabled = false;\n }\n if (typeof source === 'object') {\n this.id = source.id;\n this.text = source.text;\n this.isDisabled = source.isDisabled;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { ListItem } from './multiselect.model';\n\n@Pipe({\n name: 'multiSelectFilter',\n pure: false\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(items: ListItem[], filter: ListItem): ListItem[] {\n if (!items || !filter) {\n return items;\n }\n return items.filter((item: ListItem) => this.applyFilter(item, filter));\n }\n\n applyFilter(item: ListItem, filter: ListItem): boolean {\n if (typeof item.text === 'string' && typeof filter.text === 'string') {\n return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);\n } else {\n return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1);\n }\n }\n}\n","import { Component, HostListener, forwardRef, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport { ListItem, IDropdownSettings } from \"./multiselect.model\";\nimport { ListFilterPipe } from \"./list-filter.pipe\";\n\nexport const DROPDOWN_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n};\nconst noop = () => {};\n\n@Component({\n selector: \"ng-multiselect-dropdown\",\n templateUrl: \"./multi-select.component.html\",\n styleUrls: [\"./multi-select.component.scss\"],\n providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MultiSelectComponent implements ControlValueAccessor {\n public _settings: IDropdownSettings;\n public _data: Array = [];\n public selectedItems: Array = [];\n public isDropdownOpen = true;\n _placeholder = \"Select\";\n private _sourceDataType = null; // to keep note of the source data type. could be array of string/number/object\n private _sourceDataFields: Array = []; // store source data fields names\n filter: ListItem = new ListItem(this.data);\n defaultSettings: IDropdownSettings = {\n singleSelection: false,\n idField: \"id\",\n textField: \"text\",\n disabledField: \"isDisabled\",\n enableCheckAll: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: false,\n limitSelection: -1,\n clearSearchFilter: true,\n maxHeight: 197,\n itemsShowLimit: 999999999999,\n searchPlaceholderText: \"Search\",\n noDataAvailablePlaceholderText: \"No data available\",\n closeDropDownOnSelection: false,\n showSelectedItemsAtTop: false,\n defaultOpen: false,\n allowRemoteDataSearch: false\n };\n\n @Input()\n public set placeholder(value: string) {\n if (value) {\n this._placeholder = value;\n } else {\n this._placeholder = \"Select\";\n }\n }\n @Input()\n disabled = false;\n\n @Input()\n public set settings(value: IDropdownSettings) {\n if (value) {\n this._settings = Object.assign(this.defaultSettings, value);\n } else {\n this._settings = Object.assign(this.defaultSettings);\n }\n }\n\n @Input()\n public set data(value: Array) {\n if (!value) {\n this._data = [];\n } else {\n const firstItem = value[0];\n this._sourceDataType = typeof firstItem;\n this._sourceDataFields = this.getFields(firstItem);\n this._data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n }\n }\n\n @Output(\"onFilterChange\")\n onFilterChange: EventEmitter = new EventEmitter();\n @Output(\"onDropDownClose\")\n onDropDownClose: EventEmitter = new EventEmitter();\n\n @Output(\"onSelect\")\n onSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onDeSelect\")\n onDeSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onSelectAll\")\n onSelectAll: EventEmitter> = new EventEmitter>();\n\n @Output(\"onDeSelectAll\")\n onDeSelectAll: EventEmitter> = new EventEmitter>();\n\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n onFilterTextChange($event) {\n this.onFilterChange.emit($event);\n }\n\n constructor(private listFilterPipe:ListFilterPipe) {}\n\n onItemClick($event: any, item: ListItem) {\n if (this.disabled || item.isDisabled) {\n return false;\n }\n\n const found = this.isSelected(item);\n const allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection);\n if (!found) {\n if (allowAdd) {\n this.addSelected(item);\n }\n } else {\n this.removeSelected(item);\n }\n if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) {\n this.closeDropdown();\n }\n }\n\n writeValue(value: any) {\n if (value !== undefined && value !== null && value.length > 0) {\n if (this._settings.singleSelection) {\n try {\n if (value.length >= 1) {\n const firstItem = value[0];\n this.selectedItems = [\n typeof firstItem === \"string\" || typeof firstItem === \"number\"\n ? new ListItem(firstItem)\n : new ListItem({\n id: firstItem[this._settings.idField],\n text: firstItem[this._settings.textField],\n isDisabled: firstItem[this._settings.disabledField]\n })\n ];\n }\n } catch (e) {\n // console.error(e.body.msg);\n }\n } else {\n const _data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n if (this._settings.limitSelection > 0) {\n this.selectedItems = _data.splice(0, this._settings.limitSelection);\n } else {\n this.selectedItems = _data;\n }\n }\n } else {\n this.selectedItems = [];\n }\n this.onChangeCallback(value);\n }\n\n // From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n // From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n // Set touched on blur\n @HostListener(\"blur\")\n public onTouched() {\n this.closeDropdown();\n this.onTouchedCallback();\n }\n\n trackByFn(index, item) {\n return item.id;\n }\n\n isSelected(clickedItem: ListItem) {\n let found = false;\n this.selectedItems.forEach(item => {\n if (clickedItem.id === item.id) {\n found = true;\n }\n });\n return found;\n }\n\n isLimitSelectionReached(): boolean {\n return this._settings.limitSelection === this.selectedItems.length;\n }\n\n isAllItemsSelected(): boolean {\n // get disabld item count\n let filteredItems = this.listFilterPipe.transform(this._data,this.filter);\n const itemDisabledCount = filteredItems.filter(item => item.isDisabled).length;\n // take disabled items into consideration when checking\n if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) {\n return false;\n }\n return filteredItems.length === this.selectedItems.length + itemDisabledCount;\n }\n\n showButton(): boolean {\n if (!this._settings.singleSelection) {\n if (this._settings.limitSelection > 0) {\n return false;\n }\n // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false;\n return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0;\n } else {\n // should be disabled in single selection mode\n return false;\n }\n }\n\n itemShowRemaining(): number {\n return this.selectedItems.length - this._settings.itemsShowLimit;\n }\n\n addSelected(item: ListItem) {\n if (this._settings.singleSelection) {\n this.selectedItems = [];\n this.selectedItems.push(item);\n } else {\n this.selectedItems.push(item);\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onSelect.emit(this.emittedValue(item));\n }\n\n removeSelected(itemSel: ListItem) {\n this.selectedItems.forEach(item => {\n if (itemSel.id === item.id) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n });\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onDeSelect.emit(this.emittedValue(itemSel));\n }\n\n emittedValue(val: any): any {\n const selected = [];\n if (Array.isArray(val)) {\n val.map(item => {\n selected.push(this.objectify(item));\n });\n } else {\n if (val) {\n return this.objectify(val);\n }\n }\n return selected;\n }\n\n objectify(val: ListItem) {\n if (this._sourceDataType === 'object') {\n const obj = {};\n obj[this._settings.idField] = val.id;\n obj[this._settings.textField] = val.text;\n if (this._sourceDataFields.includes(this._settings.disabledField)) {\n obj[this._settings.disabledField] = val.isDisabled;\n }\n return obj;\n }\n if (this._sourceDataType === 'number') {\n return Number(val.id);\n } else {\n return val.text;\n }\n }\n\n toggleDropdown(evt) {\n evt.preventDefault();\n if (this.disabled && this._settings.singleSelection) {\n return;\n }\n this._settings.defaultOpen = !this._settings.defaultOpen;\n if (!this._settings.defaultOpen) {\n this.onDropDownClose.emit();\n }\n }\n\n closeDropdown() {\n this._settings.defaultOpen = false;\n // clear search text\n if (this._settings.clearSearchFilter) {\n this.filter.text = \"\";\n }\n this.onDropDownClose.emit();\n }\n\n toggleSelectAll() {\n if (this.disabled) {\n return false;\n }\n if (!this.isAllItemsSelected()) {\n // filter out disabled item first before slicing\n this.selectedItems = this.listFilterPipe.transform(this._data,this.filter).filter(item => !item.isDisabled).slice();\n this.onSelectAll.emit(this.emittedValue(this.selectedItems));\n } else {\n this.selectedItems = [];\n this.onDeSelectAll.emit(this.emittedValue(this.selectedItems));\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n }\n\n getFields(inputData) {\n const fields = [];\n if (typeof inputData !== \"object\") {\n return fields;\n }\n // tslint:disable-next-line:forin\n for (const prop in inputData) {\n fields.push(prop);\n }\n return fields;\n }\n}\n","import {Directive, ElementRef, Output, EventEmitter, HostListener} from '@angular/core';\n\n@Directive({\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n constructor(private _elementRef: ElementRef) {\n }\n\n @Output()\n public clickOutside = new EventEmitter();\n\n @HostListener('document:click', ['$event', '$event.target'])\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\n if (!targetElement) {\n return;\n }\n\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MultiSelectComponent } from './multiselect.component';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { ListFilterPipe } from './list-filter.pipe';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe],\n providers: [ListFilterPipe],\n exports: [MultiSelectComponent]\n})\n\nexport class NgMultiSelectDropDownModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: NgMultiSelectDropDownModule\n };\n }\n}\n"]} \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/click-outside.directive.d.ts b/frontend/node_modules/ng-multiselect-dropdown/click-outside.directive.d.ts deleted file mode 100644 index 994b0ba1..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/click-outside.directive.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ElementRef, EventEmitter } from '@angular/core'; -import * as ɵngcc0 from '@angular/core'; -export declare class ClickOutsideDirective { - private _elementRef; - constructor(_elementRef: ElementRef); - clickOutside: EventEmitter; - onClick(event: MouseEvent, targetElement: HTMLElement): void; - static ɵfac: ɵngcc0.ɵɵFactoryDeclaration; - static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration; -} - -//# sourceMappingURL=click-outside.directive.d.ts.map \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm2015/click-outside.directive.js b/frontend/node_modules/ng-multiselect-dropdown/esm2015/click-outside.directive.js deleted file mode 100644 index 3b14aa27..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm2015/click-outside.directive.js +++ /dev/null @@ -1,33 +0,0 @@ -import * as tslib_1 from "tslib"; -import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core'; -let ClickOutsideDirective = class ClickOutsideDirective { - constructor(_elementRef) { - this._elementRef = _elementRef; - this.clickOutside = new EventEmitter(); - } - onClick(event, targetElement) { - if (!targetElement) { - return; - } - const clickedInside = this._elementRef.nativeElement.contains(targetElement); - if (!clickedInside) { - this.clickOutside.emit(event); - } - } -}; -ClickOutsideDirective.ctorParameters = () => [ - { type: ElementRef } -]; -tslib_1.__decorate([ - Output() -], ClickOutsideDirective.prototype, "clickOutside", void 0); -tslib_1.__decorate([ - HostListener('document:click', ['$event', '$event.target']) -], ClickOutsideDirective.prototype, "onClick", null); -ClickOutsideDirective = tslib_1.__decorate([ - Directive({ - selector: '[clickOutside]' - }) -], ClickOutsideDirective); -export { ClickOutsideDirective }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi8iLCJzb3VyY2VzIjpbImNsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt4RixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUM5QixZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUlwQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFIckQsQ0FBQztJQU1NLE9BQU8sQ0FBQyxLQUFpQixFQUFFLGFBQTBCO1FBQ3hELElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDO0NBQ0osQ0FBQTs7WUFqQm9DLFVBQVU7O0FBSTNDO0lBREMsTUFBTSxFQUFFOzJEQUM0QztBQUdyRDtJQURDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztvREFVM0Q7QUFqQlEscUJBQXFCO0lBSGpDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxnQkFBZ0I7S0FDN0IsQ0FBQztHQUNXLHFCQUFxQixDQWtCakM7U0FsQlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tjbGlja091dHNpZGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBDbGlja091dHNpZGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tPdXRzaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCcsICckZXZlbnQudGFyZ2V0J10pXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrT3V0c2lkZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm2015/list-filter.pipe.js b/frontend/node_modules/ng-multiselect-dropdown/esm2015/list-filter.pipe.js deleted file mode 100644 index 78725d57..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm2015/list-filter.pipe.js +++ /dev/null @@ -1,26 +0,0 @@ -import * as tslib_1 from "tslib"; -import { Pipe } from '@angular/core'; -let ListFilterPipe = class ListFilterPipe { - transform(items, filter) { - if (!items || !filter) { - return items; - } - return items.filter((item) => this.applyFilter(item, filter)); - } - applyFilter(item, filter) { - if (typeof item.text === 'string' && typeof filter.text === 'string') { - return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1); - } - else { - return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1); - } - } -}; -ListFilterPipe = tslib_1.__decorate([ - Pipe({ - name: 'multiSelectFilter', - pure: false - }) -], ListFilterPipe); -export { ListFilterPipe }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLW11bHRpc2VsZWN0LWRyb3Bkb3duLyIsInNvdXJjZXMiOlsibGlzdC1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFRcEQsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBYztJQUN2QixTQUFTLENBQUMsS0FBaUIsRUFBRSxNQUFnQjtRQUN6QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBYyxFQUFFLE1BQWdCO1FBQ3hDLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzRzthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pJO0lBQ0wsQ0FBQztDQUNKLENBQUE7QUFmWSxjQUFjO0lBSjFCLElBQUksQ0FBQztRQUNGLElBQUksRUFBRSxtQkFBbUI7UUFDekIsSUFBSSxFQUFFLEtBQUs7S0FDZCxDQUFDO0dBQ1csY0FBYyxDQWUxQjtTQWZZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5tb2RlbCc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbXVsdGlTZWxlY3RGaWx0ZXInLFxuICAgIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIExpc3RGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGl0ZW1zOiBMaXN0SXRlbVtdLCBmaWx0ZXI6IExpc3RJdGVtKTogTGlzdEl0ZW1bXSB7XG4gICAgICAgIGlmICghaXRlbXMgfHwgIWZpbHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW06IExpc3RJdGVtKSA9PiB0aGlzLmFwcGx5RmlsdGVyKGl0ZW0sIGZpbHRlcikpO1xuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyKGl0ZW06IExpc3RJdGVtLCBmaWx0ZXI6IExpc3RJdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbS50ZXh0ID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgZmlsdGVyLnRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gIShmaWx0ZXIudGV4dCAmJiBpdGVtLnRleHQgJiYgaXRlbS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIudGV4dC50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICEoZmlsdGVyLnRleHQgJiYgaXRlbS50ZXh0ICYmIGl0ZW0udGV4dC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIudGV4dC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpID09PSAtMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.component.js b/frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.component.js deleted file mode 100644 index a47bff5d..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.component.js +++ /dev/null @@ -1,346 +0,0 @@ -import * as tslib_1 from "tslib"; -import { Component, HostListener, forwardRef, Input, Output, EventEmitter, ChangeDetectionStrategy } from "@angular/core"; -import { NG_VALUE_ACCESSOR } from "@angular/forms"; -import { ListItem } from "./multiselect.model"; -import { ListFilterPipe } from "./list-filter.pipe"; -export const DROPDOWN_CONTROL_VALUE_ACCESSOR = { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => MultiSelectComponent), - multi: true -}; -const noop = () => { }; -const ɵ0 = noop; -let MultiSelectComponent = class MultiSelectComponent { - constructor(listFilterPipe) { - this.listFilterPipe = listFilterPipe; - this._data = []; - this.selectedItems = []; - this.isDropdownOpen = true; - this._placeholder = "Select"; - this._sourceDataType = null; // to keep note of the source data type. could be array of string/number/object - this._sourceDataFields = []; // store source data fields names - this.filter = new ListItem(this.data); - this.defaultSettings = { - singleSelection: false, - idField: "id", - textField: "text", - disabledField: "isDisabled", - enableCheckAll: true, - selectAllText: "Select All", - unSelectAllText: "UnSelect All", - allowSearchFilter: false, - limitSelection: -1, - clearSearchFilter: true, - maxHeight: 197, - itemsShowLimit: 999999999999, - searchPlaceholderText: "Search", - noDataAvailablePlaceholderText: "No data available", - closeDropDownOnSelection: false, - showSelectedItemsAtTop: false, - defaultOpen: false, - allowRemoteDataSearch: false - }; - this.disabled = false; - this.onFilterChange = new EventEmitter(); - this.onDropDownClose = new EventEmitter(); - this.onSelect = new EventEmitter(); - this.onDeSelect = new EventEmitter(); - this.onSelectAll = new EventEmitter(); - this.onDeSelectAll = new EventEmitter(); - this.onTouchedCallback = noop; - this.onChangeCallback = noop; - } - set placeholder(value) { - if (value) { - this._placeholder = value; - } - else { - this._placeholder = "Select"; - } - } - set settings(value) { - if (value) { - this._settings = Object.assign(this.defaultSettings, value); - } - else { - this._settings = Object.assign(this.defaultSettings); - } - } - set data(value) { - if (!value) { - this._data = []; - } - else { - const firstItem = value[0]; - this._sourceDataType = typeof firstItem; - this._sourceDataFields = this.getFields(firstItem); - this._data = value.map((item) => typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[this._settings.idField], - text: item[this._settings.textField], - isDisabled: item[this._settings.disabledField] - })); - } - } - onFilterTextChange($event) { - this.onFilterChange.emit($event); - } - onItemClick($event, item) { - if (this.disabled || item.isDisabled) { - return false; - } - const found = this.isSelected(item); - const allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection); - if (!found) { - if (allowAdd) { - this.addSelected(item); - } - } - else { - this.removeSelected(item); - } - if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) { - this.closeDropdown(); - } - } - writeValue(value) { - if (value !== undefined && value !== null && value.length > 0) { - if (this._settings.singleSelection) { - try { - if (value.length >= 1) { - const firstItem = value[0]; - this.selectedItems = [ - typeof firstItem === "string" || typeof firstItem === "number" - ? new ListItem(firstItem) - : new ListItem({ - id: firstItem[this._settings.idField], - text: firstItem[this._settings.textField], - isDisabled: firstItem[this._settings.disabledField] - }) - ]; - } - } - catch (e) { - // console.error(e.body.msg); - } - } - else { - const _data = value.map((item) => typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[this._settings.idField], - text: item[this._settings.textField], - isDisabled: item[this._settings.disabledField] - })); - if (this._settings.limitSelection > 0) { - this.selectedItems = _data.splice(0, this._settings.limitSelection); - } - else { - this.selectedItems = _data; - } - } - } - else { - this.selectedItems = []; - } - this.onChangeCallback(value); - } - // From ControlValueAccessor interface - registerOnChange(fn) { - this.onChangeCallback = fn; - } - // From ControlValueAccessor interface - registerOnTouched(fn) { - this.onTouchedCallback = fn; - } - // Set touched on blur - onTouched() { - this.closeDropdown(); - this.onTouchedCallback(); - } - trackByFn(index, item) { - return item.id; - } - isSelected(clickedItem) { - let found = false; - this.selectedItems.forEach(item => { - if (clickedItem.id === item.id) { - found = true; - } - }); - return found; - } - isLimitSelectionReached() { - return this._settings.limitSelection === this.selectedItems.length; - } - isAllItemsSelected() { - // get disabld item count - let filteredItems = this.listFilterPipe.transform(this._data, this.filter); - const itemDisabledCount = filteredItems.filter(item => item.isDisabled).length; - // take disabled items into consideration when checking - if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) { - return false; - } - return filteredItems.length === this.selectedItems.length + itemDisabledCount; - } - showButton() { - if (!this._settings.singleSelection) { - if (this._settings.limitSelection > 0) { - return false; - } - // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false; - return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0; - } - else { - // should be disabled in single selection mode - return false; - } - } - itemShowRemaining() { - return this.selectedItems.length - this._settings.itemsShowLimit; - } - addSelected(item) { - if (this._settings.singleSelection) { - this.selectedItems = []; - this.selectedItems.push(item); - } - else { - this.selectedItems.push(item); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onSelect.emit(this.emittedValue(item)); - } - removeSelected(itemSel) { - this.selectedItems.forEach(item => { - if (itemSel.id === item.id) { - this.selectedItems.splice(this.selectedItems.indexOf(item), 1); - } - }); - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onDeSelect.emit(this.emittedValue(itemSel)); - } - emittedValue(val) { - const selected = []; - if (Array.isArray(val)) { - val.map(item => { - selected.push(this.objectify(item)); - }); - } - else { - if (val) { - return this.objectify(val); - } - } - return selected; - } - objectify(val) { - if (this._sourceDataType === 'object') { - const obj = {}; - obj[this._settings.idField] = val.id; - obj[this._settings.textField] = val.text; - if (this._sourceDataFields.includes(this._settings.disabledField)) { - obj[this._settings.disabledField] = val.isDisabled; - } - return obj; - } - if (this._sourceDataType === 'number') { - return Number(val.id); - } - else { - return val.text; - } - } - toggleDropdown(evt) { - evt.preventDefault(); - if (this.disabled && this._settings.singleSelection) { - return; - } - this._settings.defaultOpen = !this._settings.defaultOpen; - if (!this._settings.defaultOpen) { - this.onDropDownClose.emit(); - } - } - closeDropdown() { - this._settings.defaultOpen = false; - // clear search text - if (this._settings.clearSearchFilter) { - this.filter.text = ""; - } - this.onDropDownClose.emit(); - } - toggleSelectAll() { - if (this.disabled) { - return false; - } - if (!this.isAllItemsSelected()) { - // filter out disabled item first before slicing - this.selectedItems = this.listFilterPipe.transform(this._data, this.filter).filter(item => !item.isDisabled).slice(); - this.onSelectAll.emit(this.emittedValue(this.selectedItems)); - } - else { - this.selectedItems = []; - this.onDeSelectAll.emit(this.emittedValue(this.selectedItems)); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - } - getFields(inputData) { - const fields = []; - if (typeof inputData !== "object") { - return fields; - } - // tslint:disable-next-line:forin - for (const prop in inputData) { - fields.push(prop); - } - return fields; - } -}; -MultiSelectComponent.ctorParameters = () => [ - { type: ListFilterPipe } -]; -tslib_1.__decorate([ - Input() -], MultiSelectComponent.prototype, "placeholder", null); -tslib_1.__decorate([ - Input() -], MultiSelectComponent.prototype, "disabled", void 0); -tslib_1.__decorate([ - Input() -], MultiSelectComponent.prototype, "settings", null); -tslib_1.__decorate([ - Input() -], MultiSelectComponent.prototype, "data", null); -tslib_1.__decorate([ - Output("onFilterChange") -], MultiSelectComponent.prototype, "onFilterChange", void 0); -tslib_1.__decorate([ - Output("onDropDownClose") -], MultiSelectComponent.prototype, "onDropDownClose", void 0); -tslib_1.__decorate([ - Output("onSelect") -], MultiSelectComponent.prototype, "onSelect", void 0); -tslib_1.__decorate([ - Output("onDeSelect") -], MultiSelectComponent.prototype, "onDeSelect", void 0); -tslib_1.__decorate([ - Output("onSelectAll") -], MultiSelectComponent.prototype, "onSelectAll", void 0); -tslib_1.__decorate([ - Output("onDeSelectAll") -], MultiSelectComponent.prototype, "onDeSelectAll", void 0); -tslib_1.__decorate([ - HostListener("blur") -], MultiSelectComponent.prototype, "onTouched", null); -MultiSelectComponent = tslib_1.__decorate([ - Component({ - selector: "ng-multiselect-dropdown", - template: "
\n
\n \n {{_placeholder}}\n _settings.itemsShowLimit-1\">\n {{item.text}}\n x\n \n \n 0\">+{{itemShowRemaining()}}\n \n \n \n
\n
\n
    \n
  • 0 || _settings.allowRemoteDataSearch) && !_settings.singleSelection && _settings.enableCheckAll && _settings.limitSelection===-1\" class=\"multiselect-item-checkbox\" style=\"border-bottom: 1px solid #ccc;padding:10px\">\n \n
    {{!isAllItemsSelected() ? _settings.selectAllText : _settings.unSelectAllText}}
    \n
  • \n
  • 0 || _settings.allowRemoteDataSearch) && _settings.allowSearchFilter\">\n \n
  • \n
\n
    \n
  • \n \n
    {{item.text}}
    \n
  • \n
  • \n
    {{_settings.noDataAvailablePlaceholderText}}
    \n
  • \n
\n
\n
\n", - providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR], - changeDetection: ChangeDetectionStrategy.OnPush, - styles: [".multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\"\"}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:\"\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:\"\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:\"\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}"] - }) -], MultiSelectComponent); -export { MultiSelectComponent }; -export { ɵ0 }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctbXVsdGlzZWxlY3QtZHJvcGRvd24vIiwic291cmNlcyI6WyJtdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQXFCLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFRO0lBQ2xELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztJQUNuRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFDRixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7O0FBU3RCLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0lBOEYvQixZQUFvQixjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQTVGMUMsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO1FBQ3BDLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsUUFBUSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsK0VBQStFO1FBQ3ZHLHNCQUFpQixHQUFrQixFQUFFLENBQUMsQ0FBQyxpQ0FBaUM7UUFDaEYsV0FBTSxHQUFhLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMs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RyxFQUFFLENBQUM7UUFDbEIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELGlDQUFpQztRQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7O1lBL05vQyxjQUFjOztBQS9EakQ7SUFEQyxLQUFLLEVBQUU7dURBT1A7QUFFRDtJQURDLEtBQUssRUFBRTtzREFDUztBQUdqQjtJQURDLEtBQUssRUFBRTtvREFPUDtBQUdEO0lBREMsS0FBSyxFQUFFO2dEQWtCUDtBQUdEO0lBREMsTUFBTSxDQUFDLGdCQUFnQixDQUFDOzREQUN3QztBQUVqRTtJQURDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQzs2REFDd0M7QUFHbEU7SUFEQyxNQUFNLENBQUMsVUFBVSxDQUFDO3NEQUN3QztBQUczRDtJQURDLE1BQU0sQ0FBQyxZQUFZLENBQUM7d0RBQ3dDO0FBRzdEO0lBREMsTUFBTSxDQUFDLGFBQWEsQ0FBQzt5REFDc0Q7QUFHNUU7SUFEQyxNQUFNLENBQUMsZUFBZSxDQUFDOzJEQUNzRDtBQW1GOUU7SUFEQyxZQUFZLENBQUMsTUFBTSxDQUFDO3FEQUlwQjtBQTNLVSxvQkFBb0I7SUFQaEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLHlCQUF5QjtRQUNuQyxrbUZBQTRDO1FBRTVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO1FBQzVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNoRCxDQUFDO0dBQ1csb0JBQW9CLENBNlRoQztTQTdUWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBMaXN0SXRlbSwgSURyb3Bkb3duU2V0dGluZ3MgfSBmcm9tIFwiLi9tdWx0aXNlbGVjdC5tb2RlbFwiO1xuaW1wb3J0IHsgTGlzdEZpbHRlclBpcGUgfSBmcm9tIFwiLi9saXN0LWZpbHRlci5waXBlXCI7XG5cbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibmctbXVsdGlzZWxlY3QtZHJvcGRvd25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL211bHRpLXNlbGVjdC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgcHJvdmlkZXJzOiBbRFJPUERPV05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgX3NldHRpbmdzOiBJRHJvcGRvd25TZXR0aW5ncztcbiAgcHVibGljIF9kYXRhOiBBcnJheTxMaXN0SXRlbT4gPSBbXTtcbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IEFycmF5PExpc3RJdGVtPiA9IFtdO1xuICBwdWJsaWMgaXNEcm9wZG93bk9wZW4gPSB0cnVlO1xuICBfcGxhY2Vob2xkZXIgPSBcIlNlbGVjdFwiO1xuICBwcml2YXRlIF9zb3VyY2VEYXRhVHlwZSA9IG51bGw7IC8vIHRvIGtlZXAgbm90ZSBvZiB0aGUgc291cmNlIGRhdGEgdHlwZS4gY291bGQgYmUgYXJyYXkgb2Ygc3RyaW5nL251bWJlci9vYmplY3RcbiAgcHJpdmF0ZSBfc291cmNlRGF0YUZpZWxkczogQXJyYXk8U3RyaW5nPiA9IFtdOyAvLyBzdG9yZSBzb3VyY2UgZGF0YSBmaWVsZHMgbmFtZXNcbiAgZmlsdGVyOiBMaXN0SXRlbSA9IG5ldyBMaXN0SXRlbSh0aGlzLmRhdGEpO1xuICBkZWZhdWx0U2V0dGluZ3M6IElEcm9wZG93blNldHRpbmdzID0ge1xuICAgIHNpbmdsZVNlbGVjdGlvbjogZmFsc2UsXG4gICAgaWRGaWVsZDogXCJpZFwiLFxuICAgIHRleHRGaWVsZDogXCJ0ZXh0XCIsXG4gICAgZGlzYWJsZWRGaWVsZDogXCJpc0Rpc2FibGVkXCIsXG4gICAgZW5hYmxlQ2hlY2tBbGw6IHRydWUsXG4gICAgc2VsZWN0QWxsVGV4dDogXCJTZWxlY3QgQWxsXCIsXG4gICAgdW5TZWxlY3RBbGxUZXh0OiBcIlVuU2VsZWN0IEFsbFwiLFxuICAgIGFsbG93U2VhcmNoRmlsdGVyOiBmYWxzZSxcbiAgICBsaW1pdFNlbGVjdGlvbjogLTEsXG4gICAgY2xlYXJTZWFyY2hGaWx0ZXI6IHRydWUsXG4gICAgbWF4SGVpZ2h0OiAxOTcsXG4gICAgaXRlbXNTaG93TGltaXQ6IDk5OTk5OTk5OTk5OSxcbiAgICBzZWFyY2hQbGFjZWhvbGRlclRleHQ6IFwiU2VhcmNoXCIsXG4gICAgbm9EYXRhQXZhaWxhYmxlUGxhY2Vob2xkZXJUZXh0OiBcIk5vIGRhdGEgYXZhaWxhYmxlXCIsXG4gICAgY2xvc2VEcm9wRG93bk9uU2VsZWN0aW9uOiBmYWxzZSxcbiAgICBzaG93U2VsZWN0ZWRJdGVtc0F0VG9wOiBmYWxzZSxcbiAgICBkZWZhdWx0T3BlbjogZmFsc2UsXG4gICAgYWxsb3dSZW1vdGVEYXRhU2VhcmNoOiBmYWxzZVxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBcIlNlbGVjdFwiO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2V0dGluZ3ModmFsdWU6IElEcm9wZG93blNldHRpbmdzKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0U2V0dGluZ3MsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHRoaXMuZGVmYXVsdFNldHRpbmdzKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEodmFsdWU6IEFycmF5PGFueT4pIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl9kYXRhID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IHZhbHVlWzBdO1xuICAgICAgdGhpcy5fc291cmNlRGF0YVR5cGUgPSB0eXBlb2YgZmlyc3RJdGVtO1xuICAgICAgdGhpcy5fc291cmNlRGF0YUZpZWxkcyA9IHRoaXMuZ2V0RmllbGRzKGZpcnN0SXRlbSk7XG4gICAgICB0aGlzLl9kYXRhID0gdmFsdWUubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgIHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBpdGVtID09PSBcIm51bWJlclwiXG4gICAgICAgICAgPyBuZXcgTGlzdEl0ZW0oaXRlbSlcbiAgICAgICAgICA6IG5ldyBMaXN0SXRlbSh7XG4gICAgICAgICAgICAgIGlkOiBpdGVtW3RoaXMuX3NldHRpbmdzLmlkRmllbGRdLFxuICAgICAgICAgICAgICB0ZXh0OiBpdGVtW3RoaXMuX3NldHRpbmdzLnRleHRGaWVsZF0sXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGl0ZW1bdGhpcy5fc2V0dGluZ3MuZGlzYWJsZWRGaWVsZF1cbiAgICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoXCJvbkZpbHRlckNoYW5nZVwiKVxuICBvbkZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPExpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KFwib25Ecm9wRG93bkNsb3NlXCIpXG4gIG9uRHJvcERvd25DbG9zZTogRXZlbnRFbWl0dGVyPExpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoXCJvblNlbGVjdFwiKVxuICBvblNlbGVjdDogRXZlbnRFbWl0dGVyPExpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoXCJvbkRlU2VsZWN0XCIpXG4gIG9uRGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KFwib25TZWxlY3RBbGxcIilcbiAgb25TZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxhbnk+PigpO1xuXG4gIEBPdXRwdXQoXCJvbkRlU2VsZWN0QWxsXCIpXG4gIG9uRGVTZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxhbnk+PigpO1xuXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuXG4gIG9uRmlsdGVyVGV4dENoYW5nZSgkZXZlbnQpIHtcbiAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGlzdEZpbHRlclBpcGU6TGlzdEZpbHRlclBpcGUpIHt9XG5cbiAgb25JdGVtQ2xpY2soJGV2ZW50OiBhbnksIGl0ZW06IExpc3RJdGVtKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgaXRlbS5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmlzU2VsZWN0ZWQoaXRlbSk7XG4gICAgY29uc3QgYWxsb3dBZGQgPSB0aGlzLl9zZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PT0gLTEgfHwgKHRoaXMuX3NldHRpbmdzLmxpbWl0U2VsZWN0aW9uID4gMCAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoIDwgdGhpcy5fc2V0dGluZ3MubGltaXRTZWxlY3Rpb24pO1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIGlmIChhbGxvd0FkZCkge1xuICAgICAgICB0aGlzLmFkZFNlbGVjdGVkKGl0ZW0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKGl0ZW0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uICYmIHRoaXMuX3NldHRpbmdzLmNsb3NlRHJvcERvd25PblNlbGVjdGlvbikge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuX3NldHRpbmdzLnNpbmdsZVNlbGVjdGlvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPj0gMSkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RJdGVtID0gdmFsdWVbMF07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXG4gICAgICAgICAgICAgIHR5cGVvZiBmaXJzdEl0ZW0gPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGZpcnN0SXRlbSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgICAgID8gbmV3IExpc3RJdGVtKGZpcnN0SXRlbSlcbiAgICAgICAgICAgICAgICA6IG5ldyBMaXN0SXRlbSh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBmaXJzdEl0ZW1bdGhpcy5fc2V0dGluZ3MuaWRGaWVsZF0sXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGZpcnN0SXRlbVt0aGlzLl9zZXR0aW5ncy50ZXh0RmllbGRdLFxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmaXJzdEl0ZW1bdGhpcy5fc2V0dGluZ3MuZGlzYWJsZWRGaWVsZF1cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoZS5ib2R5Lm1zZyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IF9kYXRhID0gdmFsdWUubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgdHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGl0ZW0gPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgID8gbmV3IExpc3RJdGVtKGl0ZW0pXG4gICAgICAgICAgICA6IG5ldyBMaXN0SXRlbSh7XG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW1bdGhpcy5fc2V0dGluZ3MuaWRGaWVsZF0sXG4gICAgICAgICAgICAgICAgdGV4dDogaXRlbVt0aGlzLl9zZXR0aW5ncy50ZXh0RmllbGRdLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGl0ZW1bdGhpcy5fc2V0dGluZ3MuZGlzYWJsZWRGaWVsZF1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzLmxpbWl0U2VsZWN0aW9uID4gMCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IF9kYXRhLnNwbGljZSgwLCB0aGlzLl9zZXR0aW5ncy5saW1pdFNlbGVjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gX2RhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2YWx1ZSk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICAvLyBTZXQgdG91Y2hlZCBvbiBibHVyXG4gIEBIb3N0TGlzdGVuZXIoXCJibHVyXCIpXG4gIHB1YmxpYyBvblRvdWNoZWQoKSB7XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cblxuICBpc1NlbGVjdGVkKGNsaWNrZWRJdGVtOiBMaXN0SXRlbSkge1xuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGNsaWNrZWRJdGVtLmlkID09PSBpdGVtLmlkKSB7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuICBpc0xpbWl0U2VsZWN0aW9uUmVhY2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT09IHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGg7XG4gIH1cblxuICBpc0FsbEl0ZW1zU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gZ2V0IGRpc2FibGQgaXRlbSBjb3VudFxuICAgIGxldCBmaWx0ZXJlZEl0ZW1zID0gdGhpcy5saXN0RmlsdGVyUGlwZS50cmFuc2Zvcm0odGhpcy5fZGF0YSx0aGlzLmZpbHRlcik7XG4gICAgY29uc3QgaXRlbURpc2FibGVkQ291bnQgPSBmaWx0ZXJlZEl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uaXNEaXNhYmxlZCkubGVuZ3RoO1xuICAgIC8vIHRha2UgZGlzYWJsZWQgaXRlbXMgaW50byBjb25zaWRlcmF0aW9uIHdoZW4gY2hlY2tpbmdcbiAgICBpZiAoKCF0aGlzLmRhdGEgfHwgdGhpcy5kYXRhLmxlbmd0aCA9PT0gMCkgJiYgdGhpcy5fc2V0dGluZ3MuYWxsb3dSZW1vdGVEYXRhU2VhcmNoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCArIGl0ZW1EaXNhYmxlZENvdW50O1xuICB9XG5cbiAgc2hvd0J1dHRvbigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX3NldHRpbmdzLnNpbmdsZVNlbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuX3NldHRpbmdzLmxpbWl0U2VsZWN0aW9uID4gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyB0aGlzLl9zZXR0aW5ncy5lbmFibGVDaGVja0FsbCA9IHRoaXMuX3NldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09PSAtMSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIHJldHVybiB0cnVlOyAvLyAhdGhpcy5fc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uICYmIHRoaXMuX3NldHRpbmdzLmVuYWJsZUNoZWNrQWxsICYmIHRoaXMuX2RhdGEubGVuZ3RoID4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2hvdWxkIGJlIGRpc2FibGVkIGluIHNpbmdsZSBzZWxlY3Rpb24gbW9kZVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGl0ZW1TaG93UmVtYWluaW5nKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSB0aGlzLl9zZXR0aW5ncy5pdGVtc1Nob3dMaW1pdDtcbiAgfVxuXG4gIGFkZFNlbGVjdGVkKGl0ZW06IExpc3RJdGVtKSB7XG4gICAgaWYgKHRoaXMuX3NldHRpbmdzLnNpbmdsZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmVtaXR0ZWRWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpKTtcbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQodGhpcy5lbWl0dGVkVmFsdWUoaXRlbSkpO1xuICB9XG5cbiAgcmVtb3ZlU2VsZWN0ZWQoaXRlbVNlbDogTGlzdEl0ZW0pIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtU2VsLmlkID09PSBpdGVtLmlkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSksIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmVtaXR0ZWRWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpKTtcbiAgICB0aGlzLm9uRGVTZWxlY3QuZW1pdCh0aGlzLmVtaXR0ZWRWYWx1ZShpdGVtU2VsKSk7XG4gIH1cblxuICBlbWl0dGVkVmFsdWUodmFsOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgdmFsLm1hcChpdGVtID0+IHtcbiAgICAgICAgc2VsZWN0ZWQucHVzaCh0aGlzLm9iamVjdGlmeShpdGVtKSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHZhbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RpZnkodmFsKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGVkO1xuICB9XG5cbiAgb2JqZWN0aWZ5KHZhbDogTGlzdEl0ZW0pIHtcbiAgICBpZiAodGhpcy5fc291cmNlRGF0YVR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBvYmogPSB7fTtcbiAgICAgIG9ialt0aGlzLl9zZXR0aW5ncy5pZEZpZWxkXSA9IHZhbC5pZDtcbiAgICAgIG9ialt0aGlzLl9zZXR0aW5ncy50ZXh0RmllbGRdID0gdmFsLnRleHQ7XG4gICAgICBpZiAodGhpcy5fc291cmNlRGF0YUZpZWxkcy5pbmNsdWRlcyh0aGlzLl9zZXR0aW5ncy5kaXNhYmxlZEZpZWxkKSkge1xuICAgICAgICBvYmpbdGhpcy5fc2V0dGluZ3MuZGlzYWJsZWRGaWVsZF0gPSB2YWwuaXNEaXNhYmxlZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zb3VyY2VEYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBOdW1iZXIodmFsLmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHZhbC50ZXh0O1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKGV2dCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkICYmIHRoaXMuX3NldHRpbmdzLnNpbmdsZVNlbGVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9zZXR0aW5ncy5kZWZhdWx0T3BlbiA9ICF0aGlzLl9zZXR0aW5ncy5kZWZhdWx0T3BlbjtcbiAgICBpZiAoIXRoaXMuX3NldHRpbmdzLmRlZmF1bHRPcGVuKSB7XG4gICAgICB0aGlzLm9uRHJvcERvd25DbG9zZS5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VEcm9wZG93bigpIHtcbiAgICB0aGlzLl9zZXR0aW5ncy5kZWZhdWx0T3BlbiA9IGZhbHNlO1xuICAgIC8vIGNsZWFyIHNlYXJjaCB0ZXh0XG4gICAgaWYgKHRoaXMuX3NldHRpbmdzLmNsZWFyU2VhcmNoRmlsdGVyKSB7XG4gICAgICB0aGlzLmZpbHRlci50ZXh0ID0gXCJcIjtcbiAgICB9XG4gICAgdGhpcy5vbkRyb3BEb3duQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0FsbEl0ZW1zU2VsZWN0ZWQoKSkge1xuICAgICAgLy8gZmlsdGVyIG91dCBkaXNhYmxlZCBpdGVtIGZpcnN0IGJlZm9yZSBzbGljaW5nXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmxpc3RGaWx0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLl9kYXRhLHRoaXMuZmlsdGVyKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pc0Rpc2FibGVkKS5zbGljZSgpO1xuICAgICAgdGhpcy5vblNlbGVjdEFsbC5lbWl0KHRoaXMuZW1pdHRlZFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgIHRoaXMub25EZVNlbGVjdEFsbC5lbWl0KHRoaXMuZW1pdHRlZFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcykpO1xuICAgIH1cbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5lbWl0dGVkVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKSk7XG4gIH1cblxuICBnZXRGaWVsZHMoaW5wdXREYXRhKSB7XG4gICAgY29uc3QgZmllbGRzID0gW107XG4gICAgaWYgKHR5cGVvZiBpbnB1dERhdGEgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgfVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBpbnB1dERhdGEpIHtcbiAgICAgIGZpZWxkcy5wdXNoKHByb3ApO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGRzO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.model.js b/frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.model.js deleted file mode 100644 index 9b5d58f4..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm2015/multiselect.model.js +++ /dev/null @@ -1,14 +0,0 @@ -export class ListItem { - constructor(source) { - if (typeof source === 'string' || typeof source === 'number') { - this.id = this.text = source; - this.isDisabled = false; - } - if (typeof source === 'object') { - this.id = source.id; - this.text = source.text; - this.isDisabled = source.isDisabled; - } - } -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi8iLCJzb3VyY2VzIjpbIm11bHRpc2VsZWN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCQSxNQUFNLE9BQU8sUUFBUTtJQUtuQixZQUFtQixNQUFXO1FBQzVCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUM1RCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7U0FDckM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElEcm9wZG93blNldHRpbmdzIHtcbiAgc2luZ2xlU2VsZWN0aW9uPzogYm9vbGVhbjtcbiAgaWRGaWVsZD86IHN0cmluZztcbiAgdGV4dEZpZWxkPzogc3RyaW5nO1xuICBkaXNhYmxlZEZpZWxkPzogc3RyaW5nO1xuICBlbmFibGVDaGVja0FsbD86IGJvb2xlYW47XG4gIHNlbGVjdEFsbFRleHQ/OiBzdHJpbmc7XG4gIHVuU2VsZWN0QWxsVGV4dD86IHN0cmluZztcbiAgYWxsb3dTZWFyY2hGaWx0ZXI/OiBib29sZWFuO1xuICBjbGVhclNlYXJjaEZpbHRlcj86IGJvb2xlYW47XG4gIG1heEhlaWdodD86IG51bWJlcjtcbiAgaXRlbXNTaG93TGltaXQ/OiBudW1iZXI7XG4gIGxpbWl0U2VsZWN0aW9uPzogbnVtYmVyO1xuICBzZWFyY2hQbGFjZWhvbGRlclRleHQ/OiBzdHJpbmc7XG4gIG5vRGF0YUF2YWlsYWJsZVBsYWNlaG9sZGVyVGV4dD86IHN0cmluZztcbiAgY2xvc2VEcm9wRG93bk9uU2VsZWN0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1NlbGVjdGVkSXRlbXNBdFRvcD86IGJvb2xlYW47XG4gIGRlZmF1bHRPcGVuPzogYm9vbGVhbjtcbiAgYWxsb3dSZW1vdGVEYXRhU2VhcmNoPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIExpc3RJdGVtIHtcbiAgaWQ6IFN0cmluZyB8IG51bWJlcjtcbiAgdGV4dDogU3RyaW5nIHwgbnVtYmVyO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc291cmNlOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHNvdXJjZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuaWQgPSB0aGlzLnRleHQgPSBzb3VyY2U7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLmlkID0gc291cmNlLmlkO1xuICAgICAgdGhpcy50ZXh0ID0gc291cmNlLnRleHQ7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBzb3VyY2UuaXNEaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.js b/frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.js deleted file mode 100644 index 76cc82ff..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Generated bundle index. Do not edit. - */ -export * from './public_api'; -export { ClickOutsideDirective as ɵc } from './click-outside.directive'; -export { ListFilterPipe as ɵb } from './list-filter.pipe'; -export { DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa } from './multiselect.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbXVsdGlzZWxlY3QtZHJvcGRvd24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi8iLCJzb3VyY2VzIjpbIm5nLW11bHRpc2VsZWN0LWRyb3Bkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFDLCtCQUErQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0NsaWNrT3V0c2lkZURpcmVjdGl2ZSBhcyDJtWN9IGZyb20gJy4vY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtMaXN0RmlsdGVyUGlwZSBhcyDJtWJ9IGZyb20gJy4vbGlzdC1maWx0ZXIucGlwZSc7XG5leHBvcnQge0RST1BET1dOX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IgYXMgybVhfSBmcm9tICcuL211bHRpc2VsZWN0LmNvbXBvbmVudCc7Il19 \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.module.js b/frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.module.js deleted file mode 100644 index a6165da0..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm2015/ng-multiselect-dropdown.module.js +++ /dev/null @@ -1,25 +0,0 @@ -var NgMultiSelectDropDownModule_1; -import * as tslib_1 from "tslib"; -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; -import { MultiSelectComponent } from './multiselect.component'; -import { ClickOutsideDirective } from './click-outside.directive'; -import { ListFilterPipe } from './list-filter.pipe'; -let NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = class NgMultiSelectDropDownModule { - static forRoot() { - return { - ngModule: NgMultiSelectDropDownModule_1 - }; - } -}; -NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = tslib_1.__decorate([ - NgModule({ - imports: [CommonModule, FormsModule], - declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe], - providers: [ListFilterPipe], - exports: [MultiSelectComponent] - }) -], NgMultiSelectDropDownModule); -export { NgMultiSelectDropDownModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbXVsdGlzZWxlY3QtZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctbXVsdGlzZWxlY3QtZHJvcGRvd24vIiwic291cmNlcyI6WyJuZy1tdWx0aXNlbGVjdC1kcm9wZG93bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVNwRCxJQUFhLDJCQUEyQixtQ0FBeEMsTUFBYSwyQkFBMkI7SUFDcEMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLDZCQUEyQjtTQUN0QyxDQUFDO0lBQ0osQ0FBQztDQUNKLENBQUE7QUFOWSwyQkFBMkI7SUFQdkMsUUFBUSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztRQUNwQyxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLENBQUM7UUFDM0UsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQzNCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO0tBQ2hDLENBQUM7R0FFVywyQkFBMkIsQ0FNdkM7U0FOWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL211bHRpc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpc3RGaWx0ZXJQaXBlIH0gZnJvbSAnLi9saXN0LWZpbHRlci5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtNdWx0aVNlbGVjdENvbXBvbmVudCwgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBMaXN0RmlsdGVyUGlwZV0sXG4gIHByb3ZpZGVyczogW0xpc3RGaWx0ZXJQaXBlXSxcbiAgZXhwb3J0czogW011bHRpU2VsZWN0Q29tcG9uZW50XVxufSlcblxuZXhwb3J0IGNsYXNzIE5nTXVsdGlTZWxlY3REcm9wRG93bk1vZHVsZSB7XG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ011bHRpU2VsZWN0RHJvcERvd25Nb2R1bGU+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5nTW9kdWxlOiBOZ011bHRpU2VsZWN0RHJvcERvd25Nb2R1bGVcbiAgICAgIH07XG4gICAgfVxufVxuIl19 \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm2015/public_api.js b/frontend/node_modules/ng-multiselect-dropdown/esm2015/public_api.js deleted file mode 100644 index da739289..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm2015/public_api.js +++ /dev/null @@ -1,3 +0,0 @@ -export { MultiSelectComponent } from './multiselect.component'; -export { NgMultiSelectDropDownModule } from './ng-multiselect-dropdown.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLW11bHRpc2VsZWN0LWRyb3Bkb3duLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE11bHRpU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0IHsgTmdNdWx0aVNlbGVjdERyb3BEb3duTW9kdWxlIH0gZnJvbSAnLi9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi5tb2R1bGUnO1xuZXhwb3J0IHsgSURyb3Bkb3duU2V0dGluZ3MgfSBmcm9tICcuL211bHRpc2VsZWN0Lm1vZGVsJztcbiJdfQ== \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm5/click-outside.directive.js b/frontend/node_modules/ng-multiselect-dropdown/esm5/click-outside.directive.js deleted file mode 100644 index d7774612..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm5/click-outside.directive.js +++ /dev/null @@ -1,34 +0,0 @@ -import * as tslib_1 from "tslib"; -import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core'; -var ClickOutsideDirective = /** @class */ (function () { - function ClickOutsideDirective(_elementRef) { - this._elementRef = _elementRef; - this.clickOutside = new EventEmitter(); - } - ClickOutsideDirective.prototype.onClick = function (event, targetElement) { - if (!targetElement) { - return; - } - var clickedInside = this._elementRef.nativeElement.contains(targetElement); - if (!clickedInside) { - this.clickOutside.emit(event); - } - }; - ClickOutsideDirective.ctorParameters = function () { return [ - { type: ElementRef } - ]; }; - tslib_1.__decorate([ - Output() - ], ClickOutsideDirective.prototype, "clickOutside", void 0); - tslib_1.__decorate([ - HostListener('document:click', ['$event', '$event.target']) - ], ClickOutsideDirective.prototype, "onClick", null); - ClickOutsideDirective = tslib_1.__decorate([ - Directive({ - selector: '[clickOutside]' - }) - ], ClickOutsideDirective); - return ClickOutsideDirective; -}()); -export { ClickOutsideDirective }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi8iLCJzb3VyY2VzIjpbImNsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt4RjtJQUNJLCtCQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUlwQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFIckQsQ0FBQztJQU1NLHVDQUFPLEdBQWQsVUFBZSxLQUFpQixFQUFFLGFBQTBCO1FBQ3hELElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBRUQsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDOztnQkFoQmdDLFVBQVU7O0lBSTNDO1FBREMsTUFBTSxFQUFFOytEQUM0QztJQUdyRDtRQURDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQzt3REFVM0Q7SUFqQlEscUJBQXFCO1FBSGpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7U0FDN0IsQ0FBQztPQUNXLHFCQUFxQixDQWtCakM7SUFBRCw0QkFBQztDQUFBLEFBbEJELElBa0JDO1NBbEJZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbY2xpY2tPdXRzaWRlXSdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsaWNrT3V0c2lkZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xuICAgICAgICAgICAgdGhpcy5jbGlja091dHNpZGUuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm5/list-filter.pipe.js b/frontend/node_modules/ng-multiselect-dropdown/esm5/list-filter.pipe.js deleted file mode 100644 index e5c252c2..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm5/list-filter.pipe.js +++ /dev/null @@ -1,30 +0,0 @@ -import * as tslib_1 from "tslib"; -import { Pipe } from '@angular/core'; -var ListFilterPipe = /** @class */ (function () { - function ListFilterPipe() { - } - ListFilterPipe.prototype.transform = function (items, filter) { - var _this = this; - if (!items || !filter) { - return items; - } - return items.filter(function (item) { return _this.applyFilter(item, filter); }); - }; - ListFilterPipe.prototype.applyFilter = function (item, filter) { - if (typeof item.text === 'string' && typeof filter.text === 'string') { - return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1); - } - else { - return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1); - } - }; - ListFilterPipe = tslib_1.__decorate([ - Pipe({ - name: 'multiSelectFilter', - pure: false - }) - ], ListFilterPipe); - return ListFilterPipe; -}()); -export { ListFilterPipe }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLW11bHRpc2VsZWN0LWRyb3Bkb3duLyIsInNvdXJjZXMiOlsibGlzdC1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFRcEQ7SUFBQTtJQWVBLENBQUM7SUFkRyxrQ0FBUyxHQUFULFVBQVUsS0FBaUIsRUFBRSxNQUFnQjtRQUE3QyxpQkFLQztRQUpHLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFjLElBQUssT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxvQ0FBVyxHQUFYLFVBQVksSUFBYyxFQUFFLE1BQWdCO1FBQ3hDLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzRzthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pJO0lBQ0wsQ0FBQztJQWRRLGNBQWM7UUFKMUIsSUFBSSxDQUFDO1lBQ0YsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixJQUFJLEVBQUUsS0FBSztTQUNkLENBQUM7T0FDVyxjQUFjLENBZTFCO0lBQUQscUJBQUM7Q0FBQSxBQWZELElBZUM7U0FmWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4vbXVsdGlzZWxlY3QubW9kZWwnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ211bHRpU2VsZWN0RmlsdGVyJyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0RmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShpdGVtczogTGlzdEl0ZW1bXSwgZmlsdGVyOiBMaXN0SXRlbSk6IExpc3RJdGVtW10ge1xuICAgICAgICBpZiAoIWl0ZW1zIHx8ICFmaWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtOiBMaXN0SXRlbSkgPT4gdGhpcy5hcHBseUZpbHRlcihpdGVtLCBmaWx0ZXIpKTtcbiAgICB9XG5cbiAgICBhcHBseUZpbHRlcihpdGVtOiBMaXN0SXRlbSwgZmlsdGVyOiBMaXN0SXRlbSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0udGV4dCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGZpbHRlci50ZXh0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuICEoZmlsdGVyLnRleHQgJiYgaXRlbS50ZXh0ICYmIGl0ZW0udGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyLnRleHQudG9Mb3dlckNhc2UoKSkgPT09IC0xKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAhKGZpbHRlci50ZXh0ICYmIGl0ZW0udGV4dCAmJiBpdGVtLnRleHQudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyLnRleHQudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.component.js b/frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.component.js deleted file mode 100644 index 43d080f4..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.component.js +++ /dev/null @@ -1,367 +0,0 @@ -import * as tslib_1 from "tslib"; -import { Component, HostListener, forwardRef, Input, Output, EventEmitter, ChangeDetectionStrategy } from "@angular/core"; -import { NG_VALUE_ACCESSOR } from "@angular/forms"; -import { ListItem } from "./multiselect.model"; -import { ListFilterPipe } from "./list-filter.pipe"; -export var DROPDOWN_CONTROL_VALUE_ACCESSOR = { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(function () { return MultiSelectComponent; }), - multi: true -}; -var noop = function () { }; -var ɵ0 = noop; -var MultiSelectComponent = /** @class */ (function () { - function MultiSelectComponent(listFilterPipe) { - this.listFilterPipe = listFilterPipe; - this._data = []; - this.selectedItems = []; - this.isDropdownOpen = true; - this._placeholder = "Select"; - this._sourceDataType = null; // to keep note of the source data type. could be array of string/number/object - this._sourceDataFields = []; // store source data fields names - this.filter = new ListItem(this.data); - this.defaultSettings = { - singleSelection: false, - idField: "id", - textField: "text", - disabledField: "isDisabled", - enableCheckAll: true, - selectAllText: "Select All", - unSelectAllText: "UnSelect All", - allowSearchFilter: false, - limitSelection: -1, - clearSearchFilter: true, - maxHeight: 197, - itemsShowLimit: 999999999999, - searchPlaceholderText: "Search", - noDataAvailablePlaceholderText: "No data available", - closeDropDownOnSelection: false, - showSelectedItemsAtTop: false, - defaultOpen: false, - allowRemoteDataSearch: false - }; - this.disabled = false; - this.onFilterChange = new EventEmitter(); - this.onDropDownClose = new EventEmitter(); - this.onSelect = new EventEmitter(); - this.onDeSelect = new EventEmitter(); - this.onSelectAll = new EventEmitter(); - this.onDeSelectAll = new EventEmitter(); - this.onTouchedCallback = noop; - this.onChangeCallback = noop; - } - Object.defineProperty(MultiSelectComponent.prototype, "placeholder", { - set: function (value) { - if (value) { - this._placeholder = value; - } - else { - this._placeholder = "Select"; - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MultiSelectComponent.prototype, "settings", { - set: function (value) { - if (value) { - this._settings = Object.assign(this.defaultSettings, value); - } - else { - this._settings = Object.assign(this.defaultSettings); - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MultiSelectComponent.prototype, "data", { - set: function (value) { - var _this = this; - if (!value) { - this._data = []; - } - else { - var firstItem = value[0]; - this._sourceDataType = typeof firstItem; - this._sourceDataFields = this.getFields(firstItem); - this._data = value.map(function (item) { - return typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[_this._settings.idField], - text: item[_this._settings.textField], - isDisabled: item[_this._settings.disabledField] - }); - }); - } - }, - enumerable: true, - configurable: true - }); - MultiSelectComponent.prototype.onFilterTextChange = function ($event) { - this.onFilterChange.emit($event); - }; - MultiSelectComponent.prototype.onItemClick = function ($event, item) { - if (this.disabled || item.isDisabled) { - return false; - } - var found = this.isSelected(item); - var allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection); - if (!found) { - if (allowAdd) { - this.addSelected(item); - } - } - else { - this.removeSelected(item); - } - if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) { - this.closeDropdown(); - } - }; - MultiSelectComponent.prototype.writeValue = function (value) { - var _this = this; - if (value !== undefined && value !== null && value.length > 0) { - if (this._settings.singleSelection) { - try { - if (value.length >= 1) { - var firstItem = value[0]; - this.selectedItems = [ - typeof firstItem === "string" || typeof firstItem === "number" - ? new ListItem(firstItem) - : new ListItem({ - id: firstItem[this._settings.idField], - text: firstItem[this._settings.textField], - isDisabled: firstItem[this._settings.disabledField] - }) - ]; - } - } - catch (e) { - // console.error(e.body.msg); - } - } - else { - var _data = value.map(function (item) { - return typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[_this._settings.idField], - text: item[_this._settings.textField], - isDisabled: item[_this._settings.disabledField] - }); - }); - if (this._settings.limitSelection > 0) { - this.selectedItems = _data.splice(0, this._settings.limitSelection); - } - else { - this.selectedItems = _data; - } - } - } - else { - this.selectedItems = []; - } - this.onChangeCallback(value); - }; - // From ControlValueAccessor interface - MultiSelectComponent.prototype.registerOnChange = function (fn) { - this.onChangeCallback = fn; - }; - // From ControlValueAccessor interface - MultiSelectComponent.prototype.registerOnTouched = function (fn) { - this.onTouchedCallback = fn; - }; - // Set touched on blur - MultiSelectComponent.prototype.onTouched = function () { - this.closeDropdown(); - this.onTouchedCallback(); - }; - MultiSelectComponent.prototype.trackByFn = function (index, item) { - return item.id; - }; - MultiSelectComponent.prototype.isSelected = function (clickedItem) { - var found = false; - this.selectedItems.forEach(function (item) { - if (clickedItem.id === item.id) { - found = true; - } - }); - return found; - }; - MultiSelectComponent.prototype.isLimitSelectionReached = function () { - return this._settings.limitSelection === this.selectedItems.length; - }; - MultiSelectComponent.prototype.isAllItemsSelected = function () { - // get disabld item count - var filteredItems = this.listFilterPipe.transform(this._data, this.filter); - var itemDisabledCount = filteredItems.filter(function (item) { return item.isDisabled; }).length; - // take disabled items into consideration when checking - if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) { - return false; - } - return filteredItems.length === this.selectedItems.length + itemDisabledCount; - }; - MultiSelectComponent.prototype.showButton = function () { - if (!this._settings.singleSelection) { - if (this._settings.limitSelection > 0) { - return false; - } - // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false; - return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0; - } - else { - // should be disabled in single selection mode - return false; - } - }; - MultiSelectComponent.prototype.itemShowRemaining = function () { - return this.selectedItems.length - this._settings.itemsShowLimit; - }; - MultiSelectComponent.prototype.addSelected = function (item) { - if (this._settings.singleSelection) { - this.selectedItems = []; - this.selectedItems.push(item); - } - else { - this.selectedItems.push(item); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onSelect.emit(this.emittedValue(item)); - }; - MultiSelectComponent.prototype.removeSelected = function (itemSel) { - var _this = this; - this.selectedItems.forEach(function (item) { - if (itemSel.id === item.id) { - _this.selectedItems.splice(_this.selectedItems.indexOf(item), 1); - } - }); - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onDeSelect.emit(this.emittedValue(itemSel)); - }; - MultiSelectComponent.prototype.emittedValue = function (val) { - var _this = this; - var selected = []; - if (Array.isArray(val)) { - val.map(function (item) { - selected.push(_this.objectify(item)); - }); - } - else { - if (val) { - return this.objectify(val); - } - } - return selected; - }; - MultiSelectComponent.prototype.objectify = function (val) { - if (this._sourceDataType === 'object') { - var obj = {}; - obj[this._settings.idField] = val.id; - obj[this._settings.textField] = val.text; - if (this._sourceDataFields.includes(this._settings.disabledField)) { - obj[this._settings.disabledField] = val.isDisabled; - } - return obj; - } - if (this._sourceDataType === 'number') { - return Number(val.id); - } - else { - return val.text; - } - }; - MultiSelectComponent.prototype.toggleDropdown = function (evt) { - evt.preventDefault(); - if (this.disabled && this._settings.singleSelection) { - return; - } - this._settings.defaultOpen = !this._settings.defaultOpen; - if (!this._settings.defaultOpen) { - this.onDropDownClose.emit(); - } - }; - MultiSelectComponent.prototype.closeDropdown = function () { - this._settings.defaultOpen = false; - // clear search text - if (this._settings.clearSearchFilter) { - this.filter.text = ""; - } - this.onDropDownClose.emit(); - }; - MultiSelectComponent.prototype.toggleSelectAll = function () { - if (this.disabled) { - return false; - } - if (!this.isAllItemsSelected()) { - // filter out disabled item first before slicing - this.selectedItems = this.listFilterPipe.transform(this._data, this.filter).filter(function (item) { return !item.isDisabled; }).slice(); - this.onSelectAll.emit(this.emittedValue(this.selectedItems)); - } - else { - this.selectedItems = []; - this.onDeSelectAll.emit(this.emittedValue(this.selectedItems)); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - }; - MultiSelectComponent.prototype.getFields = function (inputData) { - var fields = []; - if (typeof inputData !== "object") { - return fields; - } - // tslint:disable-next-line:forin - for (var prop in inputData) { - fields.push(prop); - } - return fields; - }; - MultiSelectComponent.ctorParameters = function () { return [ - { type: ListFilterPipe } - ]; }; - tslib_1.__decorate([ - Input() - ], MultiSelectComponent.prototype, "placeholder", null); - tslib_1.__decorate([ - Input() - ], MultiSelectComponent.prototype, "disabled", void 0); - tslib_1.__decorate([ - Input() - ], MultiSelectComponent.prototype, "settings", null); - tslib_1.__decorate([ - Input() - ], MultiSelectComponent.prototype, "data", null); - tslib_1.__decorate([ - Output("onFilterChange") - ], MultiSelectComponent.prototype, "onFilterChange", void 0); - tslib_1.__decorate([ - Output("onDropDownClose") - ], MultiSelectComponent.prototype, "onDropDownClose", void 0); - tslib_1.__decorate([ - Output("onSelect") - ], MultiSelectComponent.prototype, "onSelect", void 0); - tslib_1.__decorate([ - Output("onDeSelect") - ], MultiSelectComponent.prototype, "onDeSelect", void 0); - tslib_1.__decorate([ - Output("onSelectAll") - ], MultiSelectComponent.prototype, "onSelectAll", void 0); - tslib_1.__decorate([ - Output("onDeSelectAll") - ], MultiSelectComponent.prototype, "onDeSelectAll", void 0); - tslib_1.__decorate([ - HostListener("blur") - ], MultiSelectComponent.prototype, "onTouched", null); - MultiSelectComponent = tslib_1.__decorate([ - Component({ - selector: "ng-multiselect-dropdown", - template: "
\n
\n \n {{_placeholder}}\n _settings.itemsShowLimit-1\">\n {{item.text}}\n x\n \n \n 0\">+{{itemShowRemaining()}}\n \n \n \n
\n
\n
    \n
  • 0 || _settings.allowRemoteDataSearch) && !_settings.singleSelection && _settings.enableCheckAll && _settings.limitSelection===-1\" class=\"multiselect-item-checkbox\" style=\"border-bottom: 1px solid #ccc;padding:10px\">\n \n
    {{!isAllItemsSelected() ? _settings.selectAllText : _settings.unSelectAllText}}
    \n
  • \n
  • 0 || _settings.allowRemoteDataSearch) && _settings.allowSearchFilter\">\n \n
  • \n
\n
    \n
  • \n \n
    {{item.text}}
    \n
  • \n
  • \n
    {{_settings.noDataAvailablePlaceholderText}}
    \n
  • \n
\n
\n
\n", - providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR], - changeDetection: ChangeDetectionStrategy.OnPush, - styles: [".multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\"\"}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:\"\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:\"\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:\"\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}"] - }) - ], MultiSelectComponent); - return MultiSelectComponent; -}()); -export { MultiSelectComponent }; -export { ɵ0 }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctbXVsdGlzZWxlY3QtZHJvcGRvd24vIiwic291cmNlcyI6WyJtdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQXFCLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxJQUFNLCtCQUErQixHQUFRO0lBQ2xELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsb0JBQW9CLEVBQXBCLENBQW9CLENBQUM7SUFDbkQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBQ0YsSUFBTSxJQUFJLEdBQUcsY0FBTyxDQUFDLENBQUM7O0FBU3RCO0lBOEZFLDhCQUFvQixjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQTVGMUMsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO1FBQ3BDLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsUUFBUSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsK0VBQStFO1FBQ3ZHLHNCQUFpQixHQUFrQixFQUFFLENBQUMsQ0FBQyxpQ0FBaUM7UUFDaEYsV0FBTSxHQUFhLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxvQkFBZSxHQUFzQjtZQUNuQyxlQUFl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K0IsQ0FBQztZQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDaEQsQ0FBQztPQUNXLG9CQUFvQixDQTZUaEM7SUFBRCwyQkFBQztDQUFBLEFBN1RELElBNlRDO1NBN1RZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IExpc3RJdGVtLCBJRHJvcGRvd25TZXR0aW5ncyB9IGZyb20gXCIuL211bHRpc2VsZWN0Lm1vZGVsXCI7XG5pbXBvcnQgeyBMaXN0RmlsdGVyUGlwZSB9IGZyb20gXCIuL2xpc3QtZmlsdGVyLnBpcGVcIjtcblxuZXhwb3J0IGNvbnN0IERST1BET1dOX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn07XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJuZy1tdWx0aXNlbGVjdC1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzXCJdLFxuICBwcm92aWRlcnM6IFtEUk9QRE9XTl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHB1YmxpYyBfc2V0dGluZ3M6IElEcm9wZG93blNldHRpbmdzO1xuICBwdWJsaWMgX2RhdGE6IEFycmF5PExpc3RJdGVtPiA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogQXJyYXk8TGlzdEl0ZW0+ID0gW107XG4gIHB1YmxpYyBpc0Ryb3Bkb3duT3BlbiA9IHRydWU7XG4gIF9wbGFjZWhvbGRlciA9IFwiU2VsZWN0XCI7XG4gIHByaXZhdGUgX3NvdXJjZURhdGFUeXBlID0gbnVsbDsgLy8gdG8ga2VlcCBub3RlIG9mIHRoZSBzb3VyY2UgZGF0YSB0eXBlLiBjb3VsZCBiZSBhcnJheSBvZiBzdHJpbmcvbnVtYmVyL29iamVjdFxuICBwcml2YXRlIF9zb3VyY2VEYXRhRmllbGRzOiBBcnJheTxTdHJpbmc+ID0gW107IC8vIHN0b3JlIHNvdXJjZSBkYXRhIGZpZWxkcyBuYW1lc1xuICBmaWx0ZXI6IExpc3RJdGVtID0gbmV3IExpc3RJdGVtKHRoaXMuZGF0YSk7XG4gIGRlZmF1bHRTZXR0aW5nczogSURyb3Bkb3duU2V0dGluZ3MgPSB7XG4gICAgc2luZ2xlU2VsZWN0aW9uOiBmYWxzZSxcbiAgICBpZEZpZWxkOiBcImlkXCIsXG4gICAgdGV4dEZpZWxkOiBcInRleHRcIixcbiAgICBkaXNhYmxlZEZpZWxkOiBcImlzRGlzYWJsZWRcIixcbiAgICBlbmFibGVDaGVja0FsbDogdHJ1ZSxcbiAgICBzZWxlY3RBbGxUZXh0OiBcIlNlbGVjdCBBbGxcIixcbiAgICB1blNlbGVjdEFsbFRleHQ6IFwiVW5TZWxlY3QgQWxsXCIsXG4gICAgYWxsb3dTZWFyY2hGaWx0ZXI6IGZhbHNlLFxuICAgIGxpbWl0U2VsZWN0aW9uOiAtMSxcbiAgICBjbGVhclNlYXJjaEZpbHRlcjogdHJ1ZSxcbiAgICBtYXhIZWlnaHQ6IDE5NyxcbiAgICBpdGVtc1Nob3dMaW1pdDogOTk5OTk5OTk5OTk5LFxuICAgIHNlYXJjaFBsYWNlaG9sZGVyVGV4dDogXCJTZWFyY2hcIixcbiAgICBub0RhdGFBdmFpbGFibGVQbGFjZWhvbGRlclRleHQ6IFwiTm8gZGF0YSBhdmFpbGFibGVcIixcbiAgICBjbG9zZURyb3BEb3duT25TZWxlY3Rpb246IGZhbHNlLFxuICAgIHNob3dTZWxlY3RlZEl0ZW1zQXRUb3A6IGZhbHNlLFxuICAgIGRlZmF1bHRPcGVuOiBmYWxzZSxcbiAgICBhbGxvd1JlbW90ZURhdGFTZWFyY2g6IGZhbHNlXG4gIH07XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IFwiU2VsZWN0XCI7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZXR0aW5ncyh2YWx1ZTogSURyb3Bkb3duU2V0dGluZ3MpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3NldHRpbmdzID0gT2JqZWN0LmFzc2lnbih0aGlzLmRlZmF1bHRTZXR0aW5ncywgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0U2V0dGluZ3MpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YSh2YWx1ZTogQXJyYXk8YW55Pikge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmlyc3RJdGVtID0gdmFsdWVbMF07XG4gICAgICB0aGlzLl9zb3VyY2VEYXRhVHlwZSA9IHR5cGVvZiBmaXJzdEl0ZW07XG4gICAgICB0aGlzLl9zb3VyY2VEYXRhRmllbGRzID0gdGhpcy5nZXRGaWVsZHMoZmlyc3RJdGVtKTtcbiAgICAgIHRoaXMuX2RhdGEgPSB2YWx1ZS5tYXAoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgdHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGl0ZW0gPT09IFwibnVtYmVyXCJcbiAgICAgICAgICA/IG5ldyBMaXN0SXRlbShpdGVtKVxuICAgICAgICAgIDogbmV3IExpc3RJdGVtKHtcbiAgICAgICAgICAgICAgaWQ6IGl0ZW1bdGhpcy5fc2V0dGluZ3MuaWRGaWVsZF0sXG4gICAgICAgICAgICAgIHRleHQ6IGl0ZW1bdGhpcy5fc2V0dGluZ3MudGV4dEZpZWxkXSxcbiAgICAgICAgICAgICAgaXNEaXNhYmxlZDogaXRlbVt0aGlzLl9zZXR0aW5ncy5kaXNhYmxlZEZpZWxkXVxuICAgICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dChcIm9uRmlsdGVyQ2hhbmdlXCIpXG4gIG9uRmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoXCJvbkRyb3BEb3duQ2xvc2VcIilcbiAgb25Ecm9wRG93bkNsb3NlOiBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dChcIm9uU2VsZWN0XCIpXG4gIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dChcIm9uRGVTZWxlY3RcIilcbiAgb25EZVNlbGVjdDogRXZlbnRFbWl0dGVyPExpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoXCJvblNlbGVjdEFsbFwiKVxuICBvblNlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PGFueT4+KCk7XG5cbiAgQE91dHB1dChcIm9uRGVTZWxlY3RBbGxcIilcbiAgb25EZVNlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PGFueT4+KCk7XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgb25GaWx0ZXJUZXh0Q2hhbmdlKCRldmVudCkge1xuICAgIHRoaXMub25GaWx0ZXJDaGFuZ2UuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsaXN0RmlsdGVyUGlwZTpMaXN0RmlsdGVyUGlwZSkge31cblxuICBvbkl0ZW1DbGljaygkZXZlbnQ6IGFueSwgaXRlbTogTGlzdEl0ZW0pIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBpdGVtLmlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuaXNTZWxlY3RlZChpdGVtKTtcbiAgICBjb25zdCBhbGxvd0FkZCA9IHRoaXMuX3NldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09PSAtMSB8fCAodGhpcy5fc2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPiAwICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPCB0aGlzLl9zZXR0aW5ncy5saW1pdFNlbGVjdGlvbik7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgaWYgKGFsbG93QWRkKSB7XG4gICAgICAgIHRoaXMuYWRkU2VsZWN0ZWQoaXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWQoaXRlbSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb24gJiYgdGhpcy5fc2V0dGluZ3MuY2xvc2VEcm9wRG93bk9uU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5fc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSB2YWx1ZVswXTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtcbiAgICAgICAgICAgICAgdHlwZW9mIGZpcnN0SXRlbSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgZmlyc3RJdGVtID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgPyBuZXcgTGlzdEl0ZW0oZmlyc3RJdGVtKVxuICAgICAgICAgICAgICAgIDogbmV3IExpc3RJdGVtKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGZpcnN0SXRlbVt0aGlzLl9zZXR0aW5ncy5pZEZpZWxkXSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogZmlyc3RJdGVtW3RoaXMuX3NldHRpbmdzLnRleHRGaWVsZF0sXG4gICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZpcnN0SXRlbVt0aGlzLl9zZXR0aW5ncy5kaXNhYmxlZEZpZWxkXVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gY29uc29sZS5lcnJvcihlLmJvZHkubXNnKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgX2RhdGEgPSB2YWx1ZS5tYXAoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgICB0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgaXRlbSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgPyBuZXcgTGlzdEl0ZW0oaXRlbSlcbiAgICAgICAgICAgIDogbmV3IExpc3RJdGVtKHtcbiAgICAgICAgICAgICAgICBpZDogaXRlbVt0aGlzLl9zZXR0aW5ncy5pZEZpZWxkXSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBpdGVtW3RoaXMuX3NldHRpbmdzLnRleHRGaWVsZF0sXG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogaXRlbVt0aGlzLl9zZXR0aW5ncy5kaXNhYmxlZEZpZWxkXVxuICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gX2RhdGEuc3BsaWNlKDAsIHRoaXMuX3NldHRpbmdzLmxpbWl0U2VsZWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBfZGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHZhbHVlKTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIC8vIFNldCB0b3VjaGVkIG9uIGJsdXJcbiAgQEhvc3RMaXN0ZW5lcihcImJsdXJcIilcbiAgcHVibGljIG9uVG91Y2hlZCgpIHtcbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQoY2xpY2tlZEl0ZW06IExpc3RJdGVtKSB7XG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoY2xpY2tlZEl0ZW0uaWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gIGlzTGltaXRTZWxlY3Rpb25SZWFjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PT0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aDtcbiAgfVxuXG4gIGlzQWxsSXRlbXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAvLyBnZXQgZGlzYWJsZCBpdGVtIGNvdW50XG4gICAgbGV0IGZpbHRlcmVkSXRlbXMgPSB0aGlzLmxpc3RGaWx0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLl9kYXRhLHRoaXMuZmlsdGVyKTtcbiAgICBjb25zdCBpdGVtRGlzYWJsZWRDb3VudCA9IGZpbHRlcmVkSXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pc0Rpc2FibGVkKS5sZW5ndGg7XG4gICAgLy8gdGFrZSBkaXNhYmxlZCBpdGVtcyBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBjaGVja2luZ1xuICAgIGlmICgoIXRoaXMuZGF0YSB8fCB0aGlzLmRhdGEubGVuZ3RoID09PSAwKSAmJiB0aGlzLl9zZXR0aW5ncy5hbGxvd1JlbW90ZURhdGFTZWFyY2gpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoICsgaXRlbURpc2FibGVkQ291bnQ7XG4gIH1cblxuICBzaG93QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5fc2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPiAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIHRoaXMuX3NldHRpbmdzLmVuYWJsZUNoZWNrQWxsID0gdGhpcy5fc2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT09IC0xID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7IC8vICF0aGlzLl9zZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb24gJiYgdGhpcy5fc2V0dGluZ3MuZW5hYmxlQ2hlY2tBbGwgJiYgdGhpcy5fZGF0YS5sZW5ndGggPiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzaG91bGQgYmUgZGlzYWJsZWQgaW4gc2luZ2xlIHNlbGVjdGlvbiBtb2RlXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaXRlbVNob3dSZW1haW5pbmcoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIHRoaXMuX3NldHRpbmdzLml0ZW1zU2hvd0xpbWl0O1xuICB9XG5cbiAgYWRkU2VsZWN0ZWQoaXRlbTogTGlzdEl0ZW0pIHtcbiAgICBpZiAodGhpcy5fc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuZW1pdHRlZFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcykpO1xuICAgIHRoaXMub25TZWxlY3QuZW1pdCh0aGlzLmVtaXR0ZWRWYWx1ZShpdGVtKSk7XG4gIH1cblxuICByZW1vdmVTZWxlY3RlZChpdGVtU2VsOiBMaXN0SXRlbSkge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW1TZWwuaWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZSh0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuZW1pdHRlZFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcykpO1xuICAgIHRoaXMub25EZVNlbGVjdC5lbWl0KHRoaXMuZW1pdHRlZFZhbHVlKGl0ZW1TZWwpKTtcbiAgfVxuXG4gIGVtaXR0ZWRWYWx1ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICB2YWwubWFwKGl0ZW0gPT4ge1xuICAgICAgICBzZWxlY3RlZC5wdXNoKHRoaXMub2JqZWN0aWZ5KGl0ZW0pKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdGlmeSh2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gIH1cblxuICBvYmplY3RpZnkodmFsOiBMaXN0SXRlbSkge1xuICAgIGlmICh0aGlzLl9zb3VyY2VEYXRhVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgb2JqW3RoaXMuX3NldHRpbmdzLmlkRmllbGRdID0gdmFsLmlkO1xuICAgICAgb2JqW3RoaXMuX3NldHRpbmdzLnRleHRGaWVsZF0gPSB2YWwudGV4dDtcbiAgICAgIGlmICh0aGlzLl9zb3VyY2VEYXRhRmllbGRzLmluY2x1ZGVzKHRoaXMuX3NldHRpbmdzLmRpc2FibGVkRmllbGQpKSB7XG4gICAgICAgIG9ialt0aGlzLl9zZXR0aW5ncy5kaXNhYmxlZEZpZWxkXSA9IHZhbC5pc0Rpc2FibGVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NvdXJjZURhdGFUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIE51bWJlcih2YWwuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsLnRleHQ7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZXZ0KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3NldHRpbmdzLmRlZmF1bHRPcGVuID0gIXRoaXMuX3NldHRpbmdzLmRlZmF1bHRPcGVuO1xuICAgIGlmICghdGhpcy5fc2V0dGluZ3MuZGVmYXVsdE9wZW4pIHtcbiAgICAgIHRoaXMub25Ecm9wRG93bkNsb3NlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMuX3NldHRpbmdzLmRlZmF1bHRPcGVuID0gZmFsc2U7XG4gICAgLy8gY2xlYXIgc2VhcmNoIHRleHRcbiAgICBpZiAodGhpcy5fc2V0dGluZ3MuY2xlYXJTZWFyY2hGaWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyLnRleHQgPSBcIlwiO1xuICAgIH1cbiAgICB0aGlzLm9uRHJvcERvd25DbG9zZS5lbWl0KCk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzQWxsSXRlbXNTZWxlY3RlZCgpKSB7XG4gICAgICAvLyBmaWx0ZXIgb3V0IGRpc2FibGVkIGl0ZW0gZmlyc3QgYmVmb3JlIHNsaWNpbmdcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMubGlzdEZpbHRlclBpcGUudHJhbnNmb3JtKHRoaXMuX2RhdGEsdGhpcy5maWx0ZXIpLmZpbHRlcihpdGVtID0+ICFpdGVtLmlzRGlzYWJsZWQpLnNsaWNlKCk7XG4gICAgICB0aGlzLm9uU2VsZWN0QWxsLmVtaXQodGhpcy5lbWl0dGVkVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5vbkRlU2VsZWN0QWxsLmVtaXQodGhpcy5lbWl0dGVkVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmVtaXR0ZWRWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpKTtcbiAgfVxuXG4gIGdldEZpZWxkcyhpbnB1dERhdGEpIHtcbiAgICBjb25zdCBmaWVsZHMgPSBbXTtcbiAgICBpZiAodHlwZW9mIGlucHV0RGF0YSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXG4gICAgZm9yIChjb25zdCBwcm9wIGluIGlucHV0RGF0YSkge1xuICAgICAgZmllbGRzLnB1c2gocHJvcCk7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZHM7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.model.js b/frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.model.js deleted file mode 100644 index 8471af7f..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm5/multiselect.model.js +++ /dev/null @@ -1,16 +0,0 @@ -var ListItem = /** @class */ (function () { - function ListItem(source) { - if (typeof source === 'string' || typeof source === 'number') { - this.id = this.text = source; - this.isDisabled = false; - } - if (typeof source === 'object') { - this.id = source.id; - this.text = source.text; - this.isDisabled = source.isDisabled; - } - } - return ListItem; -}()); -export { ListItem }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi8iLCJzb3VyY2VzIjpbIm11bHRpc2VsZWN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCQTtJQUtFLGtCQUFtQixNQUFXO1FBQzVCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUM1RCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBQ0gsZUFBQztBQUFELENBQUMsQUFoQkQsSUFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElEcm9wZG93blNldHRpbmdzIHtcbiAgc2luZ2xlU2VsZWN0aW9uPzogYm9vbGVhbjtcbiAgaWRGaWVsZD86IHN0cmluZztcbiAgdGV4dEZpZWxkPzogc3RyaW5nO1xuICBkaXNhYmxlZEZpZWxkPzogc3RyaW5nO1xuICBlbmFibGVDaGVja0FsbD86IGJvb2xlYW47XG4gIHNlbGVjdEFsbFRleHQ/OiBzdHJpbmc7XG4gIHVuU2VsZWN0QWxsVGV4dD86IHN0cmluZztcbiAgYWxsb3dTZWFyY2hGaWx0ZXI/OiBib29sZWFuO1xuICBjbGVhclNlYXJjaEZpbHRlcj86IGJvb2xlYW47XG4gIG1heEhlaWdodD86IG51bWJlcjtcbiAgaXRlbXNTaG93TGltaXQ/OiBudW1iZXI7XG4gIGxpbWl0U2VsZWN0aW9uPzogbnVtYmVyO1xuICBzZWFyY2hQbGFjZWhvbGRlclRleHQ/OiBzdHJpbmc7XG4gIG5vRGF0YUF2YWlsYWJsZVBsYWNlaG9sZGVyVGV4dD86IHN0cmluZztcbiAgY2xvc2VEcm9wRG93bk9uU2VsZWN0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1NlbGVjdGVkSXRlbXNBdFRvcD86IGJvb2xlYW47XG4gIGRlZmF1bHRPcGVuPzogYm9vbGVhbjtcbiAgYWxsb3dSZW1vdGVEYXRhU2VhcmNoPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIExpc3RJdGVtIHtcbiAgaWQ6IFN0cmluZyB8IG51bWJlcjtcbiAgdGV4dDogU3RyaW5nIHwgbnVtYmVyO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc291cmNlOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHNvdXJjZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuaWQgPSB0aGlzLnRleHQgPSBzb3VyY2U7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLmlkID0gc291cmNlLmlkO1xuICAgICAgdGhpcy50ZXh0ID0gc291cmNlLnRleHQ7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBzb3VyY2UuaXNEaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.js b/frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.js deleted file mode 100644 index 76cc82ff..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Generated bundle index. Do not edit. - */ -export * from './public_api'; -export { ClickOutsideDirective as ɵc } from './click-outside.directive'; -export { ListFilterPipe as ɵb } from './list-filter.pipe'; -export { DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa } from './multiselect.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbXVsdGlzZWxlY3QtZHJvcGRvd24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi8iLCJzb3VyY2VzIjpbIm5nLW11bHRpc2VsZWN0LWRyb3Bkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFDLCtCQUErQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0NsaWNrT3V0c2lkZURpcmVjdGl2ZSBhcyDJtWN9IGZyb20gJy4vY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtMaXN0RmlsdGVyUGlwZSBhcyDJtWJ9IGZyb20gJy4vbGlzdC1maWx0ZXIucGlwZSc7XG5leHBvcnQge0RST1BET1dOX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IgYXMgybVhfSBmcm9tICcuL211bHRpc2VsZWN0LmNvbXBvbmVudCc7Il19 \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.module.js b/frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.module.js deleted file mode 100644 index 6aa7f4fa..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm5/ng-multiselect-dropdown.module.js +++ /dev/null @@ -1,29 +0,0 @@ -import * as tslib_1 from "tslib"; -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; -import { MultiSelectComponent } from './multiselect.component'; -import { ClickOutsideDirective } from './click-outside.directive'; -import { ListFilterPipe } from './list-filter.pipe'; -var NgMultiSelectDropDownModule = /** @class */ (function () { - function NgMultiSelectDropDownModule() { - } - NgMultiSelectDropDownModule_1 = NgMultiSelectDropDownModule; - NgMultiSelectDropDownModule.forRoot = function () { - return { - ngModule: NgMultiSelectDropDownModule_1 - }; - }; - var NgMultiSelectDropDownModule_1; - NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = tslib_1.__decorate([ - NgModule({ - imports: [CommonModule, FormsModule], - declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe], - providers: [ListFilterPipe], - exports: [MultiSelectComponent] - }) - ], NgMultiSelectDropDownModule); - return NgMultiSelectDropDownModule; -}()); -export { NgMultiSelectDropDownModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbXVsdGlzZWxlY3QtZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctbXVsdGlzZWxlY3QtZHJvcGRvd24vIiwic291cmNlcyI6WyJuZy1tdWx0aXNlbGVjdC1kcm9wZG93bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBU3BEO0lBQUE7SUFNQSxDQUFDO29DQU5ZLDJCQUEyQjtJQUM3QixtQ0FBTyxHQUFkO1FBQ0UsT0FBTztZQUNMLFFBQVEsRUFBRSw2QkFBMkI7U0FDdEMsQ0FBQztJQUNKLENBQUM7O0lBTFEsMkJBQTJCO1FBUHZDLFFBQVEsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7WUFDcEMsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxDQUFDO1lBQzNFLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztTQUNoQyxDQUFDO09BRVcsMkJBQTJCLENBTXZDO0lBQUQsa0NBQUM7Q0FBQSxBQU5ELElBTUM7U0FOWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL211bHRpc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpc3RGaWx0ZXJQaXBlIH0gZnJvbSAnLi9saXN0LWZpbHRlci5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtNdWx0aVNlbGVjdENvbXBvbmVudCwgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBMaXN0RmlsdGVyUGlwZV0sXG4gIHByb3ZpZGVyczogW0xpc3RGaWx0ZXJQaXBlXSxcbiAgZXhwb3J0czogW011bHRpU2VsZWN0Q29tcG9uZW50XVxufSlcblxuZXhwb3J0IGNsYXNzIE5nTXVsdGlTZWxlY3REcm9wRG93bk1vZHVsZSB7XG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ011bHRpU2VsZWN0RHJvcERvd25Nb2R1bGU+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5nTW9kdWxlOiBOZ011bHRpU2VsZWN0RHJvcERvd25Nb2R1bGVcbiAgICAgIH07XG4gICAgfVxufVxuIl19 \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/esm5/public_api.js b/frontend/node_modules/ng-multiselect-dropdown/esm5/public_api.js deleted file mode 100644 index da739289..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/esm5/public_api.js +++ /dev/null @@ -1,3 +0,0 @@ -export { MultiSelectComponent } from './multiselect.component'; -export { NgMultiSelectDropDownModule } from './ng-multiselect-dropdown.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLW11bHRpc2VsZWN0LWRyb3Bkb3duLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE11bHRpU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0IHsgTmdNdWx0aVNlbGVjdERyb3BEb3duTW9kdWxlIH0gZnJvbSAnLi9uZy1tdWx0aXNlbGVjdC1kcm9wZG93bi5tb2R1bGUnO1xuZXhwb3J0IHsgSURyb3Bkb3duU2V0dGluZ3MgfSBmcm9tICcuL211bHRpc2VsZWN0Lm1vZGVsJztcbiJdfQ== \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js b/frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js deleted file mode 100644 index 8867d30a..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js +++ /dev/null @@ -1,434 +0,0 @@ -import { __decorate } from 'tslib'; -import { Pipe, forwardRef, EventEmitter, Input, Output, HostListener, Component, ChangeDetectionStrategy, ElementRef, Directive, NgModule } from '@angular/core'; -import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms'; -import { CommonModule } from '@angular/common'; - -class ListItem { - constructor(source) { - if (typeof source === 'string' || typeof source === 'number') { - this.id = this.text = source; - this.isDisabled = false; - } - if (typeof source === 'object') { - this.id = source.id; - this.text = source.text; - this.isDisabled = source.isDisabled; - } - } -} - -let ListFilterPipe = class ListFilterPipe { - transform(items, filter) { - if (!items || !filter) { - return items; - } - return items.filter((item) => this.applyFilter(item, filter)); - } - applyFilter(item, filter) { - if (typeof item.text === 'string' && typeof filter.text === 'string') { - return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1); - } - else { - return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1); - } - } -}; -ListFilterPipe = __decorate([ - Pipe({ - name: 'multiSelectFilter', - pure: false - }) -], ListFilterPipe); - -const DROPDOWN_CONTROL_VALUE_ACCESSOR = { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => MultiSelectComponent), - multi: true -}; -const noop = () => { }; -const ɵ0 = noop; -let MultiSelectComponent = class MultiSelectComponent { - constructor(listFilterPipe) { - this.listFilterPipe = listFilterPipe; - this._data = []; - this.selectedItems = []; - this.isDropdownOpen = true; - this._placeholder = "Select"; - this._sourceDataType = null; // to keep note of the source data type. could be array of string/number/object - this._sourceDataFields = []; // store source data fields names - this.filter = new ListItem(this.data); - this.defaultSettings = { - singleSelection: false, - idField: "id", - textField: "text", - disabledField: "isDisabled", - enableCheckAll: true, - selectAllText: "Select All", - unSelectAllText: "UnSelect All", - allowSearchFilter: false, - limitSelection: -1, - clearSearchFilter: true, - maxHeight: 197, - itemsShowLimit: 999999999999, - searchPlaceholderText: "Search", - noDataAvailablePlaceholderText: "No data available", - closeDropDownOnSelection: false, - showSelectedItemsAtTop: false, - defaultOpen: false, - allowRemoteDataSearch: false - }; - this.disabled = false; - this.onFilterChange = new EventEmitter(); - this.onDropDownClose = new EventEmitter(); - this.onSelect = new EventEmitter(); - this.onDeSelect = new EventEmitter(); - this.onSelectAll = new EventEmitter(); - this.onDeSelectAll = new EventEmitter(); - this.onTouchedCallback = noop; - this.onChangeCallback = noop; - } - set placeholder(value) { - if (value) { - this._placeholder = value; - } - else { - this._placeholder = "Select"; - } - } - set settings(value) { - if (value) { - this._settings = Object.assign(this.defaultSettings, value); - } - else { - this._settings = Object.assign(this.defaultSettings); - } - } - set data(value) { - if (!value) { - this._data = []; - } - else { - const firstItem = value[0]; - this._sourceDataType = typeof firstItem; - this._sourceDataFields = this.getFields(firstItem); - this._data = value.map((item) => typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[this._settings.idField], - text: item[this._settings.textField], - isDisabled: item[this._settings.disabledField] - })); - } - } - onFilterTextChange($event) { - this.onFilterChange.emit($event); - } - onItemClick($event, item) { - if (this.disabled || item.isDisabled) { - return false; - } - const found = this.isSelected(item); - const allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection); - if (!found) { - if (allowAdd) { - this.addSelected(item); - } - } - else { - this.removeSelected(item); - } - if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) { - this.closeDropdown(); - } - } - writeValue(value) { - if (value !== undefined && value !== null && value.length > 0) { - if (this._settings.singleSelection) { - try { - if (value.length >= 1) { - const firstItem = value[0]; - this.selectedItems = [ - typeof firstItem === "string" || typeof firstItem === "number" - ? new ListItem(firstItem) - : new ListItem({ - id: firstItem[this._settings.idField], - text: firstItem[this._settings.textField], - isDisabled: firstItem[this._settings.disabledField] - }) - ]; - } - } - catch (e) { - // console.error(e.body.msg); - } - } - else { - const _data = value.map((item) => typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[this._settings.idField], - text: item[this._settings.textField], - isDisabled: item[this._settings.disabledField] - })); - if (this._settings.limitSelection > 0) { - this.selectedItems = _data.splice(0, this._settings.limitSelection); - } - else { - this.selectedItems = _data; - } - } - } - else { - this.selectedItems = []; - } - this.onChangeCallback(value); - } - // From ControlValueAccessor interface - registerOnChange(fn) { - this.onChangeCallback = fn; - } - // From ControlValueAccessor interface - registerOnTouched(fn) { - this.onTouchedCallback = fn; - } - // Set touched on blur - onTouched() { - this.closeDropdown(); - this.onTouchedCallback(); - } - trackByFn(index, item) { - return item.id; - } - isSelected(clickedItem) { - let found = false; - this.selectedItems.forEach(item => { - if (clickedItem.id === item.id) { - found = true; - } - }); - return found; - } - isLimitSelectionReached() { - return this._settings.limitSelection === this.selectedItems.length; - } - isAllItemsSelected() { - // get disabld item count - let filteredItems = this.listFilterPipe.transform(this._data, this.filter); - const itemDisabledCount = filteredItems.filter(item => item.isDisabled).length; - // take disabled items into consideration when checking - if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) { - return false; - } - return filteredItems.length === this.selectedItems.length + itemDisabledCount; - } - showButton() { - if (!this._settings.singleSelection) { - if (this._settings.limitSelection > 0) { - return false; - } - // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false; - return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0; - } - else { - // should be disabled in single selection mode - return false; - } - } - itemShowRemaining() { - return this.selectedItems.length - this._settings.itemsShowLimit; - } - addSelected(item) { - if (this._settings.singleSelection) { - this.selectedItems = []; - this.selectedItems.push(item); - } - else { - this.selectedItems.push(item); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onSelect.emit(this.emittedValue(item)); - } - removeSelected(itemSel) { - this.selectedItems.forEach(item => { - if (itemSel.id === item.id) { - this.selectedItems.splice(this.selectedItems.indexOf(item), 1); - } - }); - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onDeSelect.emit(this.emittedValue(itemSel)); - } - emittedValue(val) { - const selected = []; - if (Array.isArray(val)) { - val.map(item => { - selected.push(this.objectify(item)); - }); - } - else { - if (val) { - return this.objectify(val); - } - } - return selected; - } - objectify(val) { - if (this._sourceDataType === 'object') { - const obj = {}; - obj[this._settings.idField] = val.id; - obj[this._settings.textField] = val.text; - if (this._sourceDataFields.includes(this._settings.disabledField)) { - obj[this._settings.disabledField] = val.isDisabled; - } - return obj; - } - if (this._sourceDataType === 'number') { - return Number(val.id); - } - else { - return val.text; - } - } - toggleDropdown(evt) { - evt.preventDefault(); - if (this.disabled && this._settings.singleSelection) { - return; - } - this._settings.defaultOpen = !this._settings.defaultOpen; - if (!this._settings.defaultOpen) { - this.onDropDownClose.emit(); - } - } - closeDropdown() { - this._settings.defaultOpen = false; - // clear search text - if (this._settings.clearSearchFilter) { - this.filter.text = ""; - } - this.onDropDownClose.emit(); - } - toggleSelectAll() { - if (this.disabled) { - return false; - } - if (!this.isAllItemsSelected()) { - // filter out disabled item first before slicing - this.selectedItems = this.listFilterPipe.transform(this._data, this.filter).filter(item => !item.isDisabled).slice(); - this.onSelectAll.emit(this.emittedValue(this.selectedItems)); - } - else { - this.selectedItems = []; - this.onDeSelectAll.emit(this.emittedValue(this.selectedItems)); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - } - getFields(inputData) { - const fields = []; - if (typeof inputData !== "object") { - return fields; - } - // tslint:disable-next-line:forin - for (const prop in inputData) { - fields.push(prop); - } - return fields; - } -}; -MultiSelectComponent.ctorParameters = () => [ - { type: ListFilterPipe } -]; -__decorate([ - Input() -], MultiSelectComponent.prototype, "placeholder", null); -__decorate([ - Input() -], MultiSelectComponent.prototype, "disabled", void 0); -__decorate([ - Input() -], MultiSelectComponent.prototype, "settings", null); -__decorate([ - Input() -], MultiSelectComponent.prototype, "data", null); -__decorate([ - Output("onFilterChange") -], MultiSelectComponent.prototype, "onFilterChange", void 0); -__decorate([ - Output("onDropDownClose") -], MultiSelectComponent.prototype, "onDropDownClose", void 0); -__decorate([ - Output("onSelect") -], MultiSelectComponent.prototype, "onSelect", void 0); -__decorate([ - Output("onDeSelect") -], MultiSelectComponent.prototype, "onDeSelect", void 0); -__decorate([ - Output("onSelectAll") -], MultiSelectComponent.prototype, "onSelectAll", void 0); -__decorate([ - Output("onDeSelectAll") -], MultiSelectComponent.prototype, "onDeSelectAll", void 0); -__decorate([ - HostListener("blur") -], MultiSelectComponent.prototype, "onTouched", null); -MultiSelectComponent = __decorate([ - Component({ - selector: "ng-multiselect-dropdown", - template: "
\n
\n \n {{_placeholder}}\n _settings.itemsShowLimit-1\">\n {{item.text}}\n x\n \n \n 0\">+{{itemShowRemaining()}}\n \n \n \n
\n
\n
    \n
  • 0 || _settings.allowRemoteDataSearch) && !_settings.singleSelection && _settings.enableCheckAll && _settings.limitSelection===-1\" class=\"multiselect-item-checkbox\" style=\"border-bottom: 1px solid #ccc;padding:10px\">\n \n
    {{!isAllItemsSelected() ? _settings.selectAllText : _settings.unSelectAllText}}
    \n
  • \n
  • 0 || _settings.allowRemoteDataSearch) && _settings.allowSearchFilter\">\n \n
  • \n
\n
    \n
  • \n \n
    {{item.text}}
    \n
  • \n
  • \n
    {{_settings.noDataAvailablePlaceholderText}}
    \n
  • \n
\n
\n
\n", - providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR], - changeDetection: ChangeDetectionStrategy.OnPush, - styles: [".multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\"\"}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:\"\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:\"\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:\"\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}"] - }) -], MultiSelectComponent); - -let ClickOutsideDirective = class ClickOutsideDirective { - constructor(_elementRef) { - this._elementRef = _elementRef; - this.clickOutside = new EventEmitter(); - } - onClick(event, targetElement) { - if (!targetElement) { - return; - } - const clickedInside = this._elementRef.nativeElement.contains(targetElement); - if (!clickedInside) { - this.clickOutside.emit(event); - } - } -}; -ClickOutsideDirective.ctorParameters = () => [ - { type: ElementRef } -]; -__decorate([ - Output() -], ClickOutsideDirective.prototype, "clickOutside", void 0); -__decorate([ - HostListener('document:click', ['$event', '$event.target']) -], ClickOutsideDirective.prototype, "onClick", null); -ClickOutsideDirective = __decorate([ - Directive({ - selector: '[clickOutside]' - }) -], ClickOutsideDirective); - -var NgMultiSelectDropDownModule_1; -let NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = class NgMultiSelectDropDownModule { - static forRoot() { - return { - ngModule: NgMultiSelectDropDownModule_1 - }; - } -}; -NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = __decorate([ - NgModule({ - imports: [CommonModule, FormsModule], - declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe], - providers: [ListFilterPipe], - exports: [MultiSelectComponent] - }) -], NgMultiSelectDropDownModule); - -/** - * Generated bundle index. Do not edit. - */ - -export { MultiSelectComponent, NgMultiSelectDropDownModule, DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa, ListFilterPipe as ɵb, ClickOutsideDirective as ɵc }; -//# sourceMappingURL=ng-multiselect-dropdown.js.map diff --git a/frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js.map b/frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js.map deleted file mode 100644 index 3b984b81..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/fesm2015/ng-multiselect-dropdown.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ng-multiselect-dropdown.js","sources":["ng://ng-multiselect-dropdown/multiselect.model.ts","ng://ng-multiselect-dropdown/list-filter.pipe.ts","ng://ng-multiselect-dropdown/multiselect.component.ts","ng://ng-multiselect-dropdown/click-outside.directive.ts","ng://ng-multiselect-dropdown/ng-multiselect-dropdown.module.ts","ng://ng-multiselect-dropdown/ng-multiselect-dropdown.ts"],"sourcesContent":["export interface IDropdownSettings {\n singleSelection?: boolean;\n idField?: string;\n textField?: string;\n disabledField?: string;\n enableCheckAll?: boolean;\n selectAllText?: string;\n unSelectAllText?: string;\n allowSearchFilter?: boolean;\n clearSearchFilter?: boolean;\n maxHeight?: number;\n itemsShowLimit?: number;\n limitSelection?: number;\n searchPlaceholderText?: string;\n noDataAvailablePlaceholderText?: string;\n closeDropDownOnSelection?: boolean;\n showSelectedItemsAtTop?: boolean;\n defaultOpen?: boolean;\n allowRemoteDataSearch?: boolean;\n}\n\nexport class ListItem {\n id: String | number;\n text: String | number;\n isDisabled?: boolean;\n\n public constructor(source: any) {\n if (typeof source === 'string' || typeof source === 'number') {\n this.id = this.text = source;\n this.isDisabled = false;\n }\n if (typeof source === 'object') {\n this.id = source.id;\n this.text = source.text;\n this.isDisabled = source.isDisabled;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { ListItem } from './multiselect.model';\n\n@Pipe({\n name: 'multiSelectFilter',\n pure: false\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(items: ListItem[], filter: ListItem): ListItem[] {\n if (!items || !filter) {\n return items;\n }\n return items.filter((item: ListItem) => this.applyFilter(item, filter));\n }\n\n applyFilter(item: ListItem, filter: ListItem): boolean {\n if (typeof item.text === 'string' && typeof filter.text === 'string') {\n return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);\n } else {\n return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1);\n }\n }\n}\n","import { Component, HostListener, forwardRef, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport { ListItem, IDropdownSettings } from \"./multiselect.model\";\nimport { ListFilterPipe } from \"./list-filter.pipe\";\n\nexport const DROPDOWN_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n};\nconst noop = () => {};\n\n@Component({\n selector: \"ng-multiselect-dropdown\",\n templateUrl: \"./multi-select.component.html\",\n styleUrls: [\"./multi-select.component.scss\"],\n providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MultiSelectComponent implements ControlValueAccessor {\n public _settings: IDropdownSettings;\n public _data: Array = [];\n public selectedItems: Array = [];\n public isDropdownOpen = true;\n _placeholder = \"Select\";\n private _sourceDataType = null; // to keep note of the source data type. could be array of string/number/object\n private _sourceDataFields: Array = []; // store source data fields names\n filter: ListItem = new ListItem(this.data);\n defaultSettings: IDropdownSettings = {\n singleSelection: false,\n idField: \"id\",\n textField: \"text\",\n disabledField: \"isDisabled\",\n enableCheckAll: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: false,\n limitSelection: -1,\n clearSearchFilter: true,\n maxHeight: 197,\n itemsShowLimit: 999999999999,\n searchPlaceholderText: \"Search\",\n noDataAvailablePlaceholderText: \"No data available\",\n closeDropDownOnSelection: false,\n showSelectedItemsAtTop: false,\n defaultOpen: false,\n allowRemoteDataSearch: false\n };\n\n @Input()\n public set placeholder(value: string) {\n if (value) {\n this._placeholder = value;\n } else {\n this._placeholder = \"Select\";\n }\n }\n @Input()\n disabled = false;\n\n @Input()\n public set settings(value: IDropdownSettings) {\n if (value) {\n this._settings = Object.assign(this.defaultSettings, value);\n } else {\n this._settings = Object.assign(this.defaultSettings);\n }\n }\n\n @Input()\n public set data(value: Array) {\n if (!value) {\n this._data = [];\n } else {\n const firstItem = value[0];\n this._sourceDataType = typeof firstItem;\n this._sourceDataFields = this.getFields(firstItem);\n this._data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n }\n }\n\n @Output(\"onFilterChange\")\n onFilterChange: EventEmitter = new EventEmitter();\n @Output(\"onDropDownClose\")\n onDropDownClose: EventEmitter = new EventEmitter();\n\n @Output(\"onSelect\")\n onSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onDeSelect\")\n onDeSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onSelectAll\")\n onSelectAll: EventEmitter> = new EventEmitter>();\n\n @Output(\"onDeSelectAll\")\n onDeSelectAll: EventEmitter> = new EventEmitter>();\n\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n onFilterTextChange($event) {\n this.onFilterChange.emit($event);\n }\n\n constructor(private listFilterPipe:ListFilterPipe) {}\n\n onItemClick($event: any, item: ListItem) {\n if (this.disabled || item.isDisabled) {\n return false;\n }\n\n const found = this.isSelected(item);\n const allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection);\n if (!found) {\n if (allowAdd) {\n this.addSelected(item);\n }\n } else {\n this.removeSelected(item);\n }\n if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) {\n this.closeDropdown();\n }\n }\n\n writeValue(value: any) {\n if (value !== undefined && value !== null && value.length > 0) {\n if (this._settings.singleSelection) {\n try {\n if (value.length >= 1) {\n const firstItem = value[0];\n this.selectedItems = [\n typeof firstItem === \"string\" || typeof firstItem === \"number\"\n ? new ListItem(firstItem)\n : new ListItem({\n id: firstItem[this._settings.idField],\n text: firstItem[this._settings.textField],\n isDisabled: firstItem[this._settings.disabledField]\n })\n ];\n }\n } catch (e) {\n // console.error(e.body.msg);\n }\n } else {\n const _data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n if (this._settings.limitSelection > 0) {\n this.selectedItems = _data.splice(0, this._settings.limitSelection);\n } else {\n this.selectedItems = _data;\n }\n }\n } else {\n this.selectedItems = [];\n }\n this.onChangeCallback(value);\n }\n\n // From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n // From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n // Set touched on blur\n @HostListener(\"blur\")\n public onTouched() {\n this.closeDropdown();\n this.onTouchedCallback();\n }\n\n trackByFn(index, item) {\n return item.id;\n }\n\n isSelected(clickedItem: ListItem) {\n let found = false;\n this.selectedItems.forEach(item => {\n if (clickedItem.id === item.id) {\n found = true;\n }\n });\n return found;\n }\n\n isLimitSelectionReached(): boolean {\n return this._settings.limitSelection === this.selectedItems.length;\n }\n\n isAllItemsSelected(): boolean {\n // get disabld item count\n let filteredItems = this.listFilterPipe.transform(this._data,this.filter);\n const itemDisabledCount = filteredItems.filter(item => item.isDisabled).length;\n // take disabled items into consideration when checking\n if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) {\n return false;\n }\n return filteredItems.length === this.selectedItems.length + itemDisabledCount;\n }\n\n showButton(): boolean {\n if (!this._settings.singleSelection) {\n if (this._settings.limitSelection > 0) {\n return false;\n }\n // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false;\n return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0;\n } else {\n // should be disabled in single selection mode\n return false;\n }\n }\n\n itemShowRemaining(): number {\n return this.selectedItems.length - this._settings.itemsShowLimit;\n }\n\n addSelected(item: ListItem) {\n if (this._settings.singleSelection) {\n this.selectedItems = [];\n this.selectedItems.push(item);\n } else {\n this.selectedItems.push(item);\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onSelect.emit(this.emittedValue(item));\n }\n\n removeSelected(itemSel: ListItem) {\n this.selectedItems.forEach(item => {\n if (itemSel.id === item.id) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n });\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onDeSelect.emit(this.emittedValue(itemSel));\n }\n\n emittedValue(val: any): any {\n const selected = [];\n if (Array.isArray(val)) {\n val.map(item => {\n selected.push(this.objectify(item));\n });\n } else {\n if (val) {\n return this.objectify(val);\n }\n }\n return selected;\n }\n\n objectify(val: ListItem) {\n if (this._sourceDataType === 'object') {\n const obj = {};\n obj[this._settings.idField] = val.id;\n obj[this._settings.textField] = val.text;\n if (this._sourceDataFields.includes(this._settings.disabledField)) {\n obj[this._settings.disabledField] = val.isDisabled;\n }\n return obj;\n }\n if (this._sourceDataType === 'number') {\n return Number(val.id);\n } else {\n return val.text;\n }\n }\n\n toggleDropdown(evt) {\n evt.preventDefault();\n if (this.disabled && this._settings.singleSelection) {\n return;\n }\n this._settings.defaultOpen = !this._settings.defaultOpen;\n if (!this._settings.defaultOpen) {\n this.onDropDownClose.emit();\n }\n }\n\n closeDropdown() {\n this._settings.defaultOpen = false;\n // clear search text\n if (this._settings.clearSearchFilter) {\n this.filter.text = \"\";\n }\n this.onDropDownClose.emit();\n }\n\n toggleSelectAll() {\n if (this.disabled) {\n return false;\n }\n if (!this.isAllItemsSelected()) {\n // filter out disabled item first before slicing\n this.selectedItems = this.listFilterPipe.transform(this._data,this.filter).filter(item => !item.isDisabled).slice();\n this.onSelectAll.emit(this.emittedValue(this.selectedItems));\n } else {\n this.selectedItems = [];\n this.onDeSelectAll.emit(this.emittedValue(this.selectedItems));\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n }\n\n getFields(inputData) {\n const fields = [];\n if (typeof inputData !== \"object\") {\n return fields;\n }\n // tslint:disable-next-line:forin\n for (const prop in inputData) {\n fields.push(prop);\n }\n return fields;\n }\n}\n","import {Directive, ElementRef, Output, EventEmitter, HostListener} from '@angular/core';\n\n@Directive({\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n constructor(private _elementRef: ElementRef) {\n }\n\n @Output()\n public clickOutside = new EventEmitter();\n\n @HostListener('document:click', ['$event', '$event.target'])\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\n if (!targetElement) {\n return;\n }\n\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MultiSelectComponent } from './multiselect.component';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { ListFilterPipe } from './list-filter.pipe';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe],\n providers: [ListFilterPipe],\n exports: [MultiSelectComponent]\n})\n\nexport class NgMultiSelectDropDownModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: NgMultiSelectDropDownModule\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {ClickOutsideDirective as ɵc} from './click-outside.directive';\nexport {ListFilterPipe as ɵb} from './list-filter.pipe';\nexport {DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa} from './multiselect.component';"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js b/frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js deleted file mode 100644 index 0e463684..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js +++ /dev/null @@ -1,465 +0,0 @@ -import { __decorate } from 'tslib'; -import { Pipe, forwardRef, EventEmitter, Input, Output, HostListener, Component, ChangeDetectionStrategy, ElementRef, Directive, NgModule } from '@angular/core'; -import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms'; -import { CommonModule } from '@angular/common'; - -var ListItem = /** @class */ (function () { - function ListItem(source) { - if (typeof source === 'string' || typeof source === 'number') { - this.id = this.text = source; - this.isDisabled = false; - } - if (typeof source === 'object') { - this.id = source.id; - this.text = source.text; - this.isDisabled = source.isDisabled; - } - } - return ListItem; -}()); - -var ListFilterPipe = /** @class */ (function () { - function ListFilterPipe() { - } - ListFilterPipe.prototype.transform = function (items, filter) { - var _this = this; - if (!items || !filter) { - return items; - } - return items.filter(function (item) { return _this.applyFilter(item, filter); }); - }; - ListFilterPipe.prototype.applyFilter = function (item, filter) { - if (typeof item.text === 'string' && typeof filter.text === 'string') { - return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1); - } - else { - return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1); - } - }; - ListFilterPipe = __decorate([ - Pipe({ - name: 'multiSelectFilter', - pure: false - }) - ], ListFilterPipe); - return ListFilterPipe; -}()); - -var DROPDOWN_CONTROL_VALUE_ACCESSOR = { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(function () { return MultiSelectComponent; }), - multi: true -}; -var noop = function () { }; -var ɵ0 = noop; -var MultiSelectComponent = /** @class */ (function () { - function MultiSelectComponent(listFilterPipe) { - this.listFilterPipe = listFilterPipe; - this._data = []; - this.selectedItems = []; - this.isDropdownOpen = true; - this._placeholder = "Select"; - this._sourceDataType = null; // to keep note of the source data type. could be array of string/number/object - this._sourceDataFields = []; // store source data fields names - this.filter = new ListItem(this.data); - this.defaultSettings = { - singleSelection: false, - idField: "id", - textField: "text", - disabledField: "isDisabled", - enableCheckAll: true, - selectAllText: "Select All", - unSelectAllText: "UnSelect All", - allowSearchFilter: false, - limitSelection: -1, - clearSearchFilter: true, - maxHeight: 197, - itemsShowLimit: 999999999999, - searchPlaceholderText: "Search", - noDataAvailablePlaceholderText: "No data available", - closeDropDownOnSelection: false, - showSelectedItemsAtTop: false, - defaultOpen: false, - allowRemoteDataSearch: false - }; - this.disabled = false; - this.onFilterChange = new EventEmitter(); - this.onDropDownClose = new EventEmitter(); - this.onSelect = new EventEmitter(); - this.onDeSelect = new EventEmitter(); - this.onSelectAll = new EventEmitter(); - this.onDeSelectAll = new EventEmitter(); - this.onTouchedCallback = noop; - this.onChangeCallback = noop; - } - Object.defineProperty(MultiSelectComponent.prototype, "placeholder", { - set: function (value) { - if (value) { - this._placeholder = value; - } - else { - this._placeholder = "Select"; - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MultiSelectComponent.prototype, "settings", { - set: function (value) { - if (value) { - this._settings = Object.assign(this.defaultSettings, value); - } - else { - this._settings = Object.assign(this.defaultSettings); - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MultiSelectComponent.prototype, "data", { - set: function (value) { - var _this = this; - if (!value) { - this._data = []; - } - else { - var firstItem = value[0]; - this._sourceDataType = typeof firstItem; - this._sourceDataFields = this.getFields(firstItem); - this._data = value.map(function (item) { - return typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[_this._settings.idField], - text: item[_this._settings.textField], - isDisabled: item[_this._settings.disabledField] - }); - }); - } - }, - enumerable: true, - configurable: true - }); - MultiSelectComponent.prototype.onFilterTextChange = function ($event) { - this.onFilterChange.emit($event); - }; - MultiSelectComponent.prototype.onItemClick = function ($event, item) { - if (this.disabled || item.isDisabled) { - return false; - } - var found = this.isSelected(item); - var allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection); - if (!found) { - if (allowAdd) { - this.addSelected(item); - } - } - else { - this.removeSelected(item); - } - if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) { - this.closeDropdown(); - } - }; - MultiSelectComponent.prototype.writeValue = function (value) { - var _this = this; - if (value !== undefined && value !== null && value.length > 0) { - if (this._settings.singleSelection) { - try { - if (value.length >= 1) { - var firstItem = value[0]; - this.selectedItems = [ - typeof firstItem === "string" || typeof firstItem === "number" - ? new ListItem(firstItem) - : new ListItem({ - id: firstItem[this._settings.idField], - text: firstItem[this._settings.textField], - isDisabled: firstItem[this._settings.disabledField] - }) - ]; - } - } - catch (e) { - // console.error(e.body.msg); - } - } - else { - var _data = value.map(function (item) { - return typeof item === "string" || typeof item === "number" - ? new ListItem(item) - : new ListItem({ - id: item[_this._settings.idField], - text: item[_this._settings.textField], - isDisabled: item[_this._settings.disabledField] - }); - }); - if (this._settings.limitSelection > 0) { - this.selectedItems = _data.splice(0, this._settings.limitSelection); - } - else { - this.selectedItems = _data; - } - } - } - else { - this.selectedItems = []; - } - this.onChangeCallback(value); - }; - // From ControlValueAccessor interface - MultiSelectComponent.prototype.registerOnChange = function (fn) { - this.onChangeCallback = fn; - }; - // From ControlValueAccessor interface - MultiSelectComponent.prototype.registerOnTouched = function (fn) { - this.onTouchedCallback = fn; - }; - // Set touched on blur - MultiSelectComponent.prototype.onTouched = function () { - this.closeDropdown(); - this.onTouchedCallback(); - }; - MultiSelectComponent.prototype.trackByFn = function (index, item) { - return item.id; - }; - MultiSelectComponent.prototype.isSelected = function (clickedItem) { - var found = false; - this.selectedItems.forEach(function (item) { - if (clickedItem.id === item.id) { - found = true; - } - }); - return found; - }; - MultiSelectComponent.prototype.isLimitSelectionReached = function () { - return this._settings.limitSelection === this.selectedItems.length; - }; - MultiSelectComponent.prototype.isAllItemsSelected = function () { - // get disabld item count - var filteredItems = this.listFilterPipe.transform(this._data, this.filter); - var itemDisabledCount = filteredItems.filter(function (item) { return item.isDisabled; }).length; - // take disabled items into consideration when checking - if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) { - return false; - } - return filteredItems.length === this.selectedItems.length + itemDisabledCount; - }; - MultiSelectComponent.prototype.showButton = function () { - if (!this._settings.singleSelection) { - if (this._settings.limitSelection > 0) { - return false; - } - // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false; - return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0; - } - else { - // should be disabled in single selection mode - return false; - } - }; - MultiSelectComponent.prototype.itemShowRemaining = function () { - return this.selectedItems.length - this._settings.itemsShowLimit; - }; - MultiSelectComponent.prototype.addSelected = function (item) { - if (this._settings.singleSelection) { - this.selectedItems = []; - this.selectedItems.push(item); - } - else { - this.selectedItems.push(item); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onSelect.emit(this.emittedValue(item)); - }; - MultiSelectComponent.prototype.removeSelected = function (itemSel) { - var _this = this; - this.selectedItems.forEach(function (item) { - if (itemSel.id === item.id) { - _this.selectedItems.splice(_this.selectedItems.indexOf(item), 1); - } - }); - this.onChangeCallback(this.emittedValue(this.selectedItems)); - this.onDeSelect.emit(this.emittedValue(itemSel)); - }; - MultiSelectComponent.prototype.emittedValue = function (val) { - var _this = this; - var selected = []; - if (Array.isArray(val)) { - val.map(function (item) { - selected.push(_this.objectify(item)); - }); - } - else { - if (val) { - return this.objectify(val); - } - } - return selected; - }; - MultiSelectComponent.prototype.objectify = function (val) { - if (this._sourceDataType === 'object') { - var obj = {}; - obj[this._settings.idField] = val.id; - obj[this._settings.textField] = val.text; - if (this._sourceDataFields.includes(this._settings.disabledField)) { - obj[this._settings.disabledField] = val.isDisabled; - } - return obj; - } - if (this._sourceDataType === 'number') { - return Number(val.id); - } - else { - return val.text; - } - }; - MultiSelectComponent.prototype.toggleDropdown = function (evt) { - evt.preventDefault(); - if (this.disabled && this._settings.singleSelection) { - return; - } - this._settings.defaultOpen = !this._settings.defaultOpen; - if (!this._settings.defaultOpen) { - this.onDropDownClose.emit(); - } - }; - MultiSelectComponent.prototype.closeDropdown = function () { - this._settings.defaultOpen = false; - // clear search text - if (this._settings.clearSearchFilter) { - this.filter.text = ""; - } - this.onDropDownClose.emit(); - }; - MultiSelectComponent.prototype.toggleSelectAll = function () { - if (this.disabled) { - return false; - } - if (!this.isAllItemsSelected()) { - // filter out disabled item first before slicing - this.selectedItems = this.listFilterPipe.transform(this._data, this.filter).filter(function (item) { return !item.isDisabled; }).slice(); - this.onSelectAll.emit(this.emittedValue(this.selectedItems)); - } - else { - this.selectedItems = []; - this.onDeSelectAll.emit(this.emittedValue(this.selectedItems)); - } - this.onChangeCallback(this.emittedValue(this.selectedItems)); - }; - MultiSelectComponent.prototype.getFields = function (inputData) { - var fields = []; - if (typeof inputData !== "object") { - return fields; - } - // tslint:disable-next-line:forin - for (var prop in inputData) { - fields.push(prop); - } - return fields; - }; - MultiSelectComponent.ctorParameters = function () { return [ - { type: ListFilterPipe } - ]; }; - __decorate([ - Input() - ], MultiSelectComponent.prototype, "placeholder", null); - __decorate([ - Input() - ], MultiSelectComponent.prototype, "disabled", void 0); - __decorate([ - Input() - ], MultiSelectComponent.prototype, "settings", null); - __decorate([ - Input() - ], MultiSelectComponent.prototype, "data", null); - __decorate([ - Output("onFilterChange") - ], MultiSelectComponent.prototype, "onFilterChange", void 0); - __decorate([ - Output("onDropDownClose") - ], MultiSelectComponent.prototype, "onDropDownClose", void 0); - __decorate([ - Output("onSelect") - ], MultiSelectComponent.prototype, "onSelect", void 0); - __decorate([ - Output("onDeSelect") - ], MultiSelectComponent.prototype, "onDeSelect", void 0); - __decorate([ - Output("onSelectAll") - ], MultiSelectComponent.prototype, "onSelectAll", void 0); - __decorate([ - Output("onDeSelectAll") - ], MultiSelectComponent.prototype, "onDeSelectAll", void 0); - __decorate([ - HostListener("blur") - ], MultiSelectComponent.prototype, "onTouched", null); - MultiSelectComponent = __decorate([ - Component({ - selector: "ng-multiselect-dropdown", - template: "
\n
\n \n {{_placeholder}}\n _settings.itemsShowLimit-1\">\n {{item.text}}\n x\n \n \n 0\">+{{itemShowRemaining()}}\n \n \n \n
\n
\n
    \n
  • 0 || _settings.allowRemoteDataSearch) && !_settings.singleSelection && _settings.enableCheckAll && _settings.limitSelection===-1\" class=\"multiselect-item-checkbox\" style=\"border-bottom: 1px solid #ccc;padding:10px\">\n \n
    {{!isAllItemsSelected() ? _settings.selectAllText : _settings.unSelectAllText}}
    \n
  • \n
  • 0 || _settings.allowRemoteDataSearch) && _settings.allowSearchFilter\">\n \n
  • \n
\n
    \n
  • \n \n
    {{item.text}}
    \n
  • \n
  • \n
    {{_settings.noDataAvailablePlaceholderText}}
    \n
  • \n
\n
\n
\n", - providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR], - changeDetection: ChangeDetectionStrategy.OnPush, - styles: [".multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\"\"}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:\"\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:\"\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:\"\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}"] - }) - ], MultiSelectComponent); - return MultiSelectComponent; -}()); - -var ClickOutsideDirective = /** @class */ (function () { - function ClickOutsideDirective(_elementRef) { - this._elementRef = _elementRef; - this.clickOutside = new EventEmitter(); - } - ClickOutsideDirective.prototype.onClick = function (event, targetElement) { - if (!targetElement) { - return; - } - var clickedInside = this._elementRef.nativeElement.contains(targetElement); - if (!clickedInside) { - this.clickOutside.emit(event); - } - }; - ClickOutsideDirective.ctorParameters = function () { return [ - { type: ElementRef } - ]; }; - __decorate([ - Output() - ], ClickOutsideDirective.prototype, "clickOutside", void 0); - __decorate([ - HostListener('document:click', ['$event', '$event.target']) - ], ClickOutsideDirective.prototype, "onClick", null); - ClickOutsideDirective = __decorate([ - Directive({ - selector: '[clickOutside]' - }) - ], ClickOutsideDirective); - return ClickOutsideDirective; -}()); - -var NgMultiSelectDropDownModule = /** @class */ (function () { - function NgMultiSelectDropDownModule() { - } - NgMultiSelectDropDownModule_1 = NgMultiSelectDropDownModule; - NgMultiSelectDropDownModule.forRoot = function () { - return { - ngModule: NgMultiSelectDropDownModule_1 - }; - }; - var NgMultiSelectDropDownModule_1; - NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = __decorate([ - NgModule({ - imports: [CommonModule, FormsModule], - declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe], - providers: [ListFilterPipe], - exports: [MultiSelectComponent] - }) - ], NgMultiSelectDropDownModule); - return NgMultiSelectDropDownModule; -}()); - -/** - * Generated bundle index. Do not edit. - */ - -export { MultiSelectComponent, NgMultiSelectDropDownModule, DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa, ListFilterPipe as ɵb, ClickOutsideDirective as ɵc }; -//# sourceMappingURL=ng-multiselect-dropdown.js.map diff --git a/frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js.map b/frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js.map deleted file mode 100644 index 49314c04..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/fesm5/ng-multiselect-dropdown.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ng-multiselect-dropdown.js","sources":["ng://ng-multiselect-dropdown/multiselect.model.ts","ng://ng-multiselect-dropdown/list-filter.pipe.ts","ng://ng-multiselect-dropdown/multiselect.component.ts","ng://ng-multiselect-dropdown/click-outside.directive.ts","ng://ng-multiselect-dropdown/ng-multiselect-dropdown.module.ts","ng://ng-multiselect-dropdown/ng-multiselect-dropdown.ts"],"sourcesContent":["export interface IDropdownSettings {\n singleSelection?: boolean;\n idField?: string;\n textField?: string;\n disabledField?: string;\n enableCheckAll?: boolean;\n selectAllText?: string;\n unSelectAllText?: string;\n allowSearchFilter?: boolean;\n clearSearchFilter?: boolean;\n maxHeight?: number;\n itemsShowLimit?: number;\n limitSelection?: number;\n searchPlaceholderText?: string;\n noDataAvailablePlaceholderText?: string;\n closeDropDownOnSelection?: boolean;\n showSelectedItemsAtTop?: boolean;\n defaultOpen?: boolean;\n allowRemoteDataSearch?: boolean;\n}\n\nexport class ListItem {\n id: String | number;\n text: String | number;\n isDisabled?: boolean;\n\n public constructor(source: any) {\n if (typeof source === 'string' || typeof source === 'number') {\n this.id = this.text = source;\n this.isDisabled = false;\n }\n if (typeof source === 'object') {\n this.id = source.id;\n this.text = source.text;\n this.isDisabled = source.isDisabled;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { ListItem } from './multiselect.model';\n\n@Pipe({\n name: 'multiSelectFilter',\n pure: false\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(items: ListItem[], filter: ListItem): ListItem[] {\n if (!items || !filter) {\n return items;\n }\n return items.filter((item: ListItem) => this.applyFilter(item, filter));\n }\n\n applyFilter(item: ListItem, filter: ListItem): boolean {\n if (typeof item.text === 'string' && typeof filter.text === 'string') {\n return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);\n } else {\n return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1);\n }\n }\n}\n","import { Component, HostListener, forwardRef, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport { ListItem, IDropdownSettings } from \"./multiselect.model\";\nimport { ListFilterPipe } from \"./list-filter.pipe\";\n\nexport const DROPDOWN_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n};\nconst noop = () => {};\n\n@Component({\n selector: \"ng-multiselect-dropdown\",\n templateUrl: \"./multi-select.component.html\",\n styleUrls: [\"./multi-select.component.scss\"],\n providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MultiSelectComponent implements ControlValueAccessor {\n public _settings: IDropdownSettings;\n public _data: Array = [];\n public selectedItems: Array = [];\n public isDropdownOpen = true;\n _placeholder = \"Select\";\n private _sourceDataType = null; // to keep note of the source data type. could be array of string/number/object\n private _sourceDataFields: Array = []; // store source data fields names\n filter: ListItem = new ListItem(this.data);\n defaultSettings: IDropdownSettings = {\n singleSelection: false,\n idField: \"id\",\n textField: \"text\",\n disabledField: \"isDisabled\",\n enableCheckAll: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: false,\n limitSelection: -1,\n clearSearchFilter: true,\n maxHeight: 197,\n itemsShowLimit: 999999999999,\n searchPlaceholderText: \"Search\",\n noDataAvailablePlaceholderText: \"No data available\",\n closeDropDownOnSelection: false,\n showSelectedItemsAtTop: false,\n defaultOpen: false,\n allowRemoteDataSearch: false\n };\n\n @Input()\n public set placeholder(value: string) {\n if (value) {\n this._placeholder = value;\n } else {\n this._placeholder = \"Select\";\n }\n }\n @Input()\n disabled = false;\n\n @Input()\n public set settings(value: IDropdownSettings) {\n if (value) {\n this._settings = Object.assign(this.defaultSettings, value);\n } else {\n this._settings = Object.assign(this.defaultSettings);\n }\n }\n\n @Input()\n public set data(value: Array) {\n if (!value) {\n this._data = [];\n } else {\n const firstItem = value[0];\n this._sourceDataType = typeof firstItem;\n this._sourceDataFields = this.getFields(firstItem);\n this._data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n }\n }\n\n @Output(\"onFilterChange\")\n onFilterChange: EventEmitter = new EventEmitter();\n @Output(\"onDropDownClose\")\n onDropDownClose: EventEmitter = new EventEmitter();\n\n @Output(\"onSelect\")\n onSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onDeSelect\")\n onDeSelect: EventEmitter = new EventEmitter();\n\n @Output(\"onSelectAll\")\n onSelectAll: EventEmitter> = new EventEmitter>();\n\n @Output(\"onDeSelectAll\")\n onDeSelectAll: EventEmitter> = new EventEmitter>();\n\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n onFilterTextChange($event) {\n this.onFilterChange.emit($event);\n }\n\n constructor(private listFilterPipe:ListFilterPipe) {}\n\n onItemClick($event: any, item: ListItem) {\n if (this.disabled || item.isDisabled) {\n return false;\n }\n\n const found = this.isSelected(item);\n const allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection);\n if (!found) {\n if (allowAdd) {\n this.addSelected(item);\n }\n } else {\n this.removeSelected(item);\n }\n if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) {\n this.closeDropdown();\n }\n }\n\n writeValue(value: any) {\n if (value !== undefined && value !== null && value.length > 0) {\n if (this._settings.singleSelection) {\n try {\n if (value.length >= 1) {\n const firstItem = value[0];\n this.selectedItems = [\n typeof firstItem === \"string\" || typeof firstItem === \"number\"\n ? new ListItem(firstItem)\n : new ListItem({\n id: firstItem[this._settings.idField],\n text: firstItem[this._settings.textField],\n isDisabled: firstItem[this._settings.disabledField]\n })\n ];\n }\n } catch (e) {\n // console.error(e.body.msg);\n }\n } else {\n const _data = value.map((item: any) =>\n typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n })\n );\n if (this._settings.limitSelection > 0) {\n this.selectedItems = _data.splice(0, this._settings.limitSelection);\n } else {\n this.selectedItems = _data;\n }\n }\n } else {\n this.selectedItems = [];\n }\n this.onChangeCallback(value);\n }\n\n // From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n // From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n // Set touched on blur\n @HostListener(\"blur\")\n public onTouched() {\n this.closeDropdown();\n this.onTouchedCallback();\n }\n\n trackByFn(index, item) {\n return item.id;\n }\n\n isSelected(clickedItem: ListItem) {\n let found = false;\n this.selectedItems.forEach(item => {\n if (clickedItem.id === item.id) {\n found = true;\n }\n });\n return found;\n }\n\n isLimitSelectionReached(): boolean {\n return this._settings.limitSelection === this.selectedItems.length;\n }\n\n isAllItemsSelected(): boolean {\n // get disabld item count\n let filteredItems = this.listFilterPipe.transform(this._data,this.filter);\n const itemDisabledCount = filteredItems.filter(item => item.isDisabled).length;\n // take disabled items into consideration when checking\n if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) {\n return false;\n }\n return filteredItems.length === this.selectedItems.length + itemDisabledCount;\n }\n\n showButton(): boolean {\n if (!this._settings.singleSelection) {\n if (this._settings.limitSelection > 0) {\n return false;\n }\n // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false;\n return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0;\n } else {\n // should be disabled in single selection mode\n return false;\n }\n }\n\n itemShowRemaining(): number {\n return this.selectedItems.length - this._settings.itemsShowLimit;\n }\n\n addSelected(item: ListItem) {\n if (this._settings.singleSelection) {\n this.selectedItems = [];\n this.selectedItems.push(item);\n } else {\n this.selectedItems.push(item);\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onSelect.emit(this.emittedValue(item));\n }\n\n removeSelected(itemSel: ListItem) {\n this.selectedItems.forEach(item => {\n if (itemSel.id === item.id) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n });\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onDeSelect.emit(this.emittedValue(itemSel));\n }\n\n emittedValue(val: any): any {\n const selected = [];\n if (Array.isArray(val)) {\n val.map(item => {\n selected.push(this.objectify(item));\n });\n } else {\n if (val) {\n return this.objectify(val);\n }\n }\n return selected;\n }\n\n objectify(val: ListItem) {\n if (this._sourceDataType === 'object') {\n const obj = {};\n obj[this._settings.idField] = val.id;\n obj[this._settings.textField] = val.text;\n if (this._sourceDataFields.includes(this._settings.disabledField)) {\n obj[this._settings.disabledField] = val.isDisabled;\n }\n return obj;\n }\n if (this._sourceDataType === 'number') {\n return Number(val.id);\n } else {\n return val.text;\n }\n }\n\n toggleDropdown(evt) {\n evt.preventDefault();\n if (this.disabled && this._settings.singleSelection) {\n return;\n }\n this._settings.defaultOpen = !this._settings.defaultOpen;\n if (!this._settings.defaultOpen) {\n this.onDropDownClose.emit();\n }\n }\n\n closeDropdown() {\n this._settings.defaultOpen = false;\n // clear search text\n if (this._settings.clearSearchFilter) {\n this.filter.text = \"\";\n }\n this.onDropDownClose.emit();\n }\n\n toggleSelectAll() {\n if (this.disabled) {\n return false;\n }\n if (!this.isAllItemsSelected()) {\n // filter out disabled item first before slicing\n this.selectedItems = this.listFilterPipe.transform(this._data,this.filter).filter(item => !item.isDisabled).slice();\n this.onSelectAll.emit(this.emittedValue(this.selectedItems));\n } else {\n this.selectedItems = [];\n this.onDeSelectAll.emit(this.emittedValue(this.selectedItems));\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n }\n\n getFields(inputData) {\n const fields = [];\n if (typeof inputData !== \"object\") {\n return fields;\n }\n // tslint:disable-next-line:forin\n for (const prop in inputData) {\n fields.push(prop);\n }\n return fields;\n }\n}\n","import {Directive, ElementRef, Output, EventEmitter, HostListener} from '@angular/core';\n\n@Directive({\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n constructor(private _elementRef: ElementRef) {\n }\n\n @Output()\n public clickOutside = new EventEmitter();\n\n @HostListener('document:click', ['$event', '$event.target'])\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\n if (!targetElement) {\n return;\n }\n\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MultiSelectComponent } from './multiselect.component';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { ListFilterPipe } from './list-filter.pipe';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe],\n providers: [ListFilterPipe],\n exports: [MultiSelectComponent]\n})\n\nexport class NgMultiSelectDropDownModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: NgMultiSelectDropDownModule\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {ClickOutsideDirective as ɵc} from './click-outside.directive';\nexport {ListFilterPipe as ɵb} from './list-filter.pipe';\nexport {DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa} from './multiselect.component';"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/list-filter.pipe.d.ts b/frontend/node_modules/ng-multiselect-dropdown/list-filter.pipe.d.ts deleted file mode 100644 index db411240..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/list-filter.pipe.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { PipeTransform } from '@angular/core'; -import { ListItem } from './multiselect.model'; -import * as ɵngcc0 from '@angular/core'; -export declare class ListFilterPipe implements PipeTransform { - transform(items: ListItem[], filter: ListItem): ListItem[]; - applyFilter(item: ListItem, filter: ListItem): boolean; - static ɵfac: ɵngcc0.ɵɵFactoryDeclaration; - static ɵpipe: ɵngcc0.ɵɵPipeDeclaration; -} - -//# sourceMappingURL=list-filter.pipe.d.ts.map \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/multiselect.component.d.ts b/frontend/node_modules/ng-multiselect-dropdown/multiselect.component.d.ts deleted file mode 100644 index bafe2e08..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/multiselect.component.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { EventEmitter } from "@angular/core"; -import { ControlValueAccessor } from "@angular/forms"; -import { ListItem, IDropdownSettings } from "./multiselect.model"; -import { ListFilterPipe } from "./list-filter.pipe"; -import * as ɵngcc0 from '@angular/core'; -export declare const DROPDOWN_CONTROL_VALUE_ACCESSOR: any; -export declare class MultiSelectComponent implements ControlValueAccessor { - private listFilterPipe; - _settings: IDropdownSettings; - _data: Array; - selectedItems: Array; - isDropdownOpen: boolean; - _placeholder: string; - private _sourceDataType; - private _sourceDataFields; - filter: ListItem; - defaultSettings: IDropdownSettings; - placeholder: string; - disabled: boolean; - settings: IDropdownSettings; - data: Array; - onFilterChange: EventEmitter; - onDropDownClose: EventEmitter; - onSelect: EventEmitter; - onDeSelect: EventEmitter; - onSelectAll: EventEmitter>; - onDeSelectAll: EventEmitter>; - private onTouchedCallback; - private onChangeCallback; - onFilterTextChange($event: any): void; - constructor(listFilterPipe: ListFilterPipe); - onItemClick($event: any, item: ListItem): boolean; - writeValue(value: any): void; - registerOnChange(fn: any): void; - registerOnTouched(fn: any): void; - onTouched(): void; - trackByFn(index: any, item: any): any; - isSelected(clickedItem: ListItem): boolean; - isLimitSelectionReached(): boolean; - isAllItemsSelected(): boolean; - showButton(): boolean; - itemShowRemaining(): number; - addSelected(item: ListItem): void; - removeSelected(itemSel: ListItem): void; - emittedValue(val: any): any; - objectify(val: ListItem): {}; - toggleDropdown(evt: any): void; - closeDropdown(): void; - toggleSelectAll(): boolean; - getFields(inputData: any): any[]; - static ɵfac: ɵngcc0.ɵɵFactoryDeclaration; - static ɵcmp: ɵngcc0.ɵɵComponentDeclaration; -} - -//# sourceMappingURL=multiselect.component.d.ts.map \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/multiselect.model.d.ts b/frontend/node_modules/ng-multiselect-dropdown/multiselect.model.d.ts deleted file mode 100644 index 5c4cbcc0..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/multiselect.model.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -export interface IDropdownSettings { - singleSelection?: boolean; - idField?: string; - textField?: string; - disabledField?: string; - enableCheckAll?: boolean; - selectAllText?: string; - unSelectAllText?: string; - allowSearchFilter?: boolean; - clearSearchFilter?: boolean; - maxHeight?: number; - itemsShowLimit?: number; - limitSelection?: number; - searchPlaceholderText?: string; - noDataAvailablePlaceholderText?: string; - closeDropDownOnSelection?: boolean; - showSelectedItemsAtTop?: boolean; - defaultOpen?: boolean; - allowRemoteDataSearch?: boolean; -} -export declare class ListItem { - id: String | number; - text: String | number; - isDisabled?: boolean; - constructor(source: any); -} diff --git a/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.d.ts b/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.d.ts deleted file mode 100644 index 0969ca63..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Generated bundle index. Do not edit. - */ -export * from './public_api'; -export { ClickOutsideDirective as ɵc } from './click-outside.directive'; -export { ListFilterPipe as ɵb } from './list-filter.pipe'; -export { DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa } from './multiselect.component'; - -//# sourceMappingURL=ng-multiselect-dropdown.d.ts.map \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.metadata.json b/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.metadata.json deleted file mode 100644 index f3aeaac3..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"__symbolic":"module","version":4,"metadata":{"ɵa":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":6,"character":11},"useExisting":{"__symbolic":"reference","name":"MultiSelectComponent"},"multi":true},"MultiSelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"ng-multiselect-dropdown","providers":[{"__symbolic":"reference","name":"ɵa"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"
\n
\n \n {{_placeholder}}\n _settings.itemsShowLimit-1\">\n {{item.text}}\n x\n \n \n 0\">+{{itemShowRemaining()}}\n \n \n \n
\n
\n
    \n
  • 0 || _settings.allowRemoteDataSearch) && !_settings.singleSelection && _settings.enableCheckAll && _settings.limitSelection===-1\" class=\"multiselect-item-checkbox\" style=\"border-bottom: 1px solid #ccc;padding:10px\">\n \n
    {{!isAllItemsSelected() ? _settings.selectAllText : _settings.unSelectAllText}}
    \n
  • \n
  • 0 || _settings.allowRemoteDataSearch) && _settings.allowSearchFilter\">\n \n
  • \n
\n
    \n
  • \n \n
    {{item.text}}
    \n
  • \n
  • \n
    {{_settings.noDataAvailablePlaceholderText}}
    \n
  • \n
\n
\n
\n","styles":[".multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\"\"}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:\"\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:\"\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:\"\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}"]}]}],"members":{"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"onFilterChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":89,"character":3},"arguments":["onFilterChange"]}]}],"onDropDownClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":91,"character":3},"arguments":["onDropDownClose"]}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":94,"character":3},"arguments":["onSelect"]}]}],"onDeSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":97,"character":3},"arguments":["onDeSelect"]}]}],"onSelectAll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":100,"character":3},"arguments":["onSelectAll"]}]}],"onDeSelectAll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":103,"character":3},"arguments":["onDeSelectAll"]}]}],"onFilterTextChange":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"onItemClick":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"onTouched":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":186,"character":3},"arguments":["blur"]}]}],"trackByFn":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}],"isLimitSelectionReached":[{"__symbolic":"method"}],"isAllItemsSelected":[{"__symbolic":"method"}],"showButton":[{"__symbolic":"method"}],"itemShowRemaining":[{"__symbolic":"method"}],"addSelected":[{"__symbolic":"method"}],"removeSelected":[{"__symbolic":"method"}],"emittedValue":[{"__symbolic":"method"}],"objectify":[{"__symbolic":"method"}],"toggleDropdown":[{"__symbolic":"method"}],"closeDropdown":[{"__symbolic":"method"}],"toggleSelectAll":[{"__symbolic":"method"}],"getFields":[{"__symbolic":"method"}]}},"NgMultiSelectDropDownModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":8,"character":26}],"declarations":[{"__symbolic":"reference","name":"MultiSelectComponent"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵb"}],"providers":[{"__symbolic":"reference","name":"ɵb"}],"exports":[{"__symbolic":"reference","name":"MultiSelectComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"NgMultiSelectDropDownModule"}}}}},"IDropdownSettings":{"__symbolic":"interface"},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":4,"character":1},"arguments":[{"name":"multiSelectFilter","pure":false}]}],"members":{"transform":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[clickOutside]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":6,"character":37}]}],"clickOutside":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":9,"character":5}}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":12,"character":5},"arguments":["document:click",["$event","$event.target"]]}]}]}}},"origins":{"ɵa":"./multiselect.component","MultiSelectComponent":"./multiselect.component","NgMultiSelectDropDownModule":"./ng-multiselect-dropdown.module","IDropdownSettings":"./multiselect.model","ɵb":"./list-filter.pipe","ɵc":"./click-outside.directive"},"importAs":"ng-multiselect-dropdown"} \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.module.d.ts b/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.module.d.ts deleted file mode 100644 index 62cca0c6..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/ng-multiselect-dropdown.module.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ModuleWithProviders } from '@angular/core'; -import * as ɵngcc0 from '@angular/core'; -import * as ɵngcc1 from './multiselect.component'; -import * as ɵngcc2 from './click-outside.directive'; -import * as ɵngcc3 from './list-filter.pipe'; -import * as ɵngcc4 from '@angular/common'; -import * as ɵngcc5 from '@angular/forms'; -export declare class NgMultiSelectDropDownModule { - static forRoot(): ModuleWithProviders; - static ɵfac: ɵngcc0.ɵɵFactoryDeclaration; - static ɵmod: ɵngcc0.ɵɵNgModuleDeclaration; - static ɵinj: ɵngcc0.ɵɵInjectorDeclaration; -} - -//# sourceMappingURL=ng-multiselect-dropdown.module.d.ts.map \ No newline at end of file diff --git a/frontend/node_modules/ng-multiselect-dropdown/package.json b/frontend/node_modules/ng-multiselect-dropdown/package.json deleted file mode 100644 index 1bb1306b..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "ng-multiselect-dropdown", - "version": "0.3.4", - "private": false, - "description": "Angular Multi-Select Dropdown", - "author": "Nilesh Patel", - "license": "MIT", - "keywords": [ - "angular4", - "angular8", - "angular multiselect dropdown", - "angular4 multiselect dropdown", - "angular8 multiselect dropdown", - "ng multiselect dropdown", - "ng4 multiselect dropdown", - "ng8 multiselect dropdown" - ], - "repository": { - "type": "git", - "url": "https://github.com/nileshpatel17/ng-multiselect-dropdown.git" - }, - "bugs": { - "url": "https://github.com/nileshpatel17/ng-multiselect-dropdown/issues" - }, - "homepage": "https://github.com/nileshpatel17/ng-multiselect-dropdown#readme", - "peerDependencies": { - "@angular/common": ">=2.0.0", - "@angular/core": ">=2.0.0" - }, - "devDependencies": { - "@angular-devkit/build-angular": "~0.802.2", - "@angular/animations": "8.2.2", - "@angular/cli": "^8.2.2", - "@angular/common": "8.2.2", - "@angular/compiler": "8.2.2", - "@angular/compiler-cli": "8.2.2", - "@angular/core": "8.2.2", - "@angular/forms": "8.2.2", - "@angular/http": "7.2.15", - "@angular/language-service": "8.2.2", - "@angular/platform-browser": "8.2.2", - "@angular/platform-browser-dynamic": "8.2.2", - "@angular/router": "8.2.2", - "@types/jasmine": "~3.4.0", - "@types/jasminewd2": "~2.0.2", - "@types/node": "~12.7.2", - "angular-cli-ghpages": "^0.6.0-rc.2", - "angular2-markdown": "^2.2.3", - "codelyzer": "~5.1.0", - "copyfiles": "^2.0.0", - "core-js": "^3.2.1", - "jasmine-core": "~3.4.0", - "jasmine-spec-reporter": "~4.2.1", - "jest": "^24.9.0", - "jest-preset-angular": "^7.1.1", - "karma": "~4.2.0", - "karma-chrome-launcher": "~3.1.0", - "karma-cli": "~2.0.0", - "karma-coverage-istanbul-reporter": "^2.1.0", - "karma-jasmine": "~2.0.1", - "karma-jasmine-html-reporter": "^1.4.2", - "ng-multiselect-dropdown": "^0.2.11", - "ng-packagr": "^5.5.0", - "ngx-bootstrap": "^5.1.1", - "protractor": "~5.4.2", - "rimraf": "^3.0.0", - "rxjs": "^6.2.1", - "rxjs-compat": "^6.2.1", - "ts-node": "~8.3.0", - "tslint": "~5.19.0", - "typescript": "3.5.3", - "zone.js": "^0.10.2" - }, - "main": "bundles/ng-multiselect-dropdown.umd.js", - "module": "fesm5/ng-multiselect-dropdown.js", - "es2015_ivy_ngcc": "__ivy_ngcc__/fesm2015/ng-multiselect-dropdown.js", - "es2015": "fesm2015/ng-multiselect-dropdown.js", - "esm5": "esm5/ng-multiselect-dropdown.js", - "esm2015": "esm2015/ng-multiselect-dropdown.js", - "fesm5": "fesm5/ng-multiselect-dropdown.js", - "fesm2015_ivy_ngcc": "__ivy_ngcc__/fesm2015/ng-multiselect-dropdown.js", - "fesm2015": "fesm2015/ng-multiselect-dropdown.js", - "typings": "ng-multiselect-dropdown.d.ts", - "metadata": "ng-multiselect-dropdown.metadata.json", - "sideEffects": false, - "dependencies": { - "tslib": "^1.9.0" - }, - "__processed_by_ivy_ngcc__": { - "es2015": "15.1.1", - "fesm2015": "15.1.1", - "typings": "15.1.1" - }, - "scripts": { - "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by NGCC. This is not allowed.\\nPlease delete and rebuild the package, without compiling with NGCC, before attempting to publish.\\nNote that NGCC may have been run by importing this package into another project that is being built with Ivy enabled.\\n')\" && exit 1" - } -} diff --git a/frontend/node_modules/ng-multiselect-dropdown/public_api.d.ts b/frontend/node_modules/ng-multiselect-dropdown/public_api.d.ts deleted file mode 100644 index 53f93bd3..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/public_api.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { MultiSelectComponent } from './multiselect.component'; -export { NgMultiSelectDropDownModule } from './ng-multiselect-dropdown.module'; -export { IDropdownSettings } from './multiselect.model'; diff --git a/frontend/node_modules/ng-multiselect-dropdown/themes/ng-multiselect-dropdown.theme.scss b/frontend/node_modules/ng-multiselect-dropdown/themes/ng-multiselect-dropdown.theme.scss deleted file mode 100644 index c6f11ad3..00000000 --- a/frontend/node_modules/ng-multiselect-dropdown/themes/ng-multiselect-dropdown.theme.scss +++ /dev/null @@ -1,210 +0,0 @@ -$base-color: #337ab7; -$disable-background-color: #eceeef; -.multiselect-dropdown { - position: relative; - width: 100%; - font-size: inherit; - font-family: inherit; - .dropdown-btn { - display: inline-block; - border: 1px solid #adadad; - width: 100%; - padding: 6px 12px; - margin-bottom: 0; - font-weight: normal; - line-height: 1.52857143; - text-align: left; - vertical-align: middle; - cursor: pointer; - background-image: none; - border-radius: 4px; - .selected-item { - border: 1px solid $base-color; - margin-right: 4px; - background: $base-color; - padding: 0px 5px; - color: #fff; - border-radius: 2px; - float: left; - a { - text-decoration: none; - } - } - .selected-item:hover { - box-shadow: 1px 1px #959595; - } - .dropdown-down { - display: inline-block; - top: 10px; - width: 0; - height: 0; - border-top: 10px solid #adadad; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - } - .dropdown-up { - display: inline-block; - width: 0; - height: 0; - border-bottom: 10px solid #adadad; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - } - } - .disabled { - & > span { - background-color: $disable-background-color; - } - } -} - -.dropdown-list { - position: absolute; - padding-top: 6px; - width: 100%; - z-index: 9999; - border: 1px solid #ccc; - border-radius: 3px; - background: #fff; - margin-top: 10px; - box-shadow: 0px 1px 5px #959595; - ul { - padding: 0px; - list-style: none; - overflow: auto; - margin: 0px; - } - li { - padding: 6px 10px; - cursor: pointer; - text-align: left; - } - .filter-textbox { - border-bottom: 1px solid #ccc; - position: relative; - padding: 10px; - input { - border: 0px; - width: 100%; - padding: 0px 0px 0px 26px; - } - input:focus { - outline: none; - } - } -} - -.multiselect-item-checkbox input[type='checkbox'] { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.multiselect-item-checkbox input[type='checkbox']:focus + div:before, -.multiselect-item-checkbox input[type='checkbox']:hover + div:before { - border-color: $base-color; - background-color: #f2f2f2; -} - -.multiselect-item-checkbox input[type='checkbox']:active + div:before { - transition-duration: 0s; -} - -.multiselect-item-checkbox input[type='checkbox'] + div { - position: relative; - padding-left: 2em; - vertical-align: middle; - user-select: none; - cursor: pointer; - margin: 0px; - color: #000; -} - -.multiselect-item-checkbox input[type='checkbox'] + div:before { - box-sizing: content-box; - content: ''; - color: $base-color; - position: absolute; - top: 50%; - left: 0; - width: 14px; - height: 14px; - margin-top: -9px; - border: 2px solid $base-color; - text-align: center; - transition: all 0.4s ease; -} - -.multiselect-item-checkbox input[type='checkbox'] + div:after { - box-sizing: content-box; - content: ''; - background-color: $base-color; - position: absolute; - top: 50%; - left: 4px; - width: 10px; - height: 10px; - margin-top: -5px; - transform: scale(0); - transform-origin: 50%; - transition: transform 200ms ease-out; -} - -.multiselect-item-checkbox input[type='checkbox']:disabled + div:before { - border-color: #cccccc; -} - -.multiselect-item-checkbox - input[type='checkbox']:disabled:focus - + div:before - .multiselect-item-checkbox - input[type='checkbox']:disabled:hover - + div:before { - background-color: inherit; -} - -.multiselect-item-checkbox - input[type='checkbox']:disabled:checked - + div:before { - background-color: #cccccc; -} - -.multiselect-item-checkbox input[type='checkbox'] + div:after { - background-color: transparent; - top: 50%; - left: 4px; - width: 8px; - height: 3px; - margin-top: -4px; - border-style: solid; - border-color: #ffffff; - border-width: 0 0 3px 3px; - border-image: none; - transform: rotate(-45deg) scale(0); -} - -.multiselect-item-checkbox input[type='checkbox']:checked + div:after { - content: ''; - transform: rotate(-45deg) scale(1); - transition: transform 200ms ease-out; -} - -.multiselect-item-checkbox input[type='checkbox']:checked + div:before { - animation: borderscale 200ms ease-in; - background: $base-color; -} - -.multiselect-item-checkbox input[type='checkbox']:checked + div:after { - transform: rotate(-45deg) scale(1); -} - -@keyframes borderscale { - 50% { - box-shadow: 0 0 0 2px $base-color; - } -} \ No newline at end of file diff --git a/frontend/node_modules/tslib/CopyrightNotice.txt b/frontend/node_modules/tslib/CopyrightNotice.txt deleted file mode 100644 index 3d4c8234..00000000 --- a/frontend/node_modules/tslib/CopyrightNotice.txt +++ /dev/null @@ -1,15 +0,0 @@ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ - diff --git a/frontend/node_modules/tslib/LICENSE.txt b/frontend/node_modules/tslib/LICENSE.txt deleted file mode 100644 index bfe6430c..00000000 --- a/frontend/node_modules/tslib/LICENSE.txt +++ /dev/null @@ -1,12 +0,0 @@ -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/frontend/node_modules/tslib/README.md b/frontend/node_modules/tslib/README.md deleted file mode 100644 index a5b2692c..00000000 --- a/frontend/node_modules/tslib/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# tslib - -This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions. - -This library is primarily used by the `--importHelpers` flag in TypeScript. -When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file: - -```ts -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -exports.x = {}; -exports.y = __assign({}, exports.x); - -``` - -will instead be emitted as something like the following: - -```ts -var tslib_1 = require("tslib"); -exports.x = {}; -exports.y = tslib_1.__assign({}, exports.x); -``` - -Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead. -For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`. - -# Installing - -For the latest stable version, run: - -## npm - -```sh -# TypeScript 2.3.3 or later -npm install tslib - -# TypeScript 2.3.2 or earlier -npm install tslib@1.6.1 -``` - -## yarn - -```sh -# TypeScript 2.3.3 or later -yarn add tslib - -# TypeScript 2.3.2 or earlier -yarn add tslib@1.6.1 -``` - -## bower - -```sh -# TypeScript 2.3.3 or later -bower install tslib - -# TypeScript 2.3.2 or earlier -bower install tslib@1.6.1 -``` - -## JSPM - -```sh -# TypeScript 2.3.3 or later -jspm install tslib - -# TypeScript 2.3.2 or earlier -jspm install tslib@1.6.1 -``` - -# Usage - -Set the `importHelpers` compiler option on the command line: - -``` -tsc --importHelpers file.ts -``` - -or in your tsconfig.json: - -```json -{ - "compilerOptions": { - "importHelpers": true - } -} -``` - -#### For bower and JSPM users - -You will need to add a `paths` mapping for `tslib`, e.g. For Bower users: - -```json -{ - "compilerOptions": { - "module": "amd", - "importHelpers": true, - "baseUrl": "./", - "paths": { - "tslib" : ["bower_components/tslib/tslib.d.ts"] - } - } -} -``` - -For JSPM users: - -```json -{ - "compilerOptions": { - "module": "system", - "importHelpers": true, - "baseUrl": "./", - "paths": { - "tslib" : ["jspm_packages/npm/tslib@1.[version].0/tslib.d.ts"] - } - } -} -``` - - -# Contribute - -There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript. - -* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in. -* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls). -* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript). -* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter. -* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md). - -# Documentation - -* [Quick tutorial](http://www.typescriptlang.org/Tutorial) -* [Programming handbook](http://www.typescriptlang.org/Handbook) -* [Homepage](http://www.typescriptlang.org/) diff --git a/frontend/node_modules/tslib/modules/index.js b/frontend/node_modules/tslib/modules/index.js deleted file mode 100644 index d241d042..00000000 --- a/frontend/node_modules/tslib/modules/index.js +++ /dev/null @@ -1,51 +0,0 @@ -import tslib from '../tslib.js'; -const { - __extends, - __assign, - __rest, - __decorate, - __param, - __metadata, - __awaiter, - __generator, - __exportStar, - __createBinding, - __values, - __read, - __spread, - __spreadArrays, - __await, - __asyncGenerator, - __asyncDelegator, - __asyncValues, - __makeTemplateObject, - __importStar, - __importDefault, - __classPrivateFieldGet, - __classPrivateFieldSet, -} = tslib; -export { - __extends, - __assign, - __rest, - __decorate, - __param, - __metadata, - __awaiter, - __generator, - __exportStar, - __createBinding, - __values, - __read, - __spread, - __spreadArrays, - __await, - __asyncGenerator, - __asyncDelegator, - __asyncValues, - __makeTemplateObject, - __importStar, - __importDefault, - __classPrivateFieldGet, - __classPrivateFieldSet, -}; diff --git a/frontend/node_modules/tslib/modules/package.json b/frontend/node_modules/tslib/modules/package.json deleted file mode 100644 index aafa0e4b..00000000 --- a/frontend/node_modules/tslib/modules/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} \ No newline at end of file diff --git a/frontend/node_modules/tslib/package.json b/frontend/node_modules/tslib/package.json deleted file mode 100644 index f8c2a53d..00000000 --- a/frontend/node_modules/tslib/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "1.14.1", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } -} diff --git a/frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js b/frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js deleted file mode 100644 index 0c1b613d..00000000 --- a/frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js +++ /dev/null @@ -1,23 +0,0 @@ -// When on node 14, it validates that all of the commonjs exports -// are correctly re-exported for es modules importers. - -const nodeMajor = Number(process.version.split(".")[0].slice(1)) -if (nodeMajor < 14) { - console.log("Skipping because node does not support module exports.") - process.exit(0) -} - -// ES Modules import via the ./modules folder -import * as esTSLib from "../../modules/index.js" - -// Force a commonjs resolve -import { createRequire } from "module"; -const commonJSTSLib = createRequire(import.meta.url)("../../tslib.js"); - -for (const key in commonJSTSLib) { - if (commonJSTSLib.hasOwnProperty(key)) { - if(!esTSLib[key]) throw new Error(`ESModules is missing ${key} - it needs to be re-exported in ./modules/index.js`) - } -} - -console.log("All exports in commonjs are available for es module consumers.") diff --git a/frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json b/frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json deleted file mode 100644 index 166e5095..00000000 --- a/frontend/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "module", - "scripts": { - "test": "node index.js" - } -} diff --git a/frontend/node_modules/tslib/tslib.d.ts b/frontend/node_modules/tslib/tslib.d.ts deleted file mode 100644 index 0756b28e..00000000 --- a/frontend/node_modules/tslib/tslib.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -export declare function __extends(d: Function, b: Function): void; -export declare function __assign(t: any, ...sources: any[]): any; -export declare function __rest(t: any, propertyNames: (string | symbol)[]): any; -export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any; -export declare function __param(paramIndex: number, decorator: Function): Function; -export declare function __metadata(metadataKey: any, metadataValue: any): Function; -export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any; -export declare function __generator(thisArg: any, body: Function): any; -export declare function __exportStar(m: any, exports: any): void; -export declare function __values(o: any): any; -export declare function __read(o: any, n?: number): any[]; -export declare function __spread(...args: any[][]): any[]; -export declare function __spreadArrays(...args: any[][]): any[]; -export declare function __await(v: any): any; -export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any; -export declare function __asyncDelegator(o: any): any; -export declare function __asyncValues(o: any): any; -export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray; -export declare function __importStar(mod: T): T; -export declare function __importDefault(mod: T): T | { default: T }; -export declare function __classPrivateFieldGet(receiver: T, privateMap: { has(o: T): boolean, get(o: T): V | undefined }): V; -export declare function __classPrivateFieldSet(receiver: T, privateMap: { has(o: T): boolean, set(o: T, value: V): any }, value: V): V; -export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void; \ No newline at end of file diff --git a/frontend/node_modules/tslib/tslib.es6.html b/frontend/node_modules/tslib/tslib.es6.html deleted file mode 100644 index b122e41b..00000000 --- a/frontend/node_modules/tslib/tslib.es6.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/node_modules/tslib/tslib.es6.js b/frontend/node_modules/tslib/tslib.es6.js deleted file mode 100644 index 0e0d8d07..00000000 --- a/frontend/node_modules/tslib/tslib.es6.js +++ /dev/null @@ -1,218 +0,0 @@ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -export function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -export var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - } - return __assign.apply(this, arguments); -} - -export function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; -} - -export function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -} - -export function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -} - -export function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} - -export function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -export function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -export function __createBinding(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -} - -export function __exportStar(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; -} - -export function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -} - -export function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -export function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; -} - -export function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -}; - -export function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} - -export function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -} - -export function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } -} - -export function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -} - -export function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; - -export function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; -} - -export function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; -} - -export function __classPrivateFieldGet(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); -} - -export function __classPrivateFieldSet(receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; -} diff --git a/frontend/node_modules/tslib/tslib.html b/frontend/node_modules/tslib/tslib.html deleted file mode 100644 index 44c9ba51..00000000 --- a/frontend/node_modules/tslib/tslib.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/node_modules/tslib/tslib.js b/frontend/node_modules/tslib/tslib.js deleted file mode 100644 index e5b7c9b8..00000000 --- a/frontend/node_modules/tslib/tslib.js +++ /dev/null @@ -1,284 +0,0 @@ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ - -/* global global, define, System, Reflect, Promise */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __createBinding; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if (typeof module === "object" && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - - __extends = function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __createBinding = function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }; - - __exportStar = function (m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; - }; - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); -}); diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 977c553c..6627abb1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -12,57 +12,12 @@ "file-saver": "^2.0.5", "geobuf": "^3.0.2", "leaflet.vectorgrid": "^1.3.0", - "ng-multiselect-dropdown": "^0.3.4", "pbf": "^3.2.1" }, "devDependencies": { "prettier": "~3.1.0" } }, - "node_modules/@angular/common": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.4.tgz", - "integrity": "sha512-RT6bo3RB768alor27i4KG9rTcsya58f2Pda/MjcNC5iR7WpmA4tE4h9x4JnI/1GCR3U1KAa4qrDrEFUJZoFofw==", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/core": "15.2.4", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/common/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true - }, - "node_modules/@angular/core": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.4.tgz", - "integrity": "sha512-ApWxICIOK47F/yh0Di/SFR3qMXZPpVLFainlIEauwpULKCLrYSJSnlF+zaDB6mMI1754skZZE69lX4uS2Byi+w==", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4 || ~0.12.0 || ~0.13.0" - } - }, - "node_modules/@angular/core/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true - }, "node_modules/array-source": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/array-source/-/array-source-0.0.4.tgz", @@ -164,18 +119,6 @@ "leaflet": "^1.0.2" } }, - "node_modules/ng-multiselect-dropdown": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/ng-multiselect-dropdown/-/ng-multiselect-dropdown-0.3.4.tgz", - "integrity": "sha512-ZUzA4apGY7Y0MW7scF35iPYy4/DpIRhZcQiTICDJFs66+JoJOE+YqA+Tx9C2Ylv0B8tADX7PAsTQL9Jys1vWiQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "peerDependencies": { - "@angular/common": ">=2.0.0", - "@angular/core": ">=2.0.0" - } - }, "node_modules/path-source": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/path-source/-/path-source-0.1.3.tgz", @@ -244,21 +187,6 @@ "protocol-buffers-schema": "^3.3.1" } }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "peer": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -332,11 +260,6 @@ "topoquantize": "bin/topoquantize" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -360,58 +283,9 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "node_modules/zone.js": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", - "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - } - }, - "node_modules/zone.js/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true } }, "dependencies": { - "@angular/common": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.4.tgz", - "integrity": "sha512-RT6bo3RB768alor27i4KG9rTcsya58f2Pda/MjcNC5iR7WpmA4tE4h9x4JnI/1GCR3U1KAa4qrDrEFUJZoFofw==", - "peer": true, - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true - } - } - }, - "@angular/core": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.4.tgz", - "integrity": "sha512-ApWxICIOK47F/yh0Di/SFR3qMXZPpVLFainlIEauwpULKCLrYSJSnlF+zaDB6mMI1754skZZE69lX4uS2Byi+w==", - "peer": true, - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true - } - } - }, "array-source": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/array-source/-/array-source-0.0.4.tgz", @@ -488,14 +362,6 @@ "whatwg-fetch": "^2.0.3" } }, - "ng-multiselect-dropdown": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/ng-multiselect-dropdown/-/ng-multiselect-dropdown-0.3.4.tgz", - "integrity": "sha512-ZUzA4apGY7Y0MW7scF35iPYy4/DpIRhZcQiTICDJFs66+JoJOE+YqA+Tx9C2Ylv0B8tADX7PAsTQL9Jys1vWiQ==", - "requires": { - "tslib": "^1.9.0" - } - }, "path-source": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/path-source/-/path-source-0.1.3.tgz", @@ -548,23 +414,6 @@ "protocol-buffers-schema": "^3.3.1" } }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "peer": true, - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true - } - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -614,11 +463,6 @@ "commander": "2" } }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -641,23 +485,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "zone.js": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", - "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", - "peer": true, - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "peer": true - } - } } } } diff --git a/frontend/package.json b/frontend/package.json index 44b5340a..77de20be 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,7 +14,6 @@ "file-saver": "^2.0.5", "geobuf": "^3.0.2", "leaflet.vectorgrid": "^1.3.0", - "ng-multiselect-dropdown": "^0.3.4", "pbf": "^3.2.1" }, "devDependencies": { From 0fa7a80e25e4934982ab33142212f05b233779db Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 18:07:43 +0200 Subject: [PATCH 22/26] feat: purge ng_multiselect_dropdown --- frontend/_app.module.scss | 29 ----------------------------- frontend/app/gnModule.module.ts | 2 -- 2 files changed, 31 deletions(-) diff --git a/frontend/_app.module.scss b/frontend/_app.module.scss index 81d96ec1..1b81805b 100644 --- a/frontend/_app.module.scss +++ b/frontend/_app.module.scss @@ -74,35 +74,6 @@ mat-spinner { } } -::ng-deep ng-multiselect-dropdown span.selected-item.ng-star-inserted { - max-width: 90% !important; - margin-bottom: 4px; -} - -ng-multiselect-dropdown { - border: none !important; -} - -::ng-deep ng-multiselect-dropdown.ng-invalid .multiselect-dropdown { - border-left: 5px solid #ff0000 !important; -} - -::ng-deep ng-multiselect-dropdown .multiselect-dropdown .dropdown-btn .selected-item { - background: #219653 !important; - border: 1px solid #219653 !important; -} - -::ng-deep ng-multiselect-dropdown .dropdown-btn { - color: gray; - border: 1px solid #ced4da !important; - border-radius: 0.2rem !important; -} - -::ng-deep ng-multiselect-dropdown span.selected-item.ng-star-inserted a { - font-weight: 600; - margin-left: 8px; -} - fieldset { padding: 0.35em 0.625em 0.75em !important; border: 1px solid silver !important; diff --git a/frontend/app/gnModule.module.ts b/frontend/app/gnModule.module.ts index ccbf8d59..9daf5b6f 100644 --- a/frontend/app/gnModule.module.ts +++ b/frontend/app/gnModule.module.ts @@ -5,7 +5,6 @@ import { Routes, RouterModule } from '@angular/router'; import { GN2CommonModule } from '@geonature_common/GN2Common.module'; import { MapListService } from '@geonature_common/map-list/map-list.service'; import { ZhDetailsModule } from './zh-details/zh-details.module'; -import { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown'; //Components import { ZhMapListComponent } from './zh-map-list/zh-map-list.component'; import { ZhFormMapComponent } from './zh-forms/map/map.component'; @@ -57,7 +56,6 @@ const routes: Routes = [ GN2CommonModule, CommonModule, RouterModule.forChild(routes), - NgMultiSelectDropDownModule.forRoot(), NgbModule, ZhDetailsModule, ZhSearchModule, From 73aed6475e12b4690e98382eeaa97dd3f971b877 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 18:08:15 +0200 Subject: [PATCH 23/26] feat: switch select to zh-multiselect in tab0 --- .../zh-multiselect.component.html | 1 + .../tabs/tab0/zh-form-tab0.component.html | 24 +++++++++++-------- .../tabs/tab0/zh-form-tab0.component.ts | 1 - 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html index 65cee724..44af004c 100644 --- a/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html +++ b/frontend/app/commonComponents/zh-multiselect/zh-multiselect.component.html @@ -4,6 +4,7 @@ [ngClass]="{'Multiselect--multiple': multiple}" [items]="values" [bindLabel]="keyLabel" + [bindValue]="keyValue" [placeholder]="placeholder" [multiple]="multiple" [clearable]="true" diff --git a/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html b/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html index 64e44dfa..9f54b853 100755 --- a/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html +++ b/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html @@ -22,11 +22,13 @@
Champs obligatoires
Organisme de l'opérateur - + + Champs obligatoires
-->
Typologie SDAGE - + (); constructor() { super() this.multiple = true; + this.hightlightValue = true; this.groupBy = null; this.placeholder = "Sélectionner"; } From 9d0c4865954982cd9c2d000eccb4c33fcfb0d2fc Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Mon, 22 Apr 2024 18:13:14 +0200 Subject: [PATCH 25/26] feat: update zh-multiselect in tab0 --- frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html b/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html index 9f54b853..961c235b 100755 --- a/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html +++ b/frontend/app/zh-forms/tabs/tab0/zh-form-tab0.component.html @@ -28,7 +28,8 @@
Champs obligatoires
keyValue="id_org" [values]="idOrg" [parentFormControl]="form.controls.id_org" - [multiple]="false" /> + [multiple]="false" + [hightlightValue]="false"/> Champs obligatoires [values]="sdage" [parentFormControl]="form.controls.sdage" [multiple]="false" + [hightlightValue]="false" /> (); public _inputData: inputDataType[] = null; - constructor() {} ngOnInit() { if (!this._inputData || this._inputData.length < 1) { - this.disable() + this.disable(); } } @@ -42,9 +41,9 @@ export class ZhSearchDependantComponent implements OnInit { } } disable() { - this.form.disable() + this.form.disable(); } enable() { - this.form.enable() + this.form.enable(); } } diff --git a/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts b/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts index 754d38b6..24b7905a 100644 --- a/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts +++ b/frontend/app/zh-search/zh-search-items/zh-search-ensemble/zh-search-ensemble.component.ts @@ -11,6 +11,5 @@ export class ZhSearchEnsembleComponent implements OnInit { @Input() form: FormGroup; constructor() {} - ngOnInit() { - } + ngOnInit() {} } diff --git a/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts b/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts index 4fdc90c1..64520392 100644 --- a/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts +++ b/frontend/app/zh-search/zh-search-items/zh-search-sdage/zh-search-sdage.component.ts @@ -12,6 +12,5 @@ export class ZhSearchSDAGEComponent implements OnInit { constructor() {} - ngOnInit() { - } + ngOnInit() {} } diff --git a/frontend/app/zh-search/zh-search.module.ts b/frontend/app/zh-search/zh-search.module.ts index 7a7dfe62..15d315ac 100644 --- a/frontend/app/zh-search/zh-search.module.ts +++ b/frontend/app/zh-search/zh-search.module.ts @@ -37,10 +37,6 @@ const routes: Routes = [{ path: 'search', component: ZhSearchComponent }]; ZhAdvancedSearchModule, ZhHierarchySearchModule, ], - exports: [ - LabelComponent, - TableComponent, - ZHMultiSelectComponent, - ZhSearchComponent], + exports: [LabelComponent, TableComponent, ZHMultiSelectComponent, ZhSearchComponent], }) export class ZhSearchModule {}