vuetify 3.3.2 → 3.3.4
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/_component-variables-labs.sass +2 -0
- package/dist/json/attributes.json +460 -20
- package/dist/json/importMap-labs.json +32 -0
- package/dist/json/importMap.json +24 -24
- package/dist/json/tags.json +150 -0
- package/dist/json/web-types.json +1639 -40
- package/dist/vuetify-labs.css +499 -230
- package/dist/vuetify-labs.d.ts +5421 -326
- package/dist/vuetify-labs.esm.js +2124 -1098
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +2123 -1097
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +219 -210
- package/dist/vuetify.d.ts +314 -165
- package/dist/vuetify.esm.js +330 -179
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +329 -178
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +792 -784
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +34 -27
- package/lib/blueprints/md1.d.mts +34 -27
- package/lib/blueprints/md2.d.mts +34 -27
- package/lib/blueprints/md3.d.mts +34 -27
- package/lib/components/VAppBar/VAppBar.mjs +3 -10
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +24 -8
- package/lib/components/VAutocomplete/VAutocomplete.css +4 -22
- package/lib/components/VAutocomplete/VAutocomplete.mjs +17 -12
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +6 -17
- package/lib/components/VBreadcrumbs/index.d.mts +7 -7
- package/lib/components/VBtn/VBtn.css +11 -11
- package/lib/components/VBtn/VBtn.mjs +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +1 -1
- package/lib/components/VBtn/_mixins.scss +1 -1
- package/lib/components/VBtn/index.d.mts +24 -8
- package/lib/components/VCard/VCard.mjs +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +44 -28
- package/lib/components/VCheckbox/VCheckbox.mjs +8 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +7 -1
- package/lib/components/VChip/VChip.css +67 -67
- package/lib/components/VChip/VChip.mjs +2 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/_variables.scss +1 -1
- package/lib/components/VChip/index.d.mts +48 -32
- package/lib/components/VCombobox/VCombobox.css +4 -22
- package/lib/components/VCombobox/VCombobox.mjs +16 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +6 -17
- package/lib/components/VCombobox/_variables.scss +3 -3
- package/lib/components/VCounter/index.d.mts +8 -8
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +56 -24
- package/lib/components/VField/VField.css +72 -8
- package/lib/components/VField/VField.sass +10 -5
- package/lib/components/VField/_mixins.sass +7 -0
- package/lib/components/VFileInput/VFileInput.css +2 -17
- package/lib/components/VFileInput/VFileInput.mjs +0 -2
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +2 -11
- package/lib/components/VFileInput/_variables.scss +3 -3
- package/lib/components/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +14 -1
- package/lib/components/VInput/VInput.sass +6 -0
- package/lib/components/VInput/_variables.scss +5 -1
- package/lib/components/VList/VListItem.mjs +2 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +24 -8
- package/lib/components/VMenu/VMenu.mjs +29 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +7 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +29 -35
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +2 -20
- package/lib/components/VSelect/VSelect.mjs +16 -11
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +2 -12
- package/lib/components/VSelect/_variables.scss +3 -3
- package/lib/components/VSlider/VSliderThumb.mjs +2 -2
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VTabs/VTab.mjs +2 -2
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +1 -0
- package/lib/components/VTabs/VTabs.sass +1 -0
- package/lib/components/VTabs/index.d.mts +24 -8
- package/lib/components/VTextarea/VTextarea.css +7 -7
- package/lib/components/VTextarea/VTextarea.sass +9 -9
- package/lib/components/VTimePicker/VTimePickerTitle.mjs +1 -1
- package/lib/components/index.d.mts +266 -132
- package/lib/components/index.mjs +1 -2
- package/lib/components/index.mjs.map +1 -1
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/list-items.mjs +5 -2
- package/lib/composables/list-items.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +1 -1
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/fa-svg.d.mts +1 -0
- package/lib/iconsets/fa.d.mts +1 -0
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.mts +1 -0
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.mts +1 -0
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.mts +1 -0
- package/lib/iconsets/mdi-svg.mjs +36 -35
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.mts +1 -0
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +48 -33
- package/lib/labs/VDataTable/VDataTable.css +4 -14
- package/lib/labs/VDataTable/VDataTable.sass +6 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +16 -12
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/headers.mjs +2 -5
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +3 -2
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/labs/VDateInput/VDateInput.mjs +127 -0
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -0
- package/lib/labs/VDateInput/VDateInput.sass +11 -0
- package/lib/labs/VDateInput/VDateRangeInput.mjs +223 -0
- package/lib/labs/VDateInput/VDateRangeInput.mjs.map +1 -0
- package/lib/labs/VDateInput/VDateRangeInput.sass +10 -0
- package/lib/labs/VDateInput/composables.mjs +59 -0
- package/lib/labs/VDateInput/composables.mjs.map +1 -0
- package/lib/labs/VDateInput/index.d.mts +1352 -0
- package/lib/labs/VDateInput/index.mjs +3 -0
- package/lib/labs/VDateInput/index.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDateCard.css +33 -0
- package/lib/labs/VDatePicker/VDateCard.mjs +112 -0
- package/lib/labs/VDatePicker/VDateCard.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDateCard.sass +32 -0
- package/lib/labs/VDatePicker/VDatePicker.css +23 -0
- package/lib/labs/VDatePicker/VDatePicker.mjs +172 -0
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDatePicker.sass +23 -0
- package/lib/labs/VDatePicker/VDatePickerControls.css +15 -0
- package/lib/labs/VDatePicker/VDatePickerControls.mjs +80 -0
- package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDatePickerControls.sass +15 -0
- package/lib/labs/VDatePicker/VDatePickerHeader.css +54 -0
- package/lib/labs/VDatePicker/VDatePickerHeader.mjs +75 -0
- package/lib/labs/VDatePicker/VDatePickerHeader.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDatePickerHeader.sass +51 -0
- package/lib/labs/VDatePicker/VDatePickerInput.sass +17 -0
- package/lib/labs/VDatePicker/VDatePickerMonth.css +77 -0
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs +286 -0
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDatePickerMonth.sass +69 -0
- package/lib/{components → labs}/VDatePicker/VDatePickerTitle.mjs +1 -1
- package/lib/labs/VDatePicker/VDatePickerTitle.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDatePickerYears.css +18 -0
- package/lib/labs/VDatePicker/VDatePickerYears.mjs +64 -0
- package/lib/labs/VDatePicker/VDatePickerYears.mjs.map +1 -0
- package/lib/labs/VDatePicker/VDatePickerYears.sass +16 -0
- package/lib/labs/VDatePicker/composables.mjs +33 -0
- package/lib/labs/VDatePicker/composables.mjs.map +1 -0
- package/lib/labs/VDatePicker/index.d.mts +4430 -0
- package/lib/labs/VDatePicker/index.mjs +7 -0
- package/lib/labs/VDatePicker/index.mjs.map +1 -0
- package/lib/labs/VDatePicker/mixins/date-picker-table.mjs.map +1 -0
- package/lib/labs/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -0
- package/lib/labs/VDatePicker/util/eventHelpers.mjs.map +1 -0
- package/lib/labs/VDatePicker/util/index.mjs.map +1 -0
- package/lib/labs/VDatePicker/util/isDateAllowed.mjs.map +1 -0
- package/lib/labs/VDatePicker/util/monthChange.mjs.map +1 -0
- package/lib/labs/VDatePicker/util/pad.mjs.map +1 -0
- package/lib/labs/VDatePicker/util/sanitizeDateString.mjs.map +1 -0
- package/lib/labs/VDatePicker/utils.mjs +69 -0
- package/lib/labs/VDatePicker/utils.mjs.map +1 -0
- package/lib/labs/VDateRangePicker/VDateRangeCard.mjs +87 -0
- package/lib/labs/VDateRangePicker/VDateRangeCard.mjs.map +1 -0
- package/lib/labs/VDateRangePicker/VDateRangeCard.sass +33 -0
- package/lib/labs/VDateRangePicker/VDateRangePicker.mjs +131 -0
- package/lib/labs/VDateRangePicker/VDateRangePicker.mjs.map +1 -0
- package/lib/labs/VDateRangePicker/VDateRangePicker.sass +21 -0
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +103 -0
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -0
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.sass +39 -0
- package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs +61 -0
- package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs.map +1 -0
- package/lib/labs/VDateRangePicker/VDateRangePickerMonth.sass +12 -0
- package/lib/labs/VDateRangePicker/index.d.mts +1065 -0
- package/lib/labs/VDateRangePicker/index.mjs +3 -0
- package/lib/labs/VDateRangePicker/index.mjs.map +1 -0
- package/lib/labs/VPicker/VPicker.css +57 -0
- package/lib/labs/VPicker/VPicker.mjs +47 -0
- package/lib/labs/VPicker/VPicker.mjs.map +1 -0
- package/lib/labs/VPicker/VPicker.sass +53 -0
- package/lib/labs/VPicker/VPickerTitle.mjs +4 -0
- package/lib/labs/VPicker/VPickerTitle.mjs.map +1 -0
- package/lib/labs/VPicker/index.d.mts +541 -0
- package/lib/labs/VPicker/index.mjs +3 -0
- package/lib/labs/VPicker/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +5136 -198
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/DateAdapter.mjs.map +1 -1
- package/lib/labs/date/adapters/vuetify.d.mts +28 -25
- package/lib/labs/date/adapters/vuetify.mjs +65 -75
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/labs/date/date.mjs +82 -11
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/date/index.d.mts +31 -30
- package/lib/locale/af.mjs +14 -5
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +14 -5
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +14 -5
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +14 -5
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +14 -5
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +14 -5
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +14 -5
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +14 -5
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +14 -5
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +14 -5
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +14 -5
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +14 -5
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +14 -5
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +14 -5
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +14 -5
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +14 -5
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +14 -5
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +14 -5
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +14 -5
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +14 -5
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +588 -210
- package/lib/locale/it.mjs +14 -5
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +14 -5
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +14 -5
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +14 -5
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +14 -5
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +14 -5
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +14 -5
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +14 -5
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +14 -5
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +14 -5
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +14 -5
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +14 -5
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +14 -5
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +14 -5
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +14 -5
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +14 -5
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +14 -5
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +14 -5
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +14 -5
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +14 -5
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +14 -5
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +14 -5
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/util/bindProps.mjs +49 -0
- package/lib/util/bindProps.mjs.map +1 -0
- package/lib/util/dateTimeUtils.mjs +68 -0
- package/lib/util/dateTimeUtils.mjs.map +1 -1
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/package.json +5 -2
- package/lib/components/VDatePicker/VDatePicker.mjs +0 -475
- package/lib/components/VDatePicker/VDatePicker.mjs.map +0 -1
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs +0 -120
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +0 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs +0 -136
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +0 -1
- package/lib/components/VDatePicker/VDatePickerHeader.sass +0 -46
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +0 -48
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +0 -1
- package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs +0 -84
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +0 -1
- package/lib/components/VDatePicker/VDatePickerYears.sass +0 -30
- package/lib/components/VDatePicker/index.mjs +0 -18
- package/lib/components/VDatePicker/index.mjs.map +0 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +0 -1
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
- package/lib/components/VDatePicker/util/index.mjs.map +0 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
- package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
- package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
- package/lib/components/VPicker/VPicker.mjs +0 -86
- package/lib/components/VPicker/VPicker.mjs.map +0 -1
- package/lib/components/VPicker/VPicker.sass +0 -94
- package/lib/components/VPicker/index.mjs +0 -4
- package/lib/components/VPicker/index.mjs.map +0 -1
- /package/lib/{components → labs}/VDatePicker/VDatePickerTable.sass +0 -0
- /package/lib/{components → labs}/VDatePicker/VDatePickerTitle.sass +0 -0
- /package/lib/{components → labs}/VDatePicker/_variables.scss +0 -0
- /package/lib/{components → labs}/VDatePicker/mixins/date-picker-table.mjs +0 -0
- /package/lib/{components → labs}/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -0
- /package/lib/{components → labs}/VDatePicker/util/eventHelpers.mjs +0 -0
- /package/lib/{components → labs}/VDatePicker/util/index.mjs +0 -0
- /package/lib/{components → labs}/VDatePicker/util/isDateAllowed.mjs +0 -0
- /package/lib/{components → labs}/VDatePicker/util/monthChange.mjs +0 -0
- /package/lib/{components → labs}/VDatePicker/util/pad.mjs +0 -0
- /package/lib/{components → labs}/VDatePicker/util/sanitizeDateString.mjs +0 -0
- /package/lib/{components → labs}/VPicker/_variables.scss +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { VDateCard } from "./VDateCard.mjs";
|
|
2
|
+
export { VDatePicker } from "./VDatePicker.mjs";
|
|
3
|
+
export { VDatePickerControls } from "./VDatePickerControls.mjs";
|
|
4
|
+
export { VDatePickerHeader } from "./VDatePickerHeader.mjs";
|
|
5
|
+
export { VDatePickerMonth } from "./VDatePickerMonth.mjs";
|
|
6
|
+
export { VDatePickerYears } from "./VDatePickerYears.mjs";
|
|
7
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["VDateCard","VDatePicker","VDatePickerControls","VDatePickerHeader","VDatePickerMonth","VDatePickerYears"],"sources":["../../../src/labs/VDatePicker/index.ts"],"sourcesContent":["export { VDateCard } from './VDateCard'\nexport { VDatePicker } from './VDatePicker'\nexport { VDatePickerControls } from './VDatePickerControls'\nexport { VDatePickerHeader } from './VDatePickerHeader'\nexport { VDatePickerMonth } from './VDatePickerMonth'\nexport { VDatePickerYears } from './VDatePickerYears'\n"],"mappings":"SAASA,SAAS;AAAA,SACTC,WAAW;AAAA,SACXC,mBAAmB;AAAA,SACnBC,iBAAiB;AAAA,SACjBC,gBAAgB;AAAA,SAChBC,gBAAgB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-picker-table.mjs","names":["Touch","Colorable","Localable","Themeable","createItemTypeNativeListeners","sanitizeDateString","isDateAllowed","mergeListeners","mixins","throttle","extend","directives","props","allowedDates","Function","current","String","disabled","Boolean","format","events","type","Array","Object","default","eventColor","min","max","range","readonly","scrollable","tableDate","required","value","data","isReversing","wheelThrottle","computed","computedTransition","$vuetify","rtl","displayedMonth","Number","split","displayedYear","watch","newVal","oldVal","mounted","wheel","methods","genButtonClasses","isAllowed","isFloating","isSelected","isCurrent","isFirst","isLast","themeClasses","genButtonEvents","mouseEventType","undefined","click","$emit","genButton","formatter","isOtherMonth","arguments","length","setColor","setBackgroundColor","setTextColor","color","isArray","$createElement","staticClass","class","attrs","domProps","on","genEvents","getEventColors","date","arrayize","v","eventData","eventColors","includes","filter","map","isValidScroll","calculateTableDate","sanitizeType","e","deltaY","touch","genTable","children","transition","name","key","touchDirective","left","offsetX","right","preventDefault","from","to","sort","indexOf"],"sources":["../../../../src/labs/VDatePicker/mixins/date-picker-table.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n current: String,\n disabled: Boolean,\n format: Function as PropType<DatePickerFormatter | undefined>,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType<string | string[]>,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (\n isAllowed: boolean,\n isFloating: boolean,\n isSelected: boolean,\n isCurrent: boolean,\n isFirst: boolean,\n isLast: boolean,\n ) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n 'v-date-picker--first-in-range': isFirst,\n 'v-date-picker--last-in-range': isLast,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n let isFirst = false\n let isLast = false\n if (this.range && !!this.value && Array.isArray(this.value)) {\n isFirst = value === this.value[0]\n isLast = value === this.value[this.value.length - 1]\n }\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(\n isAllowed && !isOtherMonth,\n isFloating,\n isSelected,\n isCurrent,\n isFirst,\n isLast,\n ),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createNativeLocaleFormatter.mjs","names":["pad","createNativeLocaleFormatter","locale","options","substrOptions","arguments","length","undefined","start","makeIsoString","dateString","year","month","date","trim","split","join","intlFormatter","Intl","DateTimeFormat","format","Date","e","substr"],"sources":["../../../../src/labs/VDatePicker/util/createNativeLocaleFormatter.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport pad from './pad'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface SubstrOptions {\n start?: number\n length: number\n}\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions\n): DatePickerFormatter | undefined\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions\n): DatePickerFormatter\n\nfunction createNativeLocaleFormatter (\n locale: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions = { start: 0, length: 0 }\n): DatePickerFormatter | undefined {\n const makeIsoString = (dateString: string) => {\n const [year, month, date] = dateString.trim().split(' ')[0].split('-')\n return [pad(year, 4), pad(month || 1), pad(date || 1)].join('-')\n }\n\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, options)\n return (dateString: string) => intlFormatter.format(new Date(`${makeIsoString(dateString)}T00:00:00+00:00`))\n } catch (e) {\n return (substrOptions.start || substrOptions.length)\n ? (dateString: string) => makeIsoString(dateString).substr(substrOptions.start || 0, substrOptions.length)\n : undefined\n }\n}\n\nexport default createNativeLocaleFormatter\n"],"mappings":"AAAA;AACA;AAAA,OAEOA,GAAG;AAmBV,SAASC,2BAA2BA,CAClCC,MAA0B,EAC1BC,OAAmC,EAEF;EAAA,IADjCC,aAA4B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IAAEG,KAAK,EAAE,CAAC;IAAEF,MAAM,EAAE;EAAE,CAAC;EAEtD,MAAMG,aAAa,GAAIC,UAAkB,IAAK;IAC5C,MAAM,CAACC,IAAI,EAAEC,KAAK,EAAEC,IAAI,CAAC,GAAGH,UAAU,CAACI,IAAI,EAAE,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC;IACtE,OAAO,CAACf,GAAG,CAACW,IAAI,EAAE,CAAC,CAAC,EAAEX,GAAG,CAACY,KAAK,IAAI,CAAC,CAAC,EAAEZ,GAAG,CAACa,IAAI,IAAI,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;EAClE,CAAC;EAED,IAAI;IACF,MAAMC,aAAa,GAAG,IAAIC,IAAI,CAACC,cAAc,CAACjB,MAAM,IAAIK,SAAS,EAAEJ,OAAO,CAAC;IAC3E,OAAQO,UAAkB,IAAKO,aAAa,CAACG,MAAM,CAAC,IAAIC,IAAI,CAAE,GAAEZ,aAAa,CAACC,UAAU,CAAE,iBAAgB,CAAC,CAAC;EAC9G,CAAC,CAAC,OAAOY,CAAC,EAAE;IACV,OAAQlB,aAAa,CAACI,KAAK,IAAIJ,aAAa,CAACE,MAAM,GAC9CI,UAAkB,IAAKD,aAAa,CAACC,UAAU,CAAC,CAACa,MAAM,CAACnB,aAAa,CAACI,KAAK,IAAI,CAAC,EAAEJ,aAAa,CAACE,MAAM,CAAC,GACxGC,SAAS;EACf;AACF;AAEA,eAAeN,2BAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHelpers.mjs","names":["createItemTypeNativeListeners","instance","itemTypeSuffix","value","Object","keys","$listeners","reduce","on","eventName","endsWith","slice","length","event","$emit","createItemTypeListeners"],"sources":["../../../../src/labs/VDatePicker/util/eventHelpers.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// import Vue from 'vue'\n\nexport function createItemTypeNativeListeners (instance: /*Vue*/any, itemTypeSuffix: string, value: any) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName.slice(0, -itemTypeSuffix.length)] = (event: Event) => instance.$emit(eventName, value, event)\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n\nexport function createItemTypeListeners (instance: /*Vue*/any, itemTypeSuffix: string) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName] = instance.$listeners[eventName]\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n"],"mappings":"AAAA;AACA;;AAEA;;AAEA,OAAO,SAASA,6BAA6BA,CAAEC,QAAoB,EAAEC,cAAsB,EAAEC,KAAU,EAAE;EACvG,OAAOC,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAACK,UAAU,CAAC,CAACC,MAAM,CAAC,CAACC,EAAE,EAAEC,SAAS,KAAK;IAChE,IAAIA,SAAS,CAACC,QAAQ,CAACR,cAAc,CAAC,EAAE;MACtCM,EAAE,CAACC,SAAS,CAACE,KAAK,CAAC,CAAC,EAAE,CAACT,cAAc,CAACU,MAAM,CAAC,CAAC,GAAIC,KAAY,IAAKZ,QAAQ,CAACa,KAAK,CAACL,SAAS,EAAEN,KAAK,EAAEU,KAAK,CAAC;IAC5G;IAEA,OAAOL,EAAE;EACX,CAAC,EAAE,CAAC,CAAC,CAA+B;AACtC;AAEA,OAAO,SAASO,uBAAuBA,CAAEd,QAAoB,EAAEC,cAAsB,EAAE;EACrF,OAAOE,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAACK,UAAU,CAAC,CAACC,MAAM,CAAC,CAACC,EAAE,EAAEC,SAAS,KAAK;IAChE,IAAIA,SAAS,CAACC,QAAQ,CAACR,cAAc,CAAC,EAAE;MACtCM,EAAE,CAACC,SAAS,CAAC,GAAGR,QAAQ,CAACK,UAAU,CAACG,SAAS,CAAC;IAChD;IAEA,OAAOD,EAAE;EACX,CAAC,EAAE,CAAC,CAAC,CAA+B;AACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["createItemTypeListeners","createItemTypeNativeListeners","createNativeLocaleFormatter","monthChange","sanitizeDateString","pad"],"sources":["../../../../src/labs/VDatePicker/util/index.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n} from './eventHelpers'\nimport createNativeLocaleFormatter from './createNativeLocaleFormatter'\nimport monthChange from './monthChange'\nimport sanitizeDateString from './sanitizeDateString'\nimport pad from './pad'\n\nexport {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n monthChange,\n sanitizeDateString,\n pad,\n}\n"],"mappings":"AAAA;AACA;AAAA,SAGEA,uBAAuB,EACvBC,6BAA6B;AAAA,OAExBC,2BAA2B;AAAA,OAC3BC,WAAW;AAAA,OACXC,kBAAkB;AAAA,OAClBC,GAAG;AAEV,SACEL,uBAAuB,EACvBC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,WAAW,EACXC,kBAAkB,EAClBC,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isDateAllowed.mjs","names":["isDateAllowed","date","min","max","allowedFn","substr"],"sources":["../../../../src/labs/VDatePicker/util/isDateAllowed.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { DatePickerAllowedDatesFunction } from 'vuetify/types'\n\nexport default function isDateAllowed (date: string, min: string, max: string, allowedFn: DatePickerAllowedDatesFunction | undefined) {\n return (!allowedFn || allowedFn(date)) &&\n (!min || date >= min.substr(0, 10)) &&\n (!max || date <= max)\n}\n"],"mappings":"AAAA;AACA;;AAIA,eAAe,SAASA,aAAaA,CAAEC,IAAY,EAAEC,GAAW,EAAEC,GAAW,EAAEC,SAAqD,EAAE;EACpI,OAAO,CAAC,CAACA,SAAS,IAAIA,SAAS,CAACH,IAAI,CAAC,MAClC,CAACC,GAAG,IAAID,IAAI,IAAIC,GAAG,CAACG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAClC,CAACF,GAAG,IAAIF,IAAI,IAAIE,GAAG,CAAC;AACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monthChange.mjs","names":["pad","value","sign","year","month","split","map","Number"],"sources":["../../../../src/labs/VDatePicker/util/monthChange.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport pad from './pad'\n\n/**\n * @param {String} value YYYY-MM format\n * @param {Number} sign -1 or +1\n */\nexport default (value: string, sign: number) => {\n const [year, month] = value.split('-').map(Number)\n\n if (month + sign === 0) {\n return `${year - 1}-12`\n } else if (month + sign === 13) {\n return `${year + 1}-01`\n } else {\n return `${year}-${pad(month + sign)}`\n }\n}\n"],"mappings":"AAAA;AACA;AAAA,OAEOA,GAAG;AAEV;AACA;AACA;AACA;AACA,gBAAe,CAACC,KAAa,EAAEC,IAAY,KAAK;EAC9C,MAAM,CAACC,IAAI,EAAEC,KAAK,CAAC,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,MAAM,CAAC;EAElD,IAAIH,KAAK,GAAGF,IAAI,KAAK,CAAC,EAAE;IACtB,OAAQ,GAAEC,IAAI,GAAG,CAAE,KAAI;EACzB,CAAC,MAAM,IAAIC,KAAK,GAAGF,IAAI,KAAK,EAAE,EAAE;IAC9B,OAAQ,GAAEC,IAAI,GAAG,CAAE,KAAI;EACzB,CAAC,MAAM;IACL,OAAQ,GAAEA,IAAK,IAAGH,GAAG,CAACI,KAAK,GAAGF,IAAI,CAAE,EAAC;EACvC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pad.mjs","names":["padStart","string","targetLength","padString","String","length","repeat","slice","n","arguments","undefined"],"sources":["../../../../src/labs/VDatePicker/util/pad.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nconst padStart = (string: number | string, targetLength: number, padString: string) => {\n targetLength = targetLength >> 0\n string = String(string)\n padString = String(padString)\n if (string.length > targetLength) {\n return String(string)\n }\n\n targetLength = targetLength - string.length\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length)\n }\n return padString.slice(0, targetLength) + String(string)\n}\n\nexport default (n: string | number, length = 2) => padStart(n, length, '0')\n"],"mappings":"AAAA;AACA;;AAEA,MAAMA,QAAQ,GAAGA,CAACC,MAAuB,EAAEC,YAAoB,EAAEC,SAAiB,KAAK;EACrFD,YAAY,GAAGA,YAAY,IAAI,CAAC;EAChCD,MAAM,GAAGG,MAAM,CAACH,MAAM,CAAC;EACvBE,SAAS,GAAGC,MAAM,CAACD,SAAS,CAAC;EAC7B,IAAIF,MAAM,CAACI,MAAM,GAAGH,YAAY,EAAE;IAChC,OAAOE,MAAM,CAACH,MAAM,CAAC;EACvB;EAEAC,YAAY,GAAGA,YAAY,GAAGD,MAAM,CAACI,MAAM;EAC3C,IAAIH,YAAY,GAAGC,SAAS,CAACE,MAAM,EAAE;IACnCF,SAAS,IAAIA,SAAS,CAACG,MAAM,CAACJ,YAAY,GAAGC,SAAS,CAACE,MAAM,CAAC;EAChE;EACA,OAAOF,SAAS,CAACI,KAAK,CAAC,CAAC,EAAEL,YAAY,CAAC,GAAGE,MAAM,CAACH,MAAM,CAAC;AAC1D,CAAC;AAED,gBAAe,UAACO,CAAkB;EAAA,IAAEH,MAAM,GAAAI,SAAA,CAAAJ,MAAA,QAAAI,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC;EAAA,OAAKT,QAAQ,CAACQ,CAAC,EAAEH,MAAM,EAAE,GAAG,CAAC;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizeDateString.mjs","names":["pad","dateString","type","year","month","date","split","substr"],"sources":["../../../../src/labs/VDatePicker/util/sanitizeDateString.ts"],"sourcesContent":["// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nimport pad from './pad'\n\nexport default (dateString: string, type: 'date' | 'month' | 'year'): string => {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n"],"mappings":"AAAA;AACA;AAAA,OACOA,GAAG;AAEV,gBAAe,CAACC,UAAkB,EAAEC,IAA+B,KAAa;EAC9E,MAAM,CAACC,IAAI,EAAEC,KAAK,GAAG,CAAC,EAAEC,IAAI,GAAG,CAAC,CAAC,GAAGJ,UAAU,CAACK,KAAK,CAAC,GAAG,CAAC;EACzD,OAAQ,GAAEH,IAAK,IAAGH,GAAG,CAACI,KAAK,CAAE,IAAGJ,GAAG,CAACK,IAAI,CAAE,EAAC,CAACE,MAAM,CAAC,CAAC,EAAE;IAAEF,IAAI,EAAE,EAAE;IAAED,KAAK,EAAE,CAAC;IAAED,IAAI,EAAE;EAAE,CAAC,CAACD,IAAI,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Utilities
|
|
2
|
+
import { createRange, padStart } from "../../util/index.mjs";
|
|
3
|
+
export function getFirstWeekdayOfMonth(year, month) {
|
|
4
|
+
return new Date(`${year}-${month}-01`).getDay();
|
|
5
|
+
}
|
|
6
|
+
function getNumberOfDaysInMonth(year, month) {
|
|
7
|
+
return new Date(year, month, 0).getDate();
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// function getMonthName (month: number, locale = 'en-US') {
|
|
11
|
+
// const date = new Date(`2022-${month}-01`)
|
|
12
|
+
// return date.toLocaleString(locale, { month: 'long' })
|
|
13
|
+
// }
|
|
14
|
+
|
|
15
|
+
export function changeMonth(year, month, change) {
|
|
16
|
+
if (change < 0 && month + change < 1) {
|
|
17
|
+
return [year - 1, 12 + (month + change)];
|
|
18
|
+
} else if (change > 0 && month + change > 12) {
|
|
19
|
+
return [year + 1, (month + change) % 12];
|
|
20
|
+
} else {
|
|
21
|
+
return [year, month + change];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function getDate(year, month, day) {
|
|
25
|
+
return `${year}-${padStart(String(month), 2, '0')}-${padStart(String(day), 2, '0')}`;
|
|
26
|
+
}
|
|
27
|
+
export function addDays(date, days) {
|
|
28
|
+
const d = new Date(date);
|
|
29
|
+
d.setDate(d.getDate() + days);
|
|
30
|
+
return getDate(d.getFullYear(), d.getMonth() + 1, d.getDate());
|
|
31
|
+
}
|
|
32
|
+
export function parseDate(date) {
|
|
33
|
+
const [year, month, day] = date.split('-').map(Number);
|
|
34
|
+
return [year, month, day];
|
|
35
|
+
}
|
|
36
|
+
function getMondayOfFirstWeekOfYear(year) {
|
|
37
|
+
const januaryFirst = new Date(year, 0, 1);
|
|
38
|
+
const mondayOfFirstWeek = new Date(januaryFirst);
|
|
39
|
+
mondayOfFirstWeek.setDate(mondayOfFirstWeek.getDate() + (11 - januaryFirst.getDay()) % 7 - 3);
|
|
40
|
+
return mondayOfFirstWeek;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
44
|
+
export function getWeek(date) {
|
|
45
|
+
let year = date.getFullYear();
|
|
46
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
47
|
+
if (date < d1w1) {
|
|
48
|
+
year = year - 1;
|
|
49
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
50
|
+
} else {
|
|
51
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
|
52
|
+
if (date >= tv) {
|
|
53
|
+
year = year + 1;
|
|
54
|
+
d1w1 = tv;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
58
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
59
|
+
return Math.floor(diffDays / 7) + 1;
|
|
60
|
+
}
|
|
61
|
+
export function getDaysInMonth(year, month) {
|
|
62
|
+
return createRange(getNumberOfDaysInMonth(year, month), 1).map(day => ({
|
|
63
|
+
year,
|
|
64
|
+
month,
|
|
65
|
+
day,
|
|
66
|
+
date: getDate(year, month, day)
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":["createRange","padStart","getFirstWeekdayOfMonth","year","month","Date","getDay","getNumberOfDaysInMonth","getDate","changeMonth","change","day","String","addDays","date","days","d","setDate","getFullYear","getMonth","parseDate","split","map","Number","getMondayOfFirstWeekOfYear","januaryFirst","mondayOfFirstWeek","getWeek","d1w1","tv","diffTime","Math","abs","getTime","diffDays","ceil","floor","getDaysInMonth"],"sources":["../../../src/labs/VDatePicker/utils.ts"],"sourcesContent":["// Utilities\nimport { createRange, padStart } from '@/util'\n\nexport function getFirstWeekdayOfMonth (year: number, month: number) {\n return new Date(`${year}-${month}-01`).getDay()\n}\n\nfunction getNumberOfDaysInMonth (year: number, month: number) {\n return new Date(year, month, 0).getDate()\n}\n\n// function getMonthName (month: number, locale = 'en-US') {\n// const date = new Date(`2022-${month}-01`)\n// return date.toLocaleString(locale, { month: 'long' })\n// }\n\nexport function changeMonth (year: number, month: number, change: number) {\n if (change < 0 && month + change < 1) {\n return [year - 1, 12 + (month + change)]\n } else if (change > 0 && month + change > 12) {\n return [year + 1, (month + change) % 12]\n } else {\n return [year, month + change]\n }\n}\n\nexport function getDate (year: number, month: number, day: number) {\n return `${year}-${padStart(String(month), 2, '0')}-${padStart(String(day), 2, '0')}`\n}\n\nexport function addDays (date: string, days: number) {\n const d = new Date(date)\n\n d.setDate(d.getDate() + days)\n\n return getDate(d.getFullYear(), d.getMonth() + 1, d.getDate())\n}\n\nexport function parseDate (date: string): [number, number, number] {\n const [year, month, day] = date.split('-').map(Number)\n\n return [year, month, day]\n}\n\nfunction getMondayOfFirstWeekOfYear (year: number) {\n const januaryFirst = new Date(year, 0, 1)\n const mondayOfFirstWeek = new Date(januaryFirst)\n\n mondayOfFirstWeek.setDate(mondayOfFirstWeek.getDate() + ((11 - januaryFirst.getDay()) % 7) - 3)\n\n return mondayOfFirstWeek\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek (date: Date) {\n let year = date.getFullYear()\n let d1w1 = getMondayOfFirstWeekOfYear(year)\n\n if (date < d1w1) {\n year = year - 1\n d1w1 = getMondayOfFirstWeekOfYear(year)\n } else {\n const tv = getMondayOfFirstWeekOfYear(year + 1)\n if (date >= tv) {\n year = year + 1\n d1w1 = tv\n }\n }\n\n const diffTime = Math.abs(date.getTime() - d1w1.getTime())\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n\n return Math.floor(diffDays / 7) + 1\n}\n\nexport function getDaysInMonth (year: number, month: number) {\n return createRange(getNumberOfDaysInMonth(year, month), 1).map(day => ({\n year,\n month,\n day,\n date: getDate(year, month, day),\n }))\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VDateRangeCard.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { makeVDatePickerControlsProps, VDatePickerControls } from "../VDatePicker/VDatePickerControls.mjs";
|
|
7
|
+
import { makeVDatePickerMonthProps, VDatePickerMonth } from "../VDatePicker/VDatePickerMonth.mjs";
|
|
8
|
+
import { makeVDatePickerYearsProps, VDatePickerYears } from "../VDatePicker/VDatePickerYears.mjs";
|
|
9
|
+
import { VCard } from "../../components/VCard/index.mjs"; // Composables
|
|
10
|
+
import { createDatePicker } from "../VDatePicker/composables.mjs";
|
|
11
|
+
import { makeTransitionProps } from "../../composables/transition.mjs"; // Utilities
|
|
12
|
+
import { ref } from 'vue';
|
|
13
|
+
import { defineComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
14
|
+
import { dateEmits, makeDateProps } from "../VDateInput/composables.mjs";
|
|
15
|
+
import { useDate } from "../date/index.mjs";
|
|
16
|
+
export const makeVDateRangeCardProps = propsFactory({
|
|
17
|
+
...makeDateProps(),
|
|
18
|
+
...makeVDatePickerControlsProps(),
|
|
19
|
+
...makeVDatePickerMonthProps(),
|
|
20
|
+
...makeVDatePickerYearsProps(),
|
|
21
|
+
...makeTransitionProps({
|
|
22
|
+
transition: 'fade'
|
|
23
|
+
})
|
|
24
|
+
}, 'VDateRangeCard');
|
|
25
|
+
export const VDateRangeCard = defineComponent({
|
|
26
|
+
name: 'VDateRangeCard',
|
|
27
|
+
props: makeVDateRangeCardProps(),
|
|
28
|
+
emits: {
|
|
29
|
+
...dateEmits
|
|
30
|
+
},
|
|
31
|
+
setup(props, _ref) {
|
|
32
|
+
let {
|
|
33
|
+
emit
|
|
34
|
+
} = _ref;
|
|
35
|
+
const adapter = useDate();
|
|
36
|
+
createDatePicker(props);
|
|
37
|
+
const hoverDate = ref(null);
|
|
38
|
+
useRender(() => {
|
|
39
|
+
const [cardProps] = VCard.filterProps(props);
|
|
40
|
+
const [datePickerControlsProps] = VDatePickerControls.filterProps(props);
|
|
41
|
+
const [datePickerMonthProps] = VDatePickerMonth.filterProps(props);
|
|
42
|
+
const [datePickerYearsProps] = VDatePickerYears.filterProps(props);
|
|
43
|
+
return _createVNode(VCard, _mergeProps(cardProps, {
|
|
44
|
+
"class": "v-date-range-card"
|
|
45
|
+
}), {
|
|
46
|
+
default: () => [props.viewMode === 'month' ? _createVNode(_Fragment, null, [_createVNode("div", {
|
|
47
|
+
"class": "v-date-range-card__start"
|
|
48
|
+
}, [_createVNode(VDatePickerControls, _mergeProps(datePickerControlsProps, {
|
|
49
|
+
"onUpdate:displayDate": displayDate => emit('update:displayDate', displayDate),
|
|
50
|
+
"onUpdate:viewMode": viewMode => emit('update:viewMode', viewMode),
|
|
51
|
+
"range": "start"
|
|
52
|
+
}), null), _createVNode(VDatePickerMonth, _mergeProps(datePickerMonthProps, {
|
|
53
|
+
"onUpdate:modelValue": modelValue => emit('update:modelValue', modelValue),
|
|
54
|
+
"hoverDate": hoverDate.value,
|
|
55
|
+
"onUpdate:hoverDate": $event => hoverDate.value = $event,
|
|
56
|
+
"multiple": true,
|
|
57
|
+
"side": "start"
|
|
58
|
+
}), null)]), _createVNode("div", {
|
|
59
|
+
"class": "v-date-range-card__divider"
|
|
60
|
+
}, null), _createVNode("div", {
|
|
61
|
+
"class": "v-date-range-card__end"
|
|
62
|
+
}, [_createVNode(VDatePickerControls, _mergeProps(datePickerControlsProps, {
|
|
63
|
+
"onUpdate:displayDate": displayDate => emit('update:displayDate', displayDate),
|
|
64
|
+
"onUpdate:viewMode": viewMode => emit('update:viewMode', viewMode),
|
|
65
|
+
"range": "end"
|
|
66
|
+
}), null), _createVNode(VDatePickerMonth, _mergeProps(datePickerMonthProps, {
|
|
67
|
+
"onUpdate:modelValue": modelValue => emit('update:modelValue', modelValue),
|
|
68
|
+
"displayDate": adapter.addMonths(props.displayDate, 1),
|
|
69
|
+
"hoverDate": hoverDate.value,
|
|
70
|
+
"onUpdate:hoverDate": $event => hoverDate.value = $event,
|
|
71
|
+
"multiple": true,
|
|
72
|
+
"side": "end"
|
|
73
|
+
}), null)])]) : _createVNode("div", {
|
|
74
|
+
"class": "v-date-range-card__years"
|
|
75
|
+
}, [_createVNode(VDatePickerControls, _mergeProps(datePickerControlsProps, {
|
|
76
|
+
"onUpdate:displayDate": displayDate => emit('update:displayDate', displayDate),
|
|
77
|
+
"onUpdate:viewMode": viewMode => emit('update:viewMode', viewMode)
|
|
78
|
+
}), null), _createVNode(VDatePickerYears, _mergeProps(datePickerYearsProps, {
|
|
79
|
+
"onUpdate:displayDate": displayDate => emit('update:displayDate', displayDate),
|
|
80
|
+
"onUpdate:viewMode": viewMode => emit('update:viewMode', viewMode)
|
|
81
|
+
}), null)])]
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
return {};
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=VDateRangeCard.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VDateRangeCard.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerYearsProps","VDatePickerYears","VCard","createDatePicker","makeTransitionProps","ref","defineComponent","propsFactory","useRender","dateEmits","makeDateProps","useDate","makeVDateRangeCardProps","transition","VDateRangeCard","name","props","emits","setup","_ref","emit","adapter","hoverDate","cardProps","filterProps","datePickerControlsProps","datePickerMonthProps","datePickerYearsProps","_createVNode","_mergeProps","default","viewMode","_Fragment","displayDate","modelValue","value","$event","addMonths"],"sources":["../../../src/labs/VDateRangePicker/VDateRangeCard.tsx"],"sourcesContent":["// Styles\nimport './VDateRangeCard.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from '../VDatePicker/VDatePickerControls'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from '../VDatePicker/VDatePickerMonth'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from '../VDatePicker/VDatePickerYears'\nimport { VCard } from '@/components/VCard'\n\n// Composables\nimport { createDatePicker } from '../VDatePicker/composables'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { ref } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDateRangeCardProps = propsFactory({\n ...makeDateProps(),\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...makeVDatePickerYearsProps(),\n ...makeTransitionProps({ transition: 'fade' }),\n}, 'VDateRangeCard')\n\nexport const VDateRangeCard = defineComponent({\n name: 'VDateRangeCard',\n\n props: makeVDateRangeCardProps(),\n\n emits: {\n ...dateEmits,\n },\n\n setup (props, { emit }) {\n const adapter = useDate()\n createDatePicker(props)\n\n const hoverDate = ref(null)\n\n useRender(() => {\n const [cardProps] = VCard.filterProps(props)\n const [datePickerControlsProps] = VDatePickerControls.filterProps(props)\n const [datePickerMonthProps] = VDatePickerMonth.filterProps(props)\n const [datePickerYearsProps] = VDatePickerYears.filterProps(props)\n\n return (\n <VCard\n { ...cardProps }\n class=\"v-date-range-card\"\n >\n { props.viewMode === 'month' ? (\n <>\n <div class=\"v-date-range-card__start\">\n <VDatePickerControls\n { ...datePickerControlsProps }\n onUpdate:displayDate={ displayDate => emit('update:displayDate', displayDate) }\n onUpdate:viewMode={ viewMode => emit('update:viewMode', viewMode) }\n range=\"start\"\n />\n <VDatePickerMonth\n { ...datePickerMonthProps }\n onUpdate:modelValue={ modelValue => emit('update:modelValue', modelValue) }\n v-model:hoverDate={ hoverDate.value }\n multiple\n side=\"start\"\n />\n </div>\n <div class=\"v-date-range-card__divider\" />\n <div class=\"v-date-range-card__end\">\n <VDatePickerControls\n { ...datePickerControlsProps }\n onUpdate:displayDate={ displayDate => emit('update:displayDate', displayDate) }\n onUpdate:viewMode={ viewMode => emit('update:viewMode', viewMode) }\n range=\"end\"\n />\n <VDatePickerMonth\n { ...datePickerMonthProps }\n onUpdate:modelValue={ modelValue => emit('update:modelValue', modelValue) }\n displayDate={ adapter.addMonths(props.displayDate, 1) }\n v-model:hoverDate={ hoverDate.value }\n multiple\n side=\"end\"\n />\n </div>\n </>\n ) : (\n <div class=\"v-date-range-card__years\">\n <VDatePickerControls\n { ...datePickerControlsProps }\n onUpdate:displayDate={ displayDate => emit('update:displayDate', displayDate) }\n onUpdate:viewMode={ viewMode => emit('update:viewMode', viewMode) }\n />\n <VDatePickerYears\n { ...datePickerYearsProps }\n onUpdate:displayDate={ displayDate => emit('update:displayDate', displayDate) }\n onUpdate:viewMode={ viewMode => emit('update:viewMode', viewMode) }\n />\n </div>\n )}\n </VCard>\n )\n })\n\n return {}\n },\n})\n\nexport type VDateRangeCard = InstanceType<typeof VDateRangeCard>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.v-date-range-card
|
|
2
|
+
display: inline-flex
|
|
3
|
+
|
|
4
|
+
.v-date-range-card__divider
|
|
5
|
+
width: 2px
|
|
6
|
+
background: lightgrey
|
|
7
|
+
|
|
8
|
+
// .v-date-range-card__years
|
|
9
|
+
// display: flex
|
|
10
|
+
// flex-direction: column
|
|
11
|
+
// height: 350px
|
|
12
|
+
// width: #{328px * 2 + 2px}
|
|
13
|
+
|
|
14
|
+
// > div
|
|
15
|
+
// display: flex
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
.v-date-range-card
|
|
19
|
+
.v-date-picker-month
|
|
20
|
+
padding-left: 16px
|
|
21
|
+
padding-right: 16px
|
|
22
|
+
padding-bottom: 8px
|
|
23
|
+
|
|
24
|
+
--v-date-picker-month-day-diff: 2px
|
|
25
|
+
|
|
26
|
+
.v-date-picker-month__day
|
|
27
|
+
height: 32px
|
|
28
|
+
width: 32px
|
|
29
|
+
|
|
30
|
+
.v-btn
|
|
31
|
+
--v-btn-height: 16px
|
|
32
|
+
--v-btn-size: 0.75rem
|
|
33
|
+
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { resolveDirective as _resolveDirective, createTextVNode as _createTextVNode, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VDateRangePicker.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { VBtn } from "../../components/VBtn/index.mjs";
|
|
7
|
+
import { VTextField } from "../../components/VTextField/index.mjs";
|
|
8
|
+
import { VPicker } from "../VPicker/index.mjs"; // Composables
|
|
9
|
+
import { createDatePicker } from "../VDatePicker/composables.mjs";
|
|
10
|
+
import { makeTransitionProps } from "../../composables/transition.mjs";
|
|
11
|
+
import { useDate } from "../date/index.mjs";
|
|
12
|
+
import { makeVPickerProps } from "../VPicker/VPicker.mjs"; // Utilities
|
|
13
|
+
import { ref, watch } from 'vue';
|
|
14
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
|
+
import { makeVDateRangePickerHeaderProps, VDateRangePickerHeader } from "./VDateRangePickerHeader.mjs";
|
|
16
|
+
import { makeVDateRangePickerMonthProps, VDateRangePickerMonth } from "./VDateRangePickerMonth.mjs";
|
|
17
|
+
export const makeVDateRangePickerProps = propsFactory({
|
|
18
|
+
viewMode: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: 'month'
|
|
21
|
+
},
|
|
22
|
+
...makeVPickerProps(),
|
|
23
|
+
...makeVDateRangePickerHeaderProps(),
|
|
24
|
+
...makeVDateRangePickerMonthProps(),
|
|
25
|
+
...makeTransitionProps({
|
|
26
|
+
transition: 'fade'
|
|
27
|
+
})
|
|
28
|
+
}, 'VDateRangePicker');
|
|
29
|
+
export const VDateRangePicker = genericComponent()({
|
|
30
|
+
name: 'VDateRangePicker',
|
|
31
|
+
props: makeVDateRangePickerProps(),
|
|
32
|
+
emits: {
|
|
33
|
+
'update:modelValue': date => true,
|
|
34
|
+
'update:viewMode': mode => true,
|
|
35
|
+
'update:inputMode': input => true,
|
|
36
|
+
'update:displayDate': date => true,
|
|
37
|
+
save: date => true,
|
|
38
|
+
cancel: () => true
|
|
39
|
+
},
|
|
40
|
+
setup(props, _ref) {
|
|
41
|
+
let {
|
|
42
|
+
emit
|
|
43
|
+
} = _ref;
|
|
44
|
+
const adapter = useDate();
|
|
45
|
+
createDatePicker(props);
|
|
46
|
+
const selected = ref(props.modelValue);
|
|
47
|
+
const inputModel = ref(props.modelValue[0] ? adapter.format(props.modelValue[0], 'keyboardDate') : '');
|
|
48
|
+
|
|
49
|
+
// watch(() => props.modelValue, newValue => {
|
|
50
|
+
// if (!newValue?.length) return
|
|
51
|
+
|
|
52
|
+
// inputModel.value = adapter.format(newValue[0], 'keyboardDate')
|
|
53
|
+
// })
|
|
54
|
+
|
|
55
|
+
watch(inputModel, () => {
|
|
56
|
+
const {
|
|
57
|
+
isValid,
|
|
58
|
+
date
|
|
59
|
+
} = adapter;
|
|
60
|
+
selected.value = isValid(inputModel.value) ? [date(inputModel.value)] : [];
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// watch(selected, () => {
|
|
64
|
+
// if (!props.showActions) {
|
|
65
|
+
// emit('update:modelValue', selected.value)
|
|
66
|
+
// }
|
|
67
|
+
// })
|
|
68
|
+
|
|
69
|
+
// function handleInput (value: any, index: number) {
|
|
70
|
+
// if (value.length === 10 && adapter.isValid(value)) {
|
|
71
|
+
// const modelValue = props.modelValue.slice()
|
|
72
|
+
// modelValue.splice(index, value)
|
|
73
|
+
// emit('update:modelValue', modelValue)
|
|
74
|
+
// }
|
|
75
|
+
// }
|
|
76
|
+
|
|
77
|
+
const handleCancel = () => emit('cancel');
|
|
78
|
+
const handleSave = () => {
|
|
79
|
+
emit('update:modelValue', selected.value);
|
|
80
|
+
emit('save', selected.value);
|
|
81
|
+
};
|
|
82
|
+
useRender(() => {
|
|
83
|
+
const [pickerProps] = VPicker.filterProps(props);
|
|
84
|
+
const [dateRangePickerHeaderProps] = VDateRangePickerHeader.filterProps(props);
|
|
85
|
+
const [dateRangePickerMonthProps] = VDateRangePickerMonth.filterProps(props);
|
|
86
|
+
return _createVNode(VPicker, _mergeProps(pickerProps, {
|
|
87
|
+
"key": props.inputMode,
|
|
88
|
+
"class": ['v-date-range-picker', `v-date-range-picker--${props.inputMode}`],
|
|
89
|
+
"width": 328
|
|
90
|
+
}), {
|
|
91
|
+
header: () => _createVNode(VDateRangePickerHeader, _mergeProps(dateRangePickerHeaderProps, {
|
|
92
|
+
"modelValue": selected.value,
|
|
93
|
+
"onUpdate:displayDate": displayDate => emit('update:displayDate', displayDate),
|
|
94
|
+
"onUpdate:inputMode": inputMode => emit('update:inputMode', inputMode),
|
|
95
|
+
"onCancel": handleCancel,
|
|
96
|
+
"onSave": handleSave
|
|
97
|
+
}), null),
|
|
98
|
+
default: () => props.inputMode === 'calendar' ? _createVNode(VDateRangePickerMonth, _mergeProps(dateRangePickerMonthProps, {
|
|
99
|
+
"modelValue": selected.value,
|
|
100
|
+
"onUpdate:modelValue": $event => selected.value = $event
|
|
101
|
+
}), null) : _createVNode("div", {
|
|
102
|
+
"class": "v-date-range-picker__input"
|
|
103
|
+
}, [_createVNode(VTextField, {
|
|
104
|
+
"label": "From",
|
|
105
|
+
"placeholder": "yyyy/mm/dd",
|
|
106
|
+
"modelValue": inputModel.value,
|
|
107
|
+
"onUpdate:modelValue": $event => inputModel.value = $event
|
|
108
|
+
}, null), _createVNode(VTextField, {
|
|
109
|
+
"label": "To",
|
|
110
|
+
"placeholder": "yyyy/mm/dd",
|
|
111
|
+
"modelValue": inputModel.value,
|
|
112
|
+
"onUpdate:modelValue": $event => inputModel.value = $event
|
|
113
|
+
}, null)]),
|
|
114
|
+
actions: props.inputMode === 'keyboard' ? () => _createVNode("div", null, [_createVNode(VBtn, {
|
|
115
|
+
"variant": "text",
|
|
116
|
+
"color": props.color,
|
|
117
|
+
"onClick": handleCancel
|
|
118
|
+
}, {
|
|
119
|
+
default: () => [_createTextVNode("Cancel")]
|
|
120
|
+
}), _createVNode(VBtn, {
|
|
121
|
+
"variant": "text",
|
|
122
|
+
"color": props.color,
|
|
123
|
+
"onClick": handleSave
|
|
124
|
+
}, {
|
|
125
|
+
default: () => [_createTextVNode("Ok")]
|
|
126
|
+
})]) : undefined
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=VDateRangePicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VDateRangePicker.mjs","names":["VBtn","VTextField","VPicker","createDatePicker","makeTransitionProps","useDate","makeVPickerProps","ref","watch","genericComponent","propsFactory","useRender","makeVDateRangePickerHeaderProps","VDateRangePickerHeader","makeVDateRangePickerMonthProps","VDateRangePickerMonth","makeVDateRangePickerProps","viewMode","type","String","default","transition","VDateRangePicker","name","props","emits","date","mode","input","save","cancel","setup","_ref","emit","adapter","selected","modelValue","inputModel","format","isValid","value","handleCancel","handleSave","pickerProps","filterProps","dateRangePickerHeaderProps","dateRangePickerMonthProps","_createVNode","_mergeProps","inputMode","header","displayDate","$event","actions","color","_createTextVNode","undefined"],"sources":["../../../src/labs/VDateRangePicker/VDateRangePicker.tsx"],"sourcesContent":["// Styles\nimport './VDateRangePicker.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VTextField } from '@/components/VTextField'\nimport { VPicker } from '@/labs/VPicker'\n\n// Composables\nimport { createDatePicker } from '../VDatePicker/composables'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useDate } from '@/labs/date'\nimport { makeVPickerProps } from '@/labs/VPicker/VPicker'\n\n// Utilities\nimport { ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { makeVDateRangePickerHeaderProps, VDateRangePickerHeader } from './VDateRangePickerHeader'\nimport { makeVDateRangePickerMonthProps, VDateRangePickerMonth } from './VDateRangePickerMonth'\n\nexport const makeVDateRangePickerProps = propsFactory({\n viewMode: {\n type: String as PropType<'month' | 'years'>,\n default: 'month',\n },\n\n ...makeVPickerProps(),\n ...makeVDateRangePickerHeaderProps(),\n ...makeVDateRangePickerMonthProps(),\n ...makeTransitionProps({ transition: 'fade' }),\n}, 'VDateRangePicker')\n\nexport const VDateRangePicker = genericComponent()({\n name: 'VDateRangePicker',\n\n props: makeVDateRangePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:viewMode': (mode: 'month' | 'years') => true,\n 'update:inputMode': (input: string) => true,\n 'update:displayDate': (date: any) => true,\n save: (date: any) => true,\n cancel: () => true,\n },\n\n setup (props, { emit }) {\n const adapter = useDate()\n createDatePicker(props)\n\n const selected = ref(props.modelValue)\n const inputModel = ref(props.modelValue[0] ? adapter.format(props.modelValue[0], 'keyboardDate') : '')\n\n // watch(() => props.modelValue, newValue => {\n // if (!newValue?.length) return\n\n // inputModel.value = adapter.format(newValue[0], 'keyboardDate')\n // })\n\n watch(inputModel, () => {\n const { isValid, date } = adapter\n\n selected.value = isValid(inputModel.value) ? [date(inputModel.value)] : []\n })\n\n // watch(selected, () => {\n // if (!props.showActions) {\n // emit('update:modelValue', selected.value)\n // }\n // })\n\n // function handleInput (value: any, index: number) {\n // if (value.length === 10 && adapter.isValid(value)) {\n // const modelValue = props.modelValue.slice()\n // modelValue.splice(index, value)\n // emit('update:modelValue', modelValue)\n // }\n // }\n\n const handleCancel = () => emit('cancel')\n const handleSave = () => {\n emit('update:modelValue', selected.value)\n emit('save', selected.value)\n }\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [dateRangePickerHeaderProps] = VDateRangePickerHeader.filterProps(props)\n const [dateRangePickerMonthProps] = VDateRangePickerMonth.filterProps(props)\n\n return (\n <VPicker\n { ...pickerProps }\n key={ props.inputMode }\n class={[\n 'v-date-range-picker',\n `v-date-range-picker--${props.inputMode}`,\n ]}\n width={ 328 }\n v-slots={{\n header: () => (\n <VDateRangePickerHeader\n { ...dateRangePickerHeaderProps }\n modelValue={ selected.value }\n onUpdate:displayDate={ displayDate => emit('update:displayDate', displayDate) }\n onUpdate:inputMode={ inputMode => emit('update:inputMode', inputMode) }\n onCancel={ handleCancel }\n onSave={ handleSave }\n />\n ),\n default: () => props.inputMode === 'calendar' ? (\n <VDateRangePickerMonth\n { ...dateRangePickerMonthProps }\n v-model={ selected.value }\n />\n ) : (\n <div class=\"v-date-range-picker__input\">\n <VTextField\n label=\"From\"\n placeholder=\"yyyy/mm/dd\"\n v-model={ inputModel.value }\n />\n <VTextField\n label=\"To\"\n placeholder=\"yyyy/mm/dd\"\n v-model={ inputModel.value }\n />\n </div>\n ),\n actions: props.inputMode === 'keyboard' ? () => (\n <div>\n <VBtn variant=\"text\" color={ props.color } onClick={ handleCancel }>Cancel</VBtn>\n <VBtn variant=\"text\" color={ props.color } onClick={ handleSave }>Ok</VBtn>\n </div>\n ) : undefined,\n }}\n />\n )\n })\n },\n})\n\nexport type VDateRangePicker = InstanceType<typeof VDateRangePicker>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.v-date-range-picker--calendar
|
|
2
|
+
.v-picker__body
|
|
3
|
+
height: calc(100vh - 128px)
|
|
4
|
+
|
|
5
|
+
.v-date-range-picker__input
|
|
6
|
+
padding-top: 16px
|
|
7
|
+
padding-left: 24px
|
|
8
|
+
padding-right: 24px
|
|
9
|
+
|
|
10
|
+
.v-date-range-picker
|
|
11
|
+
.v-date-picker-month
|
|
12
|
+
padding-left: 12px
|
|
13
|
+
padding-right: 12px
|
|
14
|
+
|
|
15
|
+
.v-date-picker-month__day
|
|
16
|
+
height: 48px
|
|
17
|
+
width: 48px
|
|
18
|
+
|
|
19
|
+
.v-btn
|
|
20
|
+
--v-btn-height: 28px
|
|
21
|
+
--v-btn-size: 0.85rem
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { createTextVNode as _createTextVNode, createVNode as _createVNode } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VDateRangePickerHeader.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
|
|
7
|
+
import { useBackgroundColor } from "../../composables/color.mjs";
|
|
8
|
+
import { useLocale } from "../../composables/locale.mjs";
|
|
9
|
+
import { useDate } from "../date/index.mjs"; // Utilities
|
|
10
|
+
import { computed } from 'vue';
|
|
11
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
12
|
+
export const makeVDateRangePickerHeaderProps = propsFactory({
|
|
13
|
+
color: String,
|
|
14
|
+
title: String,
|
|
15
|
+
header: String,
|
|
16
|
+
keyboardIcon: {
|
|
17
|
+
type: String,
|
|
18
|
+
default: '$edit'
|
|
19
|
+
},
|
|
20
|
+
calendarIcon: {
|
|
21
|
+
type: String,
|
|
22
|
+
default: '$calendar'
|
|
23
|
+
},
|
|
24
|
+
closeIcon: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: '$close'
|
|
27
|
+
},
|
|
28
|
+
showInputSwitch: Boolean,
|
|
29
|
+
inputMode: String,
|
|
30
|
+
modelValue: null,
|
|
31
|
+
displayDate: null,
|
|
32
|
+
range: null
|
|
33
|
+
}, 'VDateRangePickerHeader');
|
|
34
|
+
export const VDateRangePickerHeader = genericComponent()({
|
|
35
|
+
name: 'VDateRangePickerHeader',
|
|
36
|
+
props: makeVDateRangePickerHeaderProps(),
|
|
37
|
+
emits: {
|
|
38
|
+
cancel: () => true,
|
|
39
|
+
save: () => true,
|
|
40
|
+
'update:inputMode': input => true,
|
|
41
|
+
'update:displayDate': date => true
|
|
42
|
+
},
|
|
43
|
+
setup(props, _ref) {
|
|
44
|
+
let {
|
|
45
|
+
emit
|
|
46
|
+
} = _ref;
|
|
47
|
+
const {
|
|
48
|
+
t
|
|
49
|
+
} = useLocale();
|
|
50
|
+
const adapter = useDate();
|
|
51
|
+
const {
|
|
52
|
+
backgroundColorClasses,
|
|
53
|
+
backgroundColorStyles
|
|
54
|
+
} = useBackgroundColor(props, 'color');
|
|
55
|
+
const headerText = computed(() => {
|
|
56
|
+
if (props.header) return props.header;
|
|
57
|
+
if (!props.modelValue.length) return t(`$vuetify.datePicker.${props.range ? 'range.' : ''}header.placeholder`);
|
|
58
|
+
if (props.modelValue.length === 1) return adapter.format(props.modelValue[0], 'normalDateWithWeekday');
|
|
59
|
+
return props.modelValue.map(date => adapter.format(date, 'shortDate')).join(' - ');
|
|
60
|
+
});
|
|
61
|
+
const titleText = computed(() => {
|
|
62
|
+
if (props.title) return props.title;
|
|
63
|
+
if (!props.modelValue.length) return t(`$vuetify.datePicker.${props.range ? 'range.' : ''}title.placeholder`);
|
|
64
|
+
return t(`$vuetify.datePicker.${props.range ? 'range.' : ''}title.selected`);
|
|
65
|
+
});
|
|
66
|
+
function handleHeaderClick() {
|
|
67
|
+
if (!props.modelValue.length) return;
|
|
68
|
+
const date = props.modelValue[0];
|
|
69
|
+
emit('update:displayDate', date);
|
|
70
|
+
}
|
|
71
|
+
useRender(() => _createVNode("div", {
|
|
72
|
+
"class": ['v-date-range-picker-header', backgroundColorClasses.value, `v-date-range-picker-header--${props.inputMode}`],
|
|
73
|
+
"style": backgroundColorStyles.value
|
|
74
|
+
}, [props.inputMode === 'calendar' && _createVNode("div", {
|
|
75
|
+
"key": "calendar-buttons",
|
|
76
|
+
"class": "v-date-range-picker-header__buttons"
|
|
77
|
+
}, [_createVNode(VBtn, {
|
|
78
|
+
"variant": "text",
|
|
79
|
+
"icon": props.closeIcon,
|
|
80
|
+
"onClick": () => emit('cancel')
|
|
81
|
+
}, null), _createVNode(VBtn, {
|
|
82
|
+
"variant": "text",
|
|
83
|
+
"onClick": () => emit('save')
|
|
84
|
+
}, {
|
|
85
|
+
default: () => [_createTextVNode("Save")]
|
|
86
|
+
})]), _createVNode("div", {
|
|
87
|
+
"class": "v-date-range-picker-header__wrapper"
|
|
88
|
+
}, [_createVNode("div", {
|
|
89
|
+
"class": "v-date-range-picker-header__title"
|
|
90
|
+
}, [titleText.value]), _createVNode("div", {
|
|
91
|
+
"class": "v-date-range-picker-header__text"
|
|
92
|
+
}, [_createVNode("div", {
|
|
93
|
+
"class": "v-date-range-picker-header__date",
|
|
94
|
+
"onClick": handleHeaderClick
|
|
95
|
+
}, [headerText.value]), _createVNode(VBtn, {
|
|
96
|
+
"variant": "text",
|
|
97
|
+
"icon": props.inputMode === 'keyboard' ? props.calendarIcon : props.keyboardIcon,
|
|
98
|
+
"onClick": () => emit('update:inputMode', props.inputMode === 'keyboard' ? 'calendar' : 'keyboard')
|
|
99
|
+
}, null)])])]));
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=VDateRangePickerHeader.mjs.map
|