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.
Files changed (292) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +260 -0
  3. package/dist/json/importMap-labs.json +24 -0
  4. package/dist/json/importMap.json +122 -122
  5. package/dist/json/tags.json +95 -0
  6. package/dist/json/web-types.json +857 -4
  7. package/dist/vuetify-labs.css +2977 -2604
  8. package/dist/vuetify-labs.d.ts +1770 -71
  9. package/dist/vuetify-labs.esm.js +784 -140
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +784 -140
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +689 -686
  14. package/dist/vuetify.d.ts +221 -106
  15. package/dist/vuetify.esm.js +301 -140
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +301 -140
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +214 -195
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +9 -0
  23. package/lib/blueprints/md1.d.mts +9 -0
  24. package/lib/blueprints/md2.d.mts +9 -0
  25. package/lib/blueprints/md3.d.mts +9 -0
  26. package/lib/components/VAlert/VAlert.css +2 -2
  27. package/lib/components/VAppBar/VAppBar.css +1 -1
  28. package/lib/components/VAppBar/VAppBar.mjs +0 -1
  29. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  30. package/lib/components/VAutocomplete/VAutocomplete.css +2 -2
  31. package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -2
  32. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  33. package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
  34. package/lib/components/VAutocomplete/_variables.scss +1 -0
  35. package/lib/components/VAvatar/VAvatar.css +2 -2
  36. package/lib/components/VBanner/VBanner.css +1 -1
  37. package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
  38. package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
  39. package/lib/components/VBtn/VBtn.css +4 -4
  40. package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
  41. package/lib/components/VCard/VCard.css +5 -5
  42. package/lib/components/VChip/VChip.css +2 -2
  43. package/lib/components/VChip/VChip.mjs +2 -1
  44. package/lib/components/VChip/VChip.mjs.map +1 -1
  45. package/lib/components/VColorPicker/VColorPicker.css +3 -3
  46. package/lib/components/VCombobox/VCombobox.css +2 -2
  47. package/lib/components/VCombobox/VCombobox.mjs +15 -5
  48. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  49. package/lib/components/VCombobox/VCombobox.sass +2 -2
  50. package/lib/components/VCombobox/_variables.scss +2 -0
  51. package/lib/components/VDataIterator/index.d.mts +1 -1
  52. package/lib/components/VDataTable/VDataTable.css +1 -1
  53. package/lib/components/VDataTable/VDataTable.sass +1 -1
  54. package/lib/components/VDataTable/VDataTableFooter.mjs +33 -30
  55. package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
  56. package/lib/components/VDataTable/VDataTableHeaders.mjs +2 -1
  57. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  58. package/lib/components/VDataTable/index.d.mts +1 -1
  59. package/lib/components/VDatePicker/VDatePicker.mjs +4 -1
  60. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  61. package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
  62. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  63. package/lib/components/VDatePicker/index.d.mts +82 -0
  64. package/lib/components/VDialog/VDialog.css +1 -1
  65. package/lib/components/VDialog/index.d.mts +3 -3
  66. package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -1
  67. package/lib/components/VField/VField.css +2 -2
  68. package/lib/components/VFileInput/index.d.mts +3 -3
  69. package/lib/components/VFooter/VFooter.css +1 -1
  70. package/lib/components/VForm/index.d.mts +21 -21
  71. package/lib/components/VImg/index.d.mts +6 -6
  72. package/lib/components/VKbd/VKbd.css +1 -1
  73. package/lib/components/VList/VList.css +1 -1
  74. package/lib/components/VList/VList.mjs +7 -2
  75. package/lib/components/VList/VList.mjs.map +1 -1
  76. package/lib/components/VList/VListItem.css +5 -2
  77. package/lib/components/VList/VListItem.sass +3 -0
  78. package/lib/components/VList/_variables.scss +1 -0
  79. package/lib/components/VMenu/VMenu.css +1 -1
  80. package/lib/components/VMenu/index.d.mts +6 -6
  81. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -2
  82. package/lib/components/VNavigationDrawer/index.d.mts +3 -3
  83. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +0 -1
  84. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  85. package/lib/components/VOverlay/VOverlay.mjs +2 -2
  86. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  87. package/lib/components/VOverlay/locationStrategies.mjs +0 -1
  88. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  89. package/lib/components/VSelect/VSelect.css +1 -1
  90. package/lib/components/VSelect/VSelect.mjs +15 -3
  91. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  92. package/lib/components/VSelectionControl/index.d.mts +3 -3
  93. package/lib/components/VSheet/VSheet.css +1 -1
  94. package/lib/components/VSlideGroup/index.d.mts +3 -3
  95. package/lib/components/VSnackbar/VSnackbar.css +2 -2
  96. package/lib/components/VSnackbar/index.d.mts +3 -3
  97. package/lib/components/VStepper/VStepper.css +3 -3
  98. package/lib/components/VSwitch/VSwitch.css +2 -2
  99. package/lib/components/VSystemBar/VSystemBar.css +1 -1
  100. package/lib/components/VTabs/VTab.css +2 -2
  101. package/lib/components/VTabs/VTab.sass +2 -2
  102. package/lib/components/VTextField/index.d.mts +6 -6
  103. package/lib/components/VTextarea/index.d.mts +3 -3
  104. package/lib/components/VTimeline/VTimeline.css +1 -1
  105. package/lib/components/VToolbar/VToolbar.css +2 -2
  106. package/lib/components/VTooltip/index.d.mts +3 -3
  107. package/lib/components/VTreeview/VTreeview.mjs +0 -1
  108. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  109. package/lib/components/VTreeview/VTreeviewNode.mjs +0 -1
  110. package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
  111. package/lib/components/VValidation/index.d.mts +6 -6
  112. package/lib/components/VWindow/VWindowItem.mjs +0 -1
  113. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  114. package/lib/components/index.d.mts +152 -70
  115. package/lib/composables/calendar.mjs +26 -5
  116. package/lib/composables/calendar.mjs.map +1 -1
  117. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  118. package/lib/composables/date/adapters/vuetify.mjs +89 -2
  119. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  120. package/lib/composables/delay.mjs +19 -18
  121. package/lib/composables/delay.mjs.map +1 -1
  122. package/lib/composables/density.mjs +1 -0
  123. package/lib/composables/density.mjs.map +1 -1
  124. package/lib/entry-bundler.mjs +1 -1
  125. package/lib/entry-bundler.mjs.map +1 -1
  126. package/lib/framework.mjs +1 -1
  127. package/lib/framework.mjs.map +1 -1
  128. package/lib/index.d.mts +69 -36
  129. package/lib/labs/VCalendar/VCalendar.css +220 -0
  130. package/lib/labs/VCalendar/VCalendar.mjs +124 -0
  131. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -0
  132. package/lib/labs/VCalendar/VCalendar.sass +168 -0
  133. package/lib/labs/VCalendar/VCalendarDay.css +33 -0
  134. package/lib/labs/VCalendar/VCalendarDay.mjs +47 -0
  135. package/lib/labs/VCalendar/VCalendarDay.mjs.map +1 -0
  136. package/lib/labs/VCalendar/VCalendarDay.sass +32 -0
  137. package/lib/labs/VCalendar/VCalendarEvent.mjs +30 -0
  138. package/lib/labs/VCalendar/VCalendarEvent.mjs.map +1 -0
  139. package/lib/labs/VCalendar/VCalendarHeader.css +14 -0
  140. package/lib/labs/VCalendar/VCalendarHeader.mjs +76 -0
  141. package/lib/labs/VCalendar/VCalendarHeader.mjs.map +1 -0
  142. package/lib/labs/VCalendar/VCalendarHeader.sass +13 -0
  143. package/lib/labs/VCalendar/VCalendarInterval.css +42 -0
  144. package/lib/labs/VCalendar/VCalendarInterval.mjs +113 -0
  145. package/lib/labs/VCalendar/VCalendarInterval.mjs.map +1 -0
  146. package/lib/labs/VCalendar/VCalendarInterval.sass +39 -0
  147. package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs +76 -0
  148. package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -0
  149. package/lib/labs/VCalendar/VCalendarMonthDay.css +61 -0
  150. package/lib/labs/VCalendar/VCalendarMonthDay.mjs +64 -0
  151. package/lib/labs/VCalendar/VCalendarMonthDay.mjs.map +1 -0
  152. package/lib/labs/VCalendar/VCalendarMonthDay.sass +65 -0
  153. package/lib/{components → labs}/VCalendar/_variables.scss +14 -6
  154. package/lib/labs/VCalendar/index.d.mts +1592 -0
  155. package/lib/labs/VCalendar/index.mjs +7 -0
  156. package/lib/labs/VCalendar/index.mjs.map +1 -0
  157. package/lib/labs/VPicker/VPicker.css +1 -1
  158. package/lib/labs/components.d.mts +1586 -2
  159. package/lib/labs/components.mjs +1 -0
  160. package/lib/labs/components.mjs.map +1 -1
  161. package/lib/locale/af.mjs +2 -1
  162. package/lib/locale/af.mjs.map +1 -1
  163. package/lib/locale/ar.mjs +2 -1
  164. package/lib/locale/ar.mjs.map +1 -1
  165. package/lib/locale/az.mjs +2 -1
  166. package/lib/locale/az.mjs.map +1 -1
  167. package/lib/locale/bg.mjs +2 -1
  168. package/lib/locale/bg.mjs.map +1 -1
  169. package/lib/locale/ca.mjs +2 -1
  170. package/lib/locale/ca.mjs.map +1 -1
  171. package/lib/locale/ckb.mjs +2 -1
  172. package/lib/locale/ckb.mjs.map +1 -1
  173. package/lib/locale/cs.mjs +3 -2
  174. package/lib/locale/cs.mjs.map +1 -1
  175. package/lib/locale/da.mjs +2 -1
  176. package/lib/locale/da.mjs.map +1 -1
  177. package/lib/locale/de.mjs +2 -1
  178. package/lib/locale/de.mjs.map +1 -1
  179. package/lib/locale/el.mjs +2 -1
  180. package/lib/locale/el.mjs.map +1 -1
  181. package/lib/locale/en.mjs +2 -1
  182. package/lib/locale/en.mjs.map +1 -1
  183. package/lib/locale/es.mjs +2 -1
  184. package/lib/locale/es.mjs.map +1 -1
  185. package/lib/locale/et.mjs +2 -1
  186. package/lib/locale/et.mjs.map +1 -1
  187. package/lib/locale/fa.mjs +2 -1
  188. package/lib/locale/fa.mjs.map +1 -1
  189. package/lib/locale/fi.mjs +2 -1
  190. package/lib/locale/fi.mjs.map +1 -1
  191. package/lib/locale/fr.mjs +2 -1
  192. package/lib/locale/fr.mjs.map +1 -1
  193. package/lib/locale/he.mjs +2 -1
  194. package/lib/locale/he.mjs.map +1 -1
  195. package/lib/locale/hr.mjs +2 -1
  196. package/lib/locale/hr.mjs.map +1 -1
  197. package/lib/locale/hu.mjs +2 -1
  198. package/lib/locale/hu.mjs.map +1 -1
  199. package/lib/locale/id.mjs +2 -1
  200. package/lib/locale/id.mjs.map +1 -1
  201. package/lib/locale/index.d.mts +42 -0
  202. package/lib/locale/it.mjs +2 -1
  203. package/lib/locale/it.mjs.map +1 -1
  204. package/lib/locale/ja.mjs +2 -1
  205. package/lib/locale/ja.mjs.map +1 -1
  206. package/lib/locale/ko.mjs +2 -1
  207. package/lib/locale/ko.mjs.map +1 -1
  208. package/lib/locale/lt.mjs +2 -1
  209. package/lib/locale/lt.mjs.map +1 -1
  210. package/lib/locale/lv.mjs +2 -1
  211. package/lib/locale/lv.mjs.map +1 -1
  212. package/lib/locale/nl.mjs +3 -2
  213. package/lib/locale/nl.mjs.map +1 -1
  214. package/lib/locale/no.mjs +2 -1
  215. package/lib/locale/no.mjs.map +1 -1
  216. package/lib/locale/pl.mjs +2 -1
  217. package/lib/locale/pl.mjs.map +1 -1
  218. package/lib/locale/pt.mjs +19 -18
  219. package/lib/locale/pt.mjs.map +1 -1
  220. package/lib/locale/ro.mjs +2 -1
  221. package/lib/locale/ro.mjs.map +1 -1
  222. package/lib/locale/ru.mjs +2 -1
  223. package/lib/locale/ru.mjs.map +1 -1
  224. package/lib/locale/sk.mjs +2 -1
  225. package/lib/locale/sk.mjs.map +1 -1
  226. package/lib/locale/sl.mjs +2 -1
  227. package/lib/locale/sl.mjs.map +1 -1
  228. package/lib/locale/sr-Cyrl.mjs +2 -1
  229. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  230. package/lib/locale/sr-Latn.mjs +2 -1
  231. package/lib/locale/sr-Latn.mjs.map +1 -1
  232. package/lib/locale/sv.mjs +2 -1
  233. package/lib/locale/sv.mjs.map +1 -1
  234. package/lib/locale/th.mjs +2 -1
  235. package/lib/locale/th.mjs.map +1 -1
  236. package/lib/locale/tr.mjs +2 -1
  237. package/lib/locale/tr.mjs.map +1 -1
  238. package/lib/locale/uk.mjs +2 -1
  239. package/lib/locale/uk.mjs.map +1 -1
  240. package/lib/locale/vi.mjs +2 -1
  241. package/lib/locale/vi.mjs.map +1 -1
  242. package/lib/locale/zh-Hans.mjs +2 -1
  243. package/lib/locale/zh-Hans.mjs.map +1 -1
  244. package/lib/locale/zh-Hant.mjs +2 -1
  245. package/lib/locale/zh-Hant.mjs.map +1 -1
  246. package/lib/styles/main.css +25 -25
  247. package/lib/styles/settings/_elevations.scss +1 -1
  248. package/lib/util/helpers.mjs +14 -0
  249. package/lib/util/helpers.mjs.map +1 -1
  250. package/package.json +12 -12
  251. package/lib/components/VCalendar/VCalendar.mjs +0 -352
  252. package/lib/components/VCalendar/VCalendar.mjs.map +0 -1
  253. package/lib/components/VCalendar/VCalendarCategory.mjs +0 -124
  254. package/lib/components/VCalendar/VCalendarCategory.mjs.map +0 -1
  255. package/lib/components/VCalendar/VCalendarCategory.sass +0 -100
  256. package/lib/components/VCalendar/VCalendarDaily.mjs +0 -239
  257. package/lib/components/VCalendar/VCalendarDaily.mjs.map +0 -1
  258. package/lib/components/VCalendar/VCalendarDaily.sass +0 -140
  259. package/lib/components/VCalendar/VCalendarMonthly.mjs +0 -25
  260. package/lib/components/VCalendar/VCalendarMonthly.mjs.map +0 -1
  261. package/lib/components/VCalendar/VCalendarWeekly.mjs +0 -193
  262. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +0 -1
  263. package/lib/components/VCalendar/VCalendarWeekly.sass +0 -118
  264. package/lib/components/VCalendar/index.mjs +0 -16
  265. package/lib/components/VCalendar/index.mjs.map +0 -1
  266. package/lib/components/VCalendar/mixins/calendar-base.mjs +0 -89
  267. package/lib/components/VCalendar/mixins/calendar-base.mjs.map +0 -1
  268. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +0 -416
  269. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +0 -1
  270. package/lib/components/VCalendar/mixins/calendar-with-events.sass +0 -67
  271. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +0 -135
  272. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +0 -1
  273. package/lib/components/VCalendar/mixins/mouse.mjs +0 -85
  274. package/lib/components/VCalendar/mixins/mouse.mjs.map +0 -1
  275. package/lib/components/VCalendar/mixins/times.mjs +0 -65
  276. package/lib/components/VCalendar/mixins/times.mjs.map +0 -1
  277. package/lib/components/VCalendar/modes/column.mjs +0 -18
  278. package/lib/components/VCalendar/modes/column.mjs.map +0 -1
  279. package/lib/components/VCalendar/modes/common.mjs +0 -112
  280. package/lib/components/VCalendar/modes/common.mjs.map +0 -1
  281. package/lib/components/VCalendar/modes/index.mjs +0 -9
  282. package/lib/components/VCalendar/modes/index.mjs.map +0 -1
  283. package/lib/components/VCalendar/modes/stack.mjs +0 -204
  284. package/lib/components/VCalendar/modes/stack.mjs.map +0 -1
  285. package/lib/components/VCalendar/util/events.mjs +0 -44
  286. package/lib/components/VCalendar/util/events.mjs.map +0 -1
  287. package/lib/components/VCalendar/util/parser.mjs +0 -21
  288. package/lib/components/VCalendar/util/parser.mjs.map +0 -1
  289. package/lib/components/VCalendar/util/props.mjs +0 -248
  290. package/lib/components/VCalendar/util/props.mjs.map +0 -1
  291. package/lib/components/VCalendar/util/timestamp.mjs +0 -407
  292. 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":";AAAA;AACA;;AAEA;AAAA,SACSA,qBAAqB,EAAEC,YAAY;AAAA,SACnCC,wBAAwB,EAAEC,eAAe;AAAA,SACzCC,iBAAiB,mCAE1B;AAAA,SACSC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,OAAO,2CAEhB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,UAAU,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAE9D,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,UAAU,EAAEC,OAAO;EACnBC,cAAc,EAAED,OAAO;EAEvB,GAAGV,iBAAiB,CAAC,CAAC;EACtB,GAAGL,qBAAqB,CAAC,CAAC;EAC1B,GAAGE,wBAAwB,CAAC;AAC9B,CAAC,EAAE,WAAW,CAAC;AAMf,OAAO,MAAMe,SAAS,GAAGP,gBAAgB,CAAiB,CAAC,CAAC;EAC1DQ,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEN,kBAAkB,CAAC,CAAC;EAE3BO,KAAK,EAAE;IACLC,IAAI,EAAE,IAAI;IACVC,IAAI,EAAE,IAAI;IACV,mBAAmB,EAAE;EACvB,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,OAAO,GAAGpB,OAAO,CAAC,CAAC;IAEzB,MAAM;MAAEqB,WAAW;MAAEC,UAAU;MAAEC,OAAO;MAAEC,KAAK;MAAEC;IAAY,CAAC,GAAG1B,WAAW,CAACa,KAAY,CAAC;IAE1F,MAAMc,QAAQ,GAAGN,OAAO,CAACO,WAAW,CAAC,CAAC;IAEtC,SAASC,WAAWA,CAAA,EAAI;MACtB,IAAIhB,KAAK,CAACiB,QAAQ,KAAK,OAAO,EAAE;QAC9BL,KAAK,CAACM,KAAK,GAAG,CAACV,OAAO,CAACW,SAAS,CAACP,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACtD;MACA,IAAIlB,KAAK,CAACiB,QAAQ,KAAK,MAAM,EAAE;QAC7BL,KAAK,CAACM,KAAK,GAAG,CAACV,OAAO,CAACY,OAAO,CAACR,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACpD;MACA,IAAIlB,KAAK,CAACiB,QAAQ,KAAK,KAAK,EAAE;QAC5BL,KAAK,CAACM,KAAK,GAAG,CAACV,OAAO,CAACY,OAAO,CAACR,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACpD;IACF;IAEA,SAASG,WAAWA,CAAA,EAAI;MACtB,IAAIrB,KAAK,CAACiB,QAAQ,KAAK,OAAO,EAAE;QAC9BL,KAAK,CAACM,KAAK,GAAG,CAACV,OAAO,CAACW,SAAS,CAACP,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACvD;MACA,IAAIlB,KAAK,CAACiB,QAAQ,KAAK,MAAM,EAAE;QAC7BL,KAAK,CAACM,KAAK,GAAG,CAACV,OAAO,CAACY,OAAO,CAACR,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACrD;MACA,IAAIlB,KAAK,CAACiB,QAAQ,KAAK,KAAK,EAAE;QAC5BL,KAAK,CAACM,KAAK,GAAG,CAACV,OAAO,CAACY,OAAO,CAACR,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACrD;IACF;IAEA,SAASI,YAAYA,CAAA,EAAI;MACvBV,KAAK,CAACM,KAAK,GAAG,CAAC,IAAIK,IAAI,CAAC,CAAC,CAAC;IAC5B;IAEA,MAAMC,KAAK,GAAGnC,QAAQ,CAAC,MAAM;MAC3B,OAAOmB,OAAO,CAACiB,MAAM,CAACb,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;IACvD,CAAC,CAAC;IAEFzB,SAAS,CAAC,MAAM;MACd,MAAMiC,gBAAgB,GAAG5C,YAAY,CAAC6C,WAAW,CAAC3B,KAAK,CAAC;MACxD,MAAM4B,mBAAmB,GAAG5C,eAAe,CAAC2C,WAAW,CAAC3B,KAAK,CAAC;MAE9D,OAAA6B,YAAA;QAAA,SACc,CACV,YAAY,EACZ;UACE,oBAAoB,EAAE7B,KAAK,CAACiB,QAAQ,KAAK,OAAO;UAChD,mBAAmB,EAAEjB,KAAK,CAACiB,QAAQ,KAAK,MAAM;UAC9C,gBAAgB,EAAEjB,KAAK,CAACiB,QAAQ,KAAK;QACvC,CAAC;MACF,IAAAY,YAAA,eAGK,CAAC7B,KAAK,CAACL,UAAU,KACjB,CAACY,KAAK,CAACuB,MAAM,GAAAD,YAAA,CAAA7C,eAAA,EAAA+C,WAAA;QAAA;MAAA,GAGJH,mBAAmB;QAAA,SAChBJ,KAAK,CAACN,KAAK;QAAA,gBACJF,WAAW;QAAA,gBACXK,WAAW;QAAA,mBACRC;MAAY,YAGhCf,KAAK,CAACuB,MAAM,CAAC;QAAEN,KAAK,EAAEA,KAAK,CAACN;MAAM,CAAC,CACpC,CACF,IAAAW,YAAA;QAAA,SAGS,CAAC,uBAAuB,EAAG,SAAQ7B,KAAK,CAACgC,QAAQ,CAACC,MAAO,EAAC;MAAC,IACnEjC,KAAK,CAACiB,QAAQ,KAAK,OAAO,IAAI,CAACjB,KAAK,CAACkC,aAAa,IAAAL,YAAA;QAAA,SAG9C,CACE,yBAAyB,EACxB,SAAQ7B,KAAK,CAACgC,QAAQ,CAACC,MAAO,EAAC,EAChC,IAAI,CAACjC,KAAK,CAACH,cAAc,GAAG,CAAC,qCAAqC,CAAC,GAAG,EAAE,CAAC,CAC1E;QAAA;MAAA,IAID,CAACG,KAAK,CAACH,cAAc,GAAAgC,YAAA;QAAA;QAAA;MAAA,WAA8E,EAAE,EAErG7B,KAAK,CAACgC,QAAQ,CAACG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC,CAACC,GAAG,CAACC,OAAO,IAAAV,YAAA;QAAA,SAChC,kCAAiC,CAAC7B,KAAK,CAACH,cAAc,GAAG,kBAAkB,GAAG,EAAG;MAAC,IAC5FiB,QAAQ,CAACyB,OAAO,CAAC,EAEtB,CAAC,EAGP,EAECvC,KAAK,CAACiB,QAAQ,KAAK,OAAO,IAAAY,YAAA;QAAA;QAAA,SAItB,CACE,wBAAwB,EACvB,OAAM,CAAC7B,KAAK,CAACH,cAAc,GAAG,mBAAmB,GAAG,EAAG,KAAIG,KAAK,CAACgC,QAAQ,CAACC,MAAO,EAAC,EACnF,IAAI,CAACjC,KAAK,CAACH,cAAc,GAAG,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC;MACpE,IAGDP,UAAU,CAACmB,WAAW,CAACS,KAAK,EAAElB,KAAK,CAACgC,QAAQ,CAACC,MAAM,CAAC,CACnDK,GAAG,CAAC,CAACE,IAAI,EAAEC,EAAE,KACZ,CACE,CAACzC,KAAK,CAACH,cAAc,GAAAgC,YAAA;QAAA;MAAA,IAA+ChB,WAAW,CAACK,KAAK,CAACuB,EAAE,CAAC,KAAW,EAAE,EACtGD,IAAI,CAACF,GAAG,CAACI,GAAG,IAAAb,YAAA,CAAA5C,iBAAA;QAAA,SAEAuB,OAAO,CAACmC,SAAS,CAAC,IAAIpB,IAAI,CAAC,CAAC,EAAEmB,GAAG,CAACE,IAAI,CAAC,GAAG,SAAS,GAAGC,SAAS;QAAA,OACjEH,GAAG;QAAA,SACDA,GAAG,GAAGlC,OAAO,CAACiB,MAAM,CAACiB,GAAG,CAACE,IAAI,EAAE,YAAY,CAAC,GAAG,KAAK;QAAA,UACnD5C,KAAK,CAAC8C,MAAM,EAAEC,MAAM,CAACC,CAAC,IAAIxC,OAAO,CAACmC,SAAS,CAACD,GAAG,CAACE,IAAI,EAAEI,CAAC,CAACC,KAAK,CAAC,IAAIzC,OAAO,CAACmC,SAAS,CAACD,GAAG,CAACE,IAAI,EAAEI,CAAC,CAACE,GAAG,CAAC;MAAC,QAEjH,CAAC,CAEL,CAAC,EAEP,EAEClD,KAAK,CAACiB,QAAQ,KAAK,MAAM,IACzBP,UAAU,CAACQ,KAAK,CAACoB,GAAG,CAAC,CAACI,GAAG,EAAES,CAAC,KAAAtB,YAAA,CAAA/C,YAAA,EAAAiD,WAAA,CAEnBL,gBAAgB;QAAA,OACfgB,GAAG;QAAA,YACES,CAAC;QAAA,UACHnD,KAAK,CAAC8C,MAAM,EAAEC,MAAM,CAACC,CAAC,IAAIxC,OAAO,CAACmC,SAAS,CAACK,CAAC,CAACC,KAAK,EAAEP,GAAG,CAACE,IAAI,CAAC,IAAIpC,OAAO,CAACmC,SAAS,CAACK,CAAC,CAACE,GAAG,EAAER,GAAG,CAACE,IAAI,CAAC;MAAC,SAEjH,CACF,EAEC5C,KAAK,CAACiB,QAAQ,KAAK,KAAK,IAAAY,YAAA,CAAA/C,YAAA,EAAAiD,WAAA,CAEjBL,gBAAgB;QAAA,OACff,OAAO,CAAC,CAACC,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,CAAS,EAAEV,OAAO,CAACoC,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC;QAAA,UAEhE5C,KAAK,CAAC8C,MAAM,EAAEC,MAAM,CAACC,CAAC,IACpBxC,OAAO,CAACmC,SAAS,CAACK,CAAC,CAACC,KAAK,EAAEtC,OAAO,CAAC,CAACC,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,CAAS,EAAEV,OAAO,CAACoC,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,IAC7FpC,OAAO,CAACmC,SAAS,CAACK,CAAC,CAACE,GAAG,EAAEvC,OAAO,CAAC,CAACC,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,CAAS,EAAEV,OAAO,CAACoC,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAC5F;MAAC,SAGN;IAIT,CAAC,CAAC;IAEF,OAAO;MAAEnC,WAAW;MAAEC,UAAU;MAAEC;IAAQ,CAAC;EAC7C;AACF,CAAC,CAAC"}
@@ -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,14 @@
1
+ .v-calendar-header {
2
+ align-items: center;
3
+ display: flex;
4
+ min-height: 64px;
5
+ }
6
+
7
+ .v-calendar-header__today {
8
+ margin-inline-end: 24px;
9
+ }
10
+
11
+ .v-calendar-header__title {
12
+ font-size: 1.5rem;
13
+ margin-inline-start: 24px;
14
+ }
@@ -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