@vuetify/nightly 3.8.3-master.2025-04-30 → 3.8.3-master.2025-05-02
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/CHANGELOG.md +20 -3
- package/dist/json/attributes.json +3428 -3424
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +128 -128
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +6104 -6094
- package/dist/vuetify-labs.cjs +34 -13
- package/dist/vuetify-labs.css +5982 -5986
- package/dist/vuetify-labs.d.ts +69 -49
- package/dist/vuetify-labs.esm.js +34 -13
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +34 -13
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +4 -4
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +6127 -6131
- package/dist/vuetify.d.ts +47 -47
- package/dist/vuetify.esm.js +4 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +4 -4
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +4 -4
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/composables/select.js +1 -1
- package/lib/components/VDataTable/composables/select.js.map +1 -1
- package/lib/components/VTable/VTable.css +2 -6
- package/lib/components/VTable/VTable.sass +4 -22
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +47 -47
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +41 -4
- package/lib/labs/VDateInput/VDateInput.js +30 -9
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/package.json +1 -1
@@ -145,7 +145,7 @@ export function provideSelection(props, _ref9) {
|
|
145
145
|
index = index ?? currentPage.value.findIndex(i => i.value === item.value);
|
146
146
|
if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {
|
147
147
|
const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b);
|
148
|
-
items.push(...currentPage.value.slice(start, end + 1));
|
148
|
+
items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable));
|
149
149
|
} else {
|
150
150
|
items.push(item);
|
151
151
|
lastSelectedIndex.value = index;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"select.js","names":["useProxiedModel","computed","inject","provide","shallowRef","toRef","deepEqual","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","value","Set","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","valueComparator","Function","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","map","find","values","allSelectable","filter","selectable","currentPageSelectable","lastSelectedIndex","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","index","event","findIndex","i","shiftKey","start","end","sort","a","b","push","slice","someSelected","size","length","data","useSelection","Error"],"sources":["../../../../src/components/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, shallowRef, toRef } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { EventProp } from '@/util'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': EventProp<[any[]]> | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n const lastSelectedIndex = shallowRef<number | null>(null)\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem, index?: number, event?: MouseEvent) {\n const items = []\n index = index ?? currentPage.value.findIndex(i => i.value === item.value)\n\n if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {\n const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b)\n\n items.push(...currentPage.value.slice(start, end + 1))\n } else {\n items.push(item)\n lastSelectedIndex.value = index\n }\n\n select(items, !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n const showSelectAll = toRef(() => selectStrategy.value.showSelectAll)\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll,\n lastSelectedIndex,\n selectStrategy,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"select.js","names":["useProxiedModel","computed","inject","provide","shallowRef","toRef","deepEqual","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","value","Set","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","valueComparator","Function","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","map","find","values","allSelectable","filter","selectable","currentPageSelectable","lastSelectedIndex","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","index","event","findIndex","i","shiftKey","start","end","sort","a","b","push","slice","someSelected","size","length","data","useSelection","Error"],"sources":["../../../../src/components/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, shallowRef, toRef } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { EventProp } from '@/util'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': EventProp<[any[]]> | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n const lastSelectedIndex = shallowRef<number | null>(null)\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem, index?: number, event?: MouseEvent) {\n const items = []\n index = index ?? currentPage.value.findIndex(i => i.value === item.value)\n\n if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {\n const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b)\n\n items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable))\n } else {\n items.push(item)\n lastSelectedIndex.value = index\n }\n\n select(items, !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n const showSelectAll = toRef(() => selectStrategy.value.showSelectAll)\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll,\n lastSelectedIndex,\n selectStrategy,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -104,17 +104,13 @@
|
|
104
104
|
flex: 1 1 auto;
|
105
105
|
}
|
106
106
|
|
107
|
-
.v-table--has-top > .v-table__wrapper
|
107
|
+
.v-table--has-top > .v-table__wrapper {
|
108
108
|
border-top-left-radius: 0;
|
109
|
-
}
|
110
|
-
.v-table--has-top > .v-table__wrapper > table > tbody > tr:first-child:hover > td:last-child {
|
111
109
|
border-top-right-radius: 0;
|
112
110
|
}
|
113
111
|
|
114
|
-
.v-table--has-bottom > .v-table__wrapper
|
112
|
+
.v-table--has-bottom > .v-table__wrapper {
|
115
113
|
border-bottom-left-radius: 0;
|
116
|
-
}
|
117
|
-
.v-table--has-bottom > .v-table__wrapper > table > tbody > tr:last-child:hover > td:last-child {
|
118
114
|
border-bottom-right-radius: 0;
|
119
115
|
}
|
120
116
|
|
@@ -115,31 +115,13 @@
|
|
115
115
|
// Modifiers
|
116
116
|
.v-table--has-top
|
117
117
|
> .v-table__wrapper
|
118
|
-
|
119
|
-
|
120
|
-
> tr
|
121
|
-
&:first-child
|
122
|
-
&:hover
|
123
|
-
> td
|
124
|
-
&:first-child
|
125
|
-
border-top-left-radius: 0
|
126
|
-
|
127
|
-
&:last-child
|
128
|
-
border-top-right-radius: 0
|
118
|
+
border-top-left-radius: 0
|
119
|
+
border-top-right-radius: 0
|
129
120
|
|
130
121
|
.v-table--has-bottom
|
131
122
|
> .v-table__wrapper
|
132
|
-
|
133
|
-
|
134
|
-
> tr
|
135
|
-
&:last-child
|
136
|
-
&:hover
|
137
|
-
> td
|
138
|
-
&:first-child
|
139
|
-
border-bottom-left-radius: 0
|
140
|
-
|
141
|
-
&:last-child
|
142
|
-
border-bottom-right-radius: 0
|
123
|
+
border-bottom-left-radius: 0
|
124
|
+
border-bottom-right-radius: 0
|
143
125
|
|
144
126
|
.v-table--fixed-height
|
145
127
|
> .v-table__wrapper
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.8.3-master.2025-
|
19
|
+
export const version = "3.8.3-master.2025-05-02";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -2537,23 +2537,19 @@ declare module 'vue' {
|
|
2537
2537
|
$children?: VNodeChild
|
2538
2538
|
}
|
2539
2539
|
export interface GlobalComponents {
|
2540
|
-
VApp: typeof import('vuetify/components')['VApp']
|
2541
2540
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2542
2541
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2543
2542
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2544
2543
|
VAlert: typeof import('vuetify/components')['VAlert']
|
2545
2544
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2546
2545
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2546
|
+
VApp: typeof import('vuetify/components')['VApp']
|
2547
2547
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2548
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2549
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2550
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
2551
2548
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2552
2549
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2553
2550
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2554
|
-
|
2555
|
-
|
2556
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2551
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2552
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2557
2553
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2558
2554
|
VBtn: typeof import('vuetify/components')['VBtn']
|
2559
2555
|
VCard: typeof import('vuetify/components')['VCard']
|
@@ -2562,17 +2558,17 @@ declare module 'vue' {
|
|
2562
2558
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2563
2559
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2564
2560
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2561
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2565
2562
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2566
2563
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2567
|
-
|
2564
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2565
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2566
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2568
2567
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2569
2568
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2570
|
-
|
2571
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
2572
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2569
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2573
2570
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2574
|
-
|
2575
|
-
VChip: typeof import('vuetify/components')['VChip']
|
2571
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
2576
2572
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2577
2573
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2578
2574
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -2586,29 +2582,26 @@ declare module 'vue' {
|
|
2586
2582
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2587
2583
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2588
2584
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2589
|
-
|
2590
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
2585
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2591
2586
|
VFab: typeof import('vuetify/components')['VFab']
|
2587
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
2592
2588
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2593
2589
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2594
2590
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2595
2591
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2592
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
2596
2593
|
VField: typeof import('vuetify/components')['VField']
|
2597
2594
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2598
2595
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2599
2596
|
VFooter: typeof import('vuetify/components')['VFooter']
|
2597
|
+
VInput: typeof import('vuetify/components')['VInput']
|
2600
2598
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2601
2599
|
VIcon: typeof import('vuetify/components')['VIcon']
|
2602
2600
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2603
2601
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2604
2602
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2605
2603
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2606
|
-
VImg: typeof import('vuetify/components')['VImg']
|
2607
2604
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2608
|
-
VInput: typeof import('vuetify/components')['VInput']
|
2609
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
2610
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2611
|
-
VItem: typeof import('vuetify/components')['VItem']
|
2612
2605
|
VList: typeof import('vuetify/components')['VList']
|
2613
2606
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2614
2607
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -2618,53 +2611,58 @@ declare module 'vue' {
|
|
2618
2611
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2619
2612
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2620
2613
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2614
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
2621
2615
|
VKbd: typeof import('vuetify/components')['VKbd']
|
2622
|
-
|
2616
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2617
|
+
VItem: typeof import('vuetify/components')['VItem']
|
2618
|
+
VImg: typeof import('vuetify/components')['VImg']
|
2623
2619
|
VMenu: typeof import('vuetify/components')['VMenu']
|
2620
|
+
VMain: typeof import('vuetify/components')['VMain']
|
2624
2621
|
VMessages: typeof import('vuetify/components')['VMessages']
|
2622
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2625
2623
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2626
2624
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2627
2625
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2628
|
-
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2629
|
-
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2630
2626
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2627
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2628
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2631
2629
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2632
2630
|
VRating: typeof import('vuetify/components')['VRating']
|
2633
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2634
|
-
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2635
|
-
VSelect: typeof import('vuetify/components')['VSelect']
|
2636
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2637
2631
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2638
2632
|
VSheet: typeof import('vuetify/components')['VSheet']
|
2639
|
-
|
2633
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
2634
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2640
2635
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2641
2636
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2637
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2642
2638
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2639
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2640
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2641
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2642
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2643
2643
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2644
2644
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2645
2645
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2646
2646
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2647
2647
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2648
2648
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2649
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2650
2649
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2651
|
-
|
2650
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2651
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2652
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
2652
2653
|
VTab: typeof import('vuetify/components')['VTab']
|
2653
2654
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2654
2655
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2655
2656
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2656
|
-
|
2657
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
2658
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2659
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2660
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2657
|
+
VTable: typeof import('vuetify/components')['VTable']
|
2661
2658
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2662
2659
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2663
2660
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2664
|
-
|
2665
|
-
|
2666
|
-
|
2661
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2662
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2663
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2667
2664
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2665
|
+
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2668
2666
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2669
2667
|
VForm: typeof import('vuetify/components')['VForm']
|
2670
2668
|
VContainer: typeof import('vuetify/components')['VContainer']
|
@@ -2672,16 +2670,17 @@ declare module 'vue' {
|
|
2672
2670
|
VRow: typeof import('vuetify/components')['VRow']
|
2673
2671
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2674
2672
|
VHover: typeof import('vuetify/components')['VHover']
|
2675
|
-
VLayout: typeof import('vuetify/components')['VLayout']
|
2676
|
-
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2677
2673
|
VLazy: typeof import('vuetify/components')['VLazy']
|
2674
|
+
VWindow: typeof import('vuetify/components')['VWindow']
|
2675
|
+
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2678
2676
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2677
|
+
VLayout: typeof import('vuetify/components')['VLayout']
|
2678
|
+
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2679
2679
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2680
2680
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2681
2681
|
VRadio: typeof import('vuetify/components')['VRadio']
|
2682
2682
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2683
2683
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2684
|
-
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2685
2684
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2686
2685
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2687
2686
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
@@ -2703,26 +2702,27 @@ declare module 'vue' {
|
|
2703
2702
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2704
2703
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2705
2704
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2706
|
-
|
2705
|
+
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2707
2706
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2708
2707
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2709
2708
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2710
2709
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2711
2710
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2712
2711
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2713
|
-
|
2714
|
-
|
2715
|
-
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2712
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2713
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2716
2714
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2717
2715
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2716
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2718
2717
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2719
2718
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2720
2719
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2721
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2722
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2723
2720
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2724
2721
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2725
2722
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2723
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2724
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2725
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2726
2726
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2727
2727
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2728
2728
|
}
|
package/lib/framework.js
CHANGED
@@ -116,6 +116,7 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
116
116
|
mobileBreakpoint?: unknown;
|
117
117
|
displayFormat?: unknown;
|
118
118
|
location?: unknown;
|
119
|
+
updateOn?: unknown;
|
119
120
|
} = {}>(defaults?: Defaults | undefined) => {
|
120
121
|
max: unknown extends Defaults["max"] ? PropType<unknown> : {
|
121
122
|
type: PropType<unknown extends Defaults["max"] ? unknown : unknown>;
|
@@ -743,12 +744,18 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
743
744
|
type: PropType<unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"]>;
|
744
745
|
default: unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"];
|
745
746
|
};
|
746
|
-
mobile: unknown extends Defaults["mobile"] ? {
|
747
|
+
mobile: unknown extends Defaults["mobile"] ? Omit<{
|
747
748
|
type: PropType<boolean | null>;
|
748
749
|
default: boolean;
|
749
|
-
}
|
750
|
+
}, "type" | "default"> & {
|
751
|
+
type: PropType<boolean | null>;
|
752
|
+
default: NonNullable<boolean | null> | null;
|
753
|
+
} : Omit<Omit<{
|
750
754
|
type: PropType<boolean | null>;
|
751
755
|
default: boolean;
|
756
|
+
}, "type" | "default"> & {
|
757
|
+
type: PropType<boolean | null>;
|
758
|
+
default: NonNullable<boolean | null> | null;
|
752
759
|
}, "type" | "default"> & {
|
753
760
|
type: PropType<unknown extends Defaults["mobile"] ? boolean | null : boolean | Defaults["mobile"] | null>;
|
754
761
|
default: unknown extends Defaults["mobile"] ? boolean | null : NonNullable<boolean | null> | Defaults["mobile"];
|
@@ -771,6 +778,16 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
771
778
|
type: PropType<unknown extends Defaults["location"] ? import("../../util/index.js").Anchor : import("../../util/index.js").Anchor | Defaults["location"]>;
|
772
779
|
default: unknown extends Defaults["location"] ? import("../../util/index.js").Anchor : NonNullable<import("../../util/index.js").Anchor> | Defaults["location"];
|
773
780
|
};
|
781
|
+
updateOn: unknown extends Defaults["updateOn"] ? {
|
782
|
+
type: PropType<("blur" | "enter")[]>;
|
783
|
+
default: () => string[];
|
784
|
+
} : Omit<{
|
785
|
+
type: PropType<("blur" | "enter")[]>;
|
786
|
+
default: () => string[];
|
787
|
+
}, "type" | "default"> & {
|
788
|
+
type: PropType<unknown extends Defaults["updateOn"] ? ("blur" | "enter")[] : ("blur" | "enter")[] | Defaults["updateOn"]>;
|
789
|
+
default: unknown extends Defaults["updateOn"] ? ("blur" | "enter")[] : ("blur" | "enter")[] | Defaults["updateOn"];
|
790
|
+
};
|
774
791
|
};
|
775
792
|
export declare const VDateInput: {
|
776
793
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
@@ -826,6 +843,7 @@ export declare const VDateInput: {
|
|
826
843
|
weeksInMonth: "static" | "dynamic";
|
827
844
|
hideWeekdays: boolean;
|
828
845
|
showWeek: boolean;
|
846
|
+
updateOn: ("blur" | "enter")[];
|
829
847
|
} & {
|
830
848
|
name?: string | undefined;
|
831
849
|
max?: unknown;
|
@@ -2939,6 +2957,7 @@ export declare const VDateInput: {
|
|
2939
2957
|
firstDayOfWeek: string | number;
|
2940
2958
|
hideWeekdays: boolean;
|
2941
2959
|
showWeek: boolean;
|
2960
|
+
updateOn: ("blur" | "enter")[];
|
2942
2961
|
}, true, {}, import("vue").SlotsType<Partial<{
|
2943
2962
|
message: (arg: import("../../components/VMessages/VMessages.js").VMessageSlot) => import("vue").VNode[];
|
2944
2963
|
clear: (arg: import("../../components/VField/VField.js").DefaultInputSlot & {
|
@@ -3017,6 +3036,7 @@ export declare const VDateInput: {
|
|
3017
3036
|
weeksInMonth: "static" | "dynamic";
|
3018
3037
|
hideWeekdays: boolean;
|
3019
3038
|
showWeek: boolean;
|
3039
|
+
updateOn: ("blur" | "enter")[];
|
3020
3040
|
} & {
|
3021
3041
|
name?: string | undefined;
|
3022
3042
|
max?: unknown;
|
@@ -5126,6 +5146,7 @@ export declare const VDateInput: {
|
|
5126
5146
|
firstDayOfWeek: string | number;
|
5127
5147
|
hideWeekdays: boolean;
|
5128
5148
|
showWeek: boolean;
|
5149
|
+
updateOn: ("blur" | "enter")[];
|
5129
5150
|
}>;
|
5130
5151
|
__isFragment?: never;
|
5131
5152
|
__isTeleport?: never;
|
@@ -5183,6 +5204,7 @@ export declare const VDateInput: {
|
|
5183
5204
|
weeksInMonth: "static" | "dynamic";
|
5184
5205
|
hideWeekdays: boolean;
|
5185
5206
|
showWeek: boolean;
|
5207
|
+
updateOn: ("blur" | "enter")[];
|
5186
5208
|
} & {
|
5187
5209
|
name?: string | undefined;
|
5188
5210
|
max?: unknown;
|
@@ -7296,6 +7318,7 @@ export declare const VDateInput: {
|
|
7296
7318
|
firstDayOfWeek: string | number;
|
7297
7319
|
hideWeekdays: boolean;
|
7298
7320
|
showWeek: boolean;
|
7321
|
+
updateOn: ("blur" | "enter")[];
|
7299
7322
|
}, {}, string, import("vue").SlotsType<Partial<{
|
7300
7323
|
message: (arg: import("../../components/VMessages/VMessages.js").VMessageSlot) => import("vue").VNode[];
|
7301
7324
|
clear: (arg: import("../../components/VField/VField.js").DefaultInputSlot & {
|
@@ -7527,9 +7550,12 @@ export declare const VDateInput: {
|
|
7527
7550
|
type: PropType<boolean>;
|
7528
7551
|
default: boolean;
|
7529
7552
|
};
|
7530
|
-
mobile: {
|
7553
|
+
mobile: Omit<{
|
7531
7554
|
type: PropType<boolean | null>;
|
7532
7555
|
default: boolean;
|
7556
|
+
}, "type" | "default"> & {
|
7557
|
+
type: PropType<boolean | null>;
|
7558
|
+
default: NonNullable<boolean | null> | null;
|
7533
7559
|
};
|
7534
7560
|
mobileBreakpoint: PropType<number | import("../../composables/display.js").DisplayBreakpoint>;
|
7535
7561
|
displayFormat: (FunctionConstructor | StringConstructor)[];
|
@@ -7537,6 +7563,10 @@ export declare const VDateInput: {
|
|
7537
7563
|
type: PropType<StrategyProps["location"]>;
|
7538
7564
|
default: string;
|
7539
7565
|
};
|
7566
|
+
updateOn: {
|
7567
|
+
type: PropType<("blur" | "enter")[]>;
|
7568
|
+
default: () => string[];
|
7569
|
+
};
|
7540
7570
|
}, import("vue").ExtractPropTypes<{
|
7541
7571
|
max: PropType<unknown>;
|
7542
7572
|
height: (StringConstructor | NumberConstructor)[];
|
@@ -7750,9 +7780,12 @@ export declare const VDateInput: {
|
|
7750
7780
|
type: PropType<boolean>;
|
7751
7781
|
default: boolean;
|
7752
7782
|
};
|
7753
|
-
mobile: {
|
7783
|
+
mobile: Omit<{
|
7754
7784
|
type: PropType<boolean | null>;
|
7755
7785
|
default: boolean;
|
7786
|
+
}, "type" | "default"> & {
|
7787
|
+
type: PropType<boolean | null>;
|
7788
|
+
default: NonNullable<boolean | null> | null;
|
7756
7789
|
};
|
7757
7790
|
mobileBreakpoint: PropType<number | import("../../composables/display.js").DisplayBreakpoint>;
|
7758
7791
|
displayFormat: (FunctionConstructor | StringConstructor)[];
|
@@ -7760,5 +7793,9 @@ export declare const VDateInput: {
|
|
7760
7793
|
type: PropType<StrategyProps["location"]>;
|
7761
7794
|
default: string;
|
7762
7795
|
};
|
7796
|
+
updateOn: {
|
7797
|
+
type: PropType<("blur" | "enter")[]>;
|
7798
|
+
default: () => string[];
|
7799
|
+
};
|
7763
7800
|
}>>;
|
7764
7801
|
export type VDateInput = InstanceType<typeof VDateInput>;
|
@@ -19,7 +19,13 @@ export const makeVDateInputProps = propsFactory({
|
|
19
19
|
type: String,
|
20
20
|
default: 'bottom start'
|
21
21
|
},
|
22
|
-
|
22
|
+
updateOn: {
|
23
|
+
type: Array,
|
24
|
+
default: () => ['blur', 'enter']
|
25
|
+
},
|
26
|
+
...makeDisplayProps({
|
27
|
+
mobile: null
|
28
|
+
}),
|
23
29
|
...makeFocusProps(),
|
24
30
|
...makeVConfirmEditProps({
|
25
31
|
hideActions: true
|
@@ -58,7 +64,8 @@ export const VDateInput = genericComponent()({
|
|
58
64
|
focus,
|
59
65
|
blur
|
60
66
|
} = useFocus(props);
|
61
|
-
const
|
67
|
+
const emptyModelValue = () => props.multiple ? [] : null;
|
68
|
+
const model = useProxiedModel(props, 'modelValue', emptyModelValue(), val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val, val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val);
|
62
69
|
const menu = shallowRef(false);
|
63
70
|
const isEditingInput = shallowRef(false);
|
64
71
|
const vTextFieldRef = ref();
|
@@ -89,7 +96,10 @@ export const VDateInput = genericComponent()({
|
|
89
96
|
return 'none';
|
90
97
|
});
|
91
98
|
const isInteractive = computed(() => !props.disabled && !props.readonly);
|
92
|
-
const isReadonly = computed(() =>
|
99
|
+
const isReadonly = computed(() => {
|
100
|
+
if (!props.updateOn.length) return true;
|
101
|
+
return !(mobile.value && isEditingInput.value) && props.readonly;
|
102
|
+
});
|
93
103
|
watch(menu, val => {
|
94
104
|
if (val) return;
|
95
105
|
isEditingInput.value = false;
|
@@ -101,8 +111,9 @@ export const VDateInput = genericComponent()({
|
|
101
111
|
menu.value = true;
|
102
112
|
return;
|
103
113
|
}
|
104
|
-
|
105
|
-
|
114
|
+
if (props.updateOn.includes('enter')) {
|
115
|
+
onUserInput(e.target);
|
116
|
+
}
|
106
117
|
}
|
107
118
|
function onClick(e) {
|
108
119
|
e.preventDefault();
|
@@ -124,9 +135,12 @@ export const VDateInput = genericComponent()({
|
|
124
135
|
}
|
125
136
|
function onUpdateDisplayModel(value) {
|
126
137
|
if (value != null) return;
|
127
|
-
model.value =
|
138
|
+
model.value = emptyModelValue();
|
128
139
|
}
|
129
|
-
function onBlur() {
|
140
|
+
function onBlur(e) {
|
141
|
+
if (props.updateOn.includes('blur')) {
|
142
|
+
onUserInput(e.target);
|
143
|
+
}
|
130
144
|
blur();
|
131
145
|
|
132
146
|
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
@@ -135,6 +149,13 @@ export const VDateInput = genericComponent()({
|
|
135
149
|
isEditingInput.value = false;
|
136
150
|
}
|
137
151
|
}
|
152
|
+
function onUserInput(_ref2) {
|
153
|
+
let {
|
154
|
+
value
|
155
|
+
} = _ref2;
|
156
|
+
if (value && !adapter.isValid(value)) return;
|
157
|
+
model.value = !value ? emptyModelValue() : value;
|
158
|
+
}
|
138
159
|
useRender(() => {
|
139
160
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
140
161
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
@@ -173,14 +194,14 @@ export const VDateInput = genericComponent()({
|
|
173
194
|
"onSave": onSave,
|
174
195
|
"onCancel": onCancel
|
175
196
|
}), {
|
176
|
-
default:
|
197
|
+
default: _ref3 => {
|
177
198
|
let {
|
178
199
|
actions,
|
179
200
|
model: proxyModel,
|
180
201
|
save,
|
181
202
|
cancel,
|
182
203
|
isPristine
|
183
|
-
} =
|
204
|
+
} = _ref3;
|
184
205
|
function onUpdateModel(value) {
|
185
206
|
if (!props.hideActions) {
|
186
207
|
proxyModel.value = value;
|