@stackline/vue-multiselect-dropdown 2.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.
@@ -0,0 +1,301 @@
1
+ type PrimitiveItem = string | number | boolean;
2
+ type DropdownItem = PrimitiveItem | Record<string, any>;
3
+ interface DropdownSettings<T = DropdownItem> {
4
+ singleSelection?: boolean;
5
+ text?: string;
6
+ enableCheckAll?: boolean;
7
+ selectAllText?: string;
8
+ unSelectAllText?: string;
9
+ filterSelectAllText?: string;
10
+ filterUnSelectAllText?: string;
11
+ enableFilterSelectAll?: boolean;
12
+ enableSearchFilter?: boolean;
13
+ searchBy?: string[];
14
+ maxHeight?: number;
15
+ badgeShowLimit?: number;
16
+ classes?: string;
17
+ limitSelection?: number;
18
+ disabled?: boolean;
19
+ searchPlaceholderText?: string;
20
+ groupBy?: string | ((item: T) => string);
21
+ showCheckbox?: boolean;
22
+ noDataLabel?: string;
23
+ searchAutofocus?: boolean;
24
+ lazyLoading?: boolean;
25
+ labelKey?: string;
26
+ primaryKey?: string;
27
+ position?: 'top' | 'bottom';
28
+ autoPosition?: boolean;
29
+ loading?: boolean;
30
+ selectGroup?: boolean;
31
+ addNewItemOnFilter?: boolean;
32
+ addNewButtonText?: string;
33
+ escapeToClose?: boolean;
34
+ clearAll?: boolean;
35
+ closeDropDownOnSelection?: boolean;
36
+ tagToBody?: boolean;
37
+ appendToBody?: boolean;
38
+ /** @deprecated Use `skin` instead. Kept as a compatibility alias. */
39
+ theme?: 'classic' | 'material' | 'dark' | 'custom' | 'brand' | string;
40
+ skin?: 'classic' | 'material' | 'dark' | 'custom' | 'brand' | string;
41
+ ariaLabel?: string;
42
+ listboxAriaLabel?: string;
43
+ searchAriaLabel?: string;
44
+ clearSearchAriaLabel?: string;
45
+ clearAllAriaLabel?: string;
46
+ removeItemAriaLabel?: string | ((item: T) => string);
47
+ openDropdownAriaLabel?: string;
48
+ closeDropdownAriaLabel?: string;
49
+ loadingText?: string;
50
+ }
51
+ interface DropdownRenderContext<T = DropdownItem> {
52
+ item: T;
53
+ label: string;
54
+ selected: boolean;
55
+ disabled: boolean;
56
+ query: string;
57
+ toggle: () => void;
58
+ remove: () => void;
59
+ }
60
+ interface VueMultiselectDropdownHandle<T = DropdownItem> {
61
+ openDropdown: () => void;
62
+ closeDropdown: () => void;
63
+ clearSelection: () => void;
64
+ focusSearch: () => void;
65
+ selectAll: () => void;
66
+ deSelectAll: () => void;
67
+ getSelectedItems: () => T[];
68
+ }
69
+ interface VueMultiselectPlugin {
70
+ install: (Vue: any) => void;
71
+ }
72
+
73
+ type CreateElement = (...args: any[]) => any;
74
+ type GroupedItems<T> = Array<{
75
+ name: string;
76
+ items: T[];
77
+ }>;
78
+ declare const VueMultiselectDropdown: {
79
+ name: string;
80
+ model: {
81
+ prop: string;
82
+ event: string;
83
+ };
84
+ props: {
85
+ data: {
86
+ type: ArrayConstructor;
87
+ default: () => never[];
88
+ };
89
+ value: {
90
+ type: ArrayConstructor;
91
+ default: undefined;
92
+ };
93
+ selectedItems: {
94
+ type: ArrayConstructor;
95
+ default: undefined;
96
+ };
97
+ defaultSelectedItems: {
98
+ type: ArrayConstructor;
99
+ default: () => never[];
100
+ };
101
+ settings: {
102
+ type: ObjectConstructor;
103
+ default: () => {};
104
+ };
105
+ disabled: {
106
+ type: BooleanConstructor;
107
+ default: boolean;
108
+ };
109
+ renderItem: {
110
+ type: FunctionConstructor;
111
+ default: undefined;
112
+ };
113
+ renderBadge: {
114
+ type: FunctionConstructor;
115
+ default: undefined;
116
+ };
117
+ renderEmptyState: {
118
+ type: FunctionConstructor;
119
+ default: undefined;
120
+ };
121
+ };
122
+ data(this: any): {
123
+ isOpen: boolean;
124
+ query: string;
125
+ focusedKey: string;
126
+ internalSelected: any;
127
+ menuStyle: {};
128
+ bodyListMaxHeight: number | undefined;
129
+ menuPlaceholder: Comment | null;
130
+ menuAttachedToBody: boolean;
131
+ effectivePosition: string;
132
+ instanceId: string;
133
+ };
134
+ computed: {
135
+ resolvedSettings(this: any): any;
136
+ selected(this: any): any;
137
+ filteredItems(this: any): any;
138
+ groupedItems(this: any): GroupedItems<DropdownItem>;
139
+ visibleSelected(this: any): any;
140
+ hiddenSelectedCount(this: any): number;
141
+ openDirection(this: any): "up" | "down";
142
+ shouldAppendToBody(this: any): boolean;
143
+ };
144
+ watch: {
145
+ isOpen(this: any, value: boolean): void;
146
+ selected(this: any): void;
147
+ filteredItems(this: any): void;
148
+ settings: {
149
+ deep: boolean;
150
+ handler(this: any): void;
151
+ };
152
+ };
153
+ mounted(this: any): void;
154
+ beforeDestroy(this: any): void;
155
+ methods: {
156
+ getLabel(this: any, item: DropdownItem): string;
157
+ getKey(this: any, item: DropdownItem): string;
158
+ isSelected(this: any, item: DropdownItem): any;
159
+ visibleSelectableItems(this: any): any;
160
+ emitSelection(this: any, items: DropdownItem[]): void;
161
+ openDropdown(this: any): void;
162
+ closeDropdown(this: any): void;
163
+ toggleDropdown(this: any): void;
164
+ focusSearch(this: any): void;
165
+ clearSelection(this: any, event?: Event): void;
166
+ selectAll(this: any, event?: Event): void;
167
+ deSelectAll(this: any, event?: Event): void;
168
+ selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
169
+ toggleItem(this: any, item: DropdownItem, event?: Event): void;
170
+ removeItem(this: any, item: DropdownItem, event?: Event): void;
171
+ addFilterItem(this: any, event: Event): void;
172
+ onTriggerKeydown(this: any, event: KeyboardEvent): void;
173
+ onListKeydown(this: any, event: KeyboardEvent): void;
174
+ focusFirstOption(this: any): void;
175
+ focusLastOption(this: any): void;
176
+ focusOption(this: any, item: DropdownItem): void;
177
+ onInlineKeydown(this: any, event: KeyboardEvent): void;
178
+ onTriggerClick(this: any, event: Event): void;
179
+ onDocumentClick(this: any, event: MouseEvent): void;
180
+ onDocumentKeydown(this: any, event: KeyboardEvent): void;
181
+ onListScroll(this: any, event: Event): void;
182
+ attachMenuToBody(this: any): void;
183
+ restoreMenuToComponent(this: any): void;
184
+ updateMenuPosition(this: any): void;
185
+ };
186
+ render(this: any, h: CreateElement): any;
187
+ };
188
+ declare const StacklineVueMultiselect: {
189
+ name: string;
190
+ model: {
191
+ prop: string;
192
+ event: string;
193
+ };
194
+ props: {
195
+ data: {
196
+ type: ArrayConstructor;
197
+ default: () => never[];
198
+ };
199
+ value: {
200
+ type: ArrayConstructor;
201
+ default: undefined;
202
+ };
203
+ selectedItems: {
204
+ type: ArrayConstructor;
205
+ default: undefined;
206
+ };
207
+ defaultSelectedItems: {
208
+ type: ArrayConstructor;
209
+ default: () => never[];
210
+ };
211
+ settings: {
212
+ type: ObjectConstructor;
213
+ default: () => {};
214
+ };
215
+ disabled: {
216
+ type: BooleanConstructor;
217
+ default: boolean;
218
+ };
219
+ renderItem: {
220
+ type: FunctionConstructor;
221
+ default: undefined;
222
+ };
223
+ renderBadge: {
224
+ type: FunctionConstructor;
225
+ default: undefined;
226
+ };
227
+ renderEmptyState: {
228
+ type: FunctionConstructor;
229
+ default: undefined;
230
+ };
231
+ };
232
+ data(this: any): {
233
+ isOpen: boolean;
234
+ query: string;
235
+ focusedKey: string;
236
+ internalSelected: any;
237
+ menuStyle: {};
238
+ bodyListMaxHeight: number | undefined;
239
+ menuPlaceholder: Comment | null;
240
+ menuAttachedToBody: boolean;
241
+ effectivePosition: string;
242
+ instanceId: string;
243
+ };
244
+ computed: {
245
+ resolvedSettings(this: any): any;
246
+ selected(this: any): any;
247
+ filteredItems(this: any): any;
248
+ groupedItems(this: any): GroupedItems<DropdownItem>;
249
+ visibleSelected(this: any): any;
250
+ hiddenSelectedCount(this: any): number;
251
+ openDirection(this: any): "up" | "down";
252
+ shouldAppendToBody(this: any): boolean;
253
+ };
254
+ watch: {
255
+ isOpen(this: any, value: boolean): void;
256
+ selected(this: any): void;
257
+ filteredItems(this: any): void;
258
+ settings: {
259
+ deep: boolean;
260
+ handler(this: any): void;
261
+ };
262
+ };
263
+ mounted(this: any): void;
264
+ beforeDestroy(this: any): void;
265
+ methods: {
266
+ getLabel(this: any, item: DropdownItem): string;
267
+ getKey(this: any, item: DropdownItem): string;
268
+ isSelected(this: any, item: DropdownItem): any;
269
+ visibleSelectableItems(this: any): any;
270
+ emitSelection(this: any, items: DropdownItem[]): void;
271
+ openDropdown(this: any): void;
272
+ closeDropdown(this: any): void;
273
+ toggleDropdown(this: any): void;
274
+ focusSearch(this: any): void;
275
+ clearSelection(this: any, event?: Event): void;
276
+ selectAll(this: any, event?: Event): void;
277
+ deSelectAll(this: any, event?: Event): void;
278
+ selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
279
+ toggleItem(this: any, item: DropdownItem, event?: Event): void;
280
+ removeItem(this: any, item: DropdownItem, event?: Event): void;
281
+ addFilterItem(this: any, event: Event): void;
282
+ onTriggerKeydown(this: any, event: KeyboardEvent): void;
283
+ onListKeydown(this: any, event: KeyboardEvent): void;
284
+ focusFirstOption(this: any): void;
285
+ focusLastOption(this: any): void;
286
+ focusOption(this: any, item: DropdownItem): void;
287
+ onInlineKeydown(this: any, event: KeyboardEvent): void;
288
+ onTriggerClick(this: any, event: Event): void;
289
+ onDocumentClick(this: any, event: MouseEvent): void;
290
+ onDocumentKeydown(this: any, event: KeyboardEvent): void;
291
+ onListScroll(this: any, event: Event): void;
292
+ attachMenuToBody(this: any): void;
293
+ restoreMenuToComponent(this: any): void;
294
+ updateMenuPosition(this: any): void;
295
+ };
296
+ render(this: any, h: CreateElement): any;
297
+ };
298
+
299
+ declare const VueMultiselect: VueMultiselectPlugin;
300
+
301
+ export { type DropdownItem, type DropdownRenderContext, type DropdownSettings, type PrimitiveItem, StacklineVueMultiselect, VueMultiselect, VueMultiselectDropdown, type VueMultiselectDropdownHandle, type VueMultiselectPlugin, VueMultiselect as default };
@@ -0,0 +1,301 @@
1
+ type PrimitiveItem = string | number | boolean;
2
+ type DropdownItem = PrimitiveItem | Record<string, any>;
3
+ interface DropdownSettings<T = DropdownItem> {
4
+ singleSelection?: boolean;
5
+ text?: string;
6
+ enableCheckAll?: boolean;
7
+ selectAllText?: string;
8
+ unSelectAllText?: string;
9
+ filterSelectAllText?: string;
10
+ filterUnSelectAllText?: string;
11
+ enableFilterSelectAll?: boolean;
12
+ enableSearchFilter?: boolean;
13
+ searchBy?: string[];
14
+ maxHeight?: number;
15
+ badgeShowLimit?: number;
16
+ classes?: string;
17
+ limitSelection?: number;
18
+ disabled?: boolean;
19
+ searchPlaceholderText?: string;
20
+ groupBy?: string | ((item: T) => string);
21
+ showCheckbox?: boolean;
22
+ noDataLabel?: string;
23
+ searchAutofocus?: boolean;
24
+ lazyLoading?: boolean;
25
+ labelKey?: string;
26
+ primaryKey?: string;
27
+ position?: 'top' | 'bottom';
28
+ autoPosition?: boolean;
29
+ loading?: boolean;
30
+ selectGroup?: boolean;
31
+ addNewItemOnFilter?: boolean;
32
+ addNewButtonText?: string;
33
+ escapeToClose?: boolean;
34
+ clearAll?: boolean;
35
+ closeDropDownOnSelection?: boolean;
36
+ tagToBody?: boolean;
37
+ appendToBody?: boolean;
38
+ /** @deprecated Use `skin` instead. Kept as a compatibility alias. */
39
+ theme?: 'classic' | 'material' | 'dark' | 'custom' | 'brand' | string;
40
+ skin?: 'classic' | 'material' | 'dark' | 'custom' | 'brand' | string;
41
+ ariaLabel?: string;
42
+ listboxAriaLabel?: string;
43
+ searchAriaLabel?: string;
44
+ clearSearchAriaLabel?: string;
45
+ clearAllAriaLabel?: string;
46
+ removeItemAriaLabel?: string | ((item: T) => string);
47
+ openDropdownAriaLabel?: string;
48
+ closeDropdownAriaLabel?: string;
49
+ loadingText?: string;
50
+ }
51
+ interface DropdownRenderContext<T = DropdownItem> {
52
+ item: T;
53
+ label: string;
54
+ selected: boolean;
55
+ disabled: boolean;
56
+ query: string;
57
+ toggle: () => void;
58
+ remove: () => void;
59
+ }
60
+ interface VueMultiselectDropdownHandle<T = DropdownItem> {
61
+ openDropdown: () => void;
62
+ closeDropdown: () => void;
63
+ clearSelection: () => void;
64
+ focusSearch: () => void;
65
+ selectAll: () => void;
66
+ deSelectAll: () => void;
67
+ getSelectedItems: () => T[];
68
+ }
69
+ interface VueMultiselectPlugin {
70
+ install: (Vue: any) => void;
71
+ }
72
+
73
+ type CreateElement = (...args: any[]) => any;
74
+ type GroupedItems<T> = Array<{
75
+ name: string;
76
+ items: T[];
77
+ }>;
78
+ declare const VueMultiselectDropdown: {
79
+ name: string;
80
+ model: {
81
+ prop: string;
82
+ event: string;
83
+ };
84
+ props: {
85
+ data: {
86
+ type: ArrayConstructor;
87
+ default: () => never[];
88
+ };
89
+ value: {
90
+ type: ArrayConstructor;
91
+ default: undefined;
92
+ };
93
+ selectedItems: {
94
+ type: ArrayConstructor;
95
+ default: undefined;
96
+ };
97
+ defaultSelectedItems: {
98
+ type: ArrayConstructor;
99
+ default: () => never[];
100
+ };
101
+ settings: {
102
+ type: ObjectConstructor;
103
+ default: () => {};
104
+ };
105
+ disabled: {
106
+ type: BooleanConstructor;
107
+ default: boolean;
108
+ };
109
+ renderItem: {
110
+ type: FunctionConstructor;
111
+ default: undefined;
112
+ };
113
+ renderBadge: {
114
+ type: FunctionConstructor;
115
+ default: undefined;
116
+ };
117
+ renderEmptyState: {
118
+ type: FunctionConstructor;
119
+ default: undefined;
120
+ };
121
+ };
122
+ data(this: any): {
123
+ isOpen: boolean;
124
+ query: string;
125
+ focusedKey: string;
126
+ internalSelected: any;
127
+ menuStyle: {};
128
+ bodyListMaxHeight: number | undefined;
129
+ menuPlaceholder: Comment | null;
130
+ menuAttachedToBody: boolean;
131
+ effectivePosition: string;
132
+ instanceId: string;
133
+ };
134
+ computed: {
135
+ resolvedSettings(this: any): any;
136
+ selected(this: any): any;
137
+ filteredItems(this: any): any;
138
+ groupedItems(this: any): GroupedItems<DropdownItem>;
139
+ visibleSelected(this: any): any;
140
+ hiddenSelectedCount(this: any): number;
141
+ openDirection(this: any): "up" | "down";
142
+ shouldAppendToBody(this: any): boolean;
143
+ };
144
+ watch: {
145
+ isOpen(this: any, value: boolean): void;
146
+ selected(this: any): void;
147
+ filteredItems(this: any): void;
148
+ settings: {
149
+ deep: boolean;
150
+ handler(this: any): void;
151
+ };
152
+ };
153
+ mounted(this: any): void;
154
+ beforeDestroy(this: any): void;
155
+ methods: {
156
+ getLabel(this: any, item: DropdownItem): string;
157
+ getKey(this: any, item: DropdownItem): string;
158
+ isSelected(this: any, item: DropdownItem): any;
159
+ visibleSelectableItems(this: any): any;
160
+ emitSelection(this: any, items: DropdownItem[]): void;
161
+ openDropdown(this: any): void;
162
+ closeDropdown(this: any): void;
163
+ toggleDropdown(this: any): void;
164
+ focusSearch(this: any): void;
165
+ clearSelection(this: any, event?: Event): void;
166
+ selectAll(this: any, event?: Event): void;
167
+ deSelectAll(this: any, event?: Event): void;
168
+ selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
169
+ toggleItem(this: any, item: DropdownItem, event?: Event): void;
170
+ removeItem(this: any, item: DropdownItem, event?: Event): void;
171
+ addFilterItem(this: any, event: Event): void;
172
+ onTriggerKeydown(this: any, event: KeyboardEvent): void;
173
+ onListKeydown(this: any, event: KeyboardEvent): void;
174
+ focusFirstOption(this: any): void;
175
+ focusLastOption(this: any): void;
176
+ focusOption(this: any, item: DropdownItem): void;
177
+ onInlineKeydown(this: any, event: KeyboardEvent): void;
178
+ onTriggerClick(this: any, event: Event): void;
179
+ onDocumentClick(this: any, event: MouseEvent): void;
180
+ onDocumentKeydown(this: any, event: KeyboardEvent): void;
181
+ onListScroll(this: any, event: Event): void;
182
+ attachMenuToBody(this: any): void;
183
+ restoreMenuToComponent(this: any): void;
184
+ updateMenuPosition(this: any): void;
185
+ };
186
+ render(this: any, h: CreateElement): any;
187
+ };
188
+ declare const StacklineVueMultiselect: {
189
+ name: string;
190
+ model: {
191
+ prop: string;
192
+ event: string;
193
+ };
194
+ props: {
195
+ data: {
196
+ type: ArrayConstructor;
197
+ default: () => never[];
198
+ };
199
+ value: {
200
+ type: ArrayConstructor;
201
+ default: undefined;
202
+ };
203
+ selectedItems: {
204
+ type: ArrayConstructor;
205
+ default: undefined;
206
+ };
207
+ defaultSelectedItems: {
208
+ type: ArrayConstructor;
209
+ default: () => never[];
210
+ };
211
+ settings: {
212
+ type: ObjectConstructor;
213
+ default: () => {};
214
+ };
215
+ disabled: {
216
+ type: BooleanConstructor;
217
+ default: boolean;
218
+ };
219
+ renderItem: {
220
+ type: FunctionConstructor;
221
+ default: undefined;
222
+ };
223
+ renderBadge: {
224
+ type: FunctionConstructor;
225
+ default: undefined;
226
+ };
227
+ renderEmptyState: {
228
+ type: FunctionConstructor;
229
+ default: undefined;
230
+ };
231
+ };
232
+ data(this: any): {
233
+ isOpen: boolean;
234
+ query: string;
235
+ focusedKey: string;
236
+ internalSelected: any;
237
+ menuStyle: {};
238
+ bodyListMaxHeight: number | undefined;
239
+ menuPlaceholder: Comment | null;
240
+ menuAttachedToBody: boolean;
241
+ effectivePosition: string;
242
+ instanceId: string;
243
+ };
244
+ computed: {
245
+ resolvedSettings(this: any): any;
246
+ selected(this: any): any;
247
+ filteredItems(this: any): any;
248
+ groupedItems(this: any): GroupedItems<DropdownItem>;
249
+ visibleSelected(this: any): any;
250
+ hiddenSelectedCount(this: any): number;
251
+ openDirection(this: any): "up" | "down";
252
+ shouldAppendToBody(this: any): boolean;
253
+ };
254
+ watch: {
255
+ isOpen(this: any, value: boolean): void;
256
+ selected(this: any): void;
257
+ filteredItems(this: any): void;
258
+ settings: {
259
+ deep: boolean;
260
+ handler(this: any): void;
261
+ };
262
+ };
263
+ mounted(this: any): void;
264
+ beforeDestroy(this: any): void;
265
+ methods: {
266
+ getLabel(this: any, item: DropdownItem): string;
267
+ getKey(this: any, item: DropdownItem): string;
268
+ isSelected(this: any, item: DropdownItem): any;
269
+ visibleSelectableItems(this: any): any;
270
+ emitSelection(this: any, items: DropdownItem[]): void;
271
+ openDropdown(this: any): void;
272
+ closeDropdown(this: any): void;
273
+ toggleDropdown(this: any): void;
274
+ focusSearch(this: any): void;
275
+ clearSelection(this: any, event?: Event): void;
276
+ selectAll(this: any, event?: Event): void;
277
+ deSelectAll(this: any, event?: Event): void;
278
+ selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
279
+ toggleItem(this: any, item: DropdownItem, event?: Event): void;
280
+ removeItem(this: any, item: DropdownItem, event?: Event): void;
281
+ addFilterItem(this: any, event: Event): void;
282
+ onTriggerKeydown(this: any, event: KeyboardEvent): void;
283
+ onListKeydown(this: any, event: KeyboardEvent): void;
284
+ focusFirstOption(this: any): void;
285
+ focusLastOption(this: any): void;
286
+ focusOption(this: any, item: DropdownItem): void;
287
+ onInlineKeydown(this: any, event: KeyboardEvent): void;
288
+ onTriggerClick(this: any, event: Event): void;
289
+ onDocumentClick(this: any, event: MouseEvent): void;
290
+ onDocumentKeydown(this: any, event: KeyboardEvent): void;
291
+ onListScroll(this: any, event: Event): void;
292
+ attachMenuToBody(this: any): void;
293
+ restoreMenuToComponent(this: any): void;
294
+ updateMenuPosition(this: any): void;
295
+ };
296
+ render(this: any, h: CreateElement): any;
297
+ };
298
+
299
+ declare const VueMultiselect: VueMultiselectPlugin;
300
+
301
+ export { type DropdownItem, type DropdownRenderContext, type DropdownSettings, type PrimitiveItem, StacklineVueMultiselect, VueMultiselect, VueMultiselectDropdown, type VueMultiselectDropdownHandle, type VueMultiselectPlugin, VueMultiselect as default };