vuetify 3.3.14 → 3.3.16

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.
Files changed (113) hide show
  1. package/dist/json/attributes.json +427 -403
  2. package/dist/json/importMap-labs.json +4 -4
  3. package/dist/json/importMap.json +4 -4
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +1002 -924
  6. package/dist/vuetify-labs.css +159 -134
  7. package/dist/vuetify-labs.d.ts +609 -370
  8. package/dist/vuetify-labs.esm.js +165 -150
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +165 -150
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +129 -105
  13. package/dist/vuetify.d.ts +547 -308
  14. package/dist/vuetify.esm.js +157 -144
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +157 -144
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +234 -234
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.mts +2 -0
  22. package/lib/blueprints/md1.d.mts +2 -0
  23. package/lib/blueprints/md2.d.mts +2 -0
  24. package/lib/blueprints/md3.d.mts +2 -0
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -26
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.mts +40 -38
  28. package/lib/components/VBtnToggle/VBtnToggle.css +13 -2
  29. package/lib/components/VBtnToggle/VBtnToggle.sass +3 -3
  30. package/lib/components/VBtnToggle/_variables.scss +2 -1
  31. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  32. package/lib/components/VCheckbox/index.d.mts +203 -87
  33. package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -0
  34. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +28 -34
  35. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  36. package/lib/components/VColorPicker/VColorPickerCanvas.sass +1 -0
  37. package/lib/components/VCombobox/VCombobox.mjs +15 -25
  38. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  39. package/lib/components/VCombobox/index.d.mts +40 -38
  40. package/lib/components/VField/VField.css +16 -12
  41. package/lib/components/VField/VField.sass +16 -8
  42. package/lib/components/VField/_variables.scss +0 -1
  43. package/lib/components/VIcon/VIcon.css +1 -0
  44. package/lib/components/VIcon/VIcon.sass +1 -0
  45. package/lib/components/VLabel/VLabel.css +1 -0
  46. package/lib/components/VLabel/VLabel.sass +1 -0
  47. package/lib/components/VLabel/_variables.scss +1 -1
  48. package/lib/components/VList/index.d.mts +21 -3
  49. package/lib/components/VOverlay/useActivator.mjs +1 -1
  50. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  51. package/lib/components/VRadio/index.d.mts +82 -23
  52. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  53. package/lib/components/VRadioGroup/index.d.mts +75 -109
  54. package/lib/components/VSelect/VSelect.mjs +9 -23
  55. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  56. package/lib/components/VSelect/index.d.mts +14 -11
  57. package/lib/components/VSelectionControl/VSelectionControl.css +1 -1
  58. package/lib/components/VSelectionControl/VSelectionControl.mjs +17 -2
  59. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  60. package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
  61. package/lib/components/VSelectionControl/index.d.mts +19 -5
  62. package/lib/components/VSwitch/VSwitch.css +7 -5
  63. package/lib/components/VSwitch/VSwitch.mjs +18 -8
  64. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  65. package/lib/components/VSwitch/VSwitch.sass +6 -4
  66. package/lib/components/VSwitch/_variables.scss +5 -3
  67. package/lib/components/VSwitch/index.d.mts +82 -23
  68. package/lib/components/VTable/VTable.css +3 -0
  69. package/lib/components/VTable/VTable.sass +4 -0
  70. package/lib/components/VTable/_variables.scss +3 -0
  71. package/lib/components/VTabs/VTab.css +1 -0
  72. package/lib/components/VTabs/VTab.mjs +4 -5
  73. package/lib/components/VTabs/VTab.mjs.map +1 -1
  74. package/lib/components/VTabs/VTab.sass +1 -0
  75. package/lib/components/VTabs/_variables.scss +1 -0
  76. package/lib/components/VTextarea/VTextarea.mjs +1 -0
  77. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  78. package/lib/components/index.d.mts +544 -307
  79. package/lib/composables/filter.mjs +4 -4
  80. package/lib/composables/filter.mjs.map +1 -1
  81. package/lib/composables/list-items.mjs +26 -15
  82. package/lib/composables/list-items.mjs.map +1 -1
  83. package/lib/composables/theme.mjs +6 -2
  84. package/lib/composables/theme.mjs.map +1 -1
  85. package/lib/entry-bundler.mjs +1 -1
  86. package/lib/framework.mjs +1 -1
  87. package/lib/index.d.mts +4 -2
  88. package/lib/labs/VBottomSheet/VBottomSheet.css +1 -0
  89. package/lib/labs/VBottomSheet/VBottomSheet.sass +2 -0
  90. package/lib/labs/VBottomSheet/_variables.scss +1 -0
  91. package/lib/labs/VDataIterator/index.d.mts +30 -26
  92. package/lib/labs/VDataTable/index.d.mts +43 -39
  93. package/lib/labs/VDataTable/types.mjs.map +1 -1
  94. package/lib/labs/VDatePicker/VDatePicker.mjs +4 -2
  95. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  96. package/lib/labs/VDatePicker/VDatePickerControls.mjs +4 -4
  97. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
  98. package/lib/labs/VDatePicker/VDatePickerYears.css +1 -1
  99. package/lib/labs/VDatePicker/VDatePickerYears.sass +1 -1
  100. package/lib/labs/VDatePicker/index.d.mts +24 -24
  101. package/lib/labs/VDateRangePicker/index.d.mts +8 -8
  102. package/lib/labs/components.d.mts +80 -76
  103. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  104. package/lib/labs/date/adapters/vuetify.d.mts +4 -0
  105. package/lib/labs/date/adapters/vuetify.mjs +13 -0
  106. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  107. package/lib/labs/date/index.d.mts +4 -0
  108. package/lib/locale/bg.mjs +23 -23
  109. package/lib/locale/bg.mjs.map +1 -1
  110. package/lib/locale/fa.mjs +16 -16
  111. package/lib/locale/fa.mjs.map +1 -1
  112. package/lib/styles/tools/_states.sass +5 -5
  113. package/package.json +2 -2
@@ -146,6 +146,8 @@ interface DateAdapter<T> {
146
146
  date(value?: any): T | null;
147
147
  format(date: T, formatString: string): string;
148
148
  toJsDate(value: T): Date;
149
+ startOfDay(date: T): T;
150
+ endOfDay(date: T): T;
149
151
  startOfMonth(date: T): T;
150
152
  endOfMonth(date: T): T;
151
153
  startOfYear(date: T): T;
@@ -146,6 +146,8 @@ interface DateAdapter<T> {
146
146
  date(value?: any): T | null;
147
147
  format(date: T, formatString: string): string;
148
148
  toJsDate(value: T): Date;
149
+ startOfDay(date: T): T;
150
+ endOfDay(date: T): T;
149
151
  startOfMonth(date: T): T;
150
152
  endOfMonth(date: T): T;
151
153
  startOfYear(date: T): T;
@@ -146,6 +146,8 @@ interface DateAdapter<T> {
146
146
  date(value?: any): T | null;
147
147
  format(date: T, formatString: string): string;
148
148
  toJsDate(value: T): Date;
149
+ startOfDay(date: T): T;
150
+ endOfDay(date: T): T;
149
151
  startOfMonth(date: T): T;
150
152
  endOfMonth(date: T): T;
151
153
  startOfYear(date: T): T;
@@ -146,6 +146,8 @@ interface DateAdapter<T> {
146
146
  date(value?: any): T | null;
147
147
  format(date: T, formatString: string): string;
148
148
  toJsDate(value: T): Date;
149
+ startOfDay(date: T): T;
150
+ endOfDay(date: T): T;
149
151
  startOfMonth(date: T): T;
150
152
  endOfMonth(date: T): T;
151
153
  startOfYear(date: T): T;
@@ -22,7 +22,7 @@ import { useLocale } from "../../composables/locale.mjs";
22
22
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
23
23
  import { makeTransitionProps } from "../../composables/transition.mjs"; // Utilities
24
24
  import { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';
25
- import { genericComponent, getPropertyFromItem, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
25
+ import { genericComponent, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
26
26
  function highlightResult(text, matches, length) {
27
27
  if (matches == null) return text;
28
28
  if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
@@ -103,24 +103,13 @@ export const VAutocomplete = genericComponent()({
103
103
  filteredItems,
104
104
  getMatches
105
105
  } = useFilter(props, items, () => isPristine.value ? '' : search.value);
106
- const selections = computed(() => {
107
- return model.value.map(v => {
108
- return items.value.find(item => {
109
- const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
110
- const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
111
- if (itemRawValue === undefined || modelRawValue === undefined) return false;
112
- return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
113
- }) || v;
114
- });
115
- });
116
106
  const displayItems = computed(() => {
117
107
  if (props.hideSelected) {
118
- return filteredItems.value.filter(filteredItem => !selections.value.some(s => s.value === filteredItem.value));
108
+ return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
119
109
  }
120
110
  return filteredItems.value;
121
111
  });
122
- const selected = computed(() => selections.value.map(selection => selection.props.value));
123
- const selection = computed(() => selections.value[selectionIndex.value]);
112
+ const selectedValues = computed(() => model.value.map(selection => selection.props.value));
124
113
  const highlightFirst = computed(() => {
125
114
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
126
115
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
@@ -152,7 +141,7 @@ export const VAutocomplete = genericComponent()({
152
141
  function onKeydown(e) {
153
142
  if (props.readonly || form?.isReadonly.value) return;
154
143
  const selectionStart = vTextFieldRef.value.selectionStart;
155
- const length = selected.value.length;
144
+ const length = model.value.length;
156
145
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
157
146
  e.preventDefault();
158
147
  }
@@ -177,13 +166,14 @@ export const VAutocomplete = genericComponent()({
177
166
  return;
178
167
  }
179
168
  const originalSelectionIndex = selectionIndex.value;
180
- if (selection.value) select(selection.value);
169
+ const selectedItem = model.value[selectionIndex.value];
170
+ if (selectedItem) select(selectedItem);
181
171
  selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
182
172
  }
183
173
  if (e.key === 'ArrowLeft') {
184
174
  if (selectionIndex.value < 0 && selectionStart > 0) return;
185
175
  const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
186
- if (selections.value[prev]) {
176
+ if (model.value[prev]) {
187
177
  selectionIndex.value = prev;
188
178
  } else {
189
179
  selectionIndex.value = -1;
@@ -193,7 +183,7 @@ export const VAutocomplete = genericComponent()({
193
183
  if (e.key === 'ArrowRight') {
194
184
  if (selectionIndex.value < 0) return;
195
185
  const next = selectionIndex.value + 1;
196
- if (selections.value[next]) {
186
+ if (model.value[next]) {
197
187
  selectionIndex.value = next;
198
188
  } else {
199
189
  selectionIndex.value = -1;
@@ -233,7 +223,7 @@ export const VAutocomplete = genericComponent()({
233
223
  const isSelecting = shallowRef(false);
234
224
  function select(item) {
235
225
  if (props.multiple) {
236
- const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
226
+ const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
237
227
  if (index === -1) {
238
228
  model.value = [...model.value, item];
239
229
  } else {
@@ -254,11 +244,11 @@ export const VAutocomplete = genericComponent()({
254
244
  if (val === oldVal) return;
255
245
  if (val) {
256
246
  isSelecting.value = true;
257
- search.value = props.multiple ? '' : String(selections.value.at(-1)?.props.title ?? '');
247
+ search.value = props.multiple ? '' : String(model.value.at(-1)?.props.title ?? '');
258
248
  isPristine.value = true;
259
249
  nextTick(() => isSelecting.value = false);
260
250
  } else {
261
- if (!props.multiple && !search.value) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !selections.value.some(_ref2 => {
251
+ if (!props.multiple && !search.value) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
262
252
  let {
263
253
  value
264
254
  } = _ref2;
@@ -277,8 +267,8 @@ export const VAutocomplete = genericComponent()({
277
267
  isPristine.value = !val;
278
268
  });
279
269
  watch(menu, () => {
280
- if (!props.hideSelected && menu.value && selections.value.length) {
281
- const index = displayItems.value.findIndex(item => selections.value.some(s => item.value === s.value));
270
+ if (!props.hideSelected && menu.value && model.value.length) {
271
+ const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));
282
272
  IN_BROWSER && window.requestAnimationFrame(() => {
283
273
  index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
284
274
  });
@@ -330,7 +320,7 @@ export const VAutocomplete = genericComponent()({
330
320
  }, props.menuProps), {
331
321
  default: () => [hasList && _createVNode(VList, {
332
322
  "ref": listRef,
333
- "selected": selected.value,
323
+ "selected": selectedValues.value,
334
324
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
335
325
  "onMousedown": e => e.preventDefault(),
336
326
  "onKeydown": onListKeydown,
@@ -384,7 +374,7 @@ export const VAutocomplete = genericComponent()({
384
374
  }
385
375
  }), slots['append-item']?.()]
386
376
  })]
387
- }), selections.value.map((item, index) => {
377
+ }), model.value.map((item, index) => {
388
378
  function onChipClose(e) {
389
379
  e.stopPropagation();
390
380
  e.preventDefault();
@@ -428,7 +418,7 @@ export const VAutocomplete = genericComponent()({
428
418
  index
429
419
  }) ?? _createVNode("span", {
430
420
  "class": "v-autocomplete__selection-text"
431
- }, [item.title, props.multiple && index < selections.value.length - 1 && _createVNode("span", {
421
+ }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode("span", {
432
422
  "class": "v-autocomplete__selection-comma"
433
423
  }, [_createTextVNode(",")])])]);
434
424
  })]),
@@ -1 +1 @@
1
- {"version":3,"file":"VAutocomplete.mjs","names":["VCheckboxBtn","VChip","VDefaultsProvider","VIcon","VList","VListItem","VMenu","makeSelectProps","makeVTextFieldProps","VTextField","VVirtualScroll","useScrolling","useTextColor","makeFilterProps","useFilter","useForm","forwardRefs","useItems","useLocale","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","watch","genericComponent","getPropertyFromItem","IN_BROWSER","matchesSelector","noop","omit","propsFactory","useRender","wrapInArray","highlightResult","text","matches","length","Array","isArray","Error","_createVNode","_Fragment","substr","makeVAutocompleteProps","autoSelectFirst","type","Boolean","String","search","filterKeys","modelValue","role","transition","VAutocomplete","name","props","emits","focused","val","setup","_ref","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","_menu","menu","get","value","set","v","ΨopenChildren","selectionIndex","color","label","closeText","openText","items","transformIn","transformOut","textColorClasses","textColorStyles","model","transformed","multiple","form","filteredItems","getMatches","selections","map","find","item","itemRawValue","raw","itemValue","modelRawValue","undefined","returnObject","valueComparator","displayItems","hideSelected","filter","filteredItem","some","s","selected","selection","highlightFirst","selectFirst","title","menuDisabled","hideNoData","readonly","isReadonly","listRef","onListScroll","onListKeydown","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onKeydown","selectionStart","includes","key","select","focus","originalSelectionIndex","prev","setSelectionRange","next","onInput","target","onChange","onAfterLeave","onFocusin","setTimeout","onFocusout","onUpdateModelValue","isSelecting","index","findIndex","splice","oldVal","at","_ref2","window","requestAnimationFrame","scrollToIndex","hasChips","chips","chip","hasList","isDirty","textFieldProps","filterProps","_mergeProps","$event","externalValue","class","style","placeholder","default","eager","menuProps","itemColor","noDataText","_ref3","itemRef","itemProps","active","onClick","prepend","_ref4","isSelected","prependIcon","onChipClose","slotProps","onMousedown","closableChips","closable","size","_createTextVNode","append-inner","_len","arguments","args","_key","menuIcon"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } 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 { 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 { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n genericComponent,\n getPropertyFromItem,\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 { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\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 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\nexport const VAutocomplete = genericComponent<new <\n T extends readonly any[],\n Item = T extends readonly (infer U)[] ? U : never,\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 returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (val: 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 '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': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\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 _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return\n _menu.value = v\n },\n })\n const selectionIndex = shallowRef(-1)\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(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 form = useForm()\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => {\n const itemRawValue = getPropertyFromItem(item.raw, props.itemValue)\n const modelRawValue = getPropertyFromItem(v.raw, props.itemValue)\n\n if (itemRawValue === undefined || modelRawValue === undefined) return false\n\n return props.returnObject\n ? props.valueComparator(itemRawValue, modelRawValue)\n : props.valueComparator(item.value, v.value)\n }) || v\n })\n })\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !selections.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const selection = computed(() => selections.value[selectionIndex.value])\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 && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref<VList>()\n const { onListScroll, onListKeydown } = 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 onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = selected.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\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 (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {\n select(displayItems.value[0])\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (!props.multiple) return\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (selectionIndex.value < 0) {\n if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n const originalSelectionIndex = selectionIndex.value\n\n if (selection.value) select(selection.value)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n }\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (selections.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (selections.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\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 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)) model.value = []\n }\n\n const isSelecting = shallowRef(false)\n\n function select (item: ListItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n search.value = item.title\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\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 ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n if (!props.multiple && !search.value) model.value = []\n else if (\n highlightFirst.value &&\n !listHasFocus.value &&\n !selections.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n }\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 && selections.value.length) {\n const index = displayItems.value.findIndex(\n item => selections.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 useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\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 modelValue={ search.value }\n onUpdate:modelValue={ onUpdateModelValue }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n dirty={ isDirty }\n onInput={ onInput }\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': !!slots.selection,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\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 onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onScrollPassive={ onListScroll }\n tabindex=\"-1\"\n color={ props.itemColor ?? props.color }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value }>\n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps }>\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.prependIcon && (\n <VIcon icon={ item.props.prependIcon } />\n )}\n </>\n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )\n }}\n </VVirtualScroll>\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\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 ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\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 { slots.chip?.({ item, index, props: slotProps }) }\n </VDefaultsProvider>\n )\n ) : (\n slots.selection?.({ item, index }) ?? (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.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 icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ t(label.value) }\n title={ t(label.value) }\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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"}
1
+ {"version":3,"file":"VAutocomplete.mjs","names":["VCheckboxBtn","VChip","VDefaultsProvider","VIcon","VList","VListItem","VMenu","makeSelectProps","makeVTextFieldProps","VTextField","VVirtualScroll","useScrolling","useTextColor","makeFilterProps","useFilter","useForm","forwardRefs","useItems","useLocale","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","watch","genericComponent","IN_BROWSER","matchesSelector","noop","omit","propsFactory","useRender","wrapInArray","highlightResult","text","matches","length","Array","isArray","Error","_createVNode","_Fragment","substr","makeVAutocompleteProps","autoSelectFirst","type","Boolean","String","search","filterKeys","modelValue","role","transition","VAutocomplete","name","props","emits","focused","val","setup","_ref","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","_menu","menu","get","value","set","v","ΨopenChildren","selectionIndex","color","label","closeText","openText","items","transformIn","transformOut","textColorClasses","textColorStyles","model","transformed","multiple","form","filteredItems","getMatches","displayItems","hideSelected","filter","filteredItem","some","s","selectedValues","map","selection","highlightFirst","selectFirst","title","menuDisabled","hideNoData","readonly","isReadonly","listRef","onListScroll","onListKeydown","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onKeydown","selectionStart","includes","key","select","focus","originalSelectionIndex","selectedItem","prev","setSelectionRange","next","onInput","target","onChange","item","find","onAfterLeave","onFocusin","setTimeout","onFocusout","onUpdateModelValue","isSelecting","index","findIndex","valueComparator","splice","oldVal","at","_ref2","window","requestAnimationFrame","scrollToIndex","hasChips","chips","chip","hasList","isDirty","textFieldProps","filterProps","_mergeProps","$event","externalValue","class","style","undefined","placeholder","default","eager","menuProps","itemColor","noDataText","_ref3","itemRef","itemProps","active","onClick","prepend","_ref4","isSelected","prependIcon","onChipClose","slotProps","onMousedown","closableChips","closable","size","_createTextVNode","append-inner","_len","arguments","args","_key","menuIcon"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } 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 { 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 { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\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 { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\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 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\nexport const VAutocomplete = genericComponent<new <\n T extends readonly any[],\n Item = T extends readonly (infer U)[] ? U : never,\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 returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (val: 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 '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': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\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 _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return\n _menu.value = v\n },\n })\n const selectionIndex = shallowRef(-1)\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(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 form = useForm()\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 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 && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref<VList>()\n const { onListScroll, onListKeydown } = 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 onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = model.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\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 (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {\n select(displayItems.value[0])\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (!props.multiple) return\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (selectionIndex.value < 0) {\n if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n const originalSelectionIndex = selectionIndex.value\n\n const selectedItem = model.value[selectionIndex.value]\n if (selectedItem) select(selectedItem)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n }\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && 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 selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length)\n }\n }\n\n 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 }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\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 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)) model.value = []\n }\n\n const isSelecting = shallowRef(false)\n\n function select (item: ListItem) {\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n search.value = item.title\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\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 ? '' : 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) model.value = []\n else if (\n highlightFirst.value &&\n !listHasFocus.value &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n }\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 useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\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 modelValue={ search.value }\n onUpdate:modelValue={ onUpdateModelValue }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n dirty={ isDirty }\n onInput={ onInput }\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': !!slots.selection,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\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 onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\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 onScrollPassive={ onListScroll }\n tabindex=\"-1\"\n color={ props.itemColor ?? props.color }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value }>\n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps }>\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.prependIcon && (\n <VIcon icon={ item.props.prependIcon } />\n )}\n </>\n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\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)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\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 ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\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 { slots.chip?.({ item, index, props: slotProps }) }\n </VDefaultsProvider>\n )\n ) : (\n slots.selection?.({ item, index }) ?? (\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 icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ t(label.value) }\n title={ t(label.value) }\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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"}
@@ -125,10 +125,14 @@ type VInputSlots = {
125
125
  * - multiple matches (start, end), probably shouldn't overlap
126
126
  */
127
127
  type FilterMatch = boolean | number | [number, number] | [number, number][];
128
- type FilterFunction = (value: string, query: string, item?: any) => FilterMatch;
128
+ type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch;
129
129
  type FilterKeyFunctions = Record<string, FilterFunction>;
130
130
  type FilterKeys = string | string[];
131
131
  type FilterMode = 'some' | 'every' | 'union' | 'intersection';
132
+ interface InternalItem<T = any> {
133
+ value: any;
134
+ raw: T;
135
+ }
132
136
 
133
137
  interface ScrollStrategyData {
134
138
  root: Ref<HTMLElement | undefined>;
@@ -186,16 +190,14 @@ declare function connectedLocationStrategy(data: LocationStrategyData, props: St
186
190
  } | undefined;
187
191
  };
188
192
 
189
- interface ListItem<T = any> {
193
+ interface ListItem<T = any> extends InternalItem<T> {
190
194
  title: string;
191
- value: any;
192
195
  props: {
193
196
  [key: string]: any;
194
197
  title: string;
195
198
  value: any;
196
199
  };
197
200
  children?: ListItem<T>[];
198
- raw: T;
199
201
  }
200
202
 
201
203
  type Primitive = string | number | boolean | symbol;
@@ -235,6 +237,9 @@ declare const VAutocomplete: {
235
237
  rules?: readonly ValidationRule[] | undefined;
236
238
  centerAffix?: boolean | undefined;
237
239
  persistentHint?: boolean | undefined;
240
+ filterMode?: FilterMode | undefined;
241
+ noFilter?: boolean | undefined;
242
+ filterKeys?: NonNullable<FilterKeys> | undefined;
238
243
  itemTitle?: SelectItemKey | undefined;
239
244
  itemValue?: SelectItemKey | undefined;
240
245
  itemChildren?: NonNullable<SelectItemKey> | undefined;
@@ -252,9 +257,6 @@ declare const VAutocomplete: {
252
257
  hideSelected?: boolean | undefined;
253
258
  menuIcon?: IconValue | undefined;
254
259
  openOnClear?: boolean | undefined;
255
- filterMode?: FilterMode | undefined;
256
- noFilter?: boolean | undefined;
257
- filterKeys?: NonNullable<FilterKeys> | undefined;
258
260
  search?: string | undefined;
259
261
  key?: string | number | symbol | undefined;
260
262
  id?: string | undefined;
@@ -323,6 +325,8 @@ declare const VAutocomplete: {
323
325
  hint?: string | undefined;
324
326
  hideDetails?: boolean | "auto" | undefined;
325
327
  baseColor?: string | undefined;
328
+ customFilter?: FilterFunction | undefined;
329
+ customKeyFilter?: FilterKeyFunctions | undefined;
326
330
  suffix?: string | undefined;
327
331
  counterValue?: ((value: any) => number) | undefined;
328
332
  modelModifiers?: Record<string, boolean> | undefined;
@@ -442,8 +446,6 @@ declare const VAutocomplete: {
442
446
  } | undefined;
443
447
  itemColor?: string | undefined;
444
448
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
445
- customFilter?: FilterFunction | undefined;
446
- customKeyFilter?: FilterKeyFunctions | undefined;
447
449
  autoSelectFirst?: boolean | "exact" | undefined;
448
450
  "onUpdate:search"?: ((val: any) => any) | undefined;
449
451
  };
@@ -546,6 +548,9 @@ declare const VAutocomplete: {
546
548
  maxErrors: string | number;
547
549
  rules: readonly ValidationRule[];
548
550
  persistentHint: boolean;
551
+ filterMode: FilterMode;
552
+ noFilter: boolean;
553
+ filterKeys: NonNullable<FilterKeys>;
549
554
  itemTitle: SelectItemKey;
550
555
  itemValue: SelectItemKey;
551
556
  itemChildren: NonNullable<SelectItemKey>;
@@ -563,9 +568,6 @@ declare const VAutocomplete: {
563
568
  hideSelected: boolean;
564
569
  menuIcon: IconValue;
565
570
  openOnClear: boolean;
566
- filterMode: FilterMode;
567
- noFilter: boolean;
568
- filterKeys: NonNullable<FilterKeys>;
569
571
  } & {
570
572
  search?: string | undefined;
571
573
  id?: string | undefined;
@@ -594,6 +596,8 @@ declare const VAutocomplete: {
594
596
  hint?: string | undefined;
595
597
  hideDetails?: boolean | "auto" | undefined;
596
598
  baseColor?: string | undefined;
599
+ customFilter?: FilterFunction | undefined;
600
+ customKeyFilter?: FilterKeyFunctions | undefined;
597
601
  suffix?: string | undefined;
598
602
  counterValue?: ((value: any) => number) | undefined;
599
603
  modelModifiers?: Record<string, boolean> | undefined;
@@ -712,8 +716,6 @@ declare const VAutocomplete: {
712
716
  attach?: string | boolean | Element | undefined;
713
717
  } | undefined;
714
718
  itemColor?: string | undefined;
715
- customFilter?: FilterFunction | undefined;
716
- customKeyFilter?: FilterKeyFunctions | undefined;
717
719
  autoSelectFirst?: boolean | "exact" | undefined;
718
720
  } & {
719
721
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
@@ -755,6 +757,9 @@ declare const VAutocomplete: {
755
757
  rules: readonly ValidationRule[];
756
758
  centerAffix: boolean;
757
759
  persistentHint: boolean;
760
+ filterMode: FilterMode;
761
+ noFilter: boolean;
762
+ filterKeys: NonNullable<FilterKeys>;
758
763
  itemTitle: SelectItemKey;
759
764
  itemValue: SelectItemKey;
760
765
  itemChildren: NonNullable<SelectItemKey>;
@@ -772,9 +777,6 @@ declare const VAutocomplete: {
772
777
  hideSelected: boolean;
773
778
  menuIcon: IconValue;
774
779
  openOnClear: boolean;
775
- filterMode: FilterMode;
776
- noFilter: boolean;
777
- filterKeys: NonNullable<FilterKeys>;
778
780
  }, {}, string, vue.SlotsType<Partial<{
779
781
  message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
780
782
  [key: string]: any;
@@ -883,6 +885,9 @@ declare const VAutocomplete: {
883
885
  maxErrors: string | number;
884
886
  rules: readonly ValidationRule[];
885
887
  persistentHint: boolean;
888
+ filterMode: FilterMode;
889
+ noFilter: boolean;
890
+ filterKeys: NonNullable<FilterKeys>;
886
891
  itemTitle: SelectItemKey;
887
892
  itemValue: SelectItemKey;
888
893
  itemChildren: NonNullable<SelectItemKey>;
@@ -900,9 +905,6 @@ declare const VAutocomplete: {
900
905
  hideSelected: boolean;
901
906
  menuIcon: IconValue;
902
907
  openOnClear: boolean;
903
- filterMode: FilterMode;
904
- noFilter: boolean;
905
- filterKeys: NonNullable<FilterKeys>;
906
908
  } & {
907
909
  search?: string | undefined;
908
910
  id?: string | undefined;
@@ -931,6 +933,8 @@ declare const VAutocomplete: {
931
933
  hint?: string | undefined;
932
934
  hideDetails?: boolean | "auto" | undefined;
933
935
  baseColor?: string | undefined;
936
+ customFilter?: FilterFunction | undefined;
937
+ customKeyFilter?: FilterKeyFunctions | undefined;
934
938
  suffix?: string | undefined;
935
939
  counterValue?: ((value: any) => number) | undefined;
936
940
  modelModifiers?: Record<string, boolean> | undefined;
@@ -1049,8 +1053,6 @@ declare const VAutocomplete: {
1049
1053
  attach?: string | boolean | Element | undefined;
1050
1054
  } | undefined;
1051
1055
  itemColor?: string | undefined;
1052
- customFilter?: FilterFunction | undefined;
1053
- customKeyFilter?: FilterKeyFunctions | undefined;
1054
1056
  autoSelectFirst?: boolean | "exact" | undefined;
1055
1057
  } & {
1056
1058
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
@@ -1089,6 +1091,9 @@ declare const VAutocomplete: {
1089
1091
  maxErrors: string | number;
1090
1092
  rules: readonly ValidationRule[];
1091
1093
  persistentHint: boolean;
1094
+ filterMode: FilterMode;
1095
+ noFilter: boolean;
1096
+ filterKeys: NonNullable<FilterKeys>;
1092
1097
  itemTitle: SelectItemKey;
1093
1098
  itemValue: SelectItemKey;
1094
1099
  itemChildren: NonNullable<SelectItemKey>;
@@ -1106,9 +1111,6 @@ declare const VAutocomplete: {
1106
1111
  hideSelected: boolean;
1107
1112
  menuIcon: IconValue;
1108
1113
  openOnClear: boolean;
1109
- filterMode: FilterMode;
1110
- noFilter: boolean;
1111
- filterKeys: NonNullable<FilterKeys>;
1112
1114
  } & {
1113
1115
  search?: string | undefined;
1114
1116
  id?: string | undefined;
@@ -1137,6 +1139,8 @@ declare const VAutocomplete: {
1137
1139
  hint?: string | undefined;
1138
1140
  hideDetails?: boolean | "auto" | undefined;
1139
1141
  baseColor?: string | undefined;
1142
+ customFilter?: FilterFunction | undefined;
1143
+ customKeyFilter?: FilterKeyFunctions | undefined;
1140
1144
  suffix?: string | undefined;
1141
1145
  counterValue?: ((value: any) => number) | undefined;
1142
1146
  modelModifiers?: Record<string, boolean> | undefined;
@@ -1255,8 +1259,6 @@ declare const VAutocomplete: {
1255
1259
  attach?: string | boolean | Element | undefined;
1256
1260
  } | undefined;
1257
1261
  itemColor?: string | undefined;
1258
- customFilter?: FilterFunction | undefined;
1259
- customKeyFilter?: FilterKeyFunctions | undefined;
1260
1262
  autoSelectFirst?: boolean | "exact" | undefined;
1261
1263
  } & {
1262
1264
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
@@ -1298,6 +1300,9 @@ declare const VAutocomplete: {
1298
1300
  rules: readonly ValidationRule[];
1299
1301
  centerAffix: boolean;
1300
1302
  persistentHint: boolean;
1303
+ filterMode: FilterMode;
1304
+ noFilter: boolean;
1305
+ filterKeys: NonNullable<FilterKeys>;
1301
1306
  itemTitle: SelectItemKey;
1302
1307
  itemValue: SelectItemKey;
1303
1308
  itemChildren: NonNullable<SelectItemKey>;
@@ -1315,9 +1320,6 @@ declare const VAutocomplete: {
1315
1320
  hideSelected: boolean;
1316
1321
  menuIcon: IconValue;
1317
1322
  openOnClear: boolean;
1318
- filterMode: FilterMode;
1319
- noFilter: boolean;
1320
- filterKeys: NonNullable<FilterKeys>;
1321
1323
  }, {}, string, vue.SlotsType<Partial<{
1322
1324
  message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
1323
1325
  [key: string]: any;
@@ -1571,6 +1573,10 @@ declare const VAutocomplete: {
1571
1573
  default: string;
1572
1574
  };
1573
1575
  returnObject: BooleanConstructor;
1576
+ valueComparator: {
1577
+ type: PropType<typeof deepEqual>;
1578
+ default: typeof deepEqual;
1579
+ };
1574
1580
  chips: BooleanConstructor;
1575
1581
  closableChips: BooleanConstructor;
1576
1582
  closeText: {
@@ -1711,10 +1717,6 @@ declare const VAutocomplete: {
1711
1717
  default: string;
1712
1718
  };
1713
1719
  openOnClear: BooleanConstructor;
1714
- valueComparator: {
1715
- type: PropType<typeof deepEqual>;
1716
- default: typeof deepEqual;
1717
- };
1718
1720
  itemColor: StringConstructor;
1719
1721
  customFilter: PropType<FilterFunction>;
1720
1722
  customKeyFilter: PropType<FilterKeyFunctions>;
@@ -1876,6 +1878,10 @@ declare const VAutocomplete: {
1876
1878
  default: string;
1877
1879
  };
1878
1880
  returnObject: BooleanConstructor;
1881
+ valueComparator: {
1882
+ type: PropType<typeof deepEqual>;
1883
+ default: typeof deepEqual;
1884
+ };
1879
1885
  chips: BooleanConstructor;
1880
1886
  closableChips: BooleanConstructor;
1881
1887
  closeText: {
@@ -2016,10 +2022,6 @@ declare const VAutocomplete: {
2016
2022
  default: string;
2017
2023
  };
2018
2024
  openOnClear: BooleanConstructor;
2019
- valueComparator: {
2020
- type: PropType<typeof deepEqual>;
2021
- default: typeof deepEqual;
2022
- };
2023
2025
  itemColor: StringConstructor;
2024
2026
  customFilter: PropType<FilterFunction>;
2025
2027
  customKeyFilter: PropType<FilterKeyFunctions>;