@vuetify/nightly 3.8.7-master.2025-05-29 → 3.8.7-master.2025-05-31
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 +8 -3
- package/dist/json/attributes.json +1073 -1073
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +204 -204
- package/dist/json/web-types.json +1981 -1981
- package/dist/vuetify-labs.cjs +20 -18
- package/dist/vuetify-labs.css +6793 -6793
- package/dist/vuetify-labs.d.ts +76 -72
- package/dist/vuetify-labs.esm.js +20 -18
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +20 -18
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +18 -12
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3201 -3201
- package/dist/vuetify.d.ts +76 -72
- package/dist/vuetify.esm.js +18 -12
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +18 -12
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +7 -8
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -8
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/composables/date/date.d.ts +4 -0
- package/lib/composables/date/date.js +14 -1
- package/lib/composables/date/date.js.map +1 -1
- package/lib/entry-bundler.d.ts +3 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +76 -72
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.js +3 -7
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +3 -0
- package/package.json +1 -1
@@ -86,14 +86,7 @@ export const VDatePickerMonth = genericComponent()({
|
|
86
86
|
} else {
|
87
87
|
rangeStop.value = adapter.endOfDay(_value);
|
88
88
|
}
|
89
|
-
|
90
|
-
const datesInRange = [rangeStart.value];
|
91
|
-
for (let i = 1; i < diff; i++) {
|
92
|
-
const nextDate = adapter.addDays(rangeStart.value, i);
|
93
|
-
datesInRange.push(nextDate);
|
94
|
-
}
|
95
|
-
datesInRange.push(rangeStop.value);
|
96
|
-
model.value = datesInRange;
|
89
|
+
model.value = adapter.createDateRange(rangeStart.value, rangeStop.value);
|
97
90
|
} else {
|
98
91
|
rangeStart.value = value;
|
99
92
|
rangeStop.value = undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDatePickerMonth.js","names":["VBtn","makeCalendarProps","useCalendar","useDate","MaybeTransition","computed","ref","shallowRef","toRef","watch","genericComponent","omit","propsFactory","useRender","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","transition","type","default","reverseTransition","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","isReverse","value","length","atMax","max","includes","Infinity","val","oldVal","isBefore","onRangeClick","_value","startOfDay","undefined","isSameDay","endOfDay","diff","getDiff","datesInRange","i","nextDate","addDays","push","onMultipleClick","index","findIndex","selection","splice","onClick","_createElementVNode","_createTextVNode","map","week","_createVNode","toString","getWeekdays","firstDayOfWeek","weekDay","item","slotProps","class","isSelected","isToday","disabled","isDisabled","icon","ripple","text","localized","variant","_normalizeClass","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n\n ...omit(makeCalendarProps(), ['displayValue']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = toRef(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days')\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n\n useRender(() => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\"> </div>\n )}\n { weekNumbers.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <MaybeTransition name={ transition.value }>\n <div\n ref={ daysRef }\n key={ daysInMonth.value[0].date?.toString() }\n class=\"v-date-picker-month__days\"\n >\n { !props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n class: 'v-date-picker-month__day-btn',\n color: item.isSelected || item.isToday ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n slots.day?.(slotProps) ?? (<VBtn { ...slotProps.props } />)\n )}\n </div>\n )\n })}\n </div>\n </MaybeTransition>\n </div>\n ))\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VDatePickerMonth.js","names":["VBtn","makeCalendarProps","useCalendar","useDate","MaybeTransition","computed","ref","shallowRef","toRef","watch","genericComponent","omit","propsFactory","useRender","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","transition","type","default","reverseTransition","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","isReverse","value","length","atMax","max","includes","Infinity","val","oldVal","isBefore","onRangeClick","_value","startOfDay","undefined","isSameDay","endOfDay","createDateRange","onMultipleClick","index","findIndex","selection","splice","onClick","_createElementVNode","_createTextVNode","map","week","_createVNode","toString","getWeekdays","firstDayOfWeek","weekDay","item","i","slotProps","class","isSelected","isToday","disabled","isDisabled","icon","ripple","text","localized","variant","_normalizeClass","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n\n ...omit(makeCalendarProps(), ['displayValue']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = toRef(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n model.value = adapter.createDateRange(rangeStart.value, rangeStop.value)\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n\n useRender(() => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\"> </div>\n )}\n { weekNumbers.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <MaybeTransition name={ transition.value }>\n <div\n ref={ daysRef }\n key={ daysInMonth.value[0].date?.toString() }\n class=\"v-date-picker-month__days\"\n >\n { !props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n class: 'v-date-picker-month__day-btn',\n color: item.isSelected || item.isToday ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n slots.day?.(slotProps) ?? (<VBtn { ...slotProps.props } />)\n )}\n </div>\n )\n })}\n </div>\n </MaybeTransition>\n </div>\n ))\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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","ignoreList":[]}
|
@@ -3,6 +3,7 @@ import type { DateAdapter } from './DateAdapter.js';
|
|
3
3
|
import type { LocaleInstance } from "../locale.js";
|
4
4
|
export interface DateInstance extends DateModule.InternalAdapter {
|
5
5
|
locale?: any;
|
6
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
6
7
|
}
|
7
8
|
/** Supports module augmentation to specify date adapter types */
|
8
9
|
export declare namespace DateModule {
|
@@ -26,6 +27,7 @@ export declare function createDate(options: DateOptions | undefined, locale: Loc
|
|
26
27
|
options: InternalDateOptions;
|
27
28
|
instance: {
|
28
29
|
locale?: any;
|
30
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
29
31
|
date: (value?: any) => unknown;
|
30
32
|
format: (date: unknown, formatString: string) => string;
|
31
33
|
toJsDate: (value: unknown) => Date;
|
@@ -69,6 +71,8 @@ export declare function createDate(options: DateOptions | undefined, locale: Loc
|
|
69
71
|
setHours: (date: unknown, hours: number) => unknown;
|
70
72
|
getMinutes: (date: unknown) => number;
|
71
73
|
setMinutes: (date: unknown, minutes: number) => unknown;
|
74
|
+
} & {
|
75
|
+
createDateRange(start: unknown, stop?: unknown): unknown[];
|
72
76
|
};
|
73
77
|
};
|
74
78
|
export declare function useDate(): DateInstance;
|
@@ -70,7 +70,20 @@ function createInstance(options, locale) {
|
|
70
70
|
watch(locale.current, value => {
|
71
71
|
instance.locale = options.locale[value] ?? value ?? instance.locale;
|
72
72
|
});
|
73
|
-
return instance
|
73
|
+
return Object.assign(instance, {
|
74
|
+
createDateRange(start, stop) {
|
75
|
+
const diff = instance.getDiff(stop ?? start, start, 'days');
|
76
|
+
const datesInRange = [start];
|
77
|
+
for (let i = 1; i < diff; i++) {
|
78
|
+
const nextDate = instance.addDays(start, i);
|
79
|
+
datesInRange.push(nextDate);
|
80
|
+
}
|
81
|
+
if (stop) {
|
82
|
+
datesInRange.push(instance.endOfDay(stop));
|
83
|
+
}
|
84
|
+
return datesInRange;
|
85
|
+
}
|
86
|
+
});
|
74
87
|
}
|
75
88
|
export function useDate() {
|
76
89
|
const options = inject(DateOptionsSymbol);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"date.js","names":["useLocale","inject","reactive","watch","mergeDeep","VuetifyDateAdapter","DateModule","DateOptionsSymbol","Symbol","for","DateAdapterSymbol","createDate","options","locale","_options","adapter","af","bg","ca","ckb","cs","de","el","en","et","fa","fi","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","instance","createInstance","current","value","formats","useDate","Error"],"sources":["../../../src/composables/date/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record<string, any>\n locale: Record<string, any>\n}\n\nexport type DateOptions = Partial<InternalDateOptions>\n\nexport const DateOptionsSymbol: InjectionKey<InternalDateOptions> = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey<DateInstance> = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return instance\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n"],"mappings":"AAAA;AAAA,SACSA,SAAS,wBAElB;AACA,SAASC,MAAM,EAAEC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACpCC,SAAS,+BAElB;AAKA;AAAA,SACSC,kBAAkB;
|
1
|
+
{"version":3,"file":"date.js","names":["useLocale","inject","reactive","watch","mergeDeep","VuetifyDateAdapter","DateModule","DateOptionsSymbol","Symbol","for","DateAdapterSymbol","createDate","options","locale","_options","adapter","af","bg","ca","ckb","cs","de","el","en","et","fa","fi","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","instance","createInstance","current","value","formats","Object","assign","createDateRange","start","stop","diff","getDiff","datesInRange","i","nextDate","addDays","push","endOfDay","useDate","Error"],"sources":["../../../src/composables/date/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n createDateRange: (start: unknown, stop?: unknown) => unknown[]\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record<string, any>\n locale: Record<string, any>\n}\n\nexport type DateOptions = Partial<InternalDateOptions>\n\nexport const DateOptionsSymbol: InjectionKey<InternalDateOptions> = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey<DateInstance> = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return Object.assign(instance, {\n createDateRange (start: unknown, stop?: unknown) {\n const diff = instance.getDiff(stop ?? start, start, 'days')\n const datesInRange = [start]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = instance.addDays(start, i)\n datesInRange.push(nextDate)\n }\n\n if (stop) {\n datesInRange.push(instance.endOfDay(stop))\n }\n\n return datesInRange\n },\n })\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.d.ts
CHANGED
@@ -28,6 +28,7 @@ export declare const createVuetify: {
|
|
28
28
|
options: import("./composables/date/date.js").InternalDateOptions;
|
29
29
|
instance: {
|
30
30
|
locale?: any;
|
31
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
31
32
|
date: (value?: any) => unknown;
|
32
33
|
format: (date: unknown, formatString: string) => string;
|
33
34
|
toJsDate: (value: unknown) => Date;
|
@@ -71,6 +72,8 @@ export declare const createVuetify: {
|
|
71
72
|
setHours: (date: unknown, hours: number) => unknown;
|
72
73
|
getMinutes: (date: unknown) => number;
|
73
74
|
setMinutes: (date: unknown, minutes: number) => unknown;
|
75
|
+
} & {
|
76
|
+
createDateRange(start: unknown, stop?: unknown): unknown[];
|
74
77
|
};
|
75
78
|
};
|
76
79
|
goTo: import("./types.js").GoToInstance;
|
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.7-master.2025-05-
|
19
|
+
export const version = "3.8.7-master.2025-05-31";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -100,6 +100,7 @@ interface DateAdapter<T = unknown> {
|
|
100
100
|
|
101
101
|
interface DateInstance extends DateModule.InternalAdapter {
|
102
102
|
locale?: any;
|
103
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
103
104
|
}
|
104
105
|
/** Supports module augmentation to specify date adapter types */
|
105
106
|
declare namespace DateModule {
|
@@ -2449,6 +2450,7 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
|
|
2449
2450
|
options: InternalDateOptions;
|
2450
2451
|
instance: {
|
2451
2452
|
locale?: any;
|
2453
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
2452
2454
|
date: (value?: any) => unknown;
|
2453
2455
|
format: (date: unknown, formatString: string) => string;
|
2454
2456
|
toJsDate: (value: unknown) => Date;
|
@@ -2492,6 +2494,8 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
|
|
2492
2494
|
setHours: (date: unknown, hours: number) => unknown;
|
2493
2495
|
getMinutes: (date: unknown) => number;
|
2494
2496
|
setMinutes: (date: unknown, minutes: number) => unknown;
|
2497
|
+
} & {
|
2498
|
+
createDateRange(start: unknown, stop?: unknown): unknown[];
|
2495
2499
|
};
|
2496
2500
|
};
|
2497
2501
|
goTo: GoToInstance;
|
@@ -2539,37 +2543,44 @@ declare module 'vue' {
|
|
2539
2543
|
$children?: VNodeChild
|
2540
2544
|
}
|
2541
2545
|
export interface GlobalComponents {
|
2546
|
+
VApp: typeof import('vuetify/components')['VApp']
|
2542
2547
|
VAlert: typeof import('vuetify/components')['VAlert']
|
2543
2548
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2544
|
-
VApp: typeof import('vuetify/components')['VApp']
|
2545
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2546
2549
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2550
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2547
2551
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2548
2552
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2549
2553
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2550
2554
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2555
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2551
2556
|
VBtn: typeof import('vuetify/components')['VBtn']
|
2552
|
-
|
2557
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2558
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2559
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2553
2560
|
VCard: typeof import('vuetify/components')['VCard']
|
2554
2561
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2555
2562
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2556
2563
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2557
2564
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2558
2565
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2559
|
-
|
2560
|
-
|
2561
|
-
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2562
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2563
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2564
|
-
VChip: typeof import('vuetify/components')['VChip']
|
2566
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2567
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2565
2568
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2566
2569
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2570
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2571
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2572
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2573
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2574
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2567
2575
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2568
2576
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2569
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2570
2577
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2571
|
-
|
2572
|
-
|
2578
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2579
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2580
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2581
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2582
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2583
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2573
2584
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2574
2585
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2575
2586
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -2577,54 +2588,62 @@ declare module 'vue' {
|
|
2577
2588
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2578
2589
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2579
2590
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2580
|
-
|
2581
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2582
|
-
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2583
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2584
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2585
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2586
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2587
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2591
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
2588
2592
|
VDialog: typeof import('vuetify/components')['VDialog']
|
2589
2593
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2590
|
-
|
2591
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2594
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
2592
2595
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2593
2596
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2594
2597
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2595
2598
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2596
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2597
2599
|
VFab: typeof import('vuetify/components')['VFab']
|
2598
|
-
|
2599
|
-
|
2600
|
-
|
2600
|
+
VField: typeof import('vuetify/components')['VField']
|
2601
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2602
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2603
|
+
VIcon: typeof import('vuetify/components')['VIcon']
|
2604
|
+
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2605
|
+
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2606
|
+
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2607
|
+
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2601
2608
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2602
2609
|
VItem: typeof import('vuetify/components')['VItem']
|
2603
2610
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2611
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
2612
|
+
VInput: typeof import('vuetify/components')['VInput']
|
2613
|
+
VImg: typeof import('vuetify/components')['VImg']
|
2604
2614
|
VKbd: typeof import('vuetify/components')['VKbd']
|
2605
2615
|
VLabel: typeof import('vuetify/components')['VLabel']
|
2606
|
-
|
2607
|
-
|
2616
|
+
VList: typeof import('vuetify/components')['VList']
|
2617
|
+
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2618
|
+
VListImg: typeof import('vuetify/components')['VListImg']
|
2619
|
+
VListItem: typeof import('vuetify/components')['VListItem']
|
2620
|
+
VListItemAction: typeof import('vuetify/components')['VListItemAction']
|
2621
|
+
VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
|
2622
|
+
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2623
|
+
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2624
|
+
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2608
2625
|
VMenu: typeof import('vuetify/components')['VMenu']
|
2626
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
2609
2627
|
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2628
|
+
VMain: typeof import('vuetify/components')['VMain']
|
2610
2629
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2611
|
-
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2612
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
2613
|
-
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2614
2630
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2615
|
-
|
2631
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2616
2632
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2617
|
-
VRating: typeof import('vuetify/components')['VRating']
|
2618
2633
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2619
|
-
|
2634
|
+
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2620
2635
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2621
|
-
|
2622
|
-
|
2623
|
-
|
2636
|
+
VRating: typeof import('vuetify/components')['VRating']
|
2637
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2638
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
2624
2639
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2640
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2625
2641
|
VSheet: typeof import('vuetify/components')['VSheet']
|
2626
|
-
|
2642
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2643
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2627
2644
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2645
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
2646
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2628
2647
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2629
2648
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2630
2649
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
@@ -2636,58 +2655,44 @@ declare module 'vue' {
|
|
2636
2655
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2637
2656
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2638
2657
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2639
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2640
|
-
VTable: typeof import('vuetify/components')['VTable']
|
2641
2658
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2659
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
2660
|
+
VTable: typeof import('vuetify/components')['VTable']
|
2642
2661
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2643
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2644
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2645
2662
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2646
2663
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2647
2664
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2648
|
-
|
2665
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2666
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2649
2667
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2650
2668
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2651
|
-
|
2652
|
-
|
2653
|
-
|
2654
|
-
|
2655
|
-
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2656
|
-
VList: typeof import('vuetify/components')['VList']
|
2657
|
-
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2658
|
-
VListImg: typeof import('vuetify/components')['VListImg']
|
2659
|
-
VListItem: typeof import('vuetify/components')['VListItem']
|
2660
|
-
VListItemAction: typeof import('vuetify/components')['VListItemAction']
|
2661
|
-
VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
|
2662
|
-
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2663
|
-
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2664
|
-
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2669
|
+
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2670
|
+
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2671
|
+
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2672
|
+
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2665
2673
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2674
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2666
2675
|
VForm: typeof import('vuetify/components')['VForm']
|
2667
2676
|
VContainer: typeof import('vuetify/components')['VContainer']
|
2668
2677
|
VCol: typeof import('vuetify/components')['VCol']
|
2669
2678
|
VRow: typeof import('vuetify/components')['VRow']
|
2670
2679
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2671
2680
|
VHover: typeof import('vuetify/components')['VHover']
|
2672
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
2673
|
-
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2674
|
-
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2675
|
-
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2676
|
-
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2677
2681
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2678
2682
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2683
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
2679
2684
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2680
|
-
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2681
2685
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2682
2686
|
VRadio: typeof import('vuetify/components')['VRadio']
|
2687
|
+
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2683
2688
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2684
2689
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2685
|
-
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2686
2690
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2691
|
+
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2687
2692
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2688
2693
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2689
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2690
2694
|
VValidation: typeof import('vuetify/components')['VValidation']
|
2695
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2691
2696
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2692
2697
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2693
2698
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2704,28 +2709,27 @@ declare module 'vue' {
|
|
2704
2709
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2705
2710
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2706
2711
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2707
|
-
|
2712
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2713
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2714
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2708
2715
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2709
2716
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2710
2717
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2711
2718
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2712
2719
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2713
2720
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2714
|
-
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2715
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2716
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2717
2721
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2718
2722
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2719
2723
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2720
|
-
|
2721
|
-
|
2722
|
-
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2724
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2725
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2723
2726
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2724
2727
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2725
2728
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2726
2729
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2727
2730
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2728
2731
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2732
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2729
2733
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2730
2734
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2731
2735
|
}
|
package/lib/framework.js
CHANGED
@@ -12,7 +12,7 @@ import { forwardRefs } from "../../composables/forwardRefs.js";
|
|
12
12
|
import { useLocale } from "../../composables/locale.js";
|
13
13
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
14
14
|
import { computed, ref, shallowRef, watch } from 'vue';
|
15
|
-
import {
|
15
|
+
import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
|
16
16
|
// Types
|
17
17
|
export const makeVDateInputProps = propsFactory({
|
18
18
|
displayFormat: [Function, String],
|
@@ -175,18 +175,14 @@ export const VDateInput = genericComponent()({
|
|
175
175
|
const parts = value.trim().split(/\D+-\D+|[^\d\-/.]+/);
|
176
176
|
if (parts.every(isValid)) {
|
177
177
|
if (props.multiple === 'range') {
|
178
|
-
|
178
|
+
const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
179
|
+
model.value = adapter.createDateRange(start, stop);
|
179
180
|
} else {
|
180
181
|
model.value = parts.map(parseDate);
|
181
182
|
}
|
182
183
|
}
|
183
184
|
}
|
184
185
|
}
|
185
|
-
function getRange(inputDates) {
|
186
|
-
const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
187
|
-
const diff = adapter.getDiff(stop ?? start, start, 'days');
|
188
|
-
return [start, ...createRange(diff, 1).map(i => adapter.addDays(start, i))];
|
189
|
-
}
|
190
186
|
useRender(() => {
|
191
187
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
192
188
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|