vuetify 3.8.11 → 3.8.12

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 (64) hide show
  1. package/dist/json/attributes.json +3312 -3312
  2. package/dist/json/importMap-labs.json +26 -26
  3. package/dist/json/importMap.json +166 -166
  4. package/dist/json/web-types.json +6235 -6235
  5. package/dist/vuetify-labs.cjs +61 -63
  6. package/dist/vuetify-labs.css +4191 -4191
  7. package/dist/vuetify-labs.d.ts +204 -204
  8. package/dist/vuetify-labs.esm.js +61 -63
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +61 -63
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.cjs +36 -39
  13. package/dist/vuetify.cjs.map +1 -1
  14. package/dist/vuetify.css +4025 -4025
  15. package/dist/vuetify.d.ts +61 -61
  16. package/dist/vuetify.esm.js +36 -39
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +36 -39
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +34 -35
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/components/VDataTable/VDataTableColumn.js +0 -1
  24. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  25. package/lib/components/VDataTable/VDataTableHeaders.js +5 -5
  26. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  27. package/lib/components/VDataTable/composables/sort.js +2 -1
  28. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  29. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -2
  30. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  31. package/lib/components/VOtpInput/VOtpInput.js +17 -14
  32. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  33. package/lib/components/VOverlay/locationStrategies.js +1 -1
  34. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  35. package/lib/components/VTextField/VTextField.js +1 -1
  36. package/lib/components/VTextField/VTextField.js.map +1 -1
  37. package/lib/composables/calendar.d.ts +0 -1
  38. package/lib/composables/calendar.js +6 -10
  39. package/lib/composables/calendar.js.map +1 -1
  40. package/lib/composables/date/adapters/vuetify.js +1 -1
  41. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  42. package/lib/composables/virtual.js +1 -1
  43. package/lib/composables/virtual.js.map +1 -1
  44. package/lib/entry-bundler.js +1 -1
  45. package/lib/framework.d.ts +61 -61
  46. package/lib/framework.js +1 -1
  47. package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
  48. package/lib/labs/VCalendar/VCalendar.js +9 -9
  49. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  50. package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
  51. package/lib/labs/VCalendar/VCalendarDay.js +1 -1
  52. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  53. package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
  54. package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
  55. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  56. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
  57. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
  58. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  59. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
  60. package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
  61. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  62. package/lib/labs/VIconBtn/VIconBtn.js +1 -0
  63. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  64. package/package.json +2 -2
@@ -315,7 +315,7 @@ export declare const VCalendar: {
315
315
  dayIndex?: number | undefined;
316
316
  } & {
317
317
  $children?: {} | import("vue").VNodeChild | {
318
- intervalBody?: ((arg: {
318
+ 'interval-body'?: ((arg: {
319
319
  interval: {
320
320
  label: string;
321
321
  start: unknown;
@@ -323,7 +323,7 @@ export declare const VCalendar: {
323
323
  events: any[];
324
324
  };
325
325
  }) => import("vue").VNodeChild) | undefined;
326
- intervalEvent?: ((arg: {
326
+ 'interval-event'?: ((arg: {
327
327
  height: string;
328
328
  margin: string;
329
329
  eventClass: string;
@@ -335,7 +335,7 @@ export declare const VCalendar: {
335
335
  events: any[];
336
336
  };
337
337
  }) => import("vue").VNodeChild) | undefined;
338
- intervalTitle?: ((arg: {
338
+ 'interval-title'?: ((arg: {
339
339
  interval: {
340
340
  label: string;
341
341
  start: unknown;
@@ -372,7 +372,7 @@ export declare const VCalendar: {
372
372
  }) => import("vue").VNodeChild) | undefined;
373
373
  };
374
374
  'v-slots'?: {
375
- intervalBody?: false | ((arg: {
375
+ 'interval-body'?: false | ((arg: {
376
376
  interval: {
377
377
  label: string;
378
378
  start: unknown;
@@ -380,7 +380,7 @@ export declare const VCalendar: {
380
380
  events: any[];
381
381
  };
382
382
  }) => import("vue").VNodeChild) | undefined;
383
- intervalEvent?: false | ((arg: {
383
+ 'interval-event'?: false | ((arg: {
384
384
  height: string;
385
385
  margin: string;
386
386
  eventClass: string;
@@ -392,7 +392,7 @@ export declare const VCalendar: {
392
392
  events: any[];
393
393
  };
394
394
  }) => import("vue").VNodeChild) | undefined;
395
- intervalTitle?: false | ((arg: {
395
+ 'interval-title'?: false | ((arg: {
396
396
  interval: {
397
397
  label: string;
398
398
  start: unknown;
@@ -429,7 +429,7 @@ export declare const VCalendar: {
429
429
  }) => import("vue").VNodeChild) | undefined;
430
430
  } | undefined;
431
431
  } & {
432
- "v-slot:intervalBody"?: false | ((arg: {
432
+ "v-slot:interval-body"?: false | ((arg: {
433
433
  interval: {
434
434
  label: string;
435
435
  start: unknown;
@@ -437,7 +437,7 @@ export declare const VCalendar: {
437
437
  events: any[];
438
438
  };
439
439
  }) => import("vue").VNodeChild) | undefined;
440
- "v-slot:intervalEvent"?: false | ((arg: {
440
+ "v-slot:interval-event"?: false | ((arg: {
441
441
  height: string;
442
442
  margin: string;
443
443
  eventClass: string;
@@ -449,7 +449,7 @@ export declare const VCalendar: {
449
449
  events: any[];
450
450
  };
451
451
  }) => import("vue").VNodeChild) | undefined;
452
- "v-slot:intervalTitle"?: false | ((arg: {
452
+ "v-slot:interval-title"?: false | ((arg: {
453
453
  interval: {
454
454
  label: string;
455
455
  start: unknown;
@@ -519,7 +519,7 @@ export declare const VCalendar: {
519
519
  intervals: number;
520
520
  hideWeekNumber: boolean;
521
521
  }, true, {}, import("vue").SlotsType<Partial<{
522
- intervalBody: (arg: {
522
+ 'interval-body': (arg: {
523
523
  interval: {
524
524
  label: string;
525
525
  start: unknown;
@@ -527,7 +527,7 @@ export declare const VCalendar: {
527
527
  events: any[];
528
528
  };
529
529
  }) => import("vue").VNode[];
530
- intervalEvent: (arg: {
530
+ 'interval-event': (arg: {
531
531
  height: string;
532
532
  margin: string;
533
533
  eventClass: string;
@@ -539,7 +539,7 @@ export declare const VCalendar: {
539
539
  events: any[];
540
540
  };
541
541
  }) => import("vue").VNode[];
542
- intervalTitle: (arg: {
542
+ 'interval-title': (arg: {
543
543
  interval: {
544
544
  label: string;
545
545
  start: unknown;
@@ -614,7 +614,7 @@ export declare const VCalendar: {
614
614
  dayIndex?: number | undefined;
615
615
  } & {
616
616
  $children?: {} | import("vue").VNodeChild | {
617
- intervalBody?: ((arg: {
617
+ 'interval-body'?: ((arg: {
618
618
  interval: {
619
619
  label: string;
620
620
  start: unknown;
@@ -622,7 +622,7 @@ export declare const VCalendar: {
622
622
  events: any[];
623
623
  };
624
624
  }) => import("vue").VNodeChild) | undefined;
625
- intervalEvent?: ((arg: {
625
+ 'interval-event'?: ((arg: {
626
626
  height: string;
627
627
  margin: string;
628
628
  eventClass: string;
@@ -634,7 +634,7 @@ export declare const VCalendar: {
634
634
  events: any[];
635
635
  };
636
636
  }) => import("vue").VNodeChild) | undefined;
637
- intervalTitle?: ((arg: {
637
+ 'interval-title'?: ((arg: {
638
638
  interval: {
639
639
  label: string;
640
640
  start: unknown;
@@ -671,7 +671,7 @@ export declare const VCalendar: {
671
671
  }) => import("vue").VNodeChild) | undefined;
672
672
  };
673
673
  'v-slots'?: {
674
- intervalBody?: false | ((arg: {
674
+ 'interval-body'?: false | ((arg: {
675
675
  interval: {
676
676
  label: string;
677
677
  start: unknown;
@@ -679,7 +679,7 @@ export declare const VCalendar: {
679
679
  events: any[];
680
680
  };
681
681
  }) => import("vue").VNodeChild) | undefined;
682
- intervalEvent?: false | ((arg: {
682
+ 'interval-event'?: false | ((arg: {
683
683
  height: string;
684
684
  margin: string;
685
685
  eventClass: string;
@@ -691,7 +691,7 @@ export declare const VCalendar: {
691
691
  events: any[];
692
692
  };
693
693
  }) => import("vue").VNodeChild) | undefined;
694
- intervalTitle?: false | ((arg: {
694
+ 'interval-title'?: false | ((arg: {
695
695
  interval: {
696
696
  label: string;
697
697
  start: unknown;
@@ -728,7 +728,7 @@ export declare const VCalendar: {
728
728
  }) => import("vue").VNodeChild) | undefined;
729
729
  } | undefined;
730
730
  } & {
731
- "v-slot:intervalBody"?: false | ((arg: {
731
+ "v-slot:interval-body"?: false | ((arg: {
732
732
  interval: {
733
733
  label: string;
734
734
  start: unknown;
@@ -736,7 +736,7 @@ export declare const VCalendar: {
736
736
  events: any[];
737
737
  };
738
738
  }) => import("vue").VNodeChild) | undefined;
739
- "v-slot:intervalEvent"?: false | ((arg: {
739
+ "v-slot:interval-event"?: false | ((arg: {
740
740
  height: string;
741
741
  margin: string;
742
742
  eventClass: string;
@@ -748,7 +748,7 @@ export declare const VCalendar: {
748
748
  events: any[];
749
749
  };
750
750
  }) => import("vue").VNodeChild) | undefined;
751
- "v-slot:intervalTitle"?: false | ((arg: {
751
+ "v-slot:interval-title"?: false | ((arg: {
752
752
  interval: {
753
753
  label: string;
754
754
  start: unknown;
@@ -849,7 +849,7 @@ export declare const VCalendar: {
849
849
  dayIndex?: number | undefined;
850
850
  } & {
851
851
  $children?: {} | import("vue").VNodeChild | {
852
- intervalBody?: ((arg: {
852
+ 'interval-body'?: ((arg: {
853
853
  interval: {
854
854
  label: string;
855
855
  start: unknown;
@@ -857,7 +857,7 @@ export declare const VCalendar: {
857
857
  events: any[];
858
858
  };
859
859
  }) => import("vue").VNodeChild) | undefined;
860
- intervalEvent?: ((arg: {
860
+ 'interval-event'?: ((arg: {
861
861
  height: string;
862
862
  margin: string;
863
863
  eventClass: string;
@@ -869,7 +869,7 @@ export declare const VCalendar: {
869
869
  events: any[];
870
870
  };
871
871
  }) => import("vue").VNodeChild) | undefined;
872
- intervalTitle?: ((arg: {
872
+ 'interval-title'?: ((arg: {
873
873
  interval: {
874
874
  label: string;
875
875
  start: unknown;
@@ -906,7 +906,7 @@ export declare const VCalendar: {
906
906
  }) => import("vue").VNodeChild) | undefined;
907
907
  };
908
908
  'v-slots'?: {
909
- intervalBody?: false | ((arg: {
909
+ 'interval-body'?: false | ((arg: {
910
910
  interval: {
911
911
  label: string;
912
912
  start: unknown;
@@ -914,7 +914,7 @@ export declare const VCalendar: {
914
914
  events: any[];
915
915
  };
916
916
  }) => import("vue").VNodeChild) | undefined;
917
- intervalEvent?: false | ((arg: {
917
+ 'interval-event'?: false | ((arg: {
918
918
  height: string;
919
919
  margin: string;
920
920
  eventClass: string;
@@ -926,7 +926,7 @@ export declare const VCalendar: {
926
926
  events: any[];
927
927
  };
928
928
  }) => import("vue").VNodeChild) | undefined;
929
- intervalTitle?: false | ((arg: {
929
+ 'interval-title'?: false | ((arg: {
930
930
  interval: {
931
931
  label: string;
932
932
  start: unknown;
@@ -963,7 +963,7 @@ export declare const VCalendar: {
963
963
  }) => import("vue").VNodeChild) | undefined;
964
964
  } | undefined;
965
965
  } & {
966
- "v-slot:intervalBody"?: false | ((arg: {
966
+ "v-slot:interval-body"?: false | ((arg: {
967
967
  interval: {
968
968
  label: string;
969
969
  start: unknown;
@@ -971,7 +971,7 @@ export declare const VCalendar: {
971
971
  events: any[];
972
972
  };
973
973
  }) => import("vue").VNodeChild) | undefined;
974
- "v-slot:intervalEvent"?: false | ((arg: {
974
+ "v-slot:interval-event"?: false | ((arg: {
975
975
  height: string;
976
976
  margin: string;
977
977
  eventClass: string;
@@ -983,7 +983,7 @@ export declare const VCalendar: {
983
983
  events: any[];
984
984
  };
985
985
  }) => import("vue").VNodeChild) | undefined;
986
- "v-slot:intervalTitle"?: false | ((arg: {
986
+ "v-slot:interval-title"?: false | ((arg: {
987
987
  interval: {
988
988
  label: string;
989
989
  start: unknown;
@@ -1053,7 +1053,7 @@ export declare const VCalendar: {
1053
1053
  intervals: number;
1054
1054
  hideWeekNumber: boolean;
1055
1055
  }, {}, string, import("vue").SlotsType<Partial<{
1056
- intervalBody: (arg: {
1056
+ 'interval-body': (arg: {
1057
1057
  interval: {
1058
1058
  label: string;
1059
1059
  start: unknown;
@@ -1061,7 +1061,7 @@ export declare const VCalendar: {
1061
1061
  events: any[];
1062
1062
  };
1063
1063
  }) => import("vue").VNode[];
1064
- intervalEvent: (arg: {
1064
+ 'interval-event': (arg: {
1065
1065
  height: string;
1066
1066
  margin: string;
1067
1067
  eventClass: string;
@@ -1073,7 +1073,7 @@ export declare const VCalendar: {
1073
1073
  events: any[];
1074
1074
  };
1075
1075
  }) => import("vue").VNode[];
1076
- intervalTitle: (arg: {
1076
+ 'interval-title': (arg: {
1077
1077
  interval: {
1078
1078
  label: string;
1079
1079
  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":";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,EAAEC,QAAQ,QAAQ,KAAK;AAAA,SAC/BC,UAAU,EAAEC,gBAAgB,EAAEC,wBAAwB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,+BAE9F;AAIA,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,UAAU,EAAEC,OAAO;EACnBC,cAAc,EAAED,OAAO;EAEvB,GAAGb,iBAAiB,CAAC,CAAC;EACtB,GAAGL,qBAAqB,CAAC,CAAC;EAC1B,GAAGE,wBAAwB,CAAC;AAC9B,CAAC,EAAE,WAAW,CAAC;AAWf,OAAO,MAAMkB,SAAS,GAAGT,gBAAgB,CAAiB,CAAC,CAAC;EAC1DU,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEN,kBAAkB,CAAC,CAAC;EAE3BO,KAAK,EAAE;IACLC,IAAI,EAAE,IAAI;IACVC,IAAI,EAAE,IAAI;IACVC,KAAK,EAAE,IAAI;IACX,mBAAmB,EAAE;EACvB,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAMI,OAAO,GAAGzB,OAAO,CAAC,CAAC;IAEzB,MAAM;MAAE0B,WAAW;MAAEC,UAAU;MAAEC,OAAO;MAAEC,KAAK;MAAEC,YAAY;MAAEC,WAAW;MAAEC;IAAS,CAAC,GAAGjC,WAAW,CAACgB,KAAY,CAAC;IAElH,MAAMkB,QAAQ,GAAGR,OAAO,CAACS,WAAW,CAAC,CAAC;IAEtC,SAASC,WAAWA,CAAA,EAAI;MACtB,IAAIpB,KAAK,CAACqB,QAAQ,KAAK,OAAO,EAAE;QAC9BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACa,SAAS,CAACR,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC;MAC1D,CAAC,MAAM,IAAItB,KAAK,CAACqB,QAAQ,KAAK,MAAM,EAAE;QACpCP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC;MACxD,CAAC,MAAM,IAAItB,KAAK,CAACqB,QAAQ,KAAK,KAAK,EAAE;QACnCP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC;MACxD;MACAnC,QAAQ,CAAC,MAAM;QACbqB,IAAI,CAAC,MAAM,EAAEM,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAC;MAC9B,CAAC,CAAC;IACJ;IAEA,SAASG,WAAWA,CAAA,EAAI;MACtB,IAAIzB,KAAK,CAACqB,QAAQ,KAAK,OAAO,EAAE;QAC9BP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACa,SAAS,CAACR,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;MAC3D,CAAC,MAAM,IAAItB,KAAK,CAACqB,QAAQ,KAAK,MAAM,EAAE;QACpCP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;MACzD,CAAC,MAAM,IAAItB,KAAK,CAACqB,QAAQ,KAAK,KAAK,EAAE;QACnCP,KAAK,CAACQ,KAAK,GAAG,CAACZ,OAAO,CAACc,OAAO,CAACT,YAAY,CAACO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;MACzD;MACAnC,QAAQ,CAAC,MAAM;QACbqB,IAAI,CAAC,MAAM,EAAEM,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAC;MAC9B,CAAC,CAAC;IACJ;IAEA,SAASI,YAAYA,CAAA,EAAI;MACvB,MAAMC,IAAI,GAAGjB,OAAO,CAACiB,IAAI,CAAC,CAAC;MAC3Bb,KAAK,CAACQ,KAAK,GAAG,CAACK,IAAI,CAAC;MACpBxC,QAAQ,CAAC,MAAM;QACbqB,IAAI,CAAC,OAAO,EAAEM,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAC;MAC/B,CAAC,CAAC;IACJ;IAEA,MAAMM,KAAK,GAAG1C,QAAQ,CAAC,MAAM;MAC3B,OAAOwB,OAAO,CAACmB,MAAM,CAACd,YAAY,CAACO,KAAK,EAAE,cAAc,CAAC;IAC3D,CAAC,CAAC;IAEF7B,SAAS,CAAC,MAAM;MACd,MAAMqC,gBAAgB,GAAGnD,YAAY,CAACoD,WAAW,CAAC/B,KAAK,CAAC;MACxD,MAAMgC,mBAAmB,GAAGnD,eAAe,CAACkD,WAAW,CAAC/B,KAAK,CAAC;MAE9D,OAAAiC,mBAAA;QAAA,SAAAC,eAAA,CACc,CACV,YAAY,EACZ;UACE,oBAAoB,EAAElC,KAAK,CAACqB,QAAQ,KAAK,OAAO;UAChD,mBAAmB,EAAErB,KAAK,CAACqB,QAAQ,KAAK,MAAM;UAC9C,gBAAgB,EAAErB,KAAK,CAACqB,QAAQ,KAAK;QACvC,CAAC,CACF;MAAA,IAAAY,mBAAA,eAGK,CAACjC,KAAK,CAACL,UAAU,KACjBc,KAAK,CAAC0B,MAAM,GAAG;QACbP,KAAK,EAAEA,KAAK,CAACN,KAAK;QAClBc,SAAS,EAAEhB,WAAW;QACtBiB,SAAS,EAAEZ,WAAW;QACtBa,UAAU,EAAEZ;MACd,CAAC,CAAC,IAAAa,YAAA,CAAA1D,eAAA,EAAA2D,WAAA;QAAA;MAAA,GAGOR,mBAAmB;QAAA,SAChBJ,KAAK,CAACN,KAAK;QAAA,gBACJF,WAAW;QAAA,gBACXK,WAAW;QAAA,mBACRC;MAAY;QAE3BE,KAAK,EAAEnB,KAAK,CAACmB;MAAK,EAExB,CACF,IAAAK,mBAAA;QAAA,SAAAC,eAAA,CAGS,CAAC,uBAAuB,EAAE,SAASjB,QAAQ,CAACK,KAAK,CAACmB,MAAM,EAAE,CAAC;MAAA,IACnEzC,KAAK,CAACqB,QAAQ,KAAK,OAAO,IAAI,CAACrB,KAAK,CAAC0C,aAAa,IAAAT,mBAAA;QAAA,SAAAC,eAAA,CAG9C,CACE,yBAAyB,EACzB,SAASjB,QAAQ,CAACK,KAAK,CAACmB,MAAM,EAAE,EAChC,IAAI,CAACzC,KAAK,CAACH,cAAc,GAAG,CAAC,qCAAqC,CAAC,GAAG,EAAE,CAAC,CAC1E;QAAA;MAAA,IAID,CAACG,KAAK,CAACH,cAAc,GAAAoC,mBAAA;QAAA;QAAA;MAAA,WAA8E,EAAE,EAErGhB,QAAQ,CAACK,KAAK,CAACqB,GAAG,CAACC,OAAO,IAAAX,mBAAA;QAAA,SAAAC,eAAA,CACX,kCAAkC,CAAClC,KAAK,CAACH,cAAc,GAAG,kBAAkB,GAAG,EAAE,EAAE;MAAA,IAC5FqB,QAAQ,CAAC0B,OAAO,CAAC,EAEtB,CAAC,EAGP,EAEC5C,KAAK,CAACqB,QAAQ,KAAK,OAAO,IAAAY,mBAAA;QAAA;QAAA,SAAAC,eAAA,CAItB,CACE,wBAAwB,EACxB,OAAO,CAAClC,KAAK,CAACH,cAAc,GAAG,mBAAmB,GAAG,EAAE,KAAKoB,QAAQ,CAACK,KAAK,CAACmB,MAAM,EAAE,EACnF,IAAI,CAACzC,KAAK,CAACH,cAAc,GAAG,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAC,CACpE;MAAA,IAGDT,UAAU,CAACuB,WAAW,CAACW,KAAK,EAAEL,QAAQ,CAACK,KAAK,CAACmB,MAAM,CAAC,CACnDE,GAAG,CAAC,CAACE,IAAI,EAAEC,EAAE,KACZ,CACE,CAAC9C,KAAK,CAACH,cAAc,GAAAoC,mBAAA,QAAAO,WAAA;QAAA;MAAA,GAGZlD,wBAAwB,CAACiB,KAAK,EAAE,aAAa,EAAE,OAAO;QAAEwC,UAAU,EAAE/B,WAAW,CAACM,KAAK,CAACwB,EAAE,CAAC;QAAED;MAAK,CAAC,CAAC,CAAC,IACvG7B,WAAW,CAACM,KAAK,CAACwB,EAAE,CAAC,KACtB,EAAE,EACND,IAAI,CAACF,GAAG,CAACK,GAAG,IAAAT,YAAA,CAAAzD,iBAAA,EAAA0D,WAAA;QAAA,OAEAQ,GAAG,CAACrB,IAAI,CAACsB,OAAO,CAAC;MAAC,GACnBnB,gBAAgB;QAAA,OACfkB,GAAG;QAAA,SACDtC,OAAO,CAACmB,MAAM,CAACmB,GAAG,CAACrB,IAAI,EAAE,YAAY,CAAC;QAAA,UACrC3B,KAAK,CAACkD,MAAM,EAAEC,MAAM,CAACC,CAAC,IAAI1C,OAAO,CAAC2C,SAAS,CAACL,GAAG,CAACrB,IAAI,EAAEyB,CAAC,CAACE,KAAK,CAAC,IAAI5C,OAAO,CAAC2C,SAAS,CAACL,GAAG,CAACrB,IAAI,EAAEyB,CAAC,CAACG,GAAG,CAAC;MAAC,GACzGhD,KAAK;QAGR,GAAGhB,IAAI,CAACkB,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC;MAAC,EAG7D,CAAC,CAEL,CAAC,EAGP,EACCT,KAAK,CAACqB,QAAQ,KAAK,MAAM,IACzBT,UAAU,CAACU,KAAK,CAACqB,GAAG,CAAC,CAACK,GAAG,EAAEQ,CAAC,KAC1B/C,KAAK,CAAC,cAAc,CAAC,GAAGA,KAAK,CAAC,cAAc,CAAC,GAAG;QAC9C,GAAGqB,gBAAgB;QACnBkB,GAAG;QACHS,QAAQ,EAAED,CAAC;QACXN,MAAM,EAAElD,KAAK,CAACkD,MAAM,EAAEC,MAAM,CAACC,CAAC,IAAI1C,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACE,KAAK,EAAEN,GAAG,CAACrB,IAAI,CAAC,IAAIjB,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACG,GAAG,EAAEP,GAAG,CAACrB,IAAI,CAAC;MAC9G,CAAC,CAAC,GAAAY,YAAA,CAAA5D,YAAA,EAAA6D,WAAA,CAEOV,gBAAgB;QAAA,OACfkB,GAAG;QAAA,YACEQ,CAAC;QAAA,UACHxD,KAAK,CAACkD,MAAM,EAAEC,MAAM,CAACC,CAAC,IAAI1C,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACE,KAAK,EAAEN,GAAG,CAACrB,IAAI,CAAC,IAAIjB,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACG,GAAG,EAAEP,GAAG,CAACrB,IAAI,CAAC;MAAC,GACzGpB,KAAK;QAEP,GAAGhB,IAAI,CAACkB,KAAK,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,CAAC;MAAC,EAGvF,CAAE,EAGFT,KAAK,CAACqB,QAAQ,KAAK,KAAK,KACxBZ,KAAK,CAAC,cAAc,CAAC,GAAGA,KAAK,CAAC,cAAc,CAAC,CAAC;QAC5CuC,GAAG,EAAEnC,OAAO,CAAC,CAACE,YAAY,CAACO,KAAK,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC;QACrE8B,QAAQ,EAAE,CAAC;QACXP,MAAM,EAAElD,KAAK,CAACkD,MAAM,EAAEC,MAAM,CAACC,CAAC,IAC5B1C,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACE,KAAK,EAAEzC,OAAO,CAAC,CAACE,YAAY,CAACO,KAAK,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,IACjGjB,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACG,GAAG,EAAE1C,OAAO,CAAC,CAACE,YAAY,CAACO,KAAK,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAChG;MACF,CAAC,CAAC,GAAAY,YAAA,CAAA5D,YAAA,EAAA6D,WAAA,CAEOV,gBAAgB;QAAA,OACfjB,OAAO,CAAC,CAACC,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC;QAAA,YACvD,CAAC;QAAA,UAEV3B,KAAK,CAACkD,MAAM,EAAEC,MAAM,CAACC,CAAC,IACpB1C,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACE,KAAK,EAAEzC,OAAO,CAAC,CAACC,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,IAC7FjB,OAAO,CAAC2C,SAAS,CAACD,CAAC,CAACG,GAAG,EAAE1C,OAAO,CAAC,CAACC,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAS,EAAEZ,OAAO,CAACiB,IAAI,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAC5F;MAAC,GAEEpB,KAAK,QAEb,CACF;IAIT,CAAC,CAAC;IAEF,OAAO;MAAEI,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","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":[]}