vuetify 3.3.15 → 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 (78) hide show
  1. package/dist/json/attributes.json +427 -403
  2. package/dist/json/importMap.json +4 -4
  3. package/dist/json/tags.json +1 -0
  4. package/dist/json/web-types.json +908 -879
  5. package/dist/vuetify-labs.css +245 -240
  6. package/dist/vuetify-labs.d.ts +162 -144
  7. package/dist/vuetify-labs.esm.js +121 -136
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +121 -136
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +92 -88
  12. package/dist/vuetify.d.ts +99 -81
  13. package/dist/vuetify.esm.js +113 -130
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +113 -130
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +223 -224
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +2 -0
  21. package/lib/blueprints/md1.d.mts +2 -0
  22. package/lib/blueprints/md2.d.mts +2 -0
  23. package/lib/blueprints/md3.d.mts +2 -0
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -26
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +40 -38
  27. package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -0
  28. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +28 -34
  29. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  30. package/lib/components/VColorPicker/VColorPickerCanvas.sass +1 -0
  31. package/lib/components/VCombobox/VCombobox.mjs +15 -25
  32. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  33. package/lib/components/VCombobox/index.d.mts +40 -38
  34. package/lib/components/VField/VField.css +3 -2
  35. package/lib/components/VField/VField.sass +3 -2
  36. package/lib/components/VLabel/VLabel.css +1 -0
  37. package/lib/components/VLabel/VLabel.sass +1 -0
  38. package/lib/components/VLabel/_variables.scss +1 -1
  39. package/lib/components/VList/index.d.mts +21 -3
  40. package/lib/components/VSelect/VSelect.mjs +9 -23
  41. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  42. package/lib/components/VSelect/index.d.mts +14 -11
  43. package/lib/components/VSelectionControl/VSelectionControl.css +1 -1
  44. package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
  45. package/lib/components/VTabs/VTab.css +1 -0
  46. package/lib/components/VTabs/VTab.mjs +2 -3
  47. package/lib/components/VTabs/VTab.mjs.map +1 -1
  48. package/lib/components/VTabs/VTab.sass +1 -0
  49. package/lib/components/VTabs/_variables.scss +1 -0
  50. package/lib/components/index.d.mts +96 -80
  51. package/lib/composables/filter.mjs +4 -4
  52. package/lib/composables/filter.mjs.map +1 -1
  53. package/lib/composables/list-items.mjs +26 -15
  54. package/lib/composables/list-items.mjs.map +1 -1
  55. package/lib/entry-bundler.mjs +1 -1
  56. package/lib/framework.mjs +1 -1
  57. package/lib/index.d.mts +3 -1
  58. package/lib/labs/VBottomSheet/VBottomSheet.css +1 -0
  59. package/lib/labs/VBottomSheet/VBottomSheet.sass +2 -0
  60. package/lib/labs/VBottomSheet/_variables.scss +1 -0
  61. package/lib/labs/VDataIterator/index.d.mts +30 -26
  62. package/lib/labs/VDataTable/index.d.mts +43 -39
  63. package/lib/labs/VDataTable/types.mjs.map +1 -1
  64. package/lib/labs/VDatePicker/VDatePicker.mjs +4 -2
  65. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  66. package/lib/labs/VDatePicker/VDatePickerControls.mjs +4 -4
  67. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
  68. package/lib/labs/VDatePicker/VDatePickerYears.css +1 -1
  69. package/lib/labs/VDatePicker/VDatePickerYears.sass +1 -1
  70. package/lib/labs/VDatePicker/index.d.mts +24 -24
  71. package/lib/labs/VDateRangePicker/index.d.mts +8 -8
  72. package/lib/labs/components.d.mts +80 -76
  73. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  74. package/lib/labs/date/adapters/vuetify.d.mts +4 -0
  75. package/lib/labs/date/adapters/vuetify.mjs +13 -0
  76. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  77. package/lib/labs/date/index.d.mts +4 -0
  78. package/package.json +2 -2
@@ -23,11 +23,15 @@ export const makeItemsProps = propsFactory({
23
23
  type: [Boolean, String, Array, Function],
24
24
  default: 'props'
25
25
  },
26
- returnObject: Boolean
26
+ returnObject: Boolean,
27
+ valueComparator: {
28
+ type: Function,
29
+ default: deepEqual
30
+ }
27
31
  }, 'list-items');
28
32
  export function transformItem(props, item) {
29
33
  const title = getPropertyFromItem(item, props.itemTitle, item);
30
- const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue, title);
34
+ const value = getPropertyFromItem(item, props.itemValue, title);
31
35
  const children = getPropertyFromItem(item, props.itemChildren);
32
36
  const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? pick(item, ['children'])[1] : item : undefined : getPropertyFromItem(item, props.itemProps);
33
37
  const _props = {
@@ -52,25 +56,32 @@ export function transformItems(props, items) {
52
56
  }
53
57
  export function useItems(props) {
54
58
  const items = computed(() => transformItems(props, props.items));
55
- return useTransformItems(items, value => transformItem(props, value));
56
- }
57
- export function useTransformItems(items, transform) {
59
+ const hasNullItem = computed(() => items.value.some(item => item.value === null));
58
60
  function transformIn(value) {
59
- return value
60
- // When the model value is null, returns an InternalItem based on null
61
- // only if null is one of the items
62
- .filter(v => v !== null || items.value.some(item => item.value === null)).map(v => {
63
- const existingItem = items.value.find(item => deepEqual(v, item.value));
64
- // Nullish existingItem means value is a custom input value from combobox
65
- // In this case, use transformItem to create an InternalItem based on value
66
- return existingItem ?? transform(v);
61
+ if (!hasNullItem.value) {
62
+ // When the model value is null, return an InternalItem
63
+ // based on null only if null is one of the items
64
+ value = value.filter(v => v !== null);
65
+ }
66
+ return value.map(v => {
67
+ if (props.returnObject && typeof v === 'string') {
68
+ // String model value means value is a custom input value from combobox
69
+ // Don't look up existing items if the model value is a string
70
+ return transformItem(props, v);
71
+ }
72
+ return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v);
67
73
  });
68
74
  }
69
75
  function transformOut(value) {
70
- return value.map(_ref => {
76
+ return props.returnObject ? value.map(_ref => {
71
77
  let {
72
- value
78
+ raw
73
79
  } = _ref;
80
+ return raw;
81
+ }) : value.map(_ref2 => {
82
+ let {
83
+ value
84
+ } = _ref2;
74
85
  return value;
75
86
  });
76
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list-items.mjs","names":["computed","deepEqual","getPropertyFromItem","pick","propsFactory","makeItemsProps","items","type","Array","default","itemTitle","String","Function","itemValue","itemChildren","Boolean","itemProps","returnObject","transformItem","props","item","title","value","children","isArray","undefined","_props","transformItems","raw","array","push","useItems","useTransformItems","transform","transformIn","filter","v","some","map","existingItem","find","transformOut","_ref"],"sources":["../../src/composables/list-items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { deepEqual, getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface ListItem<T = any> {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: ListItem<T>[]\n raw: T\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'list-items')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any): ListItem {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? pick(item, ['children'])[1]\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: ListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return useTransformItems(items, value => transformItem(props, value))\n}\n\nexport function useTransformItems <T extends { value: unknown }> (items: Ref<T[]>, transform: (value: unknown) => T) {\n function transformIn (value: any[]): T[] {\n return value\n // When the model value is null, returns an InternalItem based on null\n // only if null is one of the items\n .filter(v => v !== null || items.value.some(item => item.value === null))\n .map(v => {\n const existingItem = items.value.find(item => deepEqual(v, item.value))\n // Nullish existingItem means value is a custom input value from combobox\n // In this case, use transformItem to create an InternalItem based on value\n return existingItem ?? transform(v)\n })\n }\n\n function transformOut (value: T[]) {\n return value.map(({ value }) => value)\n }\n\n return { items, transformIn, transformOut }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"list-items.mjs","names":["computed","deepEqual","getPropertyFromItem","pick","propsFactory","makeItemsProps","items","type","Array","default","itemTitle","String","Function","itemValue","itemChildren","Boolean","itemProps","returnObject","valueComparator","transformItem","props","item","title","value","children","isArray","undefined","_props","transformItems","raw","array","push","useItems","hasNullItem","some","transformIn","filter","v","map","find","transformOut","_ref","_ref2"],"sources":["../../src/composables/list-items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { deepEqual, getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport interface ListItem<T = any> extends InternalItem<T> {\n title: string\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: ListItem<T>[]\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n valueComparator: typeof deepEqual\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n}, 'list-items')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any): ListItem {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? pick(item, ['children'])[1]\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: ListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n const hasNullItem = computed(() => items.value.some(item => item.value === null))\n\n function transformIn (value: any[]): ListItem[] {\n if (!hasNullItem.value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n value = value.filter(v => v !== null)\n }\n\n return value.map(v => {\n if (props.returnObject && typeof v === 'string') {\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n return transformItem(props, v)\n }\n return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v)\n })\n }\n\n function transformOut (value: ListItem[]): any[] {\n return props.returnObject\n ? value.map(({ raw }) => raw)\n : value.map(({ value }) => value)\n }\n\n return { items, transformIn, transformOut }\n}\n"],"mappings":"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"}
@@ -15,7 +15,7 @@ export const createVuetify = function () {
15
15
  ...options
16
16
  });
17
17
  };
18
- export const version = "3.3.15";
18
+ export const version = "3.3.16";
19
19
  createVuetify.version = version;
20
20
  export { components, directives };
21
21
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -92,7 +92,7 @@ export function createVuetify() {
92
92
  date
93
93
  };
94
94
  }
95
- export const version = "3.3.15";
95
+ export const version = "3.3.16";
96
96
  createVuetify.version = version;
97
97
 
98
98
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -213,6 +213,8 @@ interface DateAdapter<T> {
213
213
  date(value?: any): T | null;
214
214
  format(date: T, formatString: string): string;
215
215
  toJsDate(value: T): Date;
216
+ startOfDay(date: T): T;
217
+ endOfDay(date: T): T;
216
218
  startOfMonth(date: T): T;
217
219
  endOfMonth(date: T): T;
218
220
  startOfYear(date: T): T;
@@ -428,8 +430,8 @@ declare module '@vue/runtime-core' {
428
430
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
429
431
  VMain: typeof import('vuetify/components')['VMain']
430
432
  VMenu: typeof import('vuetify/components')['VMenu']
431
- VMessages: typeof import('vuetify/components')['VMessages']
432
433
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
434
+ VMessages: typeof import('vuetify/components')['VMessages']
433
435
  VOverlay: typeof import('vuetify/components')['VOverlay']
434
436
  VPagination: typeof import('vuetify/components')['VPagination']
435
437
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
@@ -18,6 +18,7 @@
18
18
  width: 100%;
19
19
  max-width: 100%;
20
20
  overflow: visible;
21
+ box-shadow: 0px 7px 8px -4px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 12px 17px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 5px 22px 4px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.12));
21
22
  }
22
23
  .v-bottom-sheet > .v-bottom-sheet__content.v-overlay__content > .v-card,
23
24
  .v-bottom-sheet > .v-bottom-sheet__content.v-overlay__content > .v-sheet {
@@ -26,6 +26,8 @@
26
26
  max-width: 100%
27
27
  overflow: visible
28
28
 
29
+ @include tools.elevation($bottom-sheet-elevation)
30
+
29
31
  > .v-card,
30
32
  > .v-sheet
31
33
  border-radius: $bottom-sheet-border-radius
@@ -1,5 +1,6 @@
1
1
  @use '../../styles/settings';
2
2
 
3
+ $bottom-sheet-elevation: 12 !default;
3
4
  $bottom-sheet-inset-width: 70% !default;
4
5
  $bottom-sheet-border-radius: 0 !default;
5
6
  $bottom-sheet-transition-duration: .2s !default;
@@ -76,6 +76,22 @@ declare function provideSelection(props: SelectionProps, { allItems, currentPage
76
76
  showSelectAll: boolean;
77
77
  };
78
78
 
79
+ /**
80
+ * - match without highlight
81
+ * - single match (index), length already known
82
+ * - single match (start, end)
83
+ * - multiple matches (start, end), probably shouldn't overlap
84
+ */
85
+ type FilterMatch = boolean | number | [number, number] | [number, number][];
86
+ type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch;
87
+ type FilterKeyFunctions = Record<string, FilterFunction>;
88
+ type FilterKeys = string | string[];
89
+ type FilterMode = 'some' | 'every' | 'union' | 'intersection';
90
+ interface InternalItem<T = any> {
91
+ value: any;
92
+ raw: T;
93
+ }
94
+
79
95
  type DataTableCompareFunction<T = any> = (a: T, b: T) => number;
80
96
  type DataTableHeader = {
81
97
  key: string;
@@ -96,7 +112,7 @@ type InternalDataTableHeader = DataTableHeader & {
96
112
  fixedOffset?: number;
97
113
  lastFixed?: boolean;
98
114
  };
99
- interface DataTableItem<T = any> extends GroupableItem<T>, SelectableItem {
115
+ interface DataTableItem<T = any> extends InternalItem<T>, GroupableItem<T>, SelectableItem {
100
116
  key: any;
101
117
  index: number;
102
118
  columns: {
@@ -104,18 +120,6 @@ interface DataTableItem<T = any> extends GroupableItem<T>, SelectableItem {
104
120
  };
105
121
  }
106
122
 
107
- /**
108
- * - match without highlight
109
- * - single match (index), length already known
110
- * - single match (start, end)
111
- * - multiple matches (start, end), probably shouldn't overlap
112
- */
113
- type FilterMatch = boolean | number | [number, number] | [number, number][];
114
- type FilterFunction = (value: string, query: string, item?: any) => FilterMatch;
115
- type FilterKeyFunctions = Record<string, FilterFunction>;
116
- type FilterKeys = string | string[];
117
- type FilterMode = 'some' | 'every' | 'union' | 'intersection';
118
-
119
123
  type ExpandProps = {
120
124
  expandOnClick: boolean;
121
125
  expanded: readonly string[];
@@ -187,10 +191,10 @@ declare const VDataIterator: {
187
191
  items?: any[] | undefined;
188
192
  modelValue?: readonly any[] | undefined;
189
193
  selectStrategy?: "all" | "page" | "single" | undefined;
190
- itemValue?: SelectItemKey | undefined;
191
- returnObject?: boolean | undefined;
192
194
  filterMode?: FilterMode | undefined;
193
195
  noFilter?: boolean | undefined;
196
+ itemValue?: SelectItemKey | undefined;
197
+ returnObject?: boolean | undefined;
194
198
  itemSelectable?: SelectItemKey | undefined;
195
199
  showSelect?: boolean | undefined;
196
200
  multiSort?: boolean | undefined;
@@ -258,10 +262,10 @@ declare const VDataIterator: {
258
262
  }>) => void)[] | undefined;
259
263
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
260
264
  "v-slot:header"?: false | ((arg: VDataIteratorSlotProps) => vue.VNodeChild) | undefined;
261
- "v-slot:no-data"?: false | (() => vue.VNodeChild) | undefined;
262
265
  customFilter?: FilterFunction | undefined;
263
266
  customKeyFilter?: FilterKeyFunctions | undefined;
264
267
  filterKeys?: FilterKeys | undefined;
268
+ "v-slot:no-data"?: false | (() => vue.VNodeChild) | undefined;
265
269
  customKeySort?: Record<string, DataTableCompareFunction> | undefined;
266
270
  "onUpdate:sortBy"?: ((value: any) => any) | undefined;
267
271
  "onUpdate:groupBy"?: ((value: any) => any) | undefined;
@@ -305,10 +309,10 @@ declare const VDataIterator: {
305
309
  items: any[];
306
310
  modelValue: readonly any[];
307
311
  selectStrategy: "all" | "page" | "single";
308
- itemValue: SelectItemKey;
309
- returnObject: boolean;
310
312
  filterMode: FilterMode;
311
313
  noFilter: boolean;
314
+ itemValue: SelectItemKey;
315
+ returnObject: boolean;
312
316
  itemSelectable: SelectItemKey;
313
317
  showSelect: boolean;
314
318
  multiSort: boolean;
@@ -368,10 +372,10 @@ declare const VDataIterator: {
368
372
  items: any[];
369
373
  modelValue: readonly any[];
370
374
  selectStrategy: "all" | "page" | "single";
371
- itemValue: SelectItemKey;
372
- returnObject: boolean;
373
375
  filterMode: FilterMode;
374
376
  noFilter: boolean;
377
+ itemValue: SelectItemKey;
378
+ returnObject: boolean;
375
379
  itemSelectable: SelectItemKey;
376
380
  showSelect: boolean;
377
381
  multiSort: boolean;
@@ -423,10 +427,10 @@ declare const VDataIterator: {
423
427
  items: any[];
424
428
  modelValue: readonly any[];
425
429
  selectStrategy: "all" | "page" | "single";
426
- itemValue: SelectItemKey;
427
- returnObject: boolean;
428
430
  filterMode: FilterMode;
429
431
  noFilter: boolean;
432
+ itemValue: SelectItemKey;
433
+ returnObject: boolean;
430
434
  itemSelectable: SelectItemKey;
431
435
  showSelect: boolean;
432
436
  multiSort: boolean;
@@ -482,10 +486,10 @@ declare const VDataIterator: {
482
486
  items: any[];
483
487
  modelValue: readonly any[];
484
488
  selectStrategy: "all" | "page" | "single";
485
- itemValue: SelectItemKey;
486
- returnObject: boolean;
487
489
  filterMode: FilterMode;
488
490
  noFilter: boolean;
491
+ itemValue: SelectItemKey;
492
+ returnObject: boolean;
489
493
  itemSelectable: SelectItemKey;
490
494
  showSelect: boolean;
491
495
  multiSort: boolean;
@@ -545,10 +549,10 @@ declare const VDataIterator: {
545
549
  items: any[];
546
550
  modelValue: readonly any[];
547
551
  selectStrategy: "all" | "page" | "single";
548
- itemValue: SelectItemKey;
549
- returnObject: boolean;
550
552
  filterMode: FilterMode;
551
553
  noFilter: boolean;
554
+ itemValue: SelectItemKey;
555
+ returnObject: boolean;
552
556
  itemSelectable: SelectItemKey;
553
557
  showSelect: boolean;
554
558
  multiSort: boolean;
@@ -54,6 +54,22 @@ declare function provideGroupBy(options: {
54
54
  isGroupOpen: (group: Group) => boolean;
55
55
  };
56
56
 
57
+ /**
58
+ * - match without highlight
59
+ * - single match (index), length already known
60
+ * - single match (start, end)
61
+ * - multiple matches (start, end), probably shouldn't overlap
62
+ */
63
+ type FilterMatch = boolean | number | [number, number] | [number, number][];
64
+ type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch;
65
+ type FilterKeyFunctions = Record<string, FilterFunction>;
66
+ type FilterKeys = string | string[];
67
+ type FilterMode = 'some' | 'every' | 'union' | 'intersection';
68
+ interface InternalItem<T = any> {
69
+ value: any;
70
+ raw: T;
71
+ }
72
+
57
73
  type DataTableCompareFunction<T = any> = (a: T, b: T) => number;
58
74
  type DataTableHeader = {
59
75
  key: string;
@@ -74,7 +90,7 @@ type InternalDataTableHeader = DataTableHeader & {
74
90
  fixedOffset?: number;
75
91
  lastFixed?: boolean;
76
92
  };
77
- interface DataTableItem<T = any> extends GroupableItem<T>, SelectableItem {
93
+ interface DataTableItem<T = any> extends InternalItem<T>, GroupableItem<T>, SelectableItem {
78
94
  key: any;
79
95
  index: number;
80
96
  columns: {
@@ -125,18 +141,6 @@ type HeadersSlotProps = {
125
141
  isSorted: ReturnType<typeof provideSort>['isSorted'];
126
142
  };
127
143
 
128
- /**
129
- * - match without highlight
130
- * - single match (index), length already known
131
- * - single match (start, end)
132
- * - multiple matches (start, end), probably shouldn't overlap
133
- */
134
- type FilterMatch = boolean | number | [number, number] | [number, number][];
135
- type FilterFunction = (value: string, query: string, item?: any) => FilterMatch;
136
- type FilterKeyFunctions = Record<string, FilterFunction>;
137
- type FilterKeys = string | string[];
138
- type FilterMode = 'some' | 'every' | 'union' | 'intersection';
139
-
140
144
  type Density = null | 'default' | 'comfortable' | 'compact';
141
145
 
142
146
  type ExpandProps = {
@@ -783,11 +787,11 @@ declare const VDataTable: {
783
787
  density?: Density | undefined;
784
788
  modelValue?: readonly any[] | undefined;
785
789
  selectStrategy?: "all" | "page" | "single" | undefined;
790
+ filterMode?: FilterMode | undefined;
791
+ noFilter?: boolean | undefined;
786
792
  itemValue?: SelectItemKey | undefined;
787
793
  returnObject?: boolean | undefined;
788
794
  hideNoData?: boolean | undefined;
789
- filterMode?: FilterMode | undefined;
790
- noFilter?: boolean | undefined;
791
795
  hover?: boolean | undefined;
792
796
  nextIcon?: string | undefined;
793
797
  prevIcon?: string | undefined;
@@ -1099,10 +1103,10 @@ declare const VDataTable: {
1099
1103
  } & {
1100
1104
  props: Record<string, any>;
1101
1105
  }) => vue.VNodeChild) | undefined;
1102
- "v-slot:no-data"?: false | (() => vue.VNodeChild) | undefined;
1103
1106
  customFilter?: FilterFunction | undefined;
1104
1107
  customKeyFilter?: FilterKeyFunctions | undefined;
1105
1108
  filterKeys?: FilterKeys | undefined;
1109
+ "v-slot:no-data"?: false | (() => vue.VNodeChild) | undefined;
1106
1110
  "v-slot:top"?: false | ((arg: VDataTableSlotProps) => vue.VNodeChild) | undefined;
1107
1111
  "v-slot:bottom"?: false | ((arg: VDataTableSlotProps) => vue.VNodeChild) | undefined;
1108
1112
  customKeySort?: Record<string, DataTableCompareFunction> | undefined;
@@ -1338,11 +1342,11 @@ declare const VDataTable: {
1338
1342
  density: Density;
1339
1343
  modelValue: readonly any[];
1340
1344
  selectStrategy: "all" | "page" | "single";
1345
+ filterMode: FilterMode;
1346
+ noFilter: boolean;
1341
1347
  itemValue: SelectItemKey;
1342
1348
  returnObject: boolean;
1343
1349
  hideNoData: boolean;
1344
- filterMode: FilterMode;
1345
- noFilter: boolean;
1346
1350
  hover: boolean;
1347
1351
  nextIcon: string;
1348
1352
  prevIcon: string;
@@ -1750,11 +1754,11 @@ declare const VDataTable: {
1750
1754
  density: Density;
1751
1755
  modelValue: readonly any[];
1752
1756
  selectStrategy: "all" | "page" | "single";
1757
+ filterMode: FilterMode;
1758
+ noFilter: boolean;
1753
1759
  itemValue: SelectItemKey;
1754
1760
  returnObject: boolean;
1755
1761
  hideNoData: boolean;
1756
- filterMode: FilterMode;
1757
- noFilter: boolean;
1758
1762
  hover: boolean;
1759
1763
  nextIcon: string;
1760
1764
  prevIcon: string;
@@ -1975,11 +1979,11 @@ declare const VDataTable: {
1975
1979
  density: Density;
1976
1980
  modelValue: readonly any[];
1977
1981
  selectStrategy: "all" | "page" | "single";
1982
+ filterMode: FilterMode;
1983
+ noFilter: boolean;
1978
1984
  itemValue: SelectItemKey;
1979
1985
  returnObject: boolean;
1980
1986
  hideNoData: boolean;
1981
- filterMode: FilterMode;
1982
- noFilter: boolean;
1983
1987
  hover: boolean;
1984
1988
  nextIcon: string;
1985
1989
  prevIcon: string;
@@ -2383,11 +2387,11 @@ declare const VDataTable: {
2383
2387
  density: Density;
2384
2388
  modelValue: readonly any[];
2385
2389
  selectStrategy: "all" | "page" | "single";
2390
+ filterMode: FilterMode;
2391
+ noFilter: boolean;
2386
2392
  itemValue: SelectItemKey;
2387
2393
  returnObject: boolean;
2388
2394
  hideNoData: boolean;
2389
- filterMode: FilterMode;
2390
- noFilter: boolean;
2391
2395
  hover: boolean;
2392
2396
  nextIcon: string;
2393
2397
  prevIcon: string;
@@ -2795,11 +2799,11 @@ declare const VDataTable: {
2795
2799
  density: Density;
2796
2800
  modelValue: readonly any[];
2797
2801
  selectStrategy: "all" | "page" | "single";
2802
+ filterMode: FilterMode;
2803
+ noFilter: boolean;
2798
2804
  itemValue: SelectItemKey;
2799
2805
  returnObject: boolean;
2800
2806
  hideNoData: boolean;
2801
- filterMode: FilterMode;
2802
- noFilter: boolean;
2803
2807
  hover: boolean;
2804
2808
  nextIcon: string;
2805
2809
  prevIcon: string;
@@ -3781,12 +3785,12 @@ declare const VDataTableVirtual: {
3781
3785
  density?: Density | undefined;
3782
3786
  modelValue?: readonly any[] | undefined;
3783
3787
  selectStrategy?: "all" | "page" | "single" | undefined;
3788
+ filterMode?: FilterMode | undefined;
3789
+ noFilter?: boolean | undefined;
3784
3790
  itemValue?: SelectItemKey | undefined;
3785
3791
  returnObject?: boolean | undefined;
3786
3792
  itemHeight?: string | number | undefined;
3787
3793
  hideNoData?: boolean | undefined;
3788
- filterMode?: FilterMode | undefined;
3789
- noFilter?: boolean | undefined;
3790
3794
  hover?: boolean | undefined;
3791
3795
  fixedHeader?: boolean | undefined;
3792
3796
  fixedFooter?: boolean | undefined;
@@ -4075,10 +4079,10 @@ declare const VDataTableVirtual: {
4075
4079
  } & {
4076
4080
  itemRef: Ref<HTMLElement | undefined>;
4077
4081
  }) => vue.VNodeChild) | undefined;
4078
- "v-slot:no-data"?: false | (() => vue.VNodeChild) | undefined;
4079
4082
  customFilter?: FilterFunction | undefined;
4080
4083
  customKeyFilter?: FilterKeyFunctions | undefined;
4081
4084
  filterKeys?: FilterKeys | undefined;
4085
+ "v-slot:no-data"?: false | (() => vue.VNodeChild) | undefined;
4082
4086
  "v-slot:top"?: false | ((arg: VDataTableVirtualSlotProps) => vue.VNodeChild) | undefined;
4083
4087
  "v-slot:bottom"?: false | ((arg: VDataTableVirtualSlotProps) => vue.VNodeChild) | undefined;
4084
4088
  customKeySort?: Record<string, DataTableCompareFunction> | undefined;
@@ -4288,12 +4292,12 @@ declare const VDataTableVirtual: {
4288
4292
  density: Density;
4289
4293
  modelValue: readonly any[];
4290
4294
  selectStrategy: "all" | "page" | "single";
4295
+ filterMode: FilterMode;
4296
+ noFilter: boolean;
4291
4297
  itemValue: SelectItemKey;
4292
4298
  returnObject: boolean;
4293
4299
  itemHeight: string | number;
4294
4300
  hideNoData: boolean;
4295
- filterMode: FilterMode;
4296
- noFilter: boolean;
4297
4301
  hover: boolean;
4298
4302
  fixedHeader: boolean;
4299
4303
  fixedFooter: boolean;
@@ -4671,12 +4675,12 @@ declare const VDataTableVirtual: {
4671
4675
  density: Density;
4672
4676
  modelValue: readonly any[];
4673
4677
  selectStrategy: "all" | "page" | "single";
4678
+ filterMode: FilterMode;
4679
+ noFilter: boolean;
4674
4680
  itemValue: SelectItemKey;
4675
4681
  returnObject: boolean;
4676
4682
  itemHeight: string | number;
4677
4683
  hideNoData: boolean;
4678
- filterMode: FilterMode;
4679
- noFilter: boolean;
4680
4684
  hover: boolean;
4681
4685
  fixedHeader: boolean;
4682
4686
  fixedFooter: boolean;
@@ -4861,12 +4865,12 @@ declare const VDataTableVirtual: {
4861
4865
  density: Density;
4862
4866
  modelValue: readonly any[];
4863
4867
  selectStrategy: "all" | "page" | "single";
4868
+ filterMode: FilterMode;
4869
+ noFilter: boolean;
4864
4870
  itemValue: SelectItemKey;
4865
4871
  returnObject: boolean;
4866
4872
  itemHeight: string | number;
4867
4873
  hideNoData: boolean;
4868
- filterMode: FilterMode;
4869
- noFilter: boolean;
4870
4874
  hover: boolean;
4871
4875
  fixedHeader: boolean;
4872
4876
  fixedFooter: boolean;
@@ -5239,12 +5243,12 @@ declare const VDataTableVirtual: {
5239
5243
  density: Density;
5240
5244
  modelValue: readonly any[];
5241
5245
  selectStrategy: "all" | "page" | "single";
5246
+ filterMode: FilterMode;
5247
+ noFilter: boolean;
5242
5248
  itemValue: SelectItemKey;
5243
5249
  returnObject: boolean;
5244
5250
  itemHeight: string | number;
5245
5251
  hideNoData: boolean;
5246
- filterMode: FilterMode;
5247
- noFilter: boolean;
5248
5252
  hover: boolean;
5249
5253
  fixedHeader: boolean;
5250
5254
  fixedFooter: boolean;
@@ -5622,12 +5626,12 @@ declare const VDataTableVirtual: {
5622
5626
  density: Density;
5623
5627
  modelValue: readonly any[];
5624
5628
  selectStrategy: "all" | "page" | "single";
5629
+ filterMode: FilterMode;
5630
+ noFilter: boolean;
5625
5631
  itemValue: SelectItemKey;
5626
5632
  returnObject: boolean;
5627
5633
  itemHeight: string | number;
5628
5634
  hideNoData: boolean;
5629
- filterMode: FilterMode;
5630
- noFilter: boolean;
5631
5635
  hover: boolean;
5632
5636
  fixedHeader: boolean;
5633
5637
  fixedFooter: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/labs/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { GroupableItem } from './composables/group'\nimport type { SelectableItem } from './composables/select'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number\n\nexport type DataTableHeader = {\n key: string\n value?: SelectItemKey\n title: string\n\n colspan?: number\n rowspan?: number\n\n fixed?: boolean\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: string\n maxWidth?: string\n\n sortable?: boolean\n sort?: DataTableCompareFunction\n}\n\nexport type InternalDataTableHeader = DataTableHeader & {\n sortable: boolean\n fixedOffset?: number\n lastFixed?: boolean\n}\n\nexport interface DataTableItem<T = any> extends GroupableItem<T>, SelectableItem {\n key: any\n index: number\n columns: {\n [key: string]: any\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/labs/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { GroupableItem } from './composables/group'\nimport type { SelectableItem } from './composables/select'\nimport type { InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number\n\nexport type DataTableHeader = {\n key: string\n value?: SelectItemKey\n title: string\n\n colspan?: number\n rowspan?: number\n\n fixed?: boolean\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: string\n maxWidth?: string\n\n sortable?: boolean\n sort?: DataTableCompareFunction\n}\n\nexport type InternalDataTableHeader = DataTableHeader & {\n sortable: boolean\n fixedOffset?: number\n lastFixed?: boolean\n}\n\nexport interface DataTableItem<T = any> extends InternalItem<T>, GroupableItem<T>, SelectableItem {\n key: any\n index: number\n columns: {\n [key: string]: any\n }\n}\n"],"mappings":""}
@@ -121,9 +121,11 @@ export const VDatePicker = genericComponent()({
121
121
  function updateFromInput(input, index) {
122
122
  const {
123
123
  isValid,
124
- date
124
+ date,
125
+ isAfter
125
126
  } = adapter;
126
- if (isValid(input)) {
127
+ const inputDate = date(input);
128
+ if (isValid(input) && (!minDate.value || !isAfter(minDate.value, inputDate)) && (!maxDate.value || !isAfter(inputDate, maxDate.value))) {
127
129
  const newModel = model.value.slice();
128
130
  newModel[index] = date(input);
129
131
  if (props.hideActions) {