angular-multiselect3 11.0.3 → 11.0.4

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.
@@ -1,7 +1,6 @@
1
1
  export { AngularMultiSelect } from './lib/multiselect.component';
2
- export { ScrollDirective } from './lib/clickOutside';
3
2
  export { ListFilterPipe } from './lib/list-filter';
4
3
  export { Item } from './lib/menu-item';
5
4
  export { TemplateRenderer, Badge, Search, CIcon } from './lib/menu-item';
6
5
  export { AngularMultiSelectModule } from './lib/multiselect.component';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL2FuZ3VsYXIyLW11bHRpc2VsZWN0LWRyb3Bkb3duLWxpYi9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFuZ3VsYXJNdWx0aVNlbGVjdCB9IGZyb20gJy4vbGliL211bHRpc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9jbGlja091dHNpZGUnO1xuZXhwb3J0IHsgTGlzdEZpbHRlclBpcGUgfSBmcm9tICcuL2xpYi9saXN0LWZpbHRlcic7XG5leHBvcnQgeyBJdGVtIH0gZnJvbSAnLi9saWIvbWVudS1pdGVtJztcbmV4cG9ydCB7IFRlbXBsYXRlUmVuZGVyZXIsIEJhZGdlLCBTZWFyY2gsIENJY29uIH0gZnJvbSAnLi9saWIvbWVudS1pdGVtJztcbmV4cG9ydCB7IEFuZ3VsYXJNdWx0aVNlbGVjdE1vZHVsZSB9IGZyb20gJy4vbGliL211bHRpc2VsZWN0LmNvbXBvbmVudCc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL2FuZ3VsYXIyLW11bHRpc2VsZWN0LWRyb3Bkb3duLWxpYi9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQW5ndWxhck11bHRpU2VsZWN0IH0gZnJvbSAnLi9saWIvbXVsdGlzZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCB7IExpc3RGaWx0ZXJQaXBlIH0gZnJvbSAnLi9saWIvbGlzdC1maWx0ZXInO1xuZXhwb3J0IHsgSXRlbSB9IGZyb20gJy4vbGliL21lbnUtaXRlbSc7XG5leHBvcnQgeyBUZW1wbGF0ZVJlbmRlcmVyLCBCYWRnZSwgU2VhcmNoLCBDSWNvbiB9IGZyb20gJy4vbGliL21lbnUtaXRlbSc7XG5leHBvcnQgeyBBbmd1bGFyTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tICcuL2xpYi9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuIl19
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Directive, Output, HostListener, Pipe, TemplateRef, Component, ContentChild, Input, ViewEncapsulation, PLATFORM_ID, ElementRef, Inject, Optional, ViewChild, NgModule, Injectable, forwardRef } from '@angular/core';
2
+ import { Pipe, TemplateRef, Component, ContentChild, Input, ViewEncapsulation, EventEmitter, PLATFORM_ID, ElementRef, Inject, Optional, Output, ViewChild, NgModule, Injectable, forwardRef, HostListener } from '@angular/core';
3
3
  import * as i4 from '@angular/forms';
4
4
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';
5
5
  import * as i3 from '@angular/common';
@@ -17,26 +17,6 @@ class MyException {
17
17
  }
18
18
  }
19
19
 
20
- class ScrollDirective {
21
- scroll = new EventEmitter();
22
- onClick(event, targetElement) {
23
- this.scroll.emit(event);
24
- }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ScrollDirective, selector: "[scroll]", outputs: { scroll: "scroll" }, host: { listeners: { "scroll": "onClick($event)" } }, ngImport: i0 });
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollDirective, decorators: [{
29
- type: Directive,
30
- args: [{
31
- selector: '[scroll]',
32
- }]
33
- }], propDecorators: { scroll: [{
34
- type: Output
35
- }], onClick: [{
36
- type: HostListener,
37
- args: ['scroll', ['$event']]
38
- }] } });
39
-
40
20
  class ListFilterPipe {
41
21
  filteredList = [];
42
22
  transform(items, filter, searchBy) {
@@ -2559,11 +2539,11 @@ class AngularMultiSelect {
2559
2539
  this.onFilterChange(this.filteredList);
2560
2540
  }
2561
2541
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelect, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: ListFilterPipe }, { token: ClickOutsideService }], target: i0.ɵɵFactoryTarget.Component });
2562
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AngularMultiSelect, selector: "angular2-multiselect", inputs: { data: "data", settings: "settings", loading: "loading" }, outputs: { onSelect: "onSelect", onDeSelect: "onDeSelect", onSelectAll: "onSelectAll", onDeSelectAll: "onDeSelectAll", onOpen: "onOpen", onClose: "onClose", onScrollToEnd: "onScrollToEnd", onFilterSelectAll: "onFilterSelectAll", onFilterDeSelectAll: "onFilterDeSelectAll", onAddFilterNewItem: "onAddFilterNewItem", onGroupSelect: "onGroupSelect", onGroupDeSelect: "onGroupDeSelect" }, host: { listeners: { "document:keyup.escape": "onEscapeDown($event)", "window:scroll": "onScroll($event)" }, properties: { "class": "defaultSettings.classes" } }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], queries: [{ propertyName: "itemTempl", first: true, predicate: Item, descendants: true }, { propertyName: "badgeTempl", first: true, predicate: Badge, descendants: true }, { propertyName: "searchTempl", first: true, predicate: Search, descendants: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "selectedListElem", first: true, predicate: ["selectedList"], descendants: true }, { propertyName: "dropdownListElem", first: true, predicate: ["dropdownList"], descendants: true }, { propertyName: "cuppaDropdown", first: true, predicate: ["cuppaDropdown"], descendants: true }, { propertyName: "virtualScroller", first: true, predicate: VirtualScrollerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"cuppa-dropdown\" #cuppaDropdown>\n <div class=\"selected-list\" #selectedList>\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\" [attr.tabindex]=\"0\">\n\n <span *ngIf=\"selectedItems?.length == 0\">{{ settings.text }}</span>\n <span *ngIf=\"settings.singleSelection && !badgeTempl\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn.bind(this);let k = index\">\n {{ item[settings.labelKey] }}\n </span>\n </span>\n <span class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && settings.singleSelection && badgeTempl \">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn.bind(this);let k = index\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{ item[settings.labelKey] }}</span>\n\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"c-remove\" (click)=\"onItemClick(item,k,$event);$event.stopPropagation()\">\n <c-icon name=\"remove\"/>\n </span>\n </div>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn.bind(this);let k = index\"\n [hidden]=\"k > settings.badgeShowLimit-1\">\n\n @if (badgeTempl) {\n <span class=\"c-label\"><c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer></span>\n } @else {\n <span class=\"c-label\">{{ item[settings.labelKey] }}</span>\n\n }\n\n <span class=\"c-remove\" (click)=\"onItemClick(item,k,$event);$event.stopPropagation()\">\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n </div>\n </div>\n <span class=\"countplaceholder\"\n *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{ selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"c-remove clear-all\" *ngIf=\"settings.clearAll && selectedItems?.length > 0 && !settings.disabled\"\n (click)=\"clearSelection($event);$event.stopPropagation()\">\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n @if (isActive) {\n <span class=\"c-angle-up\"><c-icon [name]=\"'angle-up'\"></c-icon></span>\n } @else {\n <span class=\"c-angle-down\"><c-icon [name]=\"'angle-down'\"></c-icon></span>\n }\n </div>\n </div>\n <div #dropdownList class=\"dropdown-list animated fadeIn\"\n [ngClass]=\"{'tagToBody': settings.tagToBody}\"\n [style.width.px]=\"dropDownWidth\"\n [style.top]=\"dropDownTop\"\n [style.bottom]=\"dropDownBottom\"\n [style.left.px]=\"dropDownLeft\"\n [hidden]=\"!isActive\">\n <div [ngClass]=\"{'arrow-up': settings.position == 'bottom', 'arrow-down': settings.position == 'top'}\"\n class=\"arrow-2\"></div>\n <div [ngClass]=\"{'arrow-up': settings.position == 'bottom', 'arrow-down': settings.position == 'top'}\"></div>\n <div class=\"list-area\" [ngClass]=\"{'single-select-mode': settings.singleSelection }\">\n <div class=\"pure-checkbox select-all\"\n *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection && data?.length > 0 && !isDisabledItemPresent\"\n >\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n [id]=\"id\" (change)=\"toggleSelectAll($event)\"/>\n <label [for]=\"id\">\n <span [hidden]=\"isSelectAll\">{{ settings.selectAllText }}</span>\n <span [hidden]=\"!isSelectAll\">{{ settings.unSelectAllText }}</span>\n </label>\n </div>\n <img class=\"loading-icon\" *ngIf=\"loading\" src=\"assets/img/loading.gif\"/>\n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter\">\n <span class=\"c-search\" id=\"searchIcon\">\n <c-icon [name]=\"'search'\"></c-icon>\n </span>\n <span *ngIf=\"!settings.lazyLoading\" [hidden]=\"filter == undefined || filter?.length == 0\" class=\"c-clear\"\n (click)=\"clearSearch()\">\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n <span *ngIf=\"settings.lazyLoading\" [hidden]=\"filter == undefined || filter?.length == 0\" class=\"c-clear\"\n (click)=\"resetInfiniteSearch()\">\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n\n <input class=\"c-input\" *ngIf=\"settings.groupBy && !settings.lazyLoading && !searchTempl\" #searchInput\n type=\"text\" [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"filterGroupedList()\" aria-labelledby=\"searchIcon\">\n <input class=\"c-input\" *ngIf=\"!settings.groupBy && !settings.lazyLoading && !searchTempl\" #searchInput\n type=\"text\" [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"filteritems($event)\" aria-labelledby=\"searchIcon\">\n <input class=\"c-input\" *ngIf=\"settings.lazyLoading && !searchTempl\" #searchInput type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"onKeyUp($event)\" aria-labelledby=\"searchIcon\">\n <!-- <input class=\"c-input\" *ngIf=\"!settings.lazyLoading && !searchTempl && settings.groupBy\" #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"filterGroupList($event)\">-->\n <c-templateRenderer *ngIf=\"searchTempl\" [data]=\"searchTempl\" [item]=\"item\"></c-templateRenderer>\n </div>\n <div class=\"filter-select-all\"\n *ngIf=\"!settings.lazyLoading && settings.enableFilterSelectAll && !isDisabledItemPresent\">\n <div class=\"pure-checkbox select-all\"\n *ngIf=\"!settings.groupBy && filter?.length > 0 && filterLength > 0 && !settings.singleSelection\"\n (click)=\"toggleFilterSelectAll()\">\n <input type=\"checkbox\" [checked]=\"isFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\" aria-labelledby=\"optionName\"\n aria-label=\"option\"/>\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{ settings.filterSelectAllText }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{ settings.filterUnSelectAllText }}</span>\n </label>\n </div>\n <div class=\"pure-checkbox select-all\"\n *ngIf=\"settings.groupBy && filter?.length > 0 && groupedData?.length > 0 && !settings.singleSelection\"\n (click)=\"toggleFilterSelectAll()\">\n <input type=\"checkbox\" [checked]=\"isFilterSelectAll && filter?.length > 0\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"/>\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{ settings.filterSelectAllText }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{ settings.filterUnSelectAllText }}</span>\n </label>\n </div>\n </div>\n <div class=\"filter-select-all\"\n *ngIf=\"settings.lazyLoading && settings.enableFilterSelectAll && !isDisabledItemPresent && !settings.singleSelection\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"filter?.length > 0 && infiniteFilterLength > 0\"\n (click)=\"toggleInfiniteFilterSelectAll()\">\n <input type=\"checkbox\" [checked]=\"isInfiniteFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"/>\n <label>\n <span [hidden]=\"isInfiniteFilterSelectAll\">{{ settings.filterSelectAllText }}</span>\n <span [hidden]=\"!isInfiniteFilterSelectAll\">{{ settings.filterUnSelectAllText }}</span>\n </label>\n </div>\n </div>\n <div class=\"filter-select-all\" *ngIf=\"filter?.length\">\n <div class=\"btn-container\" *ngIf=\"settings.addNewItemOnFilter\">\n <button class=\"c-btn btn-iceblue\" (click)=\"addFilterNewItem()\">{{ settings.addNewButtonText }}</button>\n </div>\n </div>\n\n <div *ngIf=\"!settings.groupBy && !settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <li *ngFor=\"let item of data; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\" [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n aria-labelledby=\"option\"/>\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n <!-- lazy loading -->\n <div *ngIf=\"!settings.groupBy && settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul virtualScroller #scroll [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\" class=\"lazyContainer\">\n <li *ngFor=\"let item of scroll.viewPortItems; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n <!-- custom template -->\n <div *ngIf=\"!settings.groupBy && !settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <li *ngFor=\"let item of data; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\" [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </ul>\n </div>\n <!-- lazy loading and custom template -->\n <div *ngIf=\"!settings.groupBy && settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul virtualScroller #scroll2 [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" class=\"lazyContainer\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\">\n <li *ngFor=\"let item of scroll2.viewPortItems; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </ul>\n </div>\n <!-- lazy loading, group By and custom template -->\n <div *ngIf=\"settings.groupBy && settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul virtualScroller #scroll3 [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\" class=\"lazyContainer\">\n <span *ngFor=\"let item of scroll3.viewPortItems; let i = index;\">\n <li (click)=\"onItemClick(item,i,$event)\" *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !settings.singleSelection\" type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n <li *ngIf=\"item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n </ul>\n </div>\n <!-- group By and custom template -->\n <div *ngIf=\"settings.groupBy && !settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData; let i = index;\">\n <li (click)=\"selectGroup(item)\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !settings.singleSelection\" type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list ; let j = index;\">\n <li (click)=\"onItemClick(val,j,$event); $event.stopPropagation()\"\n [ngClass]=\"{'grp-title': val.grpTitle,'grp-item': !val.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(val)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(val)) || val.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"val\"></c-templateRenderer>\n </li>\n </span>\n </ul>\n\n </li>\n </span>\n </ul>\n </div>\n <!-- lazy loading, group By -->\n <div *ngIf=\"settings.groupBy && settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <virtual-scroller [items]=\"groupedData\" (vsUpdate)=\"viewPortItems = $event\" (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{'height': settings.maxHeight+'px'}\">\n <ul virtualScroller #scroll4 [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\" class=\"lazyContainer\">\n <span *ngFor=\"let item of scroll4.viewPortItems; let i = index;\">\n <li *ngIf=\"item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection, 'selected-item': isSelected(item) == true }\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !item.grpTitle && !settings.singleSelection\"\n type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n <li (click)=\"onItemClick(item,i,$event)\" *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection, 'selected-item': isSelected(item) == true }\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !item.grpTitle\" type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </virtual-scroller>\n </div>\n <!-- group By -->\n <div *ngIf=\"settings.groupBy && !settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData ; let i = index;\">\n <li (click)=\"selectGroup(item)\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !settings.singleSelection\" type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list ; let j = index;\">\n <li (click)=\"onItemClick(val,j,$event); $event.stopPropagation()\"\n [ngClass]=\"{'selected-item': isSelected(val) == true,'grp-title': val.grpTitle,'grp-item': !val.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(val)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(val)) || val.disabled\"\n />\n <label>{{ val[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{ settings.noDataLabel }}</h5>\n </div>\n </div>\n</div>\n", styles: ["virtual-scroll{display:block;width:100%}.cuppa-dropdown{position:relative}.c-btn{display:inline-block;border-width:1px;line-height:1.25;border-radius:3px;font-size:.85rem;padding:5px 10px;cursor:pointer;align-items:center;min-height:38px}.c-btn.disabled{background:#ccc}.selected-list .c-list{float:left;padding:0;margin:0;width:calc(100% - 20px)}.selected-list .c-list .c-token{list-style:none;padding:4px 22px 4px 8px;border-radius:2px;margin-right:4px;margin-top:2px;float:left;position:relative}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .c-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .c-angle-down,.selected-list .c-angle-up{width:12px;height:12px;position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.selected-list .countplaceholder{position:absolute;right:45px;top:50%;transform:translateY(-50%)}.selected-list .c-btn{width:100%;padding:5px 10px;cursor:pointer;display:flex;position:relative}.selected-list .c-btn .c-icon{position:absolute;right:5px;top:50%;transform:translateY(-50%)}.dropdown-list.tagToBody{position:fixed}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:99999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up,.arrow-down{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-down{bottom:-14px;top:unset;transform:rotate(180deg)}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.arrow-down.arrow-2{top:unset;bottom:-16px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative;padding-left:35px;height:35px}.list-filter input{border:0px;width:100%;height:100%;padding:0}.list-filter input:focus{outline:none}.list-filter .c-search{position:absolute;top:4px;left:10px;width:15px;height:15px}.list-filter .c-search svg{fill:#888}.list-filter .c-clear{position:absolute;top:4px;right:10px;width:15px;height:15px}.list-filter .c-clear svg{fill:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{background-color:none}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]:disabled+label{color:#ccc}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;text-align:center;transition:all .4s ease;border-radius:3px}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:3px;width:9px;height:4px;margin-top:-5px;border-style:solid;border-width:0 0 2px 2px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center;margin:0;padding:15px 0;font-size:initial}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.grp-item{padding-left:30px!important}.grp-title{padding-bottom:0!important}.grp-title label{margin-bottom:0!important;font-weight:800;text-transform:capitalize}.grp-title:hover{background:none!important}.loading-icon{width:20px;position:absolute;right:10px;top:23px;z-index:1}.nodata-label{width:100%;text-align:center;padding:10px 0 0}.btn-container{text-align:center;padding:5px}.clear-all{width:8px;position:absolute;top:50%;right:30px;transform:translateY(-50%)}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i3.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i4.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i0.forwardRef(() => VirtualScrollerComponent), selector: "virtual-scroller,[virtualScroller]", inputs: ["executeRefreshOutsideAngularZone", "enableUnequalChildrenSizes", "useMarginInsteadOfTranslate", "modifyOverflowStyleOfParentScroll", "stripedTable", "scrollbarWidth", "scrollbarHeight", "childWidth", "childHeight", "ssrChildWidth", "ssrChildHeight", "ssrViewportWidth", "ssrViewportHeight", "bufferAmount", "scrollAnimationTime", "resizeBypassRefreshThreshold", "scrollThrottlingTime", "scrollDebounceTime", "checkResizeInterval", "items", "compareItems", "horizontal", "parentScroll"], outputs: ["vsUpdate", "vsChange", "vsStart", "vsEnd"], exportAs: ["virtualScroller"] }, { kind: "component", type: i0.forwardRef(() => TemplateRenderer), selector: "c-templateRenderer", inputs: ["data", "item"] }, { kind: "component", type: i0.forwardRef(() => CIcon), selector: "c-icon", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None });
2542
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AngularMultiSelect, selector: "angular2-multiselect", inputs: { data: "data", settings: "settings", loading: "loading" }, outputs: { onSelect: "onSelect", onDeSelect: "onDeSelect", onSelectAll: "onSelectAll", onDeSelectAll: "onDeSelectAll", onOpen: "onOpen", onClose: "onClose", onScrollToEnd: "onScrollToEnd", onFilterSelectAll: "onFilterSelectAll", onFilterDeSelectAll: "onFilterDeSelectAll", onAddFilterNewItem: "onAddFilterNewItem", onGroupSelect: "onGroupSelect", onGroupDeSelect: "onGroupDeSelect" }, host: { listeners: { "document:keyup.escape": "onEscapeDown($event)", "window:scroll": "onScroll($event)" }, properties: { "class": "defaultSettings.classes" } }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], queries: [{ propertyName: "itemTempl", first: true, predicate: Item, descendants: true }, { propertyName: "badgeTempl", first: true, predicate: Badge, descendants: true }, { propertyName: "searchTempl", first: true, predicate: Search, descendants: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "selectedListElem", first: true, predicate: ["selectedList"], descendants: true }, { propertyName: "dropdownListElem", first: true, predicate: ["dropdownList"], descendants: true }, { propertyName: "cuppaDropdown", first: true, predicate: ["cuppaDropdown"], descendants: true }, { propertyName: "virtualScroller", first: true, predicate: VirtualScrollerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"cuppa-dropdown\" #cuppaDropdown>\n <div class=\"selected-list\" #selectedList>\n <div\n class=\"c-btn\"\n (click)=\"toggleDropdown($event)\"\n [ngClass]=\"{ disabled: settings.disabled }\"\n [attr.tabindex]=\"0\"\n >\n <span *ngIf=\"selectedItems?.length == 0\">{{ settings.text }}</span>\n <span *ngIf=\"settings.singleSelection && !badgeTempl\">\n <span\n *ngFor=\"\n let item of selectedItems;\n trackBy: trackByFn.bind(this);\n let k = index\n \"\n >\n {{ item[settings.labelKey] }}\n </span>\n </span>\n <span\n class=\"c-list\"\n *ngIf=\"\n selectedItems?.length > 0 && settings.singleSelection && badgeTempl\n \"\n >\n <div\n class=\"c-token\"\n *ngFor=\"\n let item of selectedItems;\n trackBy: trackByFn.bind(this);\n let k = index\n \"\n >\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{\n item[settings.labelKey]\n }}</span>\n\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer\n [data]=\"badgeTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </span>\n <span\n class=\"c-remove\"\n (click)=\"onItemClick(item, k, $event); $event.stopPropagation()\"\n >\n <c-icon name=\"remove\" />\n </span>\n </div>\n </span>\n <div\n class=\"c-list\"\n *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\"\n >\n <div\n class=\"c-token\"\n *ngFor=\"\n let item of selectedItems;\n trackBy: trackByFn.bind(this);\n let k = index\n \"\n [hidden]=\"k > settings.badgeShowLimit - 1\"\n >\n @if (badgeTempl) {\n <span class=\"c-label\"\n ><c-templateRenderer\n [data]=\"badgeTempl\"\n [item]=\"item\"\n ></c-templateRenderer\n ></span>\n } @else {\n <span class=\"c-label\">{{ item[settings.labelKey] }}</span>\n }\n\n <span\n class=\"c-remove\"\n (click)=\"onItemClick(item, k, $event); $event.stopPropagation()\"\n >\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n </div>\n </div>\n <span\n class=\"countplaceholder\"\n *ngIf=\"selectedItems?.length > settings.badgeShowLimit\"\n >+{{ selectedItems?.length - settings.badgeShowLimit }}</span\n >\n <span\n class=\"c-remove clear-all\"\n *ngIf=\"\n settings.clearAll && selectedItems?.length > 0 && !settings.disabled\n \"\n (click)=\"clearSelection($event); $event.stopPropagation()\"\n >\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n @if (isActive) {\n <span class=\"c-angle-up\"><c-icon [name]=\"'angle-up'\"></c-icon></span>\n } @else {\n <span class=\"c-angle-down\"\n ><c-icon [name]=\"'angle-down'\"></c-icon\n ></span>\n }\n </div>\n </div>\n <div\n #dropdownList\n class=\"dropdown-list animated fadeIn\"\n [ngClass]=\"{ tagToBody: settings.tagToBody }\"\n [style.width.px]=\"dropDownWidth\"\n [style.top]=\"dropDownTop\"\n [style.bottom]=\"dropDownBottom\"\n [style.left.px]=\"dropDownLeft\"\n [hidden]=\"!isActive\"\n >\n <div\n [ngClass]=\"{\n 'arrow-up': settings.position == 'bottom',\n 'arrow-down': settings.position == 'top',\n }\"\n class=\"arrow-2\"\n ></div>\n <div\n [ngClass]=\"{\n 'arrow-up': settings.position == 'bottom',\n 'arrow-down': settings.position == 'top',\n }\"\n ></div>\n <div\n class=\"list-area\"\n [ngClass]=\"{ 'single-select-mode': settings.singleSelection }\"\n >\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"\n settings.enableCheckAll &&\n !settings.singleSelection &&\n !settings.limitSelection &&\n data?.length > 0 &&\n !isDisabledItemPresent\n \"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n [id]=\"id\"\n (change)=\"toggleSelectAll($event)\"\n />\n <label [for]=\"id\">\n <span [hidden]=\"isSelectAll\">{{ settings.selectAllText }}</span>\n <span [hidden]=\"!isSelectAll\">{{ settings.unSelectAllText }}</span>\n </label>\n </div>\n <img class=\"loading-icon\" *ngIf=\"loading\" src=\"assets/img/loading.gif\" />\n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter\">\n <span class=\"c-search\" id=\"searchIcon\">\n <c-icon [name]=\"'search'\"></c-icon>\n </span>\n @if (settings.lazyLoading) {\n <span\n [hidden]=\"filter == undefined || filter?.length == 0\"\n class=\"c-clear\"\n (click)=\"resetInfiniteSearch()\"\n >\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n } @else {\n <span\n [hidden]=\"filter == undefined || filter?.length == 0\"\n class=\"c-clear\"\n (click)=\"clearSearch()\"\n >\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n }\n\n @if (searchTempl) {\n <c-templateRenderer [data]=\"searchTempl\" [item]=\"item\" />\n } @else if (settings.groupBy && !settings.lazyLoading) {\n <input\n class=\"c-input\"\n #searchInput\n type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\"\n (keyup)=\"filterGroupedList()\"\n aria-labelledby=\"searchIcon\"\n />\n } @else if (!settings.groupBy && !settings.lazyLoading) {\n <input\n class=\"c-input\"\n #searchInput\n type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\"\n (keyup)=\"filteritems($event)\"\n aria-labelledby=\"searchIcon\"\n />\n } @else if (settings.lazyLoading) {\n <input\n class=\"c-input\"\n #searchInput\n type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\"\n (keyup)=\"onKeyUp($event)\"\n aria-labelledby=\"searchIcon\"\n />\n }\n </div>\n <div\n class=\"filter-select-all\"\n *ngIf=\"\n !settings.lazyLoading &&\n settings.enableFilterSelectAll &&\n !isDisabledItemPresent\n \"\n >\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"\n !settings.groupBy &&\n filter?.length > 0 &&\n filterLength > 0 &&\n !settings.singleSelection\n \"\n (click)=\"toggleFilterSelectAll()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"optionName\"\n aria-label=\"option\"\n />\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{\n settings.filterSelectAllText\n }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{\n settings.filterUnSelectAllText\n }}</span>\n </label>\n </div>\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"\n settings.groupBy &&\n filter?.length > 0 &&\n groupedData?.length > 0 &&\n !settings.singleSelection\n \"\n (click)=\"toggleFilterSelectAll()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isFilterSelectAll && filter?.length > 0\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"\n />\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{\n settings.filterSelectAllText\n }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{\n settings.filterUnSelectAllText\n }}</span>\n </label>\n </div>\n </div>\n <div\n class=\"filter-select-all\"\n *ngIf=\"\n settings.lazyLoading &&\n settings.enableFilterSelectAll &&\n !isDisabledItemPresent &&\n !settings.singleSelection\n \"\n >\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"filter?.length > 0 && infiniteFilterLength > 0\"\n (click)=\"toggleInfiniteFilterSelectAll()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isInfiniteFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"\n />\n <label>\n <span [hidden]=\"isInfiniteFilterSelectAll\">{{\n settings.filterSelectAllText\n }}</span>\n <span [hidden]=\"!isInfiniteFilterSelectAll\">{{\n settings.filterUnSelectAllText\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"filter-select-all\" *ngIf=\"filter?.length\">\n <div class=\"btn-container\" *ngIf=\"settings.addNewItemOnFilter\">\n <button class=\"c-btn btn-iceblue\" (click)=\"addFilterNewItem()\">\n {{ settings.addNewButtonText }}\n </button>\n </div>\n </div>\n\n @if (\n !settings.groupBy && !settings.lazyLoading && itemTempl == undefined\n ) {\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <li\n *ngFor=\"let item of data; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n aria-labelledby=\"option\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n } @else if (\n !settings.groupBy && settings.lazyLoading && itemTempl == undefined\n ) {\n <!-- lazy loading -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul\n virtualScroller\n #scroll\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n class=\"lazyContainer\"\n >\n <li\n *ngFor=\"let item of scroll.viewPortItems; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n } @else if (\n !settings.groupBy && !settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <li\n *ngFor=\"let item of data; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n </ul>\n </div>\n } @else if (\n !settings.groupBy && settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- lazy loading and custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul\n virtualScroller\n #scroll2\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n class=\"lazyContainer\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n >\n <li\n *ngFor=\"let item of scroll2.viewPortItems; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n </ul>\n </div>\n } @else if (\n settings.groupBy && settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- lazy loading, group By and custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul\n virtualScroller\n #scroll3\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n class=\"lazyContainer\"\n >\n <span *ngFor=\"let item of scroll3.viewPortItems; let i = index\">\n <li\n (click)=\"onItemClick(item, i, $event)\"\n *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !settings.singleSelection\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n <li\n *ngIf=\"item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n </span>\n </ul>\n </div>\n } @else if (\n settings.groupBy && !settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- group By and custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData; let i = index\">\n <li\n (click)=\"selectGroup(item)\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !settings.singleSelection\"\n type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list; let j = index\">\n <li\n (click)=\"\n onItemClick(val, j, $event); $event.stopPropagation()\n \"\n [ngClass]=\"{\n 'grp-title': val.grpTitle,\n 'grp-item': !val.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(val)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(val)) ||\n val.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"val\"\n ></c-templateRenderer>\n </li>\n </span>\n </ul>\n </li>\n </span>\n </ul>\n </div>\n } @else if (\n settings.groupBy && settings.lazyLoading && itemTempl == undefined\n ) {\n <!-- lazy loading, group By -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <virtual-scroller\n [items]=\"groupedData\"\n (vsUpdate)=\"viewPortItems = $event\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n >\n <ul\n virtualScroller\n #scroll4\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n class=\"lazyContainer\"\n >\n <span *ngFor=\"let item of scroll4.viewPortItems; let i = index\">\n <li\n *ngIf=\"item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n 'selected-item': isSelected(item) == true,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"\n settings.showCheckbox &&\n !item.grpTitle &&\n !settings.singleSelection\n \"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n <li\n (click)=\"onItemClick(item, i, $event)\"\n *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n 'selected-item': isSelected(item) == true,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !item.grpTitle\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </virtual-scroller>\n </div>\n } @else if (\n settings.groupBy && !settings.lazyLoading && itemTempl == undefined\n ) {\n <!-- group By -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData; let i = index\">\n <li\n (click)=\"selectGroup(item)\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !settings.singleSelection\"\n type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list; let j = index\">\n <li\n (click)=\"\n onItemClick(val, j, $event); $event.stopPropagation()\n \"\n [ngClass]=\"{\n 'selected-item': isSelected(val) == true,\n 'grp-title': val.grpTitle,\n 'grp-item': !val.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(val)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(val)) ||\n val.disabled\n \"\n />\n <label>{{ val[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </li>\n </span>\n </ul>\n </div>\n }\n\n @if (data?.length == 0) {\n <h5 class=\"list-message\">\n {{ settings.noDataLabel }}\n </h5>\n }\n </div>\n </div>\n</div>\n", styles: ["virtual-scroll{display:block;width:100%}.cuppa-dropdown{position:relative}.c-btn{display:inline-block;border-width:1px;line-height:1.25;border-radius:3px;font-size:.85rem;padding:5px 10px;cursor:pointer;align-items:center;min-height:38px}.c-btn.disabled{background:#ccc}.selected-list .c-list{float:left;padding:0;margin:0;width:calc(100% - 20px)}.selected-list .c-list .c-token{list-style:none;padding:4px 22px 4px 8px;border-radius:2px;margin-right:4px;margin-top:2px;float:left;position:relative}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .c-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .c-angle-down,.selected-list .c-angle-up{width:12px;height:12px;position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.selected-list .countplaceholder{position:absolute;right:45px;top:50%;transform:translateY(-50%)}.selected-list .c-btn{width:100%;padding:5px 10px;cursor:pointer;display:flex;position:relative}.selected-list .c-btn .c-icon{position:absolute;right:5px;top:50%;transform:translateY(-50%)}.dropdown-list.tagToBody{position:fixed}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:99999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up,.arrow-down{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-down{bottom:-14px;top:unset;transform:rotate(180deg)}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.arrow-down.arrow-2{top:unset;bottom:-16px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative;padding-left:35px;height:35px}.list-filter input{border:0px;width:100%;height:100%;padding:0}.list-filter input:focus{outline:none}.list-filter .c-search{position:absolute;top:4px;left:10px;width:15px;height:15px}.list-filter .c-search svg{fill:#888}.list-filter .c-clear{position:absolute;top:4px;right:10px;width:15px;height:15px}.list-filter .c-clear svg{fill:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{background-color:none}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]:disabled+label{color:#ccc}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;text-align:center;transition:all .4s ease;border-radius:3px}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:3px;width:9px;height:4px;margin-top:-5px;border-style:solid;border-width:0 0 2px 2px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center;margin:0;padding:15px 0;font-size:initial}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.grp-item{padding-left:30px!important}.grp-title{padding-bottom:0!important}.grp-title label{margin-bottom:0!important;font-weight:800;text-transform:capitalize}.grp-title:hover{background:none!important}.loading-icon{width:20px;position:absolute;right:10px;top:23px;z-index:1}.nodata-label{width:100%;text-align:center;padding:10px 0 0}.btn-container{text-align:center;padding:5px}.clear-all{width:8px;position:absolute;top:50%;right:30px;transform:translateY(-50%)}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i3.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i4.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i0.forwardRef(() => VirtualScrollerComponent), selector: "virtual-scroller,[virtualScroller]", inputs: ["executeRefreshOutsideAngularZone", "enableUnequalChildrenSizes", "useMarginInsteadOfTranslate", "modifyOverflowStyleOfParentScroll", "stripedTable", "scrollbarWidth", "scrollbarHeight", "childWidth", "childHeight", "ssrChildWidth", "ssrChildHeight", "ssrViewportWidth", "ssrViewportHeight", "bufferAmount", "scrollAnimationTime", "resizeBypassRefreshThreshold", "scrollThrottlingTime", "scrollDebounceTime", "checkResizeInterval", "items", "compareItems", "horizontal", "parentScroll"], outputs: ["vsUpdate", "vsChange", "vsStart", "vsEnd"], exportAs: ["virtualScroller"] }, { kind: "component", type: i0.forwardRef(() => TemplateRenderer), selector: "c-templateRenderer", inputs: ["data", "item"] }, { kind: "component", type: i0.forwardRef(() => CIcon), selector: "c-icon", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None });
2563
2543
  }
2564
2544
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelect, decorators: [{
2565
2545
  type: Component,
2566
- args: [{ selector: 'angular2-multiselect', host: { '[class]': 'defaultSettings.classes' }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], encapsulation: ViewEncapsulation.None, template: "<div class=\"cuppa-dropdown\" #cuppaDropdown>\n <div class=\"selected-list\" #selectedList>\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\" [attr.tabindex]=\"0\">\n\n <span *ngIf=\"selectedItems?.length == 0\">{{ settings.text }}</span>\n <span *ngIf=\"settings.singleSelection && !badgeTempl\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn.bind(this);let k = index\">\n {{ item[settings.labelKey] }}\n </span>\n </span>\n <span class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && settings.singleSelection && badgeTempl \">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn.bind(this);let k = index\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{ item[settings.labelKey] }}</span>\n\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"c-remove\" (click)=\"onItemClick(item,k,$event);$event.stopPropagation()\">\n <c-icon name=\"remove\"/>\n </span>\n </div>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn.bind(this);let k = index\"\n [hidden]=\"k > settings.badgeShowLimit-1\">\n\n @if (badgeTempl) {\n <span class=\"c-label\"><c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer></span>\n } @else {\n <span class=\"c-label\">{{ item[settings.labelKey] }}</span>\n\n }\n\n <span class=\"c-remove\" (click)=\"onItemClick(item,k,$event);$event.stopPropagation()\">\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n </div>\n </div>\n <span class=\"countplaceholder\"\n *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{ selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"c-remove clear-all\" *ngIf=\"settings.clearAll && selectedItems?.length > 0 && !settings.disabled\"\n (click)=\"clearSelection($event);$event.stopPropagation()\">\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n @if (isActive) {\n <span class=\"c-angle-up\"><c-icon [name]=\"'angle-up'\"></c-icon></span>\n } @else {\n <span class=\"c-angle-down\"><c-icon [name]=\"'angle-down'\"></c-icon></span>\n }\n </div>\n </div>\n <div #dropdownList class=\"dropdown-list animated fadeIn\"\n [ngClass]=\"{'tagToBody': settings.tagToBody}\"\n [style.width.px]=\"dropDownWidth\"\n [style.top]=\"dropDownTop\"\n [style.bottom]=\"dropDownBottom\"\n [style.left.px]=\"dropDownLeft\"\n [hidden]=\"!isActive\">\n <div [ngClass]=\"{'arrow-up': settings.position == 'bottom', 'arrow-down': settings.position == 'top'}\"\n class=\"arrow-2\"></div>\n <div [ngClass]=\"{'arrow-up': settings.position == 'bottom', 'arrow-down': settings.position == 'top'}\"></div>\n <div class=\"list-area\" [ngClass]=\"{'single-select-mode': settings.singleSelection }\">\n <div class=\"pure-checkbox select-all\"\n *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection && data?.length > 0 && !isDisabledItemPresent\"\n >\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n [id]=\"id\" (change)=\"toggleSelectAll($event)\"/>\n <label [for]=\"id\">\n <span [hidden]=\"isSelectAll\">{{ settings.selectAllText }}</span>\n <span [hidden]=\"!isSelectAll\">{{ settings.unSelectAllText }}</span>\n </label>\n </div>\n <img class=\"loading-icon\" *ngIf=\"loading\" src=\"assets/img/loading.gif\"/>\n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter\">\n <span class=\"c-search\" id=\"searchIcon\">\n <c-icon [name]=\"'search'\"></c-icon>\n </span>\n <span *ngIf=\"!settings.lazyLoading\" [hidden]=\"filter == undefined || filter?.length == 0\" class=\"c-clear\"\n (click)=\"clearSearch()\">\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n <span *ngIf=\"settings.lazyLoading\" [hidden]=\"filter == undefined || filter?.length == 0\" class=\"c-clear\"\n (click)=\"resetInfiniteSearch()\">\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n\n <input class=\"c-input\" *ngIf=\"settings.groupBy && !settings.lazyLoading && !searchTempl\" #searchInput\n type=\"text\" [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"filterGroupedList()\" aria-labelledby=\"searchIcon\">\n <input class=\"c-input\" *ngIf=\"!settings.groupBy && !settings.lazyLoading && !searchTempl\" #searchInput\n type=\"text\" [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"filteritems($event)\" aria-labelledby=\"searchIcon\">\n <input class=\"c-input\" *ngIf=\"settings.lazyLoading && !searchTempl\" #searchInput type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"onKeyUp($event)\" aria-labelledby=\"searchIcon\">\n <!-- <input class=\"c-input\" *ngIf=\"!settings.lazyLoading && !searchTempl && settings.groupBy\" #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\" (keyup)=\"filterGroupList($event)\">-->\n <c-templateRenderer *ngIf=\"searchTempl\" [data]=\"searchTempl\" [item]=\"item\"></c-templateRenderer>\n </div>\n <div class=\"filter-select-all\"\n *ngIf=\"!settings.lazyLoading && settings.enableFilterSelectAll && !isDisabledItemPresent\">\n <div class=\"pure-checkbox select-all\"\n *ngIf=\"!settings.groupBy && filter?.length > 0 && filterLength > 0 && !settings.singleSelection\"\n (click)=\"toggleFilterSelectAll()\">\n <input type=\"checkbox\" [checked]=\"isFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\" aria-labelledby=\"optionName\"\n aria-label=\"option\"/>\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{ settings.filterSelectAllText }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{ settings.filterUnSelectAllText }}</span>\n </label>\n </div>\n <div class=\"pure-checkbox select-all\"\n *ngIf=\"settings.groupBy && filter?.length > 0 && groupedData?.length > 0 && !settings.singleSelection\"\n (click)=\"toggleFilterSelectAll()\">\n <input type=\"checkbox\" [checked]=\"isFilterSelectAll && filter?.length > 0\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"/>\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{ settings.filterSelectAllText }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{ settings.filterUnSelectAllText }}</span>\n </label>\n </div>\n </div>\n <div class=\"filter-select-all\"\n *ngIf=\"settings.lazyLoading && settings.enableFilterSelectAll && !isDisabledItemPresent && !settings.singleSelection\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"filter?.length > 0 && infiniteFilterLength > 0\"\n (click)=\"toggleInfiniteFilterSelectAll()\">\n <input type=\"checkbox\" [checked]=\"isInfiniteFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"/>\n <label>\n <span [hidden]=\"isInfiniteFilterSelectAll\">{{ settings.filterSelectAllText }}</span>\n <span [hidden]=\"!isInfiniteFilterSelectAll\">{{ settings.filterUnSelectAllText }}</span>\n </label>\n </div>\n </div>\n <div class=\"filter-select-all\" *ngIf=\"filter?.length\">\n <div class=\"btn-container\" *ngIf=\"settings.addNewItemOnFilter\">\n <button class=\"c-btn btn-iceblue\" (click)=\"addFilterNewItem()\">{{ settings.addNewButtonText }}</button>\n </div>\n </div>\n\n <div *ngIf=\"!settings.groupBy && !settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <li *ngFor=\"let item of data; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\" [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n aria-labelledby=\"option\"/>\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n <!-- lazy loading -->\n <div *ngIf=\"!settings.groupBy && settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul virtualScroller #scroll [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\" class=\"lazyContainer\">\n <li *ngFor=\"let item of scroll.viewPortItems; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n <!-- custom template -->\n <div *ngIf=\"!settings.groupBy && !settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <li *ngFor=\"let item of data; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\" [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </ul>\n </div>\n <!-- lazy loading and custom template -->\n <div *ngIf=\"!settings.groupBy && settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul virtualScroller #scroll2 [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" class=\"lazyContainer\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\">\n <li *ngFor=\"let item of scroll2.viewPortItems; let i = index;\" (click)=\"onItemClick(item,i,$event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{'selected-item': isSelected(item) == true }\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </ul>\n </div>\n <!-- lazy loading, group By and custom template -->\n <div *ngIf=\"settings.groupBy && settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul virtualScroller #scroll3 [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\" class=\"lazyContainer\">\n <span *ngFor=\"let item of scroll3.viewPortItems; let i = index;\">\n <li (click)=\"onItemClick(item,i,$event)\" *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !settings.singleSelection\" type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n <li *ngIf=\"item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n </ul>\n </div>\n <!-- group By and custom template -->\n <div *ngIf=\"settings.groupBy && !settings.lazyLoading && itemTempl != undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData; let i = index;\">\n <li (click)=\"selectGroup(item)\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !settings.singleSelection\" type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list ; let j = index;\">\n <li (click)=\"onItemClick(val,j,$event); $event.stopPropagation()\"\n [ngClass]=\"{'grp-title': val.grpTitle,'grp-item': !val.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(val)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(val)) || val.disabled\"\n />\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"val\"></c-templateRenderer>\n </li>\n </span>\n </ul>\n\n </li>\n </span>\n </ul>\n </div>\n <!-- lazy loading, group By -->\n <div *ngIf=\"settings.groupBy && settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <virtual-scroller [items]=\"groupedData\" (vsUpdate)=\"viewPortItems = $event\" (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{'height': settings.maxHeight+'px'}\">\n <ul virtualScroller #scroll4 [enableUnequalChildrenSizes]=\"randomSize\" [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\" [ngStyle]=\"{'height': settings.maxHeight+'px'}\" class=\"lazyContainer\">\n <span *ngFor=\"let item of scroll4.viewPortItems; let i = index;\">\n <li *ngIf=\"item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection, 'selected-item': isSelected(item) == true }\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !item.grpTitle && !settings.singleSelection\"\n type=\"checkbox\" [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n <li (click)=\"onItemClick(item,i,$event)\" *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection, 'selected-item': isSelected(item) == true }\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !item.grpTitle\" type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </virtual-scroller>\n </div>\n <!-- group By -->\n <div *ngIf=\"settings.groupBy && !settings.lazyLoading && itemTempl == undefined\"\n [style.maxHeight]=\"settings.maxHeight+'px'\"\n style=\"overflow: auto;\">\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData ; let i = index;\">\n <li (click)=\"selectGroup(item)\"\n [ngClass]=\"{'grp-title': item.grpTitle,'grp-item': !item.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox && !settings.singleSelection\" type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(item)) || item.disabled\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list ; let j = index;\">\n <li (click)=\"onItemClick(val,j,$event); $event.stopPropagation()\"\n [ngClass]=\"{'selected-item': isSelected(val) == true,'grp-title': val.grpTitle,'grp-item': !val.grpTitle && !settings.singleSelection}\"\n class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(val)\"\n [disabled]=\"(settings.limitSelection == selectedItems?.length && !isSelected(val)) || val.disabled\"\n />\n <label>{{ val[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{ settings.noDataLabel }}</h5>\n </div>\n </div>\n</div>\n", styles: ["virtual-scroll{display:block;width:100%}.cuppa-dropdown{position:relative}.c-btn{display:inline-block;border-width:1px;line-height:1.25;border-radius:3px;font-size:.85rem;padding:5px 10px;cursor:pointer;align-items:center;min-height:38px}.c-btn.disabled{background:#ccc}.selected-list .c-list{float:left;padding:0;margin:0;width:calc(100% - 20px)}.selected-list .c-list .c-token{list-style:none;padding:4px 22px 4px 8px;border-radius:2px;margin-right:4px;margin-top:2px;float:left;position:relative}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .c-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .c-angle-down,.selected-list .c-angle-up{width:12px;height:12px;position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.selected-list .countplaceholder{position:absolute;right:45px;top:50%;transform:translateY(-50%)}.selected-list .c-btn{width:100%;padding:5px 10px;cursor:pointer;display:flex;position:relative}.selected-list .c-btn .c-icon{position:absolute;right:5px;top:50%;transform:translateY(-50%)}.dropdown-list.tagToBody{position:fixed}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:99999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up,.arrow-down{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-down{bottom:-14px;top:unset;transform:rotate(180deg)}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.arrow-down.arrow-2{top:unset;bottom:-16px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative;padding-left:35px;height:35px}.list-filter input{border:0px;width:100%;height:100%;padding:0}.list-filter input:focus{outline:none}.list-filter .c-search{position:absolute;top:4px;left:10px;width:15px;height:15px}.list-filter .c-search svg{fill:#888}.list-filter .c-clear{position:absolute;top:4px;right:10px;width:15px;height:15px}.list-filter .c-clear svg{fill:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{background-color:none}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]:disabled+label{color:#ccc}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;text-align:center;transition:all .4s ease;border-radius:3px}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:3px;width:9px;height:4px;margin-top:-5px;border-style:solid;border-width:0 0 2px 2px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center;margin:0;padding:15px 0;font-size:initial}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.grp-item{padding-left:30px!important}.grp-title{padding-bottom:0!important}.grp-title label{margin-bottom:0!important;font-weight:800;text-transform:capitalize}.grp-title:hover{background:none!important}.loading-icon{width:20px;position:absolute;right:10px;top:23px;z-index:1}.nodata-label{width:100%;text-align:center;padding:10px 0 0}.btn-container{text-align:center;padding:5px}.clear-all{width:8px;position:absolute;top:50%;right:30px;transform:translateY(-50%)}\n"] }]
2546
+ args: [{ selector: 'angular2-multiselect', host: { '[class]': 'defaultSettings.classes' }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], encapsulation: ViewEncapsulation.None, template: "<div class=\"cuppa-dropdown\" #cuppaDropdown>\n <div class=\"selected-list\" #selectedList>\n <div\n class=\"c-btn\"\n (click)=\"toggleDropdown($event)\"\n [ngClass]=\"{ disabled: settings.disabled }\"\n [attr.tabindex]=\"0\"\n >\n <span *ngIf=\"selectedItems?.length == 0\">{{ settings.text }}</span>\n <span *ngIf=\"settings.singleSelection && !badgeTempl\">\n <span\n *ngFor=\"\n let item of selectedItems;\n trackBy: trackByFn.bind(this);\n let k = index\n \"\n >\n {{ item[settings.labelKey] }}\n </span>\n </span>\n <span\n class=\"c-list\"\n *ngIf=\"\n selectedItems?.length > 0 && settings.singleSelection && badgeTempl\n \"\n >\n <div\n class=\"c-token\"\n *ngFor=\"\n let item of selectedItems;\n trackBy: trackByFn.bind(this);\n let k = index\n \"\n >\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{\n item[settings.labelKey]\n }}</span>\n\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer\n [data]=\"badgeTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </span>\n <span\n class=\"c-remove\"\n (click)=\"onItemClick(item, k, $event); $event.stopPropagation()\"\n >\n <c-icon name=\"remove\" />\n </span>\n </div>\n </span>\n <div\n class=\"c-list\"\n *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\"\n >\n <div\n class=\"c-token\"\n *ngFor=\"\n let item of selectedItems;\n trackBy: trackByFn.bind(this);\n let k = index\n \"\n [hidden]=\"k > settings.badgeShowLimit - 1\"\n >\n @if (badgeTempl) {\n <span class=\"c-label\"\n ><c-templateRenderer\n [data]=\"badgeTempl\"\n [item]=\"item\"\n ></c-templateRenderer\n ></span>\n } @else {\n <span class=\"c-label\">{{ item[settings.labelKey] }}</span>\n }\n\n <span\n class=\"c-remove\"\n (click)=\"onItemClick(item, k, $event); $event.stopPropagation()\"\n >\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n </div>\n </div>\n <span\n class=\"countplaceholder\"\n *ngIf=\"selectedItems?.length > settings.badgeShowLimit\"\n >+{{ selectedItems?.length - settings.badgeShowLimit }}</span\n >\n <span\n class=\"c-remove clear-all\"\n *ngIf=\"\n settings.clearAll && selectedItems?.length > 0 && !settings.disabled\n \"\n (click)=\"clearSelection($event); $event.stopPropagation()\"\n >\n <c-icon [name]=\"'remove'\"></c-icon>\n </span>\n @if (isActive) {\n <span class=\"c-angle-up\"><c-icon [name]=\"'angle-up'\"></c-icon></span>\n } @else {\n <span class=\"c-angle-down\"\n ><c-icon [name]=\"'angle-down'\"></c-icon\n ></span>\n }\n </div>\n </div>\n <div\n #dropdownList\n class=\"dropdown-list animated fadeIn\"\n [ngClass]=\"{ tagToBody: settings.tagToBody }\"\n [style.width.px]=\"dropDownWidth\"\n [style.top]=\"dropDownTop\"\n [style.bottom]=\"dropDownBottom\"\n [style.left.px]=\"dropDownLeft\"\n [hidden]=\"!isActive\"\n >\n <div\n [ngClass]=\"{\n 'arrow-up': settings.position == 'bottom',\n 'arrow-down': settings.position == 'top',\n }\"\n class=\"arrow-2\"\n ></div>\n <div\n [ngClass]=\"{\n 'arrow-up': settings.position == 'bottom',\n 'arrow-down': settings.position == 'top',\n }\"\n ></div>\n <div\n class=\"list-area\"\n [ngClass]=\"{ 'single-select-mode': settings.singleSelection }\"\n >\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"\n settings.enableCheckAll &&\n !settings.singleSelection &&\n !settings.limitSelection &&\n data?.length > 0 &&\n !isDisabledItemPresent\n \"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n [id]=\"id\"\n (change)=\"toggleSelectAll($event)\"\n />\n <label [for]=\"id\">\n <span [hidden]=\"isSelectAll\">{{ settings.selectAllText }}</span>\n <span [hidden]=\"!isSelectAll\">{{ settings.unSelectAllText }}</span>\n </label>\n </div>\n <img class=\"loading-icon\" *ngIf=\"loading\" src=\"assets/img/loading.gif\" />\n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter\">\n <span class=\"c-search\" id=\"searchIcon\">\n <c-icon [name]=\"'search'\"></c-icon>\n </span>\n @if (settings.lazyLoading) {\n <span\n [hidden]=\"filter == undefined || filter?.length == 0\"\n class=\"c-clear\"\n (click)=\"resetInfiniteSearch()\"\n >\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n } @else {\n <span\n [hidden]=\"filter == undefined || filter?.length == 0\"\n class=\"c-clear\"\n (click)=\"clearSearch()\"\n >\n <c-icon [name]=\"'clear'\"></c-icon>\n </span>\n }\n\n @if (searchTempl) {\n <c-templateRenderer [data]=\"searchTempl\" [item]=\"item\" />\n } @else if (settings.groupBy && !settings.lazyLoading) {\n <input\n class=\"c-input\"\n #searchInput\n type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\"\n (keyup)=\"filterGroupedList()\"\n aria-labelledby=\"searchIcon\"\n />\n } @else if (!settings.groupBy && !settings.lazyLoading) {\n <input\n class=\"c-input\"\n #searchInput\n type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\"\n (keyup)=\"filteritems($event)\"\n aria-labelledby=\"searchIcon\"\n />\n } @else if (settings.lazyLoading) {\n <input\n class=\"c-input\"\n #searchInput\n type=\"text\"\n [placeholder]=\"settings.searchPlaceholderText\"\n [(ngModel)]=\"filter\"\n (keyup)=\"onKeyUp($event)\"\n aria-labelledby=\"searchIcon\"\n />\n }\n </div>\n <div\n class=\"filter-select-all\"\n *ngIf=\"\n !settings.lazyLoading &&\n settings.enableFilterSelectAll &&\n !isDisabledItemPresent\n \"\n >\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"\n !settings.groupBy &&\n filter?.length > 0 &&\n filterLength > 0 &&\n !settings.singleSelection\n \"\n (click)=\"toggleFilterSelectAll()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"optionName\"\n aria-label=\"option\"\n />\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{\n settings.filterSelectAllText\n }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{\n settings.filterUnSelectAllText\n }}</span>\n </label>\n </div>\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"\n settings.groupBy &&\n filter?.length > 0 &&\n groupedData?.length > 0 &&\n !settings.singleSelection\n \"\n (click)=\"toggleFilterSelectAll()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isFilterSelectAll && filter?.length > 0\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"\n />\n <label>\n <span [hidden]=\"isFilterSelectAll\">{{\n settings.filterSelectAllText\n }}</span>\n <span [hidden]=\"!isFilterSelectAll\">{{\n settings.filterUnSelectAllText\n }}</span>\n </label>\n </div>\n </div>\n <div\n class=\"filter-select-all\"\n *ngIf=\"\n settings.lazyLoading &&\n settings.enableFilterSelectAll &&\n !isDisabledItemPresent &&\n !settings.singleSelection\n \"\n >\n <div\n class=\"pure-checkbox select-all\"\n *ngIf=\"filter?.length > 0 && infiniteFilterLength > 0\"\n (click)=\"toggleInfiniteFilterSelectAll()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isInfiniteFilterSelectAll\"\n [disabled]=\"settings.limitSelection == selectedItems?.length\"\n aria-labelledby=\"option\"\n />\n <label>\n <span [hidden]=\"isInfiniteFilterSelectAll\">{{\n settings.filterSelectAllText\n }}</span>\n <span [hidden]=\"!isInfiniteFilterSelectAll\">{{\n settings.filterUnSelectAllText\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"filter-select-all\" *ngIf=\"filter?.length\">\n <div class=\"btn-container\" *ngIf=\"settings.addNewItemOnFilter\">\n <button class=\"c-btn btn-iceblue\" (click)=\"addFilterNewItem()\">\n {{ settings.addNewButtonText }}\n </button>\n </div>\n </div>\n\n @if (\n !settings.groupBy && !settings.lazyLoading && itemTempl == undefined\n ) {\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <li\n *ngFor=\"let item of data; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n aria-labelledby=\"option\"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n } @else if (\n !settings.groupBy && settings.lazyLoading && itemTempl == undefined\n ) {\n <!-- lazy loading -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul\n virtualScroller\n #scroll\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n class=\"lazyContainer\"\n >\n <li\n *ngFor=\"let item of scroll.viewPortItems; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </ul>\n </div>\n } @else if (\n !settings.groupBy && !settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <li\n *ngFor=\"let item of data; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n </ul>\n </div>\n } @else if (\n !settings.groupBy && settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- lazy loading and custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul\n virtualScroller\n #scroll2\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n class=\"lazyContainer\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n >\n <li\n *ngFor=\"let item of scroll2.viewPortItems; let i = index\"\n (click)=\"onItemClick(item, i, $event)\"\n class=\"pure-checkbox\"\n [ngClass]=\"{ 'selected-item': isSelected(item) == true }\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n </ul>\n </div>\n } @else if (\n settings.groupBy && settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- lazy loading, group By and custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul\n virtualScroller\n #scroll3\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n class=\"lazyContainer\"\n >\n <span *ngFor=\"let item of scroll3.viewPortItems; let i = index\">\n <li\n (click)=\"onItemClick(item, i, $event)\"\n *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !settings.singleSelection\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n <li\n *ngIf=\"item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"item\"\n ></c-templateRenderer>\n </li>\n </span>\n </ul>\n </div>\n } @else if (\n settings.groupBy && !settings.lazyLoading && itemTempl != undefined\n ) {\n <!-- group By and custom template -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData; let i = index\">\n <li\n (click)=\"selectGroup(item)\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !settings.singleSelection\"\n type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list; let j = index\">\n <li\n (click)=\"\n onItemClick(val, j, $event); $event.stopPropagation()\n \"\n [ngClass]=\"{\n 'grp-title': val.grpTitle,\n 'grp-item': !val.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(val)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(val)) ||\n val.disabled\n \"\n />\n <label></label>\n <c-templateRenderer\n [data]=\"itemTempl\"\n [item]=\"val\"\n ></c-templateRenderer>\n </li>\n </span>\n </ul>\n </li>\n </span>\n </ul>\n </div>\n } @else if (\n settings.groupBy && settings.lazyLoading && itemTempl == undefined\n ) {\n <!-- lazy loading, group By -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <virtual-scroller\n [items]=\"groupedData\"\n (vsUpdate)=\"viewPortItems = $event\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n >\n <ul\n virtualScroller\n #scroll4\n [enableUnequalChildrenSizes]=\"randomSize\"\n [items]=\"virtualdata\"\n (vsStart)=\"onScrollEnd($event)\"\n (vsEnd)=\"onScrollEnd($event)\"\n [ngStyle]=\"{ height: settings.maxHeight + 'px' }\"\n class=\"lazyContainer\"\n >\n <span *ngFor=\"let item of scroll4.viewPortItems; let i = index\">\n <li\n *ngIf=\"item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n 'selected-item': isSelected(item) == true,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"\n settings.showCheckbox &&\n !item.grpTitle &&\n !settings.singleSelection\n \"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n <li\n (click)=\"onItemClick(item, i, $event)\"\n *ngIf=\"!item.grpTitle\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n 'selected-item': isSelected(item) == true,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !item.grpTitle\"\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </virtual-scroller>\n </div>\n } @else if (\n settings.groupBy && !settings.lazyLoading && itemTempl == undefined\n ) {\n <!-- group By -->\n <div\n [style.maxHeight]=\"settings.maxHeight + 'px'\"\n style=\"overflow: auto\"\n >\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let item of groupedData; let i = index\">\n <li\n (click)=\"selectGroup(item)\"\n [ngClass]=\"{\n 'grp-title': item.grpTitle,\n 'grp-item': !item.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox && !settings.singleSelection\"\n type=\"checkbox\"\n [checked]=\"item.selected\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(item)) ||\n item.disabled\n \"\n />\n <label>{{ item[settings.labelKey] }}</label>\n <ul class=\"lazyContainer\">\n <span *ngFor=\"let val of item.list; let j = index\">\n <li\n (click)=\"\n onItemClick(val, j, $event); $event.stopPropagation()\n \"\n [ngClass]=\"{\n 'selected-item': isSelected(val) == true,\n 'grp-title': val.grpTitle,\n 'grp-item': !val.grpTitle && !settings.singleSelection,\n }\"\n class=\"pure-checkbox\"\n >\n <input\n *ngIf=\"settings.showCheckbox\"\n type=\"checkbox\"\n [checked]=\"isSelected(val)\"\n [disabled]=\"\n (settings.limitSelection == selectedItems?.length &&\n !isSelected(val)) ||\n val.disabled\n \"\n />\n <label>{{ val[settings.labelKey] }}</label>\n </li>\n </span>\n </ul>\n </li>\n </span>\n </ul>\n </div>\n }\n\n @if (data?.length == 0) {\n <h5 class=\"list-message\">\n {{ settings.noDataLabel }}\n </h5>\n }\n </div>\n </div>\n</div>\n", styles: ["virtual-scroll{display:block;width:100%}.cuppa-dropdown{position:relative}.c-btn{display:inline-block;border-width:1px;line-height:1.25;border-radius:3px;font-size:.85rem;padding:5px 10px;cursor:pointer;align-items:center;min-height:38px}.c-btn.disabled{background:#ccc}.selected-list .c-list{float:left;padding:0;margin:0;width:calc(100% - 20px)}.selected-list .c-list .c-token{list-style:none;padding:4px 22px 4px 8px;border-radius:2px;margin-right:4px;margin-top:2px;float:left;position:relative}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .c-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .c-angle-down,.selected-list .c-angle-up{width:12px;height:12px;position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.selected-list .countplaceholder{position:absolute;right:45px;top:50%;transform:translateY(-50%)}.selected-list .c-btn{width:100%;padding:5px 10px;cursor:pointer;display:flex;position:relative}.selected-list .c-btn .c-icon{position:absolute;right:5px;top:50%;transform:translateY(-50%)}.dropdown-list.tagToBody{position:fixed}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:99999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up,.arrow-down{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-down{bottom:-14px;top:unset;transform:rotate(180deg)}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.arrow-down.arrow-2{top:unset;bottom:-16px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative;padding-left:35px;height:35px}.list-filter input{border:0px;width:100%;height:100%;padding:0}.list-filter input:focus{outline:none}.list-filter .c-search{position:absolute;top:4px;left:10px;width:15px;height:15px}.list-filter .c-search svg{fill:#888}.list-filter .c-clear{position:absolute;top:4px;right:10px;width:15px;height:15px}.list-filter .c-clear svg{fill:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{background-color:none}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]:disabled+label{color:#ccc}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;text-align:center;transition:all .4s ease;border-radius:3px}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:3px;width:9px;height:4px;margin-top:-5px;border-style:solid;border-width:0 0 2px 2px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center;margin:0;padding:15px 0;font-size:initial}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.grp-item{padding-left:30px!important}.grp-title{padding-bottom:0!important}.grp-title label{margin-bottom:0!important;font-weight:800;text-transform:capitalize}.grp-title:hover{background:none!important}.loading-icon{width:20px;position:absolute;right:10px;top:23px;z-index:1}.nodata-label{width:100%;text-align:center;padding:10px 0 0}.btn-container{text-align:center;padding:5px}.clear-all{width:8px;position:absolute;top:50%;right:30px;transform:translateY(-50%)}\n"] }]
2567
2547
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: ListFilterPipe }, { type: ClickOutsideService }], propDecorators: { data: [{
2568
2548
  type: Input
2569
2549
  }], settings: [{
@@ -2639,14 +2619,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2639
2619
  }] } });
2640
2620
  class AngularMultiSelectModule {
2641
2621
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2642
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect, ScrollDirective,
2643
- ListFilterPipe,
2622
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect, ListFilterPipe,
2644
2623
  Item,
2645
2624
  TemplateRenderer,
2646
2625
  Badge,
2647
2626
  Search,
2648
- CIcon], imports: [CommonModule, FormsModule, VirtualScrollerModule], exports: [AngularMultiSelect, ScrollDirective,
2649
- ListFilterPipe,
2627
+ CIcon], imports: [CommonModule, FormsModule, VirtualScrollerModule], exports: [AngularMultiSelect, ListFilterPipe,
2650
2628
  Item,
2651
2629
  TemplateRenderer,
2652
2630
  Badge,
@@ -2660,7 +2638,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2660
2638
  imports: [CommonModule, FormsModule, VirtualScrollerModule],
2661
2639
  declarations: [
2662
2640
  AngularMultiSelect,
2663
- ScrollDirective,
2664
2641
  ListFilterPipe,
2665
2642
  Item,
2666
2643
  TemplateRenderer,
@@ -2670,7 +2647,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2670
2647
  ],
2671
2648
  exports: [
2672
2649
  AngularMultiSelect,
2673
- ScrollDirective,
2674
2650
  ListFilterPipe,
2675
2651
  Item,
2676
2652
  TemplateRenderer,
@@ -2686,5 +2662,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2686
2662
  * Generated bundle index. Do not edit.
2687
2663
  */
2688
2664
 
2689
- export { AngularMultiSelect, AngularMultiSelectModule, Badge, CIcon, Item, ListFilterPipe, ScrollDirective, Search, TemplateRenderer };
2665
+ export { AngularMultiSelect, AngularMultiSelectModule, Badge, CIcon, Item, ListFilterPipe, Search, TemplateRenderer };
2690
2666
  //# sourceMappingURL=angular-multiselect3.mjs.map