@vuetify/nightly 3.9.0-beta.1-dev.2025-06-28 → 3.9.0-beta.1-dev.2025-07-02

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 (65) hide show
  1. package/CHANGELOG.md +100 -3
  2. package/dist/json/attributes.json +725 -725
  3. package/dist/json/importMap-labs.json +30 -30
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/web-types.json +1311 -1311
  6. package/dist/vuetify-labs.cjs +61 -63
  7. package/dist/vuetify-labs.css +4207 -4207
  8. package/dist/vuetify-labs.d.ts +203 -203
  9. package/dist/vuetify-labs.esm.js +61 -63
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +61 -63
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +36 -39
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4469 -4469
  16. package/dist/vuetify.d.ts +60 -60
  17. package/dist/vuetify.esm.js +36 -39
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +36 -39
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +34 -35
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTableColumn.js +0 -1
  25. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  26. package/lib/components/VDataTable/VDataTableHeaders.js +5 -5
  27. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  28. package/lib/components/VDataTable/composables/sort.js +2 -1
  29. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -2
  31. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  32. package/lib/components/VOtpInput/VOtpInput.js +17 -14
  33. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  34. package/lib/components/VOverlay/locationStrategies.js +1 -1
  35. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  36. package/lib/components/VTextField/VTextField.js +1 -1
  37. package/lib/components/VTextField/VTextField.js.map +1 -1
  38. package/lib/composables/calendar.d.ts +0 -1
  39. package/lib/composables/calendar.js +6 -10
  40. package/lib/composables/calendar.js.map +1 -1
  41. package/lib/composables/date/adapters/vuetify.js +1 -1
  42. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  43. package/lib/composables/virtual.js +1 -1
  44. package/lib/composables/virtual.js.map +1 -1
  45. package/lib/entry-bundler.js +1 -1
  46. package/lib/framework.d.ts +60 -60
  47. package/lib/framework.js +1 -1
  48. package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
  49. package/lib/labs/VCalendar/VCalendar.js +9 -9
  50. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  51. package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
  52. package/lib/labs/VCalendar/VCalendarDay.js +1 -1
  53. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  54. package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
  55. package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
  56. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  57. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
  58. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
  59. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  60. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
  61. package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
  62. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  63. package/lib/labs/VIconBtn/VIconBtn.js +1 -0
  64. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  65. package/package.json +1 -1
@@ -321,7 +321,7 @@ export declare const VCalendar: {
321
321
  dayIndex?: number | undefined;
322
322
  } & {
323
323
  $children?: {} | import("vue").VNodeChild | {
324
- intervalBody?: ((arg: {
324
+ 'interval-body'?: ((arg: {
325
325
  interval: {
326
326
  label: string;
327
327
  start: unknown;
@@ -329,7 +329,7 @@ export declare const VCalendar: {
329
329
  events: any[];
330
330
  };
331
331
  }) => import("vue").VNodeChild) | undefined;
332
- intervalEvent?: ((arg: {
332
+ 'interval-event'?: ((arg: {
333
333
  height: string;
334
334
  margin: string;
335
335
  eventClass: string;
@@ -341,7 +341,7 @@ export declare const VCalendar: {
341
341
  events: any[];
342
342
  };
343
343
  }) => import("vue").VNodeChild) | undefined;
344
- intervalTitle?: ((arg: {
344
+ 'interval-title'?: ((arg: {
345
345
  interval: {
346
346
  label: string;
347
347
  start: unknown;
@@ -378,7 +378,7 @@ export declare const VCalendar: {
378
378
  }) => import("vue").VNodeChild) | undefined;
379
379
  };
380
380
  'v-slots'?: {
381
- intervalBody?: false | ((arg: {
381
+ 'interval-body'?: false | ((arg: {
382
382
  interval: {
383
383
  label: string;
384
384
  start: unknown;
@@ -386,7 +386,7 @@ export declare const VCalendar: {
386
386
  events: any[];
387
387
  };
388
388
  }) => import("vue").VNodeChild) | undefined;
389
- intervalEvent?: false | ((arg: {
389
+ 'interval-event'?: false | ((arg: {
390
390
  height: string;
391
391
  margin: string;
392
392
  eventClass: string;
@@ -398,7 +398,7 @@ export declare const VCalendar: {
398
398
  events: any[];
399
399
  };
400
400
  }) => import("vue").VNodeChild) | undefined;
401
- intervalTitle?: false | ((arg: {
401
+ 'interval-title'?: false | ((arg: {
402
402
  interval: {
403
403
  label: string;
404
404
  start: unknown;
@@ -435,7 +435,7 @@ export declare const VCalendar: {
435
435
  }) => import("vue").VNodeChild) | undefined;
436
436
  } | undefined;
437
437
  } & {
438
- "v-slot:intervalBody"?: false | ((arg: {
438
+ "v-slot:interval-body"?: false | ((arg: {
439
439
  interval: {
440
440
  label: string;
441
441
  start: unknown;
@@ -443,7 +443,7 @@ export declare const VCalendar: {
443
443
  events: any[];
444
444
  };
445
445
  }) => import("vue").VNodeChild) | undefined;
446
- "v-slot:intervalEvent"?: false | ((arg: {
446
+ "v-slot:interval-event"?: false | ((arg: {
447
447
  height: string;
448
448
  margin: string;
449
449
  eventClass: string;
@@ -455,7 +455,7 @@ export declare const VCalendar: {
455
455
  events: any[];
456
456
  };
457
457
  }) => import("vue").VNodeChild) | undefined;
458
- "v-slot:intervalTitle"?: false | ((arg: {
458
+ "v-slot:interval-title"?: false | ((arg: {
459
459
  interval: {
460
460
  label: string;
461
461
  start: unknown;
@@ -525,7 +525,7 @@ export declare const VCalendar: {
525
525
  intervals: number;
526
526
  hideWeekNumber: boolean;
527
527
  }, true, {}, import("vue").SlotsType<Partial<{
528
- intervalBody: (arg: {
528
+ 'interval-body': (arg: {
529
529
  interval: {
530
530
  label: string;
531
531
  start: unknown;
@@ -533,7 +533,7 @@ export declare const VCalendar: {
533
533
  events: any[];
534
534
  };
535
535
  }) => import("vue").VNode[];
536
- intervalEvent: (arg: {
536
+ 'interval-event': (arg: {
537
537
  height: string;
538
538
  margin: string;
539
539
  eventClass: string;
@@ -545,7 +545,7 @@ export declare const VCalendar: {
545
545
  events: any[];
546
546
  };
547
547
  }) => import("vue").VNode[];
548
- intervalTitle: (arg: {
548
+ 'interval-title': (arg: {
549
549
  interval: {
550
550
  label: string;
551
551
  start: unknown;
@@ -621,7 +621,7 @@ export declare const VCalendar: {
621
621
  dayIndex?: number | undefined;
622
622
  } & {
623
623
  $children?: {} | import("vue").VNodeChild | {
624
- intervalBody?: ((arg: {
624
+ 'interval-body'?: ((arg: {
625
625
  interval: {
626
626
  label: string;
627
627
  start: unknown;
@@ -629,7 +629,7 @@ export declare const VCalendar: {
629
629
  events: any[];
630
630
  };
631
631
  }) => import("vue").VNodeChild) | undefined;
632
- intervalEvent?: ((arg: {
632
+ 'interval-event'?: ((arg: {
633
633
  height: string;
634
634
  margin: string;
635
635
  eventClass: string;
@@ -641,7 +641,7 @@ export declare const VCalendar: {
641
641
  events: any[];
642
642
  };
643
643
  }) => import("vue").VNodeChild) | undefined;
644
- intervalTitle?: ((arg: {
644
+ 'interval-title'?: ((arg: {
645
645
  interval: {
646
646
  label: string;
647
647
  start: unknown;
@@ -678,7 +678,7 @@ export declare const VCalendar: {
678
678
  }) => import("vue").VNodeChild) | undefined;
679
679
  };
680
680
  'v-slots'?: {
681
- intervalBody?: false | ((arg: {
681
+ 'interval-body'?: false | ((arg: {
682
682
  interval: {
683
683
  label: string;
684
684
  start: unknown;
@@ -686,7 +686,7 @@ export declare const VCalendar: {
686
686
  events: any[];
687
687
  };
688
688
  }) => import("vue").VNodeChild) | undefined;
689
- intervalEvent?: false | ((arg: {
689
+ 'interval-event'?: false | ((arg: {
690
690
  height: string;
691
691
  margin: string;
692
692
  eventClass: string;
@@ -698,7 +698,7 @@ export declare const VCalendar: {
698
698
  events: any[];
699
699
  };
700
700
  }) => import("vue").VNodeChild) | undefined;
701
- intervalTitle?: false | ((arg: {
701
+ 'interval-title'?: false | ((arg: {
702
702
  interval: {
703
703
  label: string;
704
704
  start: unknown;
@@ -735,7 +735,7 @@ export declare const VCalendar: {
735
735
  }) => import("vue").VNodeChild) | undefined;
736
736
  } | undefined;
737
737
  } & {
738
- "v-slot:intervalBody"?: false | ((arg: {
738
+ "v-slot:interval-body"?: false | ((arg: {
739
739
  interval: {
740
740
  label: string;
741
741
  start: unknown;
@@ -743,7 +743,7 @@ export declare const VCalendar: {
743
743
  events: any[];
744
744
  };
745
745
  }) => import("vue").VNodeChild) | undefined;
746
- "v-slot:intervalEvent"?: false | ((arg: {
746
+ "v-slot:interval-event"?: false | ((arg: {
747
747
  height: string;
748
748
  margin: string;
749
749
  eventClass: string;
@@ -755,7 +755,7 @@ export declare const VCalendar: {
755
755
  events: any[];
756
756
  };
757
757
  }) => import("vue").VNodeChild) | undefined;
758
- "v-slot:intervalTitle"?: false | ((arg: {
758
+ "v-slot:interval-title"?: false | ((arg: {
759
759
  interval: {
760
760
  label: string;
761
761
  start: unknown;
@@ -857,7 +857,7 @@ export declare const VCalendar: {
857
857
  dayIndex?: number | undefined;
858
858
  } & {
859
859
  $children?: {} | import("vue").VNodeChild | {
860
- intervalBody?: ((arg: {
860
+ 'interval-body'?: ((arg: {
861
861
  interval: {
862
862
  label: string;
863
863
  start: unknown;
@@ -865,7 +865,7 @@ export declare const VCalendar: {
865
865
  events: any[];
866
866
  };
867
867
  }) => import("vue").VNodeChild) | undefined;
868
- intervalEvent?: ((arg: {
868
+ 'interval-event'?: ((arg: {
869
869
  height: string;
870
870
  margin: string;
871
871
  eventClass: string;
@@ -877,7 +877,7 @@ export declare const VCalendar: {
877
877
  events: any[];
878
878
  };
879
879
  }) => import("vue").VNodeChild) | undefined;
880
- intervalTitle?: ((arg: {
880
+ 'interval-title'?: ((arg: {
881
881
  interval: {
882
882
  label: string;
883
883
  start: unknown;
@@ -914,7 +914,7 @@ export declare const VCalendar: {
914
914
  }) => import("vue").VNodeChild) | undefined;
915
915
  };
916
916
  'v-slots'?: {
917
- intervalBody?: false | ((arg: {
917
+ 'interval-body'?: false | ((arg: {
918
918
  interval: {
919
919
  label: string;
920
920
  start: unknown;
@@ -922,7 +922,7 @@ export declare const VCalendar: {
922
922
  events: any[];
923
923
  };
924
924
  }) => import("vue").VNodeChild) | undefined;
925
- intervalEvent?: false | ((arg: {
925
+ 'interval-event'?: false | ((arg: {
926
926
  height: string;
927
927
  margin: string;
928
928
  eventClass: string;
@@ -934,7 +934,7 @@ export declare const VCalendar: {
934
934
  events: any[];
935
935
  };
936
936
  }) => import("vue").VNodeChild) | undefined;
937
- intervalTitle?: false | ((arg: {
937
+ 'interval-title'?: false | ((arg: {
938
938
  interval: {
939
939
  label: string;
940
940
  start: unknown;
@@ -971,7 +971,7 @@ export declare const VCalendar: {
971
971
  }) => import("vue").VNodeChild) | undefined;
972
972
  } | undefined;
973
973
  } & {
974
- "v-slot:intervalBody"?: false | ((arg: {
974
+ "v-slot:interval-body"?: false | ((arg: {
975
975
  interval: {
976
976
  label: string;
977
977
  start: unknown;
@@ -979,7 +979,7 @@ export declare const VCalendar: {
979
979
  events: any[];
980
980
  };
981
981
  }) => import("vue").VNodeChild) | undefined;
982
- "v-slot:intervalEvent"?: false | ((arg: {
982
+ "v-slot:interval-event"?: false | ((arg: {
983
983
  height: string;
984
984
  margin: string;
985
985
  eventClass: string;
@@ -991,7 +991,7 @@ export declare const VCalendar: {
991
991
  events: any[];
992
992
  };
993
993
  }) => import("vue").VNodeChild) | undefined;
994
- "v-slot:intervalTitle"?: false | ((arg: {
994
+ "v-slot:interval-title"?: false | ((arg: {
995
995
  interval: {
996
996
  label: string;
997
997
  start: unknown;
@@ -1061,7 +1061,7 @@ export declare const VCalendar: {
1061
1061
  intervals: number;
1062
1062
  hideWeekNumber: boolean;
1063
1063
  }, {}, string, import("vue").SlotsType<Partial<{
1064
- intervalBody: (arg: {
1064
+ 'interval-body': (arg: {
1065
1065
  interval: {
1066
1066
  label: string;
1067
1067
  start: unknown;
@@ -1069,7 +1069,7 @@ export declare const VCalendar: {
1069
1069
  events: any[];
1070
1070
  };
1071
1071
  }) => import("vue").VNode[];
1072
- intervalEvent: (arg: {
1072
+ 'interval-event': (arg: {
1073
1073
  height: string;
1074
1074
  margin: string;
1075
1075
  eventClass: string;
@@ -1081,7 +1081,7 @@ export declare const VCalendar: {
1081
1081
  events: any[];
1082
1082
  };
1083
1083
  }) => import("vue").VNode[];
1084
- intervalTitle: (arg: {
1084
+ 'interval-title': (arg: {
1085
1085
  interval: {
1086
1086
  label: string;
1087
1087
  start: unknown;
@@ -40,9 +40,8 @@ export const VCalendar = genericComponent()({
40
40
  model,
41
41
  displayValue,
42
42
  weekNumbers,
43
- weekDays
43
+ weekdayLabels
44
44
  } = useCalendar(props);
45
- const dayNames = adapter.getWeekdays();
46
45
  function onClickNext() {
47
46
  if (props.viewMode === 'month') {
48
47
  model.value = [adapter.addMonths(displayValue.value, 1)];
@@ -80,6 +79,7 @@ export const VCalendar = genericComponent()({
80
79
  useRender(() => {
81
80
  const calendarDayProps = VCalendarDay.filterProps(props);
82
81
  const calendarHeaderProps = VCalendarHeader.filterProps(props);
82
+ const weekdaysCount = daysInWeek.value.length;
83
83
  return _createElementVNode("div", {
84
84
  "class": _normalizeClass(['v-calendar', {
85
85
  'v-calendar-monthly': props.viewMode === 'month',
@@ -101,19 +101,19 @@ export const VCalendar = genericComponent()({
101
101
  }), {
102
102
  title: slots.title
103
103
  }))]), _createElementVNode("div", {
104
- "class": _normalizeClass(['v-calendar__container', `days__${weekDays.value.length}`])
104
+ "class": _normalizeClass(['v-calendar__container', `days__${weekdaysCount}`])
105
105
  }, [props.viewMode === 'month' && !props.hideDayHeader && _createElementVNode("div", {
106
- "class": _normalizeClass(['v-calendar-weekly__head', `days__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])]),
106
+ "class": _normalizeClass(['v-calendar-weekly__head', `days__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])]),
107
107
  "key": "calendarWeeklyHead"
108
108
  }, [!props.hideWeekNumber ? _createElementVNode("div", {
109
109
  "key": "weekNumber0",
110
110
  "class": "v-calendar-weekly__head-weeknumber"
111
- }, null) : '', weekDays.value.map(weekday => _createElementVNode("div", {
111
+ }, null) : '', weekdayLabels.value.map(weekday => _createElementVNode("div", {
112
112
  "class": _normalizeClass(`v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}`)
113
- }, [dayNames[weekday]]))]), props.viewMode === 'month' && _createElementVNode("div", {
113
+ }, [weekday]))]), props.viewMode === 'month' && _createElementVNode("div", {
114
114
  "key": "VCalendarMonth",
115
- "class": _normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])])
116
- }, [chunkArray(daysInMonth.value, weekDays.value.length).map((week, wi) => [!props.hideWeekNumber ? _createElementVNode("div", _mergeProps({
115
+ "class": _normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])])
116
+ }, [chunkArray(daysInMonth.value, weekdaysCount).map((week, wi) => [!props.hideWeekNumber ? _createElementVNode("div", _mergeProps({
117
117
  "class": "v-calendar-month__weeknumber"
118
118
  }, getPrefixedEventHandlers(attrs, ':weekNumber', () => ({
119
119
  weekNumber: weekNumbers.value[wi],
@@ -136,7 +136,7 @@ export const VCalendar = genericComponent()({
136
136
  "dayIndex": i,
137
137
  "events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
138
138
  }, attrs), {
139
- ...pick(slots, ['interval', 'intervalBody', 'intervalEvent', 'intervalTitle'])
139
+ ...pick(slots, ['interval', 'interval-body', 'interval-event', 'interval-title'])
140
140
  })), props.viewMode === 'day' && (slots['day-interval'] ? slots['day-interval']({
141
141
  day: genDays([displayValue.value], adapter.date())[0],
142
142
  dayIndex: 0,
@@ -1 +1 @@
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","_createElementVNode","_normalizeClass","header","clickNext","clickPrev","clickToday","_createVNode","_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":[]}
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","weekdayLabels","onClickNext","viewMode","value","addMonths","addDays","onClickPrev","onClickToday","date","title","format","calendarDayProps","filterProps","calendarHeaderProps","weekdaysCount","length","_createElementVNode","_normalizeClass","header","clickNext","clickPrev","clickToday","_createVNode","_mergeProps","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, weekdayLabels } = useCalendar(props as any)\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 const weekdaysCount = daysInWeek.value.length\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__${weekdaysCount}`]}>\n { props.viewMode === 'month' && !props.hideDayHeader && (\n <div\n class={\n [\n 'v-calendar-weekly__head',\n `days__${weekdaysCount}`,\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 weekdayLabels.value.map(weekday => (\n <div class={ `v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}` }>\n { 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' : ''}__${weekdaysCount}`,\n ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : []),\n ]\n }\n >\n { chunkArray(daysInMonth.value, weekdaysCount)\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', 'interval-body', 'interval-event', 'interval-title']) }}\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":[]}