vuetify 3.4.8 → 3.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +260 -0
- package/dist/json/importMap-labs.json +24 -0
- package/dist/json/importMap.json +122 -122
- package/dist/json/tags.json +95 -0
- package/dist/json/web-types.json +857 -4
- package/dist/vuetify-labs.css +2977 -2604
- package/dist/vuetify-labs.d.ts +1770 -71
- package/dist/vuetify-labs.esm.js +784 -140
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +784 -140
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +689 -686
- package/dist/vuetify.d.ts +221 -106
- package/dist/vuetify.esm.js +301 -140
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +301 -140
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +214 -195
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +9 -0
- package/lib/blueprints/md1.d.mts +9 -0
- package/lib/blueprints/md2.d.mts +9 -0
- package/lib/blueprints/md3.d.mts +9 -0
- package/lib/components/VAlert/VAlert.css +2 -2
- package/lib/components/VAppBar/VAppBar.css +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +0 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VAvatar/VAvatar.css +2 -2
- package/lib/components/VBanner/VBanner.css +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
- package/lib/components/VBtn/VBtn.css +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
- package/lib/components/VCard/VCard.css +5 -5
- package/lib/components/VChip/VChip.css +2 -2
- package/lib/components/VChip/VChip.mjs +2 -1
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.css +3 -3
- package/lib/components/VCombobox/VCombobox.css +2 -2
- package/lib/components/VCombobox/VCombobox.mjs +15 -5
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +2 -2
- package/lib/components/VCombobox/_variables.scss +2 -0
- package/lib/components/VDataIterator/index.d.mts +1 -1
- package/lib/components/VDataTable/VDataTable.css +1 -1
- package/lib/components/VDataTable/VDataTable.sass +1 -1
- package/lib/components/VDataTable/VDataTableFooter.mjs +33 -30
- package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.mjs +2 -1
- package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +4 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +82 -0
- package/lib/components/VDialog/VDialog.css +1 -1
- package/lib/components/VDialog/index.d.mts +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -1
- package/lib/components/VField/VField.css +2 -2
- package/lib/components/VFileInput/index.d.mts +3 -3
- package/lib/components/VFooter/VFooter.css +1 -1
- package/lib/components/VForm/index.d.mts +21 -21
- package/lib/components/VImg/index.d.mts +6 -6
- package/lib/components/VKbd/VKbd.css +1 -1
- package/lib/components/VList/VList.css +1 -1
- package/lib/components/VList/VList.mjs +7 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +5 -2
- package/lib/components/VList/VListItem.sass +3 -0
- package/lib/components/VList/_variables.scss +1 -0
- package/lib/components/VMenu/VMenu.css +1 -1
- package/lib/components/VMenu/index.d.mts +6 -6
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -2
- package/lib/components/VNavigationDrawer/index.d.mts +3 -3
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs +0 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +2 -2
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +0 -1
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +1 -1
- package/lib/components/VSelect/VSelect.mjs +15 -3
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +3 -3
- package/lib/components/VSheet/VSheet.css +1 -1
- package/lib/components/VSlideGroup/index.d.mts +3 -3
- package/lib/components/VSnackbar/VSnackbar.css +2 -2
- package/lib/components/VSnackbar/index.d.mts +3 -3
- package/lib/components/VStepper/VStepper.css +3 -3
- package/lib/components/VSwitch/VSwitch.css +2 -2
- package/lib/components/VSystemBar/VSystemBar.css +1 -1
- package/lib/components/VTabs/VTab.css +2 -2
- package/lib/components/VTabs/VTab.sass +2 -2
- package/lib/components/VTextField/index.d.mts +6 -6
- package/lib/components/VTextarea/index.d.mts +3 -3
- package/lib/components/VTimeline/VTimeline.css +1 -1
- package/lib/components/VToolbar/VToolbar.css +2 -2
- package/lib/components/VTooltip/index.d.mts +3 -3
- package/lib/components/VTreeview/VTreeview.mjs +0 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs +0 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +6 -6
- package/lib/components/VWindow/VWindowItem.mjs +0 -1
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/index.d.mts +152 -70
- package/lib/composables/calendar.mjs +26 -5
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/composables/date/DateAdapter.mjs.map +1 -1
- package/lib/composables/date/adapters/vuetify.mjs +89 -2
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/delay.mjs +19 -18
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/density.mjs +1 -0
- package/lib/composables/density.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +69 -36
- package/lib/labs/VCalendar/VCalendar.css +220 -0
- package/lib/labs/VCalendar/VCalendar.mjs +124 -0
- package/lib/labs/VCalendar/VCalendar.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendar.sass +168 -0
- package/lib/labs/VCalendar/VCalendarDay.css +33 -0
- package/lib/labs/VCalendar/VCalendarDay.mjs +47 -0
- package/lib/labs/VCalendar/VCalendarDay.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarDay.sass +32 -0
- package/lib/labs/VCalendar/VCalendarEvent.mjs +30 -0
- package/lib/labs/VCalendar/VCalendarEvent.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarHeader.css +14 -0
- package/lib/labs/VCalendar/VCalendarHeader.mjs +76 -0
- package/lib/labs/VCalendar/VCalendarHeader.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarHeader.sass +13 -0
- package/lib/labs/VCalendar/VCalendarInterval.css +42 -0
- package/lib/labs/VCalendar/VCalendarInterval.mjs +113 -0
- package/lib/labs/VCalendar/VCalendarInterval.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarInterval.sass +39 -0
- package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs +76 -0
- package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.css +61 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.mjs +64 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.sass +65 -0
- package/lib/{components → labs}/VCalendar/_variables.scss +14 -6
- package/lib/labs/VCalendar/index.d.mts +1592 -0
- package/lib/labs/VCalendar/index.mjs +7 -0
- package/lib/labs/VCalendar/index.mjs.map +1 -0
- package/lib/labs/VPicker/VPicker.css +1 -1
- package/lib/labs/components.d.mts +1586 -2
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/af.mjs +2 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +2 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +2 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +2 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +2 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +2 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +3 -2
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +2 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +2 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +2 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +2 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +2 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +2 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +2 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +2 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +2 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +2 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +2 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +2 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +42 -0
- package/lib/locale/it.mjs +2 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +2 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +2 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +2 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +2 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +3 -2
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +2 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +2 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +19 -18
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +2 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +2 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +2 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +2 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +2 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +2 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +2 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +2 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +2 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +2 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +2 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +2 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +2 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +25 -25
- package/lib/styles/settings/_elevations.scss +1 -1
- package/lib/util/helpers.mjs +14 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +12 -12
- package/lib/components/VCalendar/VCalendar.mjs +0 -352
- package/lib/components/VCalendar/VCalendar.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs +0 -124
- package/lib/components/VCalendar/VCalendarCategory.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarCategory.sass +0 -100
- package/lib/components/VCalendar/VCalendarDaily.mjs +0 -239
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarDaily.sass +0 -140
- package/lib/components/VCalendar/VCalendarMonthly.mjs +0 -25
- package/lib/components/VCalendar/VCalendarMonthly.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs +0 -193
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarWeekly.sass +0 -118
- package/lib/components/VCalendar/index.mjs +0 -16
- package/lib/components/VCalendar/index.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/calendar-base.mjs +0 -89
- package/lib/components/VCalendar/mixins/calendar-base.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs +0 -416
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.sass +0 -67
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +0 -135
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/mouse.mjs +0 -85
- package/lib/components/VCalendar/mixins/mouse.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/times.mjs +0 -65
- package/lib/components/VCalendar/mixins/times.mjs.map +0 -1
- package/lib/components/VCalendar/modes/column.mjs +0 -18
- package/lib/components/VCalendar/modes/column.mjs.map +0 -1
- package/lib/components/VCalendar/modes/common.mjs +0 -112
- package/lib/components/VCalendar/modes/common.mjs.map +0 -1
- package/lib/components/VCalendar/modes/index.mjs +0 -9
- package/lib/components/VCalendar/modes/index.mjs.map +0 -1
- package/lib/components/VCalendar/modes/stack.mjs +0 -204
- package/lib/components/VCalendar/modes/stack.mjs.map +0 -1
- package/lib/components/VCalendar/util/events.mjs +0 -44
- package/lib/components/VCalendar/util/events.mjs.map +0 -1
- package/lib/components/VCalendar/util/parser.mjs +0 -21
- package/lib/components/VCalendar/util/parser.mjs.map +0 -1
- package/lib/components/VCalendar/util/props.mjs +0 -248
- package/lib/components/VCalendar/util/props.mjs.map +0 -1
- package/lib/components/VCalendar/util/timestamp.mjs +0 -407
- package/lib/components/VCalendar/util/timestamp.mjs.map +0 -1
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.4.
|
|
2
|
+
* Vuetify v3.4.10
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -327,6 +327,12 @@ function chunk(str) {
|
|
|
327
327
|
}
|
|
328
328
|
return chunked;
|
|
329
329
|
}
|
|
330
|
+
function chunkArray(array) {
|
|
331
|
+
let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
332
|
+
return Array.from({
|
|
333
|
+
length: Math.ceil(array.length / size)
|
|
334
|
+
}, (v, i) => array.slice(i * size, i * size + size));
|
|
335
|
+
}
|
|
330
336
|
function humanReadableFileSize(bytes) {
|
|
331
337
|
let base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
|
|
332
338
|
if (bytes < base) {
|
|
@@ -531,6 +537,14 @@ function ensureValidVNode(vnodes) {
|
|
|
531
537
|
return child.type !== Fragment || ensureValidVNode(child.children);
|
|
532
538
|
}) ? vnodes : null;
|
|
533
539
|
}
|
|
540
|
+
function defer(timeout, cb) {
|
|
541
|
+
if (!IN_BROWSER || timeout === 0) {
|
|
542
|
+
cb();
|
|
543
|
+
return () => {};
|
|
544
|
+
}
|
|
545
|
+
const timeoutId = window.setTimeout(cb, timeout);
|
|
546
|
+
return () => window.clearTimeout(timeoutId);
|
|
547
|
+
}
|
|
534
548
|
|
|
535
549
|
// Utilities
|
|
536
550
|
const block = ['top', 'bottom'];
|
|
@@ -1895,7 +1909,8 @@ var en = {
|
|
|
1895
1909
|
}
|
|
1896
1910
|
},
|
|
1897
1911
|
calendar: {
|
|
1898
|
-
moreEvents: '{0} more'
|
|
1912
|
+
moreEvents: '{0} more',
|
|
1913
|
+
today: 'Today'
|
|
1899
1914
|
},
|
|
1900
1915
|
input: {
|
|
1901
1916
|
clear: 'Clear {0}',
|
|
@@ -3827,7 +3842,6 @@ const VAppBar = genericComponent()({
|
|
|
3827
3842
|
// shrink: behavior.has('shrink'),
|
|
3828
3843
|
};
|
|
3829
3844
|
});
|
|
3830
|
-
|
|
3831
3845
|
const canScroll = computed(() => {
|
|
3832
3846
|
const behavior = scrollBehavior.value;
|
|
3833
3847
|
return behavior.hide ||
|
|
@@ -3910,6 +3924,7 @@ const allowedDensities = [null, 'default', 'comfortable', 'compact'];
|
|
|
3910
3924
|
|
|
3911
3925
|
// typeof allowedDensities[number] evalutes to any
|
|
3912
3926
|
// when generating api types for whatever reason.
|
|
3927
|
+
|
|
3913
3928
|
// Composables
|
|
3914
3929
|
const makeDensityProps = propsFactory({
|
|
3915
3930
|
density: {
|
|
@@ -5805,6 +5820,68 @@ const VAlert = genericComponent()({
|
|
|
5805
5820
|
}
|
|
5806
5821
|
});
|
|
5807
5822
|
|
|
5823
|
+
const makeVAvatarProps = propsFactory({
|
|
5824
|
+
start: Boolean,
|
|
5825
|
+
end: Boolean,
|
|
5826
|
+
icon: IconValue,
|
|
5827
|
+
image: String,
|
|
5828
|
+
text: String,
|
|
5829
|
+
...makeComponentProps(),
|
|
5830
|
+
...makeDensityProps(),
|
|
5831
|
+
...makeRoundedProps(),
|
|
5832
|
+
...makeSizeProps(),
|
|
5833
|
+
...makeTagProps(),
|
|
5834
|
+
...makeThemeProps(),
|
|
5835
|
+
...makeVariantProps({
|
|
5836
|
+
variant: 'flat'
|
|
5837
|
+
})
|
|
5838
|
+
}, 'VAvatar');
|
|
5839
|
+
const VAvatar = genericComponent()({
|
|
5840
|
+
name: 'VAvatar',
|
|
5841
|
+
props: makeVAvatarProps(),
|
|
5842
|
+
setup(props, _ref) {
|
|
5843
|
+
let {
|
|
5844
|
+
slots
|
|
5845
|
+
} = _ref;
|
|
5846
|
+
const {
|
|
5847
|
+
themeClasses
|
|
5848
|
+
} = provideTheme(props);
|
|
5849
|
+
const {
|
|
5850
|
+
colorClasses,
|
|
5851
|
+
colorStyles,
|
|
5852
|
+
variantClasses
|
|
5853
|
+
} = useVariant(props);
|
|
5854
|
+
const {
|
|
5855
|
+
densityClasses
|
|
5856
|
+
} = useDensity(props);
|
|
5857
|
+
const {
|
|
5858
|
+
roundedClasses
|
|
5859
|
+
} = useRounded(props);
|
|
5860
|
+
const {
|
|
5861
|
+
sizeClasses,
|
|
5862
|
+
sizeStyles
|
|
5863
|
+
} = useSize(props);
|
|
5864
|
+
useRender(() => createVNode(props.tag, {
|
|
5865
|
+
"class": ['v-avatar', {
|
|
5866
|
+
'v-avatar--start': props.start,
|
|
5867
|
+
'v-avatar--end': props.end
|
|
5868
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5869
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
5870
|
+
}, {
|
|
5871
|
+
default: () => [props.image ? createVNode(VImg, {
|
|
5872
|
+
"key": "image",
|
|
5873
|
+
"src": props.image,
|
|
5874
|
+
"alt": "",
|
|
5875
|
+
"cover": true
|
|
5876
|
+
}, null) : props.icon ? createVNode(VIcon, {
|
|
5877
|
+
"key": "icon",
|
|
5878
|
+
"icon": props.icon
|
|
5879
|
+
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
5880
|
+
}));
|
|
5881
|
+
return {};
|
|
5882
|
+
}
|
|
5883
|
+
});
|
|
5884
|
+
|
|
5808
5885
|
const makeVLabelProps = propsFactory({
|
|
5809
5886
|
text: String,
|
|
5810
5887
|
clickable: Boolean,
|
|
@@ -6772,68 +6849,6 @@ const VCheckbox = genericComponent()({
|
|
|
6772
6849
|
}
|
|
6773
6850
|
});
|
|
6774
6851
|
|
|
6775
|
-
const makeVAvatarProps = propsFactory({
|
|
6776
|
-
start: Boolean,
|
|
6777
|
-
end: Boolean,
|
|
6778
|
-
icon: IconValue,
|
|
6779
|
-
image: String,
|
|
6780
|
-
text: String,
|
|
6781
|
-
...makeComponentProps(),
|
|
6782
|
-
...makeDensityProps(),
|
|
6783
|
-
...makeRoundedProps(),
|
|
6784
|
-
...makeSizeProps(),
|
|
6785
|
-
...makeTagProps(),
|
|
6786
|
-
...makeThemeProps(),
|
|
6787
|
-
...makeVariantProps({
|
|
6788
|
-
variant: 'flat'
|
|
6789
|
-
})
|
|
6790
|
-
}, 'VAvatar');
|
|
6791
|
-
const VAvatar = genericComponent()({
|
|
6792
|
-
name: 'VAvatar',
|
|
6793
|
-
props: makeVAvatarProps(),
|
|
6794
|
-
setup(props, _ref) {
|
|
6795
|
-
let {
|
|
6796
|
-
slots
|
|
6797
|
-
} = _ref;
|
|
6798
|
-
const {
|
|
6799
|
-
themeClasses
|
|
6800
|
-
} = provideTheme(props);
|
|
6801
|
-
const {
|
|
6802
|
-
colorClasses,
|
|
6803
|
-
colorStyles,
|
|
6804
|
-
variantClasses
|
|
6805
|
-
} = useVariant(props);
|
|
6806
|
-
const {
|
|
6807
|
-
densityClasses
|
|
6808
|
-
} = useDensity(props);
|
|
6809
|
-
const {
|
|
6810
|
-
roundedClasses
|
|
6811
|
-
} = useRounded(props);
|
|
6812
|
-
const {
|
|
6813
|
-
sizeClasses,
|
|
6814
|
-
sizeStyles
|
|
6815
|
-
} = useSize(props);
|
|
6816
|
-
useRender(() => createVNode(props.tag, {
|
|
6817
|
-
"class": ['v-avatar', {
|
|
6818
|
-
'v-avatar--start': props.start,
|
|
6819
|
-
'v-avatar--end': props.end
|
|
6820
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6821
|
-
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
6822
|
-
}, {
|
|
6823
|
-
default: () => [props.image ? createVNode(VImg, {
|
|
6824
|
-
"key": "image",
|
|
6825
|
-
"src": props.image,
|
|
6826
|
-
"alt": "",
|
|
6827
|
-
"cover": true
|
|
6828
|
-
}, null) : props.icon ? createVNode(VIcon, {
|
|
6829
|
-
"key": "icon",
|
|
6830
|
-
"icon": props.icon
|
|
6831
|
-
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
6832
|
-
}));
|
|
6833
|
-
return {};
|
|
6834
|
-
}
|
|
6835
|
-
});
|
|
6836
|
-
|
|
6837
6852
|
// Types
|
|
6838
6853
|
|
|
6839
6854
|
const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
|
|
@@ -7126,7 +7141,8 @@ const VChip = genericComponent()({
|
|
|
7126
7141
|
}
|
|
7127
7142
|
}, slots.append)]), hasClose && createVNode("button", mergeProps({
|
|
7128
7143
|
"key": "close",
|
|
7129
|
-
"class": "v-chip__close"
|
|
7144
|
+
"class": "v-chip__close",
|
|
7145
|
+
"type": "button"
|
|
7130
7146
|
}, closeProps.value), [!slots.close ? createVNode(VIcon, {
|
|
7131
7147
|
"key": "close-icon",
|
|
7132
7148
|
"icon": props.closeIcon,
|
|
@@ -8392,6 +8408,9 @@ const VList = genericComponent()({
|
|
|
8392
8408
|
}
|
|
8393
8409
|
e.preventDefault();
|
|
8394
8410
|
}
|
|
8411
|
+
function onMousedown(e) {
|
|
8412
|
+
isFocused.value = true;
|
|
8413
|
+
}
|
|
8395
8414
|
function focus(location) {
|
|
8396
8415
|
if (contentRef.value) {
|
|
8397
8416
|
return focusChild(contentRef.value, location);
|
|
@@ -8402,7 +8421,8 @@ const VList = genericComponent()({
|
|
|
8402
8421
|
"ref": contentRef,
|
|
8403
8422
|
"class": ['v-list', {
|
|
8404
8423
|
'v-list--disabled': props.disabled,
|
|
8405
|
-
'v-list--nav': props.nav
|
|
8424
|
+
'v-list--nav': props.nav,
|
|
8425
|
+
'v-list--slim': props.slim
|
|
8406
8426
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
|
8407
8427
|
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
8408
8428
|
"tabindex": props.disabled || isFocused.value ? -1 : 0,
|
|
@@ -8411,7 +8431,8 @@ const VList = genericComponent()({
|
|
|
8411
8431
|
"onFocusin": onFocusin,
|
|
8412
8432
|
"onFocusout": onFocusout,
|
|
8413
8433
|
"onFocus": onFocus,
|
|
8414
|
-
"onKeydown": onKeydown
|
|
8434
|
+
"onKeydown": onKeydown,
|
|
8435
|
+
"onMousedown": onMousedown
|
|
8415
8436
|
}, {
|
|
8416
8437
|
default: () => [createVNode(VListChildren, {
|
|
8417
8438
|
"items": items.value,
|
|
@@ -8538,7 +8559,6 @@ const locationStrategies = {
|
|
|
8538
8559
|
// specific viewport position, usually centered
|
|
8539
8560
|
connected: connectedLocationStrategy // connected to a certain element
|
|
8540
8561
|
};
|
|
8541
|
-
|
|
8542
8562
|
const makeLocationStrategyProps = propsFactory({
|
|
8543
8563
|
locationStrategy: {
|
|
8544
8564
|
type: [String, Function],
|
|
@@ -9085,26 +9105,27 @@ const makeDelayProps = propsFactory({
|
|
|
9085
9105
|
openDelay: [Number, String]
|
|
9086
9106
|
}, 'delay');
|
|
9087
9107
|
function useDelay(props, cb) {
|
|
9088
|
-
|
|
9089
|
-
|
|
9090
|
-
|
|
9091
|
-
|
|
9092
|
-
const active = prop === 'openDelay';
|
|
9093
|
-
delays.closeDelay && window.clearTimeout(delays.closeDelay);
|
|
9094
|
-
delete delays.closeDelay;
|
|
9095
|
-
delays.openDelay && window.clearTimeout(delays.openDelay);
|
|
9096
|
-
delete delays.openDelay;
|
|
9108
|
+
let clearDelay = () => {};
|
|
9109
|
+
function runDelay(isOpening) {
|
|
9110
|
+
clearDelay?.();
|
|
9111
|
+
const delay = Number(isOpening ? props.openDelay : props.closeDelay);
|
|
9097
9112
|
return new Promise(resolve => {
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
|
|
9101
|
-
|
|
9102
|
-
}, delay);
|
|
9113
|
+
clearDelay = defer(delay, () => {
|
|
9114
|
+
cb?.(isOpening);
|
|
9115
|
+
resolve(isOpening);
|
|
9116
|
+
});
|
|
9103
9117
|
});
|
|
9104
|
-
}
|
|
9118
|
+
}
|
|
9119
|
+
function runOpenDelay() {
|
|
9120
|
+
return runDelay(true);
|
|
9121
|
+
}
|
|
9122
|
+
function runCloseDelay() {
|
|
9123
|
+
return runDelay(false);
|
|
9124
|
+
}
|
|
9105
9125
|
return {
|
|
9106
|
-
|
|
9107
|
-
runOpenDelay
|
|
9126
|
+
clearDelay,
|
|
9127
|
+
runOpenDelay,
|
|
9128
|
+
runCloseDelay
|
|
9108
9129
|
};
|
|
9109
9130
|
}
|
|
9110
9131
|
|
|
@@ -9951,7 +9972,7 @@ const VOverlay = genericComponent()({
|
|
|
9951
9972
|
ref: activatorRef,
|
|
9952
9973
|
targetRef
|
|
9953
9974
|
}, activatorEvents.value, props.activatorProps)
|
|
9954
|
-
}), isMounted.value && hasContent.value && createVNode(Teleport, {
|
|
9975
|
+
}), !props.disabled && isMounted.value && hasContent.value && createVNode(Teleport, {
|
|
9955
9976
|
"disabled": !teleportTarget.value,
|
|
9956
9977
|
"to": teleportTarget.value
|
|
9957
9978
|
}, {
|
|
@@ -9967,7 +9988,7 @@ const VOverlay = genericComponent()({
|
|
|
9967
9988
|
"ref": root
|
|
9968
9989
|
}, scopeId, attrs), [createVNode(Scrim, mergeProps({
|
|
9969
9990
|
"color": scrimColor,
|
|
9970
|
-
"modelValue":
|
|
9991
|
+
"modelValue": !!props.scrim && isActive.value
|
|
9971
9992
|
}, scrimEvents.value), null), createVNode(MaybeTransition, {
|
|
9972
9993
|
"appear": true,
|
|
9973
9994
|
"persisted": true,
|
|
@@ -11320,7 +11341,7 @@ const VSelect = genericComponent()({
|
|
|
11320
11341
|
}
|
|
11321
11342
|
return items.value;
|
|
11322
11343
|
});
|
|
11323
|
-
const menuDisabled = computed(() => props.hideNoData && !
|
|
11344
|
+
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
11324
11345
|
const computedMenuProps = computed(() => {
|
|
11325
11346
|
return {
|
|
11326
11347
|
...props.menuProps,
|
|
@@ -11330,7 +11351,6 @@ const VSelect = genericComponent()({
|
|
|
11330
11351
|
}
|
|
11331
11352
|
};
|
|
11332
11353
|
});
|
|
11333
|
-
|
|
11334
11354
|
const listRef = ref();
|
|
11335
11355
|
const {
|
|
11336
11356
|
onListScroll,
|
|
@@ -11428,6 +11448,15 @@ const VSelect = genericComponent()({
|
|
|
11428
11448
|
});
|
|
11429
11449
|
}
|
|
11430
11450
|
});
|
|
11451
|
+
watch(displayItems, (val, oldVal) => {
|
|
11452
|
+
if (!isFocused.value) return;
|
|
11453
|
+
if (!val.length && props.hideNoData) {
|
|
11454
|
+
menu.value = false;
|
|
11455
|
+
}
|
|
11456
|
+
if (!oldVal.length && val.length) {
|
|
11457
|
+
menu.value = true;
|
|
11458
|
+
}
|
|
11459
|
+
});
|
|
11431
11460
|
useRender(() => {
|
|
11432
11461
|
const hasChips = !!(props.chips || slots.chip);
|
|
11433
11462
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -11485,6 +11514,7 @@ const VSelect = genericComponent()({
|
|
|
11485
11514
|
"onFocusin": onFocusin,
|
|
11486
11515
|
"onScrollPassive": onListScroll,
|
|
11487
11516
|
"tabindex": "-1",
|
|
11517
|
+
"aria-live": "polite",
|
|
11488
11518
|
"color": props.itemColor ?? props.color
|
|
11489
11519
|
}, {
|
|
11490
11520
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
@@ -11521,7 +11551,9 @@ const VSelect = genericComponent()({
|
|
|
11521
11551
|
"modelValue": isSelected,
|
|
11522
11552
|
"ripple": false,
|
|
11523
11553
|
"tabindex": "-1"
|
|
11524
|
-
}, null) : undefined, item.props.
|
|
11554
|
+
}, null) : undefined, item.props.prependAvatar && createVNode(VAvatar, {
|
|
11555
|
+
"image": item.props.prependAvatar
|
|
11556
|
+
}, null), item.props.prependIcon && createVNode(VIcon, {
|
|
11525
11557
|
"icon": item.props.prependIcon
|
|
11526
11558
|
}, null)]);
|
|
11527
11559
|
}
|
|
@@ -11812,7 +11844,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11812
11844
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
11813
11845
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
11814
11846
|
});
|
|
11815
|
-
const menuDisabled = computed(() => props.hideNoData && !
|
|
11847
|
+
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
11816
11848
|
const listRef = ref();
|
|
11817
11849
|
const {
|
|
11818
11850
|
onListScroll,
|
|
@@ -11971,6 +12003,15 @@ const VAutocomplete = genericComponent()({
|
|
|
11971
12003
|
});
|
|
11972
12004
|
}
|
|
11973
12005
|
});
|
|
12006
|
+
watch(displayItems, (val, oldVal) => {
|
|
12007
|
+
if (!isFocused.value) return;
|
|
12008
|
+
if (!val.length && props.hideNoData) {
|
|
12009
|
+
menu.value = false;
|
|
12010
|
+
}
|
|
12011
|
+
if (!oldVal.length && val.length) {
|
|
12012
|
+
menu.value = true;
|
|
12013
|
+
}
|
|
12014
|
+
});
|
|
11974
12015
|
useRender(() => {
|
|
11975
12016
|
const hasChips = !!(props.chips || slots.chip);
|
|
11976
12017
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -12025,6 +12066,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12025
12066
|
"onFocusout": onFocusout,
|
|
12026
12067
|
"onScrollPassive": onListScroll,
|
|
12027
12068
|
"tabindex": "-1",
|
|
12069
|
+
"aria-live": "polite",
|
|
12028
12070
|
"color": props.itemColor ?? props.color
|
|
12029
12071
|
}, {
|
|
12030
12072
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
@@ -12060,7 +12102,9 @@ const VAutocomplete = genericComponent()({
|
|
|
12060
12102
|
"modelValue": isSelected,
|
|
12061
12103
|
"ripple": false,
|
|
12062
12104
|
"tabindex": "-1"
|
|
12063
|
-
}, null) : undefined, item.props.
|
|
12105
|
+
}, null) : undefined, item.props.prependAvatar && createVNode(VAvatar, {
|
|
12106
|
+
"image": item.props.prependAvatar
|
|
12107
|
+
}, null), item.props.prependIcon && createVNode(VIcon, {
|
|
12064
12108
|
"icon": item.props.prependIcon
|
|
12065
12109
|
}, null)]);
|
|
12066
12110
|
},
|
|
@@ -13569,7 +13613,6 @@ const VWindowItem = genericComponent()({
|
|
|
13569
13613
|
function onTransitionCancelled() {
|
|
13570
13614
|
onAfterTransition(); // This should have the same path as normal transition end.
|
|
13571
13615
|
}
|
|
13572
|
-
|
|
13573
13616
|
function onEnterTransition(el) {
|
|
13574
13617
|
if (!isTransitioning.value) {
|
|
13575
13618
|
return;
|
|
@@ -15568,7 +15611,7 @@ const VCombobox = genericComponent()({
|
|
|
15568
15611
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
15569
15612
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
15570
15613
|
});
|
|
15571
|
-
const menuDisabled = computed(() => props.hideNoData && !
|
|
15614
|
+
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
15572
15615
|
const listRef = ref();
|
|
15573
15616
|
const {
|
|
15574
15617
|
onListScroll,
|
|
@@ -15696,9 +15739,6 @@ const VCombobox = genericComponent()({
|
|
|
15696
15739
|
function onUpdateModelValue(v) {
|
|
15697
15740
|
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
15698
15741
|
}
|
|
15699
|
-
watch(filteredItems, val => {
|
|
15700
|
-
if (!val.length && props.hideNoData) menu.value = false;
|
|
15701
|
-
});
|
|
15702
15742
|
watch(isFocused, (val, oldVal) => {
|
|
15703
15743
|
if (val || val === oldVal) return;
|
|
15704
15744
|
selectionIndex.value = -1;
|
|
@@ -15722,6 +15762,15 @@ const VCombobox = genericComponent()({
|
|
|
15722
15762
|
});
|
|
15723
15763
|
}
|
|
15724
15764
|
});
|
|
15765
|
+
watch(displayItems, (val, oldVal) => {
|
|
15766
|
+
if (!isFocused.value) return;
|
|
15767
|
+
if (!val.length && props.hideNoData) {
|
|
15768
|
+
menu.value = false;
|
|
15769
|
+
}
|
|
15770
|
+
if (!oldVal.length && val.length) {
|
|
15771
|
+
menu.value = true;
|
|
15772
|
+
}
|
|
15773
|
+
});
|
|
15725
15774
|
useRender(() => {
|
|
15726
15775
|
const hasChips = !!(props.chips || slots.chip);
|
|
15727
15776
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -15776,6 +15825,7 @@ const VCombobox = genericComponent()({
|
|
|
15776
15825
|
"onFocusout": onFocusout,
|
|
15777
15826
|
"onScrollPassive": onListScroll,
|
|
15778
15827
|
"tabindex": "-1",
|
|
15828
|
+
"aria-live": "polite",
|
|
15779
15829
|
"color": props.itemColor ?? props.color
|
|
15780
15830
|
}, {
|
|
15781
15831
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
@@ -15811,7 +15861,9 @@ const VCombobox = genericComponent()({
|
|
|
15811
15861
|
"modelValue": isSelected,
|
|
15812
15862
|
"ripple": false,
|
|
15813
15863
|
"tabindex": "-1"
|
|
15814
|
-
}, null) : undefined, item.props.
|
|
15864
|
+
}, null) : undefined, item.props.prependAvatar && createVNode(VAvatar, {
|
|
15865
|
+
"image": item.props.prependAvatar
|
|
15866
|
+
}, null), item.props.prependIcon && createVNode(VIcon, {
|
|
15815
15867
|
"icon": item.props.prependIcon
|
|
15816
15868
|
}, null)]);
|
|
15817
15869
|
},
|
|
@@ -16596,6 +16648,20 @@ function getWeekArray(date, locale) {
|
|
|
16596
16648
|
}
|
|
16597
16649
|
return weeks;
|
|
16598
16650
|
}
|
|
16651
|
+
function startOfWeek(date) {
|
|
16652
|
+
const d = new Date(date);
|
|
16653
|
+
while (d.getDay() !== 0) {
|
|
16654
|
+
d.setDate(d.getDate() - 1);
|
|
16655
|
+
}
|
|
16656
|
+
return d;
|
|
16657
|
+
}
|
|
16658
|
+
function endOfWeek(date) {
|
|
16659
|
+
const d = new Date(date);
|
|
16660
|
+
while (d.getDay() !== 6) {
|
|
16661
|
+
d.setDate(d.getDate() + 1);
|
|
16662
|
+
}
|
|
16663
|
+
return d;
|
|
16664
|
+
}
|
|
16599
16665
|
function startOfMonth(date) {
|
|
16600
16666
|
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
16601
16667
|
}
|
|
@@ -16624,14 +16690,18 @@ function date(value) {
|
|
|
16624
16690
|
return null;
|
|
16625
16691
|
}
|
|
16626
16692
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
16693
|
+
|
|
16694
|
+
// The number of letters returned by getWeekday() varies by date library
|
|
16695
|
+
// So we've opted for 3-letter abbreviations for all locales
|
|
16627
16696
|
function getWeekdays(locale) {
|
|
16628
16697
|
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
16629
16698
|
return createRange(7).map(i => {
|
|
16630
16699
|
const weekday = new Date(sundayJanuarySecond2000);
|
|
16631
16700
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
16632
|
-
|
|
16633
|
-
weekday: '
|
|
16701
|
+
const formattedDay = new Intl.DateTimeFormat(locale, {
|
|
16702
|
+
weekday: 'short'
|
|
16634
16703
|
}).format(weekday);
|
|
16704
|
+
return formattedDay.charAt(0).toUpperCase() + formattedDay.slice(1);
|
|
16635
16705
|
});
|
|
16636
16706
|
}
|
|
16637
16707
|
function format(value, formatString, locale, formats) {
|
|
@@ -16650,6 +16720,12 @@ function format(value, formatString, locale, formats) {
|
|
|
16650
16720
|
year: 'numeric'
|
|
16651
16721
|
};
|
|
16652
16722
|
break;
|
|
16723
|
+
case 'hours12h':
|
|
16724
|
+
options = {
|
|
16725
|
+
hour: 'numeric',
|
|
16726
|
+
hour12: true
|
|
16727
|
+
};
|
|
16728
|
+
break;
|
|
16653
16729
|
case 'normalDateWithWeekday':
|
|
16654
16730
|
options = {
|
|
16655
16731
|
weekday: 'short',
|
|
@@ -16698,6 +16774,11 @@ function format(value, formatString, locale, formats) {
|
|
|
16698
16774
|
day: 'numeric'
|
|
16699
16775
|
};
|
|
16700
16776
|
break;
|
|
16777
|
+
case 'weekdayShort':
|
|
16778
|
+
options = {
|
|
16779
|
+
weekday: 'short'
|
|
16780
|
+
};
|
|
16781
|
+
break;
|
|
16701
16782
|
case 'year':
|
|
16702
16783
|
options = {
|
|
16703
16784
|
year: 'numeric'
|
|
@@ -16722,11 +16803,26 @@ function parseISO(value) {
|
|
|
16722
16803
|
const [year, month, day] = value.split('-').map(Number);
|
|
16723
16804
|
return new Date(year, month - 1, day);
|
|
16724
16805
|
}
|
|
16806
|
+
function addMinutes(date, amount) {
|
|
16807
|
+
const d = new Date(date);
|
|
16808
|
+
d.setMinutes(d.getMinutes() + amount);
|
|
16809
|
+
return d;
|
|
16810
|
+
}
|
|
16811
|
+
function addHours(date, amount) {
|
|
16812
|
+
const d = new Date(date);
|
|
16813
|
+
d.setHours(d.getHours() + amount);
|
|
16814
|
+
return d;
|
|
16815
|
+
}
|
|
16725
16816
|
function addDays(date, amount) {
|
|
16726
16817
|
const d = new Date(date);
|
|
16727
16818
|
d.setDate(d.getDate() + amount);
|
|
16728
16819
|
return d;
|
|
16729
16820
|
}
|
|
16821
|
+
function addWeeks(date, amount) {
|
|
16822
|
+
const d = new Date(date);
|
|
16823
|
+
d.setDate(d.getDate() + amount * 7);
|
|
16824
|
+
return d;
|
|
16825
|
+
}
|
|
16730
16826
|
function addMonths(date, amount) {
|
|
16731
16827
|
const d = new Date(date);
|
|
16732
16828
|
d.setMonth(d.getMonth() + amount);
|
|
@@ -16741,6 +16837,12 @@ function getMonth(date) {
|
|
|
16741
16837
|
function getNextMonth(date) {
|
|
16742
16838
|
return new Date(date.getFullYear(), date.getMonth() + 1, 1);
|
|
16743
16839
|
}
|
|
16840
|
+
function getHours(date) {
|
|
16841
|
+
return date.getHours();
|
|
16842
|
+
}
|
|
16843
|
+
function getMinutes(date) {
|
|
16844
|
+
return date.getMinutes();
|
|
16845
|
+
}
|
|
16744
16846
|
function startOfYear(date) {
|
|
16745
16847
|
return new Date(date.getFullYear(), 0, 1);
|
|
16746
16848
|
}
|
|
@@ -16777,6 +16879,16 @@ function getDiff(date, comparing, unit) {
|
|
|
16777
16879
|
}
|
|
16778
16880
|
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
16779
16881
|
}
|
|
16882
|
+
function setHours(date, count) {
|
|
16883
|
+
const d = new Date(date);
|
|
16884
|
+
d.setHours(count);
|
|
16885
|
+
return d;
|
|
16886
|
+
}
|
|
16887
|
+
function setMinutes(date, count) {
|
|
16888
|
+
const d = new Date(date);
|
|
16889
|
+
d.setMinutes(count);
|
|
16890
|
+
return d;
|
|
16891
|
+
}
|
|
16780
16892
|
function setMonth(date, count) {
|
|
16781
16893
|
const d = new Date(date);
|
|
16782
16894
|
d.setMonth(count);
|
|
@@ -16810,15 +16922,30 @@ class VuetifyDateAdapter {
|
|
|
16810
16922
|
parseISO(date) {
|
|
16811
16923
|
return parseISO(date);
|
|
16812
16924
|
}
|
|
16925
|
+
addMinutes(date, amount) {
|
|
16926
|
+
return addMinutes(date, amount);
|
|
16927
|
+
}
|
|
16928
|
+
addHours(date, amount) {
|
|
16929
|
+
return addHours(date, amount);
|
|
16930
|
+
}
|
|
16813
16931
|
addDays(date, amount) {
|
|
16814
16932
|
return addDays(date, amount);
|
|
16815
16933
|
}
|
|
16934
|
+
addWeeks(date, amount) {
|
|
16935
|
+
return addWeeks(date, amount);
|
|
16936
|
+
}
|
|
16816
16937
|
addMonths(date, amount) {
|
|
16817
16938
|
return addMonths(date, amount);
|
|
16818
16939
|
}
|
|
16819
16940
|
getWeekArray(date) {
|
|
16820
16941
|
return getWeekArray(date, this.locale);
|
|
16821
16942
|
}
|
|
16943
|
+
startOfWeek(date) {
|
|
16944
|
+
return startOfWeek(date);
|
|
16945
|
+
}
|
|
16946
|
+
endOfWeek(date) {
|
|
16947
|
+
return endOfWeek(date);
|
|
16948
|
+
}
|
|
16822
16949
|
startOfMonth(date) {
|
|
16823
16950
|
return startOfMonth(date);
|
|
16824
16951
|
}
|
|
@@ -16849,6 +16976,12 @@ class VuetifyDateAdapter {
|
|
|
16849
16976
|
isSameMonth(date, comparing) {
|
|
16850
16977
|
return isSameMonth(date, comparing);
|
|
16851
16978
|
}
|
|
16979
|
+
setMinutes(date, count) {
|
|
16980
|
+
return setMinutes(date, count);
|
|
16981
|
+
}
|
|
16982
|
+
setHours(date, count) {
|
|
16983
|
+
return setHours(date, count);
|
|
16984
|
+
}
|
|
16852
16985
|
setMonth(date, count) {
|
|
16853
16986
|
return setMonth(date, count);
|
|
16854
16987
|
}
|
|
@@ -16870,6 +17003,12 @@ class VuetifyDateAdapter {
|
|
|
16870
17003
|
getNextMonth(date) {
|
|
16871
17004
|
return getNextMonth(date);
|
|
16872
17005
|
}
|
|
17006
|
+
getHours(date) {
|
|
17007
|
+
return getHours(date);
|
|
17008
|
+
}
|
|
17009
|
+
getMinutes(date) {
|
|
17010
|
+
return getMinutes(date);
|
|
17011
|
+
}
|
|
16873
17012
|
startOfDay(date) {
|
|
16874
17013
|
return startOfDay(date);
|
|
16875
17014
|
}
|
|
@@ -17728,35 +17867,38 @@ const VDataTableFooter = genericComponent()({
|
|
|
17728
17867
|
title: t(option.title)
|
|
17729
17868
|
};
|
|
17730
17869
|
}));
|
|
17731
|
-
useRender(() =>
|
|
17732
|
-
|
|
17733
|
-
|
|
17734
|
-
|
|
17735
|
-
|
|
17736
|
-
|
|
17737
|
-
"
|
|
17738
|
-
|
|
17739
|
-
|
|
17740
|
-
|
|
17741
|
-
|
|
17742
|
-
|
|
17743
|
-
|
|
17744
|
-
|
|
17745
|
-
|
|
17746
|
-
|
|
17747
|
-
|
|
17748
|
-
|
|
17749
|
-
|
|
17750
|
-
|
|
17751
|
-
|
|
17752
|
-
|
|
17753
|
-
|
|
17754
|
-
|
|
17755
|
-
|
|
17756
|
-
|
|
17757
|
-
|
|
17758
|
-
|
|
17759
|
-
|
|
17870
|
+
useRender(() => {
|
|
17871
|
+
const paginationProps = VPagination.filterProps(props);
|
|
17872
|
+
return createVNode("div", {
|
|
17873
|
+
"class": "v-data-table-footer"
|
|
17874
|
+
}, [slots.prepend?.(), createVNode("div", {
|
|
17875
|
+
"class": "v-data-table-footer__items-per-page"
|
|
17876
|
+
}, [createVNode("span", null, [t(props.itemsPerPageText)]), createVNode(VSelect, {
|
|
17877
|
+
"items": itemsPerPageOptions.value,
|
|
17878
|
+
"modelValue": itemsPerPage.value,
|
|
17879
|
+
"onUpdate:modelValue": v => setItemsPerPage(Number(v)),
|
|
17880
|
+
"density": "compact",
|
|
17881
|
+
"variant": "outlined",
|
|
17882
|
+
"hide-details": true
|
|
17883
|
+
}, null)]), createVNode("div", {
|
|
17884
|
+
"class": "v-data-table-footer__info"
|
|
17885
|
+
}, [createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), createVNode("div", {
|
|
17886
|
+
"class": "v-data-table-footer__pagination"
|
|
17887
|
+
}, [createVNode(VPagination, mergeProps({
|
|
17888
|
+
"modelValue": page.value,
|
|
17889
|
+
"onUpdate:modelValue": $event => page.value = $event,
|
|
17890
|
+
"density": "comfortable",
|
|
17891
|
+
"first-aria-label": props.firstPageLabel,
|
|
17892
|
+
"last-aria-label": props.lastPageLabel,
|
|
17893
|
+
"length": pageCount.value,
|
|
17894
|
+
"next-aria-label": props.nextPageLabel,
|
|
17895
|
+
"previous-aria-label": props.prevPageLabel,
|
|
17896
|
+
"rounded": true,
|
|
17897
|
+
"show-first-last-page": true,
|
|
17898
|
+
"total-visible": props.showCurrentPage ? 1 : 0,
|
|
17899
|
+
"variant": "plain"
|
|
17900
|
+
}, paginationProps), null)])]);
|
|
17901
|
+
});
|
|
17760
17902
|
return {};
|
|
17761
17903
|
}
|
|
17762
17904
|
});
|
|
@@ -18140,7 +18282,8 @@ const VDataTableHeaders = genericComponent()({
|
|
|
18140
18282
|
"class": ['v-data-table__th', {
|
|
18141
18283
|
'v-data-table__th--sortable': column.sortable,
|
|
18142
18284
|
'v-data-table__th--sorted': isSorted(column),
|
|
18143
|
-
'v-data-table__th--fixed': column.fixed
|
|
18285
|
+
'v-data-table__th--fixed': column.fixed,
|
|
18286
|
+
'v-data-table__th--sticky': props.sticky
|
|
18144
18287
|
}, loaderClasses.value],
|
|
18145
18288
|
"style": {
|
|
18146
18289
|
width: convertToUnit(column.width),
|
|
@@ -19634,7 +19777,11 @@ const makeCalendarProps = propsFactory({
|
|
|
19634
19777
|
max: null,
|
|
19635
19778
|
min: null,
|
|
19636
19779
|
showAdjacentMonths: Boolean,
|
|
19637
|
-
year: [Number, String]
|
|
19780
|
+
year: [Number, String],
|
|
19781
|
+
weekdays: {
|
|
19782
|
+
type: Array,
|
|
19783
|
+
default: () => [0, 1, 2, 3, 4, 5, 6]
|
|
19784
|
+
}
|
|
19638
19785
|
}, 'calendar');
|
|
19639
19786
|
function useCalendar(props) {
|
|
19640
19787
|
const adapter = useDate();
|
|
@@ -19675,10 +19822,10 @@ function useCalendar(props) {
|
|
|
19675
19822
|
}
|
|
19676
19823
|
return weeks;
|
|
19677
19824
|
});
|
|
19678
|
-
|
|
19679
|
-
|
|
19680
|
-
|
|
19681
|
-
|
|
19825
|
+
function genDays(days, today) {
|
|
19826
|
+
return days.filter(date => {
|
|
19827
|
+
return props.weekdays.includes(date.getDay());
|
|
19828
|
+
}).map((date, index) => {
|
|
19682
19829
|
const isoDate = adapter.toISO(date);
|
|
19683
19830
|
const isAdjacent = !adapter.isSameMonth(date, month.value);
|
|
19684
19831
|
const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));
|
|
@@ -19703,6 +19850,21 @@ function useCalendar(props) {
|
|
|
19703
19850
|
localized: adapter.format(date, 'dayOfMonth')
|
|
19704
19851
|
};
|
|
19705
19852
|
});
|
|
19853
|
+
}
|
|
19854
|
+
const daysInWeek = computed(() => {
|
|
19855
|
+
const lastDay = adapter.startOfWeek(model.value);
|
|
19856
|
+
const week = [];
|
|
19857
|
+
for (let day = 0; day <= 6; day++) {
|
|
19858
|
+
week.push(adapter.addDays(lastDay, day));
|
|
19859
|
+
}
|
|
19860
|
+
const days = week;
|
|
19861
|
+
const today = adapter.date();
|
|
19862
|
+
return genDays(days, today);
|
|
19863
|
+
});
|
|
19864
|
+
const daysInMonth = computed(() => {
|
|
19865
|
+
const days = weeksInMonth.value.flat();
|
|
19866
|
+
const today = adapter.date();
|
|
19867
|
+
return genDays(days, today);
|
|
19706
19868
|
});
|
|
19707
19869
|
const weekNumbers = computed(() => {
|
|
19708
19870
|
return weeksInMonth.value.map(week => {
|
|
@@ -19725,6 +19887,8 @@ function useCalendar(props) {
|
|
|
19725
19887
|
return {
|
|
19726
19888
|
displayValue,
|
|
19727
19889
|
daysInMonth,
|
|
19890
|
+
daysInWeek,
|
|
19891
|
+
genDays,
|
|
19728
19892
|
model,
|
|
19729
19893
|
weeksInMonth,
|
|
19730
19894
|
weekNumbers
|
|
@@ -19787,7 +19951,7 @@ const VDatePickerMonth = genericComponent()({
|
|
|
19787
19951
|
"class": "v-date-picker-month__days"
|
|
19788
19952
|
}, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => createVNode("div", {
|
|
19789
19953
|
"class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
|
|
19790
|
-
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
|
19954
|
+
}, [weekDay[0]])), daysInMonth.value.map((item, i) => {
|
|
19791
19955
|
const slotProps = {
|
|
19792
19956
|
props: {
|
|
19793
19957
|
onClick: () => onClick(item.date)
|
|
@@ -20215,7 +20379,10 @@ const VDatePicker = genericComponent()({
|
|
|
20215
20379
|
"key": "header"
|
|
20216
20380
|
}, datePickerHeaderProps, headerProps, {
|
|
20217
20381
|
"onClick": viewMode.value !== 'month' ? onClickDate : undefined
|
|
20218
|
-
}),
|
|
20382
|
+
}), {
|
|
20383
|
+
...slots,
|
|
20384
|
+
default: undefined
|
|
20385
|
+
}),
|
|
20219
20386
|
default: () => createVNode(Fragment, null, [createVNode(VDatePickerControls, mergeProps(datePickerControlsProps, {
|
|
20220
20387
|
"disabled": disabled.value,
|
|
20221
20388
|
"text": text.value,
|
|
@@ -24925,6 +25092,477 @@ const VConfirmEdit = genericComponent()({
|
|
|
24925
25092
|
}
|
|
24926
25093
|
});
|
|
24927
25094
|
|
|
25095
|
+
const makeVCalendarIntervalEventProps = propsFactory({
|
|
25096
|
+
allDay: Boolean,
|
|
25097
|
+
interval: Object,
|
|
25098
|
+
intervalDivisions: {
|
|
25099
|
+
type: Number,
|
|
25100
|
+
required: true
|
|
25101
|
+
},
|
|
25102
|
+
intervalDuration: {
|
|
25103
|
+
type: Number,
|
|
25104
|
+
required: true
|
|
25105
|
+
},
|
|
25106
|
+
intervalHeight: {
|
|
25107
|
+
type: Number,
|
|
25108
|
+
required: true
|
|
25109
|
+
},
|
|
25110
|
+
event: Object
|
|
25111
|
+
}, 'VCalendarIntervalEvent');
|
|
25112
|
+
const VCalendarIntervalEvent = genericComponent()({
|
|
25113
|
+
name: 'VCalendarIntervalEvent',
|
|
25114
|
+
props: makeVCalendarIntervalEventProps(),
|
|
25115
|
+
setup(props) {
|
|
25116
|
+
const adapter = useDate();
|
|
25117
|
+
const calcHeight = () => {
|
|
25118
|
+
if (!props.event?.first && !props.event?.last || adapter.isEqual(props.event?.start, props.interval?.start)) {
|
|
25119
|
+
return {
|
|
25120
|
+
height: '100%',
|
|
25121
|
+
margin: convertToUnit(0)
|
|
25122
|
+
};
|
|
25123
|
+
} else {
|
|
25124
|
+
const {
|
|
25125
|
+
height,
|
|
25126
|
+
margin
|
|
25127
|
+
} = Array.from({
|
|
25128
|
+
length: props.intervalDivisions
|
|
25129
|
+
}, x => x * (props.intervalDuration / props.intervalDivisions)).reduce((total, div, index) => {
|
|
25130
|
+
if (adapter.isBefore(adapter.addMinutes(props.interval?.start, div), props.event?.start)) {
|
|
25131
|
+
return {
|
|
25132
|
+
height: convertToUnit(props.intervalHeight / props.intervalDivisions * index),
|
|
25133
|
+
margin: convertToUnit(props.intervalHeight / props.intervalDivisions * index)
|
|
25134
|
+
};
|
|
25135
|
+
}
|
|
25136
|
+
return {
|
|
25137
|
+
height: total.height,
|
|
25138
|
+
margin: total.margin
|
|
25139
|
+
};
|
|
25140
|
+
}, {
|
|
25141
|
+
height: '',
|
|
25142
|
+
margin: ''
|
|
25143
|
+
});
|
|
25144
|
+
return {
|
|
25145
|
+
height,
|
|
25146
|
+
margin
|
|
25147
|
+
};
|
|
25148
|
+
}
|
|
25149
|
+
};
|
|
25150
|
+
useRender(() => {
|
|
25151
|
+
return createVNode(VSheet, {
|
|
25152
|
+
"height": calcHeight().height,
|
|
25153
|
+
"density": "comfortable",
|
|
25154
|
+
"style": `width: 100%; margin-top: ${calcHeight().margin}`,
|
|
25155
|
+
"class": "align-center pa-1",
|
|
25156
|
+
"color": props.event?.color ?? undefined,
|
|
25157
|
+
"rounded": props.event?.first && props.event?.last ? true : props.event?.first ? 't' : props.event?.last ? 'b' : false
|
|
25158
|
+
}, {
|
|
25159
|
+
default: () => [props.event?.first ? props.event?.title : '']
|
|
25160
|
+
});
|
|
25161
|
+
});
|
|
25162
|
+
return {};
|
|
25163
|
+
}
|
|
25164
|
+
});
|
|
25165
|
+
|
|
25166
|
+
const makeVCalendarIntervalProps = propsFactory({
|
|
25167
|
+
day: {
|
|
25168
|
+
type: Object,
|
|
25169
|
+
default: () => ({})
|
|
25170
|
+
},
|
|
25171
|
+
dayIndex: Number,
|
|
25172
|
+
events: Array,
|
|
25173
|
+
intervalDivisions: {
|
|
25174
|
+
type: Number,
|
|
25175
|
+
default: 2
|
|
25176
|
+
},
|
|
25177
|
+
intervalDuration: {
|
|
25178
|
+
type: Number,
|
|
25179
|
+
default: 60
|
|
25180
|
+
},
|
|
25181
|
+
intervalHeight: {
|
|
25182
|
+
type: Number,
|
|
25183
|
+
default: 48
|
|
25184
|
+
},
|
|
25185
|
+
intervalFormat: {
|
|
25186
|
+
type: [String, Function],
|
|
25187
|
+
default: 'fullTime12h'
|
|
25188
|
+
},
|
|
25189
|
+
intervalStart: {
|
|
25190
|
+
type: Number,
|
|
25191
|
+
default: 0
|
|
25192
|
+
}
|
|
25193
|
+
}, 'VCalendarInterval');
|
|
25194
|
+
const VCalendarInterval = genericComponent()({
|
|
25195
|
+
name: 'VCalendarInterval',
|
|
25196
|
+
props: {
|
|
25197
|
+
index: {
|
|
25198
|
+
type: Number,
|
|
25199
|
+
required: true
|
|
25200
|
+
},
|
|
25201
|
+
...makeVCalendarIntervalProps()
|
|
25202
|
+
},
|
|
25203
|
+
setup(props, _ref) {
|
|
25204
|
+
const adapter = useDate();
|
|
25205
|
+
const interval = computed(() => {
|
|
25206
|
+
const start = adapter.addMinutes(adapter.startOfDay(props.day.date), props.intervalDuration * (props.index + props.intervalStart));
|
|
25207
|
+
const end = adapter.addMinutes(adapter.startOfDay(props.day.date), props.intervalDuration * (props.index + props.intervalStart + 1) - 1);
|
|
25208
|
+
return {
|
|
25209
|
+
...props.day,
|
|
25210
|
+
label: adapter.format(start, 'fullTime24h'),
|
|
25211
|
+
start,
|
|
25212
|
+
end,
|
|
25213
|
+
events: props.events ? props.events.filter(e => !e.allDay && (adapter.isEqual(start, e.start) || adapter.isWithinRange(e.start, [start, end]) || adapter.isWithinRange(start, [e.start, e.end]) || adapter.isEqual(end, e.end))).map(e => {
|
|
25214
|
+
return {
|
|
25215
|
+
...e,
|
|
25216
|
+
first: adapter.isEqual(start, e.start) || adapter.isWithinRange(e.start, [start, end]),
|
|
25217
|
+
last: adapter.isEqual(end, e.end) || adapter.isWithinRange(e.end, [start, end])
|
|
25218
|
+
};
|
|
25219
|
+
}) : []
|
|
25220
|
+
};
|
|
25221
|
+
});
|
|
25222
|
+
useRender(() => {
|
|
25223
|
+
return props.dayIndex === 0 ? createVNode("div", {
|
|
25224
|
+
"class": "v-calendar-day__row-with-label",
|
|
25225
|
+
"style": `height: ${convertToUnit(props.intervalHeight)}`
|
|
25226
|
+
}, [createVNode("div", {
|
|
25227
|
+
"class": "v-calendar-day__row-label"
|
|
25228
|
+
}, [createVNode("slot", {
|
|
25229
|
+
"name": "intervalFormat",
|
|
25230
|
+
"interval": interval.value
|
|
25231
|
+
}, [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : ''])]), createVNode("div", {
|
|
25232
|
+
"class": "v-calendar-day__row-hairline"
|
|
25233
|
+
}, null), createVNode("div", {
|
|
25234
|
+
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
|
25235
|
+
}, [createVNode("slot", {
|
|
25236
|
+
"name": "intervalBody",
|
|
25237
|
+
"interval": interval.value
|
|
25238
|
+
}, [interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, {
|
|
25239
|
+
"event": event,
|
|
25240
|
+
"interval": interval.value,
|
|
25241
|
+
"intervalDivisions": props.intervalDivisions,
|
|
25242
|
+
"intervalDuration": props.intervalDuration,
|
|
25243
|
+
"intervalHeight": props.intervalHeight
|
|
25244
|
+
}, null))])])]) : createVNode("div", {
|
|
25245
|
+
"class": "v-calendar-day__row-without-label",
|
|
25246
|
+
"style": `height: ${convertToUnit(props.intervalHeight)}`
|
|
25247
|
+
}, [createVNode("div", {
|
|
25248
|
+
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
|
25249
|
+
}, [createVNode("slot", {
|
|
25250
|
+
"name": "intervalBody",
|
|
25251
|
+
"interval": interval.value
|
|
25252
|
+
}, [interval.value.events?.filter(event => !event.allDay).map(event => createVNode(VCalendarIntervalEvent, {
|
|
25253
|
+
"event": event,
|
|
25254
|
+
"interval": interval.value,
|
|
25255
|
+
"intervalDivisions": props.intervalDivisions,
|
|
25256
|
+
"intervalDuration": props.intervalDuration,
|
|
25257
|
+
"intervalHeight": props.intervalHeight
|
|
25258
|
+
}, null))])])]);
|
|
25259
|
+
});
|
|
25260
|
+
return {
|
|
25261
|
+
interval
|
|
25262
|
+
};
|
|
25263
|
+
}
|
|
25264
|
+
});
|
|
25265
|
+
|
|
25266
|
+
const makeVCalendarDayProps = propsFactory({
|
|
25267
|
+
hideDayHeader: Boolean,
|
|
25268
|
+
intervals: {
|
|
25269
|
+
type: Number,
|
|
25270
|
+
default: 24
|
|
25271
|
+
},
|
|
25272
|
+
...makeVCalendarIntervalProps()
|
|
25273
|
+
}, 'VCalendarDay');
|
|
25274
|
+
const VCalendarDay = genericComponent()({
|
|
25275
|
+
name: 'VCalendarDay',
|
|
25276
|
+
props: makeVCalendarDayProps(),
|
|
25277
|
+
setup(props) {
|
|
25278
|
+
const adapter = useDate();
|
|
25279
|
+
const intervals = computed(() => [...Array.from({
|
|
25280
|
+
length: props.intervals
|
|
25281
|
+
}, (v, i) => i).filter((int, index) => props.intervalDuration * (index + props.intervalStart) < 1440)]);
|
|
25282
|
+
useRender(() => {
|
|
25283
|
+
const calendarIntervalProps = VCalendarInterval.filterProps(props);
|
|
25284
|
+
return createVNode("div", {
|
|
25285
|
+
"class": "v-calendar-day__container"
|
|
25286
|
+
}, [!props.hideDayHeader && createVNode("div", {
|
|
25287
|
+
"key": "calender-week-name",
|
|
25288
|
+
"class": "v-calendar-weekly__head-weekday"
|
|
25289
|
+
}, [adapter.format(props.day.date, 'weekdayShort'), createVNode("div", null, [createVNode(VBtn, {
|
|
25290
|
+
"icon": true,
|
|
25291
|
+
"text": adapter.format(props.day.date, 'dayOfMonth'),
|
|
25292
|
+
"variant": "text"
|
|
25293
|
+
}, null)])]), intervals.value.map((_, index) => createVNode(VCalendarInterval, mergeProps({
|
|
25294
|
+
"index": index
|
|
25295
|
+
}, calendarIntervalProps), null))]);
|
|
25296
|
+
});
|
|
25297
|
+
return {
|
|
25298
|
+
intervals
|
|
25299
|
+
};
|
|
25300
|
+
}
|
|
25301
|
+
});
|
|
25302
|
+
|
|
25303
|
+
// Types
|
|
25304
|
+
|
|
25305
|
+
const makeVCalendarHeaderProps = propsFactory({
|
|
25306
|
+
nextIcon: {
|
|
25307
|
+
type: String,
|
|
25308
|
+
default: '$next'
|
|
25309
|
+
},
|
|
25310
|
+
prevIcon: {
|
|
25311
|
+
type: String,
|
|
25312
|
+
default: '$prev'
|
|
25313
|
+
},
|
|
25314
|
+
title: String,
|
|
25315
|
+
text: {
|
|
25316
|
+
type: String,
|
|
25317
|
+
default: '$vuetify.calendar.today'
|
|
25318
|
+
},
|
|
25319
|
+
viewMode: {
|
|
25320
|
+
type: String,
|
|
25321
|
+
default: 'month'
|
|
25322
|
+
}
|
|
25323
|
+
}, 'VCalendarHeader');
|
|
25324
|
+
const VCalendarHeader = genericComponent()({
|
|
25325
|
+
name: 'VCalendarHeader',
|
|
25326
|
+
props: makeVCalendarHeaderProps(),
|
|
25327
|
+
emits: {
|
|
25328
|
+
'click:next': () => true,
|
|
25329
|
+
'click:prev': () => true,
|
|
25330
|
+
'click:toToday': () => true
|
|
25331
|
+
},
|
|
25332
|
+
setup(props, _ref) {
|
|
25333
|
+
let {
|
|
25334
|
+
emit
|
|
25335
|
+
} = _ref;
|
|
25336
|
+
const {
|
|
25337
|
+
t
|
|
25338
|
+
} = useLocale();
|
|
25339
|
+
function prev() {
|
|
25340
|
+
emit('click:prev');
|
|
25341
|
+
}
|
|
25342
|
+
function next() {
|
|
25343
|
+
emit('click:next');
|
|
25344
|
+
}
|
|
25345
|
+
function toToday() {
|
|
25346
|
+
emit('click:toToday');
|
|
25347
|
+
}
|
|
25348
|
+
useRender(() => createVNode("div", {
|
|
25349
|
+
"class": "v-calendar-header"
|
|
25350
|
+
}, [props.text && createVNode(VBtn, {
|
|
25351
|
+
"key": "today",
|
|
25352
|
+
"class": "v-calendar-header__today",
|
|
25353
|
+
"text": t(props.text),
|
|
25354
|
+
"variant": "outlined",
|
|
25355
|
+
"onClick": toToday
|
|
25356
|
+
}, null), createVNode(VBtn, {
|
|
25357
|
+
"density": "comfortable",
|
|
25358
|
+
"icon": props.prevIcon,
|
|
25359
|
+
"variant": "text",
|
|
25360
|
+
"onClick": prev
|
|
25361
|
+
}, null), createVNode(VBtn, {
|
|
25362
|
+
"density": "comfortable",
|
|
25363
|
+
"icon": props.nextIcon,
|
|
25364
|
+
"variant": "text",
|
|
25365
|
+
"onClick": next
|
|
25366
|
+
}, null), createVNode("div", {
|
|
25367
|
+
"class": "v-calendar-header__title"
|
|
25368
|
+
}, [props.title])]));
|
|
25369
|
+
return {};
|
|
25370
|
+
}
|
|
25371
|
+
});
|
|
25372
|
+
|
|
25373
|
+
const makeVCalendarEventProps = propsFactory({
|
|
25374
|
+
allDay: Boolean,
|
|
25375
|
+
day: Object,
|
|
25376
|
+
event: Object
|
|
25377
|
+
}, 'VCalendarEvent');
|
|
25378
|
+
const VCalendarEvent = genericComponent()({
|
|
25379
|
+
name: 'VCalendarEvent',
|
|
25380
|
+
props: makeVCalendarEventProps(),
|
|
25381
|
+
setup(props) {
|
|
25382
|
+
useRender(() => createVNode(VChip, {
|
|
25383
|
+
"color": props.allDay ? 'primary' : undefined,
|
|
25384
|
+
"density": "comfortable",
|
|
25385
|
+
"label": props.allDay,
|
|
25386
|
+
"width": "100%"
|
|
25387
|
+
}, {
|
|
25388
|
+
default: () => [createVNode(VBadge, {
|
|
25389
|
+
"inline": true,
|
|
25390
|
+
"dot": true,
|
|
25391
|
+
"color": props.event?.color
|
|
25392
|
+
}, null), props.event?.title]
|
|
25393
|
+
}));
|
|
25394
|
+
return {};
|
|
25395
|
+
}
|
|
25396
|
+
});
|
|
25397
|
+
|
|
25398
|
+
const makeVCalendarMonthDayProps = propsFactory({
|
|
25399
|
+
active: Boolean,
|
|
25400
|
+
color: String,
|
|
25401
|
+
day: Object,
|
|
25402
|
+
disabled: Boolean,
|
|
25403
|
+
events: Array,
|
|
25404
|
+
title: [Number, String]
|
|
25405
|
+
}, 'VCalendarMonthDay');
|
|
25406
|
+
const VCalendarMonthDay = genericComponent()({
|
|
25407
|
+
name: 'VCalendarMonthDay',
|
|
25408
|
+
props: makeVCalendarMonthDayProps(),
|
|
25409
|
+
setup(props, _ref) {
|
|
25410
|
+
let {
|
|
25411
|
+
emit,
|
|
25412
|
+
slots
|
|
25413
|
+
} = _ref;
|
|
25414
|
+
useRender(() => {
|
|
25415
|
+
const hasTitle = !!(props.title || slots.title?.({
|
|
25416
|
+
title: props.title
|
|
25417
|
+
}));
|
|
25418
|
+
return createVNode("div", {
|
|
25419
|
+
"class": ['v-calendar-month__day']
|
|
25420
|
+
}, [!props.day?.isHidden && hasTitle && createVNode("div", {
|
|
25421
|
+
"key": "title",
|
|
25422
|
+
"class": "v-calendar-weekly__day-label"
|
|
25423
|
+
}, [slots.title?.({
|
|
25424
|
+
title: props.title
|
|
25425
|
+
}) ?? createVNode(VBtn, {
|
|
25426
|
+
"class": props.day?.isToday ? 'v-calendar-weekly__day-label__today' : undefined,
|
|
25427
|
+
"color": props.color,
|
|
25428
|
+
"disabled": props.disabled,
|
|
25429
|
+
"icon": true,
|
|
25430
|
+
"size": "x-small",
|
|
25431
|
+
"variant": props.day?.isToday ? undefined : 'flat'
|
|
25432
|
+
}, {
|
|
25433
|
+
default: () => [props.title]
|
|
25434
|
+
})]), createVNode("div", {
|
|
25435
|
+
"key": "content",
|
|
25436
|
+
"class": "v-calendar-weekly__day-content"
|
|
25437
|
+
}, [slots.content?.() ?? createVNode("div", null, [createVNode("div", {
|
|
25438
|
+
"class": "v-calendar-weekly__day-alldayevents-container"
|
|
25439
|
+
}, [props.events?.filter(event => event.allDay).map(event => createVNode(VCalendarEvent, {
|
|
25440
|
+
"day": props.day,
|
|
25441
|
+
"event": event,
|
|
25442
|
+
"allDay": true
|
|
25443
|
+
}, null))]), createVNode("div", {
|
|
25444
|
+
"class": "v-calendar-weekly__day-events-container"
|
|
25445
|
+
}, [props.events?.filter(event => !event.allDay).map(event => createVNode(VCalendarEvent, {
|
|
25446
|
+
"day": props.day,
|
|
25447
|
+
"event": event
|
|
25448
|
+
}, null))])])]), slots.default?.()]);
|
|
25449
|
+
});
|
|
25450
|
+
return {};
|
|
25451
|
+
}
|
|
25452
|
+
});
|
|
25453
|
+
|
|
25454
|
+
const makeVCalendarProps = propsFactory({
|
|
25455
|
+
hideHeader: Boolean,
|
|
25456
|
+
hideWeekNumber: Boolean,
|
|
25457
|
+
...makeCalendarProps(),
|
|
25458
|
+
...makeVCalendarDayProps(),
|
|
25459
|
+
...makeVCalendarHeaderProps()
|
|
25460
|
+
}, 'VCalender');
|
|
25461
|
+
const VCalendar = genericComponent()({
|
|
25462
|
+
name: 'VCalendar',
|
|
25463
|
+
props: makeVCalendarProps(),
|
|
25464
|
+
emits: {
|
|
25465
|
+
next: null,
|
|
25466
|
+
prev: null,
|
|
25467
|
+
'update:modelValue': null
|
|
25468
|
+
},
|
|
25469
|
+
setup(props, _ref) {
|
|
25470
|
+
let {
|
|
25471
|
+
emit,
|
|
25472
|
+
slots
|
|
25473
|
+
} = _ref;
|
|
25474
|
+
const adapter = useDate();
|
|
25475
|
+
const {
|
|
25476
|
+
daysInMonth,
|
|
25477
|
+
daysInWeek,
|
|
25478
|
+
genDays,
|
|
25479
|
+
model,
|
|
25480
|
+
weekNumbers
|
|
25481
|
+
} = useCalendar(props);
|
|
25482
|
+
const dayNames = adapter.getWeekdays();
|
|
25483
|
+
function onClickNext() {
|
|
25484
|
+
if (props.viewMode === 'month') {
|
|
25485
|
+
model.value = [adapter.addMonths(model.value[0], 1)];
|
|
25486
|
+
}
|
|
25487
|
+
if (props.viewMode === 'week') {
|
|
25488
|
+
model.value = [adapter.addDays(model.value[0], 7)];
|
|
25489
|
+
}
|
|
25490
|
+
if (props.viewMode === 'day') {
|
|
25491
|
+
model.value = [adapter.addDays(model.value[0], 1)];
|
|
25492
|
+
}
|
|
25493
|
+
}
|
|
25494
|
+
function onClickPrev() {
|
|
25495
|
+
if (props.viewMode === 'month') {
|
|
25496
|
+
model.value = [adapter.addMonths(model.value[0], -1)];
|
|
25497
|
+
}
|
|
25498
|
+
if (props.viewMode === 'week') {
|
|
25499
|
+
model.value = [adapter.addDays(model.value[0], -7)];
|
|
25500
|
+
}
|
|
25501
|
+
if (props.viewMode === 'day') {
|
|
25502
|
+
model.value = [adapter.addDays(model.value[0], -1)];
|
|
25503
|
+
}
|
|
25504
|
+
}
|
|
25505
|
+
function onClickToday() {
|
|
25506
|
+
model.value = [new Date()];
|
|
25507
|
+
}
|
|
25508
|
+
const title = computed(() => {
|
|
25509
|
+
return adapter.format(model.value[0], 'monthAndYear');
|
|
25510
|
+
});
|
|
25511
|
+
useRender(() => {
|
|
25512
|
+
const calendarDayProps = VCalendarDay.filterProps(props);
|
|
25513
|
+
const calendarHeaderProps = VCalendarHeader.filterProps(props);
|
|
25514
|
+
return createVNode("div", {
|
|
25515
|
+
"class": ['v-calendar', {
|
|
25516
|
+
'v-calendar-monthly': props.viewMode === 'month',
|
|
25517
|
+
'v-calendar-weekly': props.viewMode === 'week',
|
|
25518
|
+
'v-calendar-day': props.viewMode === 'day'
|
|
25519
|
+
}]
|
|
25520
|
+
}, [createVNode("div", null, [!props.hideHeader && (!slots.header ? createVNode(VCalendarHeader, mergeProps({
|
|
25521
|
+
"key": "calendar-header"
|
|
25522
|
+
}, calendarHeaderProps, {
|
|
25523
|
+
"title": title.value,
|
|
25524
|
+
"onClick:next": onClickNext,
|
|
25525
|
+
"onClick:prev": onClickPrev,
|
|
25526
|
+
"onClick:toToday": onClickToday
|
|
25527
|
+
}), null) : slots.header({
|
|
25528
|
+
title: title.value
|
|
25529
|
+
}))]), createVNode("div", {
|
|
25530
|
+
"class": ['v-calendar__container', `days__${props.weekdays.length}`]
|
|
25531
|
+
}, [props.viewMode === 'month' && !props.hideDayHeader && createVNode("div", {
|
|
25532
|
+
"class": ['v-calendar-weekly__head', `days__${props.weekdays.length}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])],
|
|
25533
|
+
"key": "calenderWeeklyHead"
|
|
25534
|
+
}, [!props.hideWeekNumber ? createVNode("div", {
|
|
25535
|
+
"key": "weekNumber0",
|
|
25536
|
+
"class": "v-calendar-weekly__head-weeknumber"
|
|
25537
|
+
}, null) : '', props.weekdays.sort((a, b) => a - b).map(weekday => createVNode("div", {
|
|
25538
|
+
"class": `v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}`
|
|
25539
|
+
}, [dayNames[weekday]]))]), props.viewMode === 'month' && createVNode("div", {
|
|
25540
|
+
"key": "VCalendarMonth",
|
|
25541
|
+
"class": ['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${props.weekdays.length}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])]
|
|
25542
|
+
}, [chunkArray(daysInMonth.value, props.weekdays.length).map((week, wi) => [!props.hideWeekNumber ? createVNode("div", {
|
|
25543
|
+
"class": "v-calendar-month__weeknumber"
|
|
25544
|
+
}, [weekNumbers.value[wi]]) : '', week.map(day => createVNode(VCalendarMonthDay, {
|
|
25545
|
+
"color": adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined,
|
|
25546
|
+
"day": day,
|
|
25547
|
+
"title": day ? adapter.format(day.date, 'dayOfMonth') : 'NaN',
|
|
25548
|
+
"events": props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end))
|
|
25549
|
+
}, null))])]), props.viewMode === 'week' && daysInWeek.value.map((day, i) => createVNode(VCalendarDay, mergeProps(calendarDayProps, {
|
|
25550
|
+
"day": day,
|
|
25551
|
+
"dayIndex": i,
|
|
25552
|
+
"events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
|
|
25553
|
+
}), null)), props.viewMode === 'day' && createVNode(VCalendarDay, mergeProps(calendarDayProps, {
|
|
25554
|
+
"day": genDays([model.value[0]], adapter.date())[0],
|
|
25555
|
+
"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))
|
|
25556
|
+
}), null)])]);
|
|
25557
|
+
});
|
|
25558
|
+
return {
|
|
25559
|
+
daysInMonth,
|
|
25560
|
+
daysInWeek,
|
|
25561
|
+
genDays
|
|
25562
|
+
};
|
|
25563
|
+
}
|
|
25564
|
+
});
|
|
25565
|
+
|
|
24928
25566
|
var components = /*#__PURE__*/Object.freeze({
|
|
24929
25567
|
__proto__: null,
|
|
24930
25568
|
VAlert: VAlert,
|
|
@@ -24947,6 +25585,12 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
24947
25585
|
VBtn: VBtn,
|
|
24948
25586
|
VBtnGroup: VBtnGroup,
|
|
24949
25587
|
VBtnToggle: VBtnToggle,
|
|
25588
|
+
VCalendar: VCalendar,
|
|
25589
|
+
VCalendarDay: VCalendarDay,
|
|
25590
|
+
VCalendarHeader: VCalendarHeader,
|
|
25591
|
+
VCalendarInterval: VCalendarInterval,
|
|
25592
|
+
VCalendarIntervalEvent: VCalendarIntervalEvent,
|
|
25593
|
+
VCalendarMonthDay: VCalendarMonthDay,
|
|
24950
25594
|
VCard: VCard,
|
|
24951
25595
|
VCardActions: VCardActions,
|
|
24952
25596
|
VCardItem: VCardItem,
|
|
@@ -25305,7 +25949,7 @@ function createVuetify$1() {
|
|
|
25305
25949
|
date
|
|
25306
25950
|
};
|
|
25307
25951
|
}
|
|
25308
|
-
const version$1 = "3.4.
|
|
25952
|
+
const version$1 = "3.4.10";
|
|
25309
25953
|
createVuetify$1.version = version$1;
|
|
25310
25954
|
|
|
25311
25955
|
// Vue's inject() can only be used in setup
|
|
@@ -25319,7 +25963,7 @@ function inject(key) {
|
|
|
25319
25963
|
|
|
25320
25964
|
/* eslint-disable local-rules/sort-imports */
|
|
25321
25965
|
|
|
25322
|
-
const version = "3.4.
|
|
25966
|
+
const version = "3.4.10";
|
|
25323
25967
|
|
|
25324
25968
|
/* eslint-disable local-rules/sort-imports */
|
|
25325
25969
|
|