@stackline/angular-multiselect-dropdown 21.0.1 → 21.0.3
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/README.md +25 -23
- package/fesm2022/stackline-angular-multiselect-dropdown.mjs +2100 -207
- package/package.json +66 -19
- package/themes/custom.theme.css +1 -28
- package/themes/custom.theme.scss +1 -27
- package/themes/dark.theme.scss +113 -0
- package/themes/default.theme.css +0 -27
- package/themes/default.theme.scss +0 -26
- package/types/stackline-angular-multiselect-dropdown.d.ts +324 -55
- package/fesm2022/stackline-angular-multiselect-dropdown.mjs.map +0 -1
|
@@ -1,42 +1,65 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef, OnInit, OnDestroy, ViewContainerRef, EmbeddedViewRef, ElementRef, EventEmitter,
|
|
2
|
+
import { PipeTransform, TemplateRef, OnInit, OnDestroy, ViewContainerRef, EmbeddedViewRef, ElementRef, EventEmitter, OnChanges, Renderer2, NgZone, ChangeDetectorRef, AfterViewChecked, SimpleChanges } from '@angular/core';
|
|
3
3
|
import * as i5 from '@angular/forms';
|
|
4
|
-
import { ControlValueAccessor, Validator,
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
declare class ListItem {
|
|
8
|
-
[key: string]: any;
|
|
9
|
-
id: number;
|
|
10
|
-
itemName: string;
|
|
11
|
-
}
|
|
12
|
-
declare class MyException {
|
|
13
|
-
status: number;
|
|
14
|
-
body: any;
|
|
15
|
-
constructor(status: number, body: any);
|
|
16
|
-
}
|
|
4
|
+
import { ControlValueAccessor, Validator, UntypedFormControl } from '@angular/forms';
|
|
5
|
+
import { Observable, Subject, Subscription } from 'rxjs';
|
|
6
|
+
import * as i1 from '@angular/common';
|
|
17
7
|
|
|
18
8
|
interface DropdownSettings {
|
|
19
|
-
singleSelection
|
|
20
|
-
text
|
|
21
|
-
enableCheckAll
|
|
22
|
-
selectAllText
|
|
23
|
-
unSelectAllText
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
9
|
+
singleSelection?: boolean;
|
|
10
|
+
text?: string;
|
|
11
|
+
enableCheckAll?: boolean;
|
|
12
|
+
selectAllText?: string;
|
|
13
|
+
unSelectAllText?: string;
|
|
14
|
+
filterSelectAllText?: string;
|
|
15
|
+
filterUnSelectAllText?: string;
|
|
16
|
+
enableFilterSelectAll?: boolean;
|
|
17
|
+
enableSearchFilter?: boolean;
|
|
18
|
+
searchBy?: string[];
|
|
19
|
+
maxHeight?: number;
|
|
20
|
+
badgeShowLimit?: number;
|
|
21
|
+
classes?: string;
|
|
28
22
|
limitSelection?: number;
|
|
29
23
|
disabled?: boolean;
|
|
30
|
-
searchPlaceholderText
|
|
24
|
+
searchPlaceholderText?: string;
|
|
31
25
|
groupBy?: string;
|
|
32
26
|
showCheckbox?: boolean;
|
|
33
|
-
noDataLabel
|
|
27
|
+
noDataLabel?: string;
|
|
34
28
|
searchAutofocus?: boolean;
|
|
35
29
|
lazyLoading?: boolean;
|
|
36
30
|
labelKey?: string;
|
|
31
|
+
primaryKey?: string;
|
|
37
32
|
theme?: string;
|
|
38
33
|
skin?: string;
|
|
34
|
+
position?: string;
|
|
35
|
+
loading?: boolean;
|
|
36
|
+
selectGroup?: boolean;
|
|
37
|
+
addNewItemOnFilter?: boolean;
|
|
38
|
+
addNewButtonText?: string;
|
|
39
|
+
escapeToClose?: boolean;
|
|
40
|
+
autoPosition?: boolean;
|
|
39
41
|
clearAll?: boolean;
|
|
42
|
+
tagToBody?: boolean;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
declare class DataService {
|
|
46
|
+
filteredData: any;
|
|
47
|
+
private subject;
|
|
48
|
+
setData(data: any): void;
|
|
49
|
+
getData(): Observable<any>;
|
|
50
|
+
getFilteredData(): any;
|
|
51
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataService, never>;
|
|
52
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DataService>;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare class ListFilterPipe implements PipeTransform {
|
|
56
|
+
private ds;
|
|
57
|
+
filteredList: any;
|
|
58
|
+
constructor(ds: DataService);
|
|
59
|
+
transform(items: any[], filter: any, searchBy: any): any[];
|
|
60
|
+
applyFilter(item: any, filter: any, searchBy: any): boolean;
|
|
61
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListFilterPipe, never>;
|
|
62
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<ListFilterPipe, "listFilter", false>;
|
|
40
63
|
}
|
|
41
64
|
|
|
42
65
|
declare class Item {
|
|
@@ -51,6 +74,12 @@ declare class Badge {
|
|
|
51
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<Badge, never>;
|
|
52
75
|
static ɵcmp: i0.ɵɵComponentDeclaration<Badge, "c-badge", never, {}, {}, ["template"], never, false, never>;
|
|
53
76
|
}
|
|
77
|
+
declare class Search {
|
|
78
|
+
template: TemplateRef<any>;
|
|
79
|
+
constructor();
|
|
80
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Search, never>;
|
|
81
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Search, "c-search", never, {}, {}, ["template"], never, false, never>;
|
|
82
|
+
}
|
|
54
83
|
declare class TemplateRenderer implements OnInit, OnDestroy {
|
|
55
84
|
viewContainer: ViewContainerRef;
|
|
56
85
|
data: any;
|
|
@@ -62,6 +91,11 @@ declare class TemplateRenderer implements OnInit, OnDestroy {
|
|
|
62
91
|
static ɵfac: i0.ɵɵFactoryDeclaration<TemplateRenderer, never>;
|
|
63
92
|
static ɵcmp: i0.ɵɵComponentDeclaration<TemplateRenderer, "c-templateRenderer", never, { "data": { "alias": "data"; "required": false; }; "item": { "alias": "item"; "required": false; }; }, {}, never, never, false, never>;
|
|
64
93
|
}
|
|
94
|
+
declare class CIcon {
|
|
95
|
+
name: any;
|
|
96
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CIcon, never>;
|
|
97
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CIcon, "c-icon", never, { "name": { "alias": "name"; "required": false; }; }, {}, never, never, false, never>;
|
|
98
|
+
}
|
|
65
99
|
|
|
66
100
|
declare class ClickOutsideDirective {
|
|
67
101
|
private _elementRef;
|
|
@@ -88,36 +122,237 @@ declare class styleDirective {
|
|
|
88
122
|
static ɵfac: i0.ɵɵFactoryDeclaration<styleDirective, never>;
|
|
89
123
|
static ɵdir: i0.ɵɵDirectiveDeclaration<styleDirective, "[styleProp]", never, { "styleVal": { "alias": "styleProp"; "required": false; }; }, {}, never, never, false, never>;
|
|
90
124
|
}
|
|
125
|
+
declare class setPosition implements OnInit, OnChanges {
|
|
126
|
+
el: ElementRef;
|
|
127
|
+
height: number;
|
|
128
|
+
constructor(el: ElementRef);
|
|
129
|
+
ngOnInit(): void;
|
|
130
|
+
ngOnChanges(): void;
|
|
131
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<setPosition, never>;
|
|
132
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<setPosition, "[setPosition]", never, { "height": { "alias": "setPosition"; "required": false; }; }, {}, never, never, false, never>;
|
|
133
|
+
}
|
|
91
134
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
135
|
+
interface VirtualScrollerDefaultOptions {
|
|
136
|
+
scrollThrottlingTime: number;
|
|
137
|
+
scrollDebounceTime: number;
|
|
138
|
+
scrollAnimationTime: number;
|
|
139
|
+
scrollbarWidth?: number;
|
|
140
|
+
scrollbarHeight?: number;
|
|
141
|
+
checkResizeInterval: number;
|
|
142
|
+
resizeBypassRefreshThreshold: number;
|
|
143
|
+
modifyOverflowStyleOfParentScroll: boolean;
|
|
144
|
+
stripedTable: boolean;
|
|
97
145
|
}
|
|
98
146
|
|
|
99
|
-
|
|
147
|
+
interface IPageInfo {
|
|
148
|
+
startIndex: number;
|
|
149
|
+
endIndex: number;
|
|
150
|
+
scrollStartPosition: number;
|
|
151
|
+
scrollEndPosition: number;
|
|
152
|
+
startIndexWithBuffer: number;
|
|
153
|
+
endIndexWithBuffer: number;
|
|
154
|
+
maxScrollPosition: number;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
interface IViewport extends IPageInfo {
|
|
158
|
+
padding: number;
|
|
159
|
+
scrollLength: number;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
interface WrapGroupDimension {
|
|
163
|
+
childWidth: number;
|
|
164
|
+
childHeight: number;
|
|
165
|
+
items: any[];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
interface WrapGroupDimensions {
|
|
169
|
+
numberOfKnownWrapGroupChildSizes: number;
|
|
170
|
+
sumOfKnownWrapGroupChildWidths: number;
|
|
171
|
+
sumOfKnownWrapGroupChildHeights: number;
|
|
172
|
+
maxChildSizePerWrapGroup: WrapGroupDimension[];
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
interface IDimensions {
|
|
176
|
+
itemCount: number;
|
|
177
|
+
itemsPerWrapGroup: number;
|
|
178
|
+
wrapGroupsPerPage: number;
|
|
179
|
+
itemsPerPage: number;
|
|
180
|
+
pageCount_fractional: number;
|
|
181
|
+
childWidth: number;
|
|
182
|
+
childHeight: number;
|
|
183
|
+
scrollLength: number;
|
|
184
|
+
viewportLength: number;
|
|
185
|
+
maxScrollPosition: number;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
declare class VirtualScrollerComponent implements OnInit, OnChanges, OnDestroy {
|
|
189
|
+
protected readonly element: ElementRef;
|
|
190
|
+
protected readonly renderer: Renderer2;
|
|
191
|
+
protected readonly zone: NgZone;
|
|
192
|
+
protected changeDetectorRef: ChangeDetectorRef;
|
|
193
|
+
viewPortItems: any[];
|
|
194
|
+
window: Window & typeof globalThis;
|
|
195
|
+
get viewPortInfo(): IPageInfo;
|
|
196
|
+
executeRefreshOutsideAngularZone: boolean;
|
|
197
|
+
protected _enableUnequalChildrenSizes: boolean;
|
|
198
|
+
get enableUnequalChildrenSizes(): boolean;
|
|
199
|
+
set enableUnequalChildrenSizes(value: boolean);
|
|
200
|
+
useMarginInsteadOfTranslate: boolean;
|
|
201
|
+
modifyOverflowStyleOfParentScroll: boolean;
|
|
202
|
+
stripedTable: boolean;
|
|
203
|
+
scrollbarWidth: number;
|
|
204
|
+
scrollbarHeight: number;
|
|
205
|
+
childWidth: number;
|
|
206
|
+
childHeight: number;
|
|
207
|
+
ssrChildWidth: number;
|
|
208
|
+
ssrChildHeight: number;
|
|
209
|
+
ssrViewportWidth: number;
|
|
210
|
+
ssrViewportHeight: number;
|
|
211
|
+
protected _bufferAmount: number;
|
|
212
|
+
get bufferAmount(): number;
|
|
213
|
+
set bufferAmount(value: number);
|
|
214
|
+
scrollAnimationTime: number;
|
|
215
|
+
resizeBypassRefreshThreshold: number;
|
|
216
|
+
protected _scrollThrottlingTime: number;
|
|
217
|
+
get scrollThrottlingTime(): number;
|
|
218
|
+
set scrollThrottlingTime(value: number);
|
|
219
|
+
protected _scrollDebounceTime: number;
|
|
220
|
+
get scrollDebounceTime(): number;
|
|
221
|
+
set scrollDebounceTime(value: number);
|
|
222
|
+
protected onScroll: () => void;
|
|
223
|
+
protected updateOnScrollFunction(): void;
|
|
224
|
+
protected checkScrollElementResizedTimer: number;
|
|
225
|
+
protected _checkResizeInterval: number;
|
|
226
|
+
get checkResizeInterval(): number;
|
|
227
|
+
set checkResizeInterval(value: number);
|
|
228
|
+
protected _items: any[];
|
|
229
|
+
get items(): any[];
|
|
230
|
+
set items(value: any[]);
|
|
231
|
+
compareItems: (item1: any, item2: any) => boolean;
|
|
232
|
+
protected _horizontal: boolean;
|
|
233
|
+
get horizontal(): boolean;
|
|
234
|
+
set horizontal(value: boolean);
|
|
235
|
+
protected revertParentOverscroll(): void;
|
|
236
|
+
protected oldParentScrollOverflow: {
|
|
237
|
+
x: string;
|
|
238
|
+
y: string;
|
|
239
|
+
};
|
|
240
|
+
protected _parentScroll: Element | Window;
|
|
241
|
+
get parentScroll(): Element | Window;
|
|
242
|
+
set parentScroll(value: Element | Window);
|
|
243
|
+
vsUpdate: EventEmitter<any[]>;
|
|
244
|
+
vsChange: EventEmitter<IPageInfo>;
|
|
245
|
+
vsStart: EventEmitter<IPageInfo>;
|
|
246
|
+
vsEnd: EventEmitter<IPageInfo>;
|
|
247
|
+
protected contentElementRef: ElementRef;
|
|
248
|
+
protected invisiblePaddingElementRef: ElementRef;
|
|
249
|
+
protected headerElementRef: ElementRef;
|
|
250
|
+
protected containerElementRef: ElementRef;
|
|
251
|
+
ngOnInit(): void;
|
|
252
|
+
ngOnDestroy(): void;
|
|
253
|
+
ngOnChanges(changes: any): void;
|
|
254
|
+
ngDoCheck(): void;
|
|
255
|
+
refresh(): void;
|
|
256
|
+
invalidateAllCachedMeasurements(): void;
|
|
257
|
+
invalidateCachedMeasurementForItem(item: any): void;
|
|
258
|
+
invalidateCachedMeasurementAtIndex(index: number): void;
|
|
259
|
+
scrollInto(item: any, alignToBeginning?: boolean, additionalOffset?: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
260
|
+
scrollToIndex(index: number, alignToBeginning?: boolean, additionalOffset?: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
261
|
+
protected scrollToIndex_internal(index: number, alignToBeginning?: boolean, additionalOffset?: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
262
|
+
scrollToPosition(scrollPosition: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
263
|
+
protected isAngularUniversalSSR: boolean;
|
|
264
|
+
constructor(element: ElementRef, renderer: Renderer2, zone: NgZone, changeDetectorRef: ChangeDetectorRef, platformId: Object, options: VirtualScrollerDefaultOptions);
|
|
265
|
+
protected getElementSize(element: HTMLElement): ClientRect;
|
|
266
|
+
protected previousScrollBoundingRect: ClientRect;
|
|
267
|
+
protected checkScrollElementResized(): void;
|
|
268
|
+
protected _invisiblePaddingProperty: any;
|
|
269
|
+
protected _offsetType: any;
|
|
270
|
+
protected _scrollType: any;
|
|
271
|
+
protected _pageOffsetType: any;
|
|
272
|
+
protected _childScrollDim: any;
|
|
273
|
+
protected _translateDir: any;
|
|
274
|
+
protected _marginDir: any;
|
|
275
|
+
protected updateDirection(): void;
|
|
276
|
+
protected debounce(func: Function, wait: number): Function;
|
|
277
|
+
protected throttleTrailing(func: Function, wait: number): Function;
|
|
278
|
+
protected calculatedScrollbarWidth: number;
|
|
279
|
+
protected calculatedScrollbarHeight: number;
|
|
280
|
+
protected padding: number;
|
|
281
|
+
protected previousViewPort: IViewport;
|
|
282
|
+
protected currentTween: {
|
|
283
|
+
stop: () => void;
|
|
284
|
+
} | undefined;
|
|
285
|
+
protected cachedItemsLength: number;
|
|
286
|
+
protected disposeScrollHandler: () => void | undefined;
|
|
287
|
+
protected disposeResizeHandler: () => void | undefined;
|
|
288
|
+
protected refresh_internal(itemsArrayModified: boolean, refreshCompletedCallback?: () => void, maxRunTimes?: number): void;
|
|
289
|
+
protected getScrollElement(): HTMLElement;
|
|
290
|
+
protected addScrollEventHandlers(): void;
|
|
291
|
+
protected removeScrollEventHandlers(): void;
|
|
292
|
+
protected getElementsOffset(): number;
|
|
293
|
+
protected countItemsPerWrapGroup(): number;
|
|
294
|
+
protected getScrollStartPosition(): number;
|
|
295
|
+
protected minMeasuredChildWidth: number;
|
|
296
|
+
protected minMeasuredChildHeight: number;
|
|
297
|
+
protected wrapGroupDimensions: WrapGroupDimensions;
|
|
298
|
+
protected resetWrapGroupDimensions(): void;
|
|
299
|
+
protected calculateDimensions(): IDimensions;
|
|
300
|
+
protected cachedPageSize: number;
|
|
301
|
+
protected previousScrollNumberElements: number;
|
|
302
|
+
protected calculatePadding(arrayStartIndexWithBuffer: number, dimensions: IDimensions): number;
|
|
303
|
+
protected calculatePageInfo(scrollPosition: number, dimensions: IDimensions): IPageInfo;
|
|
304
|
+
protected calculateViewport(): IViewport;
|
|
305
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VirtualScrollerComponent, [null, null, null, null, null, { optional: true; }]>;
|
|
306
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VirtualScrollerComponent, "virtual-scroller,[virtualScroller]", ["virtualScroller"], { "executeRefreshOutsideAngularZone": { "alias": "executeRefreshOutsideAngularZone"; "required": false; }; "enableUnequalChildrenSizes": { "alias": "enableUnequalChildrenSizes"; "required": false; }; "useMarginInsteadOfTranslate": { "alias": "useMarginInsteadOfTranslate"; "required": false; }; "modifyOverflowStyleOfParentScroll": { "alias": "modifyOverflowStyleOfParentScroll"; "required": false; }; "stripedTable": { "alias": "stripedTable"; "required": false; }; "scrollbarWidth": { "alias": "scrollbarWidth"; "required": false; }; "scrollbarHeight": { "alias": "scrollbarHeight"; "required": false; }; "childWidth": { "alias": "childWidth"; "required": false; }; "childHeight": { "alias": "childHeight"; "required": false; }; "ssrChildWidth": { "alias": "ssrChildWidth"; "required": false; }; "ssrChildHeight": { "alias": "ssrChildHeight"; "required": false; }; "ssrViewportWidth": { "alias": "ssrViewportWidth"; "required": false; }; "ssrViewportHeight": { "alias": "ssrViewportHeight"; "required": false; }; "bufferAmount": { "alias": "bufferAmount"; "required": false; }; "scrollAnimationTime": { "alias": "scrollAnimationTime"; "required": false; }; "resizeBypassRefreshThreshold": { "alias": "resizeBypassRefreshThreshold"; "required": false; }; "scrollThrottlingTime": { "alias": "scrollThrottlingTime"; "required": false; }; "scrollDebounceTime": { "alias": "scrollDebounceTime"; "required": false; }; "checkResizeInterval": { "alias": "checkResizeInterval"; "required": false; }; "items": { "alias": "items"; "required": false; }; "compareItems": { "alias": "compareItems"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "parentScroll": { "alias": "parentScroll"; "required": false; }; }, { "vsUpdate": "vsUpdate"; "vsChange": "vsChange"; "vsStart": "vsStart"; "vsEnd": "vsEnd"; }, ["headerElementRef", "containerElementRef"], ["*"], false, never>;
|
|
307
|
+
}
|
|
308
|
+
declare class VirtualScrollerModule {
|
|
309
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VirtualScrollerModule, never>;
|
|
310
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<VirtualScrollerModule, [typeof VirtualScrollerComponent], [typeof i1.CommonModule], [typeof VirtualScrollerComponent]>;
|
|
311
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<VirtualScrollerModule>;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
declare class AngularMultiSelect implements OnInit, ControlValueAccessor, OnChanges, Validator, AfterViewChecked, OnDestroy {
|
|
100
315
|
_elementRef: ElementRef;
|
|
101
|
-
|
|
316
|
+
private cdr;
|
|
317
|
+
private filterPipe;
|
|
318
|
+
data: Array<any>;
|
|
102
319
|
settings: DropdownSettings;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
320
|
+
loading: boolean;
|
|
321
|
+
onSelect: EventEmitter<any>;
|
|
322
|
+
onDeSelect: EventEmitter<any>;
|
|
323
|
+
onSelectAll: EventEmitter<Array<any>>;
|
|
324
|
+
onDeSelectAll: EventEmitter<Array<any>>;
|
|
107
325
|
onOpen: EventEmitter<any>;
|
|
108
326
|
onClose: EventEmitter<any>;
|
|
327
|
+
onScrollToEnd: EventEmitter<any>;
|
|
328
|
+
onFilterSelectAll: EventEmitter<Array<any>>;
|
|
329
|
+
onFilterDeSelectAll: EventEmitter<Array<any>>;
|
|
330
|
+
onAddFilterNewItem: EventEmitter<any>;
|
|
331
|
+
onGroupSelect: EventEmitter<any>;
|
|
332
|
+
onGroupDeSelect: EventEmitter<any>;
|
|
109
333
|
itemTempl: Item;
|
|
110
334
|
badgeTempl: Badge;
|
|
335
|
+
searchTempl: Search;
|
|
111
336
|
searchInput: ElementRef;
|
|
112
|
-
|
|
337
|
+
selectedListElem: ElementRef;
|
|
338
|
+
dropdownListElem: ElementRef;
|
|
339
|
+
stacklineDropdown: ElementRef;
|
|
340
|
+
onEscapeDown(event: Event): void;
|
|
341
|
+
onScroll(event: any): void;
|
|
342
|
+
virtualdata: any;
|
|
343
|
+
searchTerm$: Subject<string>;
|
|
344
|
+
selectedItems: Array<any>;
|
|
113
345
|
isActive: boolean;
|
|
114
346
|
isSelectAll: boolean;
|
|
115
|
-
|
|
347
|
+
isFilterSelectAll: boolean;
|
|
348
|
+
isInfiniteFilterSelectAll: boolean;
|
|
349
|
+
groupedData: Array<any>;
|
|
116
350
|
filter: any;
|
|
117
351
|
chunkArray: any[];
|
|
118
352
|
scrollTop: any;
|
|
119
353
|
chunkIndex: any[];
|
|
120
354
|
cachedItems: any[];
|
|
355
|
+
groupCachedItems: any[];
|
|
121
356
|
totalRows: any;
|
|
122
357
|
itemHeight: any;
|
|
123
358
|
screenItemsLen: any;
|
|
@@ -127,42 +362,76 @@ declare class AngularMultiSelect implements OnInit, ControlValueAccessor, OnChan
|
|
|
127
362
|
maxBuffer: any;
|
|
128
363
|
lastScrolled: any;
|
|
129
364
|
lastRepaintY: any;
|
|
365
|
+
selectedListHeight: any;
|
|
366
|
+
filterLength: any;
|
|
367
|
+
infiniteFilterLength: any;
|
|
368
|
+
viewPortItems: any;
|
|
369
|
+
item: any;
|
|
370
|
+
dropdownListYOffset: number;
|
|
371
|
+
subscription: Subscription;
|
|
372
|
+
dropDownWidth: number;
|
|
373
|
+
dropDownTop: string | null;
|
|
374
|
+
dropDownBottom: string | null;
|
|
375
|
+
dropDownLeft: number;
|
|
376
|
+
id: any;
|
|
130
377
|
defaultSettings: DropdownSettings;
|
|
378
|
+
randomSize: boolean;
|
|
131
379
|
parseError: boolean;
|
|
132
|
-
|
|
380
|
+
filteredList: any;
|
|
381
|
+
virtualScroollInit: boolean;
|
|
382
|
+
private virtualScroller;
|
|
383
|
+
isDisabledItemPresent: boolean;
|
|
384
|
+
constructor(_elementRef: ElementRef, cdr: ChangeDetectorRef, filterPipe: ListFilterPipe);
|
|
385
|
+
ngOnInit(): void;
|
|
133
386
|
getThemeName(): string;
|
|
134
387
|
getDropdownClasses(): string;
|
|
135
|
-
|
|
388
|
+
onKeyUp(evt: any): void;
|
|
136
389
|
ngOnChanges(changes: SimpleChanges): void;
|
|
137
390
|
ngDoCheck(): void;
|
|
138
391
|
ngAfterViewInit(): void;
|
|
139
|
-
|
|
140
|
-
|
|
392
|
+
ngAfterViewChecked(): void;
|
|
393
|
+
onItemClick(item: any, index: number, evt: Event): void;
|
|
394
|
+
validate(c: UntypedFormControl): any;
|
|
141
395
|
private onTouchedCallback;
|
|
142
396
|
private onChangeCallback;
|
|
143
397
|
writeValue(value: any): void;
|
|
144
398
|
registerOnChange(fn: any): void;
|
|
145
399
|
registerOnTouched(fn: any): void;
|
|
146
|
-
trackByFn(index: number, item:
|
|
147
|
-
isSelected(clickedItem:
|
|
148
|
-
addSelected(item:
|
|
149
|
-
removeSelected(clickedItem:
|
|
150
|
-
toggleDropdown(evt: any):
|
|
400
|
+
trackByFn(index: number, item: any): any;
|
|
401
|
+
isSelected(clickedItem: any): boolean;
|
|
402
|
+
addSelected(item: any): void;
|
|
403
|
+
removeSelected(clickedItem: any): void;
|
|
404
|
+
toggleDropdown(evt: any): void;
|
|
405
|
+
openDropdown(): void;
|
|
151
406
|
closeDropdown(): void;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
407
|
+
closeDropdownOnClickOut(): void;
|
|
408
|
+
toggleSelectAll(event: any): void;
|
|
409
|
+
filterGroupedList(): void;
|
|
410
|
+
toggleFilterSelectAll(): void;
|
|
411
|
+
toggleInfiniteFilterSelectAll(): void;
|
|
412
|
+
clearSearch(): void;
|
|
413
|
+
onFilterChange(data: any): void;
|
|
414
|
+
cloneArray(arr: any): any;
|
|
415
|
+
updateGroupInfo(item: any): void;
|
|
416
|
+
transformData(arr: Array<any>, field: any): Array<any>;
|
|
157
417
|
filterInfiniteList(evt: any): void;
|
|
418
|
+
resetInfiniteSearch(): void;
|
|
419
|
+
onScrollEnd(e: any): void;
|
|
420
|
+
ngOnDestroy(): void;
|
|
421
|
+
selectGroup(item: any): void;
|
|
422
|
+
addFilterNewItem(): void;
|
|
423
|
+
calculateDropdownDirection(): void;
|
|
424
|
+
openTowardsTop(value: boolean): void;
|
|
425
|
+
clearSelection(e?: any): void;
|
|
426
|
+
filteritems(evt: any): void;
|
|
158
427
|
static ɵfac: i0.ɵɵFactoryDeclaration<AngularMultiSelect, never>;
|
|
159
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AngularMultiSelect, "angular-multiselect, angular2-multiselect", never, { "data": { "alias": "data"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; }, { "onSelect": "onSelect"; "onDeSelect": "onDeSelect"; "onSelectAll": "onSelectAll"; "onDeSelectAll": "onDeSelectAll"; "onOpen": "onOpen"; "onClose": "onClose"; }, ["itemTempl", "badgeTempl"], never, false, never>;
|
|
428
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AngularMultiSelect, "angular-multiselect, angular2-multiselect", never, { "data": { "alias": "data"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "onSelect": "onSelect"; "onDeSelect": "onDeSelect"; "onSelectAll": "onSelectAll"; "onDeSelectAll": "onDeSelectAll"; "onOpen": "onOpen"; "onClose": "onClose"; "onScrollToEnd": "onScrollToEnd"; "onFilterSelectAll": "onFilterSelectAll"; "onFilterDeSelectAll": "onFilterDeSelectAll"; "onAddFilterNewItem": "onAddFilterNewItem"; "onGroupSelect": "onGroupSelect"; "onGroupDeSelect": "onGroupDeSelect"; }, ["itemTempl", "badgeTempl", "searchTempl"], never, false, never>;
|
|
160
429
|
}
|
|
161
430
|
declare class AngularMultiSelectModule {
|
|
162
431
|
static ɵfac: i0.ɵɵFactoryDeclaration<AngularMultiSelectModule, never>;
|
|
163
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AngularMultiSelectModule, [typeof AngularMultiSelect, typeof ClickOutsideDirective, typeof ScrollDirective, typeof styleDirective, typeof ListFilterPipe, typeof Item, typeof TemplateRenderer, typeof Badge], [typeof
|
|
432
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AngularMultiSelectModule, [typeof AngularMultiSelect, typeof ClickOutsideDirective, typeof ScrollDirective, typeof styleDirective, typeof ListFilterPipe, typeof Item, typeof TemplateRenderer, typeof Badge, typeof Search, typeof setPosition, typeof CIcon], [typeof i1.CommonModule, typeof i5.FormsModule, typeof VirtualScrollerModule], [typeof AngularMultiSelect, typeof ClickOutsideDirective, typeof ScrollDirective, typeof styleDirective, typeof ListFilterPipe, typeof Item, typeof TemplateRenderer, typeof Badge, typeof Search, typeof setPosition, typeof CIcon]>;
|
|
164
433
|
static ɵinj: i0.ɵɵInjectorDeclaration<AngularMultiSelectModule>;
|
|
165
434
|
}
|
|
166
435
|
|
|
167
|
-
export { AngularMultiSelect, AngularMultiSelectModule, Badge, ClickOutsideDirective, Item, ListFilterPipe,
|
|
436
|
+
export { AngularMultiSelect, AngularMultiSelectModule, Badge, CIcon, ClickOutsideDirective, Item, ListFilterPipe, ScrollDirective, Search, TemplateRenderer, setPosition, styleDirective };
|
|
168
437
|
export type { DropdownSettings };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stackline-angular-multiselect-dropdown.mjs","sources":["../../src/lib/multiselect.model.ts","../../src/lib/clickOutside.ts","../../src/lib/list-filter.ts","../../src/lib/menu-item.ts","../../src/lib/multiselect.component.ts","../../src/stackline-angular-multiselect-dropdown.ts"],"sourcesContent":["export class ListItem{\n [key: string]: any;\n id: number;\n itemName: string\n}\nexport class MyException {\n\tstatus : number;\n\tbody : any;\n\tconstructor(status : number, body : any) {\n\t\tthis.status = status;\n\t\tthis.body = body;\n\t}\n\t\n}\n","import {Directive, ElementRef, Output, EventEmitter, HostListener, Input} from '@angular/core';\n\n@Directive({\n standalone: false,\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n constructor(private _elementRef: ElementRef) {\n }\n\n @Output()\n public clickOutside = new EventEmitter<Event>();\n\n @HostListener('document:click', ['$event', '$event.target'])\n @HostListener('document:touchstart', ['$event', '$event.target'])\n public onClick(event: Event, targetElement: EventTarget | null): void {\n if (!targetElement) {\n return;\n }\n\n const clickedInside = this._elementRef.nativeElement.contains(targetElement as Node);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n}\n\n@Directive({\n standalone: false,\n selector: '[scroll]'\n})\nexport class ScrollDirective {\n constructor(private _elementRef: ElementRef) {\n }\n\n @Output()\n public scroll = new EventEmitter<Event>();\n\n @HostListener('scroll', ['$event'])\n public onClick(event: Event): void {\n this.scroll.emit(event);\n }\n}\n@Directive({\n standalone: false,\n selector: '[styleProp]'\n})\nexport class styleDirective {\n\n constructor(private el: ElementRef) {\n\n }\n\n @Input('styleProp') styleVal: number;\n\n ngOnInit() {\n\n this.el.nativeElement.style.top = this.styleVal;\n }\n ngOnChanges(): void {\n this.el.nativeElement.style.top = this.styleVal;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { ListItem } from './multiselect.model';\n\n@Pipe({\n standalone: false,\n name: 'listFilter',\n pure: false\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(items: ListItem[], filter: any): ListItem[] {\n if (!items || !filter) {\n return items;\n }\n return items.filter((item: any) => this.applyFilter(item, filter));\n }\n applyFilter(item: any, filter: any): boolean {\n let found = false;\n for (var prop in item) {\n if (filter) {\n if (item[prop].toString().toLowerCase().indexOf(filter.toLowerCase()) >= 0) {\n found = true;\n }\n }\n else\n found = true;\n }\n return found;\n }\n}\n","import { Component, OnInit, OnDestroy, NgModule, TemplateRef, AfterContentInit, ContentChild, EmbeddedViewRef, OnChanges, ViewContainerRef, ViewEncapsulation, Input, Output, EventEmitter, ElementRef, AfterViewInit, Pipe, PipeTransform } from '@angular/core';\nimport { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: false,\n selector: 'c-item',\n template: ``\n})\n\nexport class Item { \n\n @ContentChild(TemplateRef, { static: false }) template: TemplateRef<any>\n constructor() { \n }\n\n}\n\n@Component({\n standalone: false,\n selector: 'c-badge',\n template: ``\n})\n\nexport class Badge { \n\n @ContentChild(TemplateRef, { static: false }) template: TemplateRef<any>\n constructor() { \n }\n\n}\n\n@Component({\n standalone: false,\n selector: 'c-templateRenderer',\n template: ``\n})\n\nexport class TemplateRenderer implements OnInit, OnDestroy { \n\n @Input() data: any\n @Input() item: any\n view: EmbeddedViewRef<any>;\n\n constructor(public viewContainer: ViewContainerRef) { \n }\n ngOnInit() {\n this.view = this.viewContainer.createEmbeddedView(this.data.template, {\n '\\$implicit': this.data,\n 'item':this.item\n });\n }\n\t\n ngOnDestroy() {\n\t\tthis.view.destroy();\n\t}\n\n}\n","import { Component, OnInit, NgModule, SimpleChanges, OnChanges, ViewEncapsulation, ContentChild, ViewChild, forwardRef, Input, Output, EventEmitter, ElementRef, AfterViewInit, Pipe, PipeTransform } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ControlValueAccessor, NG_VALIDATORS, Validator, FormControl } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ListItem, MyException } from './multiselect.model';\nimport { DropdownSettings } from './multiselect.interface';\nimport { ClickOutsideDirective, ScrollDirective, styleDirective } from './clickOutside';\nimport { ListFilterPipe } from './list-filter';\nimport { Item, Badge, TemplateRenderer } from './menu-item';\n\nexport const DROPDOWN_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AngularMultiSelect),\n multi: true\n};\nexport const DROPDOWN_CONTROL_VALIDATION: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AngularMultiSelect),\n multi: true,\n}\nconst noop = () => {\n};\n\n@Component({\n standalone: false,\n selector: 'angular-multiselect, angular2-multiselect',\n template: \"<div class=\\\"stackline-dropdown\\\" [ngClass]=\\\"getDropdownClasses()\\\" (clickOutside)=\\\"closeDropdown()\\\">\\n <div class=\\\"selected-list\\\">\\n <div class=\\\"c-btn\\\" (click)=\\\"toggleDropdown($event)\\\" [ngClass]=\\\"{'disabled': settings.disabled}\\\">\\n <span *ngIf=\\\"selectedItems?.length == 0\\\">{{settings.text}}</span>\\n <span *ngIf=\\\"settings.singleSelection\\\">\\n <span *ngFor=\\\"let item of selectedItems;trackBy: trackByFn;\\\">\\n {{item[settings.labelKey]}}\\n </span>\\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;let k = index\\\" [hidden]=\\\"k > settings.badgeShowLimit-1\\\">\\n <span *ngIf=\\\"!badgeTempl\\\" class=\\\"c-label\\\">{{item[settings.labelKey]}}</span>\\n <span *ngIf=\\\"badgeTempl\\\" class=\\\"c-label\\\">\\n <c-templateRenderer [data]=\\\"badgeTempl\\\" [item]=\\\"item\\\"></c-templateRenderer>\\n </span>\\n <span class=\\\"fa fa-remove\\\" (click)=\\\"onItemClick(item,k,$event)\\\"></span>\\n </div>\\n </div> \\n <span class=\\\"countplaceholder\\\" *ngIf=\\\"selectedItems?.length > settings.badgeShowLimit\\\">+{{selectedItems?.length - settings.badgeShowLimit }}</span>\\n <span class=\\\"fa\\\" [ngClass]=\\\"{'fa-angle-down': !isActive,'fa-angle-up':isActive}\\\"></span>\\n </div> \\n </div>\\n <div class=\\\"dropdown-list\\\" [hidden]=\\\"!isActive\\\">\\n <div class=\\\"arrow-up arrow-2\\\"></div>\\n <div class=\\\"arrow-up\\\"></div>\\n <div class=\\\"list-area\\\">\\n <div class=\\\"pure-checkbox select-all\\\" *ngIf=\\\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection\\\" (click)=\\\"toggleSelectAll()\\\">\\n <input *ngIf=\\\"settings.showCheckbox\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelectAll\\\" [disabled]=\\\"settings.limitSelection == selectedItems?.length\\\"/>\\n <label>\\n <span [hidden]=\\\"isSelectAll\\\">{{settings.selectAllText}}</span>\\n <span [hidden]=\\\"!isSelectAll\\\">{{settings.unSelectAllText}}</span>\\n </label>\\n </div> \\n <div class=\\\"list-filter\\\" *ngIf=\\\"settings.enableSearchFilter && !settings.lazyLoading\\\">\\n <span class=\\\"fa fa-search\\\"></span>\\n <input #searchInput type=\\\"text\\\" [placeholder]=\\\"settings.searchPlaceholderText\\\" [(ngModel)]=\\\"filter\\\">\\n </div> \\n <div class=\\\"list-filter\\\" *ngIf=\\\"settings.enableSearchFilter && settings.lazyLoading\\\">\\n <span class=\\\"fa fa-search\\\"></span>\\n <input #searchInput type=\\\"text\\\" [placeholder]=\\\"settings.searchPlaceholderText\\\" (keyup)=\\\"filterInfiniteList($event)\\\">\\n </div>\\n <ul *ngIf=\\\"!settings.groupBy\\\" [style.maxHeight] = \\\"settings.maxHeight+'px'\\\" class=\\\"lazyContainer\\\" >\\n <span *ngIf=\\\"itemTempl\\\">\\n <li *ngFor=\\\"let item of data | listFilter:filter; let i = index;\\\" (click)=\\\"onItemClick(item,i,$event)\\\" class=\\\"pure-checkbox\\\">\\n <input *ngIf=\\\"settings.showCheckbox\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected(item)\\\" [disabled]=\\\"settings.limitSelection == selectedItems?.length && !isSelected(item)\\\"/>\\n <label></label>\\n <c-templateRenderer [data]=\\\"itemTempl\\\" [item]=\\\"item\\\"></c-templateRenderer>\\n </li>\\n </span>\\n <span *ngIf=\\\"!itemTempl && !settings.lazyLoading\\\" >\\n <li *ngFor=\\\"let item of data | listFilter:filter; let i = index;\\\" (click)=\\\"onItemClick(item,i,$event)\\\" class=\\\"pure-checkbox\\\">\\n <input *ngIf=\\\"settings.showCheckbox\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected(item)\\\" [disabled]=\\\"settings.limitSelection == selectedItems?.length && !isSelected(item)\\\"/>\\n <label>{{item[settings.labelKey]}}</label>\\n </li>\\n </span>\\n <span *ngIf=\\\"!itemTempl && settings.lazyLoading\\\" >\\n <div [ngStyle]=\\\"{'height':totalHeight+'px'}\\\" style=\\\"position: relative;\\\">\\n\\n \\n <li *ngFor=\\\"let item of chunkArray | listFilter:filter; let i = index;\\\" (click)=\\\"onItemClick(item,i,$event)\\\" style=\\\"position: absolute;width: 100%;\\\" class=\\\"pure-checkbox\\\" [styleProp]=\\\"chunkIndex[i]\\\">\\n <input *ngIf=\\\"settings.showCheckbox\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected(item)\\\" [disabled]=\\\"settings.limitSelection == selectedItems?.length && !isSelected(item)\\\"/>\\n <label>{{item[settings.labelKey]}}</label>\\n </li>\\n </div>\\n </span>\\n </ul>\\n <div *ngIf=\\\"settings.groupBy\\\" [style.maxHeight] = \\\"settings.maxHeight+'px'\\\" style=\\\"overflow: auto;\\\">\\n <ul *ngFor=\\\"let obj of groupedData ; let i = index;\\\" class=\\\"list-grp\\\">\\n <h4 *ngIf=\\\"(obj.value | listFilter:filter ).length > 0\\\">{{obj.key}}</h4>\\n <span *ngIf=\\\"itemTempl\\\" >\\n <li *ngFor=\\\"let item of obj.value | listFilter:filter; let i = index;\\\" (click)=\\\"onItemClick(item,i,$event)\\\" class=\\\"pure-checkbox\\\">\\n <input *ngIf=\\\"settings.showCheckbox\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected(item)\\\" [disabled]=\\\"settings.limitSelection == selectedItems?.length && !isSelected(item)\\\"/>\\n <label></label>\\n <c-templateRenderer [data]=\\\"itemTempl\\\" [item]=\\\"item\\\"></c-templateRenderer>\\n </li>\\n </span>\\n <span *ngIf=\\\"!itemTempl\\\" >\\n <li *ngFor=\\\"let item of obj.value | listFilter:filter; let i = index;\\\" (click)=\\\"onItemClick(item,i,$event)\\\" class=\\\"pure-checkbox\\\">\\n <input *ngIf=\\\"settings.showCheckbox\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected(item)\\\" [disabled]=\\\"settings.limitSelection == selectedItems?.length && !isSelected(item)\\\"/>\\n <label>{{item[settings.labelKey]}}</label>\\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\",\n host: { '[class]': 'defaultSettings.classes' },\n styles: [\".stackline-dropdown {\\n position: relative;\\n}\\n\\n.c-btn {\\n display: inline-block;\\n background: #fff;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n font-size: 14px;\\n color: #333;\\n}\\n\\n.c-btn.disabled {\\n background: #ccc;\\n}\\n\\n.c-btn:focus {\\n outline: none;\\n}\\n\\n.selected-list .c-list {\\n display: flex;\\n flex: 1 1 auto;\\n align-items: center;\\n flex-wrap: wrap;\\n min-width: 0;\\n float: none;\\n padding: 0px;\\n margin: 0px;\\n width: auto;\\n}\\n.selected-list .c-list .c-token {\\n list-style: none;\\n padding: 0px 5px;\\n background: #0079FE;\\n color: #fff;\\n border-radius: 2px;\\n margin-right: 4px;\\n margin-top: 2px;\\n float: left;\\n}\\n.selected-list .c-list .c-token .c-label {\\n display: block;\\n float: left;\\n /*width: 50px;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n overflow: hidden;*/\\n}\\n.selected-list .c-list .c-token .fa-remove {\\n margin-left: 1px;\\n font-size: 12px;\\n}\\n.selected-list .fa-angle-down, .selected-list .fa-angle-up {\\n font-size: 15pt;\\n position: absolute;\\n right: 10px;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.selected-list .countplaceholder {\\n display: inline-flex;\\n flex: 0 0 auto;\\n align-items: center;\\n justify-content: center;\\n align-self: center;\\n margin: 0 0 0 6px;\\n line-height: 1;\\n}\\n.selected-list .c-btn {\\n box-sizing: border-box;\\n width: 100%;\\n box-shadow: 0px 1px 5px #959595;\\n padding: 10px 36px 10px 10px;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n flex-wrap: nowrap;\\n position: relative;\\n}\\n\\n.dropdown-list {\\n position: absolute;\\n padding-top: 14px;\\n width: 100%;\\n z-index: 9999;\\n}\\n.dropdown-list ul {\\n padding: 0px;\\n list-style: none;\\n overflow: auto;\\n margin: 0px;\\n}\\n.dropdown-list ul li {\\n padding: 10px 10px;\\n cursor: pointer;\\n text-align: left;\\n}\\n.dropdown-list ul li:first-child {\\n padding-top: 10px;\\n}\\n.dropdown-list ul li:last-child {\\n padding-bottom: 10px;\\n}\\n.dropdown-list ul li:hover {\\n background: #f5f5f5;\\n}\\n.dropdown-list ::-webkit-scrollbar {\\n width: 8px;\\n}\\n.dropdown-list ::-webkit-scrollbar-thumb {\\n background: #cccccc;\\n border-radius: 5px;\\n}\\n.dropdown-list ::-webkit-scrollbar-track {\\n background: #f2f2f2;\\n}\\n\\n.arrow-up {\\n width: 0;\\n height: 0;\\n border-left: 13px solid transparent;\\n border-right: 13px solid transparent;\\n border-bottom: 15px solid #fff;\\n margin-left: 15px;\\n position: absolute;\\n top: 0;\\n}\\n\\n.arrow-2 {\\n border-bottom: 15px solid #ccc;\\n top: -1px;\\n}\\n\\n.list-area {\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n background: #fff;\\n margin: 0px;\\n box-shadow: 0px 1px 5px #959595;\\n}\\n\\n.select-all {\\n padding: 10px;\\n border-bottom: 1px solid #ccc;\\n text-align: left;\\n}\\n\\n.list-filter {\\n border-bottom: 1px solid #ccc;\\n position: relative;\\n}\\n.list-filter input {\\n border: 0px;\\n width: 100%;\\n height: 35px;\\n padding: 0px 0px 0px 35px;\\n}\\n.list-filter input:focus {\\n outline: none;\\n}\\n.list-filter .fa {\\n position: absolute;\\n top: 10px;\\n left: 13px;\\n color: #888;\\n}\\n\\n.pure-checkbox input[type=checkbox] {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.pure-checkbox input[type=checkbox]:focus + label:before,\\n.pure-checkbox input[type=checkbox]:hover + label:before {\\n border-color: #0079FE;\\n background-color: #f2f2f2;\\n}\\n\\n.pure-checkbox input[type=checkbox]:active + label:before {\\n transition-duration: 0s;\\n}\\n\\n.pure-checkbox input[type=checkbox] + label {\\n position: relative;\\n padding-left: 2em;\\n vertical-align: middle;\\n user-select: none;\\n cursor: pointer;\\n margin: 0px;\\n color: #000;\\n font-weight: 300;\\n}\\n\\n.pure-checkbox input[type=checkbox] + label:before {\\n box-sizing: content-box;\\n content: \\\"\\\";\\n color: #0079FE;\\n position: absolute;\\n top: 50%;\\n left: 0;\\n width: 14px;\\n height: 14px;\\n margin-top: -9px;\\n border: 2px solid #0079FE;\\n text-align: center;\\n transition: all 0.4s ease;\\n}\\n\\n.pure-checkbox input[type=checkbox] + label:after {\\n box-sizing: content-box;\\n content: \\\"\\\";\\n background-color: #0079FE;\\n position: absolute;\\n top: 50%;\\n left: 4px;\\n width: 10px;\\n height: 10px;\\n margin-top: -5px;\\n transform: scale(0);\\n transform-origin: 50%;\\n transition: transform 200ms ease-out;\\n}\\n\\n.pure-checkbox input[type=checkbox]:disabled + label:before {\\n border-color: #cccccc;\\n}\\n\\n.pure-checkbox input[type=checkbox]:disabled:focus + label:before .pure-checkbox input[type=checkbox]:disabled:hover + label:before {\\n background-color: inherit;\\n}\\n\\n.pure-checkbox input[type=checkbox]:disabled:checked + label:before {\\n background-color: #cccccc;\\n}\\n\\n.pure-checkbox input[type=checkbox] + label:after {\\n background-color: transparent;\\n top: 50%;\\n left: 4px;\\n width: 8px;\\n height: 3px;\\n margin-top: -4px;\\n border-style: solid;\\n border-color: #ffffff;\\n border-width: 0 0 3px 3px;\\n border-image: none;\\n transform: rotate(-45deg) scale(0);\\n}\\n\\n.pure-checkbox input[type=checkbox]:checked + label:after {\\n content: \\\"\\\";\\n transform: rotate(-45deg) scale(1);\\n transition: transform 200ms ease-out;\\n}\\n\\n.pure-checkbox input[type=radio]:checked + label:before {\\n background-color: white;\\n}\\n\\n.pure-checkbox input[type=radio]:checked + label:after {\\n transform: scale(1);\\n}\\n\\n.pure-checkbox input[type=radio] + label:before {\\n border-radius: 50%;\\n}\\n\\n.pure-checkbox input[type=checkbox]:checked + label:before {\\n background: #0079FE;\\n}\\n\\n.pure-checkbox input[type=checkbox]:checked + label:after {\\n transform: rotate(-45deg) scale(1);\\n}\\n\\n.list-message {\\n text-align: center;\\n}\\n\\n.list-grp {\\n padding: 0 15px !important;\\n}\\n\\n.list-grp h4 {\\n text-transform: capitalize;\\n margin: 15px 0px 0px 0px;\\n font-size: 14px;\\n font-weight: 700;\\n}\\n\\n.list-grp > li {\\n padding-left: 15px !important;\\n}\\n\\n.stackline-dropdown.theme-material,\\n.stackline-dropdown.theme-dark,\\n.stackline-dropdown.theme-custom {\\n --ms-primary: #3f51b5;\\n --ms-primary-soft: rgba(63, 81, 181, 0.12);\\n --ms-surface: #ffffff;\\n --ms-surface-soft: #f5f7fb;\\n --ms-surface-muted: #e8eaf6;\\n --ms-outline: #c5cae9;\\n --ms-outline-strong: #7986cb;\\n --ms-on-surface: #212121;\\n --ms-on-surface-muted: #5f6368;\\n --ms-chip-bg: #e8eaf6;\\n --ms-chip-text: #303f9f;\\n --ms-chip-remove: #303f9f;\\n --ms-divider: rgba(125, 119, 134, 0.16);\\n --ms-section-bg: rgba(247, 242, 250, 0.76);\\n --ms-selected-text: var(--ms-primary);\\n --ms-shadow: 0 1px 2px rgba(33, 33, 33, 0.16), 0 12px 32px rgba(63, 81, 181, 0.12);\\n --ms-shadow-soft: 0 1px 2px rgba(33, 33, 33, 0.12), 0 4px 12px rgba(33, 33, 33, 0.08);\\n display: block;\\n width: 100%;\\n color: var(--ms-on-surface);\\n font: inherit;\\n}\\n\\n.stackline-dropdown.theme-dark {\\n --ms-primary: #8ab4f8;\\n --ms-primary-soft: rgba(138, 180, 248, 0.18);\\n --ms-surface: #151a23;\\n --ms-surface-soft: #202736;\\n --ms-surface-muted: #111722;\\n --ms-outline: #384456;\\n --ms-outline-strong: #8ab4f8;\\n --ms-on-surface: #edf2f7;\\n --ms-on-surface-muted: #aab6c5;\\n --ms-chip-bg: #263247;\\n --ms-chip-text: #d7e6ff;\\n --ms-chip-remove: #d7e6ff;\\n --ms-divider: rgba(170, 182, 197, 0.18);\\n --ms-section-bg: #101620;\\n --ms-selected-text: #d7e6ff;\\n --ms-shadow: 0 20px 50px rgba(0, 0, 0, 0.42);\\n --ms-shadow-soft: 0 1px 2px rgba(0, 0, 0, 0.45), 0 10px 24px rgba(0, 0, 0, 0.28);\\n}\\n\\n.stackline-dropdown.theme-custom {\\n --ms-primary: var(--stackline-ms-primary, #0f766e);\\n --ms-primary-soft: var(--stackline-ms-primary-soft, rgba(15, 118, 110, 0.14));\\n --ms-surface: var(--stackline-ms-surface, #ffffff);\\n --ms-surface-soft: var(--stackline-ms-surface-soft, #ecfdf5);\\n --ms-surface-muted: var(--stackline-ms-surface-muted, #d1fae5);\\n --ms-outline: var(--stackline-ms-outline, #99f6e4);\\n --ms-outline-strong: var(--stackline-ms-outline-strong, #0f766e);\\n --ms-on-surface: var(--stackline-ms-on-surface, #102a2a);\\n --ms-on-surface-muted: var(--stackline-ms-on-surface-muted, #47615f);\\n --ms-chip-bg: var(--stackline-ms-chip-bg, #ccfbf1);\\n --ms-chip-text: var(--stackline-ms-chip-text, #115e59);\\n --ms-chip-remove: var(--stackline-ms-chip-remove, #115e59);\\n --ms-divider: var(--stackline-ms-divider, rgba(15, 118, 110, 0.16));\\n --ms-section-bg: var(--stackline-ms-section-bg, #f0fdfa);\\n --ms-selected-text: var(--stackline-ms-selected-text, var(--ms-primary));\\n --ms-shadow: var(--stackline-ms-shadow, 0 18px 42px rgba(15, 118, 110, 0.15));\\n --ms-shadow-soft: var(--stackline-ms-shadow-soft, 0 1px 2px rgba(15, 118, 110, 0.16), 0 8px 18px rgba(15, 118, 110, 0.09));\\n}\\n\\n.stackline-dropdown.theme-material .selected-list,\\n.stackline-dropdown.theme-dark .selected-list,\\n.stackline-dropdown.theme-custom .selected-list {\\n width: 100%;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .c-btn,\\n.stackline-dropdown.theme-dark .selected-list .c-btn,\\n.stackline-dropdown.theme-custom .selected-list .c-btn {\\n position: relative;\\n display: flex;\\n align-items: center;\\n flex-wrap: nowrap;\\n gap: 8px;\\n width: 100%;\\n min-height: 56px;\\n padding: 11px 54px 11px 16px;\\n border-radius: 18px;\\n border: 1px solid var(--ms-outline);\\n background: var(--ms-surface);\\n box-shadow: var(--ms-shadow-soft);\\n color: var(--ms-on-surface);\\n cursor: pointer;\\n font-size: inherit;\\n line-height: 1.45;\\n transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease, transform 0.16s ease;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .c-btn:hover,\\n.stackline-dropdown.theme-dark .selected-list .c-btn:hover,\\n.stackline-dropdown.theme-custom .selected-list .c-btn:hover {\\n border-color: var(--ms-outline-strong);\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .c-btn.disabled,\\n.stackline-dropdown.theme-dark .selected-list .c-btn.disabled,\\n.stackline-dropdown.theme-custom .selected-list .c-btn.disabled {\\n background: var(--ms-surface);\\n cursor: not-allowed;\\n opacity: 0.72;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .c-list,\\n.stackline-dropdown.theme-dark .selected-list .c-list,\\n.stackline-dropdown.theme-custom .selected-list .c-list {\\n display: flex;\\n flex: 1 1 auto;\\n flex-wrap: wrap;\\n gap: 8px;\\n width: auto;\\n min-width: 0;\\n margin: 0;\\n padding: 0;\\n float: none;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .c-list .c-token,\\n.stackline-dropdown.theme-dark .selected-list .c-list .c-token,\\n.stackline-dropdown.theme-custom .selected-list .c-list .c-token {\\n position: relative;\\n display: inline-block;\\n vertical-align: middle;\\n min-height: 32px;\\n max-width: 100%;\\n padding: 6px 30px 6px 12px;\\n background: var(--ms-chip-bg);\\n color: var(--ms-chip-text);\\n border-radius: 999px;\\n box-shadow: inset 0 0 0 1px rgba(103, 80, 164, 0.08);\\n line-height: 1.35;\\n white-space: normal;\\n overflow-wrap: anywhere;\\n margin: 0;\\n float: none;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .c-list .c-token .c-label,\\n.stackline-dropdown.theme-dark .selected-list .c-list .c-token .c-label,\\n.stackline-dropdown.theme-custom .selected-list .c-list .c-token .c-label {\\n display: inline-flex;\\n align-items: center;\\n float: none;\\n min-width: 0;\\n max-width: 100%;\\n line-height: 1.3;\\n font-weight: 500;\\n white-space: normal;\\n overflow-wrap: anywhere;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .c-list .c-token .fa-remove,\\n.stackline-dropdown.theme-dark .selected-list .c-list .c-token .fa-remove,\\n.stackline-dropdown.theme-custom .selected-list .c-list .c-token .fa-remove {\\n position: absolute;\\n right: 10px;\\n top: 50%;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 16px;\\n height: 16px;\\n margin-left: 0;\\n transform: translateY(-50%);\\n color: var(--ms-chip-remove);\\n cursor: pointer;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .countplaceholder,\\n.stackline-dropdown.theme-dark .selected-list .countplaceholder,\\n.stackline-dropdown.theme-custom .selected-list .countplaceholder {\\n display: inline-flex;\\n flex: 0 0 auto;\\n align-items: center;\\n justify-content: center;\\n align-self: center;\\n margin: 0;\\n line-height: 1;\\n color: var(--ms-on-surface-muted);\\n font-size: 0.8rem;\\n font-weight: 600;\\n}\\n\\n.stackline-dropdown.theme-material .selected-list .fa-angle-down,\\n.stackline-dropdown.theme-dark .selected-list .fa-angle-down,\\n.stackline-dropdown.theme-custom .selected-list .fa-angle-down,\\n.stackline-dropdown.theme-material .selected-list .fa-angle-up,\\n.stackline-dropdown.theme-dark .selected-list .fa-angle-up,\\n.stackline-dropdown.theme-custom .selected-list .fa-angle-up {\\n position: absolute;\\n top: 50%;\\n right: 16px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 20px;\\n height: 20px;\\n transform: translateY(-50%);\\n color: var(--ms-on-surface-muted);\\n font-size: 15pt;\\n pointer-events: none;\\n}\\n\\n.stackline-dropdown.theme-material .dropdown-list,\\n.stackline-dropdown.theme-dark .dropdown-list,\\n.stackline-dropdown.theme-custom .dropdown-list {\\n position: absolute;\\n width: 100%;\\n padding-top: 8px;\\n z-index: 99999;\\n}\\n\\n.stackline-dropdown.theme-material .arrow-up,\\n.stackline-dropdown.theme-dark .arrow-up,\\n.stackline-dropdown.theme-custom .arrow-up,\\n.stackline-dropdown.theme-material .arrow-down,\\n.stackline-dropdown.theme-dark .arrow-down,\\n.stackline-dropdown.theme-custom .arrow-down,\\n.stackline-dropdown.theme-material .arrow-2,\\n.stackline-dropdown.theme-dark .arrow-2,\\n.stackline-dropdown.theme-custom .arrow-2 {\\n display: none;\\n}\\n\\n.stackline-dropdown.theme-material .list-area,\\n.stackline-dropdown.theme-dark .list-area,\\n.stackline-dropdown.theme-custom .list-area {\\n overflow: hidden;\\n border-radius: 22px;\\n background: var(--ms-surface);\\n border: 1px solid var(--ms-outline);\\n box-shadow: var(--ms-shadow);\\n margin: 0;\\n}\\n\\n.stackline-dropdown.theme-material .select-all,\\n.stackline-dropdown.theme-dark .select-all,\\n.stackline-dropdown.theme-custom .select-all {\\n padding: 10px 14px;\\n border-bottom: 1px solid var(--ms-divider);\\n background: var(--ms-section-bg);\\n text-align: left;\\n}\\n\\n.stackline-dropdown.theme-material .list-filter,\\n.stackline-dropdown.theme-dark .list-filter,\\n.stackline-dropdown.theme-custom .list-filter {\\n position: relative;\\n display: flex;\\n align-items: center;\\n min-height: 52px;\\n padding-left: 48px;\\n padding-right: 44px;\\n border-bottom: 1px solid var(--ms-divider);\\n background: var(--ms-surface);\\n}\\n\\n.stackline-dropdown.theme-material .list-filter input,\\n.stackline-dropdown.theme-dark .list-filter input,\\n.stackline-dropdown.theme-custom .list-filter input {\\n width: 100%;\\n height: 100%;\\n border: 0;\\n background: transparent;\\n color: var(--ms-on-surface);\\n font: inherit;\\n padding: 0;\\n}\\n\\n.stackline-dropdown.theme-material .list-filter input::placeholder,\\n.stackline-dropdown.theme-dark .list-filter input::placeholder,\\n.stackline-dropdown.theme-custom .list-filter input::placeholder {\\n color: var(--ms-on-surface-muted);\\n}\\n\\n.stackline-dropdown.theme-material .list-filter input:focus,\\n.stackline-dropdown.theme-dark .list-filter input:focus,\\n.stackline-dropdown.theme-custom .list-filter input:focus {\\n outline: none;\\n}\\n\\n.stackline-dropdown.theme-material .list-filter .fa,\\n.stackline-dropdown.theme-dark .list-filter .fa,\\n.stackline-dropdown.theme-custom .list-filter .fa {\\n position: absolute;\\n top: 50%;\\n left: 16px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 18px;\\n height: 18px;\\n transform: translateY(-50%);\\n color: var(--ms-on-surface-muted);\\n}\\n\\n.stackline-dropdown.theme-material .dropdown-list ul,\\n.stackline-dropdown.theme-dark .dropdown-list ul,\\n.stackline-dropdown.theme-custom .dropdown-list ul {\\n list-style: none;\\n margin: 0;\\n padding: 8px;\\n overflow: auto;\\n}\\n\\n.stackline-dropdown.theme-material .dropdown-list ul li,\\n.stackline-dropdown.theme-dark .dropdown-list ul li,\\n.stackline-dropdown.theme-custom .dropdown-list ul li {\\n align-items: center;\\n min-height: 0;\\n margin: 4px;\\n padding: 12px 14px;\\n border-radius: 14px;\\n cursor: pointer;\\n text-align: left;\\n line-height: 1.35;\\n transition: background-color 0.16s ease, color 0.16s ease;\\n}\\n\\n.stackline-dropdown.theme-material .dropdown-list ul li:first-child,\\n.stackline-dropdown.theme-dark .dropdown-list ul li:first-child,\\n.stackline-dropdown.theme-custom .dropdown-list ul li:first-child {\\n padding-top: 12px;\\n}\\n\\n.stackline-dropdown.theme-material .dropdown-list ul li:last-child,\\n.stackline-dropdown.theme-dark .dropdown-list ul li:last-child,\\n.stackline-dropdown.theme-custom .dropdown-list ul li:last-child {\\n padding-bottom: 12px;\\n}\\n\\n.stackline-dropdown.theme-material .dropdown-list ul li:hover,\\n.stackline-dropdown.theme-dark .dropdown-list ul li:hover,\\n.stackline-dropdown.theme-custom .dropdown-list ul li:hover {\\n background: var(--ms-surface-soft);\\n}\\n\\n.stackline-dropdown.theme-material .pure-checkbox,\\n.stackline-dropdown.theme-dark .pure-checkbox,\\n.stackline-dropdown.theme-custom .pure-checkbox {\\n position: relative;\\n}\\n\\n.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox] + label,\\n.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox] + label,\\n.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox] + label {\\n position: relative;\\n display: block;\\n width: 100%;\\n margin: 0;\\n padding-left: 32px;\\n color: inherit;\\n cursor: pointer;\\n font-weight: 500;\\n user-select: none;\\n}\\n\\n.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox] + label:before,\\n.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox] + label:before,\\n.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox] + label:before {\\n box-sizing: content-box;\\n content: \\\"\\\";\\n position: absolute;\\n top: 50%;\\n left: 0;\\n width: 16px;\\n height: 16px;\\n margin-top: -10px;\\n border: 2px solid var(--ms-outline-strong);\\n border-radius: 5px;\\n background: var(--ms-surface);\\n transition: border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;\\n}\\n\\n.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox] + label:after,\\n.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox] + label:after,\\n.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox] + label:after {\\n box-sizing: content-box;\\n content: \\\"\\\";\\n position: absolute;\\n top: 50%;\\n left: 5px;\\n width: 8px;\\n height: 3px;\\n margin-top: -4px;\\n border-style: solid;\\n border-color: #ffffff;\\n border-width: 0 0 3px 3px;\\n border-image: none;\\n background: transparent;\\n transform: rotate(-45deg) scale(0);\\n transform-origin: 50%;\\n transition: transform 0.16s ease;\\n}\\n\\n.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:focus + label:before,\\n.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:focus + label:before,\\n.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:focus + label:before,\\n.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:hover + label:before,\\n.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:hover + label:before,\\n.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:hover + label:before {\\n border-color: var(--ms-primary);\\n background: var(--ms-surface-soft);\\n}\\n\\n.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked + label:before,\\n.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked + label:before,\\n.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked + label:before {\\n border-color: var(--ms-primary);\\n background: var(--ms-primary);\\n}\\n\\n.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked + label:after,\\n.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked + label:after,\\n.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked + label:after {\\n transform: rotate(-45deg) scale(1);\\n}\\n\\n.stackline-dropdown.theme-material .list-message,\\n.stackline-dropdown.theme-dark .list-message,\\n.stackline-dropdown.theme-custom .list-message {\\n margin: 0;\\n padding: 20px 14px;\\n color: var(--ms-on-surface-muted);\\n text-align: center;\\n}\\n\"],\n providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION]\n})\n\nexport class AngularMultiSelect implements OnInit, ControlValueAccessor, OnChanges, Validator {\n\n @Input()\n data: Array<ListItem>;\n\n @Input()\n settings: DropdownSettings;\n\n @Output('onSelect')\n onSelect: EventEmitter<ListItem> = new EventEmitter<ListItem>();\n\n @Output('onDeSelect')\n onDeSelect: EventEmitter<ListItem> = new EventEmitter<ListItem>();\n\n @Output('onSelectAll')\n onSelectAll: EventEmitter<Array<ListItem>> = new EventEmitter<Array<ListItem>>();\n\n @Output('onDeSelectAll')\n onDeSelectAll: EventEmitter<Array<ListItem>> = new EventEmitter<Array<ListItem>>();\n\n @Output('onOpen')\n onOpen: EventEmitter<any> = new EventEmitter<any>();\n\n @Output('onClose')\n onClose: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChild(Item, { static: false }) itemTempl: Item;\n @ContentChild(Badge, { static: false }) badgeTempl: Badge;\n\n\n @ViewChild('searchInput', { static: false }) searchInput: ElementRef;\n\n public selectedItems: Array<ListItem>;\n public isActive: boolean = false;\n public isSelectAll: boolean = false;\n public groupedData: Array<ListItem>;\n filter: any;\n public chunkArray:any[];\n public scrollTop:any;\n public chunkIndex:any[] = [];\n public cachedItems:any[] = [];\n public totalRows:any;\n public itemHeight:any = 41.6;\n public screenItemsLen:any;\n public cachedItemsLen:any;\n public totalHeight: any;\n public scroller:any;\n public maxBuffer:any;\n public lastScrolled:any;\n public lastRepaintY: any;\n\n defaultSettings: DropdownSettings = {\n singleSelection: false,\n text: 'Select',\n enableCheckAll: true,\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n enableSearchFilter: false,\n maxHeight: 300,\n badgeShowLimit: 999999999999,\n classes: '',\n disabled: false,\n searchPlaceholderText: 'Search',\n showCheckbox: true,\n noDataLabel: 'No Data Available',\n searchAutofocus: true,\n lazyLoading: false,\n labelKey: 'itemName',\n theme: 'classic',\n skin: 'classic'\n }\n public parseError: boolean;\n constructor(public _elementRef : ElementRef) {\n\n }\n getThemeName(): string {\n let rawTheme: any = 'classic';\n if (this.settings) {\n rawTheme = this.settings.skin || this.settings.theme || 'classic';\n }\n let theme = String(rawTheme).toLowerCase().replace(/[^a-z0-9_-]+/g, '-');\n theme = theme.replace(/^-+|-+$/g, '');\n return theme || 'classic';\n }\n getDropdownClasses(): string {\n let theme = this.getThemeName();\n let className = 'theme-' + theme;\n if (theme !== 'classic' && theme !== 'material' && theme !== 'dark' && theme !== 'custom') {\n className += ' theme-custom';\n }\n if (this.isActive) {\n className += ' is-open';\n }\n if (this.settings && this.settings.disabled) {\n className += ' is-disabled';\n }\n return className;\n }\n ngOnInit() {\n this.settings = Object.assign(this.defaultSettings, this.settings);\n if (this.settings.groupBy) {\n this.groupedData = this.transformData(this.data, this.settings.groupBy);\n }\n this.totalRows = (this.data && this.data.length);\n this.cachedItems = this.data;\n this.screenItemsLen = Math.ceil(this.settings.maxHeight / this.itemHeight);\n this.cachedItemsLen = this.screenItemsLen * 3;\n this.totalHeight = this.itemHeight * this.totalRows;\n this.maxBuffer = this.screenItemsLen * this.itemHeight;\n this.lastScrolled = 0;\n this.renderChunk(0, this.cachedItemsLen / 2);\n }\n ngOnChanges(changes: SimpleChanges) {\n if (changes.data && !changes.data.isFirstChange()) {\n if (this.settings.groupBy) {\n this.groupedData = this.transformData(this.data, this.settings.groupBy);\n if (this.data.length == 0) {\n this.selectedItems = [];\n }\n }\n }\n if (changes.settings && !changes.settings.isFirstChange()) {\n this.settings = Object.assign(this.defaultSettings, this.settings);\n }\n }\n ngDoCheck() {\n if (this.selectedItems) {\n if (this.selectedItems.length == 0 || this.data.length == 0 || this.selectedItems.length < this.data.length) {\n this.isSelectAll = false;\n }\n }\n }\n ngAfterViewInit() {\n if(this.settings.lazyLoading){\n this._elementRef.nativeElement.getElementsByClassName(\"lazyContainer\")[0].addEventListener('scroll', this.onScroll.bind(this));\n }\n }\n onItemClick(item: ListItem, index: number, evt: Event) {\n if (this.settings.disabled) {\n return false;\n }\n\n let found = this.isSelected(item);\n let limit = this.selectedItems.length < this.settings.limitSelection ? true : false;\n\n if (!found) {\n if (this.settings.limitSelection) {\n if (limit) {\n this.addSelected(item);\n this.onSelect.emit(item);\n }\n }\n else {\n this.addSelected(item);\n this.onSelect.emit(item);\n }\n\n }\n else {\n this.removeSelected(item);\n this.onDeSelect.emit(item);\n }\n if (this.isSelectAll || this.data.length > this.selectedItems.length) {\n this.isSelectAll = false;\n }\n if (this.data.length == this.selectedItems.length) {\n this.isSelectAll = true;\n }\n }\n public validate(c: FormControl): any {\n return null;\n }\n private onTouchedCallback: (_: any) => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n writeValue(value: any) {\n if (value !== undefined && value !== null) {\n if (this.settings.singleSelection) {\n try {\n\n if (value.length > 1) {\n this.selectedItems = [value[0]];\n throw new MyException(404, { \"msg\": \"Single Selection Mode, Selected Items cannot have more than one item.\" });\n }\n else {\n this.selectedItems = value;\n }\n }\n catch (e) {\n console.error(e.body.msg);\n }\n\n }\n else {\n if (this.settings.limitSelection) {\n this.selectedItems = value.splice(0, this.settings.limitSelection);\n }\n else {\n this.selectedItems = value;\n }\n if (this.selectedItems.length === this.data.length && this.data.length > 0) {\n this.isSelectAll = true;\n }\n }\n } else {\n this.selectedItems = [];\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n trackByFn(index: number, item: ListItem) {\n return item.id;\n }\n isSelected(clickedItem: ListItem) {\n let found = false;\n this.selectedItems && this.selectedItems.forEach(item => {\n if (clickedItem.id === item.id) {\n found = true;\n }\n });\n return found;\n }\n addSelected(item: ListItem) {\n if (this.settings.singleSelection) {\n this.selectedItems = [];\n this.selectedItems.push(item);\n this.closeDropdown();\n }\n else\n this.selectedItems.push(item);\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n }\n removeSelected(clickedItem: ListItem) {\n this.selectedItems && this.selectedItems.forEach(item => {\n if (clickedItem.id === item.id) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n });\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n }\n toggleDropdown(evt: any) {\n if (this.settings.disabled) {\n return false;\n }\n this.isActive = !this.isActive;\n if (this.isActive) {\n if (this.settings.searchAutofocus && this.settings.enableSearchFilter) {\n setTimeout(() => {\n this.searchInput.nativeElement.focus();\n }, 0);\n }\n this.onOpen.emit(true);\n }\n else {\n this.onClose.emit(false);\n }\n evt.preventDefault();\n }\n closeDropdown() {\n if(this.searchInput){\n this.searchInput.nativeElement.value = \"\";\n this.data = [];\n this.data = this.cachedItems;\n this.totalHeight = this.itemHeight * this.data.length;\n this.totalRows = this.data.length;\n this.updateView(this.scrollTop);\n }\n this.filter = \"\";\n this.isActive = false;\n this.onClose.emit(false);\n }\n toggleSelectAll() {\n if (!this.isSelectAll) {\n this.selectedItems = [];\n this.selectedItems = this.data.slice();\n this.isSelectAll = true;\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n\n this.onSelectAll.emit(this.selectedItems);\n }\n else {\n this.selectedItems = [];\n this.isSelectAll = false;\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n\n this.onDeSelectAll.emit(this.selectedItems);\n }\n }\n transformData(arr: Array<ListItem>, field: any): Array<ListItem> {\n const groupedObj: any = arr.reduce((prev: any, cur: any) => {\n if (!prev[cur[field]]) {\n prev[cur[field]] = [cur];\n } else {\n prev[cur[field]].push(cur);\n }\n return prev;\n }, {});\n const tempArr: any = [];\n Object.keys(groupedObj).map(function (x) {\n tempArr.push({ key: x, value: groupedObj[x] });\n });\n return tempArr;\n }\n renderChunk(fromPos:any, howMany:any) {\n this.chunkArray = [];\n this.chunkIndex = [];\n var finalItem = fromPos + howMany;\n if (finalItem > this.totalRows)\n finalItem = this.totalRows;\n\n for (var i = fromPos; i < finalItem; i++) {\n this.chunkIndex.push((i * this.itemHeight) + 'px');\n this.chunkArray.push(this.data[i]);\n }\n }\n public onScroll(e:any) {\n this.scrollTop = e.target.scrollTop;\n this.updateView(this.scrollTop);\n\n }\n public updateView(scrollTop:any){\n var scrollPos = scrollTop ? scrollTop: 0;\n var first = (scrollPos / this.itemHeight) - this.screenItemsLen;\n var firstTemp = \"\"+first;\n first = parseInt(firstTemp) < 0 ? 0 : parseInt(firstTemp);\n this.renderChunk(first, this.cachedItemsLen);\n this.lastRepaintY = scrollPos;\n }\n public filterInfiniteList(evt: any){\n var filteredElems:Array<any> = [];\n this.data = this.cachedItems.slice();\n if(evt.target.value.toString() != ''){\n this.data.filter(function(el:any){\n for(var prop in el){\n if(el[prop].toString().toLowerCase().indexOf(evt.target.value.toString().toLowerCase()) >=0 ){\n filteredElems.push(el);\n break;\n }\n }\n });\n //this.cachedItems = this.data;\n this.totalHeight = this.itemHeight * filteredElems.length;\n this.totalRows = filteredElems.length;\n this.data = [];\n this.data = filteredElems;\n this.updateView(this.scrollTop);\n }\n else if(evt.target.value.toString() == '' && this.cachedItems.length > 0){\n this.data = [];\n this.data = this.cachedItems;\n this.totalHeight = this.itemHeight * this.data.length;\n this.totalRows = this.data.length;\n this.updateView(this.scrollTop);\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge],\n exports: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge]\n})\nexport class AngularMultiSelectModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|