vuetify 3.8.1 → 3.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +2066 -2066
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +164 -164
- package/dist/json/web-types.json +4116 -3862
- package/dist/vuetify-labs.cjs +784 -697
- package/dist/vuetify-labs.css +3174 -3162
- package/dist/vuetify-labs.d.ts +2103 -1144
- package/dist/vuetify-labs.esm.js +785 -698
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +784 -697
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +565 -590
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2963 -2960
- package/dist/vuetify.d.ts +190 -169
- package/dist/vuetify.esm.js +566 -591
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +565 -590
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1264 -1235
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/md3.js +18 -5
- package/lib/blueprints/md3.js.map +1 -1
- package/lib/components/VAlert/VAlert.js +8 -9
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.js +4 -4
- package/lib/components/VAppBar/VAppBar.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +1 -2
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.js +2 -3
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBanner/VBanner.js +3 -3
- package/lib/components/VBanner/VBanner.js.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.js +8 -8
- package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js +6 -6
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +1 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/lib/components/VBtn/VBtn.js +3 -3
- package/lib/components/VBtn/VBtn.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VCard/VCard.js +7 -8
- package/lib/components/VCard/VCard.js.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.js +2 -3
- package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.js +3 -3
- package/lib/components/VCheckbox/VCheckboxBtn.js.map +1 -1
- package/lib/components/VChip/VChip.js +8 -9
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.js +5 -5
- package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
- package/lib/components/VCode/VCode.css +3 -0
- package/lib/components/VCode/VCode.sass +3 -0
- package/lib/components/VCombobox/VCombobox.js +3 -4
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VCounter/VCounter.js +2 -2
- package/lib/components/VCounter/VCounter.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.js +2 -2
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.css +1 -1
- package/lib/components/VDataTable/VDataTable.js +7 -7
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.sass +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.js +7 -7
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDataTable/composables/expand.d.ts +1 -1
- package/lib/components/VDataTable/composables/expand.js +1 -1
- package/lib/components/VDataTable/composables/expand.js.map +1 -1
- package/lib/components/VDataTable/composables/options.js +8 -8
- package/lib/components/VDataTable/composables/options.js.map +1 -1
- package/lib/components/VDataTable/composables/select.d.ts +2 -2
- package/lib/components/VDataTable/composables/select.js +2 -2
- package/lib/components/VDataTable/composables/select.js.map +1 -1
- package/lib/components/VDataTable/composables/sort.d.ts +2 -2
- package/lib/components/VDataTable/composables/sort.js +2 -2
- package/lib/components/VDataTable/composables/sort.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
- package/lib/components/VDatePicker/VDatePicker.js +4 -4
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
- package/lib/components/VDatePicker/VDatePickerMonth.js +2 -2
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDialog/VDialog.d.ts +9 -9
- package/lib/components/VDivider/VDivider.js +2 -2
- package/lib/components/VDivider/VDivider.js.map +1 -1
- package/lib/components/VEmptyState/VEmptyState.js +1 -2
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.js +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.js +14 -14
- package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
- package/lib/components/VFab/VFab.js +2 -2
- package/lib/components/VFab/VFab.js.map +1 -1
- package/lib/components/VField/VField.js +5 -5
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +2 -2
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFooter/VFooter.js +4 -4
- package/lib/components/VFooter/VFooter.js.map +1 -1
- package/lib/components/VForm/VForm.d.ts +40 -40
- package/lib/components/VIcon/VIcon.js +4 -4
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/components/VImg/VImg.js +2 -2
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VInput/VInput.js +3 -3
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VLayout/VLayoutItem.js +5 -5
- package/lib/components/VLayout/VLayoutItem.js.map +1 -1
- package/lib/components/VList/VList.js +14 -14
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListGroup.js +2 -2
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +3 -3
- package/lib/components/VList/VListItem.js +6 -6
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListSubheader.js +1 -2
- package/lib/components/VList/VListSubheader.js.map +1 -1
- package/lib/components/VMenu/VMenu.d.ts +15 -15
- package/lib/components/VMenu/VMenu.js +2 -2
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VMessages/VMessages.js +1 -1
- package/lib/components/VMessages/VMessages.js.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js +6 -6
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +11 -11
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +7 -7
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.d.ts +3 -3
- package/lib/components/VOverlay/VOverlay.js +4 -4
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VOverlay/locationStrategies.d.ts +4 -0
- package/lib/components/VOverlay/locationStrategies.js +33 -4
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +7 -7
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.js +9 -9
- package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +4 -4
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +3 -2
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.js +7 -7
- package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +15 -15
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
- package/lib/components/VSheet/VSheet.js +1 -2
- package/lib/components/VSheet/VSheet.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +2 -2
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VSlider/slider.js +10 -10
- package/lib/components/VSlider/slider.js.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.d.ts +9 -9
- package/lib/components/VSparkline/VSparkline.js +2 -2
- package/lib/components/VSparkline/VSparkline.js.map +1 -1
- package/lib/components/VSwitch/VSwitch.js +3 -3
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.js +2 -2
- package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
- package/lib/components/VTabs/VTab.d.ts +3 -3
- package/lib/components/VTabs/VTab.js +1 -1
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.js +7 -7
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTimeline/VTimeline.js +9 -9
- package/lib/components/VTimeline/VTimeline.js.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.js +2 -3
- package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.js +2 -2
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.js +2 -2
- package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.d.ts +9 -9
- package/lib/components/VTooltip/VTooltip.js +3 -3
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +3 -3
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/components/transitions/dialog-transition.js +11 -2
- package/lib/components/transitions/dialog-transition.js.map +1 -1
- package/lib/composables/border.d.ts +1 -1
- package/lib/composables/border.js +5 -8
- package/lib/composables/border.js.map +1 -1
- package/lib/composables/calendar.d.ts +23 -56
- package/lib/composables/calendar.js +16 -18
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/color.d.ts +8 -10
- package/lib/composables/color.js +21 -22
- package/lib/composables/color.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +1 -0
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +1 -0
- package/lib/composables/date/adapters/vuetify.js +101 -160
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +1 -1
- package/lib/composables/date/date.js +0 -20
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/defaults.js +6 -3
- package/lib/composables/defaults.js.map +1 -1
- package/lib/composables/density.d.ts +1 -1
- package/lib/composables/density.js +2 -2
- package/lib/composables/density.js.map +1 -1
- package/lib/composables/display.d.ts +4 -2
- package/lib/composables/display.js +2 -2
- package/lib/composables/display.js.map +1 -1
- package/lib/composables/elevation.js +4 -6
- package/lib/composables/elevation.js.map +1 -1
- package/lib/composables/filter.js +2 -1
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/focus.d.ts +4 -2
- package/lib/composables/focus.js +2 -2
- package/lib/composables/focus.js.map +1 -1
- package/lib/composables/form.d.ts +7 -7
- package/lib/composables/form.js +3 -3
- package/lib/composables/form.js.map +1 -1
- package/lib/composables/goto.js +2 -2
- package/lib/composables/goto.js.map +1 -1
- package/lib/composables/group.d.ts +3 -3
- package/lib/composables/group.js +4 -4
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/icons.d.ts +2 -2
- package/lib/composables/icons.js +2 -2
- package/lib/composables/icons.js.map +1 -1
- package/lib/composables/layout.d.ts +10 -4
- package/lib/composables/layout.js +4 -4
- package/lib/composables/layout.js.map +1 -1
- package/lib/composables/lazy.d.ts +1 -1
- package/lib/composables/lazy.js +2 -2
- package/lib/composables/lazy.js.map +1 -1
- package/lib/composables/loader.d.ts +4 -2
- package/lib/composables/loader.js +2 -2
- package/lib/composables/loader.js.map +1 -1
- package/lib/composables/locale.js +3 -3
- package/lib/composables/locale.js.map +1 -1
- package/lib/composables/nested/nested.d.ts +3 -3
- package/lib/composables/nested/nested.js +4 -4
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/composables/position.d.ts +1 -1
- package/lib/composables/position.js +2 -2
- package/lib/composables/position.js.map +1 -1
- package/lib/composables/router.d.ts +3 -3
- package/lib/composables/router.js +8 -8
- package/lib/composables/router.js.map +1 -1
- package/lib/composables/size.d.ts +8 -5
- package/lib/composables/size.js +6 -5
- package/lib/composables/size.js.map +1 -1
- package/lib/composables/ssrBoot.d.ts +4 -2
- package/lib/composables/ssrBoot.js +2 -2
- package/lib/composables/ssrBoot.js.map +1 -1
- package/lib/composables/stack.d.ts +7 -5
- package/lib/composables/stack.js +5 -5
- package/lib/composables/stack.js.map +1 -1
- package/lib/composables/theme.js +9 -9
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/variant.d.ts +5 -6
- package/lib/composables/variant.js +6 -6
- package/lib/composables/variant.js.map +1 -1
- package/lib/entry-bundler.d.ts +1 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +80 -71
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +607 -218
- package/lib/labs/VCalendar/VCalendar.js +55 -27
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.css +9 -0
- package/lib/labs/VCalendar/VCalendarDay.d.ts +329 -17
- package/lib/labs/VCalendar/VCalendarDay.js +18 -10
- package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.sass +8 -0
- package/lib/labs/VCalendar/VCalendarEvent.js +15 -5
- package/lib/labs/VCalendar/VCalendarEvent.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarHeader.d.ts +44 -17
- package/lib/labs/VCalendar/VCalendarHeader.js +5 -2
- package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarInterval.d.ts +171 -17
- package/lib/labs/VCalendar/VCalendarInterval.js +56 -19
- package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +92 -17
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js +30 -10
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +122 -88
- package/lib/labs/VCalendar/VCalendarMonthDay.js +24 -22
- package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
- package/lib/labs/VIconBtn/VIconBtn.d.ts +6 -21
- package/lib/labs/VIconBtn/VIconBtn.js +10 -12
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VPicker/VPicker.js +1 -2
- package/lib/labs/VPicker/VPicker.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +3 -3
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/labs/VTreeview/VTreeview.js +11 -11
- package/lib/labs/VTreeview/VTreeview.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +1 -0
- package/lib/util/box.js.map +1 -1
- package/lib/util/helpers.d.ts +7 -2
- package/lib/util/helpers.js +16 -5
- package/lib/util/helpers.js.map +1 -1
- package/package.json +49 -47
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.8.
|
|
2
|
+
* Vuetify v3.8.3
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -416,6 +416,9 @@
|
|
|
416
416
|
_classPrivateFieldInitSpec(this, _pointer, 0);
|
|
417
417
|
this.size = size;
|
|
418
418
|
}
|
|
419
|
+
get isFull() {
|
|
420
|
+
return _classPrivateFieldGet(_arr, this).length === this.size;
|
|
421
|
+
}
|
|
419
422
|
push(val) {
|
|
420
423
|
_classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;
|
|
421
424
|
_classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);
|
|
@@ -423,6 +426,10 @@
|
|
|
423
426
|
values() {
|
|
424
427
|
return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));
|
|
425
428
|
}
|
|
429
|
+
clear() {
|
|
430
|
+
_classPrivateFieldGet(_arr, this).length = 0;
|
|
431
|
+
_classPrivateFieldSet(_pointer, this, 0);
|
|
432
|
+
}
|
|
426
433
|
}
|
|
427
434
|
function getEventCoordinates(e) {
|
|
428
435
|
if ('touches' in e) {
|
|
@@ -446,15 +453,19 @@
|
|
|
446
453
|
|
|
447
454
|
function destructComputed(getter) {
|
|
448
455
|
const refs = vue.reactive({});
|
|
449
|
-
const base = vue.computed(getter);
|
|
450
456
|
vue.watchEffect(() => {
|
|
451
|
-
|
|
452
|
-
|
|
457
|
+
const base = getter();
|
|
458
|
+
for (const key in base) {
|
|
459
|
+
refs[key] = base[key];
|
|
453
460
|
}
|
|
454
461
|
}, {
|
|
455
462
|
flush: 'sync'
|
|
456
463
|
});
|
|
457
|
-
|
|
464
|
+
const obj = {};
|
|
465
|
+
for (const key in refs) {
|
|
466
|
+
obj[key] = vue.toRef(() => refs[key]);
|
|
467
|
+
}
|
|
468
|
+
return obj;
|
|
458
469
|
}
|
|
459
470
|
|
|
460
471
|
/** Array.includes but value can be any type */
|
|
@@ -1338,7 +1349,7 @@
|
|
|
1338
1349
|
return newDefaults;
|
|
1339
1350
|
}
|
|
1340
1351
|
function propIsDefined(vnode, prop) {
|
|
1341
|
-
return typeof vnode.props
|
|
1352
|
+
return vnode.props && (typeof vnode.props[prop] !== 'undefined' || typeof vnode.props[toKebabCase(prop)] !== 'undefined');
|
|
1342
1353
|
}
|
|
1343
1354
|
function internalUseDefaults() {
|
|
1344
1355
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -1355,9 +1366,12 @@
|
|
|
1355
1366
|
const propValue = Reflect.get(target, prop);
|
|
1356
1367
|
if (prop === 'class' || prop === 'style') {
|
|
1357
1368
|
return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
|
|
1358
|
-
} else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
|
1359
|
-
return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
|
|
1360
1369
|
}
|
|
1370
|
+
if (propIsDefined(vm.vnode, prop)) return propValue;
|
|
1371
|
+
const _componentDefault = componentDefaults.value?.[prop];
|
|
1372
|
+
if (_componentDefault !== undefined) return _componentDefault;
|
|
1373
|
+
const _globalDefault = defaults.value?.global?.[prop];
|
|
1374
|
+
if (_globalDefault !== undefined) return _globalDefault;
|
|
1361
1375
|
return propValue;
|
|
1362
1376
|
}
|
|
1363
1377
|
});
|
|
@@ -1745,7 +1759,7 @@
|
|
|
1745
1759
|
const mainRect = vue.computed(() => {
|
|
1746
1760
|
return layers.value[layers.value.length - 1].layer;
|
|
1747
1761
|
});
|
|
1748
|
-
const mainStyles = vue.
|
|
1762
|
+
const mainStyles = vue.toRef(() => {
|
|
1749
1763
|
return {
|
|
1750
1764
|
'--v-layout-left': convertToUnit(mainRect.value.left),
|
|
1751
1765
|
'--v-layout-right': convertToUnit(mainRect.value.right),
|
|
@@ -1860,10 +1874,10 @@
|
|
|
1860
1874
|
layoutRect,
|
|
1861
1875
|
rootZIndex
|
|
1862
1876
|
});
|
|
1863
|
-
const layoutClasses = vue.
|
|
1877
|
+
const layoutClasses = vue.toRef(() => ['v-layout', {
|
|
1864
1878
|
'v-layout--full-height': props.fullHeight
|
|
1865
1879
|
}]);
|
|
1866
|
-
const layoutStyles = vue.
|
|
1880
|
+
const layoutStyles = vue.toRef(() => ({
|
|
1867
1881
|
zIndex: parentLayout ? rootZIndex.value : undefined,
|
|
1868
1882
|
position: parentLayout ? 'relative' : undefined,
|
|
1869
1883
|
overflow: parentLayout ? 'hidden' : undefined
|
|
@@ -2254,7 +2268,7 @@
|
|
|
2254
2268
|
return {
|
|
2255
2269
|
isRtl,
|
|
2256
2270
|
rtl,
|
|
2257
|
-
rtlClasses: vue.
|
|
2271
|
+
rtlClasses: vue.toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
|
|
2258
2272
|
};
|
|
2259
2273
|
}
|
|
2260
2274
|
function provideRtl(locale, rtl, props) {
|
|
@@ -2262,7 +2276,7 @@
|
|
|
2262
2276
|
return {
|
|
2263
2277
|
isRtl,
|
|
2264
2278
|
rtl,
|
|
2265
|
-
rtlClasses: vue.
|
|
2279
|
+
rtlClasses: vue.toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
|
|
2266
2280
|
};
|
|
2267
2281
|
}
|
|
2268
2282
|
function useRtl() {
|
|
@@ -2335,8 +2349,8 @@
|
|
|
2335
2349
|
surface: '#212121',
|
|
2336
2350
|
'surface-bright': '#ccbfd6',
|
|
2337
2351
|
'surface-light': '#424242',
|
|
2338
|
-
'surface-variant': '#
|
|
2339
|
-
'on-surface-variant': '#
|
|
2352
|
+
'surface-variant': '#c8c8c8',
|
|
2353
|
+
'on-surface-variant': '#000000',
|
|
2340
2354
|
primary: '#2196F3',
|
|
2341
2355
|
'primary-darken-1': '#277CC1',
|
|
2342
2356
|
secondary: '#54B6B2',
|
|
@@ -2486,7 +2500,7 @@
|
|
|
2486
2500
|
}
|
|
2487
2501
|
return acc;
|
|
2488
2502
|
});
|
|
2489
|
-
const current = vue.
|
|
2503
|
+
const current = vue.toRef(() => computedThemes.value[name.value]);
|
|
2490
2504
|
const styles = vue.computed(() => {
|
|
2491
2505
|
const lines = [];
|
|
2492
2506
|
if (current.value?.dark) {
|
|
@@ -2533,7 +2547,7 @@
|
|
|
2533
2547
|
}
|
|
2534
2548
|
} else {
|
|
2535
2549
|
if (IN_BROWSER) {
|
|
2536
|
-
head.addHeadObjs(vue.
|
|
2550
|
+
head.addHeadObjs(vue.toRef(getHead));
|
|
2537
2551
|
vue.watchEffect(() => head.updateDOM());
|
|
2538
2552
|
} else {
|
|
2539
2553
|
head.addHeadObjs(getHead());
|
|
@@ -2552,7 +2566,7 @@
|
|
|
2552
2566
|
}
|
|
2553
2567
|
}
|
|
2554
2568
|
}
|
|
2555
|
-
const themeClasses = vue.
|
|
2569
|
+
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
|
2556
2570
|
return {
|
|
2557
2571
|
install,
|
|
2558
2572
|
isDisabled: parsedOptions.isDisabled,
|
|
@@ -2572,9 +2586,9 @@
|
|
|
2572
2586
|
getCurrentInstance('provideTheme');
|
|
2573
2587
|
const theme = vue.inject(ThemeSymbol, null);
|
|
2574
2588
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
|
2575
|
-
const name = vue.
|
|
2576
|
-
const current = vue.
|
|
2577
|
-
const themeClasses = vue.
|
|
2589
|
+
const name = vue.toRef(() => props.theme ?? theme.name.value);
|
|
2590
|
+
const current = vue.toRef(() => theme.themes.value[name.value]);
|
|
2591
|
+
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
|
2578
2592
|
const newTheme = {
|
|
2579
2593
|
...theme,
|
|
2580
2594
|
name,
|
|
@@ -2858,6 +2872,7 @@
|
|
|
2858
2872
|
const makeVDialogTransitionProps = propsFactory({
|
|
2859
2873
|
target: [Object, Array]
|
|
2860
2874
|
}, 'v-dialog-transition');
|
|
2875
|
+
const saved = new WeakMap();
|
|
2861
2876
|
const VDialogTransition = genericComponent()({
|
|
2862
2877
|
name: 'VDialogTransition',
|
|
2863
2878
|
props: makeVDialogTransitionProps(),
|
|
@@ -2874,13 +2889,15 @@
|
|
|
2874
2889
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
2875
2890
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
2876
2891
|
el.style.visibility = '';
|
|
2892
|
+
const dimensions = getDimensions(props.target, el);
|
|
2877
2893
|
const {
|
|
2878
2894
|
x,
|
|
2879
2895
|
y,
|
|
2880
2896
|
sx,
|
|
2881
2897
|
sy,
|
|
2882
2898
|
speed
|
|
2883
|
-
} =
|
|
2899
|
+
} = dimensions;
|
|
2900
|
+
saved.set(el, dimensions);
|
|
2884
2901
|
const animation = animate(el, [{
|
|
2885
2902
|
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
|
2886
2903
|
opacity: 0
|
|
@@ -2909,13 +2926,19 @@
|
|
|
2909
2926
|
},
|
|
2910
2927
|
async onLeave(el, done) {
|
|
2911
2928
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
2929
|
+
let dimensions;
|
|
2930
|
+
if (!Array.isArray(props.target) && !props.target.offsetParent && saved.has(el)) {
|
|
2931
|
+
dimensions = saved.get(el);
|
|
2932
|
+
} else {
|
|
2933
|
+
dimensions = getDimensions(props.target, el);
|
|
2934
|
+
}
|
|
2912
2935
|
const {
|
|
2913
2936
|
x,
|
|
2914
2937
|
y,
|
|
2915
2938
|
sx,
|
|
2916
2939
|
sy,
|
|
2917
2940
|
speed
|
|
2918
|
-
} =
|
|
2941
|
+
} = dimensions;
|
|
2919
2942
|
const animation = animate(el, [{}, {
|
|
2920
2943
|
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
|
2921
2944
|
opacity: 0
|
|
@@ -3135,13 +3158,14 @@
|
|
|
3135
3158
|
// Composables
|
|
3136
3159
|
function useColor(colors) {
|
|
3137
3160
|
return destructComputed(() => {
|
|
3161
|
+
const _colors = vue.toValue(colors);
|
|
3138
3162
|
const classes = [];
|
|
3139
3163
|
const styles = {};
|
|
3140
|
-
if (
|
|
3141
|
-
if (isCssColor(
|
|
3142
|
-
styles.backgroundColor =
|
|
3143
|
-
if (!
|
|
3144
|
-
const backgroundColor = parseColor(
|
|
3164
|
+
if (_colors.background) {
|
|
3165
|
+
if (isCssColor(_colors.background)) {
|
|
3166
|
+
styles.backgroundColor = _colors.background;
|
|
3167
|
+
if (!_colors.text && isParsableColor(_colors.background)) {
|
|
3168
|
+
const backgroundColor = parseColor(_colors.background);
|
|
3145
3169
|
if (backgroundColor.a == null || backgroundColor.a === 1) {
|
|
3146
3170
|
const textColor = getForeground(backgroundColor);
|
|
3147
3171
|
styles.color = textColor;
|
|
@@ -3149,15 +3173,15 @@
|
|
|
3149
3173
|
}
|
|
3150
3174
|
}
|
|
3151
3175
|
} else {
|
|
3152
|
-
classes.push(`bg-${
|
|
3176
|
+
classes.push(`bg-${_colors.background}`);
|
|
3153
3177
|
}
|
|
3154
3178
|
}
|
|
3155
|
-
if (
|
|
3156
|
-
if (isCssColor(
|
|
3157
|
-
styles.color =
|
|
3158
|
-
styles.caretColor =
|
|
3179
|
+
if (_colors.text) {
|
|
3180
|
+
if (isCssColor(_colors.text)) {
|
|
3181
|
+
styles.color = _colors.text;
|
|
3182
|
+
styles.caretColor = _colors.text;
|
|
3159
3183
|
} else {
|
|
3160
|
-
classes.push(`text-${
|
|
3184
|
+
classes.push(`text-${_colors.text}`);
|
|
3161
3185
|
}
|
|
3162
3186
|
}
|
|
3163
3187
|
return {
|
|
@@ -3166,27 +3190,25 @@
|
|
|
3166
3190
|
};
|
|
3167
3191
|
});
|
|
3168
3192
|
}
|
|
3169
|
-
function useTextColor(
|
|
3170
|
-
const colors = vue.computed(() => ({
|
|
3171
|
-
text: vue.isRef(props) ? props.value : name ? props[name] : null
|
|
3172
|
-
}));
|
|
3193
|
+
function useTextColor(color) {
|
|
3173
3194
|
const {
|
|
3174
3195
|
colorClasses: textColorClasses,
|
|
3175
3196
|
colorStyles: textColorStyles
|
|
3176
|
-
} = useColor(
|
|
3197
|
+
} = useColor(() => ({
|
|
3198
|
+
text: vue.toValue(color)
|
|
3199
|
+
}));
|
|
3177
3200
|
return {
|
|
3178
3201
|
textColorClasses,
|
|
3179
3202
|
textColorStyles
|
|
3180
3203
|
};
|
|
3181
3204
|
}
|
|
3182
|
-
function useBackgroundColor(
|
|
3183
|
-
const colors = vue.computed(() => ({
|
|
3184
|
-
background: vue.isRef(props) ? props.value : name ? props[name] : null
|
|
3185
|
-
}));
|
|
3205
|
+
function useBackgroundColor(color) {
|
|
3186
3206
|
const {
|
|
3187
3207
|
colorClasses: backgroundColorClasses,
|
|
3188
3208
|
colorStyles: backgroundColorStyles
|
|
3189
|
-
} = useColor(
|
|
3209
|
+
} = useColor(() => ({
|
|
3210
|
+
background: vue.toValue(color)
|
|
3211
|
+
}));
|
|
3190
3212
|
return {
|
|
3191
3213
|
backgroundColorClasses,
|
|
3192
3214
|
backgroundColorStyles
|
|
@@ -3370,7 +3392,7 @@
|
|
|
3370
3392
|
const {
|
|
3371
3393
|
backgroundColorClasses,
|
|
3372
3394
|
backgroundColorStyles
|
|
3373
|
-
} = useBackgroundColor(
|
|
3395
|
+
} = useBackgroundColor(() => props.color);
|
|
3374
3396
|
const {
|
|
3375
3397
|
roundedClasses
|
|
3376
3398
|
} = useRounded(props);
|
|
@@ -3477,7 +3499,7 @@
|
|
|
3477
3499
|
};
|
|
3478
3500
|
poll();
|
|
3479
3501
|
}
|
|
3480
|
-
const containClasses = vue.
|
|
3502
|
+
const containClasses = vue.toRef(() => ({
|
|
3481
3503
|
'v-img__img--cover': props.cover,
|
|
3482
3504
|
'v-img__img--contain': !props.cover
|
|
3483
3505
|
}));
|
|
@@ -3614,16 +3636,13 @@
|
|
|
3614
3636
|
function useBorder(props) {
|
|
3615
3637
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
3616
3638
|
const borderClasses = vue.computed(() => {
|
|
3617
|
-
const border =
|
|
3618
|
-
const classes = [];
|
|
3639
|
+
const border = props.border;
|
|
3619
3640
|
if (border === true || border === '') {
|
|
3620
|
-
|
|
3641
|
+
return `${name}--border`;
|
|
3621
3642
|
} else if (typeof border === 'string' || border === 0) {
|
|
3622
|
-
|
|
3623
|
-
classes.push(`border-${value}`);
|
|
3624
|
-
}
|
|
3643
|
+
return String(border).split(' ').map(v => `border-${v}`);
|
|
3625
3644
|
}
|
|
3626
|
-
return
|
|
3645
|
+
return [];
|
|
3627
3646
|
});
|
|
3628
3647
|
return {
|
|
3629
3648
|
borderClasses
|
|
@@ -3648,12 +3667,10 @@
|
|
|
3648
3667
|
}
|
|
3649
3668
|
}, 'elevation');
|
|
3650
3669
|
function useElevation(props) {
|
|
3651
|
-
const elevationClasses = vue.
|
|
3670
|
+
const elevationClasses = vue.toRef(() => {
|
|
3652
3671
|
const elevation = vue.isRef(props) ? props.value : props.elevation;
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
classes.push(`elevation-${elevation}`);
|
|
3656
|
-
return classes;
|
|
3672
|
+
if (elevation == null) return [];
|
|
3673
|
+
return [`elevation-${elevation}`];
|
|
3657
3674
|
});
|
|
3658
3675
|
return {
|
|
3659
3676
|
elevationClasses
|
|
@@ -3704,7 +3721,7 @@
|
|
|
3704
3721
|
const {
|
|
3705
3722
|
backgroundColorClasses,
|
|
3706
3723
|
backgroundColorStyles
|
|
3707
|
-
} = useBackgroundColor(
|
|
3724
|
+
} = useBackgroundColor(() => props.color);
|
|
3708
3725
|
const {
|
|
3709
3726
|
borderClasses
|
|
3710
3727
|
} = useBorder(props);
|
|
@@ -3913,7 +3930,7 @@
|
|
|
3913
3930
|
isBooted.value = true;
|
|
3914
3931
|
});
|
|
3915
3932
|
});
|
|
3916
|
-
const ssrBootStyles = vue.
|
|
3933
|
+
const ssrBootStyles = vue.toRef(() => !isBooted.value ? {
|
|
3917
3934
|
transition: 'none !important'
|
|
3918
3935
|
} : undefined);
|
|
3919
3936
|
return {
|
|
@@ -3981,7 +3998,7 @@
|
|
|
3981
3998
|
} = useScroll(props, {
|
|
3982
3999
|
canScroll
|
|
3983
4000
|
});
|
|
3984
|
-
const canHide = vue.
|
|
4001
|
+
const canHide = vue.toRef(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
|
|
3985
4002
|
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
|
|
3986
4003
|
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
|
3987
4004
|
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
@@ -3992,7 +4009,7 @@
|
|
|
3992
4009
|
if (!canHide.value) return height + extensionHeight;
|
|
3993
4010
|
return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;
|
|
3994
4011
|
});
|
|
3995
|
-
useToggleScope(
|
|
4012
|
+
useToggleScope(() => !!props.scrollBehavior, () => {
|
|
3996
4013
|
vue.watchEffect(() => {
|
|
3997
4014
|
if (canHide.value) {
|
|
3998
4015
|
if (scrollBehavior.value.inverted) {
|
|
@@ -4013,11 +4030,11 @@
|
|
|
4013
4030
|
} = useLayoutItem({
|
|
4014
4031
|
id: props.name,
|
|
4015
4032
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
4016
|
-
position: vue.toRef(props
|
|
4033
|
+
position: vue.toRef(() => props.location),
|
|
4017
4034
|
layoutSize: height,
|
|
4018
4035
|
elementSize: vue.shallowRef(undefined),
|
|
4019
4036
|
active: isActive,
|
|
4020
|
-
absolute: vue.toRef(props
|
|
4037
|
+
absolute: vue.toRef(() => props.absolute)
|
|
4021
4038
|
});
|
|
4022
4039
|
useRender(() => {
|
|
4023
4040
|
const toolbarProps = VToolbar.filterProps(props);
|
|
@@ -4060,7 +4077,7 @@
|
|
|
4060
4077
|
}, 'density');
|
|
4061
4078
|
function useDensity(props) {
|
|
4062
4079
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
4063
|
-
const densityClasses = vue.
|
|
4080
|
+
const densityClasses = vue.toRef(() => {
|
|
4064
4081
|
return `${name}--density-${props.density}`;
|
|
4065
4082
|
});
|
|
4066
4083
|
return {
|
|
@@ -4090,24 +4107,24 @@
|
|
|
4090
4107
|
}, 'variant');
|
|
4091
4108
|
function useVariant(props) {
|
|
4092
4109
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
4093
|
-
const variantClasses = vue.
|
|
4110
|
+
const variantClasses = vue.toRef(() => {
|
|
4094
4111
|
const {
|
|
4095
4112
|
variant
|
|
4096
|
-
} = vue.
|
|
4113
|
+
} = vue.toValue(props);
|
|
4097
4114
|
return `${name}--variant-${variant}`;
|
|
4098
4115
|
});
|
|
4099
4116
|
const {
|
|
4100
4117
|
colorClasses,
|
|
4101
4118
|
colorStyles
|
|
4102
|
-
} = useColor(
|
|
4119
|
+
} = useColor(() => {
|
|
4103
4120
|
const {
|
|
4104
4121
|
variant,
|
|
4105
4122
|
color
|
|
4106
|
-
} = vue.
|
|
4123
|
+
} = vue.toValue(props);
|
|
4107
4124
|
return {
|
|
4108
4125
|
[['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color
|
|
4109
4126
|
};
|
|
4110
|
-
})
|
|
4127
|
+
});
|
|
4111
4128
|
return {
|
|
4112
4129
|
colorClasses,
|
|
4113
4130
|
colorStyles,
|
|
@@ -4152,11 +4169,11 @@
|
|
|
4152
4169
|
provideDefaults({
|
|
4153
4170
|
VBtn: {
|
|
4154
4171
|
height: 'auto',
|
|
4155
|
-
baseColor: vue.toRef(props
|
|
4156
|
-
color: vue.toRef(props
|
|
4157
|
-
density: vue.toRef(props
|
|
4172
|
+
baseColor: vue.toRef(() => props.baseColor),
|
|
4173
|
+
color: vue.toRef(() => props.color),
|
|
4174
|
+
density: vue.toRef(() => props.density),
|
|
4158
4175
|
flat: true,
|
|
4159
|
-
variant: vue.toRef(props
|
|
4176
|
+
variant: vue.toRef(() => props.variant)
|
|
4160
4177
|
}
|
|
4161
4178
|
});
|
|
4162
4179
|
useRender(() => {
|
|
@@ -4206,7 +4223,7 @@
|
|
|
4206
4223
|
if (!required) return group;
|
|
4207
4224
|
throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
|
|
4208
4225
|
}
|
|
4209
|
-
const value = vue.toRef(props
|
|
4226
|
+
const value = vue.toRef(() => props.value);
|
|
4210
4227
|
const disabled = vue.computed(() => !!(group.disabled.value || props.disabled));
|
|
4211
4228
|
group.register({
|
|
4212
4229
|
id,
|
|
@@ -4355,12 +4372,12 @@
|
|
|
4355
4372
|
unregister,
|
|
4356
4373
|
selected,
|
|
4357
4374
|
select,
|
|
4358
|
-
disabled: vue.toRef(props
|
|
4375
|
+
disabled: vue.toRef(() => props.disabled),
|
|
4359
4376
|
prev: () => step(items.length - 1),
|
|
4360
4377
|
next: () => step(1),
|
|
4361
4378
|
isSelected: id => selected.value.includes(id),
|
|
4362
|
-
selectedClass: vue.
|
|
4363
|
-
items: vue.
|
|
4379
|
+
selectedClass: vue.toRef(() => props.selectedClass),
|
|
4380
|
+
items: vue.toRef(() => items),
|
|
4364
4381
|
getItemIndex: value => getItemIndex(items, value)
|
|
4365
4382
|
};
|
|
4366
4383
|
vue.provide(injectKey, state);
|
|
@@ -4616,7 +4633,7 @@
|
|
|
4616
4633
|
const icons = vue.inject(IconSymbol);
|
|
4617
4634
|
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
4618
4635
|
const iconData = vue.computed(() => {
|
|
4619
|
-
const iconAlias = vue.
|
|
4636
|
+
const iconAlias = vue.toValue(props);
|
|
4620
4637
|
if (!iconAlias) return {
|
|
4621
4638
|
component: VComponentIcon
|
|
4622
4639
|
};
|
|
@@ -4666,14 +4683,15 @@
|
|
|
4666
4683
|
function useSize(props) {
|
|
4667
4684
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
4668
4685
|
return destructComputed(() => {
|
|
4686
|
+
const size = props.size;
|
|
4669
4687
|
let sizeClasses;
|
|
4670
4688
|
let sizeStyles;
|
|
4671
|
-
if (includes(predefinedSizes,
|
|
4672
|
-
sizeClasses = `${name}--size-${
|
|
4673
|
-
} else if (
|
|
4689
|
+
if (includes(predefinedSizes, size)) {
|
|
4690
|
+
sizeClasses = `${name}--size-${size}`;
|
|
4691
|
+
} else if (size) {
|
|
4674
4692
|
sizeStyles = {
|
|
4675
|
-
width: convertToUnit(
|
|
4676
|
-
height: convertToUnit(
|
|
4693
|
+
width: convertToUnit(size),
|
|
4694
|
+
height: convertToUnit(size)
|
|
4677
4695
|
};
|
|
4678
4696
|
}
|
|
4679
4697
|
return {
|
|
@@ -4705,20 +4723,20 @@
|
|
|
4705
4723
|
attrs,
|
|
4706
4724
|
slots
|
|
4707
4725
|
} = _ref;
|
|
4708
|
-
const slotIcon = vue.
|
|
4726
|
+
const slotIcon = vue.shallowRef();
|
|
4709
4727
|
const {
|
|
4710
4728
|
themeClasses
|
|
4711
4729
|
} = useTheme();
|
|
4712
4730
|
const {
|
|
4713
4731
|
iconData
|
|
4714
|
-
} = useIcon(
|
|
4732
|
+
} = useIcon(() => slotIcon.value || props.icon);
|
|
4715
4733
|
const {
|
|
4716
4734
|
sizeClasses
|
|
4717
4735
|
} = useSize(props);
|
|
4718
4736
|
const {
|
|
4719
4737
|
textColorClasses,
|
|
4720
4738
|
textColorStyles
|
|
4721
|
-
} = useTextColor(
|
|
4739
|
+
} = useTextColor(() => props.color);
|
|
4722
4740
|
useRender(() => {
|
|
4723
4741
|
const slotValue = slots.default?.();
|
|
4724
4742
|
if (slotValue) {
|
|
@@ -4824,11 +4842,11 @@
|
|
|
4824
4842
|
const {
|
|
4825
4843
|
textColorClasses,
|
|
4826
4844
|
textColorStyles
|
|
4827
|
-
} = useTextColor(
|
|
4845
|
+
} = useTextColor(() => props.color);
|
|
4828
4846
|
const {
|
|
4829
4847
|
textColorClasses: underlayColorClasses,
|
|
4830
4848
|
textColorStyles: underlayColorStyles
|
|
4831
|
-
} = useTextColor(
|
|
4849
|
+
} = useTextColor(() => props.bgColor);
|
|
4832
4850
|
const {
|
|
4833
4851
|
intersectionRef,
|
|
4834
4852
|
isIntersecting
|
|
@@ -4837,15 +4855,15 @@
|
|
|
4837
4855
|
resizeRef,
|
|
4838
4856
|
contentRect
|
|
4839
4857
|
} = useResizeObserver();
|
|
4840
|
-
const normalizedValue = vue.
|
|
4841
|
-
const width = vue.
|
|
4842
|
-
const size = vue.
|
|
4858
|
+
const normalizedValue = vue.toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
|
|
4859
|
+
const width = vue.toRef(() => Number(props.width));
|
|
4860
|
+
const size = vue.toRef(() => {
|
|
4843
4861
|
// Get size from element if size prop value is small, large etc
|
|
4844
4862
|
return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);
|
|
4845
4863
|
});
|
|
4846
|
-
const diameter = vue.
|
|
4847
|
-
const strokeWidth = vue.
|
|
4848
|
-
const strokeDashOffset = vue.
|
|
4864
|
+
const diameter = vue.toRef(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
|
|
4865
|
+
const strokeWidth = vue.toRef(() => width.value / size.value * diameter.value);
|
|
4866
|
+
const strokeDashOffset = vue.toRef(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));
|
|
4849
4867
|
vue.watchEffect(() => {
|
|
4850
4868
|
intersectionRef.value = root.value;
|
|
4851
4869
|
resizeRef.value = root.value;
|
|
@@ -5023,19 +5041,19 @@
|
|
|
5023
5041
|
const {
|
|
5024
5042
|
textColorClasses,
|
|
5025
5043
|
textColorStyles
|
|
5026
|
-
} = useTextColor(props
|
|
5044
|
+
} = useTextColor(() => props.color);
|
|
5027
5045
|
const {
|
|
5028
5046
|
backgroundColorClasses,
|
|
5029
5047
|
backgroundColorStyles
|
|
5030
|
-
} = useBackgroundColor(
|
|
5048
|
+
} = useBackgroundColor(() => props.bgColor || props.color);
|
|
5031
5049
|
const {
|
|
5032
5050
|
backgroundColorClasses: bufferColorClasses,
|
|
5033
5051
|
backgroundColorStyles: bufferColorStyles
|
|
5034
|
-
} = useBackgroundColor(
|
|
5052
|
+
} = useBackgroundColor(() => props.bufferColor || props.bgColor || props.color);
|
|
5035
5053
|
const {
|
|
5036
5054
|
backgroundColorClasses: barColorClasses,
|
|
5037
5055
|
backgroundColorStyles: barColorStyles
|
|
5038
|
-
} = useBackgroundColor(props
|
|
5056
|
+
} = useBackgroundColor(() => props.color);
|
|
5039
5057
|
const {
|
|
5040
5058
|
roundedClasses
|
|
5041
5059
|
} = useRounded(props);
|
|
@@ -5142,7 +5160,7 @@
|
|
|
5142
5160
|
}, 'loader');
|
|
5143
5161
|
function useLoader(props) {
|
|
5144
5162
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
5145
|
-
const loaderClasses = vue.
|
|
5163
|
+
const loaderClasses = vue.toRef(() => ({
|
|
5146
5164
|
[`${name}--loading`]: props.loading
|
|
5147
5165
|
}));
|
|
5148
5166
|
return {
|
|
@@ -5181,7 +5199,7 @@
|
|
|
5181
5199
|
}, 'position');
|
|
5182
5200
|
function usePosition(props) {
|
|
5183
5201
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
5184
|
-
const positionClasses = vue.
|
|
5202
|
+
const positionClasses = vue.toRef(() => {
|
|
5185
5203
|
return props.position ? `${name}--${props.position}` : undefined;
|
|
5186
5204
|
});
|
|
5187
5205
|
return {
|
|
@@ -5202,12 +5220,12 @@
|
|
|
5202
5220
|
}
|
|
5203
5221
|
function useLink(props, attrs) {
|
|
5204
5222
|
const RouterLink = vue.resolveDynamicComponent('RouterLink');
|
|
5205
|
-
const isLink = vue.
|
|
5223
|
+
const isLink = vue.toRef(() => !!(props.href || props.to));
|
|
5206
5224
|
const isClickable = vue.computed(() => {
|
|
5207
5225
|
return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
|
|
5208
5226
|
});
|
|
5209
5227
|
if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
|
|
5210
|
-
const href = vue.toRef(props
|
|
5228
|
+
const href = vue.toRef(() => props.href);
|
|
5211
5229
|
return {
|
|
5212
5230
|
isLink,
|
|
5213
5231
|
isClickable,
|
|
@@ -5217,12 +5235,12 @@
|
|
|
5217
5235
|
})
|
|
5218
5236
|
};
|
|
5219
5237
|
}
|
|
5238
|
+
|
|
5220
5239
|
// vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
|
|
5221
|
-
const
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
})
|
|
5225
|
-
const routerLink = RouterLink.useLink(linkProps.value);
|
|
5240
|
+
const routerLink = RouterLink.useLink({
|
|
5241
|
+
to: vue.toRef(() => props.to || ''),
|
|
5242
|
+
replace: vue.toRef(() => props.replace)
|
|
5243
|
+
});
|
|
5226
5244
|
// Actual link needs to be undefined when to prop is not used
|
|
5227
5245
|
const link = vue.computed(() => props.to ? routerLink : undefined);
|
|
5228
5246
|
const route = useRoute();
|
|
@@ -5242,7 +5260,7 @@
|
|
|
5242
5260
|
href,
|
|
5243
5261
|
linkProps: vue.reactive({
|
|
5244
5262
|
href,
|
|
5245
|
-
'aria-current': vue.
|
|
5263
|
+
'aria-current': vue.toRef(() => isActive.value ? 'page' : undefined)
|
|
5246
5264
|
})
|
|
5247
5265
|
};
|
|
5248
5266
|
}
|
|
@@ -5691,7 +5709,7 @@
|
|
|
5691
5709
|
}
|
|
5692
5710
|
return group?.isSelected.value;
|
|
5693
5711
|
});
|
|
5694
|
-
const color = vue.
|
|
5712
|
+
const color = vue.toRef(() => isActive.value ? props.activeColor ?? props.color : props.color);
|
|
5695
5713
|
const variantProps = vue.computed(() => {
|
|
5696
5714
|
const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
|
|
5697
5715
|
return {
|
|
@@ -5705,7 +5723,7 @@
|
|
|
5705
5723
|
variantClasses
|
|
5706
5724
|
} = useVariant(variantProps);
|
|
5707
5725
|
const isDisabled = vue.computed(() => group?.disabled.value || props.disabled);
|
|
5708
|
-
const isElevated = vue.
|
|
5726
|
+
const isElevated = vue.toRef(() => {
|
|
5709
5727
|
return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
|
|
5710
5728
|
});
|
|
5711
5729
|
const valueAttr = vue.computed(() => {
|
|
@@ -5908,15 +5926,11 @@
|
|
|
5908
5926
|
slots
|
|
5909
5927
|
} = _ref;
|
|
5910
5928
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
5911
|
-
const icon = vue.
|
|
5929
|
+
const icon = vue.toRef(() => {
|
|
5912
5930
|
if (props.icon === false) return undefined;
|
|
5913
5931
|
if (!props.type) return props.icon;
|
|
5914
5932
|
return props.icon ?? `$${props.type}`;
|
|
5915
5933
|
});
|
|
5916
|
-
const variantProps = vue.computed(() => ({
|
|
5917
|
-
color: props.color ?? props.type,
|
|
5918
|
-
variant: props.variant
|
|
5919
|
-
}));
|
|
5920
5934
|
const {
|
|
5921
5935
|
themeClasses
|
|
5922
5936
|
} = provideTheme(props);
|
|
@@ -5924,7 +5938,10 @@
|
|
|
5924
5938
|
colorClasses,
|
|
5925
5939
|
colorStyles,
|
|
5926
5940
|
variantClasses
|
|
5927
|
-
} = useVariant(
|
|
5941
|
+
} = useVariant(() => ({
|
|
5942
|
+
color: props.color ?? props.type,
|
|
5943
|
+
variant: props.variant
|
|
5944
|
+
}));
|
|
5928
5945
|
const {
|
|
5929
5946
|
densityClasses
|
|
5930
5947
|
} = useDensity(props);
|
|
@@ -5946,11 +5963,11 @@
|
|
|
5946
5963
|
const {
|
|
5947
5964
|
textColorClasses,
|
|
5948
5965
|
textColorStyles
|
|
5949
|
-
} = useTextColor(
|
|
5966
|
+
} = useTextColor(() => props.borderColor);
|
|
5950
5967
|
const {
|
|
5951
5968
|
t
|
|
5952
5969
|
} = useLocale();
|
|
5953
|
-
const closeProps = vue.
|
|
5970
|
+
const closeProps = vue.toRef(() => ({
|
|
5954
5971
|
'aria-label': t(props.closeLabel),
|
|
5955
5972
|
onClick(e) {
|
|
5956
5973
|
isActive.value = false;
|
|
@@ -6187,8 +6204,8 @@
|
|
|
6187
6204
|
} = _ref;
|
|
6188
6205
|
const modelValue = useProxiedModel(props, 'modelValue');
|
|
6189
6206
|
const uid = vue.useId();
|
|
6190
|
-
const id = vue.
|
|
6191
|
-
const name = vue.
|
|
6207
|
+
const id = vue.toRef(() => props.id || `v-selection-control-group-${uid}`);
|
|
6208
|
+
const name = vue.toRef(() => props.name || id.value);
|
|
6192
6209
|
const updateHandlers = new Set();
|
|
6193
6210
|
vue.provide(VSelectionControlGroupSymbol, {
|
|
6194
6211
|
modelValue,
|
|
@@ -6204,20 +6221,20 @@
|
|
|
6204
6221
|
});
|
|
6205
6222
|
provideDefaults({
|
|
6206
6223
|
[props.defaultsTarget]: {
|
|
6207
|
-
color: vue.toRef(props
|
|
6208
|
-
disabled: vue.toRef(props
|
|
6209
|
-
density: vue.toRef(props
|
|
6210
|
-
error: vue.toRef(props
|
|
6211
|
-
inline: vue.toRef(props
|
|
6224
|
+
color: vue.toRef(() => props.color),
|
|
6225
|
+
disabled: vue.toRef(() => props.disabled),
|
|
6226
|
+
density: vue.toRef(() => props.density),
|
|
6227
|
+
error: vue.toRef(() => props.error),
|
|
6228
|
+
inline: vue.toRef(() => props.inline),
|
|
6212
6229
|
modelValue,
|
|
6213
|
-
multiple: vue.
|
|
6230
|
+
multiple: vue.toRef(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
|
|
6214
6231
|
name,
|
|
6215
|
-
falseIcon: vue.toRef(props
|
|
6216
|
-
trueIcon: vue.toRef(props
|
|
6217
|
-
readonly: vue.toRef(props
|
|
6218
|
-
ripple: vue.toRef(props
|
|
6219
|
-
type: vue.toRef(props
|
|
6220
|
-
valueComparator: vue.toRef(props
|
|
6232
|
+
falseIcon: vue.toRef(() => props.falseIcon),
|
|
6233
|
+
trueIcon: vue.toRef(() => props.trueIcon),
|
|
6234
|
+
readonly: vue.toRef(() => props.readonly),
|
|
6235
|
+
ripple: vue.toRef(() => props.ripple),
|
|
6236
|
+
type: vue.toRef(() => props.type),
|
|
6237
|
+
valueComparator: vue.toRef(() => props.valueComparator)
|
|
6221
6238
|
}
|
|
6222
6239
|
});
|
|
6223
6240
|
useRender(() => vue.createVNode("div", {
|
|
@@ -6273,16 +6290,16 @@
|
|
|
6273
6290
|
const {
|
|
6274
6291
|
textColorClasses,
|
|
6275
6292
|
textColorStyles
|
|
6276
|
-
} = useTextColor(
|
|
6293
|
+
} = useTextColor(() => {
|
|
6277
6294
|
if (props.error || props.disabled) return undefined;
|
|
6278
6295
|
return model.value ? props.color : props.baseColor;
|
|
6279
|
-
})
|
|
6296
|
+
});
|
|
6280
6297
|
const {
|
|
6281
6298
|
backgroundColorClasses,
|
|
6282
6299
|
backgroundColorStyles
|
|
6283
|
-
} = useBackgroundColor(
|
|
6300
|
+
} = useBackgroundColor(() => {
|
|
6284
6301
|
return model.value && !props.error && !props.disabled ? props.color : props.baseColor;
|
|
6285
|
-
})
|
|
6302
|
+
});
|
|
6286
6303
|
const icon = vue.computed(() => model.value ? props.trueIcon : props.falseIcon);
|
|
6287
6304
|
return {
|
|
6288
6305
|
group,
|
|
@@ -6327,8 +6344,8 @@
|
|
|
6327
6344
|
const isFocused = vue.shallowRef(false);
|
|
6328
6345
|
const isFocusVisible = vue.shallowRef(false);
|
|
6329
6346
|
const input = vue.ref();
|
|
6330
|
-
const id = vue.
|
|
6331
|
-
const isInteractive = vue.
|
|
6347
|
+
const id = vue.toRef(() => props.id || `input-${uid}`);
|
|
6348
|
+
const isInteractive = vue.toRef(() => !props.disabled && !props.readonly);
|
|
6332
6349
|
group?.onForceUpdate(() => {
|
|
6333
6350
|
if (input.value) {
|
|
6334
6351
|
input.value.checked = model.value;
|
|
@@ -6466,10 +6483,10 @@
|
|
|
6466
6483
|
indeterminate.value = false;
|
|
6467
6484
|
}
|
|
6468
6485
|
}
|
|
6469
|
-
const falseIcon = vue.
|
|
6486
|
+
const falseIcon = vue.toRef(() => {
|
|
6470
6487
|
return indeterminate.value ? props.indeterminateIcon : props.falseIcon;
|
|
6471
6488
|
});
|
|
6472
|
-
const trueIcon = vue.
|
|
6489
|
+
const trueIcon = vue.toRef(() => {
|
|
6473
6490
|
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
|
|
6474
6491
|
});
|
|
6475
6492
|
useRender(() => {
|
|
@@ -6557,7 +6574,7 @@
|
|
|
6557
6574
|
const {
|
|
6558
6575
|
textColorClasses,
|
|
6559
6576
|
textColorStyles
|
|
6560
|
-
} = useTextColor(
|
|
6577
|
+
} = useTextColor(() => props.color);
|
|
6561
6578
|
useRender(() => vue.createVNode(MaybeTransition, {
|
|
6562
6579
|
"transition": props.transition,
|
|
6563
6580
|
"tag": "div",
|
|
@@ -6587,7 +6604,7 @@
|
|
|
6587
6604
|
function useFocus(props) {
|
|
6588
6605
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
6589
6606
|
const isFocused = useProxiedModel(props, 'focused');
|
|
6590
|
-
const focusClasses = vue.
|
|
6607
|
+
const focusClasses = vue.toRef(() => {
|
|
6591
6608
|
return {
|
|
6592
6609
|
[`${name}--focused`]: isFocused.value
|
|
6593
6610
|
};
|
|
@@ -6626,8 +6643,8 @@
|
|
|
6626
6643
|
}, 'form');
|
|
6627
6644
|
function createForm(props) {
|
|
6628
6645
|
const model = useProxiedModel(props, 'modelValue');
|
|
6629
|
-
const isDisabled = vue.
|
|
6630
|
-
const isReadonly = vue.
|
|
6646
|
+
const isDisabled = vue.toRef(() => props.disabled);
|
|
6647
|
+
const isReadonly = vue.toRef(() => props.readonly);
|
|
6631
6648
|
const isValidating = vue.shallowRef(false);
|
|
6632
6649
|
const items = vue.ref([]);
|
|
6633
6650
|
const errors = vue.ref([]);
|
|
@@ -6717,7 +6734,7 @@
|
|
|
6717
6734
|
isValidating,
|
|
6718
6735
|
isValid: model,
|
|
6719
6736
|
items,
|
|
6720
|
-
validateOn: vue.toRef(props
|
|
6737
|
+
validateOn: vue.toRef(() => props.validateOn)
|
|
6721
6738
|
});
|
|
6722
6739
|
return {
|
|
6723
6740
|
errors,
|
|
@@ -7027,10 +7044,10 @@
|
|
|
7027
7044
|
resetValidation,
|
|
7028
7045
|
validate
|
|
7029
7046
|
}));
|
|
7030
|
-
const color = vue.
|
|
7047
|
+
const color = vue.toRef(() => {
|
|
7031
7048
|
return props.error || props.disabled ? undefined : props.focused ? props.color : props.baseColor;
|
|
7032
7049
|
});
|
|
7033
|
-
const iconColor = vue.
|
|
7050
|
+
const iconColor = vue.toRef(() => {
|
|
7034
7051
|
if (!props.iconColor) return undefined;
|
|
7035
7052
|
return props.iconColor === true ? color.value : props.iconColor;
|
|
7036
7053
|
});
|
|
@@ -7120,7 +7137,6 @@
|
|
|
7120
7137
|
blur
|
|
7121
7138
|
} = useFocus(props);
|
|
7122
7139
|
const uid = vue.useId();
|
|
7123
|
-
const id = vue.computed(() => props.id || `checkbox-${uid}`);
|
|
7124
7140
|
useRender(() => {
|
|
7125
7141
|
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
7126
7142
|
const inputProps = VInput.filterProps(props);
|
|
@@ -7130,7 +7146,7 @@
|
|
|
7130
7146
|
}, rootAttrs, inputProps, {
|
|
7131
7147
|
"modelValue": model.value,
|
|
7132
7148
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
7133
|
-
"id": id
|
|
7149
|
+
"id": props.id || `checkbox-${uid}`,
|
|
7134
7150
|
"focused": isFocused.value,
|
|
7135
7151
|
"style": props.style
|
|
7136
7152
|
}), {
|
|
@@ -7314,7 +7330,7 @@
|
|
|
7314
7330
|
return false;
|
|
7315
7331
|
}
|
|
7316
7332
|
});
|
|
7317
|
-
const displayClasses = vue.
|
|
7333
|
+
const displayClasses = vue.toRef(() => {
|
|
7318
7334
|
if (!name) return {};
|
|
7319
7335
|
return {
|
|
7320
7336
|
[`${name}--mobile`]: mobile.value
|
|
@@ -7429,7 +7445,7 @@
|
|
|
7429
7445
|
const goTo = {
|
|
7430
7446
|
...goToInstance,
|
|
7431
7447
|
// can be set via VLocaleProvider
|
|
7432
|
-
rtl: vue.
|
|
7448
|
+
rtl: vue.toRef(() => goToInstance.rtl.value || isRtl.value)
|
|
7433
7449
|
};
|
|
7434
7450
|
async function go(target, options) {
|
|
7435
7451
|
return scrollTo(target, mergeDeep(_options, options), false, goTo);
|
|
@@ -7921,11 +7937,11 @@
|
|
|
7921
7937
|
} = useGroup(props, VChipGroupSymbol);
|
|
7922
7938
|
provideDefaults({
|
|
7923
7939
|
VChip: {
|
|
7924
|
-
baseColor: vue.toRef(props
|
|
7925
|
-
color: vue.toRef(props
|
|
7926
|
-
disabled: vue.toRef(props
|
|
7927
|
-
filter: vue.toRef(props
|
|
7928
|
-
variant: vue.toRef(props
|
|
7940
|
+
baseColor: vue.toRef(() => props.baseColor),
|
|
7941
|
+
color: vue.toRef(() => props.color),
|
|
7942
|
+
disabled: vue.toRef(() => props.disabled),
|
|
7943
|
+
filter: vue.toRef(() => props.filter),
|
|
7944
|
+
variant: vue.toRef(() => props.variant)
|
|
7929
7945
|
}
|
|
7930
7946
|
});
|
|
7931
7947
|
useRender(() => {
|
|
@@ -8051,9 +8067,9 @@
|
|
|
8051
8067
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
8052
8068
|
const group = useGroupItem(props, VChipGroupSymbol, false);
|
|
8053
8069
|
const link = useLink(props, attrs);
|
|
8054
|
-
const isLink = vue.
|
|
8070
|
+
const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
|
|
8055
8071
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
|
|
8056
|
-
const closeProps = vue.
|
|
8072
|
+
const closeProps = vue.toRef(() => ({
|
|
8057
8073
|
'aria-label': t(props.closeLabel),
|
|
8058
8074
|
onClick(e) {
|
|
8059
8075
|
e.preventDefault();
|
|
@@ -8062,18 +8078,17 @@
|
|
|
8062
8078
|
emit('click:close', e);
|
|
8063
8079
|
}
|
|
8064
8080
|
}));
|
|
8065
|
-
const
|
|
8081
|
+
const {
|
|
8082
|
+
colorClasses,
|
|
8083
|
+
colorStyles,
|
|
8084
|
+
variantClasses
|
|
8085
|
+
} = useVariant(() => {
|
|
8066
8086
|
const showColor = !group || group.isSelected.value;
|
|
8067
8087
|
return {
|
|
8068
8088
|
color: showColor ? props.color ?? props.baseColor : props.baseColor,
|
|
8069
8089
|
variant: props.variant
|
|
8070
8090
|
};
|
|
8071
8091
|
});
|
|
8072
|
-
const {
|
|
8073
|
-
colorClasses,
|
|
8074
|
-
colorStyles,
|
|
8075
|
-
variantClasses
|
|
8076
|
-
} = useVariant(variantProps);
|
|
8077
8092
|
function onClick(e) {
|
|
8078
8093
|
emit('click', e);
|
|
8079
8094
|
if (!isClickable.value) return;
|
|
@@ -8740,8 +8755,8 @@
|
|
|
8740
8755
|
id: vue.shallowRef(),
|
|
8741
8756
|
root: {
|
|
8742
8757
|
opened,
|
|
8743
|
-
activatable: vue.toRef(props
|
|
8744
|
-
selectable: vue.toRef(props
|
|
8758
|
+
activatable: vue.toRef(() => props.activatable),
|
|
8759
|
+
selectable: vue.toRef(() => props.selectable),
|
|
8745
8760
|
activated,
|
|
8746
8761
|
selected,
|
|
8747
8762
|
selectedValues: vue.computed(() => {
|
|
@@ -8870,7 +8885,7 @@
|
|
|
8870
8885
|
const useNestedItem = (id, isGroup) => {
|
|
8871
8886
|
const parent = vue.inject(VNestedSymbol, emptyNested);
|
|
8872
8887
|
const uidSymbol = Symbol('nested item');
|
|
8873
|
-
const computedId = vue.computed(() =>
|
|
8888
|
+
const computedId = vue.computed(() => vue.toValue(id) ?? uidSymbol);
|
|
8874
8889
|
const item = {
|
|
8875
8890
|
...parent,
|
|
8876
8891
|
id: computedId,
|
|
@@ -8946,7 +8961,7 @@
|
|
|
8946
8961
|
isOpen,
|
|
8947
8962
|
open,
|
|
8948
8963
|
id: _id
|
|
8949
|
-
} = useNestedItem(
|
|
8964
|
+
} = useNestedItem(() => props.value, true);
|
|
8950
8965
|
const id = vue.computed(() => `v-list-group--id-${String(_id.value)}`);
|
|
8951
8966
|
const list = useList();
|
|
8952
8967
|
const {
|
|
@@ -9120,12 +9135,12 @@
|
|
|
9120
9135
|
} = useNestedItem(id, false);
|
|
9121
9136
|
const list = useList();
|
|
9122
9137
|
const isActive = vue.computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
|
|
9123
|
-
const isLink = vue.
|
|
9138
|
+
const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
|
|
9124
9139
|
const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
|
|
9125
9140
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
|
|
9126
|
-
const roundedProps = vue.
|
|
9127
|
-
const color = vue.
|
|
9128
|
-
const variantProps = vue.
|
|
9141
|
+
const roundedProps = vue.toRef(() => props.rounded || props.nav);
|
|
9142
|
+
const color = vue.toRef(() => props.color ?? props.activeColor);
|
|
9143
|
+
const variantProps = vue.toRef(() => ({
|
|
9129
9144
|
color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
|
|
9130
9145
|
variant: props.variant
|
|
9131
9146
|
}));
|
|
@@ -9168,7 +9183,7 @@
|
|
|
9168
9183
|
const {
|
|
9169
9184
|
roundedClasses
|
|
9170
9185
|
} = useRounded(roundedProps);
|
|
9171
|
-
const lineClasses = vue.
|
|
9186
|
+
const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
|
9172
9187
|
const slotProps = vue.computed(() => ({
|
|
9173
9188
|
isActive: isActive.value,
|
|
9174
9189
|
select,
|
|
@@ -9338,7 +9353,7 @@
|
|
|
9338
9353
|
const {
|
|
9339
9354
|
textColorClasses,
|
|
9340
9355
|
textColorStyles
|
|
9341
|
-
} = useTextColor(
|
|
9356
|
+
} = useTextColor(() => props.color);
|
|
9342
9357
|
useRender(() => {
|
|
9343
9358
|
const hasText = !!(slots.default || props.title);
|
|
9344
9359
|
return vue.createVNode(props.tag, {
|
|
@@ -9383,7 +9398,7 @@
|
|
|
9383
9398
|
const {
|
|
9384
9399
|
textColorClasses,
|
|
9385
9400
|
textColorStyles
|
|
9386
|
-
} = useTextColor(
|
|
9401
|
+
} = useTextColor(() => props.color);
|
|
9387
9402
|
const dividerStyles = vue.computed(() => {
|
|
9388
9403
|
const styles = {};
|
|
9389
9404
|
if (props.length) {
|
|
@@ -9745,7 +9760,7 @@
|
|
|
9745
9760
|
const {
|
|
9746
9761
|
backgroundColorClasses,
|
|
9747
9762
|
backgroundColorStyles
|
|
9748
|
-
} = useBackgroundColor(
|
|
9763
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
9749
9764
|
const {
|
|
9750
9765
|
borderClasses
|
|
9751
9766
|
} = useBorder(props);
|
|
@@ -9768,30 +9783,30 @@
|
|
|
9768
9783
|
select,
|
|
9769
9784
|
getPath
|
|
9770
9785
|
} = useNested(props);
|
|
9771
|
-
const lineClasses = vue.
|
|
9772
|
-
const activeColor = vue.toRef(props
|
|
9773
|
-
const baseColor = vue.toRef(props
|
|
9774
|
-
const color = vue.toRef(props
|
|
9786
|
+
const lineClasses = vue.toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
|
9787
|
+
const activeColor = vue.toRef(() => props.activeColor);
|
|
9788
|
+
const baseColor = vue.toRef(() => props.baseColor);
|
|
9789
|
+
const color = vue.toRef(() => props.color);
|
|
9775
9790
|
createList();
|
|
9776
9791
|
provideDefaults({
|
|
9777
9792
|
VListGroup: {
|
|
9778
9793
|
activeColor,
|
|
9779
9794
|
baseColor,
|
|
9780
9795
|
color,
|
|
9781
|
-
expandIcon: vue.toRef(props
|
|
9782
|
-
collapseIcon: vue.toRef(props
|
|
9796
|
+
expandIcon: vue.toRef(() => props.expandIcon),
|
|
9797
|
+
collapseIcon: vue.toRef(() => props.collapseIcon)
|
|
9783
9798
|
},
|
|
9784
9799
|
VListItem: {
|
|
9785
|
-
activeClass: vue.toRef(props
|
|
9800
|
+
activeClass: vue.toRef(() => props.activeClass),
|
|
9786
9801
|
activeColor,
|
|
9787
9802
|
baseColor,
|
|
9788
9803
|
color,
|
|
9789
|
-
density: vue.toRef(props
|
|
9790
|
-
disabled: vue.toRef(props
|
|
9791
|
-
lines: vue.toRef(props
|
|
9792
|
-
nav: vue.toRef(props
|
|
9793
|
-
slim: vue.toRef(props
|
|
9794
|
-
variant: vue.toRef(props
|
|
9804
|
+
density: vue.toRef(() => props.density),
|
|
9805
|
+
disabled: vue.toRef(() => props.disabled),
|
|
9806
|
+
lines: vue.toRef(() => props.lines),
|
|
9807
|
+
nav: vue.toRef(() => props.nav),
|
|
9808
|
+
slim: vue.toRef(() => props.slim),
|
|
9809
|
+
variant: vue.toRef(() => props.variant)
|
|
9795
9810
|
}
|
|
9796
9811
|
});
|
|
9797
9812
|
const isFocused = vue.shallowRef(false);
|
|
@@ -10103,8 +10118,27 @@
|
|
|
10103
10118
|
return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];
|
|
10104
10119
|
});
|
|
10105
10120
|
let observe = false;
|
|
10121
|
+
let lastFrame = -1;
|
|
10122
|
+
const flipped = new CircularBuffer(4);
|
|
10106
10123
|
const observer = new ResizeObserver(() => {
|
|
10107
|
-
if (observe)
|
|
10124
|
+
if (!observe) return;
|
|
10125
|
+
|
|
10126
|
+
// Detect consecutive frames
|
|
10127
|
+
requestAnimationFrame(newTime => {
|
|
10128
|
+
if (newTime !== lastFrame) flipped.clear();
|
|
10129
|
+
requestAnimationFrame(newNewTime => {
|
|
10130
|
+
lastFrame = newNewTime;
|
|
10131
|
+
});
|
|
10132
|
+
});
|
|
10133
|
+
if (flipped.isFull) {
|
|
10134
|
+
const values = flipped.values();
|
|
10135
|
+
if (deepEqual(values.at(-1), values.at(-3))) {
|
|
10136
|
+
// Flipping is causing a container resize loop
|
|
10137
|
+
return;
|
|
10138
|
+
}
|
|
10139
|
+
}
|
|
10140
|
+
const result = updateLocation();
|
|
10141
|
+
if (result) flipped.push(result.flipped);
|
|
10108
10142
|
});
|
|
10109
10143
|
vue.watch([data.target, data.contentEl], (_ref, _ref2) => {
|
|
10110
10144
|
let [newTarget, newContentEl] = _ref;
|
|
@@ -10119,13 +10153,22 @@
|
|
|
10119
10153
|
vue.onScopeDispose(() => {
|
|
10120
10154
|
observer.disconnect();
|
|
10121
10155
|
});
|
|
10156
|
+
let targetBox = new Box({
|
|
10157
|
+
x: 0,
|
|
10158
|
+
y: 0,
|
|
10159
|
+
width: 0,
|
|
10160
|
+
height: 0
|
|
10161
|
+
});
|
|
10122
10162
|
|
|
10123
10163
|
// eslint-disable-next-line max-statements
|
|
10124
10164
|
function updateLocation() {
|
|
10125
10165
|
observe = false;
|
|
10126
10166
|
requestAnimationFrame(() => observe = true);
|
|
10127
10167
|
if (!data.target.value || !data.contentEl.value) return;
|
|
10128
|
-
|
|
10168
|
+
if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
|
|
10169
|
+
targetBox = getTargetBox(data.target.value);
|
|
10170
|
+
} // Otherwise target element is hidden, use last known value
|
|
10171
|
+
|
|
10129
10172
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
10130
10173
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
10131
10174
|
const viewportMargin = 12;
|
|
@@ -10310,7 +10353,8 @@
|
|
|
10310
10353
|
});
|
|
10311
10354
|
return {
|
|
10312
10355
|
available,
|
|
10313
|
-
contentBox
|
|
10356
|
+
contentBox,
|
|
10357
|
+
flipped
|
|
10314
10358
|
};
|
|
10315
10359
|
}
|
|
10316
10360
|
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
|
|
@@ -10835,7 +10879,7 @@
|
|
|
10835
10879
|
}, 'lazy');
|
|
10836
10880
|
function useLazy(props, active) {
|
|
10837
10881
|
const isBooted = vue.shallowRef(false);
|
|
10838
|
-
const hasContent = vue.
|
|
10882
|
+
const hasContent = vue.toRef(() => isBooted.value || props.eager || active.value);
|
|
10839
10883
|
vue.watch(active, () => isBooted.value = true);
|
|
10840
10884
|
function onAfterLeave() {
|
|
10841
10885
|
if (!props.eager) isBooted.value = false;
|
|
@@ -10872,10 +10916,10 @@
|
|
|
10872
10916
|
activeChildren: new Set()
|
|
10873
10917
|
});
|
|
10874
10918
|
vue.provide(StackSymbol, stack);
|
|
10875
|
-
const _zIndex = vue.shallowRef(Number(zIndex
|
|
10919
|
+
const _zIndex = vue.shallowRef(Number(vue.toValue(zIndex)));
|
|
10876
10920
|
useToggleScope(isActive, () => {
|
|
10877
10921
|
const lastZIndex = globalStack.at(-1)?.[1];
|
|
10878
|
-
_zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex
|
|
10922
|
+
_zIndex.value = lastZIndex ? lastZIndex + 10 : Number(vue.toValue(zIndex));
|
|
10879
10923
|
if (createStackEntry) {
|
|
10880
10924
|
globalStack.push([vm.uid, _zIndex.value]);
|
|
10881
10925
|
}
|
|
@@ -10895,11 +10939,11 @@
|
|
|
10895
10939
|
setTimeout(() => globalTop.value = _isTop);
|
|
10896
10940
|
});
|
|
10897
10941
|
}
|
|
10898
|
-
const localTop = vue.
|
|
10942
|
+
const localTop = vue.toRef(() => !stack.activeChildren.size);
|
|
10899
10943
|
return {
|
|
10900
10944
|
globalTop: vue.readonly(globalTop),
|
|
10901
10945
|
localTop,
|
|
10902
|
-
stackStyles: vue.
|
|
10946
|
+
stackStyles: vue.toRef(() => ({
|
|
10903
10947
|
zIndex: _zIndex.value
|
|
10904
10948
|
}))
|
|
10905
10949
|
};
|
|
@@ -11116,14 +11160,14 @@
|
|
|
11116
11160
|
hasContent,
|
|
11117
11161
|
onAfterLeave: _onAfterLeave
|
|
11118
11162
|
} = useLazy(props, isActive);
|
|
11119
|
-
const scrimColor = useBackgroundColor(
|
|
11163
|
+
const scrimColor = useBackgroundColor(() => {
|
|
11120
11164
|
return typeof props.scrim === 'string' ? props.scrim : null;
|
|
11121
|
-
})
|
|
11165
|
+
});
|
|
11122
11166
|
const {
|
|
11123
11167
|
globalTop,
|
|
11124
11168
|
localTop,
|
|
11125
11169
|
stackStyles
|
|
11126
|
-
} = useStack(isActive,
|
|
11170
|
+
} = useStack(isActive, () => props.zIndex, props._disableGlobalStack);
|
|
11127
11171
|
const {
|
|
11128
11172
|
activatorEl,
|
|
11129
11173
|
activatorRef,
|
|
@@ -11449,7 +11493,7 @@
|
|
|
11449
11493
|
isRtl
|
|
11450
11494
|
} = useRtl();
|
|
11451
11495
|
const uid = vue.useId();
|
|
11452
|
-
const id = vue.
|
|
11496
|
+
const id = vue.toRef(() => props.id || `v-menu-${uid}`);
|
|
11453
11497
|
const overlay = vue.ref();
|
|
11454
11498
|
const parent = vue.inject(VMenuSymbol, null);
|
|
11455
11499
|
const openChildren = vue.shallowRef(new Set());
|
|
@@ -11617,7 +11661,7 @@
|
|
|
11617
11661
|
let {
|
|
11618
11662
|
slots
|
|
11619
11663
|
} = _ref;
|
|
11620
|
-
const counter = vue.
|
|
11664
|
+
const counter = vue.toRef(() => {
|
|
11621
11665
|
return props.max ? `${props.value} / ${props.max}` : String(props.value);
|
|
11622
11666
|
});
|
|
11623
11667
|
useRender(() => vue.createVNode(MaybeTransition, {
|
|
@@ -11744,12 +11788,12 @@
|
|
|
11744
11788
|
const {
|
|
11745
11789
|
rtlClasses
|
|
11746
11790
|
} = useRtl();
|
|
11747
|
-
const isActive = vue.
|
|
11748
|
-
const hasLabel = vue.
|
|
11749
|
-
const hasFloatingLabel = vue.
|
|
11791
|
+
const isActive = vue.toRef(() => props.dirty || props.active);
|
|
11792
|
+
const hasLabel = vue.toRef(() => !!(props.label || slots.label));
|
|
11793
|
+
const hasFloatingLabel = vue.toRef(() => !props.singleLine && hasLabel.value);
|
|
11750
11794
|
const uid = vue.useId();
|
|
11751
11795
|
const id = vue.computed(() => props.id || `input-${uid}`);
|
|
11752
|
-
const messagesId = vue.
|
|
11796
|
+
const messagesId = vue.toRef(() => `${id.value}-messages`);
|
|
11753
11797
|
const labelRef = vue.ref();
|
|
11754
11798
|
const floatingLabelRef = vue.ref();
|
|
11755
11799
|
const controlRef = vue.ref();
|
|
@@ -11764,7 +11808,7 @@
|
|
|
11764
11808
|
const {
|
|
11765
11809
|
backgroundColorClasses,
|
|
11766
11810
|
backgroundColorStyles
|
|
11767
|
-
} = useBackgroundColor(
|
|
11811
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
11768
11812
|
const {
|
|
11769
11813
|
textColorClasses,
|
|
11770
11814
|
textColorStyles
|
|
@@ -12491,7 +12535,7 @@
|
|
|
12491
12535
|
paddingTop,
|
|
12492
12536
|
paddingBottom,
|
|
12493
12537
|
computedItems
|
|
12494
|
-
} = useVirtual(props, vue.toRef(props
|
|
12538
|
+
} = useVirtual(props, vue.toRef(() => props.items));
|
|
12495
12539
|
useToggleScope(() => props.renderless, () => {
|
|
12496
12540
|
function handleListeners() {
|
|
12497
12541
|
let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
@@ -12728,7 +12772,7 @@
|
|
|
12728
12772
|
_menu.value = v;
|
|
12729
12773
|
}
|
|
12730
12774
|
});
|
|
12731
|
-
const label = vue.
|
|
12775
|
+
const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
|
|
12732
12776
|
const computedMenuProps = vue.computed(() => {
|
|
12733
12777
|
return {
|
|
12734
12778
|
...props.menuProps,
|
|
@@ -12913,6 +12957,7 @@
|
|
|
12913
12957
|
"onFocusin": onFocusin,
|
|
12914
12958
|
"tabindex": "-1",
|
|
12915
12959
|
"aria-live": "polite",
|
|
12960
|
+
"aria-label": `${props.label}-list`,
|
|
12916
12961
|
"color": props.itemColor ?? props.color
|
|
12917
12962
|
}, listEvents, props.listProps), {
|
|
12918
12963
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
@@ -13054,6 +13099,7 @@
|
|
|
13054
13099
|
// Composables
|
|
13055
13100
|
const defaultFilter = (value, query, item) => {
|
|
13056
13101
|
if (value == null || query == null) return -1;
|
|
13102
|
+
if (!query.length) return 0;
|
|
13057
13103
|
value = value.toString().toLocaleLowerCase();
|
|
13058
13104
|
query = query.toString().toLocaleLowerCase();
|
|
13059
13105
|
const result = [];
|
|
@@ -13066,7 +13112,7 @@
|
|
|
13066
13112
|
};
|
|
13067
13113
|
function normaliseMatch(match, query) {
|
|
13068
13114
|
if (match == null || typeof match === 'boolean' || match === -1) return;
|
|
13069
|
-
if (typeof match === 'number') return [[match, query.length]];
|
|
13115
|
+
if (typeof match === 'number') return [[match, match + query.length]];
|
|
13070
13116
|
if (Array.isArray(match[0])) return match;
|
|
13071
13117
|
return [match];
|
|
13072
13118
|
}
|
|
@@ -13229,7 +13275,6 @@
|
|
|
13229
13275
|
const vMenuRef = vue.ref();
|
|
13230
13276
|
const vVirtualScrollRef = vue.ref();
|
|
13231
13277
|
const selectionIndex = vue.shallowRef(-1);
|
|
13232
|
-
const color = vue.computed(() => vTextFieldRef.value?.color);
|
|
13233
13278
|
const {
|
|
13234
13279
|
items,
|
|
13235
13280
|
transformIn,
|
|
@@ -13238,7 +13283,7 @@
|
|
|
13238
13283
|
const {
|
|
13239
13284
|
textColorClasses,
|
|
13240
13285
|
textColorStyles
|
|
13241
|
-
} = useTextColor(color);
|
|
13286
|
+
} = useTextColor(() => vTextFieldRef.value?.color);
|
|
13242
13287
|
const search = useProxiedModel(props, 'search', '');
|
|
13243
13288
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13244
13289
|
const transformed = transformOut(v);
|
|
@@ -13687,7 +13732,7 @@
|
|
|
13687
13732
|
const {
|
|
13688
13733
|
backgroundColorClasses,
|
|
13689
13734
|
backgroundColorStyles
|
|
13690
|
-
} = useBackgroundColor(
|
|
13735
|
+
} = useBackgroundColor(() => props.color);
|
|
13691
13736
|
const {
|
|
13692
13737
|
roundedClasses
|
|
13693
13738
|
} = useRounded(props);
|
|
@@ -13697,7 +13742,7 @@
|
|
|
13697
13742
|
const {
|
|
13698
13743
|
textColorClasses,
|
|
13699
13744
|
textColorStyles
|
|
13700
|
-
} = useTextColor(
|
|
13745
|
+
} = useTextColor(() => props.textColor);
|
|
13701
13746
|
const {
|
|
13702
13747
|
themeClasses
|
|
13703
13748
|
} = useTheme();
|
|
@@ -13809,7 +13854,7 @@
|
|
|
13809
13854
|
const {
|
|
13810
13855
|
backgroundColorClasses,
|
|
13811
13856
|
backgroundColorStyles
|
|
13812
|
-
} = useBackgroundColor(props
|
|
13857
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
13813
13858
|
const {
|
|
13814
13859
|
borderClasses
|
|
13815
13860
|
} = useBorder(props);
|
|
@@ -13838,8 +13883,8 @@
|
|
|
13838
13883
|
const {
|
|
13839
13884
|
themeClasses
|
|
13840
13885
|
} = provideTheme(props);
|
|
13841
|
-
const color = vue.toRef(props
|
|
13842
|
-
const density = vue.toRef(props
|
|
13886
|
+
const color = vue.toRef(() => props.color);
|
|
13887
|
+
const density = vue.toRef(() => props.density);
|
|
13843
13888
|
provideDefaults({
|
|
13844
13889
|
VBannerActions: {
|
|
13845
13890
|
color,
|
|
@@ -13948,7 +13993,7 @@
|
|
|
13948
13993
|
const {
|
|
13949
13994
|
backgroundColorClasses,
|
|
13950
13995
|
backgroundColorStyles
|
|
13951
|
-
} = useBackgroundColor(
|
|
13996
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
13952
13997
|
const {
|
|
13953
13998
|
densityClasses
|
|
13954
13999
|
} = useDensity(props);
|
|
@@ -13968,19 +14013,19 @@
|
|
|
13968
14013
|
} = useLayoutItem({
|
|
13969
14014
|
id: props.name,
|
|
13970
14015
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
13971
|
-
position: vue.
|
|
13972
|
-
layoutSize: vue.
|
|
14016
|
+
position: vue.toRef(() => 'bottom'),
|
|
14017
|
+
layoutSize: vue.toRef(() => isActive.value ? height.value : 0),
|
|
13973
14018
|
elementSize: height,
|
|
13974
14019
|
active: isActive,
|
|
13975
|
-
absolute: vue.toRef(props
|
|
14020
|
+
absolute: vue.toRef(() => props.absolute)
|
|
13976
14021
|
});
|
|
13977
14022
|
useGroup(props, VBtnToggleSymbol);
|
|
13978
14023
|
provideDefaults({
|
|
13979
14024
|
VBtn: {
|
|
13980
|
-
baseColor: vue.toRef(props
|
|
13981
|
-
color: vue.toRef(props
|
|
13982
|
-
density: vue.toRef(props
|
|
13983
|
-
stacked: vue.
|
|
14025
|
+
baseColor: vue.toRef(() => props.baseColor),
|
|
14026
|
+
color: vue.toRef(() => props.color),
|
|
14027
|
+
density: vue.toRef(() => props.density),
|
|
14028
|
+
stacked: vue.toRef(() => props.mode !== 'horizontal'),
|
|
13984
14029
|
variant: 'text'
|
|
13985
14030
|
}
|
|
13986
14031
|
}, {
|
|
@@ -14216,11 +14261,10 @@
|
|
|
14216
14261
|
} = _ref;
|
|
14217
14262
|
const link = useLink(props, attrs);
|
|
14218
14263
|
const isActive = vue.computed(() => props.active || link.isActive?.value);
|
|
14219
|
-
const color = vue.computed(() => isActive.value ? props.activeColor : props.color);
|
|
14220
14264
|
const {
|
|
14221
14265
|
textColorClasses,
|
|
14222
14266
|
textColorStyles
|
|
14223
|
-
} = useTextColor(color);
|
|
14267
|
+
} = useTextColor(() => isActive.value ? props.activeColor : props.color);
|
|
14224
14268
|
useRender(() => {
|
|
14225
14269
|
return vue.createVNode(props.tag, {
|
|
14226
14270
|
"class": ['v-breadcrumbs-item', {
|
|
@@ -14275,7 +14319,7 @@
|
|
|
14275
14319
|
const {
|
|
14276
14320
|
backgroundColorClasses,
|
|
14277
14321
|
backgroundColorStyles
|
|
14278
|
-
} = useBackgroundColor(
|
|
14322
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
14279
14323
|
const {
|
|
14280
14324
|
densityClasses
|
|
14281
14325
|
} = useDensity(props);
|
|
@@ -14284,13 +14328,13 @@
|
|
|
14284
14328
|
} = useRounded(props);
|
|
14285
14329
|
provideDefaults({
|
|
14286
14330
|
VBreadcrumbsDivider: {
|
|
14287
|
-
divider: vue.toRef(props
|
|
14331
|
+
divider: vue.toRef(() => props.divider)
|
|
14288
14332
|
},
|
|
14289
14333
|
VBreadcrumbsItem: {
|
|
14290
|
-
activeClass: vue.toRef(props
|
|
14291
|
-
activeColor: vue.toRef(props
|
|
14292
|
-
color: vue.toRef(props
|
|
14293
|
-
disabled: vue.toRef(props
|
|
14334
|
+
activeClass: vue.toRef(() => props.activeClass),
|
|
14335
|
+
activeColor: vue.toRef(() => props.activeColor),
|
|
14336
|
+
color: vue.toRef(() => props.color),
|
|
14337
|
+
disabled: vue.toRef(() => props.disabled)
|
|
14294
14338
|
}
|
|
14295
14339
|
});
|
|
14296
14340
|
const items = vue.computed(() => props.items.map(item => {
|
|
@@ -14613,10 +14657,10 @@
|
|
|
14613
14657
|
roundedClasses
|
|
14614
14658
|
} = useRounded(props);
|
|
14615
14659
|
const link = useLink(props, attrs);
|
|
14616
|
-
const isLink = vue.computed(() => props.link !== false && link.isLink.value);
|
|
14617
|
-
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));
|
|
14618
14660
|
useRender(() => {
|
|
14619
|
-
const
|
|
14661
|
+
const isLink = props.link !== false && link.isLink.value;
|
|
14662
|
+
const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
|
|
14663
|
+
const Tag = isLink ? 'a' : props.tag;
|
|
14620
14664
|
const hasTitle = !!(slots.title || props.title != null);
|
|
14621
14665
|
const hasSubtitle = !!(slots.subtitle || props.subtitle != null);
|
|
14622
14666
|
const hasHeader = hasTitle || hasSubtitle;
|
|
@@ -14630,10 +14674,10 @@
|
|
|
14630
14674
|
'v-card--disabled': props.disabled,
|
|
14631
14675
|
'v-card--flat': props.flat,
|
|
14632
14676
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
|
14633
|
-
'v-card--link': isClickable
|
|
14677
|
+
'v-card--link': isClickable
|
|
14634
14678
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
14635
14679
|
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
14636
|
-
"onClick": isClickable
|
|
14680
|
+
"onClick": isClickable && link.navigate,
|
|
14637
14681
|
"tabindex": props.disabled ? -1 : undefined
|
|
14638
14682
|
}, link.linkProps), {
|
|
14639
14683
|
default: () => [hasImage && vue.createVNode("div", {
|
|
@@ -14678,8 +14722,8 @@
|
|
|
14678
14722
|
default: () => [slots.text?.() ?? props.text]
|
|
14679
14723
|
}), slots.default?.(), slots.actions && vue.createVNode(VCardActions, null, {
|
|
14680
14724
|
default: slots.actions
|
|
14681
|
-
}), genOverlays(isClickable
|
|
14682
|
-
}), [[vue.resolveDirective("ripple"), isClickable
|
|
14725
|
+
}), genOverlays(isClickable, 'v-card')]
|
|
14726
|
+
}), [[vue.resolveDirective("ripple"), isClickable && props.ripple]]);
|
|
14683
14727
|
});
|
|
14684
14728
|
return {};
|
|
14685
14729
|
}
|
|
@@ -14892,8 +14936,8 @@
|
|
|
14892
14936
|
transitionHeight,
|
|
14893
14937
|
rootRef
|
|
14894
14938
|
});
|
|
14895
|
-
const canMoveBack = vue.
|
|
14896
|
-
const canMoveForward = vue.
|
|
14939
|
+
const canMoveBack = vue.toRef(() => props.continuous || activeIndex.value !== 0);
|
|
14940
|
+
const canMoveForward = vue.toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
|
|
14897
14941
|
function prev() {
|
|
14898
14942
|
canMoveBack.value && group.prev();
|
|
14899
14943
|
}
|
|
@@ -15795,7 +15839,7 @@
|
|
|
15795
15839
|
const {
|
|
15796
15840
|
isRtl
|
|
15797
15841
|
} = useRtl();
|
|
15798
|
-
const isReversed = vue.toRef(props
|
|
15842
|
+
const isReversed = vue.toRef(() => props.reverse);
|
|
15799
15843
|
const vertical = vue.computed(() => props.direction === 'vertical');
|
|
15800
15844
|
const indexFromEnd = vue.computed(() => vertical.value !== isReversed.value);
|
|
15801
15845
|
const {
|
|
@@ -15809,7 +15853,7 @@
|
|
|
15809
15853
|
const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
|
|
15810
15854
|
const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
|
|
15811
15855
|
const numTicks = vue.computed(() => (max.value - min.value) / step.value);
|
|
15812
|
-
const disabled = vue.toRef(props
|
|
15856
|
+
const disabled = vue.toRef(() => props.disabled);
|
|
15813
15857
|
const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
|
|
15814
15858
|
const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
|
|
15815
15859
|
const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
|
|
@@ -15911,7 +15955,7 @@
|
|
|
15911
15955
|
const percentage = (val - min.value) / (max.value - min.value) * 100;
|
|
15912
15956
|
return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
|
|
15913
15957
|
};
|
|
15914
|
-
const showTicks = vue.toRef(props
|
|
15958
|
+
const showTicks = vue.toRef(() => props.showTicks);
|
|
15915
15959
|
const parsedTicks = vue.computed(() => {
|
|
15916
15960
|
if (!showTicks.value) return [];
|
|
15917
15961
|
if (!props.ticks) {
|
|
@@ -15942,11 +15986,11 @@
|
|
|
15942
15986
|
}));
|
|
15943
15987
|
const data = {
|
|
15944
15988
|
activeThumbRef,
|
|
15945
|
-
color: vue.toRef(props
|
|
15989
|
+
color: vue.toRef(() => props.color),
|
|
15946
15990
|
decimals,
|
|
15947
15991
|
disabled,
|
|
15948
|
-
direction: vue.toRef(props
|
|
15949
|
-
elevation: vue.toRef(props
|
|
15992
|
+
direction: vue.toRef(() => props.direction),
|
|
15993
|
+
elevation: vue.toRef(() => props.elevation),
|
|
15950
15994
|
hasLabels,
|
|
15951
15995
|
isReversed,
|
|
15952
15996
|
indexFromEnd,
|
|
@@ -15959,16 +16003,16 @@
|
|
|
15959
16003
|
parsedTicks,
|
|
15960
16004
|
parseMouseMove,
|
|
15961
16005
|
position,
|
|
15962
|
-
readonly: vue.toRef(props
|
|
15963
|
-
rounded: vue.toRef(props
|
|
16006
|
+
readonly: vue.toRef(() => props.readonly),
|
|
16007
|
+
rounded: vue.toRef(() => props.rounded),
|
|
15964
16008
|
roundValue,
|
|
15965
16009
|
showTicks,
|
|
15966
16010
|
startOffset,
|
|
15967
16011
|
step,
|
|
15968
16012
|
thumbSize,
|
|
15969
16013
|
thumbColor,
|
|
15970
|
-
thumbLabel: vue.toRef(props
|
|
15971
|
-
ticks: vue.toRef(props
|
|
16014
|
+
thumbLabel: vue.toRef(() => props.thumbLabel),
|
|
16015
|
+
ticks: vue.toRef(() => props.ticks),
|
|
15972
16016
|
tickSize,
|
|
15973
16017
|
trackColor,
|
|
15974
16018
|
trackContainerRef,
|
|
@@ -16887,7 +16931,7 @@
|
|
|
16887
16931
|
const {
|
|
16888
16932
|
backgroundColorClasses,
|
|
16889
16933
|
backgroundColorStyles
|
|
16890
|
-
} = useBackgroundColor(
|
|
16934
|
+
} = useBackgroundColor(() => props.color);
|
|
16891
16935
|
const {
|
|
16892
16936
|
borderClasses
|
|
16893
16937
|
} = useBorder(props);
|
|
@@ -16934,7 +16978,7 @@
|
|
|
16934
16978
|
const {
|
|
16935
16979
|
backgroundColorClasses,
|
|
16936
16980
|
backgroundColorStyles
|
|
16937
|
-
} = useBackgroundColor(
|
|
16981
|
+
} = useBackgroundColor(() => props.color);
|
|
16938
16982
|
useRender(() => {
|
|
16939
16983
|
const sheetProps = VSheet.filterProps(props);
|
|
16940
16984
|
const hasTitle = !!(props.title || slots.title);
|
|
@@ -16981,165 +17025,81 @@
|
|
|
16981
17025
|
|
|
16982
17026
|
// Types
|
|
16983
17027
|
|
|
16984
|
-
|
|
16985
|
-
|
|
16986
|
-
|
|
16987
|
-
|
|
16988
|
-
|
|
16989
|
-
|
|
16990
|
-
|
|
16991
|
-
|
|
16992
|
-
|
|
16993
|
-
|
|
16994
|
-
|
|
16995
|
-
|
|
16996
|
-
|
|
16997
|
-
|
|
16998
|
-
|
|
16999
|
-
|
|
17000
|
-
|
|
17001
|
-
|
|
17002
|
-
|
|
17003
|
-
|
|
17004
|
-
|
|
17005
|
-
|
|
17006
|
-
|
|
17007
|
-
|
|
17008
|
-
|
|
17009
|
-
|
|
17010
|
-
|
|
17011
|
-
|
|
17012
|
-
|
|
17013
|
-
|
|
17014
|
-
|
|
17015
|
-
|
|
17016
|
-
|
|
17017
|
-
|
|
17018
|
-
|
|
17019
|
-
|
|
17020
|
-
|
|
17021
|
-
|
|
17022
|
-
|
|
17023
|
-
|
|
17024
|
-
|
|
17025
|
-
|
|
17026
|
-
|
|
17027
|
-
|
|
17028
|
-
|
|
17029
|
-
|
|
17030
|
-
|
|
17031
|
-
|
|
17032
|
-
|
|
17033
|
-
|
|
17034
|
-
|
|
17035
|
-
|
|
17036
|
-
|
|
17037
|
-
|
|
17038
|
-
|
|
17039
|
-
|
|
17040
|
-
|
|
17041
|
-
|
|
17042
|
-
|
|
17043
|
-
|
|
17044
|
-
|
|
17045
|
-
|
|
17046
|
-
|
|
17047
|
-
|
|
17048
|
-
|
|
17049
|
-
|
|
17050
|
-
|
|
17051
|
-
|
|
17052
|
-
|
|
17053
|
-
IQ: 6,
|
|
17054
|
-
IR: 6,
|
|
17055
|
-
IS: 1,
|
|
17056
|
-
IT: 1,
|
|
17057
|
-
JM: 0,
|
|
17058
|
-
JO: 6,
|
|
17059
|
-
JP: 0,
|
|
17060
|
-
KE: 0,
|
|
17061
|
-
KG: 1,
|
|
17062
|
-
KH: 0,
|
|
17063
|
-
KR: 0,
|
|
17064
|
-
KW: 6,
|
|
17065
|
-
KZ: 1,
|
|
17066
|
-
LA: 0,
|
|
17067
|
-
LB: 1,
|
|
17068
|
-
LI: 1,
|
|
17069
|
-
LK: 1,
|
|
17070
|
-
LT: 1,
|
|
17071
|
-
LU: 1,
|
|
17072
|
-
LV: 1,
|
|
17073
|
-
LY: 6,
|
|
17074
|
-
MC: 1,
|
|
17075
|
-
MD: 1,
|
|
17076
|
-
ME: 1,
|
|
17077
|
-
MH: 0,
|
|
17078
|
-
MK: 1,
|
|
17079
|
-
MM: 0,
|
|
17080
|
-
MN: 1,
|
|
17081
|
-
MO: 0,
|
|
17082
|
-
MQ: 1,
|
|
17083
|
-
MT: 0,
|
|
17084
|
-
MV: 5,
|
|
17085
|
-
MX: 0,
|
|
17086
|
-
MY: 1,
|
|
17087
|
-
MZ: 0,
|
|
17088
|
-
NI: 0,
|
|
17089
|
-
NL: 1,
|
|
17090
|
-
NO: 1,
|
|
17091
|
-
NP: 0,
|
|
17092
|
-
NZ: 1,
|
|
17093
|
-
OM: 6,
|
|
17094
|
-
PA: 0,
|
|
17095
|
-
PE: 0,
|
|
17096
|
-
PH: 0,
|
|
17097
|
-
PK: 0,
|
|
17098
|
-
PL: 1,
|
|
17099
|
-
PR: 0,
|
|
17100
|
-
PT: 0,
|
|
17101
|
-
PY: 0,
|
|
17102
|
-
QA: 6,
|
|
17103
|
-
RE: 1,
|
|
17104
|
-
RO: 1,
|
|
17105
|
-
RS: 1,
|
|
17106
|
-
RU: 1,
|
|
17107
|
-
SA: 0,
|
|
17108
|
-
SD: 6,
|
|
17109
|
-
SE: 1,
|
|
17110
|
-
SG: 0,
|
|
17111
|
-
SI: 1,
|
|
17112
|
-
SK: 1,
|
|
17113
|
-
SM: 1,
|
|
17114
|
-
SV: 0,
|
|
17115
|
-
SY: 6,
|
|
17116
|
-
TH: 0,
|
|
17117
|
-
TJ: 1,
|
|
17118
|
-
TM: 1,
|
|
17119
|
-
TR: 1,
|
|
17120
|
-
TT: 0,
|
|
17121
|
-
TW: 0,
|
|
17122
|
-
UA: 1,
|
|
17123
|
-
UM: 0,
|
|
17124
|
-
US: 0,
|
|
17125
|
-
UY: 1,
|
|
17126
|
-
UZ: 1,
|
|
17127
|
-
VA: 1,
|
|
17128
|
-
VE: 0,
|
|
17129
|
-
VI: 0,
|
|
17130
|
-
VN: 1,
|
|
17131
|
-
WS: 0,
|
|
17132
|
-
XK: 1,
|
|
17133
|
-
YE: 0,
|
|
17134
|
-
ZA: 0,
|
|
17135
|
-
ZW: 0
|
|
17136
|
-
};
|
|
17028
|
+
function weekInfo(locale) {
|
|
17029
|
+
// https://simplelocalize.io/data/locales/
|
|
17030
|
+
// then `new Intl.Locale(...).getWeekInfo()`
|
|
17031
|
+
const code = locale.slice(-2).toUpperCase();
|
|
17032
|
+
switch (true) {
|
|
17033
|
+
case locale === 'GB-alt-variant':
|
|
17034
|
+
{
|
|
17035
|
+
return {
|
|
17036
|
+
firstDay: 0,
|
|
17037
|
+
firstWeekSize: 4
|
|
17038
|
+
};
|
|
17039
|
+
}
|
|
17040
|
+
case locale === '001':
|
|
17041
|
+
{
|
|
17042
|
+
return {
|
|
17043
|
+
firstDay: 1,
|
|
17044
|
+
firstWeekSize: 1
|
|
17045
|
+
};
|
|
17046
|
+
}
|
|
17047
|
+
case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
|
|
17048
|
+
KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PY SA SG SV TH TT TW UM US
|
|
17049
|
+
VE VI WS YE ZA ZW`.includes(code):
|
|
17050
|
+
{
|
|
17051
|
+
return {
|
|
17052
|
+
firstDay: 0,
|
|
17053
|
+
firstWeekSize: 1
|
|
17054
|
+
};
|
|
17055
|
+
}
|
|
17056
|
+
case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
|
|
17057
|
+
MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
|
|
17058
|
+
{
|
|
17059
|
+
return {
|
|
17060
|
+
firstDay: 1,
|
|
17061
|
+
firstWeekSize: 1
|
|
17062
|
+
};
|
|
17063
|
+
}
|
|
17064
|
+
case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
|
|
17065
|
+
IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
|
|
17066
|
+
{
|
|
17067
|
+
return {
|
|
17068
|
+
firstDay: 1,
|
|
17069
|
+
firstWeekSize: 4
|
|
17070
|
+
};
|
|
17071
|
+
}
|
|
17072
|
+
case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
|
|
17073
|
+
{
|
|
17074
|
+
return {
|
|
17075
|
+
firstDay: 6,
|
|
17076
|
+
firstWeekSize: 1
|
|
17077
|
+
};
|
|
17078
|
+
}
|
|
17079
|
+
case code === 'MV':
|
|
17080
|
+
{
|
|
17081
|
+
return {
|
|
17082
|
+
firstDay: 5,
|
|
17083
|
+
firstWeekSize: 1
|
|
17084
|
+
};
|
|
17085
|
+
}
|
|
17086
|
+
case code === 'PT':
|
|
17087
|
+
{
|
|
17088
|
+
return {
|
|
17089
|
+
firstDay: 0,
|
|
17090
|
+
firstWeekSize: 4
|
|
17091
|
+
};
|
|
17092
|
+
}
|
|
17093
|
+
default:
|
|
17094
|
+
return null;
|
|
17095
|
+
}
|
|
17096
|
+
}
|
|
17137
17097
|
function getWeekArray(date, locale, firstDayOfWeek) {
|
|
17138
17098
|
const weeks = [];
|
|
17139
17099
|
let currentWeek = [];
|
|
17140
17100
|
const firstDayOfMonth = startOfMonth(date);
|
|
17141
17101
|
const lastDayOfMonth = endOfMonth(date);
|
|
17142
|
-
const first = firstDayOfWeek ??
|
|
17102
|
+
const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
|
17143
17103
|
const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
|
|
17144
17104
|
const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
|
|
17145
17105
|
for (let i = 0; i < firstDayWeekIndex; i++) {
|
|
@@ -17170,7 +17130,7 @@
|
|
|
17170
17130
|
return weeks;
|
|
17171
17131
|
}
|
|
17172
17132
|
function startOfWeek(date, locale, firstDayOfWeek) {
|
|
17173
|
-
const day = firstDayOfWeek ??
|
|
17133
|
+
const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
|
17174
17134
|
const d = new Date(date);
|
|
17175
17135
|
while (d.getDay() !== day) {
|
|
17176
17136
|
d.setDate(d.getDate() - 1);
|
|
@@ -17179,7 +17139,7 @@
|
|
|
17179
17139
|
}
|
|
17180
17140
|
function endOfWeek(date, locale) {
|
|
17181
17141
|
const d = new Date(date);
|
|
17182
|
-
const lastDay = ((
|
|
17142
|
+
const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
|
|
17183
17143
|
while (d.getDay() !== lastDay) {
|
|
17184
17144
|
d.setDate(d.getDate() + 1);
|
|
17185
17145
|
}
|
|
@@ -17214,7 +17174,7 @@
|
|
|
17214
17174
|
}
|
|
17215
17175
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
17216
17176
|
function getWeekdays(locale, firstDayOfWeek) {
|
|
17217
|
-
const daysFromSunday = firstDayOfWeek ??
|
|
17177
|
+
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
|
17218
17178
|
return createRange(7).map(i => {
|
|
17219
17179
|
const weekday = new Date(sundayJanuarySecond2000);
|
|
17220
17180
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
@@ -17462,6 +17422,24 @@
|
|
|
17462
17422
|
function getMonth(date) {
|
|
17463
17423
|
return date.getMonth();
|
|
17464
17424
|
}
|
|
17425
|
+
function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
|
|
17426
|
+
const weekInfoFromLocale = weekInfo(locale);
|
|
17427
|
+
const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
|
|
17428
|
+
const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
|
|
17429
|
+
function firstWeekSize(year) {
|
|
17430
|
+
const yearStart = new Date(year, 0, 1);
|
|
17431
|
+
return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
|
|
17432
|
+
}
|
|
17433
|
+
let year = getYear(date);
|
|
17434
|
+
const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
|
|
17435
|
+
if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
|
|
17436
|
+
year++;
|
|
17437
|
+
}
|
|
17438
|
+
const yearStart = new Date(year, 0, 1);
|
|
17439
|
+
const size = firstWeekSize(year);
|
|
17440
|
+
const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
|
|
17441
|
+
return 1 + getDiff(date, d1w1, 'weeks');
|
|
17442
|
+
}
|
|
17465
17443
|
function getDate(date) {
|
|
17466
17444
|
return date.getDate();
|
|
17467
17445
|
}
|
|
@@ -17601,10 +17579,12 @@
|
|
|
17601
17579
|
return addMonths(date, amount);
|
|
17602
17580
|
}
|
|
17603
17581
|
getWeekArray(date, firstDayOfWeek) {
|
|
17604
|
-
|
|
17582
|
+
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
|
17583
|
+
return getWeekArray(date, this.locale, firstDay);
|
|
17605
17584
|
}
|
|
17606
17585
|
startOfWeek(date, firstDayOfWeek) {
|
|
17607
|
-
|
|
17586
|
+
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
|
17587
|
+
return startOfWeek(date, this.locale, firstDay);
|
|
17608
17588
|
}
|
|
17609
17589
|
endOfWeek(date) {
|
|
17610
17590
|
return endOfWeek(date, this.locale);
|
|
@@ -17664,7 +17644,8 @@
|
|
|
17664
17644
|
return getDiff(date, comparing, unit);
|
|
17665
17645
|
}
|
|
17666
17646
|
getWeekdays(firstDayOfWeek) {
|
|
17667
|
-
|
|
17647
|
+
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
|
17648
|
+
return getWeekdays(this.locale, firstDay);
|
|
17668
17649
|
}
|
|
17669
17650
|
getYear(date) {
|
|
17670
17651
|
return getYear(date);
|
|
@@ -17672,6 +17653,10 @@
|
|
|
17672
17653
|
getMonth(date) {
|
|
17673
17654
|
return getMonth(date);
|
|
17674
17655
|
}
|
|
17656
|
+
getWeek(date, firstDayOfWeek, firstWeekMinSize) {
|
|
17657
|
+
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
|
17658
|
+
return getWeek(date, this.locale, firstDay, firstWeekMinSize);
|
|
17659
|
+
}
|
|
17675
17660
|
getDate(date) {
|
|
17676
17661
|
return getDate(date);
|
|
17677
17662
|
}
|
|
@@ -17775,26 +17760,6 @@
|
|
|
17775
17760
|
return createInstance(options, locale);
|
|
17776
17761
|
}
|
|
17777
17762
|
|
|
17778
|
-
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
17779
|
-
function getWeek(adapter, value) {
|
|
17780
|
-
const date = adapter.toJsDate(value);
|
|
17781
|
-
let year = date.getFullYear();
|
|
17782
|
-
let d1w1 = new Date(year, 0, 1);
|
|
17783
|
-
if (date < d1w1) {
|
|
17784
|
-
year = year - 1;
|
|
17785
|
-
d1w1 = new Date(year, 0, 1);
|
|
17786
|
-
} else {
|
|
17787
|
-
const tv = new Date(year + 1, 0, 1);
|
|
17788
|
-
if (date >= tv) {
|
|
17789
|
-
year = year + 1;
|
|
17790
|
-
d1w1 = tv;
|
|
17791
|
-
}
|
|
17792
|
-
}
|
|
17793
|
-
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
17794
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
17795
|
-
return Math.floor(diffDays / 7) + 1;
|
|
17796
|
-
}
|
|
17797
|
-
|
|
17798
17763
|
// Types
|
|
17799
17764
|
|
|
17800
17765
|
const makeVColorPickerProps = propsFactory({
|
|
@@ -17998,7 +17963,6 @@
|
|
|
17998
17963
|
const vVirtualScrollRef = vue.ref();
|
|
17999
17964
|
const selectionIndex = vue.shallowRef(-1);
|
|
18000
17965
|
let cleared = false;
|
|
18001
|
-
const color = vue.computed(() => vTextFieldRef.value?.color);
|
|
18002
17966
|
const {
|
|
18003
17967
|
items,
|
|
18004
17968
|
transformIn,
|
|
@@ -18007,7 +17971,7 @@
|
|
|
18007
17971
|
const {
|
|
18008
17972
|
textColorClasses,
|
|
18009
17973
|
textColorStyles
|
|
18010
|
-
} = useTextColor(color);
|
|
17974
|
+
} = useTextColor(() => vTextFieldRef.value?.color);
|
|
18011
17975
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
|
|
18012
17976
|
const transformed = transformOut(v);
|
|
18013
17977
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
@@ -18062,7 +18026,7 @@
|
|
|
18062
18026
|
_menu.value = v;
|
|
18063
18027
|
}
|
|
18064
18028
|
});
|
|
18065
|
-
const label = vue.
|
|
18029
|
+
const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
|
|
18066
18030
|
vue.watch(_search, value => {
|
|
18067
18031
|
if (cleared) {
|
|
18068
18032
|
// wait for clear to finish, VTextField sets _search to null
|
|
@@ -18568,7 +18532,7 @@
|
|
|
18568
18532
|
}, 'DataTable-expand');
|
|
18569
18533
|
const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');
|
|
18570
18534
|
function provideExpanded(props) {
|
|
18571
|
-
const expandOnClick = vue.toRef(props
|
|
18535
|
+
const expandOnClick = vue.toRef(() => props.expandOnClick);
|
|
18572
18536
|
const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {
|
|
18573
18537
|
return new Set(v);
|
|
18574
18538
|
}, v => {
|
|
@@ -18755,23 +18719,23 @@
|
|
|
18755
18719
|
search
|
|
18756
18720
|
} = _ref;
|
|
18757
18721
|
const vm = getCurrentInstance('VDataTable');
|
|
18758
|
-
const options =
|
|
18722
|
+
const options = () => ({
|
|
18759
18723
|
page: page.value,
|
|
18760
18724
|
itemsPerPage: itemsPerPage.value,
|
|
18761
18725
|
sortBy: sortBy.value,
|
|
18762
18726
|
groupBy: groupBy.value,
|
|
18763
18727
|
search: search.value
|
|
18764
|
-
})
|
|
18728
|
+
});
|
|
18765
18729
|
let oldOptions = null;
|
|
18766
|
-
vue.watch(options,
|
|
18767
|
-
if (deepEqual(oldOptions,
|
|
18730
|
+
vue.watch(options, value => {
|
|
18731
|
+
if (deepEqual(oldOptions, value)) return;
|
|
18768
18732
|
|
|
18769
18733
|
// Reset page when searching
|
|
18770
|
-
if (oldOptions && oldOptions.search !==
|
|
18734
|
+
if (oldOptions && oldOptions.search !== value.search) {
|
|
18771
18735
|
page.value = 1;
|
|
18772
18736
|
}
|
|
18773
|
-
vm.emit('update:options',
|
|
18774
|
-
oldOptions =
|
|
18737
|
+
vm.emit('update:options', value);
|
|
18738
|
+
oldOptions = value;
|
|
18775
18739
|
}, {
|
|
18776
18740
|
deep: true,
|
|
18777
18741
|
immediate: true
|
|
@@ -19052,7 +19016,7 @@
|
|
|
19052
19016
|
});
|
|
19053
19017
|
return !!items.length && isSelected(items);
|
|
19054
19018
|
});
|
|
19055
|
-
const showSelectAll = vue.
|
|
19019
|
+
const showSelectAll = vue.toRef(() => selectStrategy.value.showSelectAll);
|
|
19056
19020
|
const data = {
|
|
19057
19021
|
toggleSelect,
|
|
19058
19022
|
select,
|
|
@@ -19090,8 +19054,8 @@
|
|
|
19090
19054
|
const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
|
|
19091
19055
|
function createSort(props) {
|
|
19092
19056
|
const sortBy = useProxiedModel(props, 'sortBy');
|
|
19093
|
-
const mustSort = vue.toRef(props
|
|
19094
|
-
const multiSort = vue.toRef(props
|
|
19057
|
+
const mustSort = vue.toRef(() => props.mustSort);
|
|
19058
|
+
const multiSort = vue.toRef(() => props.multiSort);
|
|
19095
19059
|
return {
|
|
19096
19060
|
sortBy,
|
|
19097
19061
|
mustSort,
|
|
@@ -19309,7 +19273,7 @@
|
|
|
19309
19273
|
slots
|
|
19310
19274
|
} = _ref;
|
|
19311
19275
|
const groupBy = useProxiedModel(props, 'groupBy');
|
|
19312
|
-
const search = vue.toRef(props
|
|
19276
|
+
const search = vue.toRef(() => props.search);
|
|
19313
19277
|
const {
|
|
19314
19278
|
items
|
|
19315
19279
|
} = useDataIteratorItems(props);
|
|
@@ -19353,7 +19317,7 @@
|
|
|
19353
19317
|
const {
|
|
19354
19318
|
flatItems
|
|
19355
19319
|
} = useGroupedItems(sortedItems, groupBy, opened);
|
|
19356
|
-
const itemsLength = vue.
|
|
19320
|
+
const itemsLength = vue.toRef(() => flatItems.value.length);
|
|
19357
19321
|
const {
|
|
19358
19322
|
startIndex,
|
|
19359
19323
|
stopIndex,
|
|
@@ -19633,13 +19597,13 @@
|
|
|
19633
19597
|
} = useRefs();
|
|
19634
19598
|
provideDefaults({
|
|
19635
19599
|
VPaginationBtn: {
|
|
19636
|
-
color: vue.toRef(props
|
|
19637
|
-
border: vue.toRef(props
|
|
19638
|
-
density: vue.toRef(props
|
|
19639
|
-
size: vue.toRef(props
|
|
19640
|
-
variant: vue.toRef(props
|
|
19641
|
-
rounded: vue.toRef(props
|
|
19642
|
-
elevation: vue.toRef(props
|
|
19600
|
+
color: vue.toRef(() => props.color),
|
|
19601
|
+
border: vue.toRef(() => props.border),
|
|
19602
|
+
density: vue.toRef(() => props.density),
|
|
19603
|
+
size: vue.toRef(() => props.size),
|
|
19604
|
+
variant: vue.toRef(() => props.variant),
|
|
19605
|
+
rounded: vue.toRef(() => props.rounded),
|
|
19606
|
+
elevation: vue.toRef(() => props.elevation)
|
|
19643
19607
|
}
|
|
19644
19608
|
});
|
|
19645
19609
|
const items = vue.computed(() => {
|
|
@@ -20280,7 +20244,7 @@
|
|
|
20280
20244
|
const {
|
|
20281
20245
|
backgroundColorClasses,
|
|
20282
20246
|
backgroundColorStyles
|
|
20283
|
-
} = useBackgroundColor(props
|
|
20247
|
+
} = useBackgroundColor(() => props.color);
|
|
20284
20248
|
const {
|
|
20285
20249
|
displayClasses,
|
|
20286
20250
|
mobile
|
|
@@ -20938,13 +20902,13 @@
|
|
|
20938
20902
|
filterFunctions
|
|
20939
20903
|
} = createHeaders(props, {
|
|
20940
20904
|
groupBy,
|
|
20941
|
-
showSelect: vue.toRef(props
|
|
20942
|
-
showExpand: vue.toRef(props
|
|
20905
|
+
showSelect: vue.toRef(() => props.showSelect),
|
|
20906
|
+
showExpand: vue.toRef(() => props.showExpand)
|
|
20943
20907
|
});
|
|
20944
20908
|
const {
|
|
20945
20909
|
items
|
|
20946
20910
|
} = useDataTableItems(props, columns);
|
|
20947
|
-
const search = vue.toRef(props
|
|
20911
|
+
const search = vue.toRef(() => props.search);
|
|
20948
20912
|
const {
|
|
20949
20913
|
filteredItems
|
|
20950
20914
|
} = useFilter(props, items, search, {
|
|
@@ -21027,10 +20991,10 @@
|
|
|
21027
20991
|
});
|
|
21028
20992
|
provideDefaults({
|
|
21029
20993
|
VDataTableRows: {
|
|
21030
|
-
hideNoData: vue.toRef(props
|
|
21031
|
-
noDataText: vue.toRef(props
|
|
21032
|
-
loading: vue.toRef(props
|
|
21033
|
-
loadingText: vue.toRef(props
|
|
20994
|
+
hideNoData: vue.toRef(() => props.hideNoData),
|
|
20995
|
+
noDataText: vue.toRef(() => props.noDataText),
|
|
20996
|
+
loading: vue.toRef(() => props.loading),
|
|
20997
|
+
loadingText: vue.toRef(() => props.loadingText)
|
|
21034
20998
|
}
|
|
21035
20999
|
});
|
|
21036
21000
|
const slotProps = vue.computed(() => ({
|
|
@@ -21127,13 +21091,13 @@
|
|
|
21127
21091
|
sortRawFunctions
|
|
21128
21092
|
} = createHeaders(props, {
|
|
21129
21093
|
groupBy,
|
|
21130
|
-
showSelect: vue.toRef(props
|
|
21131
|
-
showExpand: vue.toRef(props
|
|
21094
|
+
showSelect: vue.toRef(() => props.showSelect),
|
|
21095
|
+
showExpand: vue.toRef(() => props.showExpand)
|
|
21132
21096
|
});
|
|
21133
21097
|
const {
|
|
21134
21098
|
items
|
|
21135
21099
|
} = useDataTableItems(props, columns);
|
|
21136
|
-
const search = vue.toRef(props
|
|
21100
|
+
const search = vue.toRef(() => props.search);
|
|
21137
21101
|
const {
|
|
21138
21102
|
filteredItems
|
|
21139
21103
|
} = useFilter(props, items, search, {
|
|
@@ -21209,10 +21173,10 @@
|
|
|
21209
21173
|
});
|
|
21210
21174
|
provideDefaults({
|
|
21211
21175
|
VDataTableRows: {
|
|
21212
|
-
hideNoData: vue.toRef(props
|
|
21213
|
-
noDataText: vue.toRef(props
|
|
21214
|
-
loading: vue.toRef(props
|
|
21215
|
-
loadingText: vue.toRef(props
|
|
21176
|
+
hideNoData: vue.toRef(() => props.hideNoData),
|
|
21177
|
+
noDataText: vue.toRef(() => props.noDataText),
|
|
21178
|
+
loading: vue.toRef(() => props.loading),
|
|
21179
|
+
loadingText: vue.toRef(() => props.loadingText)
|
|
21216
21180
|
}
|
|
21217
21181
|
});
|
|
21218
21182
|
const slotProps = vue.computed(() => ({
|
|
@@ -21365,8 +21329,8 @@
|
|
|
21365
21329
|
headers
|
|
21366
21330
|
} = createHeaders(props, {
|
|
21367
21331
|
groupBy,
|
|
21368
|
-
showSelect: vue.toRef(props
|
|
21369
|
-
showExpand: vue.toRef(props
|
|
21332
|
+
showSelect: vue.toRef(() => props.showSelect),
|
|
21333
|
+
showExpand: vue.toRef(() => props.showExpand)
|
|
21370
21334
|
});
|
|
21371
21335
|
const {
|
|
21372
21336
|
items
|
|
@@ -21421,7 +21385,7 @@
|
|
|
21421
21385
|
itemsPerPage,
|
|
21422
21386
|
sortBy,
|
|
21423
21387
|
groupBy,
|
|
21424
|
-
search: vue.toRef(props
|
|
21388
|
+
search: vue.toRef(() => props.search)
|
|
21425
21389
|
});
|
|
21426
21390
|
vue.provide('v-data-table', {
|
|
21427
21391
|
toggleSort,
|
|
@@ -21429,10 +21393,10 @@
|
|
|
21429
21393
|
});
|
|
21430
21394
|
provideDefaults({
|
|
21431
21395
|
VDataTableRows: {
|
|
21432
|
-
hideNoData: vue.toRef(props
|
|
21433
|
-
noDataText: vue.toRef(props
|
|
21434
|
-
loading: vue.toRef(props
|
|
21435
|
-
loadingText: vue.toRef(props
|
|
21396
|
+
hideNoData: vue.toRef(() => props.hideNoData),
|
|
21397
|
+
noDataText: vue.toRef(() => props.noDataText),
|
|
21398
|
+
loading: vue.toRef(() => props.loading),
|
|
21399
|
+
loadingText: vue.toRef(() => props.loadingText)
|
|
21436
21400
|
}
|
|
21437
21401
|
});
|
|
21438
21402
|
const slotProps = vue.computed(() => ({
|
|
@@ -21902,7 +21866,7 @@
|
|
|
21902
21866
|
const {
|
|
21903
21867
|
backgroundColorClasses,
|
|
21904
21868
|
backgroundColorStyles
|
|
21905
|
-
} = useBackgroundColor(props
|
|
21869
|
+
} = useBackgroundColor(() => props.color);
|
|
21906
21870
|
function onClick() {
|
|
21907
21871
|
emit('click');
|
|
21908
21872
|
}
|
|
@@ -21983,7 +21947,7 @@
|
|
|
21983
21947
|
},
|
|
21984
21948
|
firstDayOfWeek: {
|
|
21985
21949
|
type: [Number, String],
|
|
21986
|
-
default:
|
|
21950
|
+
default: undefined
|
|
21987
21951
|
}
|
|
21988
21952
|
}, 'calendar');
|
|
21989
21953
|
function useCalendar(props) {
|
|
@@ -22006,14 +21970,12 @@
|
|
|
22006
21970
|
return adapter.setMonth(date, value);
|
|
22007
21971
|
}, v => adapter.getMonth(v));
|
|
22008
21972
|
const weekDays = vue.computed(() => {
|
|
22009
|
-
const firstDayOfWeek =
|
|
22010
|
-
|
|
21973
|
+
const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
|
|
22011
21974
|
// Always generate all days, regardless of props.weekdays
|
|
22012
21975
|
return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
|
|
22013
21976
|
});
|
|
22014
21977
|
const weeksInMonth = vue.computed(() => {
|
|
22015
|
-
const
|
|
22016
|
-
const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
|
|
21978
|
+
const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
|
|
22017
21979
|
const days = weeks.flat();
|
|
22018
21980
|
|
|
22019
21981
|
// Make sure there's always 6 weeks in month (6 * 7 days)
|
|
@@ -22043,21 +22005,21 @@
|
|
|
22043
22005
|
const isSame = adapter.isSameDay(date, month.value);
|
|
22044
22006
|
return {
|
|
22045
22007
|
date,
|
|
22046
|
-
isoDate,
|
|
22047
22008
|
formatted: adapter.format(date, 'keyboardDate'),
|
|
22048
|
-
year: adapter.getYear(date),
|
|
22049
|
-
month: adapter.getMonth(date),
|
|
22050
|
-
isDisabled: isDisabled(date),
|
|
22051
|
-
isWeekStart: index % 7 === 0,
|
|
22052
|
-
isWeekEnd: index % 7 === 6,
|
|
22053
|
-
isToday: adapter.isSameDay(date, today),
|
|
22054
22009
|
isAdjacent,
|
|
22055
|
-
|
|
22056
|
-
isStart,
|
|
22057
|
-
isSelected: model.value.some(value => adapter.isSameDay(date, value)),
|
|
22010
|
+
isDisabled: isDisabled(date),
|
|
22058
22011
|
isEnd,
|
|
22012
|
+
isHidden: isAdjacent && !props.showAdjacentMonths,
|
|
22059
22013
|
isSame,
|
|
22060
|
-
|
|
22014
|
+
isSelected: model.value.some(value => adapter.isSameDay(date, value)),
|
|
22015
|
+
isStart,
|
|
22016
|
+
isToday: adapter.isSameDay(date, today),
|
|
22017
|
+
isWeekEnd: index % 7 === 6,
|
|
22018
|
+
isWeekStart: index % 7 === 0,
|
|
22019
|
+
isoDate,
|
|
22020
|
+
localized: adapter.format(date, 'dayOfMonth'),
|
|
22021
|
+
month: adapter.getMonth(date),
|
|
22022
|
+
year: adapter.getYear(date)
|
|
22061
22023
|
};
|
|
22062
22024
|
});
|
|
22063
22025
|
}
|
|
@@ -22077,7 +22039,7 @@
|
|
|
22077
22039
|
});
|
|
22078
22040
|
const weekNumbers = vue.computed(() => {
|
|
22079
22041
|
return weeksInMonth.value.map(week => {
|
|
22080
|
-
return week.length ? getWeek(
|
|
22042
|
+
return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
|
|
22081
22043
|
});
|
|
22082
22044
|
});
|
|
22083
22045
|
function isDisabled(value) {
|
|
@@ -22145,7 +22107,7 @@
|
|
|
22145
22107
|
const rangeStart = vue.shallowRef();
|
|
22146
22108
|
const rangeStop = vue.shallowRef();
|
|
22147
22109
|
const isReverse = vue.shallowRef(false);
|
|
22148
|
-
const transition = vue.
|
|
22110
|
+
const transition = vue.toRef(() => {
|
|
22149
22111
|
return !isReverse.value ? props.transition : props.reverseTransition;
|
|
22150
22112
|
});
|
|
22151
22113
|
if (props.multiple === 'range' && model.value.length > 0) {
|
|
@@ -22525,7 +22487,7 @@
|
|
|
22525
22487
|
}
|
|
22526
22488
|
return value && adapter.isValid(value) ? value : today;
|
|
22527
22489
|
});
|
|
22528
|
-
const headerColor = vue.
|
|
22490
|
+
const headerColor = vue.toRef(() => props.headerColor ?? props.color);
|
|
22529
22491
|
const month = vue.ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
|
|
22530
22492
|
const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
|
|
22531
22493
|
const isReversing = vue.shallowRef(false);
|
|
@@ -22542,8 +22504,8 @@
|
|
|
22542
22504
|
date = adapter.setYear(date, year.value);
|
|
22543
22505
|
return adapter.format(date, 'monthAndYear');
|
|
22544
22506
|
});
|
|
22545
|
-
// const headerIcon =
|
|
22546
|
-
const headerTransition = vue.
|
|
22507
|
+
// const headerIcon = toRef(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
|
|
22508
|
+
const headerTransition = vue.toRef(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
|
|
22547
22509
|
const disabled = vue.computed(() => {
|
|
22548
22510
|
if (props.disabled) return true;
|
|
22549
22511
|
const targets = [];
|
|
@@ -22755,7 +22717,7 @@
|
|
|
22755
22717
|
const {
|
|
22756
22718
|
backgroundColorClasses,
|
|
22757
22719
|
backgroundColorStyles
|
|
22758
|
-
} = useBackgroundColor(
|
|
22720
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
22759
22721
|
const {
|
|
22760
22722
|
dimensionStyles
|
|
22761
22723
|
} = useDimension(props);
|
|
@@ -22918,7 +22880,7 @@
|
|
|
22918
22880
|
const {
|
|
22919
22881
|
backgroundColorClasses,
|
|
22920
22882
|
backgroundColorStyles
|
|
22921
|
-
} = useBackgroundColor(props
|
|
22883
|
+
} = useBackgroundColor(() => props.color);
|
|
22922
22884
|
const {
|
|
22923
22885
|
dimensionStyles
|
|
22924
22886
|
} = useDimension(props);
|
|
@@ -22929,7 +22891,7 @@
|
|
|
22929
22891
|
expandIcon: props.expandIcon,
|
|
22930
22892
|
readonly: props.readonly
|
|
22931
22893
|
}));
|
|
22932
|
-
const icon = vue.
|
|
22894
|
+
const icon = vue.toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
|
|
22933
22895
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
|
22934
22896
|
"class": ['v-expansion-panel-title', {
|
|
22935
22897
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value,
|
|
@@ -22984,14 +22946,14 @@
|
|
|
22984
22946
|
const {
|
|
22985
22947
|
backgroundColorClasses,
|
|
22986
22948
|
backgroundColorStyles
|
|
22987
|
-
} = useBackgroundColor(props
|
|
22949
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
22988
22950
|
const {
|
|
22989
22951
|
elevationClasses
|
|
22990
22952
|
} = useElevation(props);
|
|
22991
22953
|
const {
|
|
22992
22954
|
roundedClasses
|
|
22993
22955
|
} = useRounded(props);
|
|
22994
|
-
const isDisabled = vue.
|
|
22956
|
+
const isDisabled = vue.toRef(() => groupItem?.disabled.value || props.disabled);
|
|
22995
22957
|
const selectedIndices = vue.computed(() => groupItem.group.items.value.reduce((arr, item, index) => {
|
|
22996
22958
|
if (groupItem.group.selected.value.includes(item.id)) arr.push(index);
|
|
22997
22959
|
return arr;
|
|
@@ -23082,21 +23044,21 @@
|
|
|
23082
23044
|
const {
|
|
23083
23045
|
themeClasses
|
|
23084
23046
|
} = provideTheme(props);
|
|
23085
|
-
const variantClass = vue.
|
|
23047
|
+
const variantClass = vue.toRef(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
|
|
23086
23048
|
provideDefaults({
|
|
23087
23049
|
VExpansionPanel: {
|
|
23088
|
-
bgColor: vue.toRef(props
|
|
23089
|
-
collapseIcon: vue.toRef(props
|
|
23090
|
-
color: vue.toRef(props
|
|
23091
|
-
eager: vue.toRef(props
|
|
23092
|
-
elevation: vue.toRef(props
|
|
23093
|
-
expandIcon: vue.toRef(props
|
|
23094
|
-
focusable: vue.toRef(props
|
|
23095
|
-
hideActions: vue.toRef(props
|
|
23096
|
-
readonly: vue.toRef(props
|
|
23097
|
-
ripple: vue.toRef(props
|
|
23098
|
-
rounded: vue.toRef(props
|
|
23099
|
-
static: vue.toRef(props
|
|
23050
|
+
bgColor: vue.toRef(() => props.bgColor),
|
|
23051
|
+
collapseIcon: vue.toRef(() => props.collapseIcon),
|
|
23052
|
+
color: vue.toRef(() => props.color),
|
|
23053
|
+
eager: vue.toRef(() => props.eager),
|
|
23054
|
+
elevation: vue.toRef(() => props.elevation),
|
|
23055
|
+
expandIcon: vue.toRef(() => props.expandIcon),
|
|
23056
|
+
focusable: vue.toRef(() => props.focusable),
|
|
23057
|
+
hideActions: vue.toRef(() => props.hideActions),
|
|
23058
|
+
readonly: vue.toRef(() => props.readonly),
|
|
23059
|
+
ripple: vue.toRef(() => props.ripple),
|
|
23060
|
+
rounded: vue.toRef(() => props.rounded),
|
|
23061
|
+
static: vue.toRef(() => props.static)
|
|
23100
23062
|
}
|
|
23101
23063
|
});
|
|
23102
23064
|
useRender(() => vue.createVNode(props.tag, {
|
|
@@ -23158,7 +23120,7 @@
|
|
|
23158
23120
|
if (!entries.length) return;
|
|
23159
23121
|
height.value = entries[0].target.clientHeight;
|
|
23160
23122
|
});
|
|
23161
|
-
const hasPosition = vue.
|
|
23123
|
+
const hasPosition = vue.toRef(() => props.app || props.absolute);
|
|
23162
23124
|
const position = vue.computed(() => {
|
|
23163
23125
|
if (!hasPosition.value) return false;
|
|
23164
23126
|
return props.location?.split(' ').shift() ?? 'bottom';
|
|
@@ -23175,7 +23137,7 @@
|
|
|
23175
23137
|
layoutSize: vue.computed(() => props.layout ? height.value + 24 : 0),
|
|
23176
23138
|
elementSize: vue.computed(() => height.value + 24),
|
|
23177
23139
|
active: vue.computed(() => props.app && model.value),
|
|
23178
|
-
absolute: vue.toRef(props
|
|
23140
|
+
absolute: vue.toRef(() => props.absolute)
|
|
23179
23141
|
});
|
|
23180
23142
|
vue.watchEffect(() => {
|
|
23181
23143
|
layoutItemStyles.value = layout.layoutItemStyles.value;
|
|
@@ -23300,7 +23262,7 @@
|
|
|
23300
23262
|
const vInputRef = vue.ref();
|
|
23301
23263
|
const vFieldRef = vue.ref();
|
|
23302
23264
|
const inputRef = vue.ref();
|
|
23303
|
-
const isActive = vue.
|
|
23265
|
+
const isActive = vue.toRef(() => isFocused.value || props.active);
|
|
23304
23266
|
const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
23305
23267
|
function onFocus() {
|
|
23306
23268
|
if (inputRef.value !== document.activeElement) {
|
|
@@ -23473,7 +23435,7 @@
|
|
|
23473
23435
|
const {
|
|
23474
23436
|
backgroundColorClasses,
|
|
23475
23437
|
backgroundColorStyles
|
|
23476
|
-
} = useBackgroundColor(
|
|
23438
|
+
} = useBackgroundColor(() => props.color);
|
|
23477
23439
|
const {
|
|
23478
23440
|
borderClasses
|
|
23479
23441
|
} = useBorder(props);
|
|
@@ -23495,11 +23457,11 @@
|
|
|
23495
23457
|
const layout = useLayoutItem({
|
|
23496
23458
|
id: props.name,
|
|
23497
23459
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
23498
|
-
position: vue.
|
|
23460
|
+
position: vue.toRef(() => 'bottom'),
|
|
23499
23461
|
layoutSize: height,
|
|
23500
23462
|
elementSize: vue.computed(() => props.height === 'auto' ? undefined : height.value),
|
|
23501
|
-
active: vue.
|
|
23502
|
-
absolute: vue.toRef(props
|
|
23463
|
+
active: vue.toRef(() => props.app),
|
|
23464
|
+
absolute: vue.toRef(() => props.absolute)
|
|
23503
23465
|
});
|
|
23504
23466
|
vue.watchEffect(() => {
|
|
23505
23467
|
layoutItemStyles.value = layout.layoutItemStyles.value;
|
|
@@ -23972,11 +23934,11 @@
|
|
|
23972
23934
|
} = useLayoutItem({
|
|
23973
23935
|
id: props.name,
|
|
23974
23936
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
23975
|
-
position: vue.toRef(props
|
|
23976
|
-
elementSize: vue.toRef(props
|
|
23977
|
-
layoutSize: vue.toRef(props
|
|
23978
|
-
active: vue.toRef(props
|
|
23979
|
-
absolute: vue.toRef(props
|
|
23937
|
+
position: vue.toRef(() => props.position),
|
|
23938
|
+
elementSize: vue.toRef(() => props.size),
|
|
23939
|
+
layoutSize: vue.toRef(() => props.size),
|
|
23940
|
+
active: vue.toRef(() => props.modelValue),
|
|
23941
|
+
absolute: vue.toRef(() => props.absolute)
|
|
23980
23942
|
});
|
|
23981
23943
|
return () => vue.createVNode("div", {
|
|
23982
23944
|
"class": ['v-layout-item', props.class],
|
|
@@ -24508,7 +24470,7 @@
|
|
|
24508
24470
|
const {
|
|
24509
24471
|
backgroundColorClasses,
|
|
24510
24472
|
backgroundColorStyles
|
|
24511
|
-
} = useBackgroundColor(
|
|
24473
|
+
} = useBackgroundColor(() => props.color);
|
|
24512
24474
|
const {
|
|
24513
24475
|
elevationClasses
|
|
24514
24476
|
} = useElevation(props);
|
|
@@ -24541,7 +24503,7 @@
|
|
|
24541
24503
|
const location = vue.computed(() => {
|
|
24542
24504
|
return toPhysical(props.location, isRtl.value);
|
|
24543
24505
|
});
|
|
24544
|
-
const isPersistent = vue.
|
|
24506
|
+
const isPersistent = vue.toRef(() => props.persistent);
|
|
24545
24507
|
const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
|
|
24546
24508
|
const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
|
|
24547
24509
|
useToggleScope(() => props.expandOnHover && props.rail != null, () => {
|
|
@@ -24567,7 +24529,7 @@
|
|
|
24567
24529
|
isActive,
|
|
24568
24530
|
isTemporary,
|
|
24569
24531
|
width,
|
|
24570
|
-
touchless: vue.toRef(props
|
|
24532
|
+
touchless: vue.toRef(() => props.touchless),
|
|
24571
24533
|
position: location
|
|
24572
24534
|
});
|
|
24573
24535
|
const layoutSize = vue.computed(() => {
|
|
@@ -24584,7 +24546,7 @@
|
|
|
24584
24546
|
layoutSize,
|
|
24585
24547
|
elementSize: width,
|
|
24586
24548
|
active: vue.readonly(isActive),
|
|
24587
|
-
disableTransitions: vue.
|
|
24549
|
+
disableTransitions: vue.toRef(() => isDragging.value),
|
|
24588
24550
|
absolute: vue.computed(() =>
|
|
24589
24551
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
24590
24552
|
props.absolute || isSticky.value && typeof isStuck.value !== 'string')
|
|
@@ -24597,9 +24559,9 @@
|
|
|
24597
24559
|
isSticky,
|
|
24598
24560
|
layoutItemStyles
|
|
24599
24561
|
});
|
|
24600
|
-
const scrimColor = useBackgroundColor(
|
|
24562
|
+
const scrimColor = useBackgroundColor(() => {
|
|
24601
24563
|
return typeof props.scrim === 'string' ? props.scrim : null;
|
|
24602
|
-
})
|
|
24564
|
+
});
|
|
24603
24565
|
const scrimStyles = vue.computed(() => ({
|
|
24604
24566
|
...(isDragging.value ? {
|
|
24605
24567
|
opacity: dragProgress.value * 0.2,
|
|
@@ -24813,24 +24775,24 @@
|
|
|
24813
24775
|
const controlVariant = vue.computed(() => {
|
|
24814
24776
|
return props.hideInput ? 'stacked' : props.controlVariant;
|
|
24815
24777
|
});
|
|
24816
|
-
const incrementIcon = vue.
|
|
24817
|
-
const decrementIcon = vue.
|
|
24818
|
-
const controlNodeSize = vue.
|
|
24819
|
-
const controlNodeDefaultHeight = vue.
|
|
24820
|
-
const incrementSlotProps =
|
|
24778
|
+
const incrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
|
|
24779
|
+
const decrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand');
|
|
24780
|
+
const controlNodeSize = vue.toRef(() => controlVariant.value === 'split' ? 'default' : 'small');
|
|
24781
|
+
const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
|
|
24782
|
+
const incrementSlotProps = {
|
|
24821
24783
|
props: {
|
|
24822
24784
|
onClick: onControlClick,
|
|
24823
24785
|
onPointerup: onControlMouseup,
|
|
24824
24786
|
onPointerdown: onUpControlMousedown
|
|
24825
24787
|
}
|
|
24826
|
-
}
|
|
24827
|
-
const decrementSlotProps =
|
|
24788
|
+
};
|
|
24789
|
+
const decrementSlotProps = {
|
|
24828
24790
|
props: {
|
|
24829
24791
|
onClick: onControlClick,
|
|
24830
24792
|
onPointerup: onControlMouseup,
|
|
24831
24793
|
onPointerdown: onDownControlMousedown
|
|
24832
24794
|
}
|
|
24833
|
-
}
|
|
24795
|
+
};
|
|
24834
24796
|
vue.watch(() => props.precision, () => formatInputValue());
|
|
24835
24797
|
vue.onMounted(() => {
|
|
24836
24798
|
clampModel();
|
|
@@ -24982,7 +24944,7 @@
|
|
|
24982
24944
|
}
|
|
24983
24945
|
}
|
|
24984
24946
|
}, {
|
|
24985
|
-
default: () => [slots.increment(incrementSlotProps
|
|
24947
|
+
default: () => [slots.increment(incrementSlotProps)]
|
|
24986
24948
|
});
|
|
24987
24949
|
}
|
|
24988
24950
|
function decrementControlNode() {
|
|
@@ -25011,7 +24973,7 @@
|
|
|
25011
24973
|
}
|
|
25012
24974
|
}
|
|
25013
24975
|
}, {
|
|
25014
|
-
default: () => [slots.decrement(decrementSlotProps
|
|
24976
|
+
default: () => [slots.decrement(decrementSlotProps)]
|
|
25015
24977
|
});
|
|
25016
24978
|
}
|
|
25017
24979
|
function controlNode() {
|
|
@@ -25211,12 +25173,12 @@
|
|
|
25211
25173
|
}
|
|
25212
25174
|
provideDefaults({
|
|
25213
25175
|
VField: {
|
|
25214
|
-
color: vue.
|
|
25215
|
-
bgColor: vue.
|
|
25216
|
-
baseColor: vue.
|
|
25217
|
-
disabled: vue.
|
|
25218
|
-
error: vue.
|
|
25219
|
-
variant: vue.
|
|
25176
|
+
color: vue.toRef(() => props.color),
|
|
25177
|
+
bgColor: vue.toRef(() => props.color),
|
|
25178
|
+
baseColor: vue.toRef(() => props.baseColor),
|
|
25179
|
+
disabled: vue.toRef(() => props.disabled),
|
|
25180
|
+
error: vue.toRef(() => props.error),
|
|
25181
|
+
variant: vue.toRef(() => props.variant)
|
|
25220
25182
|
}
|
|
25221
25183
|
}, {
|
|
25222
25184
|
scoped: true
|
|
@@ -26017,7 +25979,7 @@
|
|
|
26017
25979
|
const {
|
|
26018
25980
|
backgroundColorClasses,
|
|
26019
25981
|
backgroundColorStyles
|
|
26020
|
-
} = useBackgroundColor(
|
|
25982
|
+
} = useBackgroundColor(() => props.color);
|
|
26021
25983
|
const {
|
|
26022
25984
|
dimensionStyles
|
|
26023
25985
|
} = useDimension(props);
|
|
@@ -26816,7 +26778,7 @@
|
|
|
26816
26778
|
const {
|
|
26817
26779
|
textColorClasses,
|
|
26818
26780
|
textColorStyles
|
|
26819
|
-
} = useTextColor(
|
|
26781
|
+
} = useTextColor(() => props.color);
|
|
26820
26782
|
const hasLabels = vue.computed(() => {
|
|
26821
26783
|
return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);
|
|
26822
26784
|
});
|
|
@@ -27362,11 +27324,11 @@
|
|
|
27362
27324
|
} = useFocus(props);
|
|
27363
27325
|
const control = vue.ref();
|
|
27364
27326
|
const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;
|
|
27365
|
-
const loaderColor = vue.
|
|
27327
|
+
const loaderColor = vue.toRef(() => {
|
|
27366
27328
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
27367
27329
|
});
|
|
27368
27330
|
const uid = vue.useId();
|
|
27369
|
-
const id = vue.
|
|
27331
|
+
const id = vue.toRef(() => props.id || `switch-${uid}`);
|
|
27370
27332
|
function onChange() {
|
|
27371
27333
|
if (indeterminate.value) {
|
|
27372
27334
|
indeterminate.value = false;
|
|
@@ -27517,7 +27479,7 @@
|
|
|
27517
27479
|
const {
|
|
27518
27480
|
backgroundColorClasses,
|
|
27519
27481
|
backgroundColorStyles
|
|
27520
|
-
} = useBackgroundColor(
|
|
27482
|
+
} = useBackgroundColor(() => props.color);
|
|
27521
27483
|
const {
|
|
27522
27484
|
elevationClasses
|
|
27523
27485
|
} = useElevation(props);
|
|
@@ -27537,7 +27499,7 @@
|
|
|
27537
27499
|
layoutSize: height,
|
|
27538
27500
|
elementSize: height,
|
|
27539
27501
|
active: vue.computed(() => true),
|
|
27540
|
-
absolute: vue.toRef(props
|
|
27502
|
+
absolute: vue.toRef(() => props.absolute)
|
|
27541
27503
|
});
|
|
27542
27504
|
useRender(() => vue.createVNode(props.tag, {
|
|
27543
27505
|
"class": ['v-system-bar', {
|
|
@@ -27579,7 +27541,7 @@
|
|
|
27579
27541
|
const {
|
|
27580
27542
|
textColorClasses: sliderColorClasses,
|
|
27581
27543
|
textColorStyles: sliderColorStyles
|
|
27582
|
-
} = useTextColor(props
|
|
27544
|
+
} = useTextColor(() => props.sliderColor);
|
|
27583
27545
|
const rootEl = vue.ref();
|
|
27584
27546
|
const sliderEl = vue.ref();
|
|
27585
27547
|
const isHorizontal = vue.computed(() => props.direction === 'horizontal');
|
|
@@ -27772,18 +27734,18 @@
|
|
|
27772
27734
|
const {
|
|
27773
27735
|
backgroundColorClasses,
|
|
27774
27736
|
backgroundColorStyles
|
|
27775
|
-
} = useBackgroundColor(
|
|
27737
|
+
} = useBackgroundColor(() => props.bgColor);
|
|
27776
27738
|
const {
|
|
27777
27739
|
scopeId
|
|
27778
27740
|
} = useScopeId();
|
|
27779
27741
|
provideDefaults({
|
|
27780
27742
|
VTab: {
|
|
27781
|
-
color: vue.toRef(props
|
|
27782
|
-
direction: vue.toRef(props
|
|
27783
|
-
stacked: vue.toRef(props
|
|
27784
|
-
fixed: vue.toRef(props
|
|
27785
|
-
sliderColor: vue.toRef(props
|
|
27786
|
-
hideSlider: vue.toRef(props
|
|
27743
|
+
color: vue.toRef(() => props.color),
|
|
27744
|
+
direction: vue.toRef(() => props.direction),
|
|
27745
|
+
stacked: vue.toRef(() => props.stacked),
|
|
27746
|
+
fixed: vue.toRef(() => props.fixedTabs),
|
|
27747
|
+
sliderColor: vue.toRef(() => props.sliderColor),
|
|
27748
|
+
hideSlider: vue.toRef(() => props.hideSlider)
|
|
27787
27749
|
}
|
|
27788
27750
|
});
|
|
27789
27751
|
useRender(() => {
|
|
@@ -28133,7 +28095,7 @@
|
|
|
28133
28095
|
const {
|
|
28134
28096
|
backgroundColorStyles,
|
|
28135
28097
|
backgroundColorClasses
|
|
28136
|
-
} = useBackgroundColor(
|
|
28098
|
+
} = useBackgroundColor(() => props.dotColor);
|
|
28137
28099
|
const {
|
|
28138
28100
|
roundedClasses
|
|
28139
28101
|
} = useRounded(props, 'v-timeline-divider__dot');
|
|
@@ -28143,7 +28105,7 @@
|
|
|
28143
28105
|
const {
|
|
28144
28106
|
backgroundColorClasses: lineColorClasses,
|
|
28145
28107
|
backgroundColorStyles: lineColorStyles
|
|
28146
|
-
} = useBackgroundColor(
|
|
28108
|
+
} = useBackgroundColor(() => props.lineColor);
|
|
28147
28109
|
useRender(() => vue.createVNode("div", {
|
|
28148
28110
|
"class": ['v-timeline-divider', {
|
|
28149
28111
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
@@ -28314,17 +28276,17 @@
|
|
|
28314
28276
|
} = useRtl();
|
|
28315
28277
|
provideDefaults({
|
|
28316
28278
|
VTimelineDivider: {
|
|
28317
|
-
lineColor: vue.toRef(props
|
|
28279
|
+
lineColor: vue.toRef(() => props.lineColor)
|
|
28318
28280
|
},
|
|
28319
28281
|
VTimelineItem: {
|
|
28320
|
-
density: vue.toRef(props
|
|
28321
|
-
dotColor: vue.toRef(props
|
|
28322
|
-
fillDot: vue.toRef(props
|
|
28323
|
-
hideOpposite: vue.toRef(props
|
|
28324
|
-
iconColor: vue.toRef(props
|
|
28325
|
-
lineColor: vue.toRef(props
|
|
28326
|
-
lineInset: vue.toRef(props
|
|
28327
|
-
size: vue.toRef(props
|
|
28282
|
+
density: vue.toRef(() => props.density),
|
|
28283
|
+
dotColor: vue.toRef(() => props.dotColor),
|
|
28284
|
+
fillDot: vue.toRef(() => props.fillDot),
|
|
28285
|
+
hideOpposite: vue.toRef(() => props.hideOpposite),
|
|
28286
|
+
iconColor: vue.toRef(() => props.iconColor),
|
|
28287
|
+
lineColor: vue.toRef(() => props.lineColor),
|
|
28288
|
+
lineInset: vue.toRef(() => props.lineInset),
|
|
28289
|
+
size: vue.toRef(() => props.size)
|
|
28328
28290
|
}
|
|
28329
28291
|
});
|
|
28330
28292
|
const sideClasses = vue.computed(() => {
|
|
@@ -28371,9 +28333,9 @@
|
|
|
28371
28333
|
} = _ref;
|
|
28372
28334
|
provideDefaults({
|
|
28373
28335
|
VBtn: {
|
|
28374
|
-
color: vue.toRef(props
|
|
28336
|
+
color: vue.toRef(() => props.color),
|
|
28375
28337
|
height: 'inherit',
|
|
28376
|
-
variant: vue.toRef(props
|
|
28338
|
+
variant: vue.toRef(() => props.variant)
|
|
28377
28339
|
}
|
|
28378
28340
|
});
|
|
28379
28341
|
useRender(() => vue.createVNode("div", {
|
|
@@ -28420,7 +28382,7 @@
|
|
|
28420
28382
|
scopeId
|
|
28421
28383
|
} = useScopeId();
|
|
28422
28384
|
const uid = vue.useId();
|
|
28423
|
-
const id = vue.
|
|
28385
|
+
const id = vue.toRef(() => props.id || `v-tooltip-${uid}`);
|
|
28424
28386
|
const overlay = vue.ref();
|
|
28425
28387
|
const location = vue.computed(() => {
|
|
28426
28388
|
return props.location.split(' ').length > 1 ? props.location : props.location + ' center';
|
|
@@ -28428,7 +28390,7 @@
|
|
|
28428
28390
|
const origin = vue.computed(() => {
|
|
28429
28391
|
return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
|
|
28430
28392
|
});
|
|
28431
|
-
const transition = vue.
|
|
28393
|
+
const transition = vue.toRef(() => {
|
|
28432
28394
|
if (props.transition) return props.transition;
|
|
28433
28395
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
|
28434
28396
|
});
|
|
@@ -28507,13 +28469,19 @@
|
|
|
28507
28469
|
}, 'VCalendarIntervalEvent');
|
|
28508
28470
|
const VCalendarIntervalEvent = genericComponent()({
|
|
28509
28471
|
name: 'VCalendarIntervalEvent',
|
|
28472
|
+
inheritAttrs: false,
|
|
28510
28473
|
props: makeVCalendarIntervalEventProps(),
|
|
28511
|
-
setup(props) {
|
|
28474
|
+
setup(props, _ref) {
|
|
28475
|
+
let {
|
|
28476
|
+
attrs,
|
|
28477
|
+
emit,
|
|
28478
|
+
slots
|
|
28479
|
+
} = _ref;
|
|
28512
28480
|
const adapter = useDate();
|
|
28513
28481
|
const calcHeight = () => {
|
|
28514
|
-
if (!props.event?.first && !props.event?.last || adapter.isEqual(props.event?.
|
|
28482
|
+
if (!props.event?.first && !props.event?.last || adapter.isEqual(props.event?.end, props.interval?.end)) {
|
|
28515
28483
|
return {
|
|
28516
|
-
height:
|
|
28484
|
+
height: `${props.intervalHeight}px`,
|
|
28517
28485
|
margin: convertToUnit(0)
|
|
28518
28486
|
};
|
|
28519
28487
|
} else {
|
|
@@ -28522,8 +28490,8 @@
|
|
|
28522
28490
|
margin
|
|
28523
28491
|
} = Array.from({
|
|
28524
28492
|
length: props.intervalDivisions
|
|
28525
|
-
}, x => x * (props.intervalDuration / props.intervalDivisions)).reduce((total, div, index) => {
|
|
28526
|
-
if (adapter.isBefore(adapter.addMinutes(props.interval?.start, div), props.event?.
|
|
28493
|
+
}, (_, x) => (x + 1) * (props.intervalDuration / props.intervalDivisions)).reduce((total, div, index) => {
|
|
28494
|
+
if (adapter.isBefore(adapter.addMinutes(props.interval?.start, div), props.event?.end)) {
|
|
28527
28495
|
return {
|
|
28528
28496
|
height: convertToUnit(props.intervalHeight / props.intervalDivisions * index),
|
|
28529
28497
|
margin: convertToUnit(props.intervalHeight / props.intervalDivisions * index)
|
|
@@ -28544,16 +28512,30 @@
|
|
|
28544
28512
|
}
|
|
28545
28513
|
};
|
|
28546
28514
|
useRender(() => {
|
|
28547
|
-
return vue.createVNode(
|
|
28515
|
+
return vue.createVNode("div", null, [slots.intervalEvent?.({
|
|
28516
|
+
height: calcHeight().height,
|
|
28517
|
+
margin: calcHeight().margin,
|
|
28518
|
+
eventClass: 'v-calendar-internal-event',
|
|
28519
|
+
event: props.event,
|
|
28520
|
+
interval: props.interval
|
|
28521
|
+
}) ?? vue.createVNode(VSheet, vue.mergeProps({
|
|
28548
28522
|
"height": calcHeight().height,
|
|
28549
28523
|
"density": "comfortable",
|
|
28550
28524
|
"style": `margin-top: ${calcHeight().margin}`,
|
|
28551
28525
|
"class": "v-calendar-internal-event",
|
|
28552
28526
|
"color": props.event?.color ?? undefined,
|
|
28553
28527
|
"rounded": props.event?.first && props.event?.last ? true : props.event?.first ? 't' : props.event?.last ? 'b' : false
|
|
28554
|
-
}, {
|
|
28528
|
+
}, getPrefixedEventHandlers(attrs, ':event', () => ({
|
|
28529
|
+
event: props.event,
|
|
28530
|
+
allDay: false,
|
|
28531
|
+
day: null,
|
|
28532
|
+
interval: props.interval,
|
|
28533
|
+
intervalDivisions: props.intervalDivisions,
|
|
28534
|
+
intervalDuration: props.intervalDuration,
|
|
28535
|
+
intervalHeight: props.intervalHeight
|
|
28536
|
+
}))), {
|
|
28555
28537
|
default: () => [props.event?.first ? props.event?.title : '']
|
|
28556
|
-
});
|
|
28538
|
+
})]);
|
|
28557
28539
|
});
|
|
28558
28540
|
return {};
|
|
28559
28541
|
}
|
|
@@ -28589,6 +28571,7 @@
|
|
|
28589
28571
|
}, 'VCalendarInterval');
|
|
28590
28572
|
const VCalendarInterval = genericComponent()({
|
|
28591
28573
|
name: 'VCalendarInterval',
|
|
28574
|
+
inheritAttrs: false,
|
|
28592
28575
|
props: {
|
|
28593
28576
|
index: {
|
|
28594
28577
|
type: Number,
|
|
@@ -28598,6 +28581,7 @@
|
|
|
28598
28581
|
},
|
|
28599
28582
|
setup(props, _ref) {
|
|
28600
28583
|
let {
|
|
28584
|
+
attrs,
|
|
28601
28585
|
emit,
|
|
28602
28586
|
slots
|
|
28603
28587
|
} = _ref;
|
|
@@ -28623,39 +28607,74 @@
|
|
|
28623
28607
|
return props.dayIndex === 0 ? vue.createVNode("div", {
|
|
28624
28608
|
"class": "v-calendar-day__row-with-label",
|
|
28625
28609
|
"style": `height: ${convertToUnit(props.intervalHeight)}`
|
|
28626
|
-
}, [vue.createVNode("div", {
|
|
28610
|
+
}, [vue.createVNode("div", vue.mergeProps({
|
|
28627
28611
|
"class": "v-calendar-day__row-label"
|
|
28628
|
-
}, [
|
|
28629
|
-
|
|
28630
|
-
|
|
28631
|
-
}, [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : ''])]), vue.createVNode("div", {
|
|
28612
|
+
}, getPrefixedEventHandlers(attrs, ':time', () => props)), [slots.intervalTitle?.({
|
|
28613
|
+
interval: interval.value
|
|
28614
|
+
}) ?? (props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '12 AM')]), vue.createVNode("div", {
|
|
28632
28615
|
"class": "v-calendar-day__row-hairline"
|
|
28633
|
-
}, null), vue.createVNode("div", {
|
|
28616
|
+
}, null), vue.createVNode("div", vue.mergeProps({
|
|
28634
28617
|
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
|
28635
|
-
}, [
|
|
28636
|
-
|
|
28637
|
-
|
|
28638
|
-
}, [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, {
|
|
28618
|
+
}, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots.intervalBody?.({
|
|
28619
|
+
interval: interval.value
|
|
28620
|
+
}) ?? vue.createVNode("div", null, [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, vue.mergeProps({
|
|
28639
28621
|
"event": event,
|
|
28640
28622
|
"interval": interval.value,
|
|
28641
28623
|
"intervalDivisions": props.intervalDivisions,
|
|
28642
28624
|
"intervalDuration": props.intervalDuration,
|
|
28643
28625
|
"intervalHeight": props.intervalHeight
|
|
28644
|
-
},
|
|
28626
|
+
}, attrs), {
|
|
28627
|
+
...(slots.intervalEvent ? {
|
|
28628
|
+
intervalEvent: _ref2 => {
|
|
28629
|
+
let {
|
|
28630
|
+
height,
|
|
28631
|
+
margin,
|
|
28632
|
+
eventClass,
|
|
28633
|
+
event,
|
|
28634
|
+
interval
|
|
28635
|
+
} = _ref2;
|
|
28636
|
+
return slots.intervalEvent?.({
|
|
28637
|
+
height,
|
|
28638
|
+
margin,
|
|
28639
|
+
eventClass,
|
|
28640
|
+
event,
|
|
28641
|
+
interval
|
|
28642
|
+
});
|
|
28643
|
+
}
|
|
28644
|
+
} : {})
|
|
28645
|
+
}))])])]) : vue.createVNode("div", {
|
|
28645
28646
|
"class": "v-calendar-day__row-without-label",
|
|
28646
28647
|
"style": `height: ${convertToUnit(props.intervalHeight)}`
|
|
28647
|
-
}, [vue.createVNode("div", {
|
|
28648
|
+
}, [vue.createVNode("div", vue.mergeProps({
|
|
28648
28649
|
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
|
28649
|
-
}, [
|
|
28650
|
-
|
|
28651
|
-
|
|
28652
|
-
}, [interval.value.events?.filter(event => !event.allDay).map(event => vue.createVNode(VCalendarIntervalEvent, {
|
|
28650
|
+
}, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots.intervalBody?.({
|
|
28651
|
+
interval: interval.value
|
|
28652
|
+
}) ?? interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, vue.mergeProps({
|
|
28653
28653
|
"event": event,
|
|
28654
28654
|
"interval": interval.value,
|
|
28655
28655
|
"intervalDivisions": props.intervalDivisions,
|
|
28656
28656
|
"intervalDuration": props.intervalDuration,
|
|
28657
28657
|
"intervalHeight": props.intervalHeight
|
|
28658
|
-
},
|
|
28658
|
+
}, attrs), {
|
|
28659
|
+
...(slots.intervalEvent ? {
|
|
28660
|
+
intervalEvent: _ref3 => {
|
|
28661
|
+
let {
|
|
28662
|
+
height,
|
|
28663
|
+
margin,
|
|
28664
|
+
eventClass,
|
|
28665
|
+
event,
|
|
28666
|
+
interval
|
|
28667
|
+
} = _ref3;
|
|
28668
|
+
return slots.intervalEvent?.({
|
|
28669
|
+
height,
|
|
28670
|
+
margin,
|
|
28671
|
+
eventClass,
|
|
28672
|
+
event,
|
|
28673
|
+
interval
|
|
28674
|
+
});
|
|
28675
|
+
}
|
|
28676
|
+
} : {})
|
|
28677
|
+
}))])]);
|
|
28659
28678
|
});
|
|
28660
28679
|
return {
|
|
28661
28680
|
interval
|
|
@@ -28663,6 +28682,8 @@
|
|
|
28663
28682
|
}
|
|
28664
28683
|
});
|
|
28665
28684
|
|
|
28685
|
+
// Types
|
|
28686
|
+
|
|
28666
28687
|
const makeVCalendarDayProps = propsFactory({
|
|
28667
28688
|
hideDayHeader: Boolean,
|
|
28668
28689
|
intervals: {
|
|
@@ -28673,26 +28694,34 @@
|
|
|
28673
28694
|
}, 'VCalendarDay');
|
|
28674
28695
|
const VCalendarDay = genericComponent()({
|
|
28675
28696
|
name: 'VCalendarDay',
|
|
28697
|
+
inheritAttrs: false,
|
|
28676
28698
|
props: makeVCalendarDayProps(),
|
|
28677
|
-
setup(props) {
|
|
28699
|
+
setup(props, _ref) {
|
|
28700
|
+
let {
|
|
28701
|
+
attrs,
|
|
28702
|
+
slots
|
|
28703
|
+
} = _ref;
|
|
28678
28704
|
const adapter = useDate();
|
|
28679
28705
|
const intervals = vue.computed(() => [...Array.from({
|
|
28680
28706
|
length: props.intervals
|
|
28681
|
-
}, (v, i) => i).filter((
|
|
28707
|
+
}, (v, i) => i).filter((_, index) => props.intervalDuration * (index + props.intervalStart) < 1440)]);
|
|
28682
28708
|
useRender(() => {
|
|
28683
28709
|
const calendarIntervalProps = VCalendarInterval.filterProps(props);
|
|
28684
28710
|
return vue.createVNode("div", {
|
|
28685
28711
|
"class": "v-calendar-day__container"
|
|
28686
|
-
}, [!props.hideDayHeader && vue.createVNode("div", {
|
|
28687
|
-
"key": "
|
|
28712
|
+
}, [!props.hideDayHeader && vue.createVNode("div", vue.mergeProps({
|
|
28713
|
+
"key": "calendar-week-name",
|
|
28688
28714
|
"class": "v-calendar-weekly__head-weekday"
|
|
28689
|
-
}, [adapter.format(props.day.date, 'weekdayShort'), vue.createVNode("div", null, [vue.createVNode(VBtn, {
|
|
28715
|
+
}, getPrefixedEventHandlers(attrs, ':day', () => props.day)), [adapter.format(props.day.date, 'weekdayShort'), vue.createVNode("div", null, [vue.createVNode(VBtn, vue.mergeProps(getPrefixedEventHandlers(attrs, ':date', () => props.day), {
|
|
28716
|
+
"class": props.day?.isToday ? 'v-calendar-day-label__today' : undefined,
|
|
28690
28717
|
"icon": true,
|
|
28691
28718
|
"text": adapter.format(props.day.date, 'dayOfMonth'),
|
|
28692
|
-
"variant":
|
|
28693
|
-
}, null)])]), intervals.value.map((_, index) => vue.createVNode(VCalendarInterval, vue.mergeProps({
|
|
28719
|
+
"variant": props.day?.isToday ? undefined : 'text'
|
|
28720
|
+
}), null)])]), intervals.value.map((_, index) => slots.interval?.(calendarIntervalProps) ?? vue.createVNode(VCalendarInterval, vue.mergeProps({
|
|
28694
28721
|
"index": index
|
|
28695
|
-
}, calendarIntervalProps
|
|
28722
|
+
}, calendarIntervalProps, attrs, getPrefixedEventHandlers(attrs, ':interval', () => calendarIntervalProps)), {
|
|
28723
|
+
...pick(slots, ['intervalBody', 'intervalEvent', 'intervalTitle'])
|
|
28724
|
+
}))]);
|
|
28696
28725
|
});
|
|
28697
28726
|
return {
|
|
28698
28727
|
intervals
|
|
@@ -28731,7 +28760,8 @@
|
|
|
28731
28760
|
},
|
|
28732
28761
|
setup(props, _ref) {
|
|
28733
28762
|
let {
|
|
28734
|
-
emit
|
|
28763
|
+
emit,
|
|
28764
|
+
slots
|
|
28735
28765
|
} = _ref;
|
|
28736
28766
|
const {
|
|
28737
28767
|
t
|
|
@@ -28765,7 +28795,9 @@
|
|
|
28765
28795
|
"onClick": next
|
|
28766
28796
|
}, null), vue.createVNode("div", {
|
|
28767
28797
|
"class": "v-calendar-header__title"
|
|
28768
|
-
}, [
|
|
28798
|
+
}, [slots.title?.({
|
|
28799
|
+
title: props.title
|
|
28800
|
+
}) ?? vue.createVNode("span", null, [props.title])])]));
|
|
28769
28801
|
return {};
|
|
28770
28802
|
}
|
|
28771
28803
|
});
|
|
@@ -28777,14 +28809,24 @@
|
|
|
28777
28809
|
}, 'VCalendarEvent');
|
|
28778
28810
|
const VCalendarEvent = genericComponent()({
|
|
28779
28811
|
name: 'VCalendarEvent',
|
|
28812
|
+
inheritAttrs: false,
|
|
28780
28813
|
props: makeVCalendarEventProps(),
|
|
28781
|
-
setup(props) {
|
|
28782
|
-
|
|
28814
|
+
setup(props, _ref) {
|
|
28815
|
+
let {
|
|
28816
|
+
attrs,
|
|
28817
|
+
emit,
|
|
28818
|
+
slots
|
|
28819
|
+
} = _ref;
|
|
28820
|
+
useRender(() => vue.createVNode(VChip, vue.mergeProps({
|
|
28783
28821
|
"color": props.allDay ? 'primary' : undefined,
|
|
28784
28822
|
"density": "comfortable",
|
|
28785
28823
|
"label": props.allDay,
|
|
28786
28824
|
"width": "100%"
|
|
28787
|
-
}, {
|
|
28825
|
+
}, getPrefixedEventHandlers(attrs, ':event', () => ({
|
|
28826
|
+
allDay: props.allDay,
|
|
28827
|
+
day: props.day,
|
|
28828
|
+
event: props.event
|
|
28829
|
+
}))), {
|
|
28788
28830
|
default: () => [vue.createVNode(VBadge, {
|
|
28789
28831
|
"inline": true,
|
|
28790
28832
|
"dot": true,
|
|
@@ -28795,87 +28837,95 @@
|
|
|
28795
28837
|
}
|
|
28796
28838
|
});
|
|
28797
28839
|
|
|
28840
|
+
// Types
|
|
28841
|
+
|
|
28798
28842
|
const makeVCalendarMonthDayProps = propsFactory({
|
|
28799
28843
|
active: Boolean,
|
|
28800
28844
|
color: String,
|
|
28801
|
-
day:
|
|
28845
|
+
day: {
|
|
28846
|
+
type: Object
|
|
28847
|
+
},
|
|
28802
28848
|
disabled: Boolean,
|
|
28803
28849
|
events: Array,
|
|
28804
28850
|
title: [Number, String]
|
|
28805
28851
|
}, 'VCalendarMonthDay');
|
|
28806
28852
|
const VCalendarMonthDay = genericComponent()({
|
|
28807
28853
|
name: 'VCalendarMonthDay',
|
|
28854
|
+
inheritAttrs: false,
|
|
28808
28855
|
props: makeVCalendarMonthDayProps(),
|
|
28809
28856
|
setup(props, _ref) {
|
|
28810
28857
|
let {
|
|
28811
|
-
|
|
28858
|
+
attrs,
|
|
28812
28859
|
slots
|
|
28813
28860
|
} = _ref;
|
|
28814
28861
|
useRender(() => {
|
|
28815
|
-
|
|
28816
|
-
title: props.title
|
|
28817
|
-
}));
|
|
28818
|
-
return vue.createVNode("div", {
|
|
28862
|
+
return vue.createVNode("div", vue.mergeProps({
|
|
28819
28863
|
"class": ['v-calendar-month__day']
|
|
28820
|
-
}, [!props.day?.isHidden
|
|
28864
|
+
}, getPrefixedEventHandlers(attrs, ':day', () => props)), [!props.day?.isHidden ? vue.createVNode("div", {
|
|
28821
28865
|
"key": "title",
|
|
28822
28866
|
"class": "v-calendar-weekly__day-label"
|
|
28823
|
-
}, [slots.
|
|
28867
|
+
}, [slots.dayTitle?.({
|
|
28824
28868
|
title: props.title
|
|
28825
|
-
}) ?? vue.createVNode(VBtn, {
|
|
28869
|
+
}) ?? vue.createVNode(VBtn, vue.mergeProps({
|
|
28826
28870
|
"class": props.day?.isToday ? 'v-calendar-weekly__day-label__today' : undefined,
|
|
28827
28871
|
"color": props.color,
|
|
28828
28872
|
"disabled": props.disabled,
|
|
28829
28873
|
"icon": true,
|
|
28830
28874
|
"size": "x-small",
|
|
28831
|
-
"variant": props.day?.isToday ? undefined : 'flat'
|
|
28832
|
-
|
|
28833
|
-
|
|
28834
|
-
})]), !props.day?.isHidden && vue.createVNode("div", {
|
|
28875
|
+
"variant": props.day?.isToday ? undefined : 'flat',
|
|
28876
|
+
"text": `${props.title}`
|
|
28877
|
+
}, getPrefixedEventHandlers(attrs, ':date', () => props)), null)]) : undefined, !props.day?.isHidden ? vue.createVNode("div", {
|
|
28835
28878
|
"key": "content",
|
|
28836
28879
|
"class": "v-calendar-weekly__day-content"
|
|
28837
|
-
}, [slots.
|
|
28880
|
+
}, [slots.dayBody?.({
|
|
28881
|
+
day: props.day,
|
|
28882
|
+
events: props.events
|
|
28883
|
+
}) ?? vue.createVNode("div", null, [vue.createVNode("div", {
|
|
28838
28884
|
"class": "v-calendar-weekly__day-alldayevents-container"
|
|
28839
|
-
}, [props.events?.filter(event => event.allDay).map(event => slots.
|
|
28885
|
+
}, [props.events?.filter(event => event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
|
|
28840
28886
|
day: props.day,
|
|
28841
28887
|
allDay: true,
|
|
28842
28888
|
event
|
|
28843
|
-
}) : vue.createVNode(VCalendarEvent, {
|
|
28889
|
+
}) : vue.createVNode(VCalendarEvent, vue.mergeProps({
|
|
28844
28890
|
"day": props.day,
|
|
28845
28891
|
"event": event,
|
|
28846
28892
|
"allDay": true
|
|
28847
|
-
}, null))]), vue.createVNode("div", {
|
|
28893
|
+
}, attrs), null))]), vue.createVNode("div", {
|
|
28848
28894
|
"class": "v-calendar-weekly__day-events-container"
|
|
28849
|
-
}, [props.events?.filter(event => !event.allDay).map(event => slots.
|
|
28895
|
+
}, [props.events?.filter(event => !event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
|
|
28850
28896
|
day: props.day,
|
|
28851
28897
|
event,
|
|
28852
28898
|
allDay: false
|
|
28853
|
-
}) : vue.createVNode(VCalendarEvent, {
|
|
28899
|
+
}) : vue.createVNode(VCalendarEvent, vue.mergeProps({
|
|
28854
28900
|
"day": props.day,
|
|
28855
28901
|
"event": event
|
|
28856
|
-
}, null))])])])
|
|
28902
|
+
}, attrs), null))])])]) : undefined]);
|
|
28857
28903
|
});
|
|
28858
28904
|
return {};
|
|
28859
28905
|
}
|
|
28860
28906
|
});
|
|
28861
28907
|
|
|
28908
|
+
// Types
|
|
28909
|
+
|
|
28862
28910
|
const makeVCalendarProps = propsFactory({
|
|
28863
28911
|
hideHeader: Boolean,
|
|
28864
28912
|
hideWeekNumber: Boolean,
|
|
28865
28913
|
...makeCalendarProps(),
|
|
28866
28914
|
...makeVCalendarDayProps(),
|
|
28867
28915
|
...makeVCalendarHeaderProps()
|
|
28868
|
-
}, '
|
|
28916
|
+
}, 'VCalendar');
|
|
28869
28917
|
const VCalendar = genericComponent()({
|
|
28870
28918
|
name: 'VCalendar',
|
|
28871
28919
|
props: makeVCalendarProps(),
|
|
28872
28920
|
emits: {
|
|
28873
28921
|
next: null,
|
|
28874
28922
|
prev: null,
|
|
28923
|
+
today: null,
|
|
28875
28924
|
'update:modelValue': null
|
|
28876
28925
|
},
|
|
28877
28926
|
setup(props, _ref) {
|
|
28878
28927
|
let {
|
|
28928
|
+
attrs,
|
|
28879
28929
|
emit,
|
|
28880
28930
|
slots
|
|
28881
28931
|
} = _ref;
|
|
@@ -28893,27 +28943,33 @@
|
|
|
28893
28943
|
function onClickNext() {
|
|
28894
28944
|
if (props.viewMode === 'month') {
|
|
28895
28945
|
model.value = [adapter.addMonths(displayValue.value, 1)];
|
|
28896
|
-
}
|
|
28897
|
-
if (props.viewMode === 'week') {
|
|
28946
|
+
} else if (props.viewMode === 'week') {
|
|
28898
28947
|
model.value = [adapter.addDays(displayValue.value, 7)];
|
|
28899
|
-
}
|
|
28900
|
-
if (props.viewMode === 'day') {
|
|
28948
|
+
} else if (props.viewMode === 'day') {
|
|
28901
28949
|
model.value = [adapter.addDays(displayValue.value, 1)];
|
|
28902
28950
|
}
|
|
28951
|
+
vue.nextTick(() => {
|
|
28952
|
+
emit('next', model.value[0]);
|
|
28953
|
+
});
|
|
28903
28954
|
}
|
|
28904
28955
|
function onClickPrev() {
|
|
28905
28956
|
if (props.viewMode === 'month') {
|
|
28906
28957
|
model.value = [adapter.addMonths(displayValue.value, -1)];
|
|
28907
|
-
}
|
|
28908
|
-
if (props.viewMode === 'week') {
|
|
28958
|
+
} else if (props.viewMode === 'week') {
|
|
28909
28959
|
model.value = [adapter.addDays(displayValue.value, -7)];
|
|
28910
|
-
}
|
|
28911
|
-
if (props.viewMode === 'day') {
|
|
28960
|
+
} else if (props.viewMode === 'day') {
|
|
28912
28961
|
model.value = [adapter.addDays(displayValue.value, -1)];
|
|
28913
28962
|
}
|
|
28963
|
+
vue.nextTick(() => {
|
|
28964
|
+
emit('prev', model.value[0]);
|
|
28965
|
+
});
|
|
28914
28966
|
}
|
|
28915
28967
|
function onClickToday() {
|
|
28916
|
-
|
|
28968
|
+
const date = adapter.date();
|
|
28969
|
+
model.value = [date];
|
|
28970
|
+
vue.nextTick(() => {
|
|
28971
|
+
emit('today', model.value[0]);
|
|
28972
|
+
});
|
|
28917
28973
|
}
|
|
28918
28974
|
const title = vue.computed(() => {
|
|
28919
28975
|
return adapter.format(displayValue.value, 'monthAndYear');
|
|
@@ -28927,20 +28983,25 @@
|
|
|
28927
28983
|
'v-calendar-weekly': props.viewMode === 'week',
|
|
28928
28984
|
'v-calendar-day': props.viewMode === 'day'
|
|
28929
28985
|
}]
|
|
28930
|
-
}, [vue.createVNode("div", null, [!props.hideHeader && (
|
|
28986
|
+
}, [vue.createVNode("div", null, [!props.hideHeader && (slots.header?.({
|
|
28987
|
+
title: title.value,
|
|
28988
|
+
clickNext: onClickNext,
|
|
28989
|
+
clickPrev: onClickPrev,
|
|
28990
|
+
clickToday: onClickToday
|
|
28991
|
+
}) ?? vue.createVNode(VCalendarHeader, vue.mergeProps({
|
|
28931
28992
|
"key": "calendar-header"
|
|
28932
28993
|
}, calendarHeaderProps, {
|
|
28933
28994
|
"title": title.value,
|
|
28934
28995
|
"onClick:next": onClickNext,
|
|
28935
28996
|
"onClick:prev": onClickPrev,
|
|
28936
28997
|
"onClick:toToday": onClickToday
|
|
28937
|
-
}),
|
|
28938
|
-
title: title
|
|
28998
|
+
}), {
|
|
28999
|
+
title: slots.title
|
|
28939
29000
|
}))]), vue.createVNode("div", {
|
|
28940
29001
|
"class": ['v-calendar__container', `days__${weekDays.value.length}`]
|
|
28941
29002
|
}, [props.viewMode === 'month' && !props.hideDayHeader && vue.createVNode("div", {
|
|
28942
29003
|
"class": ['v-calendar-weekly__head', `days__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])],
|
|
28943
|
-
"key": "
|
|
29004
|
+
"key": "calendarWeeklyHead"
|
|
28944
29005
|
}, [!props.hideWeekNumber ? vue.createVNode("div", {
|
|
28945
29006
|
"key": "weekNumber0",
|
|
28946
29007
|
"class": "v-calendar-weekly__head-weeknumber"
|
|
@@ -28949,24 +29010,39 @@
|
|
|
28949
29010
|
}, [dayNames[weekday]]))]), props.viewMode === 'month' && vue.createVNode("div", {
|
|
28950
29011
|
"key": "VCalendarMonth",
|
|
28951
29012
|
"class": ['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])]
|
|
28952
|
-
}, [chunkArray(daysInMonth.value, weekDays.value.length).map((week, wi) => [!props.hideWeekNumber ? vue.createVNode("div", {
|
|
29013
|
+
}, [chunkArray(daysInMonth.value, weekDays.value.length).map((week, wi) => [!props.hideWeekNumber ? vue.createVNode("div", vue.mergeProps({
|
|
28953
29014
|
"class": "v-calendar-month__weeknumber"
|
|
28954
|
-
},
|
|
28955
|
-
|
|
29015
|
+
}, getPrefixedEventHandlers(attrs, ':weekNumber', () => ({
|
|
29016
|
+
weekNumber: weekNumbers.value[wi],
|
|
29017
|
+
week
|
|
29018
|
+
}))), [weekNumbers.value[wi]]) : '', week.map(day => vue.createVNode(VCalendarMonthDay, vue.mergeProps({
|
|
29019
|
+
"key": day.date.getTime()
|
|
29020
|
+
}, calendarDayProps, {
|
|
28956
29021
|
"day": day,
|
|
28957
|
-
"title":
|
|
29022
|
+
"title": adapter.format(day.date, 'dayOfMonth'),
|
|
28958
29023
|
"events": props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end))
|
|
28959
|
-
}, {
|
|
28960
|
-
event
|
|
28961
|
-
}))])]), props.viewMode === 'week' && daysInWeek.value.map((day, i) =>
|
|
29024
|
+
}, attrs), {
|
|
29025
|
+
...pick(slots, ['day-body', 'day-event', 'day-title'])
|
|
29026
|
+
}))])]), props.viewMode === 'week' && daysInWeek.value.map((day, i) => slots['day-interval'] ? slots['day-interval']?.({
|
|
29027
|
+
...calendarDayProps,
|
|
29028
|
+
day,
|
|
29029
|
+
dayIndex: i,
|
|
29030
|
+
events: props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
|
|
29031
|
+
}) : vue.createVNode(VCalendarDay, vue.mergeProps(calendarDayProps, {
|
|
28962
29032
|
"day": day,
|
|
28963
29033
|
"dayIndex": i,
|
|
28964
29034
|
"events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
|
|
28965
|
-
}
|
|
28966
|
-
|
|
29035
|
+
}, attrs), {
|
|
29036
|
+
...pick(slots, ['interval', 'intervalBody', 'intervalEvent', 'intervalTitle'])
|
|
29037
|
+
})), props.viewMode === 'day' && (slots['day-interval'] ? slots['day-interval']({
|
|
29038
|
+
day: genDays([displayValue.value], adapter.date())[0],
|
|
29039
|
+
dayIndex: 0,
|
|
29040
|
+
events: props.events?.filter(e => adapter.isSameDay(e.start, genDays([displayValue.value], adapter.date())[0].date) || adapter.isSameDay(e.end, genDays([displayValue.value], adapter.date())[0].date))
|
|
29041
|
+
}) : vue.createVNode(VCalendarDay, vue.mergeProps(calendarDayProps, {
|
|
29042
|
+
"day": genDays([model.value[0]], adapter.date())[0],
|
|
28967
29043
|
"dayIndex": 0,
|
|
28968
|
-
"events": props.events?.filter(e => adapter.isSameDay(e.start, genDays([
|
|
28969
|
-
}), null)])]);
|
|
29044
|
+
"events": props.events?.filter(e => adapter.isSameDay(e.start, genDays([model.value[0]], adapter.date())[0].date) || adapter.isSameDay(e.end, genDays([model.value[0]], adapter.date())[0].date))
|
|
29045
|
+
}, attrs), null))])]);
|
|
28970
29046
|
});
|
|
28971
29047
|
return {
|
|
28972
29048
|
daysInMonth,
|
|
@@ -29515,10 +29591,7 @@
|
|
|
29515
29591
|
hideOverlay: Boolean,
|
|
29516
29592
|
icon: [String, Function, Object],
|
|
29517
29593
|
iconColor: String,
|
|
29518
|
-
iconSize:
|
|
29519
|
-
type: [Number, String],
|
|
29520
|
-
default: 'default'
|
|
29521
|
-
},
|
|
29594
|
+
iconSize: [Number, String],
|
|
29522
29595
|
iconSizes: {
|
|
29523
29596
|
type: Array,
|
|
29524
29597
|
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
|
@@ -29579,7 +29652,7 @@
|
|
|
29579
29652
|
colorClasses,
|
|
29580
29653
|
colorStyles,
|
|
29581
29654
|
variantClasses
|
|
29582
|
-
} = useVariant(
|
|
29655
|
+
} = useVariant(() => ({
|
|
29583
29656
|
color: (() => {
|
|
29584
29657
|
if (props.disabled) return undefined;
|
|
29585
29658
|
if (!isActive.value) return props.color;
|
|
@@ -29594,7 +29667,7 @@
|
|
|
29594
29667
|
if (isActive.value) return props.activeVariant ?? props.variant;
|
|
29595
29668
|
return props.baseVariant ?? props.variant;
|
|
29596
29669
|
})()
|
|
29597
|
-
}))
|
|
29670
|
+
}));
|
|
29598
29671
|
const btnSizeMap = new Map(props.sizes);
|
|
29599
29672
|
const iconSizeMap = new Map(props.iconSizes);
|
|
29600
29673
|
function onClick() {
|
|
@@ -29603,13 +29676,14 @@
|
|
|
29603
29676
|
}
|
|
29604
29677
|
useRender(() => {
|
|
29605
29678
|
const icon = isActive.value ? props.activeIcon ?? props.icon : props.icon;
|
|
29606
|
-
const
|
|
29607
|
-
const hasNamedSize = btnSizeMap.has(
|
|
29608
|
-
const btnSize = hasNamedSize ? btnSizeMap.get(
|
|
29679
|
+
const _btnSize = props.size;
|
|
29680
|
+
const hasNamedSize = btnSizeMap.has(_btnSize);
|
|
29681
|
+
const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize;
|
|
29609
29682
|
const btnHeight = props.height ?? btnSize;
|
|
29610
29683
|
const btnWidth = props.width ?? btnSize;
|
|
29611
|
-
const _iconSize =
|
|
29612
|
-
const
|
|
29684
|
+
const _iconSize = props.iconSize;
|
|
29685
|
+
const hasNamedIconSize = iconSizeMap.has(_iconSize);
|
|
29686
|
+
const iconSize = !_iconSize ? hasNamedSize ? iconSizeMap.get(_btnSize) : iconSizeMap.get('default') : hasNamedIconSize ? iconSizeMap.get(_iconSize) : _iconSize;
|
|
29613
29687
|
const iconProps = {
|
|
29614
29688
|
icon,
|
|
29615
29689
|
size: iconSize,
|
|
@@ -30090,11 +30164,11 @@
|
|
|
30090
30164
|
const {
|
|
30091
30165
|
textColorClasses,
|
|
30092
30166
|
textColorStyles
|
|
30093
|
-
} = useTextColor(
|
|
30167
|
+
} = useTextColor(() => props.color);
|
|
30094
30168
|
const {
|
|
30095
30169
|
backgroundColorClasses,
|
|
30096
30170
|
backgroundColorStyles
|
|
30097
|
-
} = useBackgroundColor(
|
|
30171
|
+
} = useBackgroundColor(() => props.color);
|
|
30098
30172
|
const count = vue.computed(() => props.max - props.min + 1);
|
|
30099
30173
|
const roundCount = vue.computed(() => props.double ? count.value / 2 : count.value);
|
|
30100
30174
|
const degreesPerUnit = vue.computed(() => 360 / roundCount.value);
|
|
@@ -30954,9 +31028,9 @@
|
|
|
30954
31028
|
const {
|
|
30955
31029
|
items
|
|
30956
31030
|
} = useListItems(props);
|
|
30957
|
-
const activeColor = vue.toRef(props
|
|
30958
|
-
const baseColor = vue.toRef(props
|
|
30959
|
-
const color = vue.toRef(props
|
|
31031
|
+
const activeColor = vue.toRef(() => props.activeColor);
|
|
31032
|
+
const baseColor = vue.toRef(() => props.baseColor);
|
|
31033
|
+
const color = vue.toRef(() => props.color);
|
|
30960
31034
|
const activated = useProxiedModel(props, 'activated');
|
|
30961
31035
|
const model = useProxiedModel(props, 'modelValue');
|
|
30962
31036
|
const _selected = useProxiedModel(props, 'selected', props.modelValue);
|
|
@@ -30970,7 +31044,7 @@
|
|
|
30970
31044
|
const vListRef = vue.ref();
|
|
30971
31045
|
const opened = vue.computed(() => props.openAll ? openAll(items.value) : props.opened);
|
|
30972
31046
|
const flatItems = vue.computed(() => flatten(items.value));
|
|
30973
|
-
const search = vue.toRef(props
|
|
31047
|
+
const search = vue.toRef(() => props.search);
|
|
30974
31048
|
const {
|
|
30975
31049
|
filteredItems
|
|
30976
31050
|
} = useFilter(props, flatItems, search);
|
|
@@ -31013,18 +31087,18 @@
|
|
|
31013
31087
|
activeColor,
|
|
31014
31088
|
baseColor,
|
|
31015
31089
|
color,
|
|
31016
|
-
collapseIcon: vue.toRef(props
|
|
31017
|
-
expandIcon: vue.toRef(props
|
|
31090
|
+
collapseIcon: vue.toRef(() => props.collapseIcon),
|
|
31091
|
+
expandIcon: vue.toRef(() => props.expandIcon)
|
|
31018
31092
|
},
|
|
31019
31093
|
VTreeviewItem: {
|
|
31020
|
-
activeClass: vue.toRef(props
|
|
31094
|
+
activeClass: vue.toRef(() => props.activeClass),
|
|
31021
31095
|
activeColor,
|
|
31022
31096
|
baseColor,
|
|
31023
31097
|
color,
|
|
31024
|
-
density: vue.toRef(props
|
|
31025
|
-
disabled: vue.toRef(props
|
|
31026
|
-
lines: vue.toRef(props
|
|
31027
|
-
variant: vue.toRef(props
|
|
31098
|
+
density: vue.toRef(() => props.density),
|
|
31099
|
+
disabled: vue.toRef(() => props.disabled),
|
|
31100
|
+
lines: vue.toRef(() => props.lines),
|
|
31101
|
+
variant: vue.toRef(() => props.variant)
|
|
31028
31102
|
}
|
|
31029
31103
|
});
|
|
31030
31104
|
useRender(() => {
|
|
@@ -31564,7 +31638,7 @@
|
|
|
31564
31638
|
};
|
|
31565
31639
|
});
|
|
31566
31640
|
}
|
|
31567
|
-
const version$1 = "3.8.
|
|
31641
|
+
const version$1 = "3.8.3";
|
|
31568
31642
|
createVuetify$1.version = version$1;
|
|
31569
31643
|
|
|
31570
31644
|
// Vue's inject() can only be used in setup
|
|
@@ -31747,7 +31821,7 @@
|
|
|
31747
31821
|
flat: true
|
|
31748
31822
|
},
|
|
31749
31823
|
VAutocomplete: {
|
|
31750
|
-
variant: '
|
|
31824
|
+
variant: 'outlined'
|
|
31751
31825
|
},
|
|
31752
31826
|
VBanner: {
|
|
31753
31827
|
color: 'primary'
|
|
@@ -31776,7 +31850,10 @@
|
|
|
31776
31850
|
rounded: 'sm'
|
|
31777
31851
|
},
|
|
31778
31852
|
VCombobox: {
|
|
31779
|
-
variant: '
|
|
31853
|
+
variant: 'outlined'
|
|
31854
|
+
},
|
|
31855
|
+
VDateInput: {
|
|
31856
|
+
variant: 'outlined'
|
|
31780
31857
|
},
|
|
31781
31858
|
VDatePicker: {
|
|
31782
31859
|
controlHeight: 48,
|
|
@@ -31790,6 +31867,9 @@
|
|
|
31790
31867
|
rounded: 'circle'
|
|
31791
31868
|
}
|
|
31792
31869
|
},
|
|
31870
|
+
VFileInput: {
|
|
31871
|
+
variant: 'outlined'
|
|
31872
|
+
},
|
|
31793
31873
|
VNavigationDrawer: {
|
|
31794
31874
|
// VList: {
|
|
31795
31875
|
// nav: true,
|
|
@@ -31798,8 +31878,15 @@
|
|
|
31798
31878
|
// },
|
|
31799
31879
|
// },
|
|
31800
31880
|
},
|
|
31881
|
+
VNumberInput: {
|
|
31882
|
+
variant: 'outlined',
|
|
31883
|
+
VBtn: {
|
|
31884
|
+
color: undefined,
|
|
31885
|
+
rounded: undefined
|
|
31886
|
+
}
|
|
31887
|
+
},
|
|
31801
31888
|
VSelect: {
|
|
31802
|
-
variant: '
|
|
31889
|
+
variant: 'outlined'
|
|
31803
31890
|
},
|
|
31804
31891
|
VSlider: {
|
|
31805
31892
|
color: 'primary'
|
|
@@ -31808,10 +31895,10 @@
|
|
|
31808
31895
|
color: 'primary'
|
|
31809
31896
|
},
|
|
31810
31897
|
VTextarea: {
|
|
31811
|
-
variant: '
|
|
31898
|
+
variant: 'outlined'
|
|
31812
31899
|
},
|
|
31813
31900
|
VTextField: {
|
|
31814
|
-
variant: '
|
|
31901
|
+
variant: 'outlined'
|
|
31815
31902
|
},
|
|
31816
31903
|
VToolbar: {
|
|
31817
31904
|
VBtn: {
|
|
@@ -31849,7 +31936,7 @@
|
|
|
31849
31936
|
|
|
31850
31937
|
/* eslint-disable local-rules/sort-imports */
|
|
31851
31938
|
|
|
31852
|
-
const version = "3.8.
|
|
31939
|
+
const version = "3.8.3";
|
|
31853
31940
|
|
|
31854
31941
|
/* eslint-disable local-rules/sort-imports */
|
|
31855
31942
|
|