vuetify 3.10.4 → 3.10.6
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 +0 -6
- package/dist/json/attributes.json +1910 -1922
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +182 -182
- package/dist/json/tags.json +6 -9
- package/dist/json/web-types.json +3674 -3697
- package/dist/vuetify-labs.cjs +211 -107
- package/dist/vuetify-labs.css +5703 -5642
- package/dist/vuetify-labs.d.ts +168 -175
- package/dist/vuetify-labs.esm.js +211 -107
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +211 -107
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +192 -97
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5916 -5877
- package/dist/vuetify.d.ts +168 -140
- package/dist/vuetify.esm.js +192 -97
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +192 -97
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +124 -114
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +0 -61
- package/lib/components/VAutocomplete/VAutocomplete.js +13 -11
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.css +10 -0
- package/lib/components/VBadge/VBadge.sass +9 -0
- package/lib/components/VChipGroup/VChipGroup.d.ts +37 -0
- package/lib/components/VChipGroup/VChipGroup.js +3 -1
- package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +6 -67
- package/lib/components/VCombobox/VCombobox.js +26 -28
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VCounter/VCounter.css +1 -0
- package/lib/components/VCounter/VCounter.sass +1 -0
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +4 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +3 -0
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableRow.js +3 -0
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableRows.js +4 -3
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +1 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDivider/VDivider.css +1 -0
- package/lib/components/VDivider/VDivider.sass +1 -0
- package/lib/components/VKbd/_variables.scss +3 -1
- package/lib/components/VList/VListItem.css +14 -12
- package/lib/components/VList/VListItem.js +5 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListItem.sass +20 -18
- package/lib/components/VMenu/VMenu.js +22 -4
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.css +8 -0
- package/lib/components/VNumberInput/VNumberInput.js +5 -2
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.sass +10 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.css +17 -0
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +3 -3
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +7 -0
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +25 -0
- package/lib/components/VSlideGroup/VSlideGroup.js +5 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VTable/VTable.js +20 -32
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTabs/VTabs.d.ts +25 -0
- package/lib/components/VTextField/VTextField.js +0 -3
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +2 -2
- package/lib/components/VTextarea/VTextarea.js +20 -1
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +4 -2
- package/lib/components/VWindow/VWindow.js +43 -3
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/composables/date/date.js +1 -1
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/group.js +1 -1
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/nested/nested.js +12 -2
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/composables/virtual.js +2 -2
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +66 -66
- package/lib/framework.js +1 -1
- package/lib/labs/VColorInput/VColorInput.d.ts +0 -40
- package/lib/labs/VColorInput/VColorInput.js +2 -2
- package/lib/labs/VColorInput/VColorInput.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +0 -30
- package/lib/labs/VDateInput/VDateInput.js +16 -7
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.css +22 -0
- package/lib/labs/VIconBtn/VIconBtn.scss +32 -0
- package/lib/labs/VMaskInput/VMaskInput.js +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
- package/lib/labs/rules/rules.js +4 -4
- package/lib/labs/rules/rules.js.map +1 -1
- package/lib/util/helpers.js +4 -2
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -37,7 +37,6 @@ export declare const makeVAutocompleteProps: <Defaults extends {
|
|
|
37
37
|
minWidth?: unknown;
|
|
38
38
|
width?: unknown;
|
|
39
39
|
loading?: unknown;
|
|
40
|
-
transition?: unknown;
|
|
41
40
|
id?: unknown;
|
|
42
41
|
appendIcon?: unknown;
|
|
43
42
|
prependIcon?: unknown;
|
|
@@ -269,32 +268,6 @@ export declare const makeVAutocompleteProps: <Defaults extends {
|
|
|
269
268
|
type: PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
|
|
270
269
|
default: unknown extends Defaults["loading"] ? string | boolean : Defaults["loading"] | NonNullable<string | boolean>;
|
|
271
270
|
};
|
|
272
|
-
transition: unknown extends Defaults["transition"] ? {
|
|
273
|
-
type: PropType<string | boolean | (import("vue").TransitionProps & {
|
|
274
|
-
component?: import("vue").Component | undefined;
|
|
275
|
-
}) | null>;
|
|
276
|
-
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
|
277
|
-
component?: import("vue").Component | undefined;
|
|
278
|
-
}) | null>;
|
|
279
|
-
} : Omit<{
|
|
280
|
-
type: PropType<string | boolean | (import("vue").TransitionProps & {
|
|
281
|
-
component?: import("vue").Component | undefined;
|
|
282
|
-
}) | null>;
|
|
283
|
-
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
|
284
|
-
component?: import("vue").Component | undefined;
|
|
285
|
-
}) | null>;
|
|
286
|
-
}, "default" | "type"> & {
|
|
287
|
-
type: PropType<unknown extends Defaults["transition"] ? string | boolean | (import("vue").TransitionProps & {
|
|
288
|
-
component?: import("vue").Component | undefined;
|
|
289
|
-
}) | null : string | boolean | Defaults["transition"] | (import("vue").TransitionProps & {
|
|
290
|
-
component?: import("vue").Component | undefined;
|
|
291
|
-
}) | null>;
|
|
292
|
-
default: unknown extends Defaults["transition"] ? string | boolean | (import("vue").TransitionProps & {
|
|
293
|
-
component?: import("vue").Component | undefined;
|
|
294
|
-
}) | null : Defaults["transition"] | NonNullable<string | boolean | (import("vue").TransitionProps & {
|
|
295
|
-
component?: import("vue").Component | undefined;
|
|
296
|
-
}) | null>;
|
|
297
|
-
};
|
|
298
271
|
id: unknown extends Defaults["id"] ? StringConstructor : {
|
|
299
272
|
type: PropType<unknown extends Defaults["id"] ? string : string | Defaults["id"]>;
|
|
300
273
|
default: unknown extends Defaults["id"] ? string : string | Defaults["id"];
|
|
@@ -3428,9 +3401,6 @@ export declare const VAutocomplete: {
|
|
|
3428
3401
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
3429
3402
|
density: import("../../composables/density.js").Density;
|
|
3430
3403
|
tile: boolean;
|
|
3431
|
-
transition: string | boolean | (import("vue").TransitionProps & {
|
|
3432
|
-
component?: import("vue").Component | undefined;
|
|
3433
|
-
}) | null;
|
|
3434
3404
|
hideSpinButtons: boolean;
|
|
3435
3405
|
persistentHint: boolean;
|
|
3436
3406
|
messages: string | readonly string[];
|
|
@@ -6147,9 +6117,6 @@ export declare const VAutocomplete: {
|
|
|
6147
6117
|
density: import("../../composables/density.js").Density;
|
|
6148
6118
|
rounded: string | number | boolean;
|
|
6149
6119
|
tile: boolean;
|
|
6150
|
-
transition: string | boolean | (import("vue").TransitionProps & {
|
|
6151
|
-
component?: import("vue").Component | undefined;
|
|
6152
|
-
}) | null;
|
|
6153
6120
|
hideSpinButtons: boolean;
|
|
6154
6121
|
persistentHint: boolean;
|
|
6155
6122
|
messages: string | readonly string[];
|
|
@@ -6280,9 +6247,6 @@ export declare const VAutocomplete: {
|
|
|
6280
6247
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
6281
6248
|
density: import("../../composables/density.js").Density;
|
|
6282
6249
|
tile: boolean;
|
|
6283
|
-
transition: string | boolean | (import("vue").TransitionProps & {
|
|
6284
|
-
component?: import("vue").Component | undefined;
|
|
6285
|
-
}) | null;
|
|
6286
6250
|
hideSpinButtons: boolean;
|
|
6287
6251
|
persistentHint: boolean;
|
|
6288
6252
|
messages: string | readonly string[];
|
|
@@ -8994,9 +8958,6 @@ export declare const VAutocomplete: {
|
|
|
8994
8958
|
density: import("../../composables/density.js").Density;
|
|
8995
8959
|
rounded: string | number | boolean;
|
|
8996
8960
|
tile: boolean;
|
|
8997
|
-
transition: string | boolean | (import("vue").TransitionProps & {
|
|
8998
|
-
component?: import("vue").Component | undefined;
|
|
8999
|
-
}) | null;
|
|
9000
8961
|
hideSpinButtons: boolean;
|
|
9001
8962
|
persistentHint: boolean;
|
|
9002
8963
|
messages: string | readonly string[];
|
|
@@ -9050,9 +9011,6 @@ export declare const VAutocomplete: {
|
|
|
9050
9011
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
9051
9012
|
density: import("../../composables/density.js").Density;
|
|
9052
9013
|
tile: boolean;
|
|
9053
|
-
transition: string | boolean | (import("vue").TransitionProps & {
|
|
9054
|
-
component?: import("vue").Component | undefined;
|
|
9055
|
-
}) | null;
|
|
9056
9014
|
hideSpinButtons: boolean;
|
|
9057
9015
|
persistentHint: boolean;
|
|
9058
9016
|
messages: string | readonly string[];
|
|
@@ -11769,9 +11727,6 @@ export declare const VAutocomplete: {
|
|
|
11769
11727
|
density: import("../../composables/density.js").Density;
|
|
11770
11728
|
rounded: string | number | boolean;
|
|
11771
11729
|
tile: boolean;
|
|
11772
|
-
transition: string | boolean | (import("vue").TransitionProps & {
|
|
11773
|
-
component?: import("vue").Component | undefined;
|
|
11774
|
-
}) | null;
|
|
11775
11730
|
hideSpinButtons: boolean;
|
|
11776
11731
|
persistentHint: boolean;
|
|
11777
11732
|
messages: string | readonly string[];
|
|
@@ -12009,14 +11964,6 @@ export declare const VAutocomplete: {
|
|
|
12009
11964
|
minWidth: (NumberConstructor | StringConstructor)[];
|
|
12010
11965
|
width: (NumberConstructor | StringConstructor)[];
|
|
12011
11966
|
loading: (BooleanConstructor | StringConstructor)[];
|
|
12012
|
-
transition: {
|
|
12013
|
-
type: PropType<string | boolean | (import("vue").TransitionProps & {
|
|
12014
|
-
component?: import("vue").Component | undefined;
|
|
12015
|
-
}) | null>;
|
|
12016
|
-
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
|
12017
|
-
component?: import("vue").Component | undefined;
|
|
12018
|
-
}) | null>;
|
|
12019
|
-
};
|
|
12020
11967
|
id: StringConstructor;
|
|
12021
11968
|
appendIcon: PropType<import("../../composables/icons.js").IconValue>;
|
|
12022
11969
|
prependIcon: PropType<import("../../composables/icons.js").IconValue>;
|
|
@@ -12660,14 +12607,6 @@ export declare const VAutocomplete: {
|
|
|
12660
12607
|
minWidth: (NumberConstructor | StringConstructor)[];
|
|
12661
12608
|
width: (NumberConstructor | StringConstructor)[];
|
|
12662
12609
|
loading: (BooleanConstructor | StringConstructor)[];
|
|
12663
|
-
transition: {
|
|
12664
|
-
type: PropType<string | boolean | (import("vue").TransitionProps & {
|
|
12665
|
-
component?: import("vue").Component | undefined;
|
|
12666
|
-
}) | null>;
|
|
12667
|
-
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
|
12668
|
-
component?: import("vue").Component | undefined;
|
|
12669
|
-
}) | null>;
|
|
12670
|
-
};
|
|
12671
12610
|
id: StringConstructor;
|
|
12672
12611
|
appendIcon: PropType<import("../../composables/icons.js").IconValue>;
|
|
12673
12612
|
prependIcon: PropType<import("../../composables/icons.js").IconValue>;
|
|
@@ -22,8 +22,7 @@ import { forwardRefs } from "../../composables/forwardRefs.js";
|
|
|
22
22
|
import { useItems } from "../../composables/list-items.js";
|
|
23
23
|
import { useLocale } from "../../composables/locale.js";
|
|
24
24
|
import { useMenuActivator } from "../../composables/menuActivator.js";
|
|
25
|
-
import { useProxiedModel } from "../../composables/proxiedModel.js";
|
|
26
|
-
import { makeTransitionProps } from "../../composables/transition.js"; // Utilities
|
|
25
|
+
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
|
27
26
|
import { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';
|
|
28
27
|
import { checkPrintable, deepEqual, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
|
|
29
28
|
export const makeVAutocompleteProps = propsFactory({
|
|
@@ -39,10 +38,7 @@ export const makeVAutocompleteProps = propsFactory({
|
|
|
39
38
|
...omit(makeVTextFieldProps({
|
|
40
39
|
modelValue: null,
|
|
41
40
|
role: 'combobox'
|
|
42
|
-
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
43
|
-
...makeTransitionProps({
|
|
44
|
-
transition: false
|
|
45
|
-
})
|
|
41
|
+
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
46
42
|
}, 'VAutocomplete');
|
|
47
43
|
export const VAutocomplete = genericComponent()({
|
|
48
44
|
name: 'VAutocomplete',
|
|
@@ -67,6 +63,7 @@ export const VAutocomplete = genericComponent()({
|
|
|
67
63
|
const vMenuRef = ref();
|
|
68
64
|
const vVirtualScrollRef = ref();
|
|
69
65
|
const selectionIndex = shallowRef(-1);
|
|
66
|
+
const _searchLock = shallowRef(null);
|
|
70
67
|
const {
|
|
71
68
|
items,
|
|
72
69
|
transformIn,
|
|
@@ -88,9 +85,9 @@ export const VAutocomplete = genericComponent()({
|
|
|
88
85
|
const {
|
|
89
86
|
filteredItems,
|
|
90
87
|
getMatches
|
|
91
|
-
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
88
|
+
} = useFilter(props, items, () => _searchLock.value ?? (isPristine.value ? '' : search.value));
|
|
92
89
|
const displayItems = computed(() => {
|
|
93
|
-
if (props.hideSelected) {
|
|
90
|
+
if (props.hideSelected && _searchLock.value === null) {
|
|
94
91
|
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
95
92
|
}
|
|
96
93
|
return filteredItems.value;
|
|
@@ -221,6 +218,7 @@ export const VAutocomplete = genericComponent()({
|
|
|
221
218
|
isPristine.value = true;
|
|
222
219
|
vTextFieldRef.value?.focus();
|
|
223
220
|
}
|
|
221
|
+
_searchLock.value = null;
|
|
224
222
|
}
|
|
225
223
|
function onFocusin(e) {
|
|
226
224
|
isFocused.value = true;
|
|
@@ -256,6 +254,7 @@ export const VAutocomplete = genericComponent()({
|
|
|
256
254
|
} else {
|
|
257
255
|
const add = set !== false;
|
|
258
256
|
model.value = add ? [item] : [];
|
|
257
|
+
_searchLock.value = isPristine.value ? '' : search.value ?? '';
|
|
259
258
|
search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
260
259
|
|
|
261
260
|
// watch for search watcher to trigger
|
|
@@ -275,6 +274,9 @@ export const VAutocomplete = genericComponent()({
|
|
|
275
274
|
} else {
|
|
276
275
|
if (!props.multiple && search.value == null) model.value = [];
|
|
277
276
|
menu.value = false;
|
|
277
|
+
if (!isPristine.value && search.value) {
|
|
278
|
+
_searchLock.value = search.value;
|
|
279
|
+
}
|
|
278
280
|
search.value = '';
|
|
279
281
|
selectionIndex.value = -1;
|
|
280
282
|
}
|
|
@@ -284,13 +286,14 @@ export const VAutocomplete = genericComponent()({
|
|
|
284
286
|
if (val) menu.value = true;
|
|
285
287
|
isPristine.value = !val;
|
|
286
288
|
});
|
|
287
|
-
watch(menu,
|
|
288
|
-
if (!props.hideSelected &&
|
|
289
|
+
watch(menu, val => {
|
|
290
|
+
if (!props.hideSelected && val && model.value.length && isPristine.value) {
|
|
289
291
|
const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));
|
|
290
292
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
291
293
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
292
294
|
});
|
|
293
295
|
}
|
|
296
|
+
if (val) _searchLock.value = null;
|
|
294
297
|
});
|
|
295
298
|
watch(items, (newVal, oldVal) => {
|
|
296
299
|
if (menu.value) return;
|
|
@@ -341,7 +344,6 @@ export const VAutocomplete = genericComponent()({
|
|
|
341
344
|
"maxHeight": 310,
|
|
342
345
|
"openOnClick": false,
|
|
343
346
|
"closeOnContentClick": false,
|
|
344
|
-
"transition": props.transition,
|
|
345
347
|
"onAfterEnter": onAfterEnter,
|
|
346
348
|
"onAfterLeave": onAfterLeave
|
|
347
349
|
}, props.menuProps), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAutocomplete.js","names":["VAvatar","VCheckboxBtn","VChip","VDefaultsProvider","VDivider","VIcon","VList","VListItem","VListSubheader","VMenu","makeSelectProps","makeVTextFieldProps","VTextField","VVirtualScroll","useScrolling","useTextColor","highlightResult","makeFilterProps","useFilter","useForm","forwardRefs","useItems","useLocale","useMenuActivator","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","watch","checkPrintable","deepEqual","ensureValidVNode","genericComponent","IN_BROWSER","matchesSelector","noop","omit","propsFactory","useRender","wrapInArray","makeVAutocompleteProps","autoSelectFirst","type","Boolean","String","clearOnSelect","search","filterKeys","modelValue","role","transition","VAutocomplete","name","props","emits","focused","value","setup","_ref","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","selectionIndex","items","transformIn","transformOut","textColorClasses","textColorStyles","color","model","v","transformed","multiple","counterValue","length","form","filteredItems","getMatches","displayItems","hideSelected","filter","filteredItem","some","s","hasChips","chips","chip","hasSelectionSlot","selection","selectedValues","map","highlightFirst","selectFirst","title","menuDisabled","hideNoData","isReadonly","isDisabled","_menu","menu","get","set","ΨopenChildren","size","menuId","ariaExpanded","ariaControls","ariaLabel","listRef","listEvents","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onListKeydown","key","focus","onKeydown","selectionStart","includes","_ref2","select","originalSelectionIndex","prev","searchLength","setSelectionRange","next","onChange","item","find","target","onAfterEnter","eager","calculateVisibleItems","onAfterLeave","onFocusin","setTimeout","onFocusout","onUpdateModelValue","isSelecting","arguments","undefined","disabled","index","findIndex","valueComparator","add","splice","val","oldVal","at","window","requestAnimationFrame","scrollToIndex","newVal","hasList","isDirty","textFieldProps","filterProps","_createVNode","_mergeProps","$event","externalValue","class","style","placeholder","default","_createElementVNode","_Fragment","menuProps","itemColor","listProps","noDataText","_ref3","itemRef","itemProps","active","onClick","divider","raw","subheader","prepend","_ref4","isSelected","prependAvatar","prependIcon","onChipClose","slotProps","onMousedown","hasSlot","slotContent","_normalizeClass","_normalizeStyle","closableChips","closable","text","_createTextVNode","append-inner","_len","args","Array","_key","menuIcon","fieldIconColor"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem, VListSubheader } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { highlightResult, makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useMenuActivator } from '@/composables/menuActivator'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n deepEqual,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n noop,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject> | null\n\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType<boolean | 'exact'>,\n },\n clearOnSelect: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VAutocomplete')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VAutocomplete = genericComponent<new <\n T extends readonly any[],\n Item = ItemType<T>,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<Item, ReturnObject, Multiple> = Value<Item, ReturnObject, Multiple>\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit<VInputSlots & VFieldSlots, 'default'> & {\n item: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n chip: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n selection: { item: ListItem<Item>, index: number }\n subheader: { props: Record<string, unknown>, index: number }\n divider: { props: Record<string, unknown>, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VAutocomplete',\n\n props: makeVAutocompleteProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:search': (value: any) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref<VTextField>()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref<VMenu>()\n const vVirtualScrollRef = ref<VVirtualScroll>()\n const selectionIndex = shallowRef(-1)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(() => vTextFieldRef.value?.color)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm(props)\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const selectedValues = computed(() => model.value.map(selection => selection.props.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n form.isReadonly.value || form.isDisabled.value\n ))\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n if (v && menuDisabled.value) return\n _menu.value = v\n },\n })\n\n const { menuId, ariaExpanded, ariaControls, ariaLabel } = useMenuActivator(props, menu)\n\n const listRef = ref<VList>()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e) || e.key === 'Backspace') {\n vTextFieldRef.value?.focus()\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (form.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value?.selectionStart\n const length = model.value.length\n\n if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (\n !props.multiple &&\n hasSelectionSlot.value &&\n model.value.length > 0 &&\n !search.value\n ) return select(model.value[0], false)\n\n if (~selectionIndex.value) {\n e.preventDefault()\n const originalSelectionIndex = selectionIndex.value\n select(model.value[selectionIndex.value], false)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n if (!props.multiple) return\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n const searchLength = search.value?.length ?? null\n selectionIndex.value = -1\n vTextFieldRef.value?.setSelectionRange(searchLength, searchLength)\n }\n } else if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value?.setSelectionRange(0, 0)\n }\n } else if (~selectionIndex.value && checkPrintable(e)) {\n selectionIndex.value = -1\n }\n }\n\n function onChange (e: Event) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === (e.target as HTMLInputElement).value)\n if (item) {\n select(item)\n }\n }\n }\n\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple && !hasSelectionSlot.value)) model.value = []\n }\n\n const isSelecting = shallowRef(false)\n\n /** @param set - null means toggle */\n function select (item: ListItem | undefined, set: boolean | null = true) {\n if (!item || item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n\n if (props.clearOnSelect) {\n search.value = ''\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n search.value = add && !hasSelectionSlot.value ? item.title : ''\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return\n\n if (val) {\n isSelecting.value = true\n search.value = (props.multiple || hasSelectionSlot.value) ? '' : String(model.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n if (!props.multiple && search.value == null) model.value = []\n menu.value = false\n search.value = ''\n selectionIndex.value = -1\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => item.value === s.value)\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n v-model={ search.value }\n onUpdate:modelValue={ onUpdateModelValue }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ counterValue.value }\n dirty={ isDirty }\n onChange={ onChange }\n class={[\n 'v-autocomplete',\n `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`,\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n 'v-autocomplete--selection-slot': !!hasSelectionSlot.value,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ form.isReadonly.value }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n aria-expanded={ ariaExpanded.value }\n aria-controls={ ariaControls.value }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n id={ menuId.value }\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n disabled={ menuDisabled.value }\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n filterable\n selected={ selectedValues.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n tabindex=\"-1\"\n selectable\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem key=\"no-data\" title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value } itemKey=\"value\">\n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item, null),\n })\n\n if (item.type === 'divider') {\n return slots.divider?.({ props: item.raw, index }) ?? (\n <VDivider { ...item.props } key={ `divider-${index}` } />\n )\n }\n\n if (item.type === 'subheader') {\n return slots.subheader?.({ props: item.raw, index }) ?? (\n <VListSubheader { ...item.props } key={ `subheader-${index}` } />\n )\n }\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps } role=\"option\">\n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n key={ item.value }\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n />\n ) : undefined }\n\n { item.props.prependAvatar && (\n <VAvatar image={ item.props.prependAvatar } />\n )}\n\n { item.props.prependIcon && (\n <VIcon icon={ item.props.prependIcon } />\n )}\n </>\n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult('v-autocomplete', item.title, getMatches(item)?.title)\n },\n }}\n </VListItem>\n )\n }}\n </VVirtualScroll>\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips.value\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n <div\n key={ item.value }\n class={[\n 'v-autocomplete__selection',\n index === selectionIndex.value && [\n 'v-autocomplete__selection--selected',\n textColorClasses.value,\n ],\n ]}\n style={ index === selectionIndex.value ? textColorStyles.value : {} }\n >\n { hasChips.value ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n disabled={ item.props.disabled }\n { ...slotProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"chip-defaults\"\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slotContent }\n </VDefaultsProvider>\n )\n ) : (\n slotContent ?? (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n <VIcon\n class=\"v-autocomplete__menu-icon\"\n color={ vTextFieldRef.value?.fieldIconColor }\n icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ ariaLabel.value }\n title={ ariaLabel.value }\n tabindex=\"-1\"\n />\n ) : undefined }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VAutocomplete.js","names":["VAvatar","VCheckboxBtn","VChip","VDefaultsProvider","VDivider","VIcon","VList","VListItem","VListSubheader","VMenu","makeSelectProps","makeVTextFieldProps","VTextField","VVirtualScroll","useScrolling","useTextColor","highlightResult","makeFilterProps","useFilter","useForm","forwardRefs","useItems","useLocale","useMenuActivator","useProxiedModel","computed","mergeProps","nextTick","ref","shallowRef","watch","checkPrintable","deepEqual","ensureValidVNode","genericComponent","IN_BROWSER","matchesSelector","noop","omit","propsFactory","useRender","wrapInArray","makeVAutocompleteProps","autoSelectFirst","type","Boolean","String","clearOnSelect","search","filterKeys","modelValue","role","VAutocomplete","name","props","emits","focused","value","setup","_ref","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","selectionIndex","_searchLock","items","transformIn","transformOut","textColorClasses","textColorStyles","color","model","v","transformed","multiple","counterValue","length","form","filteredItems","getMatches","displayItems","hideSelected","filter","filteredItem","some","s","hasChips","chips","chip","hasSelectionSlot","selection","selectedValues","map","highlightFirst","selectFirst","title","menuDisabled","hideNoData","isReadonly","isDisabled","_menu","menu","get","set","ΨopenChildren","size","menuId","ariaExpanded","ariaControls","ariaLabel","listRef","listEvents","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onListKeydown","key","focus","onKeydown","selectionStart","includes","_ref2","select","originalSelectionIndex","prev","searchLength","setSelectionRange","next","onChange","item","find","target","onAfterEnter","eager","calculateVisibleItems","onAfterLeave","onFocusin","setTimeout","onFocusout","onUpdateModelValue","isSelecting","arguments","undefined","disabled","index","findIndex","valueComparator","add","splice","val","oldVal","at","window","requestAnimationFrame","scrollToIndex","newVal","hasList","isDirty","textFieldProps","filterProps","_createVNode","_mergeProps","$event","externalValue","class","style","placeholder","default","_createElementVNode","_Fragment","menuProps","itemColor","listProps","noDataText","_ref3","itemRef","itemProps","active","onClick","divider","raw","subheader","prepend","_ref4","isSelected","prependAvatar","prependIcon","onChipClose","slotProps","onMousedown","hasSlot","slotContent","_normalizeClass","_normalizeStyle","closableChips","closable","text","_createTextVNode","append-inner","_len","args","Array","_key","menuIcon","fieldIconColor"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem, VListSubheader } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { highlightResult, makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useMenuActivator } from '@/composables/menuActivator'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n deepEqual,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n noop,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject> | null\n\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType<boolean | 'exact'>,\n },\n clearOnSelect: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n}, 'VAutocomplete')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VAutocomplete = genericComponent<new <\n T extends readonly any[],\n Item = ItemType<T>,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<Item, ReturnObject, Multiple> = Value<Item, ReturnObject, Multiple>\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit<VInputSlots & VFieldSlots, 'default'> & {\n item: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n chip: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n selection: { item: ListItem<Item>, index: number }\n subheader: { props: Record<string, unknown>, index: number }\n divider: { props: Record<string, unknown>, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VAutocomplete',\n\n props: makeVAutocompleteProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:search': (value: any) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref<VTextField>()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref<VMenu>()\n const vVirtualScrollRef = ref<VVirtualScroll>()\n const selectionIndex = shallowRef(-1)\n const _searchLock = shallowRef<string | null>(null)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(() => vTextFieldRef.value?.color)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm(props)\n const { filteredItems, getMatches } = useFilter(\n props,\n items,\n () => _searchLock.value ?? (isPristine.value ? '' : search.value))\n\n const displayItems = computed(() => {\n if (props.hideSelected && _searchLock.value === null) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const selectedValues = computed(() => model.value.map(selection => selection.props.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n form.isReadonly.value || form.isDisabled.value\n ))\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n if (v && menuDisabled.value) return\n _menu.value = v\n },\n })\n\n const { menuId, ariaExpanded, ariaControls, ariaLabel } = useMenuActivator(props, menu)\n\n const listRef = ref<VList>()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e) || e.key === 'Backspace') {\n vTextFieldRef.value?.focus()\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (form.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value?.selectionStart\n const length = model.value.length\n\n if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (\n !props.multiple &&\n hasSelectionSlot.value &&\n model.value.length > 0 &&\n !search.value\n ) return select(model.value[0], false)\n\n if (~selectionIndex.value) {\n e.preventDefault()\n const originalSelectionIndex = selectionIndex.value\n select(model.value[selectionIndex.value], false)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n if (!props.multiple) return\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n const searchLength = search.value?.length ?? null\n selectionIndex.value = -1\n vTextFieldRef.value?.setSelectionRange(searchLength, searchLength)\n }\n } else if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value?.setSelectionRange(0, 0)\n }\n } else if (~selectionIndex.value && checkPrintable(e)) {\n selectionIndex.value = -1\n }\n }\n\n function onChange (e: Event) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === (e.target as HTMLInputElement).value)\n if (item) {\n select(item)\n }\n }\n }\n\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n _searchLock.value = null\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple && !hasSelectionSlot.value)) model.value = []\n }\n\n const isSelecting = shallowRef(false)\n\n /** @param set - null means toggle */\n function select (item: ListItem | undefined, set: boolean | null = true) {\n if (!item || item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n\n if (props.clearOnSelect) {\n search.value = ''\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n _searchLock.value = isPristine.value ? '' : (search.value ?? '')\n search.value = add && !hasSelectionSlot.value ? item.title : ''\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return\n\n if (val) {\n isSelecting.value = true\n search.value = (props.multiple || hasSelectionSlot.value) ? '' : String(model.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n if (!props.multiple && search.value == null) model.value = []\n menu.value = false\n if (!isPristine.value && search.value) {\n _searchLock.value = search.value\n }\n search.value = ''\n selectionIndex.value = -1\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n watch(menu, val => {\n if (!props.hideSelected && val && model.value.length && isPristine.value) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => item.value === s.value)\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n if (val) _searchLock.value = null\n })\n\n watch(items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n v-model={ search.value }\n onUpdate:modelValue={ onUpdateModelValue }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ counterValue.value }\n dirty={ isDirty }\n onChange={ onChange }\n class={[\n 'v-autocomplete',\n `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`,\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n 'v-autocomplete--selection-slot': !!hasSelectionSlot.value,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ form.isReadonly.value }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n aria-expanded={ ariaExpanded.value }\n aria-controls={ ariaControls.value }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n id={ menuId.value }\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n disabled={ menuDisabled.value }\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n filterable\n selected={ selectedValues.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n tabindex=\"-1\"\n selectable\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem key=\"no-data\" title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value } itemKey=\"value\">\n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item, null),\n })\n\n if (item.type === 'divider') {\n return slots.divider?.({ props: item.raw, index }) ?? (\n <VDivider { ...item.props } key={ `divider-${index}` } />\n )\n }\n\n if (item.type === 'subheader') {\n return slots.subheader?.({ props: item.raw, index }) ?? (\n <VListSubheader { ...item.props } key={ `subheader-${index}` } />\n )\n }\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps } role=\"option\">\n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n key={ item.value }\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n />\n ) : undefined }\n\n { item.props.prependAvatar && (\n <VAvatar image={ item.props.prependAvatar } />\n )}\n\n { item.props.prependIcon && (\n <VIcon icon={ item.props.prependIcon } />\n )}\n </>\n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult('v-autocomplete', item.title, getMatches(item)?.title)\n },\n }}\n </VListItem>\n )\n }}\n </VVirtualScroll>\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips.value\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n <div\n key={ item.value }\n class={[\n 'v-autocomplete__selection',\n index === selectionIndex.value && [\n 'v-autocomplete__selection--selected',\n textColorClasses.value,\n ],\n ]}\n style={ index === selectionIndex.value ? textColorStyles.value : {} }\n >\n { hasChips.value ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n disabled={ item.props.disabled }\n { ...slotProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"chip-defaults\"\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slotContent }\n </VDefaultsProvider>\n )\n ) : (\n slotContent ?? (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n <VIcon\n class=\"v-autocomplete__menu-icon\"\n color={ vTextFieldRef.value?.fieldIconColor }\n icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ ariaLabel.value }\n title={ ariaLabel.value }\n tabindex=\"-1\"\n />\n ) : undefined }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -75,4 +75,14 @@
|
|
|
75
75
|
display: inline-flex;
|
|
76
76
|
justify-content: center;
|
|
77
77
|
margin: 0 4px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@media (forced-colors: active) {
|
|
81
|
+
.v-badge__badge {
|
|
82
|
+
forced-color-adjust: preserve-parent-color;
|
|
83
|
+
}
|
|
84
|
+
.v-badge__badge.v-badge__badge {
|
|
85
|
+
background: highlight !important;
|
|
86
|
+
color: highlighttext !important;
|
|
87
|
+
}
|
|
78
88
|
}
|
|
@@ -76,3 +76,12 @@
|
|
|
76
76
|
display: inline-flex
|
|
77
77
|
justify-content: center
|
|
78
78
|
margin: $badge-wrapper-margin
|
|
79
|
+
|
|
80
|
+
@media (forced-colors: active)
|
|
81
|
+
.v-badge__badge
|
|
82
|
+
forced-color-adjust: preserve-parent-color
|
|
83
|
+
// override .bg-* classes specificity when used without $layers
|
|
84
|
+
&.v-badge__badge
|
|
85
|
+
background: highlight !important
|
|
86
|
+
color: highlighttext !important
|
|
87
|
+
|
|
@@ -21,6 +21,7 @@ export declare const makeVChipGroupProps: <Defaults extends {
|
|
|
21
21
|
selectedClass?: unknown;
|
|
22
22
|
disabled?: unknown;
|
|
23
23
|
centerActive?: unknown;
|
|
24
|
+
scrollToActive?: unknown;
|
|
24
25
|
contentClass?: unknown;
|
|
25
26
|
direction?: unknown;
|
|
26
27
|
symbol?: unknown;
|
|
@@ -142,6 +143,22 @@ export declare const makeVChipGroupProps: <Defaults extends {
|
|
|
142
143
|
type: PropType<unknown extends Defaults["centerActive"] ? boolean : boolean | Defaults["centerActive"]>;
|
|
143
144
|
default: unknown extends Defaults["centerActive"] ? boolean : boolean | Defaults["centerActive"];
|
|
144
145
|
};
|
|
146
|
+
scrollToActive: unknown extends Defaults["scrollToActive"] ? Omit<{
|
|
147
|
+
type: BooleanConstructor;
|
|
148
|
+
default: boolean;
|
|
149
|
+
}, "default" | "type"> & {
|
|
150
|
+
type: PropType<boolean>;
|
|
151
|
+
default: boolean;
|
|
152
|
+
} : Omit<Omit<{
|
|
153
|
+
type: BooleanConstructor;
|
|
154
|
+
default: boolean;
|
|
155
|
+
}, "default" | "type"> & {
|
|
156
|
+
type: PropType<boolean>;
|
|
157
|
+
default: boolean;
|
|
158
|
+
}, "default" | "type"> & {
|
|
159
|
+
type: PropType<unknown extends Defaults["scrollToActive"] ? boolean : boolean | Defaults["scrollToActive"]>;
|
|
160
|
+
default: unknown extends Defaults["scrollToActive"] ? boolean : boolean | Defaults["scrollToActive"];
|
|
161
|
+
};
|
|
145
162
|
contentClass: unknown extends Defaults["contentClass"] ? null : {
|
|
146
163
|
type: PropType<unknown extends Defaults["contentClass"] ? any : any>;
|
|
147
164
|
default: unknown extends Defaults["contentClass"] ? any : any;
|
|
@@ -238,6 +255,7 @@ export declare const VChipGroup: {
|
|
|
238
255
|
selectedClass: string;
|
|
239
256
|
disabled: boolean;
|
|
240
257
|
centerActive: boolean;
|
|
258
|
+
scrollToActive: boolean;
|
|
241
259
|
direction: "horizontal" | "vertical";
|
|
242
260
|
symbol: any;
|
|
243
261
|
nextIcon: import("../../composables/icons.js").IconValue;
|
|
@@ -266,6 +284,7 @@ export declare const VChipGroup: {
|
|
|
266
284
|
selectedClass: string;
|
|
267
285
|
disabled: boolean;
|
|
268
286
|
centerActive: boolean;
|
|
287
|
+
scrollToActive: boolean;
|
|
269
288
|
direction: "horizontal" | "vertical";
|
|
270
289
|
symbol: any;
|
|
271
290
|
nextIcon: import("../../composables/icons.js").IconValue;
|
|
@@ -299,6 +318,7 @@ export declare const VChipGroup: {
|
|
|
299
318
|
selectedClass: string;
|
|
300
319
|
disabled: boolean;
|
|
301
320
|
centerActive: boolean;
|
|
321
|
+
scrollToActive: boolean;
|
|
302
322
|
direction: "horizontal" | "vertical";
|
|
303
323
|
symbol: any;
|
|
304
324
|
nextIcon: import("../../composables/icons.js").IconValue;
|
|
@@ -325,6 +345,7 @@ export declare const VChipGroup: {
|
|
|
325
345
|
selectedClass: string;
|
|
326
346
|
disabled: boolean;
|
|
327
347
|
centerActive: boolean;
|
|
348
|
+
scrollToActive: boolean;
|
|
328
349
|
direction: "horizontal" | "vertical";
|
|
329
350
|
symbol: any;
|
|
330
351
|
nextIcon: import("../../composables/icons.js").IconValue;
|
|
@@ -345,6 +366,7 @@ export declare const VChipGroup: {
|
|
|
345
366
|
selectedClass: string;
|
|
346
367
|
disabled: boolean;
|
|
347
368
|
centerActive: boolean;
|
|
369
|
+
scrollToActive: boolean;
|
|
348
370
|
direction: "horizontal" | "vertical";
|
|
349
371
|
symbol: any;
|
|
350
372
|
nextIcon: import("../../composables/icons.js").IconValue;
|
|
@@ -373,6 +395,7 @@ export declare const VChipGroup: {
|
|
|
373
395
|
selectedClass: string;
|
|
374
396
|
disabled: boolean;
|
|
375
397
|
centerActive: boolean;
|
|
398
|
+
scrollToActive: boolean;
|
|
376
399
|
direction: "horizontal" | "vertical";
|
|
377
400
|
symbol: any;
|
|
378
401
|
nextIcon: import("../../composables/icons.js").IconValue;
|
|
@@ -437,6 +460,13 @@ export declare const VChipGroup: {
|
|
|
437
460
|
};
|
|
438
461
|
disabled: BooleanConstructor;
|
|
439
462
|
centerActive: BooleanConstructor;
|
|
463
|
+
scrollToActive: Omit<{
|
|
464
|
+
type: BooleanConstructor;
|
|
465
|
+
default: boolean;
|
|
466
|
+
}, "default" | "type"> & {
|
|
467
|
+
type: PropType<boolean>;
|
|
468
|
+
default: boolean;
|
|
469
|
+
};
|
|
440
470
|
contentClass: null;
|
|
441
471
|
direction: {
|
|
442
472
|
type: PropType<"horizontal" | "vertical">;
|
|
@@ -506,6 +536,13 @@ export declare const VChipGroup: {
|
|
|
506
536
|
};
|
|
507
537
|
disabled: BooleanConstructor;
|
|
508
538
|
centerActive: BooleanConstructor;
|
|
539
|
+
scrollToActive: Omit<{
|
|
540
|
+
type: BooleanConstructor;
|
|
541
|
+
default: boolean;
|
|
542
|
+
}, "default" | "type"> & {
|
|
543
|
+
type: PropType<boolean>;
|
|
544
|
+
default: boolean;
|
|
545
|
+
};
|
|
509
546
|
contentClass: null;
|
|
510
547
|
direction: {
|
|
511
548
|
type: PropType<"horizontal" | "vertical">;
|
|
@@ -21,7 +21,9 @@ export const makeVChipGroupProps = propsFactory({
|
|
|
21
21
|
type: Function,
|
|
22
22
|
default: deepEqual
|
|
23
23
|
},
|
|
24
|
-
...makeVSlideGroupProps(
|
|
24
|
+
...makeVSlideGroupProps({
|
|
25
|
+
scrollToActive: false
|
|
26
|
+
}),
|
|
25
27
|
...makeComponentProps(),
|
|
26
28
|
...makeGroupProps({
|
|
27
29
|
selectedClass: 'v-chip--selected'
|