@vuetify/nightly 3.8.8-master.2025-06-10 → 3.8.9-dev.2025-06-12

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 (180) hide show
  1. package/CHANGELOG.md +44 -19
  2. package/dist/json/attributes.json +2771 -2411
  3. package/dist/json/importMap-labs.json +32 -28
  4. package/dist/json/importMap.json +128 -128
  5. package/dist/json/tags.json +96 -1
  6. package/dist/json/web-types.json +5703 -4391
  7. package/dist/vuetify-labs.cjs +635 -146
  8. package/dist/vuetify-labs.css +4248 -4214
  9. package/dist/vuetify-labs.d.ts +9097 -1977
  10. package/dist/vuetify-labs.esm.js +636 -147
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +635 -146
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +383 -135
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +5999 -5965
  17. package/dist/vuetify.d.ts +1586 -1085
  18. package/dist/vuetify.esm.js +384 -136
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +383 -135
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +1219 -1203
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAlert/VAlert.css +6 -1
  26. package/lib/components/VAlert/VAlert.d.ts +35 -0
  27. package/lib/components/VAlert/VAlert.js +15 -10
  28. package/lib/components/VAlert/VAlert.js.map +1 -1
  29. package/lib/components/VAlert/VAlert.sass +7 -1
  30. package/lib/components/VAppBar/VAppBar.d.ts +15 -3
  31. package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
  32. package/lib/components/VAutocomplete/VAutocomplete.d.ts +154 -103
  33. package/lib/components/VAutocomplete/VAutocomplete.js +21 -3
  34. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  35. package/lib/components/VBadge/VBadge.d.ts +60 -0
  36. package/lib/components/VBadge/VBadge.js +7 -2
  37. package/lib/components/VBadge/VBadge.js.map +1 -1
  38. package/lib/components/VBtn/VBtn.d.ts +20 -10
  39. package/lib/components/VBtnGroup/VBtnGroup.css +30 -7
  40. package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
  41. package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
  42. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  43. package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
  44. package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
  45. package/lib/components/VCard/VCard.d.ts +20 -10
  46. package/lib/components/VCheckbox/VCheckbox.d.ts +23 -13
  47. package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
  48. package/lib/components/VChip/VChip.d.ts +20 -10
  49. package/lib/components/VChipGroup/VChipGroup.d.ts +10 -0
  50. package/lib/components/VCombobox/VCombobox.d.ts +154 -103
  51. package/lib/components/VCombobox/VCombobox.js +22 -3
  52. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  53. package/lib/components/VDataTable/VDataTable.d.ts +60 -0
  54. package/lib/components/VDataTable/VDataTableHeaders.d.ts +13 -0
  55. package/lib/components/VDataTable/VDataTableHeaders.js +4 -2
  56. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  57. package/lib/components/VDataTable/VDataTableServer.d.ts +42 -0
  58. package/lib/components/VDataTable/VDataTableVirtual.d.ts +42 -0
  59. package/lib/components/VDatePicker/VDatePicker.d.ts +10 -0
  60. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +10 -0
  61. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
  62. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  63. package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
  64. package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
  65. package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
  66. package/lib/components/VFab/VFab.d.ts +20 -10
  67. package/lib/components/VField/VField.d.ts +3 -3
  68. package/lib/components/VFileInput/VFileInput.d.ts +15 -15
  69. package/lib/components/VInfiniteScroll/VInfiniteScroll.d.ts +9 -3
  70. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +29 -0
  71. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  72. package/lib/components/VInput/VInput.d.ts +4 -4
  73. package/lib/components/VList/VList.d.ts +13 -0
  74. package/lib/components/VList/VList.js +4 -1
  75. package/lib/components/VList/VList.js.map +1 -1
  76. package/lib/components/VList/VListChildren.js.map +1 -1
  77. package/lib/components/VList/VListItem.d.ts +23 -10
  78. package/lib/components/VList/VListItem.js +7 -3
  79. package/lib/components/VList/VListItem.js.map +1 -1
  80. package/lib/components/VList/list.d.ts +9 -2
  81. package/lib/components/VList/list.js +7 -0
  82. package/lib/components/VList/list.js.map +1 -1
  83. package/lib/components/VNumberInput/VNumberInput.d.ts +103 -89
  84. package/lib/components/VNumberInput/VNumberInput.js +19 -4
  85. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  86. package/lib/components/VOtpInput/VOtpInput.js +2 -1
  87. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  88. package/lib/components/VOverlay/VOverlay.css +1 -1
  89. package/lib/components/VOverlay/_variables.scss +1 -1
  90. package/lib/components/VRadio/VRadio.d.ts +20 -10
  91. package/lib/components/VRadioGroup/VRadioGroup.d.ts +23 -13
  92. package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
  93. package/lib/components/VSelect/VSelect.d.ts +171 -107
  94. package/lib/components/VSelect/VSelect.js +21 -3
  95. package/lib/components/VSelect/VSelect.js.map +1 -1
  96. package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
  97. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
  98. package/lib/components/VSlideGroup/VSlideGroup.d.ts +10 -0
  99. package/lib/components/VSlideGroup/VSlideGroup.js +2 -1
  100. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  101. package/lib/components/VSlider/VSlider.d.ts +3 -3
  102. package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
  103. package/lib/components/VStepper/VStepperItem.d.ts +28 -14
  104. package/lib/components/VSwitch/VSwitch.d.ts +23 -13
  105. package/lib/components/VTable/VTable.css +6 -0
  106. package/lib/components/VTable/VTable.d.ts +55 -24
  107. package/lib/components/VTable/VTable.js +9 -2
  108. package/lib/components/VTable/VTable.js.map +1 -1
  109. package/lib/components/VTable/VTable.sass +14 -0
  110. package/lib/components/VTable/_variables.scss +1 -0
  111. package/lib/components/VTabs/VTab.d.ts +56 -28
  112. package/lib/components/VTabs/VTabs.d.ts +10 -0
  113. package/lib/components/VTextField/VTextField.d.ts +27 -27
  114. package/lib/components/VTextarea/VTextarea.d.ts +15 -15
  115. package/lib/components/VToolbar/VToolbar.d.ts +15 -3
  116. package/lib/components/VToolbar/VToolbar.js +6 -3
  117. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  118. package/lib/composables/calendar.d.ts +6 -0
  119. package/lib/composables/calendar.js +2 -1
  120. package/lib/composables/calendar.js.map +1 -1
  121. package/lib/composables/date/DateAdapter.d.ts +3 -3
  122. package/lib/composables/date/DateAdapter.js.map +1 -1
  123. package/lib/composables/date/adapters/string.d.ts +54 -0
  124. package/lib/composables/date/adapters/string.js +153 -0
  125. package/lib/composables/date/adapters/string.js.map +1 -0
  126. package/lib/composables/date/adapters/vuetify.d.ts +1 -1
  127. package/lib/composables/date/adapters/vuetify.js +4 -4
  128. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  129. package/lib/composables/date/date.d.ts +3 -3
  130. package/lib/composables/date/index.d.ts +1 -0
  131. package/lib/composables/date/index.js +1 -0
  132. package/lib/composables/date/index.js.map +1 -1
  133. package/lib/composables/filter.js +3 -0
  134. package/lib/composables/filter.js.map +1 -1
  135. package/lib/composables/iconSizes.d.ts +28 -0
  136. package/lib/composables/iconSizes.js +23 -0
  137. package/lib/composables/iconSizes.js.map +1 -0
  138. package/lib/composables/mask.d.ts +38 -0
  139. package/lib/composables/mask.js +183 -0
  140. package/lib/composables/mask.js.map +1 -0
  141. package/lib/composables/theme.d.ts +6 -1
  142. package/lib/composables/theme.js +94 -26
  143. package/lib/composables/theme.js.map +1 -1
  144. package/lib/composables/virtual.js +6 -1
  145. package/lib/composables/virtual.js.map +1 -1
  146. package/lib/directives/ripple/index.d.ts +2 -1
  147. package/lib/directives/ripple/index.js +12 -7
  148. package/lib/directives/ripple/index.js.map +1 -1
  149. package/lib/entry-bundler.d.ts +3 -3
  150. package/lib/entry-bundler.js +1 -1
  151. package/lib/entry-bundler.js.map +1 -1
  152. package/lib/framework.d.ts +72 -56
  153. package/lib/framework.js +1 -1
  154. package/lib/framework.js.map +1 -1
  155. package/lib/labs/VCalendar/VCalendar.d.ts +10 -0
  156. package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
  157. package/lib/labs/VDateInput/VDateInput.d.ts +97 -87
  158. package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
  159. package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
  160. package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
  161. package/lib/labs/VIconBtn/VIconBtn.js +7 -11
  162. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  163. package/lib/labs/VMaskInput/VMaskInput.d.ts +6993 -0
  164. package/lib/labs/VMaskInput/VMaskInput.js +67 -0
  165. package/lib/labs/VMaskInput/VMaskInput.js.map +1 -0
  166. package/lib/labs/VMaskInput/index.d.ts +1 -0
  167. package/lib/labs/VMaskInput/index.js +2 -0
  168. package/lib/labs/VMaskInput/index.js.map +1 -0
  169. package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
  170. package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
  171. package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
  172. package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
  173. package/lib/labs/components.d.ts +1 -0
  174. package/lib/labs/components.js +1 -0
  175. package/lib/labs/components.js.map +1 -1
  176. package/lib/labs/entry-bundler.d.ts +3 -3
  177. package/lib/util/globals.d.ts +1 -0
  178. package/lib/util/globals.js +1 -0
  179. package/lib/util/globals.js.map +1 -1
  180. package/package.json +3 -1
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
2
2
  // Styles
3
3
  import "./VCombobox.css";
4
4
 
@@ -7,8 +7,9 @@ import { VAvatar } from "../VAvatar/index.js";
7
7
  import { VCheckboxBtn } from "../VCheckbox/index.js";
8
8
  import { VChip } from "../VChip/index.js";
9
9
  import { VDefaultsProvider } from "../VDefaultsProvider/index.js";
10
+ import { VDivider } from "../VDivider/index.js";
10
11
  import { VIcon } from "../VIcon/index.js";
11
- import { VList, VListItem } from "../VList/index.js";
12
+ import { VList, VListItem, VListSubheader } from "../VList/index.js";
12
13
  import { VMenu } from "../VMenu/index.js";
13
14
  import { makeSelectProps } from "../VSelect/VSelect.js";
14
15
  import { VTextField } from "../VTextField/index.js";
@@ -99,6 +100,7 @@ export const VCombobox = genericComponent()({
99
100
  _search.value = val ?? '';
100
101
  if (!props.multiple && !hasSelectionSlot.value) {
101
102
  model.value = [transformItem(props, val)];
103
+ nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
102
104
  }
103
105
  if (val && props.multiple && props.delimiters?.length) {
104
106
  const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
@@ -179,7 +181,7 @@ export const VCombobox = genericComponent()({
179
181
  menu.value = !menu.value;
180
182
  }
181
183
  function onListKeydown(e) {
182
- if (e.key !== ' ' && checkPrintable(e)) {
184
+ if (checkPrintable(e) || e.key === 'Backspace') {
183
185
  vTextFieldRef.value?.focus();
184
186
  }
185
187
  }
@@ -384,6 +386,7 @@ export const VCombobox = genericComponent()({
384
386
  }, props.menuProps), {
385
387
  default: () => [hasList && _createVNode(VList, _mergeProps({
386
388
  "ref": listRef,
389
+ "filterable": true,
387
390
  "selected": selectedValues.value,
388
391
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
389
392
  "onMousedown": e => e.preventDefault(),
@@ -415,6 +418,22 @@ export const VCombobox = genericComponent()({
415
418
  active: highlightFirst.value && index === 0 ? true : undefined,
416
419
  onClick: () => select(item, null)
417
420
  });
421
+ if (item.raw.type === 'divider') {
422
+ return slots.divider?.({
423
+ props: item.raw,
424
+ index
425
+ }) ?? _createVNode(VDivider, _mergeProps(item.props, {
426
+ "key": `divider-${index}`
427
+ }), null);
428
+ }
429
+ if (item.raw.type === 'subheader') {
430
+ return slots.subheader?.({
431
+ props: item.raw,
432
+ index
433
+ }) ?? _createVNode(VListSubheader, _mergeProps(item.props, {
434
+ "key": `subheader-${index}`
435
+ }), null);
436
+ }
418
437
  return slots.item?.({
419
438
  item,
420
439
  index,
@@ -1 +1 @@
1
- {"version":3,"file":"VCombobox.js","names":["VAvatar","VCheckboxBtn","VChip","VDefaultsProvider","VIcon","VList","VListItem","VMenu","makeSelectProps","VTextField","makeVTextFieldProps","VVirtualScroll","useScrolling","useTextColor","highlightResult","makeFilterProps","useFilter","useForm","forwardRefs","transformItem","useItems","useLocale","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","toRef","watch","checkPrintable","deepEqual","ensureValidVNode","genericComponent","IN_BROWSER","isComposingIgnoreKey","noop","omit","propsFactory","useRender","wrapInArray","makeVComboboxProps","autoSelectFirst","type","Boolean","String","clearOnSelect","default","delimiters","Array","filterKeys","hideNoData","returnObject","modelValue","role","transition","VCombobox","name","props","emits","focused","value","setup","_ref","emit","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","selectionIndex","cleared","items","transformIn","transformOut","textColorClasses","textColorStyles","color","model","v","transformed","multiple","form","hasChips","chips","chip","hasSelectionSlot","selection","_search","title","search","get","set","val","length","values","split","RegExp","join","forEach","trim","select","counterValue","filteredItems","getMatches","displayItems","hideSelected","filter","filteredItem","some","s","menuDisabled","isReadonly","isDisabled","_menu","menu","ΨopenChildren","size","label","closeText","openText","selectedValues","map","highlightFirst","selectFirst","listRef","listEvents","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onListKeydown","key","focus","onKeydown","selectionStart","includes","_ref2","originalSelectionIndex","prev","setSelectionRange","next","onAfterEnter","eager","calculateVisibleItems","onAfterLeave","item","arguments","undefined","disabled","index","findIndex","valueComparator","add","splice","onFocusin","setTimeout","onFocusout","onUpdateModelValue","oldVal","_ref3","window","requestAnimationFrame","scrollToIndex","newVal","hasList","isDirty","textFieldProps","filterProps","_createVNode","_mergeProps","$event","externalValue","class","style","placeholder","_createElementVNode","_Fragment","menuProps","itemColor","listProps","noDataText","_ref4","itemRef","itemProps","active","onClick","prepend","_ref5","isSelected","prependAvatar","prependIcon","onChipClose","slotProps","onMousedown","hasSlot","slotContent","_normalizeClass","_normalizeStyle","closableChips","closable","text","_createTextVNode","append-inner","_len","args","_key","menuIcon","fieldIconColor"],"sources":["../../../src/components/VCombobox/VCombobox.tsx"],"sourcesContent":["// Styles\nimport './VCombobox.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 { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VTextField } from '@/components/VTextField'\nimport { makeVTextFieldProps } 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 { transformItem, 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, toRef, watch } from 'vue'\nimport {\n checkPrintable,\n deepEqual,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n isComposingIgnoreKey,\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> = string | ([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 makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType<boolean | 'exact'>,\n },\n clearOnSelect: {\n type: Boolean,\n default: true,\n },\n delimiters: Array as PropType<readonly string[]>,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true, returnObject: true }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VCombobox')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VCombobox = genericComponent<new <\n T extends readonly any[],\n Item = ItemType<T>,\n ReturnObject extends boolean = true,\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 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VCombobox',\n\n props: makeVComboboxProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:search': (value: string) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { emit, 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 let cleared = false\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(() => vTextFieldRef.value?.color)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm(props)\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '')\n\n const search = computed<string>({\n get: () => {\n return _search.value\n },\n set: (val: string | null) => {\n _search.value = val ?? ''\n if (!props.multiple && !hasSelectionSlot.value) {\n model.value = [transformItem(props, val)]\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select(transformItem(props, v))\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n\n isPristine.value = !val\n },\n })\n\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (props.multiple ? model.value.length : search.value.length)\n })\n\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 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 label = toRef(() => menu.value ? props.closeText : props.openText)\n\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => (cleared = false))\n } else if (isFocused.value && !menu.value) {\n menu.value = true\n }\n\n emit('update:search', value)\n })\n\n watch(model, value => {\n if (!props.multiple && !hasSelectionSlot.value) {\n _search.value = value[0]?.title ?? ''\n }\n })\n\n const selectedValues = computed(() => model.value.map(selection => selection.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 listRef = ref<VList>()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n cleared = true\n\n if (props.openOnClear) {\n menu.value = true\n }\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 (e.key !== ' ' && checkPrintable(e)) {\n vTextFieldRef.value?.focus()\n }\n }\n // eslint-disable-next-line complexity\n function onKeydown (e: KeyboardEvent) {\n if (isComposingIgnoreKey(e) || 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 (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(filteredItems.value[0])\n }\n\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value))\n if (hasSelectionSlot.value) _search.value = ''\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 selectionIndex.value = -1\n vTextFieldRef.value?.setSelectionRange(search.value.length, search.value.length)\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 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 /** @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 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 watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return\n\n selectionIndex.value = -1\n menu.value = false\n\n if (search.value) {\n if (props.multiple) {\n select(transformItem(props, search.value))\n return\n }\n\n if (!hasSelectionSlot.value) return\n\n if (model.value.some(({ title }) => title === search.value)) {\n _search.value = ''\n } else {\n select(transformItem(props, search.value))\n }\n }\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 => (props.valueComparator || deepEqual)(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.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 class={[\n 'v-combobox',\n {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selection-slot': !!hasSelectionSlot.value,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\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 >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-combobox__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 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 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 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-combobox', 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-combobox__selection',\n index === selectionIndex.value && [\n 'v-combobox__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-combobox__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-combobox__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.hideNoData || props.items.length) && props.menuIcon ? (\n <VIcon\n class=\"v-combobox__menu-icon\"\n color={ vTextFieldRef.value?.fieldIconColor }\n icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ t(label.value) }\n title={ t(label.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 selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType<typeof VCombobox>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VCombobox.js","names":["VAvatar","VCheckboxBtn","VChip","VDefaultsProvider","VDivider","VIcon","VList","VListItem","VListSubheader","VMenu","makeSelectProps","VTextField","makeVTextFieldProps","VVirtualScroll","useScrolling","useTextColor","highlightResult","makeFilterProps","useFilter","useForm","forwardRefs","transformItem","useItems","useLocale","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","toRef","watch","checkPrintable","deepEqual","ensureValidVNode","genericComponent","IN_BROWSER","isComposingIgnoreKey","noop","omit","propsFactory","useRender","wrapInArray","makeVComboboxProps","autoSelectFirst","type","Boolean","String","clearOnSelect","default","delimiters","Array","filterKeys","hideNoData","returnObject","modelValue","role","transition","VCombobox","name","props","emits","focused","value","setup","_ref","emit","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","selectionIndex","cleared","items","transformIn","transformOut","textColorClasses","textColorStyles","color","model","v","transformed","multiple","form","hasChips","chips","chip","hasSelectionSlot","selection","_search","title","search","get","set","val","scrollToIndex","length","values","split","RegExp","join","forEach","trim","select","counterValue","filteredItems","getMatches","displayItems","hideSelected","filter","filteredItem","some","s","menuDisabled","isReadonly","isDisabled","_menu","menu","ΨopenChildren","size","label","closeText","openText","selectedValues","map","highlightFirst","selectFirst","listRef","listEvents","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onListKeydown","key","focus","onKeydown","selectionStart","includes","_ref2","originalSelectionIndex","prev","setSelectionRange","next","onAfterEnter","eager","calculateVisibleItems","onAfterLeave","item","arguments","undefined","disabled","index","findIndex","valueComparator","add","splice","onFocusin","setTimeout","onFocusout","onUpdateModelValue","oldVal","_ref3","window","requestAnimationFrame","newVal","hasList","isDirty","textFieldProps","filterProps","_createVNode","_mergeProps","$event","externalValue","class","style","placeholder","_createElementVNode","_Fragment","menuProps","itemColor","listProps","noDataText","_ref4","itemRef","itemProps","active","onClick","raw","divider","subheader","prepend","_ref5","isSelected","prependAvatar","prependIcon","onChipClose","slotProps","onMousedown","hasSlot","slotContent","_normalizeClass","_normalizeStyle","closableChips","closable","text","_createTextVNode","append-inner","_len","args","_key","menuIcon","fieldIconColor"],"sources":["../../../src/components/VCombobox/VCombobox.tsx"],"sourcesContent":["// Styles\nimport './VCombobox.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 { VTextField } from '@/components/VTextField'\nimport { makeVTextFieldProps } 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 { transformItem, 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, toRef, watch } from 'vue'\nimport {\n checkPrintable,\n deepEqual,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n isComposingIgnoreKey,\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> = string | ([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 makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType<boolean | 'exact'>,\n },\n clearOnSelect: {\n type: Boolean,\n default: true,\n },\n delimiters: Array as PropType<readonly string[]>,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true, returnObject: true }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VCombobox')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VCombobox = genericComponent<new <\n T extends readonly any[],\n Item = ItemType<T>,\n ReturnObject extends boolean = true,\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: 'VCombobox',\n\n props: makeVComboboxProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:search': (value: string) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { emit, 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 let cleared = false\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(() => vTextFieldRef.value?.color)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm(props)\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '')\n\n const search = computed<string>({\n get: () => {\n return _search.value\n },\n set: (val: string | null) => {\n _search.value = val ?? ''\n if (!props.multiple && !hasSelectionSlot.value) {\n model.value = [transformItem(props, val)]\n nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0))\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select(transformItem(props, v))\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n\n isPristine.value = !val\n },\n })\n\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (props.multiple ? model.value.length : search.value.length)\n })\n\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 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 label = toRef(() => menu.value ? props.closeText : props.openText)\n\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => (cleared = false))\n } else if (isFocused.value && !menu.value) {\n menu.value = true\n }\n\n emit('update:search', value)\n })\n\n watch(model, value => {\n if (!props.multiple && !hasSelectionSlot.value) {\n _search.value = value[0]?.title ?? ''\n }\n })\n\n const selectedValues = computed(() => model.value.map(selection => selection.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 listRef = ref<VList>()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n cleared = true\n\n if (props.openOnClear) {\n menu.value = true\n }\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 // eslint-disable-next-line complexity\n function onKeydown (e: KeyboardEvent) {\n if (isComposingIgnoreKey(e) || 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 (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(filteredItems.value[0])\n }\n\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value))\n if (hasSelectionSlot.value) _search.value = ''\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 selectionIndex.value = -1\n vTextFieldRef.value?.setSelectionRange(search.value.length, search.value.length)\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 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 /** @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 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 watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return\n\n selectionIndex.value = -1\n menu.value = false\n\n if (search.value) {\n if (props.multiple) {\n select(transformItem(props, search.value))\n return\n }\n\n if (!hasSelectionSlot.value) return\n\n if (model.value.some(({ title }) => title === search.value)) {\n _search.value = ''\n } else {\n select(transformItem(props, search.value))\n }\n }\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 => (props.valueComparator || deepEqual)(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.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 class={[\n 'v-combobox',\n {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selection-slot': !!hasSelectionSlot.value,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\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 >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-combobox__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 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.raw.type === 'divider') {\n return slots.divider?.({ props: item.raw, index }) ?? (\n <VDivider { ...item.props } key={ `divider-${index}` } />\n )\n }\n\n if (item.raw.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-combobox', 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-combobox__selection',\n index === selectionIndex.value && [\n 'v-combobox__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-combobox__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-combobox__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.hideNoData || props.items.length) && props.menuIcon ? (\n <VIcon\n class=\"v-combobox__menu-icon\"\n color={ vTextFieldRef.value?.fieldIconColor }\n icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ t(label.value) }\n title={ t(label.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 selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType<typeof VCombobox>\n"],"mappings":"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","ignoreList":[]}
@@ -55,11 +55,13 @@ export declare const makeDataTableProps: <Defaults extends {
55
55
  fixedFooter?: unknown;
56
56
  height?: unknown;
57
57
  hover?: unknown;
58
+ striped?: unknown;
58
59
  loading?: unknown;
59
60
  mobile?: unknown;
60
61
  mobileBreakpoint?: unknown;
61
62
  color?: unknown;
62
63
  disableSort?: unknown;
64
+ lastFixed?: unknown;
63
65
  multiSort?: unknown;
64
66
  sortAscIcon?: unknown;
65
67
  sortDescIcon?: unknown;
@@ -148,6 +150,18 @@ export declare const makeDataTableProps: <Defaults extends {
148
150
  type: import("vue").PropType<unknown extends Defaults["hover"] ? boolean : boolean | Defaults["hover"]>;
149
151
  default: unknown extends Defaults["hover"] ? boolean : boolean | Defaults["hover"];
150
152
  };
153
+ striped: unknown extends Defaults["striped"] ? {
154
+ type: import("vue").PropType<import("../VTable/VTable.js").Striped>;
155
+ default: null;
156
+ validator: (v: any) => boolean;
157
+ } : Omit<{
158
+ type: import("vue").PropType<import("../VTable/VTable.js").Striped>;
159
+ default: null;
160
+ validator: (v: any) => boolean;
161
+ }, "type" | "default"> & {
162
+ type: import("vue").PropType<unknown extends Defaults["striped"] ? import("../VTable/VTable.js").Striped : import("../VTable/VTable.js").Striped | Defaults["striped"]>;
163
+ default: unknown extends Defaults["striped"] ? import("../VTable/VTable.js").Striped : NonNullable<import("../VTable/VTable.js").Striped> | Defaults["striped"];
164
+ };
151
165
  loading: unknown extends Defaults["loading"] ? (StringConstructor | BooleanConstructor)[] : {
152
166
  type: import("vue").PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
153
167
  default: unknown extends Defaults["loading"] ? string | boolean : NonNullable<string | boolean> | Defaults["loading"];
@@ -174,6 +188,10 @@ export declare const makeDataTableProps: <Defaults extends {
174
188
  type: import("vue").PropType<unknown extends Defaults["disableSort"] ? boolean : boolean | Defaults["disableSort"]>;
175
189
  default: unknown extends Defaults["disableSort"] ? boolean : boolean | Defaults["disableSort"];
176
190
  };
191
+ lastFixed: unknown extends Defaults["lastFixed"] ? BooleanConstructor : {
192
+ type: import("vue").PropType<unknown extends Defaults["lastFixed"] ? boolean : boolean | Defaults["lastFixed"]>;
193
+ default: unknown extends Defaults["lastFixed"] ? boolean : boolean | Defaults["lastFixed"];
194
+ };
177
195
  multiSort: unknown extends Defaults["multiSort"] ? BooleanConstructor : {
178
196
  type: import("vue").PropType<unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"]>;
179
197
  default: unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"];
@@ -618,11 +636,13 @@ export declare const makeVDataTableProps: <Defaults extends {
618
636
  fixedFooter?: unknown;
619
637
  height?: unknown;
620
638
  hover?: unknown;
639
+ striped?: unknown;
621
640
  loading?: unknown;
622
641
  mobile?: unknown;
623
642
  mobileBreakpoint?: unknown;
624
643
  color?: unknown;
625
644
  disableSort?: unknown;
645
+ lastFixed?: unknown;
626
646
  multiSort?: unknown;
627
647
  sortAscIcon?: unknown;
628
648
  sortDescIcon?: unknown;
@@ -877,6 +897,18 @@ export declare const makeVDataTableProps: <Defaults extends {
877
897
  type: import("vue").PropType<unknown extends Defaults["hover"] ? boolean : boolean | Defaults["hover"]>;
878
898
  default: unknown extends Defaults["hover"] ? boolean : boolean | Defaults["hover"];
879
899
  };
900
+ striped: unknown extends Defaults["striped"] ? {
901
+ type: import("vue").PropType<import("../VTable/VTable.js").Striped>;
902
+ default: null;
903
+ validator: (v: any) => boolean;
904
+ } : Omit<{
905
+ type: import("vue").PropType<import("../VTable/VTable.js").Striped>;
906
+ default: null;
907
+ validator: (v: any) => boolean;
908
+ }, "type" | "default"> & {
909
+ type: import("vue").PropType<unknown extends Defaults["striped"] ? import("../VTable/VTable.js").Striped : import("../VTable/VTable.js").Striped | Defaults["striped"]>;
910
+ default: unknown extends Defaults["striped"] ? import("../VTable/VTable.js").Striped : NonNullable<import("../VTable/VTable.js").Striped> | Defaults["striped"];
911
+ };
880
912
  loading: unknown extends Defaults["loading"] ? (StringConstructor | BooleanConstructor)[] : {
881
913
  type: import("vue").PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
882
914
  default: unknown extends Defaults["loading"] ? string | boolean : NonNullable<string | boolean> | Defaults["loading"];
@@ -903,6 +935,10 @@ export declare const makeVDataTableProps: <Defaults extends {
903
935
  type: import("vue").PropType<unknown extends Defaults["disableSort"] ? boolean : boolean | Defaults["disableSort"]>;
904
936
  default: unknown extends Defaults["disableSort"] ? boolean : boolean | Defaults["disableSort"];
905
937
  };
938
+ lastFixed: unknown extends Defaults["lastFixed"] ? BooleanConstructor : {
939
+ type: import("vue").PropType<unknown extends Defaults["lastFixed"] ? boolean : boolean | Defaults["lastFixed"]>;
940
+ default: unknown extends Defaults["lastFixed"] ? boolean : boolean | Defaults["lastFixed"];
941
+ };
906
942
  multiSort: unknown extends Defaults["multiSort"] ? BooleanConstructor : {
907
943
  type: import("vue").PropType<unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"]>;
908
944
  default: unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"];
@@ -1367,6 +1403,7 @@ export declare const VDataTable: {
1367
1403
  selectStrategy: "all" | "page" | "single";
1368
1404
  valueComparator: typeof import("../../util/index.js").deepEqual;
1369
1405
  density: import("../../composables/density.js").Density;
1406
+ striped: import("../VTable/VTable.js").Striped;
1370
1407
  nextIcon: import("../../composables/icons.js").IconValue;
1371
1408
  prevIcon: import("../../composables/icons.js").IconValue;
1372
1409
  hideNoData: boolean;
@@ -1383,6 +1420,7 @@ export declare const VDataTable: {
1383
1420
  value: number;
1384
1421
  })[];
1385
1422
  showCurrentPage: boolean;
1423
+ lastFixed: boolean;
1386
1424
  fixedHeader: boolean;
1387
1425
  sortAscIcon: import("../../composables/icons.js").IconValue;
1388
1426
  sortDescIcon: import("../../composables/icons.js").IconValue;
@@ -1446,6 +1484,7 @@ export declare const VDataTable: {
1446
1484
  selectStrategy: "all" | "page" | "single";
1447
1485
  valueComparator: typeof import("../../util/index.js").deepEqual;
1448
1486
  density: import("../../composables/density.js").Density;
1487
+ striped: import("../VTable/VTable.js").Striped;
1449
1488
  nextIcon: import("../../composables/icons.js").IconValue;
1450
1489
  prevIcon: import("../../composables/icons.js").IconValue;
1451
1490
  hideNoData: boolean;
@@ -1462,6 +1501,7 @@ export declare const VDataTable: {
1462
1501
  value: number;
1463
1502
  })[];
1464
1503
  showCurrentPage: boolean;
1504
+ lastFixed: boolean;
1465
1505
  fixedHeader: boolean;
1466
1506
  sortAscIcon: import("../../composables/icons.js").IconValue;
1467
1507
  sortDescIcon: import("../../composables/icons.js").IconValue;
@@ -1546,6 +1586,7 @@ export declare const VDataTable: {
1546
1586
  selectStrategy: "all" | "page" | "single";
1547
1587
  valueComparator: typeof import("../../util/index.js").deepEqual;
1548
1588
  density: import("../../composables/density.js").Density;
1589
+ striped: import("../VTable/VTable.js").Striped;
1549
1590
  nextIcon: import("../../composables/icons.js").IconValue;
1550
1591
  prevIcon: import("../../composables/icons.js").IconValue;
1551
1592
  hideNoData: boolean;
@@ -1562,6 +1603,7 @@ export declare const VDataTable: {
1562
1603
  value: number;
1563
1604
  })[];
1564
1605
  showCurrentPage: boolean;
1606
+ lastFixed: boolean;
1565
1607
  fixedHeader: boolean;
1566
1608
  sortAscIcon: import("../../composables/icons.js").IconValue;
1567
1609
  sortDescIcon: import("../../composables/icons.js").IconValue;
@@ -1616,6 +1658,7 @@ export declare const VDataTable: {
1616
1658
  selectStrategy: "all" | "page" | "single";
1617
1659
  valueComparator: typeof import("../../util/index.js").deepEqual;
1618
1660
  density: import("../../composables/density.js").Density;
1661
+ striped: import("../VTable/VTable.js").Striped;
1619
1662
  nextIcon: import("../../composables/icons.js").IconValue;
1620
1663
  prevIcon: import("../../composables/icons.js").IconValue;
1621
1664
  hideNoData: boolean;
@@ -1632,6 +1675,7 @@ export declare const VDataTable: {
1632
1675
  value: number;
1633
1676
  })[];
1634
1677
  showCurrentPage: boolean;
1678
+ lastFixed: boolean;
1635
1679
  fixedHeader: boolean;
1636
1680
  sortAscIcon: import("../../composables/icons.js").IconValue;
1637
1681
  sortDescIcon: import("../../composables/icons.js").IconValue;
@@ -1668,6 +1712,7 @@ export declare const VDataTable: {
1668
1712
  selectStrategy: "all" | "page" | "single";
1669
1713
  valueComparator: typeof import("../../util/index.js").deepEqual;
1670
1714
  density: import("../../composables/density.js").Density;
1715
+ striped: import("../VTable/VTable.js").Striped;
1671
1716
  nextIcon: import("../../composables/icons.js").IconValue;
1672
1717
  prevIcon: import("../../composables/icons.js").IconValue;
1673
1718
  hideNoData: boolean;
@@ -1684,6 +1729,7 @@ export declare const VDataTable: {
1684
1729
  value: number;
1685
1730
  })[];
1686
1731
  showCurrentPage: boolean;
1732
+ lastFixed: boolean;
1687
1733
  fixedHeader: boolean;
1688
1734
  sortAscIcon: import("../../composables/icons.js").IconValue;
1689
1735
  sortDescIcon: import("../../composables/icons.js").IconValue;
@@ -1747,6 +1793,7 @@ export declare const VDataTable: {
1747
1793
  selectStrategy: "all" | "page" | "single";
1748
1794
  valueComparator: typeof import("../../util/index.js").deepEqual;
1749
1795
  density: import("../../composables/density.js").Density;
1796
+ striped: import("../VTable/VTable.js").Striped;
1750
1797
  nextIcon: import("../../composables/icons.js").IconValue;
1751
1798
  prevIcon: import("../../composables/icons.js").IconValue;
1752
1799
  hideNoData: boolean;
@@ -1763,6 +1810,7 @@ export declare const VDataTable: {
1763
1810
  value: number;
1764
1811
  })[];
1765
1812
  showCurrentPage: boolean;
1813
+ lastFixed: boolean;
1766
1814
  fixedHeader: boolean;
1767
1815
  sortAscIcon: import("../../composables/icons.js").IconValue;
1768
1816
  sortDescIcon: import("../../composables/icons.js").IconValue;
@@ -1903,6 +1951,11 @@ export declare const VDataTable: {
1903
1951
  fixedFooter: BooleanConstructor;
1904
1952
  height: (StringConstructor | NumberConstructor)[];
1905
1953
  hover: BooleanConstructor;
1954
+ striped: {
1955
+ type: import("vue").PropType<import("../VTable/VTable.js").Striped>;
1956
+ default: null;
1957
+ validator: (v: any) => boolean;
1958
+ };
1906
1959
  loading: (StringConstructor | BooleanConstructor)[];
1907
1960
  mobile: {
1908
1961
  type: import("vue").PropType<boolean | null>;
@@ -1911,6 +1964,7 @@ export declare const VDataTable: {
1911
1964
  mobileBreakpoint: import("vue").PropType<number | import("../../types.js").DisplayBreakpoint>;
1912
1965
  color: StringConstructor;
1913
1966
  disableSort: BooleanConstructor;
1967
+ lastFixed: BooleanConstructor;
1914
1968
  multiSort: BooleanConstructor;
1915
1969
  sortAscIcon: {
1916
1970
  type: import("vue").PropType<import("../../composables/icons.js").IconValue>;
@@ -2070,6 +2124,11 @@ export declare const VDataTable: {
2070
2124
  fixedFooter: BooleanConstructor;
2071
2125
  height: (StringConstructor | NumberConstructor)[];
2072
2126
  hover: BooleanConstructor;
2127
+ striped: {
2128
+ type: import("vue").PropType<import("../VTable/VTable.js").Striped>;
2129
+ default: null;
2130
+ validator: (v: any) => boolean;
2131
+ };
2073
2132
  loading: (StringConstructor | BooleanConstructor)[];
2074
2133
  mobile: {
2075
2134
  type: import("vue").PropType<boolean | null>;
@@ -2078,6 +2137,7 @@ export declare const VDataTable: {
2078
2137
  mobileBreakpoint: import("vue").PropType<number | import("../../types.js").DisplayBreakpoint>;
2079
2138
  color: StringConstructor;
2080
2139
  disableSort: BooleanConstructor;
2140
+ lastFixed: BooleanConstructor;
2081
2141
  multiSort: BooleanConstructor;
2082
2142
  sortAscIcon: {
2083
2143
  type: import("vue").PropType<import("../../composables/icons.js").IconValue>;
@@ -40,6 +40,7 @@ export declare const makeVDataTableHeadersProps: <Defaults extends {
40
40
  color?: unknown;
41
41
  disableSort?: unknown;
42
42
  fixedHeader?: unknown;
43
+ lastFixed?: unknown;
43
44
  multiSort?: unknown;
44
45
  sortAscIcon?: unknown;
45
46
  sortDescIcon?: unknown;
@@ -76,6 +77,10 @@ export declare const makeVDataTableHeadersProps: <Defaults extends {
76
77
  type: PropType<unknown extends Defaults["fixedHeader"] ? boolean : boolean | Defaults["fixedHeader"]>;
77
78
  default: unknown extends Defaults["fixedHeader"] ? boolean : boolean | Defaults["fixedHeader"];
78
79
  };
80
+ lastFixed: unknown extends Defaults["lastFixed"] ? BooleanConstructor : {
81
+ type: PropType<unknown extends Defaults["lastFixed"] ? boolean : boolean | Defaults["lastFixed"]>;
82
+ default: unknown extends Defaults["lastFixed"] ? boolean : boolean | Defaults["lastFixed"];
83
+ };
79
84
  multiSort: unknown extends Defaults["multiSort"] ? BooleanConstructor : {
80
85
  type: PropType<unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"]>;
81
86
  default: unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"];
@@ -119,6 +124,7 @@ export declare const VDataTableHeaders: {
119
124
  sticky: boolean;
120
125
  multiSort: boolean;
121
126
  disableSort: boolean;
127
+ lastFixed: boolean;
122
128
  fixedHeader: boolean;
123
129
  sortAscIcon: IconValue;
124
130
  sortDescIcon: IconValue;
@@ -153,6 +159,7 @@ export declare const VDataTableHeaders: {
153
159
  sticky: boolean;
154
160
  multiSort: boolean;
155
161
  disableSort: boolean;
162
+ lastFixed: boolean;
156
163
  fixedHeader: boolean;
157
164
  sortAscIcon: IconValue;
158
165
  sortDescIcon: IconValue;
@@ -174,6 +181,7 @@ export declare const VDataTableHeaders: {
174
181
  sticky: boolean;
175
182
  multiSort: boolean;
176
183
  disableSort: boolean;
184
+ lastFixed: boolean;
177
185
  fixedHeader: boolean;
178
186
  sortAscIcon: IconValue;
179
187
  sortDescIcon: IconValue;
@@ -208,6 +216,7 @@ export declare const VDataTableHeaders: {
208
216
  sticky: boolean;
209
217
  multiSort: boolean;
210
218
  disableSort: boolean;
219
+ lastFixed: boolean;
211
220
  fixedHeader: boolean;
212
221
  sortAscIcon: IconValue;
213
222
  sortDescIcon: IconValue;
@@ -220,6 +229,7 @@ export declare const VDataTableHeaders: {
220
229
  sticky: boolean;
221
230
  multiSort: boolean;
222
231
  disableSort: boolean;
232
+ lastFixed: boolean;
223
233
  fixedHeader: boolean;
224
234
  sortAscIcon: IconValue;
225
235
  sortDescIcon: IconValue;
@@ -254,6 +264,7 @@ export declare const VDataTableHeaders: {
254
264
  sticky: boolean;
255
265
  multiSort: boolean;
256
266
  disableSort: boolean;
267
+ lastFixed: boolean;
257
268
  fixedHeader: boolean;
258
269
  sortAscIcon: IconValue;
259
270
  sortDescIcon: IconValue;
@@ -273,6 +284,7 @@ export declare const VDataTableHeaders: {
273
284
  color: StringConstructor;
274
285
  disableSort: BooleanConstructor;
275
286
  fixedHeader: BooleanConstructor;
287
+ lastFixed: BooleanConstructor;
276
288
  multiSort: BooleanConstructor;
277
289
  sortAscIcon: {
278
290
  type: PropType<IconValue>;
@@ -296,6 +308,7 @@ export declare const VDataTableHeaders: {
296
308
  color: StringConstructor;
297
309
  disableSort: BooleanConstructor;
298
310
  fixedHeader: BooleanConstructor;
311
+ lastFixed: BooleanConstructor;
299
312
  multiSort: BooleanConstructor;
300
313
  sortAscIcon: {
301
314
  type: PropType<IconValue>;
@@ -19,6 +19,7 @@ export const makeVDataTableHeadersProps = propsFactory({
19
19
  color: String,
20
20
  disableSort: Boolean,
21
21
  fixedHeader: Boolean,
22
+ lastFixed: Boolean,
22
23
  multiSort: Boolean,
23
24
  sortAscIcon: {
24
25
  type: IconValue,
@@ -65,10 +66,11 @@ export const VDataTableHeaders = genericComponent()({
65
66
  loaderClasses
66
67
  } = useLoader(props);
67
68
  function getFixedStyles(column, y) {
68
- if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
69
+ if (!(props.sticky || props.fixedHeader) && !(column.fixed || column.lastFixed)) return undefined;
69
70
  return {
70
71
  position: 'sticky',
71
- left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
72
+ left: column.fixed || column.lastFixed ? convertToUnit(column.fixedOffset) : undefined,
73
+ right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
72
74
  top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
73
75
  };
74
76
  }