ecabs-components 1.0.13 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@ import * as i3$1 from '@angular/material/form-field';
15
15
  import { MatFormFieldModule } from '@angular/material/form-field';
16
16
  import * as i7 from 'ngx-mat-select-search';
17
17
  import { MatSelectSearchComponent, NgxMatSelectSearchModule } from 'ngx-mat-select-search';
18
- import { ReplaySubject, Subscription, combineLatest, map, debounceTime, Subject, takeUntil } from 'rxjs';
18
+ import { BehaviorSubject, Subscription, combineLatest, map, debounceTime, Subject, takeUntil } from 'rxjs';
19
19
  import * as i4$1 from '@angular/material/select';
20
20
  import { MatSelectModule, MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';
21
21
  import * as i2 from '@angular/material/core';
@@ -746,10 +746,12 @@ class EcabsSelectComponent extends ElementBaseComponent {
746
746
  this.othersLabel = 'Others';
747
747
  this.updateFilterItems = new EventEmitter();
748
748
  this.selectionChange = new EventEmitter();
749
- this.filteredItems$ = new ReplaySubject(1);
749
+ this.filteredItems$ = new BehaviorSubject([]);
750
750
  this.itemFilterCtrl = new UntypedFormControl();
751
751
  this.isClearAll = false;
752
752
  this.showFilteredAllOption = true;
753
+ this.selectedItems = [];
754
+ this.notSelectedItems = [];
753
755
  this.subscriptions = new Subscription();
754
756
  // eslint-disable-next-line @typescript-eslint/no-empty-function
755
757
  this.onChange = () => { };
@@ -762,22 +764,20 @@ class EcabsSelectComponent extends ElementBaseComponent {
762
764
  set value(val) {
763
765
  if (this.val !== val) {
764
766
  this.val = val;
767
+ this.setSelectedItems();
765
768
  this.onChange(val);
766
769
  this.onTouch(val);
767
770
  }
768
771
  }
769
772
  ngOnChanges(changes) {
770
- if (changes['items'] && changes['items'].currentValue) {
771
- this.filteredItems$.next(changes['items'].currentValue.slice());
773
+ const { items } = changes;
774
+ if (items && items.currentValue) {
772
775
  this.filterItems();
773
- if (this.multiple &&
774
- this.useSelectAllOption &&
775
- this.allSelected?.selected) {
776
+ if (this.multiple && this.useSelectAllOption && this.allSelected?.selected) {
776
777
  setTimeout(() => {
777
- this.control.patchValue([
778
- ...this.items.map((item) => item.value),
779
- this.selectAllValue,
780
- ], { emitEvent: false });
778
+ this.control.patchValue([...this.filteredItems$.value.map((item) => item.value), this.selectAllValue], {
779
+ emitEvent: false,
780
+ });
781
781
  }, 100);
782
782
  }
783
783
  }
@@ -803,17 +803,19 @@ class EcabsSelectComponent extends ElementBaseComponent {
803
803
  this.filterItems();
804
804
  this.updateFilterItems.emit(value);
805
805
  if (this.isClearAll) {
806
- this.control.patchValue([]);
806
+ this.control.patchValue([], { emitEvent: false });
807
807
  this.isClearAll = false;
808
808
  }
809
809
  }));
810
810
  }
811
811
  toggleAllSelection() {
812
812
  if (this.allSelected.selected) {
813
- this.control.patchValue([
814
- ...this.items.map((item) => item.value),
815
- this.selectAllValue,
816
- ]);
813
+ if (this.useSearchOption) {
814
+ this.control.patchValue([...this.filteredItems$.value.map((item) => item.value), this.selectAllValue]);
815
+ }
816
+ else {
817
+ this.control.patchValue([...this.items.map((item) => item.value), this.selectAllValue]);
818
+ }
817
819
  }
818
820
  else {
819
821
  this.control.patchValue([]);
@@ -835,19 +837,30 @@ class EcabsSelectComponent extends ElementBaseComponent {
835
837
  });
836
838
  this.isClearAll = false;
837
839
  }
840
+ toggleNone() {
841
+ this.selectedItems = [];
842
+ }
838
843
  getAllSelectedChecked() {
839
844
  return this.allSelected !== undefined && this.allSelected.selected;
840
845
  }
841
846
  getLabel(val) {
842
- if (this.useSelectAllOption &&
843
- this.allSelected?.selected &&
844
- this.items &&
845
- this.items.length > 0) {
847
+ if (this.useSelectAllOption && this.allSelected?.selected && this.items && this.items.length > 0) {
846
848
  return this.items[0].label;
847
849
  }
848
- if (val !== undefined && this.items && this.items.length > 0) {
849
- // eslint-disable-next-line @typescript-eslint/no-shadow
850
- const item = this.items.find((item) => item.value === val);
850
+ let item;
851
+ if (val !== undefined) {
852
+ if (this.useSearchOption) {
853
+ if (this.selectedItems && this.selectedItems.length > 0) {
854
+ // eslint-disable-next-line @typescript-eslint/no-shadow
855
+ item = this.selectedItems.find((item) => item.value === val);
856
+ }
857
+ }
858
+ else {
859
+ if (this.items && this.items.length > 0) {
860
+ // eslint-disable-next-line @typescript-eslint/no-shadow
861
+ item = this.items.find((item) => item.value === val);
862
+ }
863
+ }
851
864
  return item ? item.label : '';
852
865
  }
853
866
  return '';
@@ -868,25 +881,89 @@ class EcabsSelectComponent extends ElementBaseComponent {
868
881
  this.selectionChange.emit($event);
869
882
  }
870
883
  filterItems() {
884
+ this.setSelectedItems();
871
885
  if (!this.items) {
872
886
  return;
873
887
  }
874
888
  // get the search keyword
875
889
  let search = this.itemFilterCtrl.value;
876
890
  if (!search || search === '') {
877
- this.filteredItems$.next(this.items.slice());
891
+ if (this.useSearchOption) {
892
+ this.filteredItems$.next([...this.selectedItems]);
893
+ }
894
+ else {
895
+ this.filteredItems$.next(this.items?.slice());
896
+ }
878
897
  this.showFilteredAllOption = true;
879
898
  return;
880
899
  }
881
900
  search = search.toLowerCase();
882
- this.showFilteredAllOption = this.allLabel.toLowerCase().includes(search.toLowerCase());
901
+ this.showFilteredAllOption =
902
+ this.allLabel.toLowerCase().includes(search.toLowerCase()) ||
903
+ (this.value instanceof Array && this.value.includes(this.selectAllValue)) ||
904
+ (!(this.value instanceof Array) && this.value === this.selectAllValue);
883
905
  this.changeDetectorRef.detectChanges();
884
- this.filteredItems$.next(this.items && this.items.length > 0
885
- ? this.items.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()))
886
- : []);
887
- this.filteredItems$.next(this.items && this.items.length > 0
888
- ? this.items.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()))
889
- : []);
906
+ if (this.useSearchOption) {
907
+ const filteredItems = this.notSelectedItems?.length > 0
908
+ ? this.notSelectedItems.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()))
909
+ : [];
910
+ this.filteredItems$.next([...this.selectedItems, ...filteredItems]);
911
+ }
912
+ else {
913
+ this.filteredItems$.next(this.items?.length > 0
914
+ ? this.items.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()))
915
+ : []);
916
+ }
917
+ }
918
+ setSelectedItems() {
919
+ if (this.useSearchOption) {
920
+ const selectedItems = [];
921
+ if (this.value) {
922
+ if (this.value instanceof Array) {
923
+ const skipSteps = this.value.includes(this.selectAllValue);
924
+ if (!skipSteps) {
925
+ this.value.forEach((value) => {
926
+ const index = this.selectedItems.findIndex((selectedItem) => selectedItem.value === value);
927
+ if (index !== -1) {
928
+ selectedItems.push(this.selectedItems[index]);
929
+ }
930
+ else {
931
+ // eslint-disable-next-line @typescript-eslint/no-shadow
932
+ const item = this.items.find((item) => item.value === value);
933
+ if (item) {
934
+ selectedItems.push(item);
935
+ }
936
+ }
937
+ });
938
+ this.selectedItems.forEach((selectedItem) => {
939
+ const index = this.value.find((value) => selectedItem.value === value);
940
+ if (index === -1) {
941
+ selectedItems.splice(index, 1);
942
+ }
943
+ });
944
+ }
945
+ }
946
+ else {
947
+ const index = this.selectedItems.findIndex((selectedItem) => selectedItem.value === this.value);
948
+ if (index !== -1) {
949
+ selectedItems.push(this.selectedItems[index]);
950
+ }
951
+ else {
952
+ // eslint-disable-next-line @typescript-eslint/no-shadow
953
+ const item = this.items.find((item) => item.value === this.value);
954
+ // eslint-disable-next-line max-depth
955
+ if (item) {
956
+ selectedItems.push(item);
957
+ }
958
+ }
959
+ }
960
+ this.selectedItems = [...selectedItems];
961
+ this.notSelectedItems = this.items?.filter((item) => this.selectedItems.findIndex((selectedItem) => selectedItem.value === item.value) === -1);
962
+ }
963
+ else {
964
+ this.notSelectedItems = this.items?.slice();
965
+ }
966
+ }
890
967
  }
891
968
  }
892
969
  EcabsSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
@@ -896,7 +973,7 @@ EcabsSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
896
973
  useExisting: EcabsSelectComponent,
897
974
  multi: true,
898
975
  },
899
- ], viewQueries: [{ propertyName: "allSelected", first: true, predicate: ["allSelected"], descendants: true }, { propertyName: "matSelectSearchComponent", first: true, predicate: MatSelectSearchComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ allLabel }}</span>\r\n <span *ngIf=\"!getAllSelectedChecked()\"\r\n >{{ val && multiple ? getLabel(val[0]) : getLabel(val) }}\r\n <span *ngIf=\"multiple && value?.length > 1\" class=\"additional-selection\">\r\n (+{{ useSelectAllOption && this.allSelected?.selected ? value?.length - 2 : value?.length - 1 }}\r\n {{ (value?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search\r\n [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\">{{ noneLabel }}</mat-option>\r\n <mat-option\r\n #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">{{\r\n allLabel\r\n }}</mat-option>\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\" [value]=\"item.value\" (click)=\"togglePerOne()\">\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</app-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
976
+ ], viewQueries: [{ propertyName: "allSelected", first: true, predicate: ["allSelected"], descendants: true }, { propertyName: "matSelectSearchComponent", first: true, predicate: MatSelectSearchComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ allLabel }}</span>\r\n <span *ngIf=\"!getAllSelectedChecked()\"\r\n >{{ val && multiple ? getLabel(val[0]) : getLabel(val) }}\r\n <span *ngIf=\"multiple && value?.length > 1\" class=\"additional-selection\">\r\n (+{{ useSelectAllOption && this.allSelected?.selected ? value?.length - 2 : value?.length - 1 }}\r\n {{ (value?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search\r\n [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\" (click)=\"toggleNone()\">{{ noneLabel }}</mat-option>\r\n <mat-option\r\n #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">{{\r\n allLabel\r\n }}</mat-option>\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\" [value]=\"item.value\" (click)=\"togglePerOne()\">\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</app-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
900
977
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectComponent, decorators: [{
901
978
  type: Component,
902
979
  args: [{ selector: 'ecabs-select', providers: [
@@ -905,7 +982,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
905
982
  useExisting: EcabsSelectComponent,
906
983
  multi: true,
907
984
  },
908
- ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ allLabel }}</span>\r\n <span *ngIf=\"!getAllSelectedChecked()\"\r\n >{{ val && multiple ? getLabel(val[0]) : getLabel(val) }}\r\n <span *ngIf=\"multiple && value?.length > 1\" class=\"additional-selection\">\r\n (+{{ useSelectAllOption && this.allSelected?.selected ? value?.length - 2 : value?.length - 1 }}\r\n {{ (value?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search\r\n [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\">{{ noneLabel }}</mat-option>\r\n <mat-option\r\n #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">{{\r\n allLabel\r\n }}</mat-option>\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\" [value]=\"item.value\" (click)=\"togglePerOne()\">\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</app-element-wrapper>\r\n" }]
985
+ ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ allLabel }}</span>\r\n <span *ngIf=\"!getAllSelectedChecked()\"\r\n >{{ val && multiple ? getLabel(val[0]) : getLabel(val) }}\r\n <span *ngIf=\"multiple && value?.length > 1\" class=\"additional-selection\">\r\n (+{{ useSelectAllOption && this.allSelected?.selected ? value?.length - 2 : value?.length - 1 }}\r\n {{ (value?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search\r\n [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\" (click)=\"toggleNone()\">{{ noneLabel }}</mat-option>\r\n <mat-option\r\n #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">{{\r\n allLabel\r\n }}</mat-option>\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\" [value]=\"item.value\" (click)=\"togglePerOne()\">\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</app-element-wrapper>\r\n" }]
909
986
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
910
987
  type: Input
911
988
  }], multiple: [{