@stackline/vue-multiselect-dropdown 3.0.2 → 3.1.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/README.md +637 -50
- package/dist/index.cjs +651 -55
- package/dist/index.d.cts +153 -1
- package/dist/index.d.ts +153 -1
- package/dist/index.js +645 -54
- package/package.json +17 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
|
|
1
3
|
type PrimitiveItem = string | number | boolean;
|
|
2
4
|
type DropdownItem = PrimitiveItem | Record<string, any>;
|
|
5
|
+
interface DropdownKeyboardSettings {
|
|
6
|
+
space?: boolean;
|
|
7
|
+
spaceOptionAction?: 'toggle' | 'toggle-and-next';
|
|
8
|
+
tab?: boolean;
|
|
9
|
+
arrows?: boolean;
|
|
10
|
+
escape?: boolean;
|
|
11
|
+
backspaceRemovesLastWhenSearchEmpty?: boolean;
|
|
12
|
+
deleteRemovesFocusedBadge?: boolean;
|
|
13
|
+
/** @deprecated Use `backspaceRemovesLastWhenSearchEmpty`. */
|
|
14
|
+
backspace?: boolean;
|
|
15
|
+
}
|
|
3
16
|
interface DropdownSettings<T = DropdownItem> {
|
|
4
17
|
singleSelection?: boolean;
|
|
5
18
|
text?: string;
|
|
@@ -47,16 +60,94 @@ interface DropdownSettings<T = DropdownItem> {
|
|
|
47
60
|
openDropdownAriaLabel?: string;
|
|
48
61
|
closeDropdownAriaLabel?: string;
|
|
49
62
|
loadingText?: string;
|
|
63
|
+
keyboard?: DropdownKeyboardSettings;
|
|
50
64
|
}
|
|
51
65
|
interface DropdownRenderContext<T = DropdownItem> {
|
|
52
66
|
item: T;
|
|
53
67
|
label: string;
|
|
54
68
|
selected: boolean;
|
|
55
69
|
disabled: boolean;
|
|
70
|
+
index?: number;
|
|
71
|
+
group?: string;
|
|
72
|
+
key?: string;
|
|
73
|
+
optionId?: string;
|
|
74
|
+
ariaSelected?: 'true' | 'false';
|
|
75
|
+
ariaChecked?: 'true' | 'false';
|
|
56
76
|
query: string;
|
|
57
77
|
toggle: () => void;
|
|
58
78
|
remove: () => void;
|
|
59
79
|
}
|
|
80
|
+
interface DropdownOptionState<T = DropdownItem> {
|
|
81
|
+
item: T;
|
|
82
|
+
key: string;
|
|
83
|
+
label: string;
|
|
84
|
+
selected: boolean;
|
|
85
|
+
disabled: boolean;
|
|
86
|
+
index: number;
|
|
87
|
+
group?: string;
|
|
88
|
+
}
|
|
89
|
+
interface DropdownPropBag {
|
|
90
|
+
[key: string]: any;
|
|
91
|
+
}
|
|
92
|
+
interface UseMultiSelectStateOptions<T = DropdownItem> {
|
|
93
|
+
data?: T[] | {
|
|
94
|
+
value: T[];
|
|
95
|
+
};
|
|
96
|
+
selectedItems?: T[] | {
|
|
97
|
+
value: T[];
|
|
98
|
+
};
|
|
99
|
+
defaultSelectedItems?: T[];
|
|
100
|
+
settings?: DropdownSettings<T> | {
|
|
101
|
+
value: DropdownSettings<T>;
|
|
102
|
+
};
|
|
103
|
+
onChange?: (items: T[]) => void;
|
|
104
|
+
onSelect?: (item: T) => void;
|
|
105
|
+
onDeSelect?: (item: T) => void;
|
|
106
|
+
onSelectAll?: (items: T[]) => void;
|
|
107
|
+
onDeSelectAll?: (items: T[]) => void;
|
|
108
|
+
onGroupSelect?: (groupName: string, items: T[]) => void;
|
|
109
|
+
onGroupDeSelect?: (groupName: string, items: T[]) => void;
|
|
110
|
+
}
|
|
111
|
+
interface UseMultiSelectDropdownReturn<T = DropdownItem> {
|
|
112
|
+
isOpen: any;
|
|
113
|
+
query: any;
|
|
114
|
+
filter: any;
|
|
115
|
+
activeKey: any;
|
|
116
|
+
activeDescendantId: any;
|
|
117
|
+
listboxId: string;
|
|
118
|
+
settings: any;
|
|
119
|
+
filteredItems: any;
|
|
120
|
+
selectableItems: any;
|
|
121
|
+
selectedItems: any;
|
|
122
|
+
visibleBadges: any;
|
|
123
|
+
hiddenBadgeCount: any;
|
|
124
|
+
visibleOptions: any;
|
|
125
|
+
groups: any;
|
|
126
|
+
allFilteredSelected: any;
|
|
127
|
+
label: any;
|
|
128
|
+
open: () => void;
|
|
129
|
+
close: () => void;
|
|
130
|
+
toggleOpen: () => void;
|
|
131
|
+
clearSelection: () => void;
|
|
132
|
+
selectAll: (items?: T[]) => void;
|
|
133
|
+
deSelectAll: (items?: T[]) => void;
|
|
134
|
+
toggleGroup: (groupName: string, items: T[]) => void;
|
|
135
|
+
toggleItem: (item: T) => void;
|
|
136
|
+
selectItem: (item: T) => void;
|
|
137
|
+
removeItem: (item: T) => void;
|
|
138
|
+
removeLastSelectedItem: () => void;
|
|
139
|
+
isSelected: (item: T) => boolean;
|
|
140
|
+
setFilter: (value: string) => void;
|
|
141
|
+
getItemKey: (item: T) => string;
|
|
142
|
+
getItemLabel: (item: T) => string;
|
|
143
|
+
getRootProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
144
|
+
getTriggerProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
145
|
+
getSearchInputProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
146
|
+
getListboxProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
147
|
+
getOptionProps: (option: DropdownOptionState<T>, props?: DropdownPropBag) => DropdownPropBag;
|
|
148
|
+
getClearAllButtonProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
149
|
+
getRemoveButtonProps: (item: T, props?: DropdownPropBag) => DropdownPropBag;
|
|
150
|
+
}
|
|
60
151
|
interface VueMultiselectDropdownHandle<T = DropdownItem> {
|
|
61
152
|
openDropdown: () => void;
|
|
62
153
|
closeDropdown: () => void;
|
|
@@ -155,6 +246,7 @@ declare const VueMultiselectDropdown: {
|
|
|
155
246
|
methods: {
|
|
156
247
|
getLabel(this: any, item: DropdownItem): string;
|
|
157
248
|
getKey(this: any, item: DropdownItem): string;
|
|
249
|
+
getOptionId(this: any, key: string): string;
|
|
158
250
|
isSelected(this: any, item: DropdownItem): any;
|
|
159
251
|
visibleSelectableItems(this: any): any;
|
|
160
252
|
emitSelection(this: any, items: DropdownItem[]): void;
|
|
@@ -168,6 +260,7 @@ declare const VueMultiselectDropdown: {
|
|
|
168
260
|
selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
|
|
169
261
|
toggleItem(this: any, item: DropdownItem, event?: Event): void;
|
|
170
262
|
removeItem(this: any, item: DropdownItem, event?: Event): void;
|
|
263
|
+
removeLastSelected(this: any): void;
|
|
171
264
|
addFilterItem(this: any, event: Event): void;
|
|
172
265
|
onTriggerKeydown(this: any, event: KeyboardEvent): void;
|
|
173
266
|
onListKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -175,6 +268,7 @@ declare const VueMultiselectDropdown: {
|
|
|
175
268
|
focusLastOption(this: any): void;
|
|
176
269
|
focusOption(this: any, item: DropdownItem): void;
|
|
177
270
|
onInlineKeydown(this: any, event: KeyboardEvent): void;
|
|
271
|
+
onRemoveButtonKeydown(this: any, item: DropdownItem, event: KeyboardEvent): void;
|
|
178
272
|
onTriggerClick(this: any, event: Event): void;
|
|
179
273
|
onDocumentClick(this: any, event: MouseEvent): void;
|
|
180
274
|
onDocumentKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -266,6 +360,7 @@ declare const StacklineVueMultiselect: {
|
|
|
266
360
|
methods: {
|
|
267
361
|
getLabel(this: any, item: DropdownItem): string;
|
|
268
362
|
getKey(this: any, item: DropdownItem): string;
|
|
363
|
+
getOptionId(this: any, key: string): string;
|
|
269
364
|
isSelected(this: any, item: DropdownItem): any;
|
|
270
365
|
visibleSelectableItems(this: any): any;
|
|
271
366
|
emitSelection(this: any, items: DropdownItem[]): void;
|
|
@@ -279,6 +374,7 @@ declare const StacklineVueMultiselect: {
|
|
|
279
374
|
selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
|
|
280
375
|
toggleItem(this: any, item: DropdownItem, event?: Event): void;
|
|
281
376
|
removeItem(this: any, item: DropdownItem, event?: Event): void;
|
|
377
|
+
removeLastSelected(this: any): void;
|
|
282
378
|
addFilterItem(this: any, event: Event): void;
|
|
283
379
|
onTriggerKeydown(this: any, event: KeyboardEvent): void;
|
|
284
380
|
onListKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -286,6 +382,7 @@ declare const StacklineVueMultiselect: {
|
|
|
286
382
|
focusLastOption(this: any): void;
|
|
287
383
|
focusOption(this: any, item: DropdownItem): void;
|
|
288
384
|
onInlineKeydown(this: any, event: KeyboardEvent): void;
|
|
385
|
+
onRemoveButtonKeydown(this: any, item: DropdownItem, event: KeyboardEvent): void;
|
|
289
386
|
onTriggerClick(this: any, event: Event): void;
|
|
290
387
|
onDocumentClick(this: any, event: MouseEvent): void;
|
|
291
388
|
onDocumentKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -297,6 +394,61 @@ declare const StacklineVueMultiselect: {
|
|
|
297
394
|
render(this: any): any;
|
|
298
395
|
};
|
|
299
396
|
|
|
397
|
+
declare function defineSettings<T extends DropdownItem>(settings: DropdownSettings<T>): DropdownSettings<T>;
|
|
398
|
+
declare function defineSlots<TSlots extends Record<string, any>>(slots: TSlots): TSlots;
|
|
399
|
+
declare function useMultiSelectState<T extends DropdownItem = DropdownItem>(options?: UseMultiSelectStateOptions<T>): {
|
|
400
|
+
data: vue.ComputedRef<T[]>;
|
|
401
|
+
settings: vue.ComputedRef<Required<Pick<DropdownSettings<T>, "singleSelection" | "text" | "searchBy" | "groupBy" | "labelKey" | "primaryKey">> & DropdownSettings<T>>;
|
|
402
|
+
filter: vue.Ref<string, string>;
|
|
403
|
+
filteredItems: vue.ComputedRef<T[]>;
|
|
404
|
+
selectableItems: vue.ComputedRef<T[]>;
|
|
405
|
+
selectedItems: vue.ComputedRef<T[]>;
|
|
406
|
+
visibleBadges: vue.ComputedRef<T[]>;
|
|
407
|
+
hiddenBadgeCount: vue.ComputedRef<number>;
|
|
408
|
+
allFilteredSelected: vue.ComputedRef<boolean>;
|
|
409
|
+
isSelected: (item: T) => boolean;
|
|
410
|
+
getItemKey: (item: T) => string;
|
|
411
|
+
getItemLabel: (item: T) => string;
|
|
412
|
+
setFilter: (value: string) => void;
|
|
413
|
+
selectItem: (item: T) => void;
|
|
414
|
+
removeItem: (item: T) => void;
|
|
415
|
+
removeLastSelectedItem: () => void;
|
|
416
|
+
toggleItem: (item: T) => void;
|
|
417
|
+
clearSelection: () => void;
|
|
418
|
+
selectAll: (items?: T[]) => void;
|
|
419
|
+
deSelectAll: (items?: T[]) => void;
|
|
420
|
+
toggleGroup: (groupName: string, items: T[]) => void;
|
|
421
|
+
};
|
|
422
|
+
declare function useMultiSelectDropdown<T extends DropdownItem = DropdownItem>(options?: UseMultiSelectStateOptions<T>): UseMultiSelectDropdownReturn<T>;
|
|
423
|
+
declare function createVueMultiselectDropdown<T extends DropdownItem>(): {
|
|
424
|
+
defineSettings: (settings: DropdownSettings<T>) => DropdownSettings<T>;
|
|
425
|
+
defineSlots: typeof defineSlots;
|
|
426
|
+
useMultiSelectState: (options?: UseMultiSelectStateOptions<T>) => {
|
|
427
|
+
data: vue.ComputedRef<T[]>;
|
|
428
|
+
settings: vue.ComputedRef<Required<Pick<DropdownSettings<T>, "singleSelection" | "text" | "searchBy" | "groupBy" | "labelKey" | "primaryKey">> & DropdownSettings<T>>;
|
|
429
|
+
filter: vue.Ref<string, string>;
|
|
430
|
+
filteredItems: vue.ComputedRef<T[]>;
|
|
431
|
+
selectableItems: vue.ComputedRef<T[]>;
|
|
432
|
+
selectedItems: vue.ComputedRef<T[]>;
|
|
433
|
+
visibleBadges: vue.ComputedRef<T[]>;
|
|
434
|
+
hiddenBadgeCount: vue.ComputedRef<number>;
|
|
435
|
+
allFilteredSelected: vue.ComputedRef<boolean>;
|
|
436
|
+
isSelected: (item: T) => boolean;
|
|
437
|
+
getItemKey: (item: T) => string;
|
|
438
|
+
getItemLabel: (item: T) => string;
|
|
439
|
+
setFilter: (value: string) => void;
|
|
440
|
+
selectItem: (item: T) => void;
|
|
441
|
+
removeItem: (item: T) => void;
|
|
442
|
+
removeLastSelectedItem: () => void;
|
|
443
|
+
toggleItem: (item: T) => void;
|
|
444
|
+
clearSelection: () => void;
|
|
445
|
+
selectAll: (items?: T[] | undefined) => void;
|
|
446
|
+
deSelectAll: (items?: T[] | undefined) => void;
|
|
447
|
+
toggleGroup: (groupName: string, items: T[]) => void;
|
|
448
|
+
};
|
|
449
|
+
useMultiSelectDropdown: (options?: UseMultiSelectStateOptions<T>) => UseMultiSelectDropdownReturn<T>;
|
|
450
|
+
};
|
|
451
|
+
|
|
300
452
|
declare const VueMultiselect: VueMultiselectPlugin;
|
|
301
453
|
|
|
302
|
-
export { type DropdownItem, type DropdownRenderContext, type DropdownSettings, type PrimitiveItem, StacklineVueMultiselect, VueMultiselect, VueMultiselectDropdown, type VueMultiselectDropdownHandle, type VueMultiselectPlugin, VueMultiselect as default };
|
|
454
|
+
export { type DropdownItem, type DropdownKeyboardSettings, type DropdownOptionState, type DropdownPropBag, type DropdownRenderContext, type DropdownSettings, type PrimitiveItem, StacklineVueMultiselect, type UseMultiSelectDropdownReturn, type UseMultiSelectStateOptions, VueMultiselect, VueMultiselectDropdown, type VueMultiselectDropdownHandle, type VueMultiselectPlugin, createVueMultiselectDropdown, VueMultiselect as default, defineSettings, defineSlots, useMultiSelectDropdown, useMultiSelectState };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
|
|
1
3
|
type PrimitiveItem = string | number | boolean;
|
|
2
4
|
type DropdownItem = PrimitiveItem | Record<string, any>;
|
|
5
|
+
interface DropdownKeyboardSettings {
|
|
6
|
+
space?: boolean;
|
|
7
|
+
spaceOptionAction?: 'toggle' | 'toggle-and-next';
|
|
8
|
+
tab?: boolean;
|
|
9
|
+
arrows?: boolean;
|
|
10
|
+
escape?: boolean;
|
|
11
|
+
backspaceRemovesLastWhenSearchEmpty?: boolean;
|
|
12
|
+
deleteRemovesFocusedBadge?: boolean;
|
|
13
|
+
/** @deprecated Use `backspaceRemovesLastWhenSearchEmpty`. */
|
|
14
|
+
backspace?: boolean;
|
|
15
|
+
}
|
|
3
16
|
interface DropdownSettings<T = DropdownItem> {
|
|
4
17
|
singleSelection?: boolean;
|
|
5
18
|
text?: string;
|
|
@@ -47,16 +60,94 @@ interface DropdownSettings<T = DropdownItem> {
|
|
|
47
60
|
openDropdownAriaLabel?: string;
|
|
48
61
|
closeDropdownAriaLabel?: string;
|
|
49
62
|
loadingText?: string;
|
|
63
|
+
keyboard?: DropdownKeyboardSettings;
|
|
50
64
|
}
|
|
51
65
|
interface DropdownRenderContext<T = DropdownItem> {
|
|
52
66
|
item: T;
|
|
53
67
|
label: string;
|
|
54
68
|
selected: boolean;
|
|
55
69
|
disabled: boolean;
|
|
70
|
+
index?: number;
|
|
71
|
+
group?: string;
|
|
72
|
+
key?: string;
|
|
73
|
+
optionId?: string;
|
|
74
|
+
ariaSelected?: 'true' | 'false';
|
|
75
|
+
ariaChecked?: 'true' | 'false';
|
|
56
76
|
query: string;
|
|
57
77
|
toggle: () => void;
|
|
58
78
|
remove: () => void;
|
|
59
79
|
}
|
|
80
|
+
interface DropdownOptionState<T = DropdownItem> {
|
|
81
|
+
item: T;
|
|
82
|
+
key: string;
|
|
83
|
+
label: string;
|
|
84
|
+
selected: boolean;
|
|
85
|
+
disabled: boolean;
|
|
86
|
+
index: number;
|
|
87
|
+
group?: string;
|
|
88
|
+
}
|
|
89
|
+
interface DropdownPropBag {
|
|
90
|
+
[key: string]: any;
|
|
91
|
+
}
|
|
92
|
+
interface UseMultiSelectStateOptions<T = DropdownItem> {
|
|
93
|
+
data?: T[] | {
|
|
94
|
+
value: T[];
|
|
95
|
+
};
|
|
96
|
+
selectedItems?: T[] | {
|
|
97
|
+
value: T[];
|
|
98
|
+
};
|
|
99
|
+
defaultSelectedItems?: T[];
|
|
100
|
+
settings?: DropdownSettings<T> | {
|
|
101
|
+
value: DropdownSettings<T>;
|
|
102
|
+
};
|
|
103
|
+
onChange?: (items: T[]) => void;
|
|
104
|
+
onSelect?: (item: T) => void;
|
|
105
|
+
onDeSelect?: (item: T) => void;
|
|
106
|
+
onSelectAll?: (items: T[]) => void;
|
|
107
|
+
onDeSelectAll?: (items: T[]) => void;
|
|
108
|
+
onGroupSelect?: (groupName: string, items: T[]) => void;
|
|
109
|
+
onGroupDeSelect?: (groupName: string, items: T[]) => void;
|
|
110
|
+
}
|
|
111
|
+
interface UseMultiSelectDropdownReturn<T = DropdownItem> {
|
|
112
|
+
isOpen: any;
|
|
113
|
+
query: any;
|
|
114
|
+
filter: any;
|
|
115
|
+
activeKey: any;
|
|
116
|
+
activeDescendantId: any;
|
|
117
|
+
listboxId: string;
|
|
118
|
+
settings: any;
|
|
119
|
+
filteredItems: any;
|
|
120
|
+
selectableItems: any;
|
|
121
|
+
selectedItems: any;
|
|
122
|
+
visibleBadges: any;
|
|
123
|
+
hiddenBadgeCount: any;
|
|
124
|
+
visibleOptions: any;
|
|
125
|
+
groups: any;
|
|
126
|
+
allFilteredSelected: any;
|
|
127
|
+
label: any;
|
|
128
|
+
open: () => void;
|
|
129
|
+
close: () => void;
|
|
130
|
+
toggleOpen: () => void;
|
|
131
|
+
clearSelection: () => void;
|
|
132
|
+
selectAll: (items?: T[]) => void;
|
|
133
|
+
deSelectAll: (items?: T[]) => void;
|
|
134
|
+
toggleGroup: (groupName: string, items: T[]) => void;
|
|
135
|
+
toggleItem: (item: T) => void;
|
|
136
|
+
selectItem: (item: T) => void;
|
|
137
|
+
removeItem: (item: T) => void;
|
|
138
|
+
removeLastSelectedItem: () => void;
|
|
139
|
+
isSelected: (item: T) => boolean;
|
|
140
|
+
setFilter: (value: string) => void;
|
|
141
|
+
getItemKey: (item: T) => string;
|
|
142
|
+
getItemLabel: (item: T) => string;
|
|
143
|
+
getRootProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
144
|
+
getTriggerProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
145
|
+
getSearchInputProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
146
|
+
getListboxProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
147
|
+
getOptionProps: (option: DropdownOptionState<T>, props?: DropdownPropBag) => DropdownPropBag;
|
|
148
|
+
getClearAllButtonProps: (props?: DropdownPropBag) => DropdownPropBag;
|
|
149
|
+
getRemoveButtonProps: (item: T, props?: DropdownPropBag) => DropdownPropBag;
|
|
150
|
+
}
|
|
60
151
|
interface VueMultiselectDropdownHandle<T = DropdownItem> {
|
|
61
152
|
openDropdown: () => void;
|
|
62
153
|
closeDropdown: () => void;
|
|
@@ -155,6 +246,7 @@ declare const VueMultiselectDropdown: {
|
|
|
155
246
|
methods: {
|
|
156
247
|
getLabel(this: any, item: DropdownItem): string;
|
|
157
248
|
getKey(this: any, item: DropdownItem): string;
|
|
249
|
+
getOptionId(this: any, key: string): string;
|
|
158
250
|
isSelected(this: any, item: DropdownItem): any;
|
|
159
251
|
visibleSelectableItems(this: any): any;
|
|
160
252
|
emitSelection(this: any, items: DropdownItem[]): void;
|
|
@@ -168,6 +260,7 @@ declare const VueMultiselectDropdown: {
|
|
|
168
260
|
selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
|
|
169
261
|
toggleItem(this: any, item: DropdownItem, event?: Event): void;
|
|
170
262
|
removeItem(this: any, item: DropdownItem, event?: Event): void;
|
|
263
|
+
removeLastSelected(this: any): void;
|
|
171
264
|
addFilterItem(this: any, event: Event): void;
|
|
172
265
|
onTriggerKeydown(this: any, event: KeyboardEvent): void;
|
|
173
266
|
onListKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -175,6 +268,7 @@ declare const VueMultiselectDropdown: {
|
|
|
175
268
|
focusLastOption(this: any): void;
|
|
176
269
|
focusOption(this: any, item: DropdownItem): void;
|
|
177
270
|
onInlineKeydown(this: any, event: KeyboardEvent): void;
|
|
271
|
+
onRemoveButtonKeydown(this: any, item: DropdownItem, event: KeyboardEvent): void;
|
|
178
272
|
onTriggerClick(this: any, event: Event): void;
|
|
179
273
|
onDocumentClick(this: any, event: MouseEvent): void;
|
|
180
274
|
onDocumentKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -266,6 +360,7 @@ declare const StacklineVueMultiselect: {
|
|
|
266
360
|
methods: {
|
|
267
361
|
getLabel(this: any, item: DropdownItem): string;
|
|
268
362
|
getKey(this: any, item: DropdownItem): string;
|
|
363
|
+
getOptionId(this: any, key: string): string;
|
|
269
364
|
isSelected(this: any, item: DropdownItem): any;
|
|
270
365
|
visibleSelectableItems(this: any): any;
|
|
271
366
|
emitSelection(this: any, items: DropdownItem[]): void;
|
|
@@ -279,6 +374,7 @@ declare const StacklineVueMultiselect: {
|
|
|
279
374
|
selectGroup(this: any, groupName: string, items: DropdownItem[], event: Event): void;
|
|
280
375
|
toggleItem(this: any, item: DropdownItem, event?: Event): void;
|
|
281
376
|
removeItem(this: any, item: DropdownItem, event?: Event): void;
|
|
377
|
+
removeLastSelected(this: any): void;
|
|
282
378
|
addFilterItem(this: any, event: Event): void;
|
|
283
379
|
onTriggerKeydown(this: any, event: KeyboardEvent): void;
|
|
284
380
|
onListKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -286,6 +382,7 @@ declare const StacklineVueMultiselect: {
|
|
|
286
382
|
focusLastOption(this: any): void;
|
|
287
383
|
focusOption(this: any, item: DropdownItem): void;
|
|
288
384
|
onInlineKeydown(this: any, event: KeyboardEvent): void;
|
|
385
|
+
onRemoveButtonKeydown(this: any, item: DropdownItem, event: KeyboardEvent): void;
|
|
289
386
|
onTriggerClick(this: any, event: Event): void;
|
|
290
387
|
onDocumentClick(this: any, event: MouseEvent): void;
|
|
291
388
|
onDocumentKeydown(this: any, event: KeyboardEvent): void;
|
|
@@ -297,6 +394,61 @@ declare const StacklineVueMultiselect: {
|
|
|
297
394
|
render(this: any): any;
|
|
298
395
|
};
|
|
299
396
|
|
|
397
|
+
declare function defineSettings<T extends DropdownItem>(settings: DropdownSettings<T>): DropdownSettings<T>;
|
|
398
|
+
declare function defineSlots<TSlots extends Record<string, any>>(slots: TSlots): TSlots;
|
|
399
|
+
declare function useMultiSelectState<T extends DropdownItem = DropdownItem>(options?: UseMultiSelectStateOptions<T>): {
|
|
400
|
+
data: vue.ComputedRef<T[]>;
|
|
401
|
+
settings: vue.ComputedRef<Required<Pick<DropdownSettings<T>, "singleSelection" | "text" | "searchBy" | "groupBy" | "labelKey" | "primaryKey">> & DropdownSettings<T>>;
|
|
402
|
+
filter: vue.Ref<string, string>;
|
|
403
|
+
filteredItems: vue.ComputedRef<T[]>;
|
|
404
|
+
selectableItems: vue.ComputedRef<T[]>;
|
|
405
|
+
selectedItems: vue.ComputedRef<T[]>;
|
|
406
|
+
visibleBadges: vue.ComputedRef<T[]>;
|
|
407
|
+
hiddenBadgeCount: vue.ComputedRef<number>;
|
|
408
|
+
allFilteredSelected: vue.ComputedRef<boolean>;
|
|
409
|
+
isSelected: (item: T) => boolean;
|
|
410
|
+
getItemKey: (item: T) => string;
|
|
411
|
+
getItemLabel: (item: T) => string;
|
|
412
|
+
setFilter: (value: string) => void;
|
|
413
|
+
selectItem: (item: T) => void;
|
|
414
|
+
removeItem: (item: T) => void;
|
|
415
|
+
removeLastSelectedItem: () => void;
|
|
416
|
+
toggleItem: (item: T) => void;
|
|
417
|
+
clearSelection: () => void;
|
|
418
|
+
selectAll: (items?: T[]) => void;
|
|
419
|
+
deSelectAll: (items?: T[]) => void;
|
|
420
|
+
toggleGroup: (groupName: string, items: T[]) => void;
|
|
421
|
+
};
|
|
422
|
+
declare function useMultiSelectDropdown<T extends DropdownItem = DropdownItem>(options?: UseMultiSelectStateOptions<T>): UseMultiSelectDropdownReturn<T>;
|
|
423
|
+
declare function createVueMultiselectDropdown<T extends DropdownItem>(): {
|
|
424
|
+
defineSettings: (settings: DropdownSettings<T>) => DropdownSettings<T>;
|
|
425
|
+
defineSlots: typeof defineSlots;
|
|
426
|
+
useMultiSelectState: (options?: UseMultiSelectStateOptions<T>) => {
|
|
427
|
+
data: vue.ComputedRef<T[]>;
|
|
428
|
+
settings: vue.ComputedRef<Required<Pick<DropdownSettings<T>, "singleSelection" | "text" | "searchBy" | "groupBy" | "labelKey" | "primaryKey">> & DropdownSettings<T>>;
|
|
429
|
+
filter: vue.Ref<string, string>;
|
|
430
|
+
filteredItems: vue.ComputedRef<T[]>;
|
|
431
|
+
selectableItems: vue.ComputedRef<T[]>;
|
|
432
|
+
selectedItems: vue.ComputedRef<T[]>;
|
|
433
|
+
visibleBadges: vue.ComputedRef<T[]>;
|
|
434
|
+
hiddenBadgeCount: vue.ComputedRef<number>;
|
|
435
|
+
allFilteredSelected: vue.ComputedRef<boolean>;
|
|
436
|
+
isSelected: (item: T) => boolean;
|
|
437
|
+
getItemKey: (item: T) => string;
|
|
438
|
+
getItemLabel: (item: T) => string;
|
|
439
|
+
setFilter: (value: string) => void;
|
|
440
|
+
selectItem: (item: T) => void;
|
|
441
|
+
removeItem: (item: T) => void;
|
|
442
|
+
removeLastSelectedItem: () => void;
|
|
443
|
+
toggleItem: (item: T) => void;
|
|
444
|
+
clearSelection: () => void;
|
|
445
|
+
selectAll: (items?: T[] | undefined) => void;
|
|
446
|
+
deSelectAll: (items?: T[] | undefined) => void;
|
|
447
|
+
toggleGroup: (groupName: string, items: T[]) => void;
|
|
448
|
+
};
|
|
449
|
+
useMultiSelectDropdown: (options?: UseMultiSelectStateOptions<T>) => UseMultiSelectDropdownReturn<T>;
|
|
450
|
+
};
|
|
451
|
+
|
|
300
452
|
declare const VueMultiselect: VueMultiselectPlugin;
|
|
301
453
|
|
|
302
|
-
export { type DropdownItem, type DropdownRenderContext, type DropdownSettings, type PrimitiveItem, StacklineVueMultiselect, VueMultiselect, VueMultiselectDropdown, type VueMultiselectDropdownHandle, type VueMultiselectPlugin, VueMultiselect as default };
|
|
454
|
+
export { type DropdownItem, type DropdownKeyboardSettings, type DropdownOptionState, type DropdownPropBag, type DropdownRenderContext, type DropdownSettings, type PrimitiveItem, StacklineVueMultiselect, type UseMultiSelectDropdownReturn, type UseMultiSelectStateOptions, VueMultiselect, VueMultiselectDropdown, type VueMultiselectDropdownHandle, type VueMultiselectPlugin, createVueMultiselectDropdown, VueMultiselect as default, defineSettings, defineSlots, useMultiSelectDropdown, useMultiSelectState };
|