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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VCalendar.mjs","names":["makeVCalendarDayProps","VCalendarDay","makeVCalendarHeaderProps","VCalendarHeader","VCalendarMonthDay","makeCalendarProps","useCalendar","useDate","computed","chunkArray","genericComponent","propsFactory","useRender","makeVCalendarProps","hideHeader","Boolean","hideWeekNumber","VCalendar","name","props","emits","next","prev","setup","_ref","emit","slots","adapter","daysInMonth","daysInWeek","genDays","model","weekNumbers","dayNames","getWeekdays","onClickNext","viewMode","value","addMonths","addDays","onClickPrev","onClickToday","Date","title","format","calendarDayProps","filterProps","calendarHeaderProps","_createVNode","header","_mergeProps","weekdays","length","hideDayHeader","sort","a","b","map","weekday","week","wi","day","isSameDay","date","undefined","events","filter","e","start","end","i"],"sources":["../../../src/labs/VCalendar/VCalendar.tsx"],"sourcesContent":["// Styles\nimport './VCalendar.sass'\n\n// Components\nimport { makeVCalendarDayProps, VCalendarDay } from './VCalendarDay'\nimport { makeVCalendarHeaderProps, VCalendarHeader } from './VCalendarHeader'\nimport { VCalendarMonthDay } from './VCalendarMonthDay'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { computed } from 'vue'\nimport { chunkArray, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCalendarProps = propsFactory({\n hideHeader: Boolean,\n hideWeekNumber: Boolean,\n\n ...makeCalendarProps(),\n ...makeVCalendarDayProps(),\n ...makeVCalendarHeaderProps(),\n}, 'VCalender')\n\nexport type VCalendarSlots = {\n header: { title: string }\n}\n\nexport const VCalendar = genericComponent<VCalendarSlots>()({\n name: 'VCalendar',\n\n props: makeVCalendarProps(),\n\n emits: {\n next: null,\n prev: null,\n 'update:modelValue': null,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n\n const { daysInMonth, daysInWeek, genDays, model, weekNumbers } = useCalendar(props as any)\n\n const dayNames = adapter.getWeekdays()\n\n function onClickNext () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(model.value[0], 1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(model.value[0], 7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(model.value[0], 1)]\n }\n }\n\n function onClickPrev () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(model.value[0], -1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(model.value[0], -7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(model.value[0], -1)]\n }\n }\n\n function onClickToday () {\n model.value = [new Date()]\n }\n\n const title = computed(() => {\n return adapter.format(model.value[0], 'monthAndYear')\n })\n\n useRender(() => {\n const calendarDayProps = VCalendarDay.filterProps(props)\n const calendarHeaderProps = VCalendarHeader.filterProps(props)\n\n return (\n <div class={[\n 'v-calendar',\n {\n 'v-calendar-monthly': props.viewMode === 'month',\n 'v-calendar-weekly': props.viewMode === 'week',\n 'v-calendar-day': props.viewMode === 'day',\n },\n ]}\n >\n <div>\n { !props.hideHeader && (\n !slots.header ? (\n <VCalendarHeader\n key=\"calendar-header\"\n { ...calendarHeaderProps }\n title={ title.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:toToday={ onClickToday }\n />\n ) : (\n slots.header({ title: title.value })\n )\n )}\n </div>\n\n <div class={['v-calendar__container', `days__${props.weekdays.length}`]}>\n { props.viewMode === 'month' && !props.hideDayHeader && (\n <div\n class={\n [\n 'v-calendar-weekly__head',\n `days__${props.weekdays.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : []),\n ]\n }\n key=\"calenderWeeklyHead\"\n >\n { !props.hideWeekNumber ? <div key=\"weekNumber0\" class=\"v-calendar-weekly__head-weeknumber\"></div> : '' }\n {\n props.weekdays.sort((a, b) => a - b).map(weekday => (\n <div class={ `v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}` }>\n { dayNames[weekday] }\n </div>\n ))\n }\n </div>\n )}\n\n { props.viewMode === 'month' && (\n <div\n key=\"VCalendarMonth\"\n class={\n [\n 'v-calendar-month__days',\n `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${props.weekdays.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : []),\n ]\n }\n >\n { chunkArray(daysInMonth.value, props.weekdays.length)\n .map((week, wi) => (\n [\n !props.hideWeekNumber ? <div class=\"v-calendar-month__weeknumber\">{ weekNumbers.value[wi] }</div> : '',\n week.map(day => (\n <VCalendarMonthDay\n color={ adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined }\n day={ day }\n title={ day ? adapter.format(day.date, 'dayOfMonth') : 'NaN' }\n events={ props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end)) }\n ></VCalendarMonthDay>\n )),\n ]\n ))}\n </div>\n )}\n\n { props.viewMode === 'week' && (\n daysInWeek.value.map((day, i) => (\n <VCalendarDay\n { ...calendarDayProps }\n day={ day }\n dayIndex={ i }\n events={ props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date)) }\n ></VCalendarDay>\n ))\n )}\n\n { props.viewMode === 'day' && (\n <VCalendarDay\n { ...calendarDayProps }\n day={ genDays([model.value[0] as Date], adapter.date() as Date)[0] }\n events={\n props.events?.filter(e =>\n adapter.isSameDay(e.start, genDays([model.value[0] as Date], adapter.date() as Date)[0].date) ||\n adapter.isSameDay(e.end, genDays([model.value[0] as Date], adapter.date() as Date)[0].date)\n )\n }\n ></VCalendarDay>\n )}\n </div>\n </div>\n )\n })\n\n return { daysInMonth, daysInWeek, genDays }\n },\n})\n\nexport type VCalendar = InstanceType<typeof VCalendar>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
@import './_variables.scss'
|
|
2
|
+
|
|
3
|
+
.v-calendar-weekly
|
|
4
|
+
width: 100%
|
|
5
|
+
height: 100%
|
|
6
|
+
display: flex
|
|
7
|
+
flex-direction: column
|
|
8
|
+
// https://github.com/vuetifyjs/vuetify/issues/8319
|
|
9
|
+
min-height: 0
|
|
10
|
+
// Themed
|
|
11
|
+
background-color: #fff
|
|
12
|
+
|
|
13
|
+
.v-calendar__container
|
|
14
|
+
border-top: $calendar-line-width solid $calendar-line-color
|
|
15
|
+
border-left: $calendar-line-width solid $calendar-line-color
|
|
16
|
+
border-right: $calendar-line-width solid $calendar-line-color
|
|
17
|
+
|
|
18
|
+
.v-calendar-weekly__head
|
|
19
|
+
display: grid
|
|
20
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(7, 1fr)
|
|
21
|
+
user-select: none
|
|
22
|
+
&.days__0
|
|
23
|
+
grid-template-columns: 1fr
|
|
24
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
25
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis 1fr
|
|
26
|
+
&.days__1
|
|
27
|
+
grid-template-columns: 1fr
|
|
28
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
29
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis 1fr
|
|
30
|
+
&.days__2
|
|
31
|
+
grid-template-columns: repeat(2, 1fr)
|
|
32
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
33
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(2, 1fr)
|
|
34
|
+
&.days__3
|
|
35
|
+
grid-template-columns: repeat(3, 1fr)
|
|
36
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
37
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(3, 1fr)
|
|
38
|
+
&.days__4
|
|
39
|
+
grid-template-columns: repeat(4, 1fr)
|
|
40
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
41
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(4, 1fr)
|
|
42
|
+
&.days__5
|
|
43
|
+
grid-template-columns: repeat(5, 1fr)
|
|
44
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
45
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(5, 1fr)
|
|
46
|
+
&.days__6
|
|
47
|
+
grid-template-columns: repeat(6, 1fr)
|
|
48
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
49
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(6, 1fr)
|
|
50
|
+
&.days__7
|
|
51
|
+
grid-template-columns: repeat(7, 1fr)
|
|
52
|
+
&.v-calendar-weekly__head-weeknumbers
|
|
53
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(7, 1fr)
|
|
54
|
+
|
|
55
|
+
.v-calendar-weekly__head-weekday, .v-calendar-weekly__head-weekday-with-weeknumber
|
|
56
|
+
flex: 1 0 20px
|
|
57
|
+
user-select: none
|
|
58
|
+
padding: $calendar-weekly-weekday-padding
|
|
59
|
+
font-size: $calendar-weekly-weekday-font-size
|
|
60
|
+
overflow: hidden
|
|
61
|
+
text-align: center
|
|
62
|
+
text-overflow: ellipsis
|
|
63
|
+
text-transform: uppercase
|
|
64
|
+
white-space: nowrap
|
|
65
|
+
// Themed
|
|
66
|
+
border-right: $calendar-line-width solid $calendar-line-color
|
|
67
|
+
|
|
68
|
+
&:last-child
|
|
69
|
+
border-right: none
|
|
70
|
+
|
|
71
|
+
// TODO change this
|
|
72
|
+
> div .v-btn
|
|
73
|
+
font-size: 1.5rem
|
|
74
|
+
|
|
75
|
+
.v-calendar-weekly__head-weeknumber
|
|
76
|
+
background: rgb(var(--v-theme-on-surface-variant))
|
|
77
|
+
|
|
78
|
+
.v-calendar-weekly__week
|
|
79
|
+
display: flex
|
|
80
|
+
flex: 1
|
|
81
|
+
height: unset
|
|
82
|
+
// https://github.com/vuetifyjs/vuetify/issues/8319
|
|
83
|
+
min-height: 0
|
|
84
|
+
|
|
85
|
+
.v-calendar-month__weeknumber
|
|
86
|
+
padding-top: $calendar-weekly-weeknumber-padding-top
|
|
87
|
+
background: rgb(var(--v-theme-on-surface-variant))
|
|
88
|
+
border-bottom: $calendar-line-width solid $calendar-line-color
|
|
89
|
+
text-align: center
|
|
90
|
+
font-size: $calendar-weekly-weeknumber-font-size
|
|
91
|
+
font-weight: $calendar-weekly-weeknumber-font-weight
|
|
92
|
+
|
|
93
|
+
.v-calendar-month__days
|
|
94
|
+
display: grid
|
|
95
|
+
flex: 1 1
|
|
96
|
+
> .v-calendar-month__day
|
|
97
|
+
min-height: $calendar-weekly-day-min-height
|
|
98
|
+
&.days__0
|
|
99
|
+
grid-template-columns: 1fr
|
|
100
|
+
> .v-calendar-month__day
|
|
101
|
+
border-right: none
|
|
102
|
+
&.days__1
|
|
103
|
+
grid-template-columns: 1fr
|
|
104
|
+
> .v-calendar-month__day
|
|
105
|
+
border-right: none
|
|
106
|
+
&.days__2
|
|
107
|
+
grid-template-columns: repeat(2, 1fr)
|
|
108
|
+
> .v-calendar-month__day:nth-child(2n)
|
|
109
|
+
border-right: none
|
|
110
|
+
&.days__3
|
|
111
|
+
grid-template-columns: repeat(3, 1fr)
|
|
112
|
+
> .v-calendar-month__day:nth-child(3n)
|
|
113
|
+
border-right: none
|
|
114
|
+
&.days__4
|
|
115
|
+
grid-template-columns: repeat(4, 1fr)
|
|
116
|
+
> .v-calendar-month__day:nth-child(4n)
|
|
117
|
+
border-right: none
|
|
118
|
+
&.days__5
|
|
119
|
+
grid-template-columns: repeat(5, 1fr)
|
|
120
|
+
> .v-calendar-month__day:nth-child(5n)
|
|
121
|
+
border-right: none
|
|
122
|
+
&.days__6
|
|
123
|
+
grid-template-columns: repeat(6, 1fr)
|
|
124
|
+
> .v-calendar-month__day:nth-child(6n)
|
|
125
|
+
border-right: none
|
|
126
|
+
&.v-calendar-month__weeknumbers
|
|
127
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(6, 1fr)
|
|
128
|
+
&.days__7
|
|
129
|
+
grid-template-columns: repeat(7, 1fr)
|
|
130
|
+
> .v-calendar-month__day:nth-child(7n)
|
|
131
|
+
border-right: none
|
|
132
|
+
|
|
133
|
+
&.days-with-weeknumbers__0
|
|
134
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis 1fr
|
|
135
|
+
> .v-calendar-month__day
|
|
136
|
+
border-right: none
|
|
137
|
+
&.days-with-weeknumbers__1
|
|
138
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis 1fr
|
|
139
|
+
> .v-calendar-month__day
|
|
140
|
+
border-right: none
|
|
141
|
+
&.days-with-weeknumbers__2
|
|
142
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(2, 1fr)
|
|
143
|
+
> .v-calendar-month__day:nth-child(3n)
|
|
144
|
+
border-right: none
|
|
145
|
+
&.days-with-weeknumbers__3
|
|
146
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(3, 1fr)
|
|
147
|
+
> .v-calendar-month__day:nth-child(4n)
|
|
148
|
+
border-right: none
|
|
149
|
+
&.days-with-weeknumbers__4
|
|
150
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(4, 1fr)
|
|
151
|
+
> .v-calendar-month__day:nth-child(5n)
|
|
152
|
+
border-right: none
|
|
153
|
+
&.days-with-weeknumbers__5
|
|
154
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(5, 1fr)
|
|
155
|
+
> .v-calendar-month__day:nth-child(6n)
|
|
156
|
+
border-right: none
|
|
157
|
+
&.days-with-weeknumbers__6
|
|
158
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(6, 1fr)
|
|
159
|
+
> .v-calendar-month__day:nth-child(7n)
|
|
160
|
+
border-right: none
|
|
161
|
+
&.days-with-weeknumbers__7
|
|
162
|
+
grid-template-columns: $calendar-weekly-weeknumber-flex-basis repeat(7, 1fr)
|
|
163
|
+
> .v-calendar-month__day:nth-child(7n)
|
|
164
|
+
border-right: $calendar-line-width solid $calendar-line-width
|
|
165
|
+
> .v-calendar-month__day:nth-child(8n)
|
|
166
|
+
border-right: none
|
|
167
|
+
> .v-calendar-month__day:nth-child(8n)
|
|
168
|
+
border-right: none
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.v-calendar-day {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.v-calendar-weekly .v-calendar__container {
|
|
8
|
+
display: grid;
|
|
9
|
+
}
|
|
10
|
+
.v-calendar-weekly .v-calendar__container.days__7 {
|
|
11
|
+
grid-template-columns: repeat(7, 1fr);
|
|
12
|
+
}
|
|
13
|
+
.v-calendar-weekly .v-calendar__container.days__6 {
|
|
14
|
+
grid-template-columns: repeat(6, 1fr);
|
|
15
|
+
}
|
|
16
|
+
.v-calendar-weekly .v-calendar__container.days__5 {
|
|
17
|
+
grid-template-columns: repeat(5, 1fr);
|
|
18
|
+
}
|
|
19
|
+
.v-calendar-weekly .v-calendar__container.days__4 {
|
|
20
|
+
grid-template-columns: repeat(4, 1fr);
|
|
21
|
+
}
|
|
22
|
+
.v-calendar-weekly .v-calendar__container.days__3 {
|
|
23
|
+
grid-template-columns: repeat(3, 1fr);
|
|
24
|
+
}
|
|
25
|
+
.v-calendar-weekly .v-calendar__container.days__2 {
|
|
26
|
+
grid-template-columns: repeat(2, 1fr);
|
|
27
|
+
}
|
|
28
|
+
.v-calendar-weekly .v-calendar__container.days__1 {
|
|
29
|
+
grid-template-columns: repeat(1, 1fr);
|
|
30
|
+
}
|
|
31
|
+
.v-calendar-weekly .v-calendar__container.days__0 {
|
|
32
|
+
grid-template-columns: repeat(1, 1fr);
|
|
33
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VCalendarDay.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { makeVCalendarIntervalProps, VCalendarInterval } from "./VCalendarInterval.mjs";
|
|
7
|
+
import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
|
|
8
|
+
import { useDate } from "../../composables/date/index.mjs"; // Utilities
|
|
9
|
+
import { computed } from 'vue';
|
|
10
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
11
|
+
export const makeVCalendarDayProps = propsFactory({
|
|
12
|
+
hideDayHeader: Boolean,
|
|
13
|
+
intervals: {
|
|
14
|
+
type: Number,
|
|
15
|
+
default: 24
|
|
16
|
+
},
|
|
17
|
+
...makeVCalendarIntervalProps()
|
|
18
|
+
}, 'VCalendarDay');
|
|
19
|
+
export const VCalendarDay = genericComponent()({
|
|
20
|
+
name: 'VCalendarDay',
|
|
21
|
+
props: makeVCalendarDayProps(),
|
|
22
|
+
setup(props) {
|
|
23
|
+
const adapter = useDate();
|
|
24
|
+
const intervals = computed(() => [...Array.from({
|
|
25
|
+
length: props.intervals
|
|
26
|
+
}, (v, i) => i).filter((int, index) => props.intervalDuration * (index + props.intervalStart) < 1440)]);
|
|
27
|
+
useRender(() => {
|
|
28
|
+
const calendarIntervalProps = VCalendarInterval.filterProps(props);
|
|
29
|
+
return _createVNode("div", {
|
|
30
|
+
"class": "v-calendar-day__container"
|
|
31
|
+
}, [!props.hideDayHeader && _createVNode("div", {
|
|
32
|
+
"key": "calender-week-name",
|
|
33
|
+
"class": "v-calendar-weekly__head-weekday"
|
|
34
|
+
}, [adapter.format(props.day.date, 'weekdayShort'), _createVNode("div", null, [_createVNode(VBtn, {
|
|
35
|
+
"icon": true,
|
|
36
|
+
"text": adapter.format(props.day.date, 'dayOfMonth'),
|
|
37
|
+
"variant": "text"
|
|
38
|
+
}, null)])]), intervals.value.map((_, index) => _createVNode(VCalendarInterval, _mergeProps({
|
|
39
|
+
"index": index
|
|
40
|
+
}, calendarIntervalProps), null))]);
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
intervals
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=VCalendarDay.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VCalendarDay.mjs","names":["makeVCalendarIntervalProps","VCalendarInterval","VBtn","useDate","computed","genericComponent","propsFactory","useRender","makeVCalendarDayProps","hideDayHeader","Boolean","intervals","type","Number","default","VCalendarDay","name","props","setup","adapter","Array","from","length","v","i","filter","int","index","intervalDuration","intervalStart","calendarIntervalProps","filterProps","_createVNode","format","day","date","value","map","_","_mergeProps"],"sources":["../../../src/labs/VCalendar/VCalendarDay.tsx"],"sourcesContent":["// Styles\nimport './VCalendarDay.sass'\n\n// Components\nimport { makeVCalendarIntervalProps, VCalendarInterval } from './VCalendarInterval'\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCalendarDayProps = propsFactory({\n hideDayHeader: Boolean,\n intervals: {\n type: Number,\n default: 24,\n },\n\n ...makeVCalendarIntervalProps(),\n}, 'VCalendarDay')\n\nexport const VCalendarDay = genericComponent()({\n name: 'VCalendarDay',\n\n props: makeVCalendarDayProps(),\n\n setup (props) {\n const adapter = useDate()\n const intervals = computed(() => [\n ...Array.from({ length: props.intervals }, (v, i) => i)\n .filter((int, index) => (props.intervalDuration * (index + props.intervalStart)) < 1440),\n ])\n\n useRender(() => {\n const calendarIntervalProps = VCalendarInterval.filterProps(props)\n\n return (\n <div class=\"v-calendar-day__container\">\n { !props.hideDayHeader && (\n <div\n key=\"calender-week-name\"\n class=\"v-calendar-weekly__head-weekday\"\n >\n { adapter.format(props.day.date, 'weekdayShort') }\n\n <div>\n <VBtn\n icon\n text={ adapter.format(props.day.date, 'dayOfMonth') }\n variant=\"text\"\n />\n </div>\n </div>\n )}\n\n { intervals.value.map((_, index) => (\n <VCalendarInterval\n index={ index }\n { ...calendarIntervalProps }\n ></VCalendarInterval>\n ))\n }\n </div>\n )\n })\n\n return { intervals }\n },\n})\n\nexport type VCalendarDay = InstanceType<typeof VCalendarDay>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,0BAA0B,EAAEC,iBAAiB;AAAA,SAC7CC,IAAI,2CAEb;AAAA,SACSC,OAAO,4CAEhB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChDG,aAAa,EAAEC,OAAO;EACtBC,SAAS,EAAE;IACTC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EAED,GAAGd,0BAA0B,CAAC;AAChC,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAMe,YAAY,GAAGV,gBAAgB,CAAC,CAAC,CAAC;EAC7CW,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAET,qBAAqB,CAAC,CAAC;EAE9BU,KAAKA,CAAED,KAAK,EAAE;IACZ,MAAME,OAAO,GAAGhB,OAAO,CAAC,CAAC;IACzB,MAAMQ,SAAS,GAAGP,QAAQ,CAAC,MAAM,CAC/B,GAAGgB,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEL,KAAK,CAACN;IAAU,CAAC,EAAE,CAACY,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,CACpDC,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAMV,KAAK,CAACW,gBAAgB,IAAID,KAAK,GAAGV,KAAK,CAACY,aAAa,CAAC,GAAI,IAAI,CAAC,CAC3F,CAAC;IAEFtB,SAAS,CAAC,MAAM;MACd,MAAMuB,qBAAqB,GAAG7B,iBAAiB,CAAC8B,WAAW,CAACd,KAAK,CAAC;MAElE,OAAAe,YAAA;QAAA;MAAA,IAEM,CAACf,KAAK,CAACR,aAAa,IAAAuB,YAAA;QAAA;QAAA;MAAA,IAKhBb,OAAO,CAACc,MAAM,CAAChB,KAAK,CAACiB,GAAG,CAACC,IAAI,EAAE,cAAc,CAAC,EAAAH,YAAA,eAAAA,YAAA,CAAA9B,IAAA;QAAA;QAAA,QAKrCiB,OAAO,CAACc,MAAM,CAAChB,KAAK,CAACiB,GAAG,CAACC,IAAI,EAAE,YAAY,CAAC;QAAA;MAAA,YAK1D,EAECxB,SAAS,CAACyB,KAAK,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEX,KAAK,KAAAK,YAAA,CAAA/B,iBAAA,EAAAsC,WAAA;QAAA,SAEnBZ;MAAK,GACRG,qBAAqB,QAE7B,CAAC;IAIR,CAAC,CAAC;IAEF,OAAO;MAAEnB;IAAU,CAAC;EACtB;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.v-calendar-day
|
|
2
|
+
position: relative
|
|
3
|
+
display: flex
|
|
4
|
+
flex-direction: column
|
|
5
|
+
|
|
6
|
+
.v-calendar-weekly
|
|
7
|
+
.v-calendar__container
|
|
8
|
+
display: grid
|
|
9
|
+
|
|
10
|
+
&.days__7
|
|
11
|
+
grid-template-columns: repeat(7, 1fr)
|
|
12
|
+
|
|
13
|
+
&.days__6
|
|
14
|
+
grid-template-columns: repeat(6, 1fr)
|
|
15
|
+
|
|
16
|
+
&.days__5
|
|
17
|
+
grid-template-columns: repeat(5, 1fr)
|
|
18
|
+
|
|
19
|
+
&.days__4
|
|
20
|
+
grid-template-columns: repeat(4, 1fr)
|
|
21
|
+
|
|
22
|
+
&.days__3
|
|
23
|
+
grid-template-columns: repeat(3, 1fr)
|
|
24
|
+
|
|
25
|
+
&.days__2
|
|
26
|
+
grid-template-columns: repeat(2, 1fr)
|
|
27
|
+
|
|
28
|
+
&.days__1
|
|
29
|
+
grid-template-columns: repeat(1, 1fr)
|
|
30
|
+
|
|
31
|
+
&.days__0
|
|
32
|
+
grid-template-columns: repeat(1, 1fr)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createVNode as _createVNode } from "vue";
|
|
2
|
+
// Components
|
|
3
|
+
import { VBadge } from "../../components/VBadge/index.mjs";
|
|
4
|
+
import { VChip } from "../../components/VChip/index.mjs"; // Utilities
|
|
5
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
6
|
+
export const makeVCalendarEventProps = propsFactory({
|
|
7
|
+
allDay: Boolean,
|
|
8
|
+
day: Object,
|
|
9
|
+
event: Object
|
|
10
|
+
}, 'VCalendarEvent');
|
|
11
|
+
export const VCalendarEvent = genericComponent()({
|
|
12
|
+
name: 'VCalendarEvent',
|
|
13
|
+
props: makeVCalendarEventProps(),
|
|
14
|
+
setup(props) {
|
|
15
|
+
useRender(() => _createVNode(VChip, {
|
|
16
|
+
"color": props.allDay ? 'primary' : undefined,
|
|
17
|
+
"density": "comfortable",
|
|
18
|
+
"label": props.allDay,
|
|
19
|
+
"width": "100%"
|
|
20
|
+
}, {
|
|
21
|
+
default: () => [_createVNode(VBadge, {
|
|
22
|
+
"inline": true,
|
|
23
|
+
"dot": true,
|
|
24
|
+
"color": props.event?.color
|
|
25
|
+
}, null), props.event?.title]
|
|
26
|
+
}));
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=VCalendarEvent.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VCalendarEvent.mjs","names":["VBadge","VChip","genericComponent","propsFactory","useRender","makeVCalendarEventProps","allDay","Boolean","day","Object","event","VCalendarEvent","name","props","setup","_createVNode","undefined","default","color","title"],"sources":["../../../src/labs/VCalendar/VCalendarEvent.tsx"],"sourcesContent":["// Components\nimport { VBadge } from '@/components/VBadge'\nimport { VChip } from '@/components/VChip'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCalendarEventProps = propsFactory({\n allDay: Boolean,\n day: Object,\n event: Object,\n}, 'VCalendarEvent')\n\nexport const VCalendarEvent = genericComponent()({\n name: 'VCalendarEvent',\n\n props: makeVCalendarEventProps(),\n\n setup (props) {\n useRender(() => (\n <VChip\n color={ props.allDay ? 'primary' : undefined }\n density=\"comfortable\"\n label={ props.allDay }\n width=\"100%\"\n >\n <VBadge\n inline\n dot\n color={ props.event?.color }\n />\n\n { props.event?.title }\n </VChip>\n ))\n\n return {}\n },\n\n})\n\nexport type VCalendarEvent = InstanceType<typeof VCalendarEvent>\n"],"mappings":";AAAA;AAAA,SACSA,MAAM;AAAA,SACNC,KAAK,4CAEd;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClDG,MAAM,EAAEC,OAAO;EACfC,GAAG,EAAEC,MAAM;EACXC,KAAK,EAAED;AACT,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAME,cAAc,GAAGT,gBAAgB,CAAC,CAAC,CAAC;EAC/CU,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAER,uBAAuB,CAAC,CAAC;EAEhCS,KAAKA,CAAED,KAAK,EAAE;IACZT,SAAS,CAAC,MAAAW,YAAA,CAAAd,KAAA;MAAA,SAEEY,KAAK,CAACP,MAAM,GAAG,SAAS,GAAGU,SAAS;MAAA;MAAA,SAEpCH,KAAK,CAACP,MAAM;MAAA;IAAA;MAAAW,OAAA,EAAAA,CAAA,MAAAF,YAAA,CAAAf,MAAA;QAAA;QAAA;QAAA,SAMVa,KAAK,CAACH,KAAK,EAAEQ;MAAK,UAG1BL,KAAK,CAACH,KAAK,EAAES,KAAK;IAAA,EAEvB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AAEF,CAAC,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createVNode as _createVNode } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VCalendarHeader.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
|
|
7
|
+
import { useLocale } from "../../composables/locale.mjs"; // Utilities
|
|
8
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
9
|
+
export const makeVCalendarHeaderProps = propsFactory({
|
|
10
|
+
nextIcon: {
|
|
11
|
+
type: String,
|
|
12
|
+
default: '$next'
|
|
13
|
+
},
|
|
14
|
+
prevIcon: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: '$prev'
|
|
17
|
+
},
|
|
18
|
+
title: String,
|
|
19
|
+
text: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: '$vuetify.calendar.today'
|
|
22
|
+
},
|
|
23
|
+
viewMode: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: 'month'
|
|
26
|
+
}
|
|
27
|
+
}, 'VCalendarHeader');
|
|
28
|
+
export const VCalendarHeader = genericComponent()({
|
|
29
|
+
name: 'VCalendarHeader',
|
|
30
|
+
props: makeVCalendarHeaderProps(),
|
|
31
|
+
emits: {
|
|
32
|
+
'click:next': () => true,
|
|
33
|
+
'click:prev': () => true,
|
|
34
|
+
'click:toToday': () => true
|
|
35
|
+
},
|
|
36
|
+
setup(props, _ref) {
|
|
37
|
+
let {
|
|
38
|
+
emit
|
|
39
|
+
} = _ref;
|
|
40
|
+
const {
|
|
41
|
+
t
|
|
42
|
+
} = useLocale();
|
|
43
|
+
function prev() {
|
|
44
|
+
emit('click:prev');
|
|
45
|
+
}
|
|
46
|
+
function next() {
|
|
47
|
+
emit('click:next');
|
|
48
|
+
}
|
|
49
|
+
function toToday() {
|
|
50
|
+
emit('click:toToday');
|
|
51
|
+
}
|
|
52
|
+
useRender(() => _createVNode("div", {
|
|
53
|
+
"class": "v-calendar-header"
|
|
54
|
+
}, [props.text && _createVNode(VBtn, {
|
|
55
|
+
"key": "today",
|
|
56
|
+
"class": "v-calendar-header__today",
|
|
57
|
+
"text": t(props.text),
|
|
58
|
+
"variant": "outlined",
|
|
59
|
+
"onClick": toToday
|
|
60
|
+
}, null), _createVNode(VBtn, {
|
|
61
|
+
"density": "comfortable",
|
|
62
|
+
"icon": props.prevIcon,
|
|
63
|
+
"variant": "text",
|
|
64
|
+
"onClick": prev
|
|
65
|
+
}, null), _createVNode(VBtn, {
|
|
66
|
+
"density": "comfortable",
|
|
67
|
+
"icon": props.nextIcon,
|
|
68
|
+
"variant": "text",
|
|
69
|
+
"onClick": next
|
|
70
|
+
}, null), _createVNode("div", {
|
|
71
|
+
"class": "v-calendar-header__title"
|
|
72
|
+
}, [props.title])]));
|
|
73
|
+
return {};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=VCalendarHeader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VCalendarHeader.mjs","names":["VBtn","useLocale","genericComponent","propsFactory","useRender","makeVCalendarHeaderProps","nextIcon","type","String","default","prevIcon","title","text","viewMode","VCalendarHeader","name","props","emits","click:next","click:prev","click:toToday","setup","_ref","emit","t","prev","next","toToday","_createVNode"],"sources":["../../../src/labs/VCalendar/VCalendarHeader.tsx"],"sourcesContent":["// Styles\nimport './VCalendarHeader.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVCalendarHeaderProps = propsFactory({\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n title: String,\n text: {\n type: String,\n default: '$vuetify.calendar.today',\n },\n viewMode: {\n type: String as PropType<'month' | 'week' | 'day'>,\n default: 'month',\n },\n}, 'VCalendarHeader')\n\nexport const VCalendarHeader = genericComponent()({\n name: 'VCalendarHeader',\n\n props: makeVCalendarHeaderProps(),\n\n emits: {\n 'click:next': () => true,\n 'click:prev': () => true,\n 'click:toToday': () => true,\n },\n\n setup (props, { emit }) {\n const { t } = useLocale()\n\n function prev () {\n emit('click:prev')\n }\n\n function next () {\n emit('click:next')\n }\n\n function toToday () {\n emit('click:toToday')\n }\n\n useRender(() => (\n <div class=\"v-calendar-header\">\n { props.text && (\n <VBtn\n key=\"today\"\n class=\"v-calendar-header__today\"\n text={ t(props.text) }\n variant=\"outlined\"\n onClick={ toToday }\n />\n )}\n\n <VBtn\n density=\"comfortable\"\n icon={ props.prevIcon }\n variant=\"text\"\n onClick={ prev }\n />\n\n <VBtn\n density=\"comfortable\"\n icon={ props.nextIcon }\n variant=\"text\"\n onClick={ next }\n />\n\n <div class=\"v-calendar-header__title\">{ props.title }</div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VCalendarHeader = InstanceType<typeof VCalendarHeader>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI,2CAEb;AAAA,SACSC,SAAS,wCAElB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRH,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDE,KAAK,EAAEH,MAAM;EACbI,IAAI,EAAE;IACJL,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDI,QAAQ,EAAE;IACRN,IAAI,EAAEC,MAA4C;IAClDC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,MAAMK,eAAe,GAAGZ,gBAAgB,CAAC,CAAC,CAAC;EAChDa,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAEX,wBAAwB,CAAC,CAAC;EAEjCY,KAAK,EAAE;IACL,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,eAAe,EAAEC,CAAA,KAAM;EACzB,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpB,MAAM;MAAEE;IAAE,CAAC,GAAGvB,SAAS,CAAC,CAAC;IAEzB,SAASwB,IAAIA,CAAA,EAAI;MACfF,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASG,IAAIA,CAAA,EAAI;MACfH,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASI,OAAOA,CAAA,EAAI;MAClBJ,IAAI,CAAC,eAAe,CAAC;IACvB;IAEAnB,SAAS,CAAC,MAAAwB,YAAA;MAAA;IAAA,IAEJZ,KAAK,CAACJ,IAAI,IAAAgB,YAAA,CAAA5B,IAAA;MAAA;MAAA;MAAA,QAIDwB,CAAC,CAACR,KAAK,CAACJ,IAAI,CAAC;MAAA;MAAA,WAEVe;IAAO,QAEpB,EAAAC,YAAA,CAAA5B,IAAA;MAAA;MAAA,QAIQgB,KAAK,CAACN,QAAQ;MAAA;MAAA,WAEXe;IAAI,UAAAG,YAAA,CAAA5B,IAAA;MAAA;MAAA,QAKPgB,KAAK,CAACV,QAAQ;MAAA;MAAA,WAEXoB;IAAI,UAAAE,YAAA;MAAA;IAAA,IAGwBZ,KAAK,CAACL,KAAK,IAEtD,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@import './_variables.scss'
|
|
2
|
+
|
|
3
|
+
.v-calendar-header
|
|
4
|
+
align-items: $calendar-header-align
|
|
5
|
+
display: $calendar-header-display
|
|
6
|
+
min-height: $calendar-header-min-height
|
|
7
|
+
|
|
8
|
+
.v-calendar-header__today
|
|
9
|
+
margin-inline-end: $calendar-header-today-margin-end
|
|
10
|
+
|
|
11
|
+
.v-calendar-header__title
|
|
12
|
+
font-size: $calendar-header-title-font-size
|
|
13
|
+
margin-inline-start: $calendar-header-title-margin-start
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
.v-calendar-day__row-with-label {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-columns: 48px 8px 1fr;
|
|
4
|
+
border-right: thin solid #e0e0e0;
|
|
5
|
+
}
|
|
6
|
+
.v-calendar-day__row-with-label .v-calendar-day__row-hairline {
|
|
7
|
+
position: relative;
|
|
8
|
+
border-right: thin solid #e0e0e0;
|
|
9
|
+
}
|
|
10
|
+
.v-calendar-day__row-with-label .v-calendar-day__row-hairline:after {
|
|
11
|
+
content: "";
|
|
12
|
+
border-bottom: thin solid #e0e0e0;
|
|
13
|
+
position: absolute;
|
|
14
|
+
width: 100%;
|
|
15
|
+
margin-top: -1px;
|
|
16
|
+
z-index: 3;
|
|
17
|
+
pointer-events: none;
|
|
18
|
+
}
|
|
19
|
+
.v-calendar-day__row-with-label .v-calendar-day__row-label {
|
|
20
|
+
font-size: 10px;
|
|
21
|
+
text-align: center;
|
|
22
|
+
position: relative;
|
|
23
|
+
top: -8px;
|
|
24
|
+
}
|
|
25
|
+
.v-calendar-day__row-with-label .v-calendar-day__row-content {
|
|
26
|
+
border-bottom: thin solid #e0e0e0;
|
|
27
|
+
}
|
|
28
|
+
.v-calendar-day__row-with-label .v-calendar-day__row-content.v-calendar-day__row-content-through {
|
|
29
|
+
border-bottom: none;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.v-calendar-day__row-without-label {
|
|
33
|
+
display: grid;
|
|
34
|
+
grid-template-columns: 1fr;
|
|
35
|
+
border-right: thin solid #e0e0e0;
|
|
36
|
+
}
|
|
37
|
+
.v-calendar-day__row-without-label .v-calendar-day__row-content {
|
|
38
|
+
border-bottom: thin solid #e0e0e0;
|
|
39
|
+
}
|
|
40
|
+
.v-calendar-day__row-without-label .v-calendar-day__row-content.v-calendar-day__row-content-through {
|
|
41
|
+
border-bottom: none;
|
|
42
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { createVNode as _createVNode } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VCalendarInterval.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { VCalendarIntervalEvent } from "./VCalendarIntervalEvent.mjs"; // Composables
|
|
7
|
+
import { useDate } from "../../composables/date/index.mjs"; // Utilities
|
|
8
|
+
import { computed } from 'vue';
|
|
9
|
+
import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
10
|
+
export const makeVCalendarIntervalProps = propsFactory({
|
|
11
|
+
day: {
|
|
12
|
+
type: Object,
|
|
13
|
+
default: () => ({})
|
|
14
|
+
},
|
|
15
|
+
dayIndex: Number,
|
|
16
|
+
events: Array,
|
|
17
|
+
intervalDivisions: {
|
|
18
|
+
type: Number,
|
|
19
|
+
default: 2
|
|
20
|
+
},
|
|
21
|
+
intervalDuration: {
|
|
22
|
+
type: Number,
|
|
23
|
+
default: 60
|
|
24
|
+
},
|
|
25
|
+
intervalHeight: {
|
|
26
|
+
type: Number,
|
|
27
|
+
default: 48
|
|
28
|
+
},
|
|
29
|
+
intervalFormat: {
|
|
30
|
+
type: [String, Function],
|
|
31
|
+
default: 'fullTime12h'
|
|
32
|
+
},
|
|
33
|
+
intervalStart: {
|
|
34
|
+
type: Number,
|
|
35
|
+
default: 0
|
|
36
|
+
}
|
|
37
|
+
}, 'VCalendarInterval');
|
|
38
|
+
export const VCalendarInterval = genericComponent()({
|
|
39
|
+
name: 'VCalendarInterval',
|
|
40
|
+
props: {
|
|
41
|
+
index: {
|
|
42
|
+
type: Number,
|
|
43
|
+
required: true
|
|
44
|
+
},
|
|
45
|
+
...makeVCalendarIntervalProps()
|
|
46
|
+
},
|
|
47
|
+
setup(props, _ref) {
|
|
48
|
+
let {
|
|
49
|
+
emit,
|
|
50
|
+
slots
|
|
51
|
+
} = _ref;
|
|
52
|
+
const adapter = useDate();
|
|
53
|
+
const interval = computed(() => {
|
|
54
|
+
const start = adapter.addMinutes(adapter.startOfDay(props.day.date), props.intervalDuration * (props.index + props.intervalStart));
|
|
55
|
+
const end = adapter.addMinutes(adapter.startOfDay(props.day.date), props.intervalDuration * (props.index + props.intervalStart + 1) - 1);
|
|
56
|
+
return {
|
|
57
|
+
...props.day,
|
|
58
|
+
label: adapter.format(start, 'fullTime24h'),
|
|
59
|
+
start,
|
|
60
|
+
end,
|
|
61
|
+
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 => {
|
|
62
|
+
return {
|
|
63
|
+
...e,
|
|
64
|
+
first: adapter.isEqual(start, e.start) || adapter.isWithinRange(e.start, [start, end]),
|
|
65
|
+
last: adapter.isEqual(end, e.end) || adapter.isWithinRange(e.end, [start, end])
|
|
66
|
+
};
|
|
67
|
+
}) : []
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
useRender(() => {
|
|
71
|
+
return props.dayIndex === 0 ? _createVNode("div", {
|
|
72
|
+
"class": "v-calendar-day__row-with-label",
|
|
73
|
+
"style": `height: ${convertToUnit(props.intervalHeight)}`
|
|
74
|
+
}, [_createVNode("div", {
|
|
75
|
+
"class": "v-calendar-day__row-label"
|
|
76
|
+
}, [_createVNode("slot", {
|
|
77
|
+
"name": "intervalFormat",
|
|
78
|
+
"interval": interval.value
|
|
79
|
+
}, [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : ''])]), _createVNode("div", {
|
|
80
|
+
"class": "v-calendar-day__row-hairline"
|
|
81
|
+
}, null), _createVNode("div", {
|
|
82
|
+
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
|
83
|
+
}, [_createVNode("slot", {
|
|
84
|
+
"name": "intervalBody",
|
|
85
|
+
"interval": interval.value
|
|
86
|
+
}, [interval.value.events?.map(event => _createVNode(VCalendarIntervalEvent, {
|
|
87
|
+
"event": event,
|
|
88
|
+
"interval": interval.value,
|
|
89
|
+
"intervalDivisions": props.intervalDivisions,
|
|
90
|
+
"intervalDuration": props.intervalDuration,
|
|
91
|
+
"intervalHeight": props.intervalHeight
|
|
92
|
+
}, null))])])]) : _createVNode("div", {
|
|
93
|
+
"class": "v-calendar-day__row-without-label",
|
|
94
|
+
"style": `height: ${convertToUnit(props.intervalHeight)}`
|
|
95
|
+
}, [_createVNode("div", {
|
|
96
|
+
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
|
97
|
+
}, [_createVNode("slot", {
|
|
98
|
+
"name": "intervalBody",
|
|
99
|
+
"interval": interval.value
|
|
100
|
+
}, [interval.value.events?.filter(event => !event.allDay).map(event => _createVNode(VCalendarIntervalEvent, {
|
|
101
|
+
"event": event,
|
|
102
|
+
"interval": interval.value,
|
|
103
|
+
"intervalDivisions": props.intervalDivisions,
|
|
104
|
+
"intervalDuration": props.intervalDuration,
|
|
105
|
+
"intervalHeight": props.intervalHeight
|
|
106
|
+
}, null))])])]);
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
interval
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=VCalendarInterval.mjs.map
|