@vuetify/nightly 3.8.2-master.2025-04-17 → 3.8.2-master.2025-04-22

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 (289) hide show
  1. package/CHANGELOG.md +24 -3
  2. package/dist/json/attributes.json +2022 -2022
  3. package/dist/json/importMap-labs.json +36 -36
  4. package/dist/json/importMap.json +170 -170
  5. package/dist/json/web-types.json +4067 -3809
  6. package/dist/vuetify-labs.cjs +631 -514
  7. package/dist/vuetify-labs.css +5232 -5223
  8. package/dist/vuetify-labs.d.ts +1855 -915
  9. package/dist/vuetify-labs.esm.js +632 -515
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +631 -514
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +402 -391
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +2556 -2556
  16. package/dist/vuetify.d.ts +168 -166
  17. package/dist/vuetify.esm.js +403 -392
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +402 -391
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +893 -885
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAlert/VAlert.js +8 -9
  25. package/lib/components/VAlert/VAlert.js.map +1 -1
  26. package/lib/components/VAppBar/VAppBar.js +4 -4
  27. package/lib/components/VAppBar/VAppBar.js.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.js +1 -2
  29. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  30. package/lib/components/VBadge/VBadge.js +2 -3
  31. package/lib/components/VBadge/VBadge.js.map +1 -1
  32. package/lib/components/VBanner/VBanner.js +3 -3
  33. package/lib/components/VBanner/VBanner.js.map +1 -1
  34. package/lib/components/VBottomNavigation/VBottomNavigation.js +8 -8
  35. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  36. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +6 -6
  37. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  38. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +1 -2
  39. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  40. package/lib/components/VBtn/VBtn.js +3 -3
  41. package/lib/components/VBtn/VBtn.js.map +1 -1
  42. package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
  43. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  44. package/lib/components/VCard/VCard.js +7 -8
  45. package/lib/components/VCard/VCard.js.map +1 -1
  46. package/lib/components/VCheckbox/VCheckbox.js +2 -3
  47. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  48. package/lib/components/VCheckbox/VCheckboxBtn.js +3 -3
  49. package/lib/components/VCheckbox/VCheckboxBtn.js.map +1 -1
  50. package/lib/components/VChip/VChip.js +8 -9
  51. package/lib/components/VChip/VChip.js.map +1 -1
  52. package/lib/components/VChipGroup/VChipGroup.js +5 -5
  53. package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
  54. package/lib/components/VCombobox/VCombobox.js +3 -4
  55. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  56. package/lib/components/VCounter/VCounter.js +2 -2
  57. package/lib/components/VCounter/VCounter.js.map +1 -1
  58. package/lib/components/VDataIterator/VDataIterator.js +2 -2
  59. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  60. package/lib/components/VDataTable/VDataTable.js +7 -7
  61. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  62. package/lib/components/VDataTable/VDataTableHeaders.js +1 -1
  63. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  64. package/lib/components/VDataTable/VDataTableServer.js +7 -7
  65. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  66. package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
  67. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  68. package/lib/components/VDataTable/composables/expand.d.ts +1 -1
  69. package/lib/components/VDataTable/composables/expand.js +1 -1
  70. package/lib/components/VDataTable/composables/expand.js.map +1 -1
  71. package/lib/components/VDataTable/composables/options.js +8 -8
  72. package/lib/components/VDataTable/composables/options.js.map +1 -1
  73. package/lib/components/VDataTable/composables/select.d.ts +2 -2
  74. package/lib/components/VDataTable/composables/select.js +2 -2
  75. package/lib/components/VDataTable/composables/select.js.map +1 -1
  76. package/lib/components/VDataTable/composables/sort.d.ts +2 -2
  77. package/lib/components/VDataTable/composables/sort.js +2 -2
  78. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  79. package/lib/components/VDatePicker/VDatePicker.js +4 -4
  80. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  81. package/lib/components/VDatePicker/VDatePickerHeader.js +1 -1
  82. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  83. package/lib/components/VDatePicker/VDatePickerMonth.js +2 -2
  84. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  85. package/lib/components/VDialog/VDialog.d.ts +9 -9
  86. package/lib/components/VDivider/VDivider.js +2 -2
  87. package/lib/components/VDivider/VDivider.js.map +1 -1
  88. package/lib/components/VEmptyState/VEmptyState.js +1 -2
  89. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  90. package/lib/components/VExpansionPanel/VExpansionPanel.js +3 -3
  91. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  92. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +3 -3
  93. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
  94. package/lib/components/VExpansionPanel/VExpansionPanels.js +14 -14
  95. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  96. package/lib/components/VFab/VFab.js +2 -2
  97. package/lib/components/VFab/VFab.js.map +1 -1
  98. package/lib/components/VField/VField.js +5 -5
  99. package/lib/components/VField/VField.js.map +1 -1
  100. package/lib/components/VFileInput/VFileInput.js +2 -2
  101. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  102. package/lib/components/VFooter/VFooter.js +4 -4
  103. package/lib/components/VFooter/VFooter.js.map +1 -1
  104. package/lib/components/VForm/VForm.d.ts +40 -40
  105. package/lib/components/VIcon/VIcon.js +4 -4
  106. package/lib/components/VIcon/VIcon.js.map +1 -1
  107. package/lib/components/VImg/VImg.js +2 -2
  108. package/lib/components/VImg/VImg.js.map +1 -1
  109. package/lib/components/VInput/VInput.js +3 -3
  110. package/lib/components/VInput/VInput.js.map +1 -1
  111. package/lib/components/VLayout/VLayoutItem.js +5 -5
  112. package/lib/components/VLayout/VLayoutItem.js.map +1 -1
  113. package/lib/components/VList/VList.js +14 -14
  114. package/lib/components/VList/VList.js.map +1 -1
  115. package/lib/components/VList/VListGroup.js +2 -2
  116. package/lib/components/VList/VListGroup.js.map +1 -1
  117. package/lib/components/VList/VListItem.d.ts +3 -3
  118. package/lib/components/VList/VListItem.js +6 -6
  119. package/lib/components/VList/VListItem.js.map +1 -1
  120. package/lib/components/VList/VListSubheader.js +1 -2
  121. package/lib/components/VList/VListSubheader.js.map +1 -1
  122. package/lib/components/VMenu/VMenu.d.ts +15 -15
  123. package/lib/components/VMenu/VMenu.js +2 -2
  124. package/lib/components/VMenu/VMenu.js.map +1 -1
  125. package/lib/components/VMessages/VMessages.js +1 -1
  126. package/lib/components/VMessages/VMessages.js.map +1 -1
  127. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +6 -6
  128. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  129. package/lib/components/VNumberInput/VNumberInput.js +11 -11
  130. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  131. package/lib/components/VOtpInput/VOtpInput.js +7 -7
  132. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  133. package/lib/components/VOverlay/VOverlay.d.ts +3 -3
  134. package/lib/components/VOverlay/VOverlay.js +4 -4
  135. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  136. package/lib/components/VOverlay/locationStrategies.js +10 -1
  137. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  138. package/lib/components/VPagination/VPagination.js +7 -7
  139. package/lib/components/VPagination/VPagination.js.map +1 -1
  140. package/lib/components/VProgressCircular/VProgressCircular.js +9 -9
  141. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  142. package/lib/components/VProgressLinear/VProgressLinear.js +4 -4
  143. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  144. package/lib/components/VSelect/VSelect.js +2 -2
  145. package/lib/components/VSelect/VSelect.js.map +1 -1
  146. package/lib/components/VSelectionControl/VSelectionControl.d.ts +1 -1
  147. package/lib/components/VSelectionControl/VSelectionControl.js +7 -7
  148. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  149. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +15 -15
  150. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
  151. package/lib/components/VSheet/VSheet.js +1 -2
  152. package/lib/components/VSheet/VSheet.js.map +1 -1
  153. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +2 -2
  154. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  155. package/lib/components/VSlider/slider.js +10 -10
  156. package/lib/components/VSlider/slider.js.map +1 -1
  157. package/lib/components/VSnackbar/VSnackbar.d.ts +9 -9
  158. package/lib/components/VSparkline/VSparkline.js +2 -2
  159. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  160. package/lib/components/VSwitch/VSwitch.js +3 -3
  161. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  162. package/lib/components/VSystemBar/VSystemBar.js +2 -2
  163. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  164. package/lib/components/VTabs/VTab.d.ts +3 -3
  165. package/lib/components/VTabs/VTab.js +1 -1
  166. package/lib/components/VTabs/VTab.js.map +1 -1
  167. package/lib/components/VTabs/VTabs.js +7 -7
  168. package/lib/components/VTabs/VTabs.js.map +1 -1
  169. package/lib/components/VTimeline/VTimeline.js +9 -9
  170. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  171. package/lib/components/VTimeline/VTimelineDivider.js +2 -3
  172. package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
  173. package/lib/components/VToolbar/VToolbar.js +2 -2
  174. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  175. package/lib/components/VToolbar/VToolbarItems.js +2 -2
  176. package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
  177. package/lib/components/VTooltip/VTooltip.d.ts +9 -9
  178. package/lib/components/VTooltip/VTooltip.js +3 -3
  179. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  180. package/lib/components/VVirtualScroll/VVirtualScroll.js +1 -1
  181. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  182. package/lib/components/VWindow/VWindow.js +3 -3
  183. package/lib/components/VWindow/VWindow.js.map +1 -1
  184. package/lib/components/transitions/dialog-transition.js +11 -2
  185. package/lib/components/transitions/dialog-transition.js.map +1 -1
  186. package/lib/composables/border.d.ts +1 -1
  187. package/lib/composables/border.js +5 -8
  188. package/lib/composables/border.js.map +1 -1
  189. package/lib/composables/calendar.d.ts +21 -54
  190. package/lib/composables/calendar.js +11 -11
  191. package/lib/composables/calendar.js.map +1 -1
  192. package/lib/composables/color.d.ts +8 -10
  193. package/lib/composables/color.js +21 -22
  194. package/lib/composables/color.js.map +1 -1
  195. package/lib/composables/density.d.ts +1 -1
  196. package/lib/composables/density.js +2 -2
  197. package/lib/composables/density.js.map +1 -1
  198. package/lib/composables/display.d.ts +4 -2
  199. package/lib/composables/display.js +2 -2
  200. package/lib/composables/display.js.map +1 -1
  201. package/lib/composables/elevation.js +4 -6
  202. package/lib/composables/elevation.js.map +1 -1
  203. package/lib/composables/focus.d.ts +4 -2
  204. package/lib/composables/focus.js +2 -2
  205. package/lib/composables/focus.js.map +1 -1
  206. package/lib/composables/form.d.ts +7 -7
  207. package/lib/composables/form.js +3 -3
  208. package/lib/composables/form.js.map +1 -1
  209. package/lib/composables/goto.js +2 -2
  210. package/lib/composables/goto.js.map +1 -1
  211. package/lib/composables/group.d.ts +3 -3
  212. package/lib/composables/group.js +4 -4
  213. package/lib/composables/group.js.map +1 -1
  214. package/lib/composables/icons.d.ts +2 -2
  215. package/lib/composables/icons.js +2 -2
  216. package/lib/composables/icons.js.map +1 -1
  217. package/lib/composables/layout.d.ts +10 -4
  218. package/lib/composables/layout.js +4 -4
  219. package/lib/composables/layout.js.map +1 -1
  220. package/lib/composables/lazy.d.ts +1 -1
  221. package/lib/composables/lazy.js +2 -2
  222. package/lib/composables/lazy.js.map +1 -1
  223. package/lib/composables/loader.d.ts +4 -2
  224. package/lib/composables/loader.js +2 -2
  225. package/lib/composables/loader.js.map +1 -1
  226. package/lib/composables/locale.js +3 -3
  227. package/lib/composables/locale.js.map +1 -1
  228. package/lib/composables/nested/nested.d.ts +3 -3
  229. package/lib/composables/nested/nested.js +4 -4
  230. package/lib/composables/nested/nested.js.map +1 -1
  231. package/lib/composables/position.d.ts +1 -1
  232. package/lib/composables/position.js +2 -2
  233. package/lib/composables/position.js.map +1 -1
  234. package/lib/composables/router.d.ts +3 -3
  235. package/lib/composables/router.js +8 -8
  236. package/lib/composables/router.js.map +1 -1
  237. package/lib/composables/size.d.ts +8 -5
  238. package/lib/composables/size.js +6 -5
  239. package/lib/composables/size.js.map +1 -1
  240. package/lib/composables/ssrBoot.d.ts +4 -2
  241. package/lib/composables/ssrBoot.js +2 -2
  242. package/lib/composables/ssrBoot.js.map +1 -1
  243. package/lib/composables/stack.d.ts +7 -5
  244. package/lib/composables/stack.js +5 -5
  245. package/lib/composables/stack.js.map +1 -1
  246. package/lib/composables/theme.js +7 -7
  247. package/lib/composables/theme.js.map +1 -1
  248. package/lib/composables/variant.d.ts +5 -6
  249. package/lib/composables/variant.js +6 -6
  250. package/lib/composables/variant.js.map +1 -1
  251. package/lib/entry-bundler.js +1 -1
  252. package/lib/framework.d.ts +81 -79
  253. package/lib/framework.js +1 -1
  254. package/lib/labs/VCalendar/VCalendar.d.ts +600 -211
  255. package/lib/labs/VCalendar/VCalendar.js +55 -27
  256. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  257. package/lib/labs/VCalendar/VCalendarDay.css +9 -0
  258. package/lib/labs/VCalendar/VCalendarDay.d.ts +329 -17
  259. package/lib/labs/VCalendar/VCalendarDay.js +18 -10
  260. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  261. package/lib/labs/VCalendar/VCalendarDay.sass +8 -0
  262. package/lib/labs/VCalendar/VCalendarEvent.js +15 -5
  263. package/lib/labs/VCalendar/VCalendarEvent.js.map +1 -1
  264. package/lib/labs/VCalendar/VCalendarHeader.d.ts +44 -17
  265. package/lib/labs/VCalendar/VCalendarHeader.js +5 -2
  266. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  267. package/lib/labs/VCalendar/VCalendarInterval.d.ts +171 -17
  268. package/lib/labs/VCalendar/VCalendarInterval.js +66 -35
  269. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  270. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +92 -17
  271. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +30 -10
  272. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  273. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +122 -88
  274. package/lib/labs/VCalendar/VCalendarMonthDay.js +24 -22
  275. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  276. package/lib/labs/VIconBtn/VIconBtn.d.ts +6 -21
  277. package/lib/labs/VIconBtn/VIconBtn.js +10 -12
  278. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  279. package/lib/labs/VPicker/VPicker.js +1 -2
  280. package/lib/labs/VPicker/VPicker.js.map +1 -1
  281. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -3
  282. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  283. package/lib/labs/VTreeview/VTreeview.js +11 -11
  284. package/lib/labs/VTreeview/VTreeview.js.map +1 -1
  285. package/lib/util/box.js.map +1 -1
  286. package/lib/util/helpers.d.ts +5 -2
  287. package/lib/util/helpers.js +9 -5
  288. package/lib/util/helpers.js.map +1 -1
  289. package/package.json +1 -1
@@ -8,25 +8,27 @@ import { makeVCalendarHeaderProps, VCalendarHeader } from "./VCalendarHeader.js"
8
8
  import { VCalendarMonthDay } from "./VCalendarMonthDay.js"; // Composables
9
9
  import { makeCalendarProps, useCalendar } from "../../composables/calendar.js";
10
10
  import { useDate } from "../../composables/date/date.js"; // Utilities
11
- import { computed } from 'vue';
12
- import { chunkArray, genericComponent, propsFactory, useRender } from "../../util/index.js";
11
+ import { computed, nextTick } from 'vue';
12
+ import { chunkArray, genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from "../../util/index.js"; // Types
13
13
  export const makeVCalendarProps = propsFactory({
14
14
  hideHeader: Boolean,
15
15
  hideWeekNumber: Boolean,
16
16
  ...makeCalendarProps(),
17
17
  ...makeVCalendarDayProps(),
18
18
  ...makeVCalendarHeaderProps()
19
- }, 'VCalender');
19
+ }, 'VCalendar');
20
20
  export const VCalendar = genericComponent()({
21
21
  name: 'VCalendar',
22
22
  props: makeVCalendarProps(),
23
23
  emits: {
24
24
  next: null,
25
25
  prev: null,
26
+ today: null,
26
27
  'update:modelValue': null
27
28
  },
28
29
  setup(props, _ref) {
29
30
  let {
31
+ attrs,
30
32
  emit,
31
33
  slots
32
34
  } = _ref;
@@ -44,27 +46,33 @@ export const VCalendar = genericComponent()({
44
46
  function onClickNext() {
45
47
  if (props.viewMode === 'month') {
46
48
  model.value = [adapter.addMonths(displayValue.value, 1)];
47
- }
48
- if (props.viewMode === 'week') {
49
+ } else if (props.viewMode === 'week') {
49
50
  model.value = [adapter.addDays(displayValue.value, 7)];
50
- }
51
- if (props.viewMode === 'day') {
51
+ } else if (props.viewMode === 'day') {
52
52
  model.value = [adapter.addDays(displayValue.value, 1)];
53
53
  }
54
+ nextTick(() => {
55
+ emit('next', model.value[0]);
56
+ });
54
57
  }
55
58
  function onClickPrev() {
56
59
  if (props.viewMode === 'month') {
57
60
  model.value = [adapter.addMonths(displayValue.value, -1)];
58
- }
59
- if (props.viewMode === 'week') {
61
+ } else if (props.viewMode === 'week') {
60
62
  model.value = [adapter.addDays(displayValue.value, -7)];
61
- }
62
- if (props.viewMode === 'day') {
63
+ } else if (props.viewMode === 'day') {
63
64
  model.value = [adapter.addDays(displayValue.value, -1)];
64
65
  }
66
+ nextTick(() => {
67
+ emit('prev', model.value[0]);
68
+ });
65
69
  }
66
70
  function onClickToday() {
67
- model.value = [adapter.date()];
71
+ const date = adapter.date();
72
+ model.value = [date];
73
+ nextTick(() => {
74
+ emit('today', model.value[0]);
75
+ });
68
76
  }
69
77
  const title = computed(() => {
70
78
  return adapter.format(displayValue.value, 'monthAndYear');
@@ -78,20 +86,25 @@ export const VCalendar = genericComponent()({
78
86
  'v-calendar-weekly': props.viewMode === 'week',
79
87
  'v-calendar-day': props.viewMode === 'day'
80
88
  }]
81
- }, [_createVNode("div", null, [!props.hideHeader && (!slots.header ? _createVNode(VCalendarHeader, _mergeProps({
89
+ }, [_createVNode("div", null, [!props.hideHeader && (slots.header?.({
90
+ title: title.value,
91
+ clickNext: onClickNext,
92
+ clickPrev: onClickPrev,
93
+ clickToday: onClickToday
94
+ }) ?? _createVNode(VCalendarHeader, _mergeProps({
82
95
  "key": "calendar-header"
83
96
  }, calendarHeaderProps, {
84
97
  "title": title.value,
85
98
  "onClick:next": onClickNext,
86
99
  "onClick:prev": onClickPrev,
87
100
  "onClick:toToday": onClickToday
88
- }), null) : slots.header({
89
- title: title.value
101
+ }), {
102
+ title: slots.title
90
103
  }))]), _createVNode("div", {
91
104
  "class": ['v-calendar__container', `days__${weekDays.value.length}`]
92
105
  }, [props.viewMode === 'month' && !props.hideDayHeader && _createVNode("div", {
93
106
  "class": ['v-calendar-weekly__head', `days__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])],
94
- "key": "calenderWeeklyHead"
107
+ "key": "calendarWeeklyHead"
95
108
  }, [!props.hideWeekNumber ? _createVNode("div", {
96
109
  "key": "weekNumber0",
97
110
  "class": "v-calendar-weekly__head-weeknumber"
@@ -100,24 +113,39 @@ export const VCalendar = genericComponent()({
100
113
  }, [dayNames[weekday]]))]), props.viewMode === 'month' && _createVNode("div", {
101
114
  "key": "VCalendarMonth",
102
115
  "class": ['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])]
103
- }, [chunkArray(daysInMonth.value, weekDays.value.length).map((week, wi) => [!props.hideWeekNumber ? _createVNode("div", {
116
+ }, [chunkArray(daysInMonth.value, weekDays.value.length).map((week, wi) => [!props.hideWeekNumber ? _createVNode("div", _mergeProps({
104
117
  "class": "v-calendar-month__weeknumber"
105
- }, [weekNumbers.value[wi]]) : '', week.map(day => _createVNode(VCalendarMonthDay, {
106
- "color": adapter.isSameDay(adapter.date(), day.date) ? 'primary' : undefined,
118
+ }, getPrefixedEventHandlers(attrs, ':weekNumber', () => ({
119
+ weekNumber: weekNumbers.value[wi],
120
+ week
121
+ }))), [weekNumbers.value[wi]]) : '', week.map(day => _createVNode(VCalendarMonthDay, _mergeProps({
122
+ "key": day.date.getTime()
123
+ }, calendarDayProps, {
107
124
  "day": day,
108
- "title": day ? adapter.format(day.date, 'dayOfMonth') : 'NaN',
125
+ "title": adapter.format(day.date, 'dayOfMonth'),
109
126
  "events": props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end))
110
- }, {
111
- event: slots.event
112
- }))])]), props.viewMode === 'week' && daysInWeek.value.map((day, i) => _createVNode(VCalendarDay, _mergeProps(calendarDayProps, {
127
+ }, attrs), {
128
+ ...pick(slots, ['day-body', 'day-event', 'day-title'])
129
+ }))])]), props.viewMode === 'week' && daysInWeek.value.map((day, i) => slots['day-interval'] ? slots['day-interval']?.({
130
+ ...calendarDayProps,
131
+ day,
132
+ dayIndex: i,
133
+ events: props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
134
+ }) : _createVNode(VCalendarDay, _mergeProps(calendarDayProps, {
113
135
  "day": day,
114
136
  "dayIndex": i,
115
137
  "events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
116
- }), null)), props.viewMode === 'day' && _createVNode(VCalendarDay, _mergeProps(calendarDayProps, {
117
- "day": genDays([displayValue.value], adapter.date())[0],
138
+ }, attrs), {
139
+ ...pick(slots, ['interval', 'intervalBody', 'intervalEvent', 'intervalTitle'])
140
+ })), props.viewMode === 'day' && (slots['day-interval'] ? slots['day-interval']({
141
+ day: genDays([displayValue.value], adapter.date())[0],
142
+ dayIndex: 0,
143
+ events: props.events?.filter(e => adapter.isSameDay(e.start, genDays([displayValue.value], adapter.date())[0].date) || adapter.isSameDay(e.end, genDays([displayValue.value], adapter.date())[0].date))
144
+ }) : _createVNode(VCalendarDay, _mergeProps(calendarDayProps, {
145
+ "day": genDays([model.value[0]], adapter.date())[0],
118
146
  "dayIndex": 0,
119
- "events": props.events?.filter(e => adapter.isSameDay(e.start, genDays([displayValue.value], adapter.date())[0].date) || adapter.isSameDay(e.end, genDays([displayValue.value], adapter.date())[0].date))
120
- }), null)])]);
147
+ "events": props.events?.filter(e => adapter.isSameDay(e.start, genDays([model.value[0]], adapter.date())[0].date) || adapter.isSameDay(e.end, genDays([model.value[0]], adapter.date())[0].date))
148
+ }, attrs), null))])]);
121
149
  });
122
150
  return {
123
151
  daysInMonth,
@@ -1 +1 @@
1
- {"version":3,"file":"VCalendar.js","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","displayValue","weekNumbers","weekDays","dayNames","getWeekdays","onClickNext","viewMode","value","addMonths","addDays","onClickPrev","onClickToday","date","title","format","calendarDayProps","filterProps","calendarHeaderProps","_createVNode","header","_mergeProps","length","hideDayHeader","map","weekday","week","wi","day","isSameDay","undefined","events","filter","e","start","end","event","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 event: { day?: Object, allDay: boolean, event: Record<string, unknown> }\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, displayValue, weekNumbers, weekDays } = useCalendar(props as any)\n\n const dayNames = adapter.getWeekdays()\n\n function onClickNext () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, 1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, 7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, 1)]\n }\n }\n\n function onClickPrev () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, -1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, -7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, -1)]\n }\n }\n\n function onClickToday () {\n model.value = [adapter.date()]\n }\n\n const title = computed(() => {\n return adapter.format(displayValue.value, '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__${weekDays.value.length}`]}>\n { props.viewMode === 'month' && !props.hideDayHeader && (\n <div\n class={\n [\n 'v-calendar-weekly__head',\n `days__${weekDays.value.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 weekDays.value.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' : ''}__${weekDays.value.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : []),\n ]\n }\n >\n { chunkArray(daysInMonth.value, weekDays.value.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(adapter.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 v-slots={{\n event: slots.event,\n }}\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([displayValue.value as Date], adapter.date() as Date)[0] }\n dayIndex={ 0 }\n events={\n props.events?.filter(e =>\n adapter.isSameDay(e.start, genDays([displayValue.value as Date], adapter.date() as Date)[0].date) ||\n adapter.isSameDay(e.end, genDays([displayValue.value 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,kCAE1B;AAAA,SACSC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,OAAO,0CAEhB;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;AAOf,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,YAAY;MAAEC,WAAW;MAAEC;IAAS,CAAC,GAAG5B,WAAW,CAACa,KAAY,CAAC;IAElH,MAAMgB,QAAQ,GAAGR,OAAO,CAACS,WAAW,CAAC,CAAC;IAEtC,SAASC,WAAWA,CAAA,EAAI;MACtB,IAAIlB,KAAK,CAACmB,QAAQ,KAAK,OAAO,EAAE;QAC9BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACa,SAAS,CAACR,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC;MAC1D;MACA,IAAIpB,KAAK,CAACmB,QAAQ,KAAK,MAAM,EAAE;QAC7BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC;MACxD;MACA,IAAIpB,KAAK,CAACmB,QAAQ,KAAK,KAAK,EAAE;QAC5BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC;MACxD;IACF;IAEA,SAASG,WAAWA,CAAA,EAAI;MACtB,IAAIvB,KAAK,CAACmB,QAAQ,KAAK,OAAO,EAAE;QAC9BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACa,SAAS,CAACR,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;MAC3D;MACA,IAAIpB,KAAK,CAACmB,QAAQ,KAAK,MAAM,EAAE;QAC7BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;MACzD;MACA,IAAIpB,KAAK,CAACmB,QAAQ,KAAK,KAAK,EAAE;QAC5BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;MACzD;IACF;IAEA,SAASI,YAAYA,CAAA,EAAI;MACvBZ,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACiB,IAAI,CAAC,CAAC,CAAC;IAChC;IAEA,MAAMC,KAAK,GAAGrC,QAAQ,CAAC,MAAM;MAC3B,OAAOmB,OAAO,CAACmB,MAAM,CAACd,YAAY,CAACO,KAAK,EAAE,cAAc,CAAC;IAC3D,CAAC,CAAC;IAEF3B,SAAS,CAAC,MAAM;MACd,MAAMmC,gBAAgB,GAAG9C,YAAY,CAAC+C,WAAW,CAAC7B,KAAK,CAAC;MACxD,MAAM8B,mBAAmB,GAAG9C,eAAe,CAAC6C,WAAW,CAAC7B,KAAK,CAAC;MAE9D,OAAA+B,YAAA;QAAA,SACc,CACV,YAAY,EACZ;UACE,oBAAoB,EAAE/B,KAAK,CAACmB,QAAQ,KAAK,OAAO;UAChD,mBAAmB,EAAEnB,KAAK,CAACmB,QAAQ,KAAK,MAAM;UAC9C,gBAAgB,EAAEnB,KAAK,CAACmB,QAAQ,KAAK;QACvC,CAAC;MACF,IAAAY,YAAA,eAGK,CAAC/B,KAAK,CAACL,UAAU,KACjB,CAACY,KAAK,CAACyB,MAAM,GAAAD,YAAA,CAAA/C,eAAA,EAAAiD,WAAA;QAAA;MAAA,GAGJH,mBAAmB;QAAA,SAChBJ,KAAK,CAACN,KAAK;QAAA,gBACJF,WAAW;QAAA,gBACXK,WAAW;QAAA,mBACRC;MAAY,YAGhCjB,KAAK,CAACyB,MAAM,CAAC;QAAEN,KAAK,EAAEA,KAAK,CAACN;MAAM,CAAC,CACpC,CACF,IAAAW,YAAA;QAAA,SAGS,CAAC,uBAAuB,EAAE,SAAShB,QAAQ,CAACK,KAAK,CAACc,MAAM,EAAE;MAAC,IACnElC,KAAK,CAACmB,QAAQ,KAAK,OAAO,IAAI,CAACnB,KAAK,CAACmC,aAAa,IAAAJ,YAAA;QAAA,SAG9C,CACE,yBAAyB,EACzB,SAAShB,QAAQ,CAACK,KAAK,CAACc,MAAM,EAAE,EAChC,IAAI,CAAClC,KAAK,CAACH,cAAc,GAAG,CAAC,qCAAqC,CAAC,GAAG,EAAE,CAAC,CAC1E;QAAA;MAAA,IAID,CAACG,KAAK,CAACH,cAAc,GAAAkC,YAAA;QAAA;QAAA;MAAA,WAA8E,EAAE,EAErGhB,QAAQ,CAACK,KAAK,CAACgB,GAAG,CAACC,OAAO,IAAAN,YAAA;QAAA,SACX,kCAAkC,CAAC/B,KAAK,CAACH,cAAc,GAAG,kBAAkB,GAAG,EAAE;MAAE,IAC5FmB,QAAQ,CAACqB,OAAO,CAAC,EAEtB,CAAC,EAGP,EAECrC,KAAK,CAACmB,QAAQ,KAAK,OAAO,IAAAY,YAAA;QAAA;QAAA,SAItB,CACE,wBAAwB,EACxB,OAAO,CAAC/B,KAAK,CAACH,cAAc,GAAG,mBAAmB,GAAG,EAAE,KAAKkB,QAAQ,CAACK,KAAK,CAACc,MAAM,EAAE,EACnF,IAAI,CAAClC,KAAK,CAACH,cAAc,GAAG,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC;MACpE,IAGDP,UAAU,CAACmB,WAAW,CAACW,KAAK,EAAEL,QAAQ,CAACK,KAAK,CAACc,MAAM,CAAC,CACnDE,GAAG,CAAC,CAACE,IAAI,EAAEC,EAAE,KACZ,CACE,CAACvC,KAAK,CAACH,cAAc,GAAAkC,YAAA;QAAA;MAAA,IAA+CjB,WAAW,CAACM,KAAK,CAACmB,EAAE,CAAC,KAAW,EAAE,EACtGD,IAAI,CAACF,GAAG,CAACI,GAAG,IAAAT,YAAA,CAAA9C,iBAAA;QAAA,SAEAuB,OAAO,CAACiC,SAAS,CAACjC,OAAO,CAACiB,IAAI,CAAC,CAAC,EAAEe,GAAG,CAACf,IAAI,CAAC,GAAG,SAAS,GAAGiB,SAAS;QAAA,OACrEF,GAAG;QAAA,SACDA,GAAG,GAAGhC,OAAO,CAACmB,MAAM,CAACa,GAAG,CAACf,IAAI,EAAE,YAAY,CAAC,GAAG,KAAK;QAAA,UACnDzB,KAAK,CAAC2C,MAAM,EAAEC,MAAM,CAACC,CAAC,IAAIrC,OAAO,CAACiC,SAAS,CAACD,GAAG,CAACf,IAAI,EAAEoB,CAAC,CAACC,KAAK,CAAC,IAAItC,OAAO,CAACiC,SAAS,CAACD,GAAG,CAACf,IAAI,EAAEoB,CAAC,CAACE,GAAG,CAAC;MAAC,GACrG;QACPC,KAAK,EAAEzC,KAAK,CAACyC;MACf,CAAC,CAEJ,CAAC,CAEL,CAAC,EAEP,EAEChD,KAAK,CAACmB,QAAQ,KAAK,MAAM,IACzBT,UAAU,CAACU,KAAK,CAACgB,GAAG,CAAC,CAACI,GAAG,EAAES,CAAC,KAAAlB,YAAA,CAAAjD,YAAA,EAAAmD,WAAA,CAEnBL,gBAAgB;QAAA,OACfY,GAAG;QAAA,YACES,CAAC;QAAA,UACHjD,KAAK,CAAC2C,MAAM,EAAEC,MAAM,CAACC,CAAC,IAAIrC,OAAO,CAACiC,SAAS,CAACI,CAAC,CAACC,KAAK,EAAEN,GAAG,CAACf,IAAI,CAAC,IAAIjB,OAAO,CAACiC,SAAS,CAACI,CAAC,CAACE,GAAG,EAAEP,GAAG,CAACf,IAAI,CAAC;MAAC,SAEjH,CACF,EAECzB,KAAK,CAACmB,QAAQ,KAAK,KAAK,IAAAY,YAAA,CAAAjD,YAAA,EAAAmD,WAAA,CAEjBL,gBAAgB;QAAA,OACfjB,OAAO,CAAC,CAACE,YAAY,CAACO,KAAK,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC;QAAA,YAC3D,CAAC;QAAA,UAEVzB,KAAK,CAAC2C,MAAM,EAAEC,MAAM,CAACC,CAAC,IACpBrC,OAAO,CAACiC,SAAS,CAACI,CAAC,CAACC,KAAK,EAAEnC,OAAO,CAAC,CAACE,YAAY,CAACO,KAAK,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,IACjGjB,OAAO,CAACiC,SAAS,CAACI,CAAC,CAACE,GAAG,EAAEpC,OAAO,CAAC,CAACE,YAAY,CAACO,KAAK,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAChG;MAAC,SAGN;IAIT,CAAC,CAAC;IAEF,OAAO;MAAEhB,WAAW;MAAEC,UAAU;MAAEC;IAAQ,CAAC;EAC7C;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VCalendar.js","names":["makeVCalendarDayProps","VCalendarDay","makeVCalendarHeaderProps","VCalendarHeader","VCalendarMonthDay","makeCalendarProps","useCalendar","useDate","computed","nextTick","chunkArray","genericComponent","getPrefixedEventHandlers","pick","propsFactory","useRender","makeVCalendarProps","hideHeader","Boolean","hideWeekNumber","VCalendar","name","props","emits","next","prev","today","setup","_ref","attrs","emit","slots","adapter","daysInMonth","daysInWeek","genDays","model","displayValue","weekNumbers","weekDays","dayNames","getWeekdays","onClickNext","viewMode","value","addMonths","addDays","onClickPrev","onClickToday","date","title","format","calendarDayProps","filterProps","calendarHeaderProps","_createVNode","header","clickNext","clickPrev","clickToday","_mergeProps","length","hideDayHeader","map","weekday","week","wi","weekNumber","day","getTime","events","filter","e","isSameDay","start","end","i","dayIndex"],"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, nextTick } from 'vue'\nimport { chunkArray, genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VCalendarDaySlots } from './VCalendarDay'\nimport type { CalendarDay } from '@/composables/calendar'\n\nexport const makeVCalendarProps = propsFactory({\n hideHeader: Boolean,\n hideWeekNumber: Boolean,\n\n ...makeCalendarProps(),\n ...makeVCalendarDayProps(),\n ...makeVCalendarHeaderProps(),\n}, 'VCalendar')\n\nexport type VCalendarSlots = VCalendarDaySlots & {\n 'day-body': { day?: CalendarDay, events?: Array<any> }\n 'day-title': { title?: number | string }\n 'day-event': { day?: CalendarDay, allDay: Boolean, event?: Record<string, unknown> }\n header: { title: string, clickNext: Function, clickPrev: Function, clickToday: Function }\n 'day-interval': { day?: CalendarDay, dayIndex: Number, events?: Array<any> }\n title: { 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 today: null,\n 'update:modelValue': null,\n },\n\n setup (props, { attrs, emit, slots }) {\n const adapter = useDate()\n\n const { daysInMonth, daysInWeek, genDays, model, displayValue, weekNumbers, weekDays } = useCalendar(props as any)\n\n const dayNames = adapter.getWeekdays()\n\n function onClickNext () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, 1)]\n } else if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, 7)]\n } else if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, 1)]\n }\n nextTick(() => {\n emit('next', model.value[0])\n })\n }\n\n function onClickPrev () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, -1)]\n } else if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, -7)]\n } else if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, -1)]\n }\n nextTick(() => {\n emit('prev', model.value[0])\n })\n }\n\n function onClickToday () {\n const date = adapter.date()\n model.value = [date]\n nextTick(() => {\n emit('today', model.value[0])\n })\n }\n\n const title = computed(() => {\n return adapter.format(displayValue.value, '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 title: title.value,\n clickNext: onClickNext,\n clickPrev: onClickPrev,\n clickToday: onClickToday,\n }) ?? (\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 {{ title: slots.title }}\n </VCalendarHeader>\n )\n )}\n </div>\n\n <div class={['v-calendar__container', `days__${weekDays.value.length}`]}>\n { props.viewMode === 'month' && !props.hideDayHeader && (\n <div\n class={\n [\n 'v-calendar-weekly__head',\n `days__${weekDays.value.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : []),\n ]\n }\n key=\"calendarWeeklyHead\"\n >\n { !props.hideWeekNumber ? <div key=\"weekNumber0\" class=\"v-calendar-weekly__head-weeknumber\"></div> : '' }\n {\n weekDays.value.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' : ''}__${weekDays.value.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : []),\n ]\n }\n >\n { chunkArray(daysInMonth.value, weekDays.value.length)\n .map((week, wi) => (\n [\n !props.hideWeekNumber ? (\n <div\n class=\"v-calendar-month__weeknumber\"\n { ...getPrefixedEventHandlers(attrs, ':weekNumber', () => ({ weekNumber: weekNumbers.value[wi], week })) }\n >{ weekNumbers.value[wi] }</div>\n ) : '',\n week.map(day => (\n <VCalendarMonthDay\n key={ day.date.getTime() }\n { ...calendarDayProps }\n day={ day }\n title={ adapter.format(day.date, 'dayOfMonth') }\n events={ props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end)) }\n { ...attrs }\n >\n {{\n ...pick(slots, ['day-body', 'day-event', 'day-title']),\n }}\n </VCalendarMonthDay>\n )),\n ]\n ))\n }\n </div>\n )}\n { props.viewMode === 'week' && (\n daysInWeek.value.map((day, i) =>\n slots['day-interval'] ? slots['day-interval']?.({\n ...calendarDayProps,\n day,\n dayIndex: i,\n events: props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date)),\n }) : (\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 { ...attrs }\n >\n {{ ...pick(slots, ['interval', 'intervalBody', 'intervalEvent', 'intervalTitle']) }}\n </VCalendarDay>\n )\n ))\n }\n\n { props.viewMode === 'day' && (\n slots['day-interval'] ? slots['day-interval']({\n day: genDays([displayValue.value as Date], adapter.date() as Date)[0],\n dayIndex: 0,\n events: props.events?.filter(e =>\n adapter.isSameDay(e.start, genDays([displayValue.value as Date], adapter.date() as Date)[0].date) ||\n adapter.isSameDay(e.end, genDays([displayValue.value as Date], adapter.date() as Date)[0].date)\n ),\n }) : (\n <VCalendarDay\n { ...calendarDayProps }\n day={ genDays([model.value[0] as Date], adapter.date() as Date)[0] }\n dayIndex={ 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 { ...attrs }\n ></VCalendarDay>\n )\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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","ignoreList":[]}
@@ -30,4 +30,13 @@
30
30
  }
31
31
  .v-calendar-weekly .v-calendar__container.days__0 {
32
32
  grid-template-columns: repeat(1, 1fr);
33
+ }
34
+
35
+ .v-calendar-weekly__head-weekday {
36
+ padding-bottom: 4px;
37
+ }
38
+
39
+ .v-calendar-weekly__head-weekday .v-calendar-day-label__today {
40
+ background: rgba(var(--v-theme-surface-variant), var(--v-medium-emphasis-opacity));
41
+ color: rgb(var(--v-theme-on-surface-variant));
33
42
  }
@@ -1,3 +1,7 @@
1
+ import type { VCalendarIntervalSlots } from './VCalendarInterval.js';
2
+ export type VCalendarDaySlots = VCalendarIntervalSlots & {
3
+ interval: Record<string, unknown>;
4
+ };
1
5
  export declare const makeVCalendarDayProps: <Defaults extends {
2
6
  day?: unknown;
3
7
  dayIndex?: unknown;
@@ -122,14 +126,98 @@ export declare const VCalendarDay: {
122
126
  events?: any[] | undefined;
123
127
  dayIndex?: number | undefined;
124
128
  } & {
125
- $children?: import("vue").VNodeChild | {
126
- default?: (() => import("vue").VNodeChild) | undefined;
127
- } | (() => import("vue").VNodeChild);
129
+ $children?: {} | import("vue").VNodeChild | {
130
+ intervalBody?: ((arg: {
131
+ interval: {
132
+ label: string;
133
+ start: unknown;
134
+ end: unknown;
135
+ events: any[];
136
+ };
137
+ }) => import("vue").VNodeChild) | undefined;
138
+ intervalEvent?: ((arg: {
139
+ height: string;
140
+ margin: string;
141
+ eventClass: string;
142
+ event: any;
143
+ interval: {
144
+ label: string;
145
+ start: unknown;
146
+ end: unknown;
147
+ events: any[];
148
+ };
149
+ }) => import("vue").VNodeChild) | undefined;
150
+ intervalTitle?: ((arg: {
151
+ interval: {
152
+ label: string;
153
+ start: unknown;
154
+ end: unknown;
155
+ events: any[];
156
+ };
157
+ }) => import("vue").VNodeChild) | undefined;
158
+ interval?: ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
159
+ };
128
160
  'v-slots'?: {
129
- default?: false | (() => import("vue").VNodeChild) | undefined;
161
+ intervalBody?: false | ((arg: {
162
+ interval: {
163
+ label: string;
164
+ start: unknown;
165
+ end: unknown;
166
+ events: any[];
167
+ };
168
+ }) => import("vue").VNodeChild) | undefined;
169
+ intervalEvent?: false | ((arg: {
170
+ height: string;
171
+ margin: string;
172
+ eventClass: string;
173
+ event: any;
174
+ interval: {
175
+ label: string;
176
+ start: unknown;
177
+ end: unknown;
178
+ events: any[];
179
+ };
180
+ }) => import("vue").VNodeChild) | undefined;
181
+ intervalTitle?: false | ((arg: {
182
+ interval: {
183
+ label: string;
184
+ start: unknown;
185
+ end: unknown;
186
+ events: any[];
187
+ };
188
+ }) => import("vue").VNodeChild) | undefined;
189
+ interval?: false | ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
130
190
  } | undefined;
131
191
  } & {
132
- "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
192
+ "v-slot:intervalBody"?: false | ((arg: {
193
+ interval: {
194
+ label: string;
195
+ start: unknown;
196
+ end: unknown;
197
+ events: any[];
198
+ };
199
+ }) => import("vue").VNodeChild) | undefined;
200
+ "v-slot:intervalEvent"?: false | ((arg: {
201
+ height: string;
202
+ margin: string;
203
+ eventClass: string;
204
+ event: any;
205
+ interval: {
206
+ label: string;
207
+ start: unknown;
208
+ end: unknown;
209
+ events: any[];
210
+ };
211
+ }) => import("vue").VNodeChild) | undefined;
212
+ "v-slot:intervalTitle"?: false | ((arg: {
213
+ interval: {
214
+ label: string;
215
+ start: unknown;
216
+ end: unknown;
217
+ events: any[];
218
+ };
219
+ }) => import("vue").VNodeChild) | undefined;
220
+ "v-slot:interval"?: false | ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
133
221
  }, {
134
222
  intervals: import("vue").ComputedRef<number[]>;
135
223
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
@@ -142,7 +230,35 @@ export declare const VCalendarDay: {
142
230
  hideDayHeader: boolean;
143
231
  intervals: number;
144
232
  }, true, {}, import("vue").SlotsType<Partial<{
145
- default: () => import("vue").VNode[];
233
+ intervalBody: (arg: {
234
+ interval: {
235
+ label: string;
236
+ start: unknown;
237
+ end: unknown;
238
+ events: any[];
239
+ };
240
+ }) => import("vue").VNode[];
241
+ intervalEvent: (arg: {
242
+ height: string;
243
+ margin: string;
244
+ eventClass: string;
245
+ event: any;
246
+ interval: {
247
+ label: string;
248
+ start: unknown;
249
+ end: unknown;
250
+ events: any[];
251
+ };
252
+ }) => import("vue").VNode[];
253
+ intervalTitle: (arg: {
254
+ interval: {
255
+ label: string;
256
+ start: unknown;
257
+ end: unknown;
258
+ events: any[];
259
+ };
260
+ }) => import("vue").VNode[];
261
+ interval: (arg: Record<string, unknown>) => import("vue").VNode[];
146
262
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
147
263
  P: {};
148
264
  B: {};
@@ -163,14 +279,98 @@ export declare const VCalendarDay: {
163
279
  events?: any[] | undefined;
164
280
  dayIndex?: number | undefined;
165
281
  } & {
166
- $children?: import("vue").VNodeChild | {
167
- default?: (() => import("vue").VNodeChild) | undefined;
168
- } | (() => import("vue").VNodeChild);
282
+ $children?: {} | import("vue").VNodeChild | {
283
+ intervalBody?: ((arg: {
284
+ interval: {
285
+ label: string;
286
+ start: unknown;
287
+ end: unknown;
288
+ events: any[];
289
+ };
290
+ }) => import("vue").VNodeChild) | undefined;
291
+ intervalEvent?: ((arg: {
292
+ height: string;
293
+ margin: string;
294
+ eventClass: string;
295
+ event: any;
296
+ interval: {
297
+ label: string;
298
+ start: unknown;
299
+ end: unknown;
300
+ events: any[];
301
+ };
302
+ }) => import("vue").VNodeChild) | undefined;
303
+ intervalTitle?: ((arg: {
304
+ interval: {
305
+ label: string;
306
+ start: unknown;
307
+ end: unknown;
308
+ events: any[];
309
+ };
310
+ }) => import("vue").VNodeChild) | undefined;
311
+ interval?: ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
312
+ };
169
313
  'v-slots'?: {
170
- default?: false | (() => import("vue").VNodeChild) | undefined;
314
+ intervalBody?: false | ((arg: {
315
+ interval: {
316
+ label: string;
317
+ start: unknown;
318
+ end: unknown;
319
+ events: any[];
320
+ };
321
+ }) => import("vue").VNodeChild) | undefined;
322
+ intervalEvent?: false | ((arg: {
323
+ height: string;
324
+ margin: string;
325
+ eventClass: string;
326
+ event: any;
327
+ interval: {
328
+ label: string;
329
+ start: unknown;
330
+ end: unknown;
331
+ events: any[];
332
+ };
333
+ }) => import("vue").VNodeChild) | undefined;
334
+ intervalTitle?: false | ((arg: {
335
+ interval: {
336
+ label: string;
337
+ start: unknown;
338
+ end: unknown;
339
+ events: any[];
340
+ };
341
+ }) => import("vue").VNodeChild) | undefined;
342
+ interval?: false | ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
171
343
  } | undefined;
172
344
  } & {
173
- "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
345
+ "v-slot:intervalBody"?: false | ((arg: {
346
+ interval: {
347
+ label: string;
348
+ start: unknown;
349
+ end: unknown;
350
+ events: any[];
351
+ };
352
+ }) => import("vue").VNodeChild) | undefined;
353
+ "v-slot:intervalEvent"?: false | ((arg: {
354
+ height: string;
355
+ margin: string;
356
+ eventClass: string;
357
+ event: any;
358
+ interval: {
359
+ label: string;
360
+ start: unknown;
361
+ end: unknown;
362
+ events: any[];
363
+ };
364
+ }) => import("vue").VNodeChild) | undefined;
365
+ "v-slot:intervalTitle"?: false | ((arg: {
366
+ interval: {
367
+ label: string;
368
+ start: unknown;
369
+ end: unknown;
370
+ events: any[];
371
+ };
372
+ }) => import("vue").VNodeChild) | undefined;
373
+ "v-slot:interval"?: false | ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
174
374
  }, {
175
375
  intervals: import("vue").ComputedRef<number[]>;
176
376
  }, {}, {}, {}, {
@@ -199,14 +399,98 @@ export declare const VCalendarDay: {
199
399
  events?: any[] | undefined;
200
400
  dayIndex?: number | undefined;
201
401
  } & {
202
- $children?: import("vue").VNodeChild | {
203
- default?: (() => import("vue").VNodeChild) | undefined;
204
- } | (() => import("vue").VNodeChild);
402
+ $children?: {} | import("vue").VNodeChild | {
403
+ intervalBody?: ((arg: {
404
+ interval: {
405
+ label: string;
406
+ start: unknown;
407
+ end: unknown;
408
+ events: any[];
409
+ };
410
+ }) => import("vue").VNodeChild) | undefined;
411
+ intervalEvent?: ((arg: {
412
+ height: string;
413
+ margin: string;
414
+ eventClass: string;
415
+ event: any;
416
+ interval: {
417
+ label: string;
418
+ start: unknown;
419
+ end: unknown;
420
+ events: any[];
421
+ };
422
+ }) => import("vue").VNodeChild) | undefined;
423
+ intervalTitle?: ((arg: {
424
+ interval: {
425
+ label: string;
426
+ start: unknown;
427
+ end: unknown;
428
+ events: any[];
429
+ };
430
+ }) => import("vue").VNodeChild) | undefined;
431
+ interval?: ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
432
+ };
205
433
  'v-slots'?: {
206
- default?: false | (() => import("vue").VNodeChild) | undefined;
434
+ intervalBody?: false | ((arg: {
435
+ interval: {
436
+ label: string;
437
+ start: unknown;
438
+ end: unknown;
439
+ events: any[];
440
+ };
441
+ }) => import("vue").VNodeChild) | undefined;
442
+ intervalEvent?: false | ((arg: {
443
+ height: string;
444
+ margin: string;
445
+ eventClass: string;
446
+ event: any;
447
+ interval: {
448
+ label: string;
449
+ start: unknown;
450
+ end: unknown;
451
+ events: any[];
452
+ };
453
+ }) => import("vue").VNodeChild) | undefined;
454
+ intervalTitle?: false | ((arg: {
455
+ interval: {
456
+ label: string;
457
+ start: unknown;
458
+ end: unknown;
459
+ events: any[];
460
+ };
461
+ }) => import("vue").VNodeChild) | undefined;
462
+ interval?: false | ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
207
463
  } | undefined;
208
464
  } & {
209
- "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
465
+ "v-slot:intervalBody"?: false | ((arg: {
466
+ interval: {
467
+ label: string;
468
+ start: unknown;
469
+ end: unknown;
470
+ events: any[];
471
+ };
472
+ }) => import("vue").VNodeChild) | undefined;
473
+ "v-slot:intervalEvent"?: false | ((arg: {
474
+ height: string;
475
+ margin: string;
476
+ eventClass: string;
477
+ event: any;
478
+ interval: {
479
+ label: string;
480
+ start: unknown;
481
+ end: unknown;
482
+ events: any[];
483
+ };
484
+ }) => import("vue").VNodeChild) | undefined;
485
+ "v-slot:intervalTitle"?: false | ((arg: {
486
+ interval: {
487
+ label: string;
488
+ start: unknown;
489
+ end: unknown;
490
+ events: any[];
491
+ };
492
+ }) => import("vue").VNodeChild) | undefined;
493
+ "v-slot:interval"?: false | ((arg: Record<string, unknown>) => import("vue").VNodeChild) | undefined;
210
494
  }, {
211
495
  intervals: import("vue").ComputedRef<number[]>;
212
496
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
@@ -219,7 +503,35 @@ export declare const VCalendarDay: {
219
503
  hideDayHeader: boolean;
220
504
  intervals: number;
221
505
  }, {}, string, import("vue").SlotsType<Partial<{
222
- default: () => import("vue").VNode[];
506
+ intervalBody: (arg: {
507
+ interval: {
508
+ label: string;
509
+ start: unknown;
510
+ end: unknown;
511
+ events: any[];
512
+ };
513
+ }) => import("vue").VNode[];
514
+ intervalEvent: (arg: {
515
+ height: string;
516
+ margin: string;
517
+ eventClass: string;
518
+ event: any;
519
+ interval: {
520
+ label: string;
521
+ start: unknown;
522
+ end: unknown;
523
+ events: any[];
524
+ };
525
+ }) => import("vue").VNode[];
526
+ intervalTitle: (arg: {
527
+ interval: {
528
+ label: string;
529
+ start: unknown;
530
+ end: unknown;
531
+ events: any[];
532
+ };
533
+ }) => import("vue").VNode[];
534
+ interval: (arg: Record<string, unknown>) => import("vue").VNode[];
223
535
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
224
536
  day: {
225
537
  type: ObjectConstructor;