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.
- package/dist/json/attributes.json +427 -403
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +908 -879
- package/dist/vuetify-labs.css +245 -240
- package/dist/vuetify-labs.d.ts +162 -144
- package/dist/vuetify-labs.esm.js +121 -136
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +121 -136
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +92 -88
- package/dist/vuetify.d.ts +99 -81
- package/dist/vuetify.esm.js +113 -130
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +113 -130
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +223 -224
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +2 -0
- package/lib/blueprints/md1.d.mts +2 -0
- package/lib/blueprints/md2.d.mts +2 -0
- package/lib/blueprints/md3.d.mts +2 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -26
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +40 -38
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +28 -34
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +15 -25
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +40 -38
- package/lib/components/VField/VField.css +3 -2
- package/lib/components/VField/VField.sass +3 -2
- package/lib/components/VLabel/VLabel.css +1 -0
- package/lib/components/VLabel/VLabel.sass +1 -0
- package/lib/components/VLabel/_variables.scss +1 -1
- package/lib/components/VList/index.d.mts +21 -3
- package/lib/components/VSelect/VSelect.mjs +9 -23
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +14 -11
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VTabs/VTab.css +1 -0
- package/lib/components/VTabs/VTab.mjs +2 -3
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +1 -0
- package/lib/components/VTabs/_variables.scss +1 -0
- package/lib/components/index.d.mts +96 -80
- package/lib/composables/filter.mjs +4 -4
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/list-items.mjs +26 -15
- package/lib/composables/list-items.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +3 -1
- package/lib/labs/VBottomSheet/VBottomSheet.css +1 -0
- package/lib/labs/VBottomSheet/VBottomSheet.sass +2 -0
- package/lib/labs/VBottomSheet/_variables.scss +1 -0
- package/lib/labs/VDataIterator/index.d.mts +30 -26
- package/lib/labs/VDataTable/index.d.mts +43 -39
- package/lib/labs/VDataTable/types.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.mjs +4 -2
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.mjs +4 -4
- package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerYears.css +1 -1
- package/lib/labs/VDatePicker/VDatePickerYears.sass +1 -1
- package/lib/labs/VDatePicker/index.d.mts +24 -24
- package/lib/labs/VDateRangePicker/index.d.mts +8 -8
- package/lib/labs/components.d.mts +80 -76
- package/lib/labs/date/DateAdapter.mjs.map +1 -1
- package/lib/labs/date/adapters/vuetify.d.mts +4 -0
- package/lib/labs/date/adapters/vuetify.mjs +13 -0
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/labs/date/index.d.mts +4 -0
- 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 =
|
|
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
|
-
|
|
56
|
-
}
|
|
57
|
-
export function useTransformItems(items, transform) {
|
|
59
|
+
const hasNullItem = computed(() => items.value.some(item => item.value === null));
|
|
58
60
|
function transformIn(value) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
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","
|
|
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":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,SAAS,EAAEC,mBAAmB,EAAEC,IAAI,EAAEC,YAAY,6BAE3D;AAyBA;AACA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,KAAK,EAAE;IACLC,IAAI,EAAEC,KAAqC;IAC3CC,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDI,SAAS,EAAE;IACTN,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDK,YAAY,EAAE;IACZP,IAAI,EAAE,CAACQ,OAAO,EAAEJ,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IACnEH,OAAO,EAAE;EACX,CAAC;EACDO,SAAS,EAAE;IACTT,IAAI,EAAE,CAACQ,OAAO,EAAEJ,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IACnEH,OAAO,EAAE;EACX,CAAC;EACDQ,YAAY,EAAEF,OAAO;EACrBG,eAAe,EAAE;IACfX,IAAI,EAAEK,QAAsC;IAC5CH,OAAO,EAAER;EACX;AACF,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,SAASkB,aAAaA,CAAEC,KAA+B,EAAEC,IAAS,EAAY;EACnF,MAAMC,KAAK,GAAGpB,mBAAmB,CAACmB,IAAI,EAAED,KAAK,CAACV,SAAS,EAAEW,IAAI,CAAC;EAC9D,MAAME,KAAK,GAAGrB,mBAAmB,CAACmB,IAAI,EAAED,KAAK,CAACP,SAAS,EAAES,KAAK,CAAC;EAC/D,MAAME,QAAQ,GAAGtB,mBAAmB,CAACmB,IAAI,EAAED,KAAK,CAACN,YAAY,CAAC;EAC9D,MAAME,SAAS,GAAGI,KAAK,CAACJ,SAAS,KAAK,IAAI,GACtC,OAAOK,IAAI,KAAK,QAAQ,IAAIA,IAAI,IAAI,IAAI,IAAI,CAACb,KAAK,CAACiB,OAAO,CAACJ,IAAI,CAAC,GAC9D,UAAU,IAAIA,IAAI,GAChBlB,IAAI,CAACkB,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3BA,IAAI,GACNK,SAAS,GACXxB,mBAAmB,CAACmB,IAAI,EAAED,KAAK,CAACJ,SAAS,CAAC;EAE9C,MAAMW,MAAM,GAAG;IACbL,KAAK;IACLC,KAAK;IACL,GAAGP;EACL,CAAC;EAED,OAAO;IACLM,KAAK,EAAEX,MAAM,CAACgB,MAAM,CAACL,KAAK,IAAI,EAAE,CAAC;IACjCC,KAAK,EAAEI,MAAM,CAACJ,KAAK;IACnBH,KAAK,EAAEO,MAAM;IACbH,QAAQ,EAAEhB,KAAK,CAACiB,OAAO,CAACD,QAAQ,CAAC,GAAGI,cAAc,CAACR,KAAK,EAAEI,QAAQ,CAAC,GAAGE,SAAS;IAC/EG,GAAG,EAAER;EACP,CAAC;AACH;AAEA,OAAO,SAASO,cAAcA,CAAER,KAA+B,EAAEd,KAAyB,EAAE;EAC1F,MAAMwB,KAAiB,GAAG,EAAE;EAE5B,KAAK,MAAMT,IAAI,IAAIf,KAAK,EAAE;IACxBwB,KAAK,CAACC,IAAI,CAACZ,aAAa,CAACC,KAAK,EAAEC,IAAI,CAAC,CAAC;EACxC;EAEA,OAAOS,KAAK;AACd;AAEA,OAAO,SAASE,QAAQA,CAAEZ,KAAgB,EAAE;EAC1C,MAAMd,KAAK,GAAGN,QAAQ,CAAC,MAAM4B,cAAc,CAACR,KAAK,EAAEA,KAAK,CAACd,KAAK,CAAC,CAAC;EAChE,MAAM2B,WAAW,GAAGjC,QAAQ,CAAC,MAAMM,KAAK,CAACiB,KAAK,CAACW,IAAI,CAACb,IAAI,IAAIA,IAAI,CAACE,KAAK,KAAK,IAAI,CAAC,CAAC;EAEjF,SAASY,WAAWA,CAAEZ,KAAY,EAAc;IAC9C,IAAI,CAACU,WAAW,CAACV,KAAK,EAAE;MACtB;MACA;MACAA,KAAK,GAAGA,KAAK,CAACa,MAAM,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC;IACvC;IAEA,OAAOd,KAAK,CAACe,GAAG,CAACD,CAAC,IAAI;MACpB,IAAIjB,KAAK,CAACH,YAAY,IAAI,OAAOoB,CAAC,KAAK,QAAQ,EAAE;QAC/C;QACA;QACA,OAAOlB,aAAa,CAACC,KAAK,EAAEiB,CAAC,CAAC;MAChC;MACA,OAAO/B,KAAK,CAACiB,KAAK,CAACgB,IAAI,CAAClB,IAAI,IAAID,KAAK,CAACF,eAAe,CAACmB,CAAC,EAAEhB,IAAI,CAACE,KAAK,CAAC,CAAC,IAAIJ,aAAa,CAACC,KAAK,EAAEiB,CAAC,CAAC;IAClG,CAAC,CAAC;EACJ;EAEA,SAASG,YAAYA,CAAEjB,KAAiB,EAAS;IAC/C,OAAOH,KAAK,CAACH,YAAY,GACrBM,KAAK,CAACe,GAAG,CAACG,IAAA;MAAA,IAAC;QAAEZ;MAAI,CAAC,GAAAY,IAAA;MAAA,OAAKZ,GAAG;IAAA,EAAC,GAC3BN,KAAK,CAACe,GAAG,CAACI,KAAA;MAAA,IAAC;QAAEnB;MAAM,CAAC,GAAAmB,KAAA;MAAA,OAAKnB,KAAK;IAAA,EAAC;EACrC;EAEA,OAAO;IAAEjB,KAAK;IAAE6B,WAAW;IAAEK;EAAa,CAAC;AAC7C"}
|
package/lib/entry-bundler.mjs
CHANGED
package/lib/framework.mjs
CHANGED
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 {
|
|
@@ -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
|
-
|
|
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) {
|