angular-multiselect3 10.0.0
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/LICENSE +20 -0
- package/README.md +306 -0
- package/esm2022/angular-multiselect.mjs +5 -0
- package/esm2022/lib/clickOutside.mjs +58 -0
- package/esm2022/lib/list-filter.mjs +59 -0
- package/esm2022/lib/menu-item.mjs +352 -0
- package/esm2022/lib/multiselect.component.mjs +1038 -0
- package/esm2022/lib/multiselect.interface.mjs +2 -0
- package/esm2022/lib/multiselect.model.mjs +9 -0
- package/esm2022/lib/multiselect.service.mjs +28 -0
- package/esm2022/lib/virtual-scroll/defaultoptions.mjs +2 -0
- package/esm2022/lib/virtual-scroll/idimension.mjs +2 -0
- package/esm2022/lib/virtual-scroll/ipageinfo.mjs +2 -0
- package/esm2022/lib/virtual-scroll/iviewport.mjs +2 -0
- package/esm2022/lib/virtual-scroll/virtual-scroll.mjs +1162 -0
- package/esm2022/lib/virtual-scroll/wrapgroupdimension.mjs +2 -0
- package/esm2022/lib/virtual-scroll/wrapgroupdimensions.mjs +2 -0
- package/esm2022/public_api.mjs +7 -0
- package/fesm2022/angular-multiselect.mjs +2689 -0
- package/fesm2022/angular-multiselect.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/clickOutside.d.ts +17 -0
- package/lib/list-filter.d.ts +12 -0
- package/lib/menu-item.d.ts +36 -0
- package/lib/multiselect.component.d.ts +134 -0
- package/lib/multiselect.interface.d.ts +34 -0
- package/lib/multiselect.model.d.ts +5 -0
- package/lib/multiselect.service.d.ts +11 -0
- package/lib/virtual-scroll/defaultoptions.d.ts +11 -0
- package/lib/virtual-scroll/idimension.d.ts +12 -0
- package/lib/virtual-scroll/ipageinfo.d.ts +9 -0
- package/lib/virtual-scroll/iviewport.d.ts +5 -0
- package/lib/virtual-scroll/virtual-scroll.d.ts +132 -0
- package/lib/virtual-scroll/wrapgroupdimension.d.ts +5 -0
- package/lib/virtual-scroll/wrapgroupdimensions.d.ts +7 -0
- package/package.json +37 -0
- package/public_api.d.ts +6 -0
- package/themes/dark.theme.scss +113 -0
- package/themes/default.theme.css +107 -0
- package/themes/default.theme.scss +155 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { OnInit, OnDestroy, SimpleChanges, OnChanges, ChangeDetectorRef, AfterViewChecked, EventEmitter, ElementRef } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor, Validator, UntypedFormControl } from '@angular/forms';
|
|
3
|
+
import { DropdownSettings } from './multiselect.interface';
|
|
4
|
+
import { ListFilterPipe } from './list-filter';
|
|
5
|
+
import { Item, Badge, Search } from './menu-item';
|
|
6
|
+
import { Subscription, Subject } from 'rxjs';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./clickOutside";
|
|
9
|
+
import * as i2 from "./list-filter";
|
|
10
|
+
import * as i3 from "./menu-item";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
import * as i5 from "@angular/forms";
|
|
13
|
+
import * as i6 from "./virtual-scroll/virtual-scroll";
|
|
14
|
+
export declare const DROPDOWN_CONTROL_VALUE_ACCESSOR: any;
|
|
15
|
+
export declare const DROPDOWN_CONTROL_VALIDATION: any;
|
|
16
|
+
export declare class AngularMultiSelect implements OnInit, ControlValueAccessor, OnChanges, Validator, AfterViewChecked, OnDestroy {
|
|
17
|
+
_elementRef: ElementRef;
|
|
18
|
+
private cdr;
|
|
19
|
+
private filterPipe;
|
|
20
|
+
data: Array<any>;
|
|
21
|
+
settings: DropdownSettings;
|
|
22
|
+
loading: boolean;
|
|
23
|
+
onSelect: EventEmitter<any>;
|
|
24
|
+
onDeSelect: EventEmitter<any>;
|
|
25
|
+
onSelectAll: EventEmitter<Array<any>>;
|
|
26
|
+
onDeSelectAll: EventEmitter<Array<any>>;
|
|
27
|
+
onOpen: EventEmitter<any>;
|
|
28
|
+
onClose: EventEmitter<any>;
|
|
29
|
+
onScrollToEnd: EventEmitter<any>;
|
|
30
|
+
onFilterSelectAll: EventEmitter<Array<any>>;
|
|
31
|
+
onFilterDeSelectAll: EventEmitter<Array<any>>;
|
|
32
|
+
onAddFilterNewItem: EventEmitter<any>;
|
|
33
|
+
onGroupSelect: EventEmitter<any>;
|
|
34
|
+
onGroupDeSelect: EventEmitter<any>;
|
|
35
|
+
itemTempl: Item;
|
|
36
|
+
badgeTempl: Badge;
|
|
37
|
+
searchTempl: Search;
|
|
38
|
+
searchInput: ElementRef;
|
|
39
|
+
selectedListElem: ElementRef;
|
|
40
|
+
dropdownListElem: ElementRef;
|
|
41
|
+
cuppaDropdown: ElementRef;
|
|
42
|
+
onEscapeDown(event: KeyboardEvent): void;
|
|
43
|
+
onScroll(event: any): void;
|
|
44
|
+
virtualdata: any;
|
|
45
|
+
searchTerm$: Subject<string>;
|
|
46
|
+
selectedItems: Array<any>;
|
|
47
|
+
isActive: boolean;
|
|
48
|
+
isSelectAll: boolean;
|
|
49
|
+
isFilterSelectAll: boolean;
|
|
50
|
+
isInfiniteFilterSelectAll: boolean;
|
|
51
|
+
groupedData: Array<any>;
|
|
52
|
+
filter: any;
|
|
53
|
+
chunkArray: any[];
|
|
54
|
+
scrollTop: any;
|
|
55
|
+
chunkIndex: any[];
|
|
56
|
+
cachedItems: any[];
|
|
57
|
+
groupCachedItems: any[];
|
|
58
|
+
totalRows: any;
|
|
59
|
+
itemHeight: any;
|
|
60
|
+
screenItemsLen: any;
|
|
61
|
+
cachedItemsLen: any;
|
|
62
|
+
totalHeight: any;
|
|
63
|
+
scroller: any;
|
|
64
|
+
maxBuffer: any;
|
|
65
|
+
lastScrolled: any;
|
|
66
|
+
lastRepaintY: any;
|
|
67
|
+
selectedListHeight: any;
|
|
68
|
+
filterLength: any;
|
|
69
|
+
infiniteFilterLength: any;
|
|
70
|
+
viewPortItems: any;
|
|
71
|
+
item: any;
|
|
72
|
+
dropdownListYOffset: number;
|
|
73
|
+
subscription: Subscription;
|
|
74
|
+
dropDownWidth: number;
|
|
75
|
+
dropDownTop: any;
|
|
76
|
+
dropDownBottom: any;
|
|
77
|
+
dropDownLeft: number;
|
|
78
|
+
id: any;
|
|
79
|
+
defaultSettings: DropdownSettings;
|
|
80
|
+
randomSize: boolean;
|
|
81
|
+
parseError: boolean;
|
|
82
|
+
filteredList: any;
|
|
83
|
+
virtualScroollInit: boolean;
|
|
84
|
+
private virtualScroller;
|
|
85
|
+
isDisabledItemPresent: boolean;
|
|
86
|
+
constructor(_elementRef: ElementRef, cdr: ChangeDetectorRef, filterPipe: ListFilterPipe);
|
|
87
|
+
ngOnInit(): void;
|
|
88
|
+
onKeyUp(evt: any): void;
|
|
89
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
90
|
+
ngDoCheck(): void;
|
|
91
|
+
ngAfterViewInit(): void;
|
|
92
|
+
ngAfterViewChecked(): void;
|
|
93
|
+
onItemClick(item: any, index: number, evt: Event): void;
|
|
94
|
+
validate(c: UntypedFormControl): any;
|
|
95
|
+
private onTouchedCallback;
|
|
96
|
+
private onChangeCallback;
|
|
97
|
+
writeValue(value: any): void;
|
|
98
|
+
registerOnChange(fn: any): void;
|
|
99
|
+
registerOnTouched(fn: any): void;
|
|
100
|
+
trackByFn(index: number, item: any): any;
|
|
101
|
+
isSelected(clickedItem: any): boolean;
|
|
102
|
+
addSelected(item: any): void;
|
|
103
|
+
removeSelected(clickedItem: any): void;
|
|
104
|
+
toggleDropdown(evt: any): void;
|
|
105
|
+
openDropdown(): void;
|
|
106
|
+
closeDropdown(): void;
|
|
107
|
+
closeDropdownOnClickOut(): void;
|
|
108
|
+
toggleSelectAll(event: any): void;
|
|
109
|
+
filterGroupedList(): void;
|
|
110
|
+
toggleFilterSelectAll(): void;
|
|
111
|
+
toggleInfiniteFilterSelectAll(): void;
|
|
112
|
+
clearSearch(): void;
|
|
113
|
+
onFilterChange(data: any): void;
|
|
114
|
+
cloneArray(arr: any): any;
|
|
115
|
+
updateGroupInfo(item: any): void;
|
|
116
|
+
transformData(arr: Array<any>, field: any): Array<any>;
|
|
117
|
+
filterInfiniteList(evt: any): void;
|
|
118
|
+
resetInfiniteSearch(): void;
|
|
119
|
+
onScrollEnd(e: any): void;
|
|
120
|
+
ngOnDestroy(): void;
|
|
121
|
+
selectGroup(item: any): void;
|
|
122
|
+
addFilterNewItem(): void;
|
|
123
|
+
calculateDropdownDirection(): void;
|
|
124
|
+
openTowardsTop(value: boolean): void;
|
|
125
|
+
clearSelection(e?: any): void;
|
|
126
|
+
filteritems(evt: any): void;
|
|
127
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AngularMultiSelect, never>;
|
|
128
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AngularMultiSelect, "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>;
|
|
129
|
+
}
|
|
130
|
+
export declare class AngularMultiSelectModule {
|
|
131
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AngularMultiSelectModule, never>;
|
|
132
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AngularMultiSelectModule, [typeof AngularMultiSelect, typeof i1.ClickOutsideDirective, typeof i1.ScrollDirective, typeof i2.ListFilterPipe, typeof i3.Item, typeof i3.TemplateRenderer, typeof i3.Badge, typeof i3.Search, typeof i3.CIcon], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i6.VirtualScrollerModule], [typeof AngularMultiSelect, typeof i1.ClickOutsideDirective, typeof i1.ScrollDirective, typeof i2.ListFilterPipe, typeof i3.Item, typeof i3.TemplateRenderer, typeof i3.Badge, typeof i3.Search, typeof i3.CIcon]>;
|
|
133
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AngularMultiSelectModule>;
|
|
134
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface DropdownSettings {
|
|
2
|
+
singleSelection?: boolean;
|
|
3
|
+
text?: string;
|
|
4
|
+
enableCheckAll?: boolean;
|
|
5
|
+
selectAllText?: string;
|
|
6
|
+
unSelectAllText?: string;
|
|
7
|
+
filterSelectAllText?: string;
|
|
8
|
+
filterUnSelectAllText?: string;
|
|
9
|
+
enableFilterSelectAll?: boolean;
|
|
10
|
+
enableSearchFilter?: boolean;
|
|
11
|
+
searchBy?: string[];
|
|
12
|
+
maxHeight?: number;
|
|
13
|
+
badgeShowLimit?: number;
|
|
14
|
+
classes?: string;
|
|
15
|
+
limitSelection?: number;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
searchPlaceholderText?: string;
|
|
18
|
+
groupBy?: string;
|
|
19
|
+
showCheckbox?: boolean;
|
|
20
|
+
noDataLabel?: string;
|
|
21
|
+
searchAutofocus?: boolean;
|
|
22
|
+
lazyLoading?: boolean;
|
|
23
|
+
labelKey?: string;
|
|
24
|
+
primaryKey?: string;
|
|
25
|
+
position?: string;
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
selectGroup?: boolean;
|
|
28
|
+
addNewItemOnFilter?: boolean;
|
|
29
|
+
addNewButtonText?: string;
|
|
30
|
+
escapeToClose?: boolean;
|
|
31
|
+
autoPosition?: boolean;
|
|
32
|
+
clearAll?: boolean;
|
|
33
|
+
tagToBody?: boolean;
|
|
34
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class DataService {
|
|
4
|
+
filteredData: any;
|
|
5
|
+
private subject;
|
|
6
|
+
setData(data: any): void;
|
|
7
|
+
getData(): Observable<any>;
|
|
8
|
+
getFilteredData(): any;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataService, never>;
|
|
10
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DataService>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface VirtualScrollerDefaultOptions {
|
|
2
|
+
scrollThrottlingTime: number;
|
|
3
|
+
scrollDebounceTime: number;
|
|
4
|
+
scrollAnimationTime: number;
|
|
5
|
+
scrollbarWidth?: number;
|
|
6
|
+
scrollbarHeight?: number;
|
|
7
|
+
checkResizeInterval: number;
|
|
8
|
+
resizeBypassRefreshThreshold: number;
|
|
9
|
+
modifyOverflowStyleOfParentScroll: boolean;
|
|
10
|
+
stripedTable: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface IDimensions {
|
|
2
|
+
itemCount: number;
|
|
3
|
+
itemsPerWrapGroup: number;
|
|
4
|
+
wrapGroupsPerPage: number;
|
|
5
|
+
itemsPerPage: number;
|
|
6
|
+
pageCount_fractional: number;
|
|
7
|
+
childWidth: number;
|
|
8
|
+
childHeight: number;
|
|
9
|
+
scrollLength: number;
|
|
10
|
+
viewportLength: number;
|
|
11
|
+
maxScrollPosition: number;
|
|
12
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { VirtualScrollerDefaultOptions } from './defaultoptions';
|
|
3
|
+
import { IPageInfo } from './ipageinfo';
|
|
4
|
+
import { IViewport } from './iviewport';
|
|
5
|
+
import { WrapGroupDimensions } from './wrapgroupdimensions';
|
|
6
|
+
import { IDimensions } from './idimension';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
export declare function VIRTUAL_SCROLLER_DEFAULT_OPTIONS_FACTORY(): VirtualScrollerDefaultOptions;
|
|
10
|
+
export declare class VirtualScrollerComponent implements OnInit, OnChanges, OnDestroy {
|
|
11
|
+
protected readonly element: ElementRef;
|
|
12
|
+
protected readonly renderer: Renderer2;
|
|
13
|
+
protected readonly zone: NgZone;
|
|
14
|
+
protected changeDetectorRef: ChangeDetectorRef;
|
|
15
|
+
viewPortItems: any[];
|
|
16
|
+
window: Window & typeof globalThis;
|
|
17
|
+
get viewPortInfo(): IPageInfo;
|
|
18
|
+
executeRefreshOutsideAngularZone: boolean;
|
|
19
|
+
protected _enableUnequalChildrenSizes: boolean;
|
|
20
|
+
get enableUnequalChildrenSizes(): boolean;
|
|
21
|
+
set enableUnequalChildrenSizes(value: boolean);
|
|
22
|
+
useMarginInsteadOfTranslate: boolean;
|
|
23
|
+
modifyOverflowStyleOfParentScroll: boolean;
|
|
24
|
+
stripedTable: boolean;
|
|
25
|
+
scrollbarWidth: number;
|
|
26
|
+
scrollbarHeight: number;
|
|
27
|
+
childWidth: number;
|
|
28
|
+
childHeight: number;
|
|
29
|
+
ssrChildWidth: number;
|
|
30
|
+
ssrChildHeight: number;
|
|
31
|
+
ssrViewportWidth: number;
|
|
32
|
+
ssrViewportHeight: number;
|
|
33
|
+
protected _bufferAmount: number;
|
|
34
|
+
get bufferAmount(): number;
|
|
35
|
+
set bufferAmount(value: number);
|
|
36
|
+
scrollAnimationTime: number;
|
|
37
|
+
resizeBypassRefreshThreshold: number;
|
|
38
|
+
protected _scrollThrottlingTime: number;
|
|
39
|
+
get scrollThrottlingTime(): number;
|
|
40
|
+
set scrollThrottlingTime(value: number);
|
|
41
|
+
protected _scrollDebounceTime: number;
|
|
42
|
+
get scrollDebounceTime(): number;
|
|
43
|
+
set scrollDebounceTime(value: number);
|
|
44
|
+
protected onScroll: () => void;
|
|
45
|
+
protected updateOnScrollFunction(): void;
|
|
46
|
+
protected checkScrollElementResizedTimer: number;
|
|
47
|
+
protected _checkResizeInterval: number;
|
|
48
|
+
get checkResizeInterval(): number;
|
|
49
|
+
set checkResizeInterval(value: number);
|
|
50
|
+
protected _items: any[];
|
|
51
|
+
get items(): any[];
|
|
52
|
+
set items(value: any[]);
|
|
53
|
+
compareItems: (item1: any, item2: any) => boolean;
|
|
54
|
+
protected _horizontal: boolean;
|
|
55
|
+
get horizontal(): boolean;
|
|
56
|
+
set horizontal(value: boolean);
|
|
57
|
+
protected revertParentOverscroll(): void;
|
|
58
|
+
protected oldParentScrollOverflow: {
|
|
59
|
+
x: string;
|
|
60
|
+
y: string;
|
|
61
|
+
};
|
|
62
|
+
protected _parentScroll: Element | Window;
|
|
63
|
+
get parentScroll(): Element | Window;
|
|
64
|
+
set parentScroll(value: Element | Window);
|
|
65
|
+
vsUpdate: EventEmitter<any[]>;
|
|
66
|
+
vsChange: EventEmitter<IPageInfo>;
|
|
67
|
+
vsStart: EventEmitter<IPageInfo>;
|
|
68
|
+
vsEnd: EventEmitter<IPageInfo>;
|
|
69
|
+
protected contentElementRef: ElementRef;
|
|
70
|
+
protected invisiblePaddingElementRef: ElementRef;
|
|
71
|
+
protected headerElementRef: ElementRef;
|
|
72
|
+
protected containerElementRef: ElementRef;
|
|
73
|
+
ngOnInit(): void;
|
|
74
|
+
ngOnDestroy(): void;
|
|
75
|
+
ngOnChanges(changes: any): void;
|
|
76
|
+
ngDoCheck(): void;
|
|
77
|
+
refresh(): void;
|
|
78
|
+
invalidateAllCachedMeasurements(): void;
|
|
79
|
+
invalidateCachedMeasurementForItem(item: any): void;
|
|
80
|
+
invalidateCachedMeasurementAtIndex(index: number): void;
|
|
81
|
+
scrollInto(item: any, alignToBeginning?: boolean, additionalOffset?: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
82
|
+
scrollToIndex(index: number, alignToBeginning?: boolean, additionalOffset?: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
83
|
+
protected scrollToIndex_internal(index: number, alignToBeginning?: boolean, additionalOffset?: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
84
|
+
scrollToPosition(scrollPosition: number, animationMilliseconds?: number, animationCompletedCallback?: () => void): void;
|
|
85
|
+
protected isAngularUniversalSSR: boolean;
|
|
86
|
+
constructor(element: ElementRef, renderer: Renderer2, zone: NgZone, changeDetectorRef: ChangeDetectorRef, platformId: Object, options: VirtualScrollerDefaultOptions);
|
|
87
|
+
protected getElementSize(element: HTMLElement): ClientRect;
|
|
88
|
+
protected previousScrollBoundingRect: ClientRect;
|
|
89
|
+
protected checkScrollElementResized(): void;
|
|
90
|
+
protected _invisiblePaddingProperty: any;
|
|
91
|
+
protected _offsetType: any;
|
|
92
|
+
protected _scrollType: any;
|
|
93
|
+
protected _pageOffsetType: any;
|
|
94
|
+
protected _childScrollDim: any;
|
|
95
|
+
protected _translateDir: any;
|
|
96
|
+
protected _marginDir: any;
|
|
97
|
+
protected updateDirection(): void;
|
|
98
|
+
protected debounce(func: Function, wait: number): Function;
|
|
99
|
+
protected throttleTrailing(func: Function, wait: number): Function;
|
|
100
|
+
protected calculatedScrollbarWidth: number;
|
|
101
|
+
protected calculatedScrollbarHeight: number;
|
|
102
|
+
protected padding: number;
|
|
103
|
+
protected previousViewPort: IViewport;
|
|
104
|
+
protected currentTween: any;
|
|
105
|
+
protected cachedItemsLength: number;
|
|
106
|
+
protected disposeScrollHandler: () => void | undefined;
|
|
107
|
+
protected disposeResizeHandler: () => void | undefined;
|
|
108
|
+
protected refresh_internal(itemsArrayModified: boolean, refreshCompletedCallback?: () => void, maxRunTimes?: number): void;
|
|
109
|
+
protected getScrollElement(): HTMLElement;
|
|
110
|
+
protected addScrollEventHandlers(): void;
|
|
111
|
+
protected removeScrollEventHandlers(): void;
|
|
112
|
+
protected getElementsOffset(): number;
|
|
113
|
+
protected countItemsPerWrapGroup(): number;
|
|
114
|
+
protected getScrollStartPosition(): number;
|
|
115
|
+
protected minMeasuredChildWidth: number;
|
|
116
|
+
protected minMeasuredChildHeight: number;
|
|
117
|
+
protected wrapGroupDimensions: WrapGroupDimensions;
|
|
118
|
+
protected resetWrapGroupDimensions(): void;
|
|
119
|
+
protected calculateDimensions(): IDimensions;
|
|
120
|
+
protected cachedPageSize: number;
|
|
121
|
+
protected previousScrollNumberElements: number;
|
|
122
|
+
protected calculatePadding(arrayStartIndexWithBuffer: number, dimensions: IDimensions): number;
|
|
123
|
+
protected calculatePageInfo(scrollPosition: number, dimensions: IDimensions): IPageInfo;
|
|
124
|
+
protected calculateViewport(): IViewport;
|
|
125
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VirtualScrollerComponent, [null, null, null, null, null, { optional: true; }]>;
|
|
126
|
+
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>;
|
|
127
|
+
}
|
|
128
|
+
export declare class VirtualScrollerModule {
|
|
129
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VirtualScrollerModule, never>;
|
|
130
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<VirtualScrollerModule, [typeof VirtualScrollerComponent], [typeof i1.CommonModule], [typeof VirtualScrollerComponent]>;
|
|
131
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<VirtualScrollerModule>;
|
|
132
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WrapGroupDimension } from './wrapgroupdimension';
|
|
2
|
+
export interface WrapGroupDimensions {
|
|
3
|
+
numberOfKnownWrapGroupChildSizes: number;
|
|
4
|
+
sumOfKnownWrapGroupChildWidths: number;
|
|
5
|
+
sumOfKnownWrapGroupChildHeights: number;
|
|
6
|
+
maxChildSizePerWrapGroup: WrapGroupDimension[];
|
|
7
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../node_modules/ng-packagr/package.schema.json",
|
|
3
|
+
"name": "angular-multiselect3",
|
|
4
|
+
"version": "10.0.0",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Pradeep Terli",
|
|
7
|
+
"description": "Angular Multiselct dropdown component library for Angular version 11, 10, 9,8,6,4 ",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"angular 15 multiselect dropdown"
|
|
10
|
+
],
|
|
11
|
+
"peerDependencies": {},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@tweenjs/tween.js": "^17.4.0",
|
|
14
|
+
"tslib": "^2.3.0"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/CuppaLabs/angular2-multiselect-dropdown"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/CuppaLabs/angular2-multiselect-dropdown/issues"
|
|
22
|
+
},
|
|
23
|
+
"module": "fesm2022/angular-multiselect.mjs",
|
|
24
|
+
"typings": "index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
"./package.json": {
|
|
27
|
+
"default": "./package.json"
|
|
28
|
+
},
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./index.d.ts",
|
|
31
|
+
"esm2022": "./esm2022/angular-multiselect.mjs",
|
|
32
|
+
"esm": "./esm2022/angular-multiselect.mjs",
|
|
33
|
+
"default": "./fesm2022/angular-multiselect.mjs"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"sideEffects": false
|
|
37
|
+
}
|
package/public_api.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { AngularMultiSelect } from './lib/multiselect.component';
|
|
2
|
+
export { ClickOutsideDirective, ScrollDirective } from './lib/clickOutside';
|
|
3
|
+
export { ListFilterPipe } from './lib/list-filter';
|
|
4
|
+
export { Item } from './lib/menu-item';
|
|
5
|
+
export { TemplateRenderer, Badge, Search, CIcon } from './lib/menu-item';
|
|
6
|
+
export { AngularMultiSelectModule } from './lib/multiselect.component';
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
|
|
2
|
+
$base-color: #000000;
|
|
3
|
+
$btn-background: #fff;
|
|
4
|
+
$btn-border: #ccc;
|
|
5
|
+
$btn-text-color: #333;
|
|
6
|
+
$btn-arrow: #333;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
$token-background: $base-color;
|
|
10
|
+
$token-text-color: #fff;
|
|
11
|
+
$token-remove-color: #fff;
|
|
12
|
+
|
|
13
|
+
$box-shadow-color: #959595;
|
|
14
|
+
$list-hover-background: #f5f5f5;
|
|
15
|
+
$label-color: #000;
|
|
16
|
+
$selected-background: #e9f4ff;
|
|
17
|
+
|
|
18
|
+
.c-btn{
|
|
19
|
+
background: $btn-background;
|
|
20
|
+
border: 1px solid $btn-border;
|
|
21
|
+
color: $btn-text-color;
|
|
22
|
+
}
|
|
23
|
+
.selected-list{
|
|
24
|
+
.c-list{
|
|
25
|
+
.c-token{
|
|
26
|
+
background: $token-background;
|
|
27
|
+
.c-label{
|
|
28
|
+
color: $token-text-color;
|
|
29
|
+
}
|
|
30
|
+
.c-remove {
|
|
31
|
+
svg {
|
|
32
|
+
fill: $token-remove-color;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
.c-angle-down, .c-angle-up{
|
|
39
|
+
svg {
|
|
40
|
+
fill: $btn-arrow;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
.dropdown-list{
|
|
45
|
+
ul{
|
|
46
|
+
li:hover{
|
|
47
|
+
background: $list-hover-background;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
.arrow-up, .arrow-down {
|
|
52
|
+
border-bottom: 15px solid #fff;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.arrow-2{
|
|
56
|
+
border-bottom: 15px solid #ccc;
|
|
57
|
+
}
|
|
58
|
+
.list-area{
|
|
59
|
+
border: 1px solid #ccc;
|
|
60
|
+
background: #fff;
|
|
61
|
+
box-shadow: 0px 1px 5px $box-shadow-color;
|
|
62
|
+
}
|
|
63
|
+
.select-all{
|
|
64
|
+
border-bottom: 1px solid #ccc;
|
|
65
|
+
}
|
|
66
|
+
.list-filter{
|
|
67
|
+
border-bottom: 1px solid #ccc;
|
|
68
|
+
.c-search{
|
|
69
|
+
svg {
|
|
70
|
+
fill: #888;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
.c-clear {
|
|
74
|
+
svg {
|
|
75
|
+
fill: #888;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.pure-checkbox {
|
|
81
|
+
input[type="checkbox"]:focus + label:before, input[type="checkbox"]:hover + label:before{
|
|
82
|
+
border-color: $base-color;
|
|
83
|
+
background-color: #f2f2f2;
|
|
84
|
+
}
|
|
85
|
+
input[type="checkbox"] + label{
|
|
86
|
+
color: $label-color;
|
|
87
|
+
}
|
|
88
|
+
input[type="checkbox"] + label:before{
|
|
89
|
+
color: $base-color;
|
|
90
|
+
border: 2px solid $base-color;
|
|
91
|
+
}
|
|
92
|
+
input[type="checkbox"] + label:after{
|
|
93
|
+
background-color: $base-color;
|
|
94
|
+
}
|
|
95
|
+
input[type="checkbox"]:disabled + label:before{
|
|
96
|
+
border-color: #cccccc;
|
|
97
|
+
}
|
|
98
|
+
input[type="checkbox"]:disabled:checked + label:before{
|
|
99
|
+
background-color: #cccccc;
|
|
100
|
+
}
|
|
101
|
+
input[type="checkbox"] + label:after{
|
|
102
|
+
border-color: #ffffff;
|
|
103
|
+
}
|
|
104
|
+
input[type="radio"]:checked + label:before{
|
|
105
|
+
background-color: white;
|
|
106
|
+
}
|
|
107
|
+
input[type="checkbox"]:checked + label:before{
|
|
108
|
+
background: $base-color;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
.selected-item{
|
|
112
|
+
background: $selected-background;
|
|
113
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
.mat-toolbar {
|
|
2
|
+
background: #ffffff; }
|
|
3
|
+
|
|
4
|
+
.c-btn {
|
|
5
|
+
background: #fff;
|
|
6
|
+
border: 1px solid #ccc;
|
|
7
|
+
color: #333; }
|
|
8
|
+
|
|
9
|
+
.selected-list .c-list .c-token {
|
|
10
|
+
background: #0079FE; }
|
|
11
|
+
.selected-list .c-list .c-token .c-label {
|
|
12
|
+
color: #fff; }
|
|
13
|
+
.selected-list .c-list .c-token .c-remove svg {
|
|
14
|
+
fill: #fff; }
|
|
15
|
+
|
|
16
|
+
.selected-list .c-angle-down svg, .selected-list .c-angle-up svg {
|
|
17
|
+
fill: #333; }
|
|
18
|
+
|
|
19
|
+
.dropdown-list ul li:hover {
|
|
20
|
+
background: #f5f5f5; }
|
|
21
|
+
|
|
22
|
+
.arrow-up, .arrow-down {
|
|
23
|
+
border-bottom: 15px solid #fff; }
|
|
24
|
+
|
|
25
|
+
.arrow-2 {
|
|
26
|
+
border-bottom: 15px solid #ccc; }
|
|
27
|
+
|
|
28
|
+
.list-area {
|
|
29
|
+
border: 1px solid #ccc;
|
|
30
|
+
background: #fff;
|
|
31
|
+
box-shadow: 0px 1px 5px #959595; }
|
|
32
|
+
|
|
33
|
+
.select-all {
|
|
34
|
+
border-bottom: 1px solid #ccc; }
|
|
35
|
+
|
|
36
|
+
.list-filter {
|
|
37
|
+
border-bottom: 1px solid #ccc; }
|
|
38
|
+
.list-filter .c-search svg {
|
|
39
|
+
fill: #888; }
|
|
40
|
+
.list-filter .c-clear svg {
|
|
41
|
+
fill: #888; }
|
|
42
|
+
|
|
43
|
+
.pure-checkbox input[type="checkbox"]:focus + label:before, .pure-checkbox input[type="checkbox"]:hover + label:before {
|
|
44
|
+
border-color: #0079FE;
|
|
45
|
+
background-color: #f2f2f2; }
|
|
46
|
+
|
|
47
|
+
.pure-checkbox input[type="checkbox"] + label {
|
|
48
|
+
color: #000; }
|
|
49
|
+
|
|
50
|
+
.pure-checkbox input[type="checkbox"] + label:before {
|
|
51
|
+
color: #0079FE;
|
|
52
|
+
border: 1px solid #0079FE; }
|
|
53
|
+
|
|
54
|
+
.pure-checkbox input[type="checkbox"] + label:after {
|
|
55
|
+
background-color: #0079FE; }
|
|
56
|
+
|
|
57
|
+
.pure-checkbox input[type="checkbox"]:disabled + label:before {
|
|
58
|
+
border-color: #cccccc; }
|
|
59
|
+
|
|
60
|
+
.pure-checkbox input[type="checkbox"]:disabled:checked + label:before {
|
|
61
|
+
background-color: #cccccc; }
|
|
62
|
+
|
|
63
|
+
.pure-checkbox input[type="checkbox"] + label:after {
|
|
64
|
+
border-color: #ffffff; }
|
|
65
|
+
|
|
66
|
+
.pure-checkbox input[type="radio"]:checked + label:before {
|
|
67
|
+
background-color: white; }
|
|
68
|
+
|
|
69
|
+
.pure-checkbox input[type="checkbox"]:checked + label:before {
|
|
70
|
+
background: #0079FE; }
|
|
71
|
+
|
|
72
|
+
.single-select-mode .pure-checkbox input[type="checkbox"]:focus + label:before, .single-select-mode .pure-checkbox input[type="checkbox"]:hover + label:before {
|
|
73
|
+
border-color: #0079FE;
|
|
74
|
+
background-color: #f2f2f2; }
|
|
75
|
+
|
|
76
|
+
.single-select-mode .pure-checkbox input[type="checkbox"] + label {
|
|
77
|
+
color: #000; }
|
|
78
|
+
|
|
79
|
+
.single-select-mode .pure-checkbox input[type="checkbox"] + label:before {
|
|
80
|
+
color: transparent !important;
|
|
81
|
+
border: 0px solid #0079FE; }
|
|
82
|
+
|
|
83
|
+
.single-select-mode .pure-checkbox input[type="checkbox"] + label:after {
|
|
84
|
+
background-color: transparent !important; }
|
|
85
|
+
|
|
86
|
+
.single-select-mode .pure-checkbox input[type="checkbox"]:disabled + label:before {
|
|
87
|
+
border-color: #cccccc; }
|
|
88
|
+
|
|
89
|
+
.single-select-mode .pure-checkbox input[type="checkbox"]:disabled:checked + label:before {
|
|
90
|
+
background-color: #cccccc; }
|
|
91
|
+
|
|
92
|
+
.single-select-mode .pure-checkbox input[type="checkbox"] + label:after {
|
|
93
|
+
border-color: #0079FE; }
|
|
94
|
+
|
|
95
|
+
.single-select-mode .pure-checkbox input[type="radio"]:checked + label:before {
|
|
96
|
+
background-color: white; }
|
|
97
|
+
|
|
98
|
+
.single-select-mode .pure-checkbox input[type="checkbox"]:checked + label:before {
|
|
99
|
+
background: none !important; }
|
|
100
|
+
|
|
101
|
+
.selected-item {
|
|
102
|
+
background: #e9f4ff; }
|
|
103
|
+
|
|
104
|
+
.btn-iceblue {
|
|
105
|
+
background: #0079FE;
|
|
106
|
+
border: 1px solid #ccc;
|
|
107
|
+
color: #fff; }
|