angular-multiselect3 10.0.0 → 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.
- package/esm2022/angular-multiselect3.mjs +5 -0
- package/esm2022/lib/click-outside.service.mjs +54 -0
- package/esm2022/lib/list-filter.mjs +14 -13
- package/esm2022/lib/multiselect.component.mjs +30 -24
- package/esm2022/public_api.mjs +1 -2
- package/fesm2022/{angular-multiselect.mjs → angular-multiselect3.mjs} +95 -118
- package/fesm2022/angular-multiselect3.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/lib/click-outside.service.d.ts +16 -0
- package/lib/list-filter.d.ts +0 -3
- package/lib/multiselect.component.d.ts +9 -8
- package/package.json +6 -6
- package/public_api.d.ts +0 -1
- package/esm2022/angular-multiselect.mjs +0 -5
- package/esm2022/lib/clickOutside.mjs +0 -58
- package/esm2022/lib/multiselect.service.mjs +0 -28
- package/fesm2022/angular-multiselect.mjs.map +0 -1
- package/lib/clickOutside.d.ts +0 -17
- package/lib/multiselect.service.d.ts +0 -11
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import * as
|
|
2
|
+
import { Pipe, TemplateRef, Component, ContentChild, Input, ViewEncapsulation, EventEmitter, PLATFORM_ID, ElementRef, Inject, Optional, Output, ViewChild, NgModule, Injectable, forwardRef, HostListener } from '@angular/core';
|
|
3
|
+
import * as i4 from '@angular/forms';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';
|
|
5
|
-
import * as
|
|
6
|
-
import { isPlatformServer, CommonModule } from '@angular/common';
|
|
7
|
-
import { Subject } from 'rxjs';
|
|
5
|
+
import * as i3 from '@angular/common';
|
|
6
|
+
import { isPlatformServer, CommonModule, DOCUMENT } from '@angular/common';
|
|
7
|
+
import { Subject, merge, fromEvent } from 'rxjs';
|
|
8
8
|
import * as tween from '@tweenjs/tween.js';
|
|
9
9
|
import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';
|
|
10
10
|
|
|
@@ -17,95 +17,10 @@ class MyException {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
class ClickOutsideDirective {
|
|
21
|
-
_elementRef;
|
|
22
|
-
constructor(_elementRef) {
|
|
23
|
-
this._elementRef = _elementRef;
|
|
24
|
-
}
|
|
25
|
-
enabled;
|
|
26
|
-
clickOutside = new EventEmitter();
|
|
27
|
-
onClick(event, targetElement) {
|
|
28
|
-
console.log('clicked outside');
|
|
29
|
-
if (!targetElement || !this.enabled) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const clickedInside = this._elementRef.nativeElement.contains(targetElement);
|
|
33
|
-
if (!clickedInside) {
|
|
34
|
-
this.clickOutside.emit(event);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: { enabled: "enabled" }, outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:pointerdown": "onClick($event,$event.target)", "document:touchstart": "onClick($event,$event.target)" } }, ngImport: i0 });
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
41
|
-
type: Directive,
|
|
42
|
-
args: [{
|
|
43
|
-
selector: '[clickOutside]',
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { enabled: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], clickOutside: [{
|
|
48
|
-
type: Output
|
|
49
|
-
}], onClick: [{
|
|
50
|
-
type: HostListener,
|
|
51
|
-
args: ['document:pointerdown', ['$event', '$event.target']]
|
|
52
|
-
}, {
|
|
53
|
-
type: HostListener,
|
|
54
|
-
args: ['document:touchstart', ['$event', '$event.target']]
|
|
55
|
-
}] } });
|
|
56
|
-
class ScrollDirective {
|
|
57
|
-
scroll = new EventEmitter();
|
|
58
|
-
onClick(event, targetElement) {
|
|
59
|
-
this.scroll.emit(event);
|
|
60
|
-
}
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
62
|
-
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 });
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollDirective, decorators: [{
|
|
65
|
-
type: Directive,
|
|
66
|
-
args: [{
|
|
67
|
-
selector: '[scroll]',
|
|
68
|
-
}]
|
|
69
|
-
}], propDecorators: { scroll: [{
|
|
70
|
-
type: Output
|
|
71
|
-
}], onClick: [{
|
|
72
|
-
type: HostListener,
|
|
73
|
-
args: ['scroll', ['$event']]
|
|
74
|
-
}] } });
|
|
75
|
-
|
|
76
|
-
class DataService {
|
|
77
|
-
filteredData = [];
|
|
78
|
-
subject = new Subject();
|
|
79
|
-
setData(data) {
|
|
80
|
-
this.filteredData = data;
|
|
81
|
-
this.subject.next(data);
|
|
82
|
-
}
|
|
83
|
-
getData() {
|
|
84
|
-
return this.subject.asObservable();
|
|
85
|
-
}
|
|
86
|
-
getFilteredData() {
|
|
87
|
-
if (this.filteredData && this.filteredData.length > 0) {
|
|
88
|
-
return this.filteredData;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
return [];
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
95
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataService });
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataService, decorators: [{
|
|
98
|
-
type: Injectable
|
|
99
|
-
}] });
|
|
100
|
-
|
|
101
20
|
class ListFilterPipe {
|
|
102
|
-
ds;
|
|
103
21
|
filteredList = [];
|
|
104
|
-
constructor(ds) {
|
|
105
|
-
this.ds = ds;
|
|
106
|
-
}
|
|
107
22
|
transform(items, filter, searchBy) {
|
|
108
|
-
if (!items || !filter || filter ==
|
|
23
|
+
if (!items || !filter || filter == '') {
|
|
109
24
|
return items;
|
|
110
25
|
}
|
|
111
26
|
this.filteredList = items.filter((item) => this.applyFilter(item, filter, searchBy));
|
|
@@ -119,8 +34,11 @@ class ListFilterPipe {
|
|
|
119
34
|
}
|
|
120
35
|
else {
|
|
121
36
|
for (var t = 0; t < searchBy.length; t++) {
|
|
122
|
-
if (filter && item[searchBy[t]] && item[searchBy[t]] !=
|
|
123
|
-
if (item[searchBy[t]]
|
|
37
|
+
if (filter && item[searchBy[t]] && item[searchBy[t]] != '') {
|
|
38
|
+
if (item[searchBy[t]]
|
|
39
|
+
.toString()
|
|
40
|
+
.toLowerCase()
|
|
41
|
+
.indexOf(filter.toLowerCase()) >= 0) {
|
|
124
42
|
found = true;
|
|
125
43
|
}
|
|
126
44
|
}
|
|
@@ -134,7 +52,10 @@ class ListFilterPipe {
|
|
|
134
52
|
else {
|
|
135
53
|
for (var prop in item) {
|
|
136
54
|
if (filter && item[prop]) {
|
|
137
|
-
if (item[prop]
|
|
55
|
+
if (item[prop]
|
|
56
|
+
.toString()
|
|
57
|
+
.toLowerCase()
|
|
58
|
+
.indexOf(filter.toLowerCase()) >= 0) {
|
|
138
59
|
found = true;
|
|
139
60
|
}
|
|
140
61
|
}
|
|
@@ -143,16 +64,16 @@ class ListFilterPipe {
|
|
|
143
64
|
}
|
|
144
65
|
return found;
|
|
145
66
|
}
|
|
146
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListFilterPipe, deps: [
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
147
68
|
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ListFilterPipe, name: "listFilter" });
|
|
148
69
|
}
|
|
149
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListFilterPipe, decorators: [{
|
|
150
71
|
type: Pipe,
|
|
151
72
|
args: [{
|
|
152
73
|
name: 'listFilter',
|
|
153
|
-
pure: true
|
|
74
|
+
pure: true,
|
|
154
75
|
}]
|
|
155
|
-
}]
|
|
76
|
+
}] });
|
|
156
77
|
|
|
157
78
|
class Item {
|
|
158
79
|
template;
|
|
@@ -363,7 +284,7 @@ class CIcon {
|
|
|
363
284
|
l-7.071,7.071l7.425,7.425C37.022,34.194,37.022,35.46,36.241,36.241z"
|
|
364
285
|
/>
|
|
365
286
|
</g>
|
|
366
|
-
</svg>`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
287
|
+
</svg>`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
367
288
|
}
|
|
368
289
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CIcon, decorators: [{
|
|
369
290
|
type: Component,
|
|
@@ -1659,6 +1580,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1659
1580
|
}]
|
|
1660
1581
|
}] });
|
|
1661
1582
|
|
|
1583
|
+
class ClickOutsideService {
|
|
1584
|
+
_document;
|
|
1585
|
+
// tslint:disable-next-line:variable-name
|
|
1586
|
+
_items = new Set();
|
|
1587
|
+
// tslint:disable-next-line:variable-name
|
|
1588
|
+
_click$ = new Subject();
|
|
1589
|
+
// tslint:disable-next-line:variable-name
|
|
1590
|
+
_docSub;
|
|
1591
|
+
constructor(_document) {
|
|
1592
|
+
this._document = _document;
|
|
1593
|
+
}
|
|
1594
|
+
register(item) {
|
|
1595
|
+
this._items.add(item);
|
|
1596
|
+
if (this._items.size === 1) {
|
|
1597
|
+
this._subscribeToDocument();
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
unregister(item) {
|
|
1601
|
+
this._items.delete(item);
|
|
1602
|
+
if (this._items.size === 0) {
|
|
1603
|
+
this._unsubscribe();
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
onClick() {
|
|
1607
|
+
// return observable of document click/pointer events
|
|
1608
|
+
return this._click$.asObservable();
|
|
1609
|
+
}
|
|
1610
|
+
_subscribeToDocument() {
|
|
1611
|
+
if (this._docSub) {
|
|
1612
|
+
return;
|
|
1613
|
+
}
|
|
1614
|
+
// listen to touchstart / pointerdown / mousedown and forward events
|
|
1615
|
+
this._docSub = merge(fromEvent(this._document.defaultView, 'touchstart'), fromEvent(this._document.defaultView, 'pointerdown')).subscribe((event) => this._click$.next(event));
|
|
1616
|
+
}
|
|
1617
|
+
_unsubscribe() {
|
|
1618
|
+
if (this._docSub) {
|
|
1619
|
+
this._docSub.unsubscribe();
|
|
1620
|
+
this._docSub = undefined;
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1623
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClickOutsideService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1624
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClickOutsideService });
|
|
1625
|
+
}
|
|
1626
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClickOutsideService, decorators: [{
|
|
1627
|
+
type: Injectable
|
|
1628
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
1629
|
+
type: Inject,
|
|
1630
|
+
args: [DOCUMENT]
|
|
1631
|
+
}] }] });
|
|
1632
|
+
|
|
1662
1633
|
const DROPDOWN_CONTROL_VALUE_ACCESSOR = {
|
|
1663
1634
|
provide: NG_VALUE_ACCESSOR,
|
|
1664
1635
|
useExisting: forwardRef(() => AngularMultiSelect),
|
|
@@ -1674,6 +1645,7 @@ class AngularMultiSelect {
|
|
|
1674
1645
|
_elementRef;
|
|
1675
1646
|
cdr;
|
|
1676
1647
|
filterPipe;
|
|
1648
|
+
_service;
|
|
1677
1649
|
data;
|
|
1678
1650
|
settings;
|
|
1679
1651
|
loading;
|
|
@@ -1745,7 +1717,7 @@ class AngularMultiSelect {
|
|
|
1745
1717
|
dropDownTop = '';
|
|
1746
1718
|
dropDownBottom = 'unset';
|
|
1747
1719
|
dropDownLeft = 0;
|
|
1748
|
-
id =
|
|
1720
|
+
id = window.crypto.randomUUID();
|
|
1749
1721
|
defaultSettings = {
|
|
1750
1722
|
singleSelection: false,
|
|
1751
1723
|
text: 'Select',
|
|
@@ -1783,10 +1755,11 @@ class AngularMultiSelect {
|
|
|
1783
1755
|
virtualScroollInit = false;
|
|
1784
1756
|
virtualScroller;
|
|
1785
1757
|
isDisabledItemPresent = false;
|
|
1786
|
-
constructor(_elementRef, cdr, filterPipe) {
|
|
1758
|
+
constructor(_elementRef, cdr, filterPipe, _service) {
|
|
1787
1759
|
this._elementRef = _elementRef;
|
|
1788
1760
|
this.cdr = cdr;
|
|
1789
1761
|
this.filterPipe = filterPipe;
|
|
1762
|
+
this._service = _service;
|
|
1790
1763
|
this.searchTerm$
|
|
1791
1764
|
.asObservable()
|
|
1792
1765
|
.pipe(debounceTime(1000), distinctUntilChanged(), tap((term) => term))
|
|
@@ -1795,6 +1768,7 @@ class AngularMultiSelect {
|
|
|
1795
1768
|
});
|
|
1796
1769
|
}
|
|
1797
1770
|
ngOnInit() {
|
|
1771
|
+
this._service.register(this.id);
|
|
1798
1772
|
this.settings = Object.assign(this.defaultSettings, this.settings);
|
|
1799
1773
|
this.cachedItems = this.cloneArray(this.data);
|
|
1800
1774
|
if (this.settings.position == 'top') {
|
|
@@ -1808,6 +1782,16 @@ class AngularMultiSelect {
|
|
|
1808
1782
|
this.calculateDropdownDirection();
|
|
1809
1783
|
});
|
|
1810
1784
|
this.virtualScroollInit = false;
|
|
1785
|
+
this.subscription = this._service
|
|
1786
|
+
.onClick()
|
|
1787
|
+
.subscribe((event) => {
|
|
1788
|
+
if (!event.target ||
|
|
1789
|
+
!this.isActive ||
|
|
1790
|
+
this._elementRef.nativeElement.contains(event.target)) {
|
|
1791
|
+
return;
|
|
1792
|
+
}
|
|
1793
|
+
this.closeDropdownOnClickOut();
|
|
1794
|
+
});
|
|
1811
1795
|
}
|
|
1812
1796
|
onKeyUp(evt) {
|
|
1813
1797
|
this.searchTerm$.next(evt.target.value);
|
|
@@ -2427,6 +2411,7 @@ class AngularMultiSelect {
|
|
|
2427
2411
|
if (this.subscription) {
|
|
2428
2412
|
this.subscription.unsubscribe();
|
|
2429
2413
|
}
|
|
2414
|
+
this._service.unregister(this.id);
|
|
2430
2415
|
}
|
|
2431
2416
|
selectGroup(item) {
|
|
2432
2417
|
if (item.disabled) {
|
|
@@ -2553,13 +2538,13 @@ class AngularMultiSelect {
|
|
|
2553
2538
|
}
|
|
2554
2539
|
this.onFilterChange(this.filteredList);
|
|
2555
2540
|
}
|
|
2556
|
-
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 }], target: i0.ɵɵFactoryTarget.Component });
|
|
2557
|
-
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\" (clickOutside)=\"closeDropdownOnClickOut()\" [enabled]=\"isActive\" #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(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i3.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(() => i3.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i3.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: "directive", type: i0.forwardRef(() => ClickOutsideDirective), selector: "[clickOutside]", inputs: ["enabled"], outputs: ["clickOutside"] }, { 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 });
|
|
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 });
|
|
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 });
|
|
2558
2543
|
}
|
|
2559
2544
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelect, decorators: [{
|
|
2560
2545
|
type: Component,
|
|
2561
|
-
args: [{ selector: 'angular2-multiselect', host: { '[class]': 'defaultSettings.classes' }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], encapsulation: ViewEncapsulation.None, template: "<div class=\"cuppa-dropdown\" (clickOutside)=\"closeDropdownOnClickOut()\" [enabled]=\"isActive\" #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"] }]
|
|
2562
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: ListFilterPipe }], propDecorators: { data: [{
|
|
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"] }]
|
|
2547
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: ListFilterPipe }, { type: ClickOutsideService }], propDecorators: { data: [{
|
|
2563
2548
|
type: Input
|
|
2564
2549
|
}], settings: [{
|
|
2565
2550
|
type: Input
|
|
@@ -2634,22 +2619,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2634
2619
|
}] } });
|
|
2635
2620
|
class AngularMultiSelectModule {
|
|
2636
2621
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2637
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect,
|
|
2638
|
-
ScrollDirective,
|
|
2639
|
-
ListFilterPipe,
|
|
2622
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect, ListFilterPipe,
|
|
2640
2623
|
Item,
|
|
2641
2624
|
TemplateRenderer,
|
|
2642
2625
|
Badge,
|
|
2643
2626
|
Search,
|
|
2644
|
-
CIcon], imports: [CommonModule, FormsModule, VirtualScrollerModule], exports: [AngularMultiSelect,
|
|
2645
|
-
ScrollDirective,
|
|
2646
|
-
ListFilterPipe,
|
|
2627
|
+
CIcon], imports: [CommonModule, FormsModule, VirtualScrollerModule], exports: [AngularMultiSelect, ListFilterPipe,
|
|
2647
2628
|
Item,
|
|
2648
2629
|
TemplateRenderer,
|
|
2649
2630
|
Badge,
|
|
2650
2631
|
Search,
|
|
2651
2632
|
CIcon] });
|
|
2652
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, providers: [
|
|
2633
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, providers: [ListFilterPipe, ClickOutsideService], imports: [CommonModule, FormsModule, VirtualScrollerModule] });
|
|
2653
2634
|
}
|
|
2654
2635
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, decorators: [{
|
|
2655
2636
|
type: NgModule,
|
|
@@ -2657,8 +2638,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2657
2638
|
imports: [CommonModule, FormsModule, VirtualScrollerModule],
|
|
2658
2639
|
declarations: [
|
|
2659
2640
|
AngularMultiSelect,
|
|
2660
|
-
ClickOutsideDirective,
|
|
2661
|
-
ScrollDirective,
|
|
2662
2641
|
ListFilterPipe,
|
|
2663
2642
|
Item,
|
|
2664
2643
|
TemplateRenderer,
|
|
@@ -2668,8 +2647,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2668
2647
|
],
|
|
2669
2648
|
exports: [
|
|
2670
2649
|
AngularMultiSelect,
|
|
2671
|
-
ClickOutsideDirective,
|
|
2672
|
-
ScrollDirective,
|
|
2673
2650
|
ListFilterPipe,
|
|
2674
2651
|
Item,
|
|
2675
2652
|
TemplateRenderer,
|
|
@@ -2677,7 +2654,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2677
2654
|
Search,
|
|
2678
2655
|
CIcon,
|
|
2679
2656
|
],
|
|
2680
|
-
providers: [
|
|
2657
|
+
providers: [ListFilterPipe, ClickOutsideService],
|
|
2681
2658
|
}]
|
|
2682
2659
|
}] });
|
|
2683
2660
|
|
|
@@ -2685,5 +2662,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2685
2662
|
* Generated bundle index. Do not edit.
|
|
2686
2663
|
*/
|
|
2687
2664
|
|
|
2688
|
-
export { AngularMultiSelect, AngularMultiSelectModule, Badge, CIcon,
|
|
2689
|
-
//# sourceMappingURL=angular-
|
|
2665
|
+
export { AngularMultiSelect, AngularMultiSelectModule, Badge, CIcon, Item, ListFilterPipe, Search, TemplateRenderer };
|
|
2666
|
+
//# sourceMappingURL=angular-multiselect3.mjs.map
|