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
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.4
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -298,6 +298,15 @@
|
|
|
298
298
|
}
|
|
299
299
|
return out;
|
|
300
300
|
}
|
|
301
|
+
function flattenFragments(nodes) {
|
|
302
|
+
return nodes.map(node => {
|
|
303
|
+
if (node.type === vue.Fragment) {
|
|
304
|
+
return flattenFragments(node.children);
|
|
305
|
+
} else {
|
|
306
|
+
return node;
|
|
307
|
+
}
|
|
308
|
+
}).flat();
|
|
309
|
+
}
|
|
301
310
|
function toKebabCase() {
|
|
302
311
|
let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
303
312
|
if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
|
|
@@ -377,6 +386,9 @@
|
|
|
377
386
|
}
|
|
378
387
|
const onRE = /^on[^a-z]/;
|
|
379
388
|
const isOn = key => onRE.test(key);
|
|
389
|
+
function eventName(propName) {
|
|
390
|
+
return propName[2].toLowerCase() + propName.slice(3);
|
|
391
|
+
}
|
|
380
392
|
const EventProp = () => [Function, Array];
|
|
381
393
|
function hasEvent(props, name) {
|
|
382
394
|
name = 'on' + vue.capitalize(name);
|
|
@@ -575,6 +587,54 @@
|
|
|
575
587
|
return animation;
|
|
576
588
|
}
|
|
577
589
|
|
|
590
|
+
// Utilities
|
|
591
|
+
const handlers = new WeakMap();
|
|
592
|
+
function bindProps(el, props) {
|
|
593
|
+
Object.keys(props).forEach(k => {
|
|
594
|
+
if (isOn(k)) {
|
|
595
|
+
const name = eventName(k);
|
|
596
|
+
const handler = handlers.get(el);
|
|
597
|
+
if (props[k] == null) {
|
|
598
|
+
handler?.forEach(v => {
|
|
599
|
+
const [n, fn] = v;
|
|
600
|
+
if (n === name) {
|
|
601
|
+
el.removeEventListener(name, fn);
|
|
602
|
+
handler.delete(v);
|
|
603
|
+
}
|
|
604
|
+
});
|
|
605
|
+
} else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {
|
|
606
|
+
el.addEventListener(name, props[k]);
|
|
607
|
+
const _handler = handler || new Set();
|
|
608
|
+
_handler.add([name, props[k]]);
|
|
609
|
+
if (!handlers.has(el)) handlers.set(el, _handler);
|
|
610
|
+
}
|
|
611
|
+
} else {
|
|
612
|
+
if (props[k] == null) {
|
|
613
|
+
el.removeAttribute(k);
|
|
614
|
+
} else {
|
|
615
|
+
el.setAttribute(k, props[k]);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
function unbindProps(el, props) {
|
|
621
|
+
Object.keys(props).forEach(k => {
|
|
622
|
+
if (isOn(k)) {
|
|
623
|
+
const name = eventName(k);
|
|
624
|
+
const handler = handlers.get(el);
|
|
625
|
+
handler?.forEach(v => {
|
|
626
|
+
const [n, fn] = v;
|
|
627
|
+
if (n === name) {
|
|
628
|
+
el.removeEventListener(name, fn);
|
|
629
|
+
handler.delete(v);
|
|
630
|
+
}
|
|
631
|
+
});
|
|
632
|
+
} else {
|
|
633
|
+
el.removeAttribute(k);
|
|
634
|
+
}
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
|
|
578
638
|
/* eslint-disable no-console */
|
|
579
639
|
|
|
580
640
|
function consoleWarn(message) {
|
|
@@ -1583,12 +1643,21 @@
|
|
|
1583
1643
|
lastPage: 'Last page',
|
|
1584
1644
|
pageText: '{0}-{1} of {2}'
|
|
1585
1645
|
},
|
|
1646
|
+
dateRangeInput: {
|
|
1647
|
+
divider: 'to'
|
|
1648
|
+
},
|
|
1586
1649
|
datePicker: {
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1650
|
+
ok: 'OK',
|
|
1651
|
+
cancel: 'Cancel',
|
|
1652
|
+
range: {
|
|
1653
|
+
title: 'Select dates',
|
|
1654
|
+
header: 'Enter dates'
|
|
1655
|
+
},
|
|
1656
|
+
title: 'Select date',
|
|
1657
|
+
header: 'Enter date',
|
|
1658
|
+
input: {
|
|
1659
|
+
placeholder: 'Enter date'
|
|
1660
|
+
}
|
|
1592
1661
|
},
|
|
1593
1662
|
noDataText: 'No data available',
|
|
1594
1663
|
carousel: {
|
|
@@ -2158,6 +2227,7 @@
|
|
|
2158
2227
|
};
|
|
2159
2228
|
}
|
|
2160
2229
|
function install(app) {
|
|
2230
|
+
if (parsedOptions.isDisabled) return;
|
|
2161
2231
|
const head = app._context.provides.usehead;
|
|
2162
2232
|
if (head) {
|
|
2163
2233
|
if (head.push) {
|
|
@@ -2179,7 +2249,6 @@
|
|
|
2179
2249
|
immediate: true
|
|
2180
2250
|
});
|
|
2181
2251
|
function updateStyles() {
|
|
2182
|
-
if (parsedOptions.isDisabled) return;
|
|
2183
2252
|
if (typeof document !== 'undefined' && !styleEl) {
|
|
2184
2253
|
const el = document.createElement('style');
|
|
2185
2254
|
el.type = 'text/css';
|
|
@@ -3571,7 +3640,7 @@
|
|
|
3571
3640
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3572
3641
|
return height + extensionHeight;
|
|
3573
3642
|
});
|
|
3574
|
-
|
|
3643
|
+
vue.watchEffect(() => {
|
|
3575
3644
|
if (scrollBehavior.value.hide) {
|
|
3576
3645
|
if (scrollBehavior.value.inverted) {
|
|
3577
3646
|
isActive.value = currentScroll.value > scrollThreshold.value;
|
|
@@ -3581,12 +3650,6 @@
|
|
|
3581
3650
|
} else {
|
|
3582
3651
|
isActive.value = true;
|
|
3583
3652
|
}
|
|
3584
|
-
}
|
|
3585
|
-
useToggleScope(() => !!props.scrollBehavior, () => {
|
|
3586
|
-
vue.watch(currentScroll, setActive, {
|
|
3587
|
-
immediate: true
|
|
3588
|
-
});
|
|
3589
|
-
vue.watch(scrollBehavior, setActive);
|
|
3590
3653
|
});
|
|
3591
3654
|
const {
|
|
3592
3655
|
ssrBootStyles
|
|
@@ -4041,7 +4104,8 @@
|
|
|
4041
4104
|
unfold: 'mdi-unfold-more-horizontal',
|
|
4042
4105
|
file: 'mdi-paperclip',
|
|
4043
4106
|
plus: 'mdi-plus',
|
|
4044
|
-
minus: 'mdi-minus'
|
|
4107
|
+
minus: 'mdi-minus',
|
|
4108
|
+
calendar: 'mdi-calendar'
|
|
4045
4109
|
};
|
|
4046
4110
|
const mdi = {
|
|
4047
4111
|
// Not using mergeProps here, functional components merge props by default (?)
|
|
@@ -4266,7 +4330,7 @@
|
|
|
4266
4330
|
useRender(() => {
|
|
4267
4331
|
const slotValue = slots.default?.();
|
|
4268
4332
|
if (slotValue) {
|
|
4269
|
-
slotIcon.value = slotValue.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4333
|
+
slotIcon.value = flattenFragments(slotValue).filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4270
4334
|
}
|
|
4271
4335
|
return vue.createVNode(iconData.value.component, {
|
|
4272
4336
|
"tag": props.tag,
|
|
@@ -5103,7 +5167,7 @@
|
|
|
5103
5167
|
block: Boolean,
|
|
5104
5168
|
stacked: Boolean,
|
|
5105
5169
|
ripple: {
|
|
5106
|
-
type: Boolean,
|
|
5170
|
+
type: [Boolean, Object],
|
|
5107
5171
|
default: true
|
|
5108
5172
|
},
|
|
5109
5173
|
text: String,
|
|
@@ -6386,6 +6450,7 @@
|
|
|
6386
6450
|
inheritAttrs: false,
|
|
6387
6451
|
props: makeVCheckboxProps(),
|
|
6388
6452
|
emits: {
|
|
6453
|
+
'update:modelValue': value => true,
|
|
6389
6454
|
'update:focused': focused => true
|
|
6390
6455
|
},
|
|
6391
6456
|
setup(props, _ref) {
|
|
@@ -6393,6 +6458,7 @@
|
|
|
6393
6458
|
attrs,
|
|
6394
6459
|
slots
|
|
6395
6460
|
} = _ref;
|
|
6461
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
6396
6462
|
const {
|
|
6397
6463
|
isFocused,
|
|
6398
6464
|
focus,
|
|
@@ -6407,6 +6473,8 @@
|
|
|
6407
6473
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6408
6474
|
"class": ['v-checkbox', props.class]
|
|
6409
6475
|
}, inputAttrs, inputProps, {
|
|
6476
|
+
"modelValue": model.value,
|
|
6477
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
6410
6478
|
"id": id.value,
|
|
6411
6479
|
"focused": isFocused.value,
|
|
6412
6480
|
"style": props.style
|
|
@@ -6425,6 +6493,8 @@
|
|
|
6425
6493
|
"disabled": isDisabled.value,
|
|
6426
6494
|
"readonly": isReadonly.value
|
|
6427
6495
|
}, controlAttrs, {
|
|
6496
|
+
"modelValue": model.value,
|
|
6497
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
6428
6498
|
"onFocus": focus,
|
|
6429
6499
|
"onBlur": blur
|
|
6430
6500
|
}), slots);
|
|
@@ -6562,6 +6632,8 @@
|
|
|
6562
6632
|
}
|
|
6563
6633
|
});
|
|
6564
6634
|
|
|
6635
|
+
// Types
|
|
6636
|
+
|
|
6565
6637
|
const makeVChipProps = propsFactory({
|
|
6566
6638
|
activeClass: String,
|
|
6567
6639
|
appendAvatar: String,
|
|
@@ -6590,7 +6662,7 @@
|
|
|
6590
6662
|
prependAvatar: String,
|
|
6591
6663
|
prependIcon: IconValue,
|
|
6592
6664
|
ripple: {
|
|
6593
|
-
type: Boolean,
|
|
6665
|
+
type: [Boolean, Object],
|
|
6594
6666
|
default: true
|
|
6595
6667
|
},
|
|
6596
6668
|
text: String,
|
|
@@ -7243,7 +7315,7 @@
|
|
|
7243
7315
|
const useNestedItem = (id, isGroup) => {
|
|
7244
7316
|
const parent = vue.inject(VNestedSymbol, emptyNested);
|
|
7245
7317
|
const uidSymbol = Symbol(getUid());
|
|
7246
|
-
const computedId = vue.computed(() => id.value
|
|
7318
|
+
const computedId = vue.computed(() => id.value !== undefined ? id.value : uidSymbol);
|
|
7247
7319
|
const item = {
|
|
7248
7320
|
...parent,
|
|
7249
7321
|
id: computedId,
|
|
@@ -7406,7 +7478,7 @@
|
|
|
7406
7478
|
prependAvatar: String,
|
|
7407
7479
|
prependIcon: IconValue,
|
|
7408
7480
|
ripple: {
|
|
7409
|
-
type: Boolean,
|
|
7481
|
+
type: [Boolean, Object],
|
|
7410
7482
|
default: true
|
|
7411
7483
|
},
|
|
7412
7484
|
subtitle: [String, Number, Boolean],
|
|
@@ -7443,7 +7515,7 @@
|
|
|
7443
7515
|
emit
|
|
7444
7516
|
} = _ref;
|
|
7445
7517
|
const link = useLink(props, attrs);
|
|
7446
|
-
const id = vue.computed(() => props.value
|
|
7518
|
+
const id = vue.computed(() => props.value === undefined ? link.href.value : props.value);
|
|
7447
7519
|
const {
|
|
7448
7520
|
select,
|
|
7449
7521
|
isSelected,
|
|
@@ -7840,10 +7912,13 @@
|
|
|
7840
7912
|
}
|
|
7841
7913
|
function useTransformItems(items, transform) {
|
|
7842
7914
|
function transformIn(value) {
|
|
7843
|
-
return value
|
|
7915
|
+
return value
|
|
7916
|
+
// When the model value is null, returns an InternalItem based on null
|
|
7917
|
+
// only if null is one of the items
|
|
7918
|
+
.filter(v => v !== null || items.value.some(item => item.value === null)).map(v => {
|
|
7844
7919
|
const existingItem = items.value.find(item => deepEqual(v, item.value));
|
|
7845
7920
|
// Nullish existingItem means value is a custom input value from combobox
|
|
7846
|
-
// In this case, use transformItem to create an
|
|
7921
|
+
// In this case, use transformItem to create an InternalItem based on value
|
|
7847
7922
|
return existingItem ?? transform(v);
|
|
7848
7923
|
});
|
|
7849
7924
|
}
|
|
@@ -8779,29 +8854,29 @@
|
|
|
8779
8854
|
}
|
|
8780
8855
|
});
|
|
8781
8856
|
const availableEvents = {
|
|
8782
|
-
|
|
8857
|
+
onClick: e => {
|
|
8783
8858
|
e.stopPropagation();
|
|
8784
8859
|
activatorEl.value = e.currentTarget || e.target;
|
|
8785
8860
|
isActive.value = !isActive.value;
|
|
8786
8861
|
},
|
|
8787
|
-
|
|
8862
|
+
onMouseenter: e => {
|
|
8788
8863
|
if (e.sourceCapabilities?.firesTouchEvents) return;
|
|
8789
8864
|
isHovered = true;
|
|
8790
8865
|
activatorEl.value = e.currentTarget || e.target;
|
|
8791
8866
|
runOpenDelay();
|
|
8792
8867
|
},
|
|
8793
|
-
|
|
8868
|
+
onMouseleave: e => {
|
|
8794
8869
|
isHovered = false;
|
|
8795
8870
|
runCloseDelay();
|
|
8796
8871
|
},
|
|
8797
|
-
|
|
8872
|
+
onFocus: e => {
|
|
8798
8873
|
if (SUPPORTS_FOCUS_VISIBLE && !e.target.matches(':focus-visible')) return;
|
|
8799
8874
|
isFocused = true;
|
|
8800
8875
|
e.stopPropagation();
|
|
8801
8876
|
activatorEl.value = e.currentTarget || e.target;
|
|
8802
8877
|
runOpenDelay();
|
|
8803
8878
|
},
|
|
8804
|
-
|
|
8879
|
+
onBlur: e => {
|
|
8805
8880
|
isFocused = false;
|
|
8806
8881
|
e.stopPropagation();
|
|
8807
8882
|
runCloseDelay();
|
|
@@ -8810,33 +8885,43 @@
|
|
|
8810
8885
|
const activatorEvents = vue.computed(() => {
|
|
8811
8886
|
const events = {};
|
|
8812
8887
|
if (openOnClick.value) {
|
|
8813
|
-
events.
|
|
8888
|
+
events.onClick = availableEvents.onClick;
|
|
8814
8889
|
}
|
|
8815
8890
|
if (props.openOnHover) {
|
|
8816
|
-
events.
|
|
8817
|
-
events.
|
|
8891
|
+
events.onMouseenter = availableEvents.onMouseenter;
|
|
8892
|
+
events.onMouseleave = availableEvents.onMouseleave;
|
|
8818
8893
|
}
|
|
8819
8894
|
if (openOnFocus.value) {
|
|
8820
|
-
events.
|
|
8821
|
-
events.
|
|
8895
|
+
events.onFocus = availableEvents.onFocus;
|
|
8896
|
+
events.onBlur = availableEvents.onBlur;
|
|
8822
8897
|
}
|
|
8823
8898
|
return events;
|
|
8824
8899
|
});
|
|
8825
8900
|
const contentEvents = vue.computed(() => {
|
|
8826
8901
|
const events = {};
|
|
8827
8902
|
if (props.openOnHover) {
|
|
8828
|
-
events.
|
|
8903
|
+
events.onMouseenter = () => {
|
|
8829
8904
|
isHovered = true;
|
|
8830
8905
|
runOpenDelay();
|
|
8831
8906
|
};
|
|
8832
|
-
events.
|
|
8907
|
+
events.onMouseleave = () => {
|
|
8833
8908
|
isHovered = false;
|
|
8834
8909
|
runCloseDelay();
|
|
8835
8910
|
};
|
|
8836
8911
|
}
|
|
8912
|
+
if (openOnFocus.value) {
|
|
8913
|
+
events.onFocusin = () => {
|
|
8914
|
+
isFocused = true;
|
|
8915
|
+
runOpenDelay();
|
|
8916
|
+
};
|
|
8917
|
+
events.onFocusout = () => {
|
|
8918
|
+
isFocused = false;
|
|
8919
|
+
runCloseDelay();
|
|
8920
|
+
};
|
|
8921
|
+
}
|
|
8837
8922
|
if (props.closeOnContentClick) {
|
|
8838
8923
|
const menu = vue.inject(VMenuSymbol, null);
|
|
8839
|
-
events.
|
|
8924
|
+
events.onClick = () => {
|
|
8840
8925
|
isActive.value = false;
|
|
8841
8926
|
menu?.closeParents();
|
|
8842
8927
|
};
|
|
@@ -8846,14 +8931,14 @@
|
|
|
8846
8931
|
const scrimEvents = vue.computed(() => {
|
|
8847
8932
|
const events = {};
|
|
8848
8933
|
if (props.openOnHover) {
|
|
8849
|
-
events.
|
|
8934
|
+
events.onMouseenter = () => {
|
|
8850
8935
|
if (firstEnter) {
|
|
8851
8936
|
isHovered = true;
|
|
8852
8937
|
firstEnter = false;
|
|
8853
8938
|
runOpenDelay();
|
|
8854
8939
|
}
|
|
8855
8940
|
};
|
|
8856
|
-
events.
|
|
8941
|
+
events.onMouseleave = () => {
|
|
8857
8942
|
isHovered = false;
|
|
8858
8943
|
runCloseDelay();
|
|
8859
8944
|
};
|
|
@@ -8927,29 +9012,13 @@
|
|
|
8927
9012
|
let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
|
|
8928
9013
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
8929
9014
|
if (!el) return;
|
|
8930
|
-
|
|
8931
|
-
let [name, cb] = _ref3;
|
|
8932
|
-
el.addEventListener(name, cb);
|
|
8933
|
-
});
|
|
8934
|
-
Object.keys(_props).forEach(k => {
|
|
8935
|
-
if (_props[k] == null) {
|
|
8936
|
-
el.removeAttribute(k);
|
|
8937
|
-
} else {
|
|
8938
|
-
el.setAttribute(k, _props[k]);
|
|
8939
|
-
}
|
|
8940
|
-
});
|
|
9015
|
+
bindProps(el, vue.mergeProps(activatorEvents.value, _props));
|
|
8941
9016
|
}
|
|
8942
9017
|
function unbindActivatorProps() {
|
|
8943
9018
|
let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
|
|
8944
9019
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
8945
9020
|
if (!el) return;
|
|
8946
|
-
|
|
8947
|
-
let [name, cb] = _ref4;
|
|
8948
|
-
el.removeEventListener(name, cb);
|
|
8949
|
-
});
|
|
8950
|
-
Object.keys(_props).forEach(k => {
|
|
8951
|
-
el.removeAttribute(k);
|
|
8952
|
-
});
|
|
9021
|
+
unbindProps(el, vue.mergeProps(activatorEvents.value, _props));
|
|
8953
9022
|
}
|
|
8954
9023
|
function getActivator() {
|
|
8955
9024
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
@@ -9476,6 +9545,9 @@
|
|
|
9476
9545
|
if (e.key === 'Escape' && globalTop.value) {
|
|
9477
9546
|
if (!props.persistent) {
|
|
9478
9547
|
isActive.value = false;
|
|
9548
|
+
if (contentEl.value?.contains(document.activeElement)) {
|
|
9549
|
+
activatorEl.value?.focus();
|
|
9550
|
+
}
|
|
9479
9551
|
} else animateClick();
|
|
9480
9552
|
}
|
|
9481
9553
|
}
|
|
@@ -9518,7 +9590,7 @@
|
|
|
9518
9590
|
isActive: isActive.value,
|
|
9519
9591
|
props: vue.mergeProps({
|
|
9520
9592
|
ref: activatorRef
|
|
9521
|
-
},
|
|
9593
|
+
}, activatorEvents.value, props.activatorProps)
|
|
9522
9594
|
}), isMounted.value && vue.createVNode(vue.Teleport, {
|
|
9523
9595
|
"disabled": !teleportTarget.value,
|
|
9524
9596
|
"to": teleportTarget.value
|
|
@@ -9536,7 +9608,7 @@
|
|
|
9536
9608
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
9537
9609
|
"color": scrimColor,
|
|
9538
9610
|
"modelValue": isActive.value && !!props.scrim
|
|
9539
|
-
},
|
|
9611
|
+
}, scrimEvents.value), null), vue.createVNode(MaybeTransition, {
|
|
9540
9612
|
"appear": true,
|
|
9541
9613
|
"persisted": true,
|
|
9542
9614
|
"transition": props.transition,
|
|
@@ -9550,7 +9622,7 @@
|
|
|
9550
9622
|
"ref": contentEl,
|
|
9551
9623
|
"class": ['v-overlay__content', props.contentClass],
|
|
9552
9624
|
"style": [dimensionStyles.value, contentStyles.value]
|
|
9553
|
-
},
|
|
9625
|
+
}, contentEvents.value, props.contentProps), [slots.default?.({
|
|
9554
9626
|
isActive
|
|
9555
9627
|
})]), [[vue.vShow, isActive.value], [vue.resolveDirective("click-outside"), {
|
|
9556
9628
|
handler: onClickOutside,
|
|
@@ -9710,10 +9782,35 @@
|
|
|
9710
9782
|
function onClickOutside() {
|
|
9711
9783
|
parent?.closeParents();
|
|
9712
9784
|
}
|
|
9785
|
+
function onKeydown(e) {
|
|
9786
|
+
if (props.disabled) return;
|
|
9787
|
+
if (e.key === 'Tab') {
|
|
9788
|
+
isActive.value = false;
|
|
9789
|
+
overlay.value?.activatorEl?.focus();
|
|
9790
|
+
}
|
|
9791
|
+
}
|
|
9792
|
+
function onActivatorKeydown(e) {
|
|
9793
|
+
if (props.disabled) return;
|
|
9794
|
+
const el = overlay.value?.contentEl;
|
|
9795
|
+
if (el && isActive.value) {
|
|
9796
|
+
if (e.key === 'ArrowDown') {
|
|
9797
|
+
e.preventDefault();
|
|
9798
|
+
focusChild(el, 'next');
|
|
9799
|
+
} else if (e.key === 'ArrowUp') {
|
|
9800
|
+
e.preventDefault();
|
|
9801
|
+
focusChild(el, 'prev');
|
|
9802
|
+
}
|
|
9803
|
+
} else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
9804
|
+
isActive.value = true;
|
|
9805
|
+
e.preventDefault();
|
|
9806
|
+
setTimeout(() => setTimeout(() => onActivatorKeydown(e)));
|
|
9807
|
+
}
|
|
9808
|
+
}
|
|
9713
9809
|
const activatorProps = vue.computed(() => vue.mergeProps({
|
|
9714
9810
|
'aria-haspopup': 'menu',
|
|
9715
9811
|
'aria-expanded': String(isActive.value),
|
|
9716
|
-
'aria-owns': id.value
|
|
9812
|
+
'aria-owns': id.value,
|
|
9813
|
+
onKeydown: onActivatorKeydown
|
|
9717
9814
|
}, props.activatorProps));
|
|
9718
9815
|
useRender(() => {
|
|
9719
9816
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
@@ -9726,7 +9823,8 @@
|
|
|
9726
9823
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
9727
9824
|
"absolute": true,
|
|
9728
9825
|
"activatorProps": activatorProps.value,
|
|
9729
|
-
"onClick:outside": onClickOutside
|
|
9826
|
+
"onClick:outside": onClickOutside,
|
|
9827
|
+
"onKeydown": onKeydown
|
|
9730
9828
|
}, scopeId), {
|
|
9731
9829
|
activator: slots.activator,
|
|
9732
9830
|
default: function () {
|
|
@@ -10350,7 +10448,7 @@
|
|
|
10350
10448
|
transformIn,
|
|
10351
10449
|
transformOut
|
|
10352
10450
|
} = useItems(props);
|
|
10353
|
-
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
|
|
10451
|
+
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
10354
10452
|
const transformed = transformOut(v);
|
|
10355
10453
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
10356
10454
|
});
|
|
@@ -10370,6 +10468,7 @@
|
|
|
10370
10468
|
}
|
|
10371
10469
|
return items.value;
|
|
10372
10470
|
});
|
|
10471
|
+
const menuDisabled = vue.computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
10373
10472
|
const listRef = vue.ref();
|
|
10374
10473
|
function onClear(e) {
|
|
10375
10474
|
if (props.openOnClear) {
|
|
@@ -10377,7 +10476,7 @@
|
|
|
10377
10476
|
}
|
|
10378
10477
|
}
|
|
10379
10478
|
function onMousedownControl() {
|
|
10380
|
-
if (
|
|
10479
|
+
if (menuDisabled.value) return;
|
|
10381
10480
|
menu.value = !menu.value;
|
|
10382
10481
|
}
|
|
10383
10482
|
function onKeydown(e) {
|
|
@@ -10391,11 +10490,7 @@
|
|
|
10391
10490
|
if (['Escape', 'Tab'].includes(e.key)) {
|
|
10392
10491
|
menu.value = false;
|
|
10393
10492
|
}
|
|
10394
|
-
if (e.key === '
|
|
10395
|
-
listRef.value?.focus('next');
|
|
10396
|
-
} else if (e.key === 'ArrowUp') {
|
|
10397
|
-
listRef.value?.focus('prev');
|
|
10398
|
-
} else if (e.key === 'Home') {
|
|
10493
|
+
if (e.key === 'Home') {
|
|
10399
10494
|
listRef.value?.focus('first');
|
|
10400
10495
|
} else if (e.key === 'End') {
|
|
10401
10496
|
listRef.value?.focus('last');
|
|
@@ -10421,6 +10516,11 @@
|
|
|
10421
10516
|
model.value = [item];
|
|
10422
10517
|
}
|
|
10423
10518
|
}
|
|
10519
|
+
function onListKeydown(e) {
|
|
10520
|
+
if (e.key === 'Tab') {
|
|
10521
|
+
vTextFieldRef.value?.focus();
|
|
10522
|
+
}
|
|
10523
|
+
}
|
|
10424
10524
|
function select(item) {
|
|
10425
10525
|
if (props.multiple) {
|
|
10426
10526
|
const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
|
|
@@ -10451,7 +10551,7 @@
|
|
|
10451
10551
|
}
|
|
10452
10552
|
useRender(() => {
|
|
10453
10553
|
const hasChips = !!(props.chips || slots.chip);
|
|
10454
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
10554
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
10455
10555
|
const isDirty = model.value.length > 0;
|
|
10456
10556
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
10457
10557
|
const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;
|
|
@@ -10488,6 +10588,7 @@
|
|
|
10488
10588
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
10489
10589
|
"activator": "parent",
|
|
10490
10590
|
"contentClass": "v-select__content",
|
|
10591
|
+
"disabled": menuDisabled.value,
|
|
10491
10592
|
"eager": props.eager,
|
|
10492
10593
|
"maxHeight": 310,
|
|
10493
10594
|
"openOnClick": false,
|
|
@@ -10500,11 +10601,13 @@
|
|
|
10500
10601
|
"selected": selected.value,
|
|
10501
10602
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10502
10603
|
"onMousedown": e => e.preventDefault(),
|
|
10503
|
-
"
|
|
10604
|
+
"onKeydown": onListKeydown,
|
|
10605
|
+
"onFocusin": onFocusin,
|
|
10606
|
+
"tabindex": "-1"
|
|
10504
10607
|
}, {
|
|
10505
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
10608
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
10506
10609
|
"title": t(props.noDataText)
|
|
10507
|
-
}, null)),
|
|
10610
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
10508
10611
|
const itemProps = vue.mergeProps(item.props, {
|
|
10509
10612
|
key: index,
|
|
10510
10613
|
onClick: () => select(item)
|
|
@@ -10770,7 +10873,7 @@
|
|
|
10770
10873
|
textColorStyles
|
|
10771
10874
|
} = useTextColor(color);
|
|
10772
10875
|
const search = useProxiedModel(props, 'search', '');
|
|
10773
|
-
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
|
|
10876
|
+
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
10774
10877
|
const transformed = transformOut(v);
|
|
10775
10878
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
10776
10879
|
});
|
|
@@ -10796,6 +10899,7 @@
|
|
|
10796
10899
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
10797
10900
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
10798
10901
|
});
|
|
10902
|
+
const menuDisabled = vue.computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
10799
10903
|
const listRef = vue.ref();
|
|
10800
10904
|
function onClear(e) {
|
|
10801
10905
|
if (props.openOnClear) {
|
|
@@ -10804,10 +10908,11 @@
|
|
|
10804
10908
|
search.value = '';
|
|
10805
10909
|
}
|
|
10806
10910
|
function onMousedownControl() {
|
|
10807
|
-
if (
|
|
10911
|
+
if (menuDisabled.value) return;
|
|
10808
10912
|
menu.value = true;
|
|
10809
10913
|
}
|
|
10810
10914
|
function onMousedownMenuIcon(e) {
|
|
10915
|
+
if (menuDisabled.value) return;
|
|
10811
10916
|
if (isFocused.value) {
|
|
10812
10917
|
e.preventDefault();
|
|
10813
10918
|
e.stopPropagation();
|
|
@@ -10833,13 +10938,8 @@
|
|
|
10833
10938
|
}
|
|
10834
10939
|
isPristine.value = true;
|
|
10835
10940
|
}
|
|
10836
|
-
if (e.key === 'ArrowDown') {
|
|
10941
|
+
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
10837
10942
|
listRef.value?.focus('next');
|
|
10838
|
-
if (highlightFirst.value) {
|
|
10839
|
-
listRef.value?.focus('next');
|
|
10840
|
-
}
|
|
10841
|
-
} else if (e.key === 'ArrowUp') {
|
|
10842
|
-
listRef.value?.focus('prev');
|
|
10843
10943
|
}
|
|
10844
10944
|
if (!props.multiple) return;
|
|
10845
10945
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -10874,6 +10974,11 @@
|
|
|
10874
10974
|
}
|
|
10875
10975
|
}
|
|
10876
10976
|
}
|
|
10977
|
+
function onListKeydown(e) {
|
|
10978
|
+
if (e.key === 'Tab') {
|
|
10979
|
+
vTextFieldRef.value?.focus();
|
|
10980
|
+
}
|
|
10981
|
+
}
|
|
10877
10982
|
function onInput(e) {
|
|
10878
10983
|
search.value = e.target.value;
|
|
10879
10984
|
}
|
|
@@ -10943,7 +11048,7 @@
|
|
|
10943
11048
|
});
|
|
10944
11049
|
useRender(() => {
|
|
10945
11050
|
const hasChips = !!(props.chips || slots.chip);
|
|
10946
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
11051
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
10947
11052
|
const isDirty = model.value.length > 0;
|
|
10948
11053
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
10949
11054
|
return vue.createVNode(VTextField, vue.mergeProps({
|
|
@@ -10976,6 +11081,7 @@
|
|
|
10976
11081
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
10977
11082
|
"activator": "parent",
|
|
10978
11083
|
"contentClass": "v-autocomplete__content",
|
|
11084
|
+
"disabled": menuDisabled.value,
|
|
10979
11085
|
"eager": props.eager,
|
|
10980
11086
|
"maxHeight": 310,
|
|
10981
11087
|
"openOnClick": false,
|
|
@@ -10988,12 +11094,14 @@
|
|
|
10988
11094
|
"selected": selected.value,
|
|
10989
11095
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10990
11096
|
"onMousedown": e => e.preventDefault(),
|
|
11097
|
+
"onKeydown": onListKeydown,
|
|
10991
11098
|
"onFocusin": onFocusin,
|
|
10992
|
-
"onFocusout": onFocusout
|
|
11099
|
+
"onFocusout": onFocusout,
|
|
11100
|
+
"tabindex": "-1"
|
|
10993
11101
|
}, {
|
|
10994
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
11102
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
10995
11103
|
"title": t(props.noDataText)
|
|
10996
|
-
}, null)),
|
|
11104
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
10997
11105
|
const itemProps = vue.mergeProps(item.props, {
|
|
10998
11106
|
key: index,
|
|
10999
11107
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
@@ -11743,7 +11851,7 @@
|
|
|
11743
11851
|
prependAvatar: String,
|
|
11744
11852
|
prependIcon: IconValue,
|
|
11745
11853
|
ripple: {
|
|
11746
|
-
type: Boolean,
|
|
11854
|
+
type: [Boolean, Object],
|
|
11747
11855
|
default: true
|
|
11748
11856
|
},
|
|
11749
11857
|
subtitle: String,
|
|
@@ -13148,6 +13256,8 @@
|
|
|
13148
13256
|
return data;
|
|
13149
13257
|
};
|
|
13150
13258
|
|
|
13259
|
+
// Types
|
|
13260
|
+
|
|
13151
13261
|
const makeVSliderThumbProps = propsFactory({
|
|
13152
13262
|
focused: Boolean,
|
|
13153
13263
|
max: {
|
|
@@ -13167,7 +13277,7 @@
|
|
|
13167
13277
|
required: true
|
|
13168
13278
|
},
|
|
13169
13279
|
ripple: {
|
|
13170
|
-
type: Boolean,
|
|
13280
|
+
type: [Boolean, Object],
|
|
13171
13281
|
default: true
|
|
13172
13282
|
},
|
|
13173
13283
|
...makeComponentProps()
|
|
@@ -14326,6 +14436,7 @@
|
|
|
14326
14436
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
14327
14437
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
14328
14438
|
});
|
|
14439
|
+
const menuDisabled = vue.computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
14329
14440
|
const listRef = vue.ref();
|
|
14330
14441
|
function onClear(e) {
|
|
14331
14442
|
cleared = true;
|
|
@@ -14334,10 +14445,11 @@
|
|
|
14334
14445
|
}
|
|
14335
14446
|
}
|
|
14336
14447
|
function onMousedownControl() {
|
|
14337
|
-
if (
|
|
14448
|
+
if (menuDisabled.value) return;
|
|
14338
14449
|
menu.value = true;
|
|
14339
14450
|
}
|
|
14340
14451
|
function onMousedownMenuIcon(e) {
|
|
14452
|
+
if (menuDisabled.value) return;
|
|
14341
14453
|
if (isFocused.value) {
|
|
14342
14454
|
e.preventDefault();
|
|
14343
14455
|
e.stopPropagation();
|
|
@@ -14363,10 +14475,8 @@
|
|
|
14363
14475
|
}
|
|
14364
14476
|
isPristine.value = true;
|
|
14365
14477
|
}
|
|
14366
|
-
if (e.key === 'ArrowDown') {
|
|
14478
|
+
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
14367
14479
|
listRef.value?.focus('next');
|
|
14368
|
-
} else if (e.key === 'ArrowUp') {
|
|
14369
|
-
listRef.value?.focus('prev');
|
|
14370
14480
|
}
|
|
14371
14481
|
if (!props.multiple) return;
|
|
14372
14482
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -14405,6 +14515,11 @@
|
|
|
14405
14515
|
search.value = '';
|
|
14406
14516
|
}
|
|
14407
14517
|
}
|
|
14518
|
+
function onListKeydown(e) {
|
|
14519
|
+
if (e.key === 'Tab') {
|
|
14520
|
+
vTextFieldRef.value?.focus();
|
|
14521
|
+
}
|
|
14522
|
+
}
|
|
14408
14523
|
function onAfterLeave() {
|
|
14409
14524
|
if (isFocused.value) {
|
|
14410
14525
|
isPristine.value = true;
|
|
@@ -14466,7 +14581,7 @@
|
|
|
14466
14581
|
});
|
|
14467
14582
|
useRender(() => {
|
|
14468
14583
|
const hasChips = !!(props.chips || slots.chip);
|
|
14469
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
14584
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
14470
14585
|
const isDirty = model.value.length > 0;
|
|
14471
14586
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
14472
14587
|
return vue.createVNode(VTextField, vue.mergeProps({
|
|
@@ -14499,6 +14614,7 @@
|
|
|
14499
14614
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
14500
14615
|
"activator": "parent",
|
|
14501
14616
|
"contentClass": "v-combobox__content",
|
|
14617
|
+
"disabled": menuDisabled.value,
|
|
14502
14618
|
"eager": props.eager,
|
|
14503
14619
|
"maxHeight": 310,
|
|
14504
14620
|
"openOnClick": false,
|
|
@@ -14511,12 +14627,14 @@
|
|
|
14511
14627
|
"selected": selected.value,
|
|
14512
14628
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
14513
14629
|
"onMousedown": e => e.preventDefault(),
|
|
14630
|
+
"onKeydown": onListKeydown,
|
|
14514
14631
|
"onFocusin": onFocusin,
|
|
14515
|
-
"onFocusout": onFocusout
|
|
14632
|
+
"onFocusout": onFocusout,
|
|
14633
|
+
"tabindex": "-1"
|
|
14516
14634
|
}, {
|
|
14517
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
14635
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
14518
14636
|
"title": t(props.noDataText)
|
|
14519
|
-
}, null)),
|
|
14637
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
14520
14638
|
const itemProps = vue.mergeProps(item.props, {
|
|
14521
14639
|
key: index,
|
|
14522
14640
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
@@ -14808,6 +14926,8 @@
|
|
|
14808
14926
|
}
|
|
14809
14927
|
});
|
|
14810
14928
|
|
|
14929
|
+
// Types
|
|
14930
|
+
|
|
14811
14931
|
const makeVExpansionPanelTitleProps = propsFactory({
|
|
14812
14932
|
color: String,
|
|
14813
14933
|
expandIcon: {
|
|
@@ -15080,8 +15200,6 @@
|
|
|
15080
15200
|
"modelValue": model.value,
|
|
15081
15201
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
15082
15202
|
"class": ['v-file-input', {
|
|
15083
|
-
'v-file-input--chips': !!props.chips,
|
|
15084
|
-
'v-file-input--selection-slot': !!slots.selection,
|
|
15085
15203
|
'v-text-field--plain-underlined': isPlainOrUnderlined.value
|
|
15086
15204
|
}, props.class],
|
|
15087
15205
|
"style": props.style,
|
|
@@ -18078,8 +18196,8 @@
|
|
|
18078
18196
|
const initialScale = prevBox[widthHeight] / nextBox[widthHeight];
|
|
18079
18197
|
const sigma = 1.5;
|
|
18080
18198
|
animate(nextEl, {
|
|
18081
|
-
backgroundColor: [color, ''],
|
|
18082
|
-
transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, ''],
|
|
18199
|
+
backgroundColor: [color, 'currentcolor'],
|
|
18200
|
+
transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
|
|
18083
18201
|
transformOrigin: Array(3).fill(origin)
|
|
18084
18202
|
}, {
|
|
18085
18203
|
duration: 225,
|
|
@@ -19364,47 +19482,6 @@
|
|
|
19364
19482
|
|
|
19365
19483
|
// Types
|
|
19366
19484
|
|
|
19367
|
-
function getWeekArray(date) {
|
|
19368
|
-
let currentWeek = [];
|
|
19369
|
-
const weeks = [];
|
|
19370
|
-
const firstDayOfMonth = startOfMonth(date);
|
|
19371
|
-
const lastDayOfMonth = endOfMonth(date);
|
|
19372
|
-
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
|
19373
|
-
currentWeek.push(null);
|
|
19374
|
-
}
|
|
19375
|
-
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
|
19376
|
-
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
|
19377
|
-
|
|
19378
|
-
// Add the day to the current week
|
|
19379
|
-
currentWeek.push(day);
|
|
19380
|
-
|
|
19381
|
-
// If the current week has 7 days, add it to the weeks array and start a new week
|
|
19382
|
-
if (currentWeek.length === 7) {
|
|
19383
|
-
weeks.push(currentWeek);
|
|
19384
|
-
currentWeek = [];
|
|
19385
|
-
}
|
|
19386
|
-
}
|
|
19387
|
-
for (let i = currentWeek.length; i < 7; i++) {
|
|
19388
|
-
currentWeek.push(null);
|
|
19389
|
-
}
|
|
19390
|
-
weeks.push(currentWeek);
|
|
19391
|
-
return weeks;
|
|
19392
|
-
}
|
|
19393
|
-
function startOfMonth(date) {
|
|
19394
|
-
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
19395
|
-
}
|
|
19396
|
-
function endOfMonth(date) {
|
|
19397
|
-
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
19398
|
-
}
|
|
19399
|
-
function date(value) {
|
|
19400
|
-
if (value == null) return null;
|
|
19401
|
-
if (value instanceof Date) return value;
|
|
19402
|
-
if (typeof value === 'string') {
|
|
19403
|
-
const parsed = Date.parse(value);
|
|
19404
|
-
if (!isNaN(parsed)) return new Date(parsed);
|
|
19405
|
-
}
|
|
19406
|
-
return null;
|
|
19407
|
-
}
|
|
19408
19485
|
const firstDay = {
|
|
19409
19486
|
'001': 1,
|
|
19410
19487
|
AD: 1,
|
|
@@ -19418,7 +19495,7 @@
|
|
|
19418
19495
|
AR: 1,
|
|
19419
19496
|
AS: 0,
|
|
19420
19497
|
AT: 1,
|
|
19421
|
-
AU:
|
|
19498
|
+
AU: 1,
|
|
19422
19499
|
AX: 1,
|
|
19423
19500
|
AZ: 1,
|
|
19424
19501
|
BA: 1,
|
|
@@ -19438,7 +19515,7 @@
|
|
|
19438
19515
|
CH: 1,
|
|
19439
19516
|
CL: 1,
|
|
19440
19517
|
CM: 1,
|
|
19441
|
-
CN:
|
|
19518
|
+
CN: 1,
|
|
19442
19519
|
CO: 0,
|
|
19443
19520
|
CR: 1,
|
|
19444
19521
|
CY: 1,
|
|
@@ -19558,6 +19635,53 @@
|
|
|
19558
19635
|
ZA: 0,
|
|
19559
19636
|
ZW: 0
|
|
19560
19637
|
};
|
|
19638
|
+
function getWeekArray(date, locale) {
|
|
19639
|
+
const weeks = [];
|
|
19640
|
+
let currentWeek = [];
|
|
19641
|
+
const firstDayOfMonth = startOfMonth(date);
|
|
19642
|
+
const lastDayOfMonth = endOfMonth(date);
|
|
19643
|
+
const firstDayWeekIndex = firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()];
|
|
19644
|
+
const lastDayWeekIndex = lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()];
|
|
19645
|
+
for (let i = 0; i < firstDayWeekIndex; i++) {
|
|
19646
|
+
const adjacentDay = new Date(firstDayOfMonth);
|
|
19647
|
+
adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));
|
|
19648
|
+
currentWeek.push(adjacentDay);
|
|
19649
|
+
}
|
|
19650
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
|
19651
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
|
19652
|
+
|
|
19653
|
+
// Add the day to the current week
|
|
19654
|
+
currentWeek.push(day);
|
|
19655
|
+
|
|
19656
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
|
19657
|
+
if (currentWeek.length === 7) {
|
|
19658
|
+
weeks.push(currentWeek);
|
|
19659
|
+
currentWeek = [];
|
|
19660
|
+
}
|
|
19661
|
+
}
|
|
19662
|
+
for (let i = 1; i < 7 - lastDayWeekIndex; i++) {
|
|
19663
|
+
const adjacentDay = new Date(lastDayOfMonth);
|
|
19664
|
+
adjacentDay.setDate(adjacentDay.getDate() + i);
|
|
19665
|
+
currentWeek.push(adjacentDay);
|
|
19666
|
+
}
|
|
19667
|
+
weeks.push(currentWeek);
|
|
19668
|
+
return weeks;
|
|
19669
|
+
}
|
|
19670
|
+
function startOfMonth(date) {
|
|
19671
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
19672
|
+
}
|
|
19673
|
+
function endOfMonth(date) {
|
|
19674
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
19675
|
+
}
|
|
19676
|
+
function date(value) {
|
|
19677
|
+
if (value == null) return new Date();
|
|
19678
|
+
if (value instanceof Date) return value;
|
|
19679
|
+
if (typeof value === 'string') {
|
|
19680
|
+
const parsed = Date.parse(value);
|
|
19681
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
|
19682
|
+
}
|
|
19683
|
+
return null;
|
|
19684
|
+
}
|
|
19561
19685
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
19562
19686
|
function getWeekdays(locale) {
|
|
19563
19687
|
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
@@ -19565,7 +19689,7 @@
|
|
|
19565
19689
|
const weekday = new Date(sundayJanuarySecond2000);
|
|
19566
19690
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
19567
19691
|
return new Intl.DateTimeFormat(locale, {
|
|
19568
|
-
weekday: '
|
|
19692
|
+
weekday: 'short'
|
|
19569
19693
|
}).format(weekday);
|
|
19570
19694
|
});
|
|
19571
19695
|
}
|
|
@@ -19585,8 +19709,7 @@
|
|
|
19585
19709
|
options = {
|
|
19586
19710
|
weekday: 'short',
|
|
19587
19711
|
day: 'numeric',
|
|
19588
|
-
month: 'short'
|
|
19589
|
-
year: 'numeric'
|
|
19712
|
+
month: 'short'
|
|
19590
19713
|
};
|
|
19591
19714
|
break;
|
|
19592
19715
|
case 'keyboardDate':
|
|
@@ -19604,6 +19727,11 @@
|
|
|
19604
19727
|
year: 'numeric'
|
|
19605
19728
|
};
|
|
19606
19729
|
break;
|
|
19730
|
+
case 'dayOfMonth':
|
|
19731
|
+
options = {
|
|
19732
|
+
day: 'numeric'
|
|
19733
|
+
};
|
|
19734
|
+
break;
|
|
19607
19735
|
default:
|
|
19608
19736
|
options = {
|
|
19609
19737
|
timeZone: 'UTC',
|
|
@@ -19634,28 +19762,6 @@
|
|
|
19634
19762
|
function endOfYear(date) {
|
|
19635
19763
|
return new Date(date.getFullYear(), 11, 31);
|
|
19636
19764
|
}
|
|
19637
|
-
function getMondayOfFirstWeekOfYear(year) {
|
|
19638
|
-
return new Date(year, 0, 1);
|
|
19639
|
-
}
|
|
19640
|
-
|
|
19641
|
-
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
19642
|
-
function getWeek(date) {
|
|
19643
|
-
let year = date.getFullYear();
|
|
19644
|
-
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
19645
|
-
if (date < d1w1) {
|
|
19646
|
-
year = year - 1;
|
|
19647
|
-
d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
19648
|
-
} else {
|
|
19649
|
-
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
|
19650
|
-
if (date >= tv) {
|
|
19651
|
-
year = year + 1;
|
|
19652
|
-
d1w1 = tv;
|
|
19653
|
-
}
|
|
19654
|
-
}
|
|
19655
|
-
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
19656
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
19657
|
-
return Math.floor(diffDays / 7) + 1;
|
|
19658
|
-
}
|
|
19659
19765
|
function isWithinRange(date, range) {
|
|
19660
19766
|
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
|
19661
19767
|
}
|
|
@@ -19692,13 +19798,15 @@
|
|
|
19692
19798
|
return d;
|
|
19693
19799
|
}
|
|
19694
19800
|
class VuetifyDateAdapter {
|
|
19695
|
-
constructor() {
|
|
19696
|
-
|
|
19697
|
-
this.locale = locale;
|
|
19801
|
+
constructor(options) {
|
|
19802
|
+
this.locale = options.locale;
|
|
19698
19803
|
}
|
|
19699
19804
|
date(value) {
|
|
19700
19805
|
return date(value);
|
|
19701
19806
|
}
|
|
19807
|
+
toJsDate(date) {
|
|
19808
|
+
return date;
|
|
19809
|
+
}
|
|
19702
19810
|
addDays(date, amount) {
|
|
19703
19811
|
return addDays(date, amount);
|
|
19704
19812
|
}
|
|
@@ -19706,7 +19814,7 @@
|
|
|
19706
19814
|
return addMonths(date, amount);
|
|
19707
19815
|
}
|
|
19708
19816
|
getWeekArray(date) {
|
|
19709
|
-
return getWeekArray(date);
|
|
19817
|
+
return getWeekArray(date, this.locale);
|
|
19710
19818
|
}
|
|
19711
19819
|
startOfMonth(date) {
|
|
19712
19820
|
return startOfMonth(date);
|
|
@@ -19729,6 +19837,9 @@
|
|
|
19729
19837
|
isAfter(date, comparing) {
|
|
19730
19838
|
return isAfter(date, comparing);
|
|
19731
19839
|
}
|
|
19840
|
+
isBefore(date, comparing) {
|
|
19841
|
+
return !isAfter(date, comparing) && !isEqual(date, comparing);
|
|
19842
|
+
}
|
|
19732
19843
|
isSameDay(date, comparing) {
|
|
19733
19844
|
return isSameDay(date, comparing);
|
|
19734
19845
|
}
|
|
@@ -19741,9 +19852,6 @@
|
|
|
19741
19852
|
getDiff(date, comparing, unit) {
|
|
19742
19853
|
return getDiff(date, comparing, unit);
|
|
19743
19854
|
}
|
|
19744
|
-
getWeek(date) {
|
|
19745
|
-
return getWeek(date);
|
|
19746
|
-
}
|
|
19747
19855
|
getWeekdays() {
|
|
19748
19856
|
return getWeekdays(this.locale);
|
|
19749
19857
|
}
|
|
@@ -19767,9 +19875,52 @@
|
|
|
19767
19875
|
|
|
19768
19876
|
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
|
19769
19877
|
function createDate(options) {
|
|
19770
|
-
return
|
|
19771
|
-
adapter: VuetifyDateAdapter
|
|
19772
|
-
|
|
19878
|
+
return mergeDeep({
|
|
19879
|
+
adapter: VuetifyDateAdapter,
|
|
19880
|
+
locale: {
|
|
19881
|
+
af: 'af-ZA',
|
|
19882
|
+
// ar: '', # not the same value for all variants
|
|
19883
|
+
bg: 'bg-BG',
|
|
19884
|
+
ca: 'ca-ES',
|
|
19885
|
+
ckb: '',
|
|
19886
|
+
cs: '',
|
|
19887
|
+
de: 'de-DE',
|
|
19888
|
+
el: 'el-GR',
|
|
19889
|
+
en: 'en-US',
|
|
19890
|
+
// es: '', # not the same value for all variants
|
|
19891
|
+
et: 'et-EE',
|
|
19892
|
+
fa: 'fa-IR',
|
|
19893
|
+
fi: 'fi-FI',
|
|
19894
|
+
// fr: '', #not the same value for all variants
|
|
19895
|
+
hr: 'hr-HR',
|
|
19896
|
+
hu: 'hu-HU',
|
|
19897
|
+
he: 'he-IL',
|
|
19898
|
+
id: 'id-ID',
|
|
19899
|
+
it: 'it-IT',
|
|
19900
|
+
ja: 'ja-JP',
|
|
19901
|
+
ko: 'ko-KR',
|
|
19902
|
+
lv: 'lv-LV',
|
|
19903
|
+
lt: 'lt-LT',
|
|
19904
|
+
nl: 'nl-NL',
|
|
19905
|
+
no: 'nn-NO',
|
|
19906
|
+
pl: 'pl-PL',
|
|
19907
|
+
pt: 'pt-PT',
|
|
19908
|
+
ro: 'ro-RO',
|
|
19909
|
+
ru: 'ru-RU',
|
|
19910
|
+
sk: 'sk-SK',
|
|
19911
|
+
sl: 'sl-SI',
|
|
19912
|
+
srCyrl: 'sr-SP',
|
|
19913
|
+
srLatn: 'sr-SP',
|
|
19914
|
+
sv: 'sv-SE',
|
|
19915
|
+
th: 'th-TH',
|
|
19916
|
+
tr: 'tr-TR',
|
|
19917
|
+
az: 'az-AZ',
|
|
19918
|
+
uk: 'uk-UA',
|
|
19919
|
+
vi: 'vi-VN',
|
|
19920
|
+
zhHans: 'zh-CN',
|
|
19921
|
+
zhHant: 'zh-TW'
|
|
19922
|
+
}
|
|
19923
|
+
}, options);
|
|
19773
19924
|
}
|
|
19774
19925
|
|
|
19775
19926
|
// Composables
|
|
@@ -19857,7 +20008,7 @@
|
|
|
19857
20008
|
date
|
|
19858
20009
|
};
|
|
19859
20010
|
}
|
|
19860
|
-
const version$1 = "3.3.
|
|
20011
|
+
const version$1 = "3.3.4";
|
|
19861
20012
|
createVuetify$1.version = version$1;
|
|
19862
20013
|
|
|
19863
20014
|
// Vue's inject() can only be used in setup
|
|
@@ -19882,7 +20033,7 @@
|
|
|
19882
20033
|
...options
|
|
19883
20034
|
});
|
|
19884
20035
|
};
|
|
19885
|
-
const version = "3.3.
|
|
20036
|
+
const version = "3.3.4";
|
|
19886
20037
|
createVuetify.version = version;
|
|
19887
20038
|
|
|
19888
20039
|
exports.components = components;
|