vuetify 3.3.11 → 3.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +49 -5
- package/dist/json/importMap.json +12 -12
- package/dist/json/tags.json +11 -0
- package/dist/json/web-types.json +168 -11
- package/dist/vuetify-labs.css +423 -358
- package/dist/vuetify-labs.d.ts +233 -91
- package/dist/vuetify-labs.esm.js +189 -104
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +189 -104
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +130 -65
- package/dist/vuetify.d.ts +172 -38
- package/dist/vuetify.esm.js +100 -59
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +100 -59
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +152 -152
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/md3.mjs +2 -1
- package/lib/blueprints/md3.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +6 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +42 -0
- package/lib/components/VBanner/VBanner.css +2 -0
- package/lib/components/VBanner/VBanner.sass +2 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
- package/lib/components/VBtn/VBtn.css +6 -0
- package/lib/components/VBtn/VBtn.sass +5 -0
- package/lib/components/VCheckbox/index.d.mts +3 -1
- package/lib/components/VChip/VChip.mjs +1 -0
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +6 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +42 -0
- package/lib/components/VDialog/VDialog.css +15 -6
- package/lib/components/VDialog/VDialog.sass +41 -35
- package/lib/components/VField/VField.css +7 -2
- package/lib/components/VField/VField.mjs +5 -3
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +7 -2
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.sass +5 -1
- package/lib/components/VFileInput/_variables.scss +2 -1
- package/lib/components/VGrid/VGrid.css +4 -0
- package/lib/components/VGrid/VGrid.sass +4 -1
- package/lib/components/VGrid/VSpacer.mjs +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VList/VList.css +1 -1
- package/lib/components/VList/VList.sass +1 -1
- package/lib/components/VList/VListItem.css +20 -9
- package/lib/components/VList/VListItem.mjs +6 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +19 -8
- package/lib/components/VMenu/VMenu.mjs +4 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +5 -5
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/_variables.scss +0 -1
- package/lib/components/VRadio/index.d.mts +3 -1
- package/lib/components/VRadioGroup/VRadioGroup.css +6 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +5 -0
- package/lib/components/VRadioGroup/_variables.scss +3 -1
- package/lib/components/VRadioGroup/index.d.mts +3 -1
- package/lib/components/VSelect/VSelect.mjs +14 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +42 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +22 -19
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +27 -25
- package/lib/components/VSwitch/VSwitch.css +24 -17
- package/lib/components/VSwitch/VSwitch.mjs +28 -19
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +20 -11
- package/lib/components/VSwitch/_variables.scss +18 -6
- package/lib/components/VSwitch/index.d.mts +3 -1
- package/lib/components/VTextField/VTextField.css +9 -2
- package/lib/components/VTextField/VTextField.mjs +6 -3
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +10 -3
- package/lib/components/VTextField/index.d.mts +6 -0
- package/lib/components/VTextarea/VTextarea.mjs +1 -2
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +6 -1
- package/lib/components/VTimeline/VTimeline.sass +6 -1
- package/lib/components/VTooltip/VTooltip.css +1 -1
- package/lib/components/VTooltip/_variables.scss +1 -1
- package/lib/components/index.d.mts +169 -35
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/labs/VDateInput/composables.mjs +11 -1
- package/lib/labs/VDateInput/composables.mjs.map +1 -1
- package/lib/labs/VDateInput/index.d.mts +6 -0
- package/lib/labs/VDatePicker/VDatePicker.mjs +34 -14
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs +1 -1
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/labs/VDatePicker/composables.mjs +4 -2
- package/lib/labs/VDatePicker/composables.mjs.map +1 -1
- package/lib/labs/VDatePicker/index.d.mts +14 -0
- package/lib/labs/VOtpInput/VOtpInput.mjs +31 -22
- package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/labs/VStepper/VStepper.mjs +12 -9
- package/lib/labs/VStepper/VStepper.mjs.map +1 -1
- package/lib/labs/VStepper/index.d.mts +50 -56
- package/lib/labs/components.d.mts +64 -56
- package/lib/labs/date/adapters/vuetify.mjs +1 -1
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/locale/af.mjs +1 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +1 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +1 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +1 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +1 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +1 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +1 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +1 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +1 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +1 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +1 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +1 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +1 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +1 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +1 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +1 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +1 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +1 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +1 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +42 -0
- package/lib/locale/it.mjs +1 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +1 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +1 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +16 -15
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/package.json +2 -2
package/lib/entry-bundler.mjs
CHANGED
package/lib/framework.mjs
CHANGED
package/lib/index.d.mts
CHANGED
|
@@ -380,14 +380,14 @@ declare module '@vue/runtime-core' {
|
|
|
380
380
|
VBtn: typeof import('vuetify/components')['VBtn']
|
|
381
381
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
382
382
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
383
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
384
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
383
385
|
VCard: typeof import('vuetify/components')['VCard']
|
|
384
386
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
385
387
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
386
388
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
387
389
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
388
390
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
389
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
390
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
391
391
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
392
392
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
393
393
|
VChip: typeof import('vuetify/components')['VChip']
|
|
@@ -396,8 +396,8 @@ declare module '@vue/runtime-core' {
|
|
|
396
396
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
397
397
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
398
398
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
399
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
400
399
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
400
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
401
401
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
402
402
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
403
403
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
@@ -47,13 +47,23 @@ export function createDateInput(props, isRange) {
|
|
|
47
47
|
const date = adapter.date(input);
|
|
48
48
|
return adapter.isValid(date) ? date : fallback;
|
|
49
49
|
}
|
|
50
|
+
function isEqual(model, comparing) {
|
|
51
|
+
if (model.length !== comparing.length) return false;
|
|
52
|
+
for (let i = 0; i < model.length; i++) {
|
|
53
|
+
if (comparing[i] && !adapter.isEqual(model[i], comparing[i])) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
50
59
|
return {
|
|
51
60
|
model,
|
|
52
61
|
adapter,
|
|
53
62
|
inputMode,
|
|
54
63
|
viewMode,
|
|
55
64
|
displayDate,
|
|
56
|
-
parseKeyboardDate
|
|
65
|
+
parseKeyboardDate,
|
|
66
|
+
isEqual
|
|
57
67
|
};
|
|
58
68
|
}
|
|
59
69
|
//# sourceMappingURL=composables.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composables.mjs","names":["useProxiedModel","useDate","propsFactory","wrapInArray","makeDateProps","modelValue","type","default","displayDate","inputMode","String","viewMode","format","dateEmits","date","focused","createDateInput","props","isRange","adapter","model","v","arr","filter","map","formatted","d","value","length","parseKeyboardDate","input","fallback","isValid"],"sources":["../../../src/labs/VDateInput/composables.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeDateProps = propsFactory({\n modelValue: {\n type: null as unknown as PropType<any[]>,\n default: () => [],\n },\n displayDate: {\n type: null as unknown as PropType<any>,\n default: null,\n },\n inputMode: {\n type: String as PropType<'calendar' | 'keyboard'>,\n default: 'calendar',\n },\n viewMode: {\n type: String as PropType<'month' | 'year'>,\n default: 'month',\n },\n format: String,\n}, 'date')\n\nexport const dateEmits = {\n 'update:modelValue': (date: readonly any[]) => true,\n 'update:displayDate': (date: any) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:inputMode': (inputMode: 'calendar' | 'keyboard') => true,\n 'update:viewMode': (viewMode: 'month' | 'year') => true,\n}\n\nexport type DateInputProps = {\n modelValue?: any | any[]\n 'onUpdate:modelValue': ((value: any | any[]) => void) | undefined\n displayDate?: any\n 'onUpdate:displayDate': ((value: any) => void) | undefined\n inputMode?: 'calendar' | 'keyboard'\n 'onUpdate:inputMode': ((value: 'calendar' | 'keyboard') => void) | undefined\n viewMode?: 'month' | 'year'\n 'onUpdate:viewMode': ((value: 'month' | 'year') => void) | undefined\n format?: string\n}\n\nexport function createDateInput (props: DateInputProps, isRange: boolean) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n const arr = wrapInArray(v).filter(v => !!v)\n return arr.map(adapter.date) as Date[]\n },\n v => {\n const arr = wrapInArray(v)\n const formatted = props.format ? arr.map(d => adapter.format(d, props.format as any)) : arr\n if (isRange) return formatted\n return formatted[0]\n })\n\n const inputMode = useProxiedModel(props, 'inputMode')\n const viewMode = useProxiedModel(props, 'viewMode')\n const displayDate = useProxiedModel(props, 'displayDate', model.value.length ? model.value[0] : adapter.date())\n\n function parseKeyboardDate (input: string, fallback?: any) {\n const date = adapter.date(input)\n\n return adapter.isValid(date) ? date : fallback\n }\n\n return {\n model,\n adapter,\n inputMode,\n viewMode,\n displayDate,\n parseKeyboardDate,\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe;AAAA,SACfC,OAAO,6BAEhB;AAAA,SACSC,YAAY,EAAEC,WAAW,gCAElC;AAGA,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxCG,UAAU,EAAE;IACVC,IAAI,EAAE,IAAkC;IACxCC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,WAAW,EAAE;IACXF,IAAI,EAAE,IAAgC;IACtCC,OAAO,EAAE;EACX,CAAC;EACDE,SAAS,EAAE;IACTH,IAAI,EAAEI,MAA2C;IACjDH,OAAO,EAAE;EACX,CAAC;EACDI,QAAQ,EAAE;IACRL,IAAI,EAAEI,MAAoC;IAC1CH,OAAO,EAAE;EACX,CAAC;EACDK,MAAM,EAAEF;AACV,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,MAAMG,SAAS,GAAG;EACvB,mBAAmB,EAAGC,IAAoB,IAAK,IAAI;EACnD,oBAAoB,EAAGA,IAAS,IAAK,IAAI;EACzC,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;EAC5C,kBAAkB,EAAGN,SAAkC,IAAK,IAAI;EAChE,iBAAiB,EAAGE,QAA0B,IAAK;AACrD,CAAC;AAcD,OAAO,SAASK,eAAeA,CAAEC,KAAqB,EAAEC,OAAgB,EAAE;EACxE,MAAMC,OAAO,GAAGlB,OAAO,EAAE;EACzB,MAAMmB,KAAK,GAAGpB,eAAe,CAC3BiB,KAAK,EACL,YAAY,EACZ,EAAE,EACFI,CAAC,IAAI;IACH,IAAIA,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE;IACxB,MAAMC,GAAG,GAAGnB,WAAW,CAACkB,CAAC,CAAC,CAACE,MAAM,CAACF,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC;IAC3C,OAAOC,GAAG,CAACE,GAAG,CAACL,OAAO,CAACL,IAAI,CAAC;EAC9B,CAAC,EACDO,CAAC,IAAI;IACH,MAAMC,GAAG,GAAGnB,WAAW,CAACkB,CAAC,CAAC;IAC1B,MAAMI,SAAS,GAAGR,KAAK,CAACL,MAAM,GAAGU,GAAG,CAACE,GAAG,CAACE,CAAC,IAAIP,OAAO,CAACP,MAAM,CAACc,CAAC,EAAET,KAAK,CAACL,MAAM,CAAQ,CAAC,GAAGU,GAAG;IAC3F,IAAIJ,OAAO,EAAE,OAAOO,SAAS;IAC7B,OAAOA,SAAS,CAAC,CAAC,CAAC;EACrB,CAAC,CAAC;EAEJ,MAAMhB,SAAS,GAAGT,eAAe,CAACiB,KAAK,EAAE,WAAW,CAAC;EACrD,MAAMN,QAAQ,GAAGX,eAAe,CAACiB,KAAK,EAAE,UAAU,CAAC;EACnD,MAAMT,WAAW,GAAGR,eAAe,CAACiB,KAAK,EAAE,aAAa,EAAEG,KAAK,CAACO,KAAK,CAACC,MAAM,GAAGR,KAAK,CAACO,KAAK,CAAC,CAAC,CAAC,GAAGR,OAAO,CAACL,IAAI,EAAE,CAAC;EAE/G,SAASe,iBAAiBA,CAAEC,KAAa,EAAEC,QAAc,EAAE;IACzD,MAAMjB,IAAI,GAAGK,OAAO,CAACL,IAAI,CAACgB,KAAK,CAAC;IAEhC,OAAOX,OAAO,CAACa,OAAO,CAAClB,IAAI,CAAC,GAAGA,IAAI,GAAGiB,QAAQ;EAChD;EAEA,OAAO;
|
|
1
|
+
{"version":3,"file":"composables.mjs","names":["useProxiedModel","useDate","propsFactory","wrapInArray","makeDateProps","modelValue","type","default","displayDate","inputMode","String","viewMode","format","dateEmits","date","focused","createDateInput","props","isRange","adapter","model","v","arr","filter","map","formatted","d","value","length","parseKeyboardDate","input","fallback","isValid","isEqual","comparing","i"],"sources":["../../../src/labs/VDateInput/composables.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeDateProps = propsFactory({\n modelValue: {\n type: null as unknown as PropType<any[]>,\n default: () => [],\n },\n displayDate: {\n type: null as unknown as PropType<any>,\n default: null,\n },\n inputMode: {\n type: String as PropType<'calendar' | 'keyboard'>,\n default: 'calendar',\n },\n viewMode: {\n type: String as PropType<'month' | 'year'>,\n default: 'month',\n },\n format: String,\n}, 'date')\n\nexport const dateEmits = {\n 'update:modelValue': (date: readonly any[]) => true,\n 'update:displayDate': (date: any) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:inputMode': (inputMode: 'calendar' | 'keyboard') => true,\n 'update:viewMode': (viewMode: 'month' | 'year') => true,\n}\n\nexport type DateInputProps = {\n modelValue?: any | any[]\n 'onUpdate:modelValue': ((value: any | any[]) => void) | undefined\n displayDate?: any\n 'onUpdate:displayDate': ((value: any) => void) | undefined\n inputMode?: 'calendar' | 'keyboard'\n 'onUpdate:inputMode': ((value: 'calendar' | 'keyboard') => void) | undefined\n viewMode?: 'month' | 'year'\n 'onUpdate:viewMode': ((value: 'month' | 'year') => void) | undefined\n format?: string\n}\n\nexport function createDateInput (props: DateInputProps, isRange: boolean) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n const arr = wrapInArray(v).filter(v => !!v)\n return arr.map(adapter.date) as Date[]\n },\n v => {\n const arr = wrapInArray(v)\n const formatted = props.format ? arr.map(d => adapter.format(d, props.format as any)) : arr\n if (isRange) return formatted\n return formatted[0]\n })\n\n const inputMode = useProxiedModel(props, 'inputMode')\n const viewMode = useProxiedModel(props, 'viewMode')\n const displayDate = useProxiedModel(props, 'displayDate', model.value.length ? model.value[0] : adapter.date())\n\n function parseKeyboardDate (input: string, fallback?: any) {\n const date = adapter.date(input)\n\n return adapter.isValid(date) ? date : fallback\n }\n\n function isEqual (model: readonly any[], comparing: readonly any[]) {\n if (model.length !== comparing.length) return false\n\n for (let i = 0; i < model.length; i++) {\n if (comparing[i] && !adapter.isEqual(model[i], comparing[i])) {\n return false\n }\n }\n\n return true\n }\n\n return {\n model,\n adapter,\n inputMode,\n viewMode,\n displayDate,\n parseKeyboardDate,\n isEqual,\n }\n}\n"],"mappings":"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"}
|
|
@@ -98,6 +98,7 @@ declare const VDateInput: {
|
|
|
98
98
|
loading?: string | boolean | undefined;
|
|
99
99
|
label?: string | undefined;
|
|
100
100
|
prefix?: string | undefined;
|
|
101
|
+
role?: string | undefined;
|
|
101
102
|
class?: any;
|
|
102
103
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
103
104
|
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
@@ -300,6 +301,7 @@ declare const VDateInput: {
|
|
|
300
301
|
loading?: string | boolean | undefined;
|
|
301
302
|
label?: string | undefined;
|
|
302
303
|
prefix?: string | undefined;
|
|
304
|
+
role?: string | undefined;
|
|
303
305
|
class?: any;
|
|
304
306
|
format?: string | undefined;
|
|
305
307
|
theme?: string | undefined;
|
|
@@ -515,6 +517,7 @@ declare const VDateInput: {
|
|
|
515
517
|
loading?: string | boolean | undefined;
|
|
516
518
|
label?: string | undefined;
|
|
517
519
|
prefix?: string | undefined;
|
|
520
|
+
role?: string | undefined;
|
|
518
521
|
class?: any;
|
|
519
522
|
format?: string | undefined;
|
|
520
523
|
theme?: string | undefined;
|
|
@@ -637,6 +640,7 @@ declare const VDateInput: {
|
|
|
637
640
|
loading?: string | boolean | undefined;
|
|
638
641
|
label?: string | undefined;
|
|
639
642
|
prefix?: string | undefined;
|
|
643
|
+
role?: string | undefined;
|
|
640
644
|
class?: any;
|
|
641
645
|
format?: string | undefined;
|
|
642
646
|
theme?: string | undefined;
|
|
@@ -900,6 +904,7 @@ declare const VDateInput: {
|
|
|
900
904
|
persistentPlaceholder: BooleanConstructor;
|
|
901
905
|
persistentCounter: BooleanConstructor;
|
|
902
906
|
suffix: StringConstructor;
|
|
907
|
+
role: StringConstructor;
|
|
903
908
|
type: {
|
|
904
909
|
type: StringConstructor;
|
|
905
910
|
default: string;
|
|
@@ -1026,6 +1031,7 @@ declare const VDateInput: {
|
|
|
1026
1031
|
persistentPlaceholder: BooleanConstructor;
|
|
1027
1032
|
persistentCounter: BooleanConstructor;
|
|
1028
1033
|
suffix: StringConstructor;
|
|
1034
|
+
role: StringConstructor;
|
|
1029
1035
|
type: {
|
|
1030
1036
|
type: StringConstructor;
|
|
1031
1037
|
default: string;
|
|
@@ -15,7 +15,7 @@ import { makeVPickerProps, VPicker } from "../VPicker/VPicker.mjs"; // Composabl
|
|
|
15
15
|
import { createDatePicker } from "./composables.mjs";
|
|
16
16
|
import { useLocale } from "../../composables/locale.mjs";
|
|
17
17
|
import { useDate } from "../date/index.mjs"; // Utilities
|
|
18
|
-
import { computed, shallowRef, watch } from 'vue';
|
|
18
|
+
import { computed, ref, shallowRef, watch } from 'vue';
|
|
19
19
|
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
20
20
|
export const makeVDatePickerProps = propsFactory({
|
|
21
21
|
calendarIcon: {
|
|
@@ -38,6 +38,10 @@ export const makeVDatePickerProps = propsFactory({
|
|
|
38
38
|
type: String,
|
|
39
39
|
default: '$vuetify.datePicker.input.placeholder'
|
|
40
40
|
},
|
|
41
|
+
inputPlaceholder: {
|
|
42
|
+
type: String,
|
|
43
|
+
default: 'dd/mm/yyyy'
|
|
44
|
+
},
|
|
41
45
|
header: {
|
|
42
46
|
type: String,
|
|
43
47
|
default: '$vuetify.datePicker.header'
|
|
@@ -72,24 +76,40 @@ export const VDatePicker = genericComponent()({
|
|
|
72
76
|
model,
|
|
73
77
|
displayDate,
|
|
74
78
|
viewMode,
|
|
75
|
-
inputMode
|
|
79
|
+
inputMode,
|
|
80
|
+
isEqual
|
|
76
81
|
} = createDatePicker(props);
|
|
77
82
|
const isReversing = shallowRef(false);
|
|
78
|
-
const inputModel =
|
|
83
|
+
const inputModel = ref(model.value.map(date => adapter.format(date, 'keyboardDate')));
|
|
84
|
+
const temporaryModel = ref(model.value);
|
|
79
85
|
const title = computed(() => t(props.title));
|
|
80
86
|
const header = computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header));
|
|
81
87
|
const headerIcon = computed(() => inputMode.value === 'calendar' ? props.keyboardIcon : props.calendarIcon);
|
|
82
88
|
const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
|
|
83
|
-
|
|
89
|
+
function updateFromInput(input, index) {
|
|
84
90
|
const {
|
|
85
91
|
isValid,
|
|
86
92
|
date
|
|
87
93
|
} = adapter;
|
|
88
|
-
|
|
94
|
+
if (isValid(input)) {
|
|
95
|
+
const newModel = model.value.slice();
|
|
96
|
+
newModel[index] = date(input);
|
|
97
|
+
if (props.hideActions) {
|
|
98
|
+
model.value = newModel;
|
|
99
|
+
} else {
|
|
100
|
+
temporaryModel.value = newModel;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
watch(model, val => {
|
|
105
|
+
if (!isEqual(val, temporaryModel.value)) {
|
|
106
|
+
temporaryModel.value = val;
|
|
107
|
+
}
|
|
108
|
+
inputModel.value = val.map(date => adapter.format(date, 'keyboardDate'));
|
|
89
109
|
});
|
|
90
|
-
watch(
|
|
91
|
-
if (props.hideActions) {
|
|
92
|
-
|
|
110
|
+
watch(temporaryModel, (val, oldVal) => {
|
|
111
|
+
if (props.hideActions && !isEqual(val, model.value)) {
|
|
112
|
+
model.value = val;
|
|
93
113
|
}
|
|
94
114
|
if (val[0] && oldVal[0]) {
|
|
95
115
|
isReversing.value = adapter.isBefore(val[0], oldVal[0]);
|
|
@@ -100,7 +120,7 @@ export const VDatePicker = genericComponent()({
|
|
|
100
120
|
}
|
|
101
121
|
function onClickSave() {
|
|
102
122
|
emit('click:save');
|
|
103
|
-
|
|
123
|
+
model.value = temporaryModel.value;
|
|
104
124
|
}
|
|
105
125
|
function onClickAppend() {
|
|
106
126
|
inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar';
|
|
@@ -136,8 +156,8 @@ export const VDatePicker = genericComponent()({
|
|
|
136
156
|
default: () => [viewMode.value === 'month' ? _createVNode(VDatePickerMonth, _mergeProps({
|
|
137
157
|
"key": "date-picker-month"
|
|
138
158
|
}, datePickerMonthProps, {
|
|
139
|
-
"modelValue":
|
|
140
|
-
"onUpdate:modelValue": $event =>
|
|
159
|
+
"modelValue": temporaryModel.value,
|
|
160
|
+
"onUpdate:modelValue": $event => temporaryModel.value = $event,
|
|
141
161
|
"displayDate": displayDate.value,
|
|
142
162
|
"onUpdate:displayDate": $event => displayDate.value = $event
|
|
143
163
|
}), null) : _createVNode(VDatePickerYears, _mergeProps({
|
|
@@ -151,10 +171,10 @@ export const VDatePicker = genericComponent()({
|
|
|
151
171
|
})]) : _createVNode("div", {
|
|
152
172
|
"class": "v-date-picker__input"
|
|
153
173
|
}, [_createVNode(VTextField, {
|
|
154
|
-
"modelValue": inputModel.value,
|
|
155
|
-
"onUpdate:modelValue":
|
|
174
|
+
"modelValue": inputModel.value[0],
|
|
175
|
+
"onUpdate:modelValue": v => updateFromInput(v, 0),
|
|
156
176
|
"label": t(props.inputText),
|
|
157
|
-
"placeholder":
|
|
177
|
+
"placeholder": props.inputPlaceholder
|
|
158
178
|
}, null)]),
|
|
159
179
|
actions: () => !props.hideActions ? _createVNode("div", null, [_createVNode(VBtn, {
|
|
160
180
|
"variant": "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VBtn","VTextField","dateEmits","makeDateProps","makeVPickerProps","VPicker","createDatePicker","useLocale","useDate","computed","shallowRef","watch","genericComponent","propsFactory","useRender","makeVDatePickerProps","calendarIcon","type","String","default","keyboardIcon","cancelText","okText","inputText","header","hideActions","Boolean","title","VDatePicker","name","props","emits","click:cancel","click:save","setup","_ref","emit","slots","adapter","t","model","displayDate","viewMode","inputMode","isReversing","inputModel","value","length","format","headerIcon","headerTransition","isValid","date","val","oldVal","isBefore","onClickCancel","onClickSave","onClickAppend","headerSlotProps","appendIcon","transition","pickerProps","filterProps","datePickerControlsProps","datePickerMonthProps","datePickerYearsProps","_createVNode","_mergeProps","class","style","showWeek","_Fragment","$event","actions","color","undefined"],"sources":["../../../src/labs/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VBtn } from '@/components/VBtn'\nimport { VTextField } from '@/components/VTextField'\nimport { dateEmits, makeDateProps } from '@/labs/VDateInput/composables'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { createDatePicker } from './composables'\nimport { useLocale } from '@/composables/locale'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerSlots = {\n header: {\n header: string\n appendIcon: string\n 'onClick:append': () => void\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n cancelText: {\n type: String,\n default: '$vuetify.datePicker.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.datePicker.ok',\n },\n inputText: {\n type: String,\n default: '$vuetify.datePicker.input.placeholder',\n },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n hideActions: Boolean,\n\n ...makeDateProps(),\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...makeVDatePickerYearsProps(),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<VDatePickerSlots>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'click:cancel': () => true,\n 'click:save': () => true,\n ...dateEmits,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const { model, displayDate, viewMode, inputMode } = createDatePicker(props)\n\n const isReversing = shallowRef(false)\n\n const inputModel = computed(() => model.value.length ? adapter.format(model.value[0], 'keyboardDate') : '')\n const title = computed(() => t(props.title))\n const header = computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header))\n const headerIcon = computed(() => inputMode.value === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n\n watch(inputModel, () => {\n const { isValid, date } = adapter\n\n model.value = isValid(inputModel.value) ? [date(inputModel.value)] : []\n })\n\n watch(model, (val, oldVal) => {\n if (props.hideActions) {\n emit('update:modelValue', val)\n }\n\n if (val[0] && oldVal[0]) {\n isReversing.value = adapter.isBefore(val[0], oldVal[0])\n }\n })\n\n function onClickCancel () {\n emit('click:cancel')\n }\n function onClickSave () {\n emit('click:save')\n emit('update:modelValue', model.value)\n }\n function onClickAppend () {\n inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n }\n\n const headerSlotProps = computed(() => ({\n header: header.value,\n appendIcon: headerIcon.value,\n transition: headerTransition.value,\n 'onClick:append': onClickAppend,\n }))\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [datePickerControlsProps] = VDatePickerControls.filterProps(props)\n const [datePickerMonthProps] = VDatePickerMonth.filterProps(props)\n const [datePickerYearsProps] = VDatePickerYears.filterProps(props)\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n props.class,\n ]}\n style={ props.style }\n title={ title.value }\n width={ props.showWeek ? 408 : 360 }\n v-slots={{\n header: () => slots.header?.(headerSlotProps.value) ?? (\n <VDatePickerHeader\n key=\"header\"\n { ...headerSlotProps.value }\n />\n ),\n default: () => inputMode.value === 'calendar' ? (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'month' ? (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:displayDate={ displayDate.value }\n />\n ) : (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n />\n )}\n </VFadeTransition>\n </>\n ) : (\n <div class=\"v-date-picker__input\">\n <VTextField\n v-model={ inputModel.value }\n label={ t(props.inputText) }\n placeholder=\"dd/mm/yyyy\"\n />\n </div>\n ),\n actions: () => !props.hideActions ? (\n <div>\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickCancel }\n text={ t(props.cancelText) }\n />\n\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickSave }\n text={ t(props.okText) }\n />\n </div>\n ) : undefined,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VBtn","VTextField","dateEmits","makeDateProps","makeVPickerProps","VPicker","createDatePicker","useLocale","useDate","computed","ref","shallowRef","watch","genericComponent","propsFactory","useRender","makeVDatePickerProps","calendarIcon","type","String","default","keyboardIcon","cancelText","okText","inputText","inputPlaceholder","header","hideActions","Boolean","title","VDatePicker","name","props","emits","click:cancel","click:save","setup","_ref","emit","slots","adapter","t","model","displayDate","viewMode","inputMode","isEqual","isReversing","inputModel","value","map","date","format","temporaryModel","length","headerIcon","headerTransition","updateFromInput","input","index","isValid","newModel","slice","val","oldVal","isBefore","onClickCancel","onClickSave","onClickAppend","headerSlotProps","appendIcon","transition","pickerProps","filterProps","datePickerControlsProps","datePickerMonthProps","datePickerYearsProps","_createVNode","_mergeProps","class","style","showWeek","_Fragment","$event","v","actions","color","undefined"],"sources":["../../../src/labs/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VBtn } from '@/components/VBtn'\nimport { VTextField } from '@/components/VTextField'\nimport { dateEmits, makeDateProps } from '@/labs/VDateInput/composables'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { createDatePicker } from './composables'\nimport { useLocale } from '@/composables/locale'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerSlots = {\n header: {\n header: string\n appendIcon: string\n 'onClick:append': () => void\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n cancelText: {\n type: String,\n default: '$vuetify.datePicker.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.datePicker.ok',\n },\n inputText: {\n type: String,\n default: '$vuetify.datePicker.input.placeholder',\n },\n inputPlaceholder: {\n type: String,\n default: 'dd/mm/yyyy',\n },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n hideActions: Boolean,\n\n ...makeDateProps(),\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...makeVDatePickerYearsProps(),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<VDatePickerSlots>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'click:cancel': () => true,\n 'click:save': () => true,\n ...dateEmits,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const { model, displayDate, viewMode, inputMode, isEqual } = createDatePicker(props)\n\n const isReversing = shallowRef(false)\n\n const inputModel = ref(model.value.map(date => adapter.format(date, 'keyboardDate')))\n const temporaryModel = ref(model.value)\n const title = computed(() => t(props.title))\n const header = computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header))\n const headerIcon = computed(() => inputMode.value === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n\n function updateFromInput (input: string, index: number) {\n const { isValid, date } = adapter\n\n if (isValid(input)) {\n const newModel = model.value.slice()\n newModel[index] = date(input)\n\n if (props.hideActions) {\n model.value = newModel\n } else {\n temporaryModel.value = newModel\n }\n }\n }\n\n watch(model, val => {\n if (!isEqual(val, temporaryModel.value)) {\n temporaryModel.value = val\n }\n\n inputModel.value = val.map(date => adapter.format(date, 'keyboardDate'))\n })\n\n watch(temporaryModel, (val, oldVal) => {\n if (props.hideActions && !isEqual(val, model.value)) {\n model.value = val\n }\n\n if (val[0] && oldVal[0]) {\n isReversing.value = adapter.isBefore(val[0], oldVal[0])\n }\n })\n\n function onClickCancel () {\n emit('click:cancel')\n }\n\n function onClickSave () {\n emit('click:save')\n\n model.value = temporaryModel.value\n }\n\n function onClickAppend () {\n inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n }\n\n const headerSlotProps = computed(() => ({\n header: header.value,\n appendIcon: headerIcon.value,\n transition: headerTransition.value,\n 'onClick:append': onClickAppend,\n }))\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [datePickerControlsProps] = VDatePickerControls.filterProps(props)\n const [datePickerMonthProps] = VDatePickerMonth.filterProps(props)\n const [datePickerYearsProps] = VDatePickerYears.filterProps(props)\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n props.class,\n ]}\n style={ props.style }\n title={ title.value }\n width={ props.showWeek ? 408 : 360 }\n v-slots={{\n header: () => slots.header?.(headerSlotProps.value) ?? (\n <VDatePickerHeader\n key=\"header\"\n { ...headerSlotProps.value }\n />\n ),\n default: () => inputMode.value === 'calendar' ? (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'month' ? (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ temporaryModel.value }\n v-model:displayDate={ displayDate.value }\n />\n ) : (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n />\n )}\n </VFadeTransition>\n </>\n ) : (\n <div class=\"v-date-picker__input\">\n <VTextField\n modelValue={ inputModel.value[0] }\n onUpdate:modelValue={ v => updateFromInput(v, 0) }\n label={ t(props.inputText) }\n placeholder={ props.inputPlaceholder }\n />\n </div>\n ),\n actions: () => !props.hideActions ? (\n <div>\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickCancel }\n text={ t(props.cancelText) }\n />\n\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickSave }\n text={ t(props.okText) }\n />\n </div>\n ) : undefined,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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"}
|
|
@@ -248,7 +248,7 @@ export const VDatePickerMonth = genericComponent()({
|
|
|
248
248
|
"onTouchstart": handleMousedown
|
|
249
249
|
}, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => _createVNode("div", {
|
|
250
250
|
"class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
|
|
251
|
-
}, [weekDay
|
|
251
|
+
}, [weekDay])), daysInMonth.value.map((item, index) => _createVNode("div", {
|
|
252
252
|
"class": ['v-date-picker-month__day', {
|
|
253
253
|
'v-date-picker-month__day--selected': item.isSelected,
|
|
254
254
|
'v-date-picker-month__day--start': item.isStart,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","useDatePicker","useBackgroundColor","computed","ref","genericComponent","omit","propsFactory","getWeek","toIso","dateEmits","makeDateProps","useDate","makeVDatePickerMonthProps","color","String","showAdjacentMonths","Boolean","hideWeekdays","showWeek","hoverDate","multiple","side","type","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","adapter","isDragging","dragHandle","hasScrolled","month","displayDate","findClosestDate","dates","isSameDay","getDiff","startDate","endDate","distStart","Math","abs","distEnd","weeksInMonth","weeks","getWeekArray","value","days","flat","daysInMonth","length","lastDay","week","day","push","addDays","validDates","modelValue","filter","v","isRange","today","map","index","isStart","isEnd","isAdjacent","isSameMonth","isSame","isoDate","formatted","format","year","getYear","getMonth","isWeekStart","isWeekEnd","isSelected","isToday","isHidden","inRange","isWithinRange","isHovered","inHover","localized","backgroundColorClasses","backgroundColorStyles","selectDate","newModel","slice","otherIndex","fn","find","d","closest","indexOf","undefined","i","isBefore","daysRef","findElement","el","dataset","vDate","parentElement","findDate","e","x","changedTouches","clientX","y","clientY","document","elementFromPoint","canDrag","handleMousedown","selected","modelIndex","findIndex","isEqual","window","addEventListener","handleTouchmove","passive","preventDefault","handleTouchend","over","cancelable","removeEventListener","end","_createVNode","_createTextVNode","getWeekdays","weekDay","charAt","item","default"],"sources":["../../../src/labs/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDatePicker } from './composables'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory } from '@/util'\n\n// Types\nimport { getWeek, toIso } from '../date/date'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n showAdjacentMonths: Boolean,\n hideWeekdays: Boolean,\n showWeek: Boolean,\n hoverDate: null,\n multiple: Boolean,\n side: {\n type: String,\n },\n\n ...omit(makeDateProps(), ['inputMode', 'viewMode']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps({ color: 'surface-variant' }),\n\n emits: {\n ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),\n 'update:hoverDate': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { isDragging, dragHandle, hasScrolled } = useDatePicker()\n\n const month = computed(() => props.displayDate)\n\n const findClosestDate = (date: any, dates: any[]) => {\n const { isSameDay, getDiff } = adapter\n const [startDate, endDate] = dates\n\n if (isSameDay(startDate, endDate)) {\n return getDiff(date, startDate, 'days') > 0 ? endDate : startDate\n }\n\n const distStart = Math.abs(getDiff(date, startDate))\n const distEnd = Math.abs(getDiff(date, endDate))\n\n return distStart < distEnd ? startDate : endDate\n }\n\n // const hoverRange = computed<[any, any] | null>(() => {\n // if (!props.hoverDate) return null\n\n // const closestDate = findClosestDate(props.hoverDate, props.modelValue)\n\n // if (!closestDate) return null\n\n // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]\n // })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth && props.showAdjacentMonths) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n const daysInMonth = computed(() => {\n const validDates = props.modelValue.filter(v => !!v)\n const isRange = validDates.length > 1\n\n const days = weeksInMonth.value.flat()\n const today = adapter.date()\n\n const startDate = validDates[0]\n const endDate = validDates[1]\n\n return days.map((date, index) => {\n const isStart = startDate && adapter.isSameDay(date, startDate)\n const isEnd = endDate && adapter.isSameDay(date, endDate)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate)\n\n return {\n date,\n isoDate: toIso(adapter, date),\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isSelected: isStart || isEnd,\n isStart,\n isEnd,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n inRange: isRange &&\n !isSame &&\n (isStart || isEnd || (validDates.length === 2 && adapter.isWithinRange(date, validDates as [any, any]))),\n // isHovered: props.hoverDate === date,\n // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),\n isHovered: false,\n inHover: false,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n })\n\n const weeks = computed(() => {\n return weeksInMonth.value.map(week => {\n return getWeek(adapter, week[0])\n })\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function selectDate (date: any) {\n let newModel = props.modelValue.slice()\n\n if (props.multiple) {\n if (isDragging.value && dragHandle.value != null) {\n const otherIndex = (dragHandle.value + 1) % 2\n const fn = otherIndex === 0 ? 'isBefore' : 'isAfter'\n if (adapter[fn](date, newModel[otherIndex])) {\n newModel[dragHandle.value] = newModel[otherIndex]\n newModel[otherIndex] = date\n dragHandle.value = otherIndex\n } else {\n newModel[dragHandle.value] = date\n }\n } else {\n if (newModel.find(d => adapter.isSameDay(d, date))) {\n newModel = newModel.filter(v => !adapter.isSameDay(v, date))\n } else if (newModel.length === 2) {\n let index: number | undefined\n if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {\n const closest = findClosestDate(date, newModel)\n index = newModel.indexOf(closest)\n } else {\n index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined\n }\n\n newModel = newModel.map((v, i) => i === index ? date : v)\n } else {\n if (newModel[0] && adapter.isBefore(newModel[0], date)) {\n newModel = [newModel[0], date]\n } else {\n newModel = [date, newModel[0]]\n }\n }\n }\n } else {\n newModel = [date]\n }\n\n emit('update:modelValue', newModel.filter(v => !!v))\n }\n\n const daysRef = ref()\n\n function findElement (el: HTMLElement | null): any {\n if (!el || el === daysRef.value) return null\n\n if ('vDate' in el.dataset) {\n return adapter.date(el.dataset.vDate)\n }\n\n return findElement(el.parentElement)\n }\n\n function findDate (e: MouseEvent | TouchEvent) {\n const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX\n const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY\n const el = document.elementFromPoint(x, y) as HTMLElement\n\n return findElement(el)\n }\n\n let canDrag = false\n function handleMousedown (e: MouseEvent | TouchEvent) {\n hasScrolled.value = false\n\n const selected = findDate(e)\n\n if (!selected) return\n\n const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected))\n\n if (modelIndex >= 0) {\n canDrag = true\n dragHandle.value = modelIndex\n\n window.addEventListener('touchmove', handleTouchmove, { passive: false })\n window.addEventListener('mousemove', handleTouchmove, { passive: false })\n\n e.preventDefault()\n }\n\n window.addEventListener('touchend', handleTouchend, { passive: false })\n window.addEventListener('mouseup', handleTouchend, { passive: false })\n }\n\n function handleTouchmove (e: MouseEvent | TouchEvent) {\n if (!canDrag) return\n\n e.preventDefault()\n\n isDragging.value = true\n\n const over = findDate(e)\n\n if (!over) return\n\n selectDate(over)\n }\n\n function handleTouchend (e: MouseEvent | TouchEvent) {\n if (e.cancelable) e.preventDefault()\n\n window.removeEventListener('touchmove', handleTouchmove)\n window.removeEventListener('mousemove', handleTouchmove)\n window.removeEventListener('touchend', handleTouchend)\n window.removeEventListener('mouseup', handleTouchend)\n\n const end = findDate(e)\n\n if (!end) return\n\n if (!hasScrolled.value) {\n selectDate(end)\n }\n\n isDragging.value = false\n dragHandle.value = null\n canDrag = false\n }\n\n return () => (\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 { weeks.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 <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n onMousedown={ handleMousedown }\n onTouchstart={ handleMousedown }\n >\n { !props.hideWeekdays && adapter.getWeekdays().map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay.charAt(0) }</div>\n ))}\n\n { daysInMonth.value.map((item, index) => (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--start': item.isStart,\n 'v-date-picker-month__day--end': item.isEnd,\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--week-start': item.isWeekStart,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--hovered': item.isHovered,\n },\n ]}\n data-v-date={ !item.isHidden ? item.isoDate : undefined }\n >\n { item.inRange && (\n <div\n key=\"in-range\"\n class={[\n 'v-date-picker-month__day--range',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n />\n )}\n\n { item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && (\n <div\n key=\"in-hover\"\n class=\"v-date-picker-month__day--hover\"\n />\n )}\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VBtn\n icon\n ripple={ false } /* ripple not working correctly since we preventDefault in touchend */\n variant={ (item.isToday || item.isHovered) && !item.isSelected ? 'outlined' : 'flat' }\n active={ item.isSelected }\n color={ item.isSelected || item.isToday ? props.color : item.isHovered ? undefined : 'transparent' }\n >\n { item.localized }\n </VBtn>\n )}\n </div>\n ))}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","useDatePicker","useBackgroundColor","computed","ref","genericComponent","omit","propsFactory","getWeek","toIso","dateEmits","makeDateProps","useDate","makeVDatePickerMonthProps","color","String","showAdjacentMonths","Boolean","hideWeekdays","showWeek","hoverDate","multiple","side","type","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","adapter","isDragging","dragHandle","hasScrolled","month","displayDate","findClosestDate","dates","isSameDay","getDiff","startDate","endDate","distStart","Math","abs","distEnd","weeksInMonth","weeks","getWeekArray","value","days","flat","daysInMonth","length","lastDay","week","day","push","addDays","validDates","modelValue","filter","v","isRange","today","map","index","isStart","isEnd","isAdjacent","isSameMonth","isSame","isoDate","formatted","format","year","getYear","getMonth","isWeekStart","isWeekEnd","isSelected","isToday","isHidden","inRange","isWithinRange","isHovered","inHover","localized","backgroundColorClasses","backgroundColorStyles","selectDate","newModel","slice","otherIndex","fn","find","d","closest","indexOf","undefined","i","isBefore","daysRef","findElement","el","dataset","vDate","parentElement","findDate","e","x","changedTouches","clientX","y","clientY","document","elementFromPoint","canDrag","handleMousedown","selected","modelIndex","findIndex","isEqual","window","addEventListener","handleTouchmove","passive","preventDefault","handleTouchend","over","cancelable","removeEventListener","end","_createVNode","_createTextVNode","getWeekdays","weekDay","item","default"],"sources":["../../../src/labs/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDatePicker } from './composables'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory } from '@/util'\n\n// Types\nimport { getWeek, toIso } from '../date/date'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n showAdjacentMonths: Boolean,\n hideWeekdays: Boolean,\n showWeek: Boolean,\n hoverDate: null,\n multiple: Boolean,\n side: {\n type: String,\n },\n\n ...omit(makeDateProps(), ['inputMode', 'viewMode']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps({ color: 'surface-variant' }),\n\n emits: {\n ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),\n 'update:hoverDate': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { isDragging, dragHandle, hasScrolled } = useDatePicker()\n\n const month = computed(() => props.displayDate)\n\n const findClosestDate = (date: any, dates: any[]) => {\n const { isSameDay, getDiff } = adapter\n const [startDate, endDate] = dates\n\n if (isSameDay(startDate, endDate)) {\n return getDiff(date, startDate, 'days') > 0 ? endDate : startDate\n }\n\n const distStart = Math.abs(getDiff(date, startDate))\n const distEnd = Math.abs(getDiff(date, endDate))\n\n return distStart < distEnd ? startDate : endDate\n }\n\n // const hoverRange = computed<[any, any] | null>(() => {\n // if (!props.hoverDate) return null\n\n // const closestDate = findClosestDate(props.hoverDate, props.modelValue)\n\n // if (!closestDate) return null\n\n // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]\n // })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth && props.showAdjacentMonths) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n const daysInMonth = computed(() => {\n const validDates = props.modelValue.filter(v => !!v)\n const isRange = validDates.length > 1\n\n const days = weeksInMonth.value.flat()\n const today = adapter.date()\n\n const startDate = validDates[0]\n const endDate = validDates[1]\n\n return days.map((date, index) => {\n const isStart = startDate && adapter.isSameDay(date, startDate)\n const isEnd = endDate && adapter.isSameDay(date, endDate)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate)\n\n return {\n date,\n isoDate: toIso(adapter, date),\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isSelected: isStart || isEnd,\n isStart,\n isEnd,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n inRange: isRange &&\n !isSame &&\n (isStart || isEnd || (validDates.length === 2 && adapter.isWithinRange(date, validDates as [any, any]))),\n // isHovered: props.hoverDate === date,\n // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),\n isHovered: false,\n inHover: false,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n })\n\n const weeks = computed(() => {\n return weeksInMonth.value.map(week => {\n return getWeek(adapter, week[0])\n })\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function selectDate (date: any) {\n let newModel = props.modelValue.slice()\n\n if (props.multiple) {\n if (isDragging.value && dragHandle.value != null) {\n const otherIndex = (dragHandle.value + 1) % 2\n const fn = otherIndex === 0 ? 'isBefore' : 'isAfter'\n if (adapter[fn](date, newModel[otherIndex])) {\n newModel[dragHandle.value] = newModel[otherIndex]\n newModel[otherIndex] = date\n dragHandle.value = otherIndex\n } else {\n newModel[dragHandle.value] = date\n }\n } else {\n if (newModel.find(d => adapter.isSameDay(d, date))) {\n newModel = newModel.filter(v => !adapter.isSameDay(v, date))\n } else if (newModel.length === 2) {\n let index: number | undefined\n if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {\n const closest = findClosestDate(date, newModel)\n index = newModel.indexOf(closest)\n } else {\n index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined\n }\n\n newModel = newModel.map((v, i) => i === index ? date : v)\n } else {\n if (newModel[0] && adapter.isBefore(newModel[0], date)) {\n newModel = [newModel[0], date]\n } else {\n newModel = [date, newModel[0]]\n }\n }\n }\n } else {\n newModel = [date]\n }\n\n emit('update:modelValue', newModel.filter(v => !!v))\n }\n\n const daysRef = ref()\n\n function findElement (el: HTMLElement | null): any {\n if (!el || el === daysRef.value) return null\n\n if ('vDate' in el.dataset) {\n return adapter.date(el.dataset.vDate)\n }\n\n return findElement(el.parentElement)\n }\n\n function findDate (e: MouseEvent | TouchEvent) {\n const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX\n const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY\n const el = document.elementFromPoint(x, y) as HTMLElement\n\n return findElement(el)\n }\n\n let canDrag = false\n function handleMousedown (e: MouseEvent | TouchEvent) {\n hasScrolled.value = false\n\n const selected = findDate(e)\n\n if (!selected) return\n\n const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected))\n\n if (modelIndex >= 0) {\n canDrag = true\n dragHandle.value = modelIndex\n\n window.addEventListener('touchmove', handleTouchmove, { passive: false })\n window.addEventListener('mousemove', handleTouchmove, { passive: false })\n\n e.preventDefault()\n }\n\n window.addEventListener('touchend', handleTouchend, { passive: false })\n window.addEventListener('mouseup', handleTouchend, { passive: false })\n }\n\n function handleTouchmove (e: MouseEvent | TouchEvent) {\n if (!canDrag) return\n\n e.preventDefault()\n\n isDragging.value = true\n\n const over = findDate(e)\n\n if (!over) return\n\n selectDate(over)\n }\n\n function handleTouchend (e: MouseEvent | TouchEvent) {\n if (e.cancelable) e.preventDefault()\n\n window.removeEventListener('touchmove', handleTouchmove)\n window.removeEventListener('mousemove', handleTouchmove)\n window.removeEventListener('touchend', handleTouchend)\n window.removeEventListener('mouseup', handleTouchend)\n\n const end = findDate(e)\n\n if (!end) return\n\n if (!hasScrolled.value) {\n selectDate(end)\n }\n\n isDragging.value = false\n dragHandle.value = null\n canDrag = false\n }\n\n return () => (\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 { weeks.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 <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n onMousedown={ handleMousedown }\n onTouchstart={ handleMousedown }\n >\n { !props.hideWeekdays && adapter.getWeekdays().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, index) => (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--start': item.isStart,\n 'v-date-picker-month__day--end': item.isEnd,\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--week-start': item.isWeekStart,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--hovered': item.isHovered,\n },\n ]}\n data-v-date={ !item.isHidden ? item.isoDate : undefined }\n >\n { item.inRange && (\n <div\n key=\"in-range\"\n class={[\n 'v-date-picker-month__day--range',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n />\n )}\n\n { item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && (\n <div\n key=\"in-hover\"\n class=\"v-date-picker-month__day--hover\"\n />\n )}\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VBtn\n icon\n ripple={ false } /* ripple not working correctly since we preventDefault in touchend */\n variant={ (item.isToday || item.isHovered) && !item.isSelected ? 'outlined' : 'flat' }\n active={ item.isSelected }\n color={ item.isSelected || item.isToday ? props.color : item.isHovered ? undefined : 'transparent' }\n >\n { item.localized }\n </VBtn>\n )}\n </div>\n ))}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}
|
|
@@ -24,7 +24,8 @@ export function createDatePicker(props) {
|
|
|
24
24
|
model,
|
|
25
25
|
displayDate,
|
|
26
26
|
viewMode,
|
|
27
|
-
inputMode
|
|
27
|
+
inputMode,
|
|
28
|
+
isEqual
|
|
28
29
|
} = createDateInput(props, !!props.multiple);
|
|
29
30
|
return {
|
|
30
31
|
hoverDate,
|
|
@@ -35,7 +36,8 @@ export function createDatePicker(props) {
|
|
|
35
36
|
model,
|
|
36
37
|
displayDate,
|
|
37
38
|
viewMode,
|
|
38
|
-
inputMode
|
|
39
|
+
inputMode,
|
|
40
|
+
isEqual
|
|
39
41
|
};
|
|
40
42
|
}
|
|
41
43
|
export function useDatePicker() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composables.mjs","names":["createDateInput","inject","provide","ref","DatePickerSymbol","Symbol","for","createDatePicker","props","hoverDate","hoverMonth","isDragging","dragHandle","hasScrolled","model","displayDate","viewMode","inputMode","multiple","useDatePicker","datePicker","Error"],"sources":["../../../src/labs/VDatePicker/composables.ts"],"sourcesContent":["// Composables\nimport { createDateInput } from '../VDateInput/composables'\n\n// Utilities\nimport { inject, provide, ref } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { DateInputProps } from '../VDateInput/composables'\n\nexport type DatePickerProvide = {\n hoverDate: Ref<any>\n hoverMonth: Ref<any>\n isDragging: Ref<boolean>\n dragHandle: Ref<number | null>\n hasScrolled: Ref<boolean>\n}\n\nexport const DatePickerSymbol: InjectionKey<DatePickerProvide> = Symbol.for('vuetify:date-picker')\n\ntype DateProps = DateInputProps & { multiple?: boolean }\n\nexport function createDatePicker (props: DateProps) {\n const hoverDate = ref()\n const hoverMonth = ref()\n const isDragging = ref(false)\n const dragHandle = ref(null)\n const hasScrolled = ref(false)\n\n provide(DatePickerSymbol, {\n hoverDate,\n hoverMonth,\n isDragging,\n dragHandle,\n hasScrolled,\n })\n\n // TODO: This composable should probably not live in DateInput\n const { model, displayDate, viewMode, inputMode } = createDateInput(props, !!props.multiple)\n\n return {\n hoverDate,\n hoverMonth,\n isDragging,\n dragHandle,\n hasScrolled,\n model,\n displayDate,\n viewMode,\n inputMode,\n }\n}\n\nexport function useDatePicker () {\n const datePicker = inject(DatePickerSymbol)\n\n if (!datePicker) throw new Error('foo')\n\n return datePicker\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,yCAExB;AACA,SAASC,MAAM,EAAEC,OAAO,EAAEC,GAAG,QAAQ,KAAK;;AAE1C;;AAYA,OAAO,MAAMC,gBAAiD,GAAGC,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAIlG,OAAO,SAASC,gBAAgBA,CAAEC,KAAgB,EAAE;EAClD,MAAMC,SAAS,GAAGN,GAAG,EAAE;EACvB,MAAMO,UAAU,GAAGP,GAAG,EAAE;EACxB,MAAMQ,UAAU,GAAGR,GAAG,CAAC,KAAK,CAAC;EAC7B,MAAMS,UAAU,GAAGT,GAAG,CAAC,IAAI,CAAC;EAC5B,MAAMU,WAAW,GAAGV,GAAG,CAAC,KAAK,CAAC;EAE9BD,OAAO,CAACE,gBAAgB,EAAE;IACxBK,SAAS;IACTC,UAAU;IACVC,UAAU;IACVC,UAAU;IACVC;EACF,CAAC,CAAC;;EAEF;EACA,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;
|
|
1
|
+
{"version":3,"file":"composables.mjs","names":["createDateInput","inject","provide","ref","DatePickerSymbol","Symbol","for","createDatePicker","props","hoverDate","hoverMonth","isDragging","dragHandle","hasScrolled","model","displayDate","viewMode","inputMode","isEqual","multiple","useDatePicker","datePicker","Error"],"sources":["../../../src/labs/VDatePicker/composables.ts"],"sourcesContent":["// Composables\nimport { createDateInput } from '../VDateInput/composables'\n\n// Utilities\nimport { inject, provide, ref } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { DateInputProps } from '../VDateInput/composables'\n\nexport type DatePickerProvide = {\n hoverDate: Ref<any>\n hoverMonth: Ref<any>\n isDragging: Ref<boolean>\n dragHandle: Ref<number | null>\n hasScrolled: Ref<boolean>\n}\n\nexport const DatePickerSymbol: InjectionKey<DatePickerProvide> = Symbol.for('vuetify:date-picker')\n\ntype DateProps = DateInputProps & { multiple?: boolean }\n\nexport function createDatePicker (props: DateProps) {\n const hoverDate = ref()\n const hoverMonth = ref()\n const isDragging = ref(false)\n const dragHandle = ref(null)\n const hasScrolled = ref(false)\n\n provide(DatePickerSymbol, {\n hoverDate,\n hoverMonth,\n isDragging,\n dragHandle,\n hasScrolled,\n })\n\n // TODO: This composable should probably not live in DateInput\n const { model, displayDate, viewMode, inputMode, isEqual } = createDateInput(props, !!props.multiple)\n\n return {\n hoverDate,\n hoverMonth,\n isDragging,\n dragHandle,\n hasScrolled,\n model,\n displayDate,\n viewMode,\n inputMode,\n isEqual,\n }\n}\n\nexport function useDatePicker () {\n const datePicker = inject(DatePickerSymbol)\n\n if (!datePicker) throw new Error('foo')\n\n return datePicker\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,yCAExB;AACA,SAASC,MAAM,EAAEC,OAAO,EAAEC,GAAG,QAAQ,KAAK;;AAE1C;;AAYA,OAAO,MAAMC,gBAAiD,GAAGC,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAIlG,OAAO,SAASC,gBAAgBA,CAAEC,KAAgB,EAAE;EAClD,MAAMC,SAAS,GAAGN,GAAG,EAAE;EACvB,MAAMO,UAAU,GAAGP,GAAG,EAAE;EACxB,MAAMQ,UAAU,GAAGR,GAAG,CAAC,KAAK,CAAC;EAC7B,MAAMS,UAAU,GAAGT,GAAG,CAAC,IAAI,CAAC;EAC5B,MAAMU,WAAW,GAAGV,GAAG,CAAC,KAAK,CAAC;EAE9BD,OAAO,CAACE,gBAAgB,EAAE;IACxBK,SAAS;IACTC,UAAU;IACVC,UAAU;IACVC,UAAU;IACVC;EACF,CAAC,CAAC;;EAEF;EACA,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGlB,eAAe,CAACQ,KAAK,EAAE,CAAC,CAACA,KAAK,CAACW,QAAQ,CAAC;EAErG,OAAO;IACLV,SAAS;IACTC,UAAU;IACVC,UAAU;IACVC,UAAU;IACVC,WAAW;IACXC,KAAK;IACLC,WAAW;IACXC,QAAQ;IACRC,SAAS;IACTC;EACF,CAAC;AACH;AAEA,OAAO,SAASE,aAAaA,CAAA,EAAI;EAC/B,MAAMC,UAAU,GAAGpB,MAAM,CAACG,gBAAgB,CAAC;EAE3C,IAAI,CAACiB,UAAU,EAAE,MAAM,IAAIC,KAAK,CAAC,KAAK,CAAC;EAEvC,OAAOD,UAAU;AACnB"}
|
|
@@ -2769,6 +2769,7 @@ declare const VDatePicker: {
|
|
|
2769
2769
|
calendarIcon?: string | undefined;
|
|
2770
2770
|
keyboardIcon?: string | undefined;
|
|
2771
2771
|
inputText?: string | undefined;
|
|
2772
|
+
inputPlaceholder?: string | undefined;
|
|
2772
2773
|
max?: number | undefined;
|
|
2773
2774
|
key?: string | number | symbol | undefined;
|
|
2774
2775
|
location?: Anchor | undefined;
|
|
@@ -2900,6 +2901,7 @@ declare const VDatePicker: {
|
|
|
2900
2901
|
calendarIcon: string;
|
|
2901
2902
|
keyboardIcon: string;
|
|
2902
2903
|
inputText: string;
|
|
2904
|
+
inputPlaceholder: string;
|
|
2903
2905
|
} & {
|
|
2904
2906
|
max?: number | undefined;
|
|
2905
2907
|
location?: Anchor | undefined;
|
|
@@ -2983,6 +2985,7 @@ declare const VDatePicker: {
|
|
|
2983
2985
|
calendarIcon: string;
|
|
2984
2986
|
keyboardIcon: string;
|
|
2985
2987
|
inputText: string;
|
|
2988
|
+
inputPlaceholder: string;
|
|
2986
2989
|
}, {}, string, vue.SlotsType<Partial<{
|
|
2987
2990
|
header: (arg: {
|
|
2988
2991
|
header: string;
|
|
@@ -3035,6 +3038,7 @@ declare const VDatePicker: {
|
|
|
3035
3038
|
calendarIcon: string;
|
|
3036
3039
|
keyboardIcon: string;
|
|
3037
3040
|
inputText: string;
|
|
3041
|
+
inputPlaceholder: string;
|
|
3038
3042
|
} & {
|
|
3039
3043
|
max?: number | undefined;
|
|
3040
3044
|
location?: Anchor | undefined;
|
|
@@ -3113,6 +3117,7 @@ declare const VDatePicker: {
|
|
|
3113
3117
|
calendarIcon: string;
|
|
3114
3118
|
keyboardIcon: string;
|
|
3115
3119
|
inputText: string;
|
|
3120
|
+
inputPlaceholder: string;
|
|
3116
3121
|
} & {
|
|
3117
3122
|
max?: number | undefined;
|
|
3118
3123
|
location?: Anchor | undefined;
|
|
@@ -3196,6 +3201,7 @@ declare const VDatePicker: {
|
|
|
3196
3201
|
calendarIcon: string;
|
|
3197
3202
|
keyboardIcon: string;
|
|
3198
3203
|
inputText: string;
|
|
3204
|
+
inputPlaceholder: string;
|
|
3199
3205
|
}, {}, string, vue.SlotsType<Partial<{
|
|
3200
3206
|
header: (arg: {
|
|
3201
3207
|
header: string;
|
|
@@ -3306,6 +3312,10 @@ declare const VDatePicker: {
|
|
|
3306
3312
|
type: StringConstructor;
|
|
3307
3313
|
default: string;
|
|
3308
3314
|
};
|
|
3315
|
+
inputPlaceholder: {
|
|
3316
|
+
type: StringConstructor;
|
|
3317
|
+
default: string;
|
|
3318
|
+
};
|
|
3309
3319
|
header: {
|
|
3310
3320
|
type: StringConstructor;
|
|
3311
3321
|
default: string;
|
|
@@ -3413,6 +3423,10 @@ declare const VDatePicker: {
|
|
|
3413
3423
|
type: StringConstructor;
|
|
3414
3424
|
default: string;
|
|
3415
3425
|
};
|
|
3426
|
+
inputPlaceholder: {
|
|
3427
|
+
type: StringConstructor;
|
|
3428
|
+
default: string;
|
|
3429
|
+
};
|
|
3416
3430
|
header: {
|
|
3417
3431
|
type: StringConstructor;
|
|
3418
3432
|
default: string;
|