@progress/kendo-vue-scheduler 9.3.0-develop.5 → 9.3.0-develop.7

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 (160) hide show
  1. package/Scheduler.d.ts +67 -4
  2. package/Scheduler.js +1 -1
  3. package/Scheduler.mjs +267 -115
  4. package/components/BaseView.js +1 -1
  5. package/components/BaseView.mjs +10 -4
  6. package/components/CurrentTimeMarker.js +1 -1
  7. package/components/CurrentTimeMarker.mjs +9 -9
  8. package/components/CurrentTimeMarkerArrow.js +1 -1
  9. package/components/CurrentTimeMarkerArrow.mjs +3 -3
  10. package/components/DateHeaderCell.js +1 -1
  11. package/components/DateHeaderCell.mjs +22 -13
  12. package/components/MoreEventsPopover.d.ts +77 -0
  13. package/components/MoreEventsPopover.js +8 -0
  14. package/components/MoreEventsPopover.mjs +125 -0
  15. package/components/SchedulerActionButtons.d.ts +6 -0
  16. package/components/SchedulerActionButtons.js +1 -1
  17. package/components/SchedulerActionButtons.mjs +25 -19
  18. package/components/SchedulerForm.d.ts +7 -0
  19. package/components/SchedulerForm.js +1 -1
  20. package/components/SchedulerForm.mjs +69 -61
  21. package/components/SchedulerOccurrenceDialog.d.ts +4 -4
  22. package/components/SchedulerOccurrenceDialog.js +1 -1
  23. package/components/SchedulerOccurrenceDialog.mjs +35 -26
  24. package/components/SchedulerRemoveDialog.d.ts +6 -0
  25. package/components/SchedulerRemoveDialog.js +1 -1
  26. package/components/SchedulerRemoveDialog.mjs +24 -23
  27. package/components/ShowMoreItemsButton.d.ts +10 -1
  28. package/components/ShowMoreItemsButton.js +1 -1
  29. package/components/ShowMoreItemsButton.mjs +40 -18
  30. package/components/footer/bussiness-hours/BusinessHours.js +1 -1
  31. package/components/footer/bussiness-hours/BusinessHours.mjs +16 -21
  32. package/components/header/SchedulerAdaptiveHeader.js +1 -1
  33. package/components/header/SchedulerAdaptiveHeader.mjs +28 -26
  34. package/components/header/SchedulerHeader.d.ts +5 -1
  35. package/components/header/SchedulerHeader.js +1 -1
  36. package/components/header/SchedulerHeader.mjs +11 -7
  37. package/components/header/navigation/NavigationDatePicker.d.ts +22 -3
  38. package/components/header/navigation/NavigationDatePicker.js +1 -1
  39. package/components/header/navigation/NavigationDatePicker.mjs +27 -30
  40. package/components/header/view-selector/ViewSelectorList.d.ts +26 -6
  41. package/components/header/view-selector/ViewSelectorList.js +1 -1
  42. package/components/header/view-selector/ViewSelectorList.mjs +55 -49
  43. package/dist/cdn/js/kendo-vue-scheduler.js +1 -1
  44. package/editors/RemoveRecurrenceConfirmDialog.d.ts +29 -0
  45. package/editors/RemoveRecurrenceConfirmDialog.js +8 -0
  46. package/editors/RemoveRecurrenceConfirmDialog.mjs +65 -0
  47. package/editors/ResourceEditor.d.ts +3 -0
  48. package/editors/ResourceEditor.js +1 -1
  49. package/editors/ResourceEditor.mjs +12 -10
  50. package/editors/SchedulerFormEditor.d.ts +1067 -2953
  51. package/editors/SchedulerFormEditor.js +1 -1
  52. package/editors/SchedulerFormEditor.mjs +297 -365
  53. package/editors/SchedulerRecurrenceDialog.d.ts +143 -0
  54. package/editors/SchedulerRecurrenceDialog.js +8 -0
  55. package/editors/SchedulerRecurrenceDialog.mjs +575 -0
  56. package/editors/TimezoneDropDownList.d.ts +46 -0
  57. package/editors/TimezoneDropDownList.js +8 -0
  58. package/editors/TimezoneDropDownList.mjs +63 -0
  59. package/editors/ZonedSplitDateTime.d.ts +65 -0
  60. package/editors/ZonedSplitDateTime.js +8 -0
  61. package/editors/ZonedSplitDateTime.mjs +100 -0
  62. package/hooks/main.d.ts +1 -0
  63. package/hooks/useGroupRowHeightSync.d.ts +10 -0
  64. package/hooks/useRecurrenceSummary.d.ts +10 -0
  65. package/hooks/useRecurrenceSummary.js +8 -0
  66. package/hooks/useRecurrenceSummary.mjs +74 -0
  67. package/hooks/useRowSync.js +1 -1
  68. package/hooks/useRowSync.mjs +23 -4
  69. package/hooks/useSlotExpand.js +1 -1
  70. package/hooks/useSlotExpand.mjs +36 -28
  71. package/index.d.mts +9 -3
  72. package/index.d.ts +9 -3
  73. package/index.js +1 -1
  74. package/index.mjs +83 -71
  75. package/items/SchedulerEditItem.d.ts +14 -3
  76. package/items/SchedulerEditItem.js +1 -1
  77. package/items/SchedulerEditItem.mjs +130 -72
  78. package/items/SchedulerItem.d.ts +10 -0
  79. package/items/SchedulerItem.js +1 -1
  80. package/items/SchedulerItem.mjs +153 -135
  81. package/items/SchedulerProportionalViewItem.d.ts +183 -0
  82. package/items/SchedulerProportionalViewItem.js +8 -0
  83. package/items/SchedulerProportionalViewItem.mjs +378 -0
  84. package/items/SchedulerViewItem.d.ts +3 -0
  85. package/items/SchedulerViewItem.js +1 -1
  86. package/items/SchedulerViewItem.mjs +107 -67
  87. package/messages/main.d.ts +186 -0
  88. package/messages/main.js +1 -1
  89. package/messages/main.mjs +226 -102
  90. package/models/Item.d.ts +2 -0
  91. package/models/Occurrence.d.ts +2 -0
  92. package/models/SchedulerModelFields.d.ts +5 -0
  93. package/models/SchedulerResource.d.ts +6 -0
  94. package/models/SchedulerView.d.ts +2 -0
  95. package/package-metadata.js +1 -1
  96. package/package-metadata.mjs +2 -2
  97. package/package.json +12 -11
  98. package/recurrence/common.js +1 -1
  99. package/recurrence/common.mjs +36 -39
  100. package/services/itemsService.js +1 -1
  101. package/services/itemsService.mjs +31 -27
  102. package/services/occurrenceService.js +1 -1
  103. package/services/occurrenceService.mjs +41 -35
  104. package/slots/SchedulerEditSlot.d.ts +2 -0
  105. package/slots/SchedulerEditSlot.js +1 -1
  106. package/slots/SchedulerEditSlot.mjs +27 -28
  107. package/slots/SchedulerSlot.d.ts +4 -0
  108. package/slots/SchedulerSlot.js +1 -1
  109. package/slots/SchedulerSlot.mjs +10 -1
  110. package/slots/SchedulerViewSlot.d.ts +5 -0
  111. package/slots/SchedulerViewSlot.js +1 -1
  112. package/slots/SchedulerViewSlot.mjs +70 -50
  113. package/tasks/SchedulerEditTask.d.ts +6 -0
  114. package/tasks/SchedulerEditTask.js +1 -1
  115. package/tasks/SchedulerEditTask.mjs +64 -23
  116. package/tasks/SchedulerTask.d.ts +15 -0
  117. package/tasks/SchedulerTask.js +1 -1
  118. package/tasks/SchedulerTask.mjs +39 -28
  119. package/tasks/SchedulerViewTask.d.ts +9 -0
  120. package/tasks/SchedulerViewTask.js +1 -1
  121. package/tasks/SchedulerViewTask.mjs +10 -5
  122. package/utils/main.d.ts +4 -1
  123. package/utils/main.js +1 -1
  124. package/utils/main.mjs +133 -112
  125. package/views/agenda/AgendaView.js +1 -1
  126. package/views/agenda/AgendaView.mjs +28 -22
  127. package/views/agenda/AgendaViewBody.js +1 -1
  128. package/views/agenda/AgendaViewBody.mjs +44 -42
  129. package/views/agenda/AgendaViewHead.js +1 -1
  130. package/views/agenda/AgendaViewHead.mjs +14 -10
  131. package/views/common/SchedulerDrag.d.ts +12 -0
  132. package/views/common/SchedulerResize.d.ts +12 -0
  133. package/views/common/VerticalResourceIterator.d.ts +3 -0
  134. package/views/common/VerticalResourceIterator.js +1 -1
  135. package/views/common/VerticalResourceIterator.mjs +16 -9
  136. package/views/day/DayView.js +1 -1
  137. package/views/day/DayView.mjs +2 -2
  138. package/views/day/MultiDayView.js +1 -1
  139. package/views/day/MultiDayView.mjs +98 -127
  140. package/views/month/MonthView.d.ts +8 -2
  141. package/views/month/MonthView.js +1 -1
  142. package/views/month/MonthView.mjs +115 -109
  143. package/views/month/MonthViewBody.d.ts +7 -2
  144. package/views/month/MonthViewBody.js +1 -1
  145. package/views/month/MonthViewBody.mjs +15 -11
  146. package/views/time/MultiDayTimelineView.d.ts +5 -0
  147. package/views/time/MultiDayTimelineView.js +1 -1
  148. package/views/time/MultiDayTimelineView.mjs +125 -132
  149. package/views/time/TimelineView.js +1 -1
  150. package/views/time/TimelineView.mjs +2 -2
  151. package/views/week/WeekView.js +1 -1
  152. package/views/week/WeekView.mjs +2 -2
  153. package/views/week/WorkWeekView.js +1 -1
  154. package/views/week/WorkWeekView.mjs +9 -9
  155. package/components/header/navigation/DatePickerToggleButton.d.ts +0 -16
  156. package/editors/FilterableComboBox.d.ts +0 -38
  157. package/editors/FilterableComboBox.js +0 -8
  158. package/editors/FilterableComboBox.mjs +0 -61
  159. package/editors/ZonedDateTime.js +0 -8
  160. package/editors/ZonedDateTime.mjs +0 -57
package/Scheduler.d.ts CHANGED
@@ -9,6 +9,7 @@ import { DataItem, EditableProp, SchedulerGroup, SchedulerResource, SchedulerMod
9
9
  import { DatePickerChangeEvent } from '@progress/kendo-vue-dateinputs';
10
10
  import { PropType } from 'vue';
11
11
  import { DATA_ACTION } from './constants/main';
12
+ import { SchedulerFormStateChangeEvent } from './components/SchedulerForm';
12
13
  /**
13
14
  * Represents the props of the [Kendo UI for Vue Scheduler component]({% slug overview_scheduler %}).
14
15
  */
@@ -353,6 +354,11 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
353
354
  task: PropType<any>;
354
355
  form: PropType<any>;
355
356
  resizeHint: PropType<any>;
357
+ editItem: PropType<any>;
358
+ viewTask: PropType<any>;
359
+ editTask: PropType<any>;
360
+ editSlot: PropType<any>;
361
+ className: PropType<string>;
356
362
  dialogProps: PropType<any>;
357
363
  formProps: PropType<any>;
358
364
  dateHeaderCell: PropType<any>;
@@ -363,6 +369,9 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
363
369
  };
364
370
  }>, {}, {
365
371
  media: "mobile" | "desktop";
372
+ toolbarLevel: number;
373
+ toolbarBreakpoints: number[];
374
+ newEventDialogItem: any;
366
375
  ks: {
367
376
  activeViewName: string;
368
377
  currentDate: Date;
@@ -386,6 +395,7 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
386
395
  group?: SchedulerGroup;
387
396
  item?: any;
388
397
  date?: Date;
398
+ className?: string;
389
399
  timezone?: string;
390
400
  viewSlot?: any;
391
401
  slotRender?: any;
@@ -394,9 +404,13 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
394
404
  resources?: SchedulerResource[];
395
405
  dateHeaderCell?: any;
396
406
  task?: any;
407
+ viewTask?: any;
397
408
  viewItem?: any;
398
409
  defaultView?: string;
399
410
  modelFields?: SchedulerModelFields;
411
+ editItem?: any;
412
+ editTask?: any;
413
+ editSlot?: any;
400
414
  dialogProps?: any;
401
415
  formProps?: any;
402
416
  onDatachange?: (...args: any[]) => any;
@@ -467,6 +481,11 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
467
481
  task: PropType<any>;
468
482
  form: PropType<any>;
469
483
  resizeHint: PropType<any>;
484
+ editItem: PropType<any>;
485
+ viewTask: PropType<any>;
486
+ editTask: PropType<any>;
487
+ editSlot: PropType<any>;
488
+ className: PropType<string>;
470
489
  dialogProps: PropType<any>;
471
490
  formProps: PropType<any>;
472
491
  dateHeaderCell: PropType<any>;
@@ -535,6 +554,11 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
535
554
  task: PropType<any>;
536
555
  form: PropType<any>;
537
556
  resizeHint: PropType<any>;
557
+ editItem: PropType<any>;
558
+ viewTask: PropType<any>;
559
+ editTask: PropType<any>;
560
+ editSlot: PropType<any>;
561
+ className: PropType<string>;
538
562
  dialogProps: PropType<any>;
539
563
  formProps: PropType<any>;
540
564
  dateHeaderCell: PropType<any>;
@@ -610,6 +634,11 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
610
634
  task: PropType<any>;
611
635
  form: PropType<any>;
612
636
  resizeHint: PropType<any>;
637
+ editItem: PropType<any>;
638
+ viewTask: PropType<any>;
639
+ editTask: PropType<any>;
640
+ editSlot: PropType<any>;
641
+ className: PropType<string>;
613
642
  dialogProps: PropType<any>;
614
643
  formProps: PropType<any>;
615
644
  dateHeaderCell: PropType<any>;
@@ -634,7 +663,9 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
634
663
  }, {
635
664
  isRtl(): any;
636
665
  isMobile(): boolean;
666
+ canAdd(): any;
637
667
  wrapperClassName(): {
668
+ [x: number]: boolean;
638
669
  'k-rtl': any;
639
670
  'k-scheduler': boolean;
640
671
  'k-scheduler-mobile': any;
@@ -667,7 +698,13 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
667
698
  default: number;
668
699
  };
669
700
  step: {
670
- type: PropType<number>;
701
+ type: PropType<number>; /**
702
+ * Overrides the default item. Specifying the `item` property of a specific view will override this property.
703
+ *
704
+ * The default component is: [SchedulerItem]({% slug api_scheduler_scheduleritemprops %})
705
+ *
706
+ * For more information on customizing the scheduler items, refer to the [Item Customization]({% slug scheduler_custom_event %}) article.
707
+ */
671
708
  default: number;
672
709
  };
673
710
  numberOfDays: {
@@ -712,7 +749,13 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
712
749
  default: number;
713
750
  };
714
751
  step: {
715
- type: PropType<number>;
752
+ type: PropType<number>; /**
753
+ * Overrides the default item. Specifying the `item` property of a specific view will override this property.
754
+ *
755
+ * The default component is: [SchedulerItem]({% slug api_scheduler_scheduleritemprops %})
756
+ *
757
+ * For more information on customizing the scheduler items, refer to the [Item Customization]({% slug scheduler_custom_event %}) article.
758
+ */
716
759
  default: number;
717
760
  };
718
761
  numberOfDays: {
@@ -821,7 +864,9 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
821
864
  };
822
865
  dateHeaderCell: PropType<any>;
823
866
  timeHeaderCell: PropType<any>;
824
- slotRender: PropType<any>;
867
+ slotRender: PropType<any>; /**
868
+ * Specifies the `tabIndex` attribute of the wrapping element of the Scheduler.
869
+ */
825
870
  viewSlot: PropType<any>;
826
871
  resizeHint: PropType<any>;
827
872
  item: PropType<any>;
@@ -918,7 +963,9 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
918
963
  };
919
964
  dateHeaderCell: PropType<any>;
920
965
  timeHeaderCell: PropType<any>;
921
- slotRender: PropType<any>;
966
+ slotRender: PropType<any>; /**
967
+ * Specifies the `tabIndex` attribute of the wrapping element of the Scheduler.
968
+ */
922
969
  viewSlot: PropType<any>;
923
970
  resizeHint: PropType<any>;
924
971
  item: PropType<any>;
@@ -1317,6 +1364,9 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
1317
1364
  hasMounted: boolean;
1318
1365
  currentDragItem: any;
1319
1366
  currentResizeItem: any;
1367
+ popoverShow: boolean;
1368
+ popoverAnchor: HTMLElement;
1369
+ popoverSlot: import('./models/Slot').Slot;
1320
1370
  }, {
1321
1371
  ranges(): import('./models/Range').Range[];
1322
1372
  monthSlots(): import('./models/Slot').Slot[];
@@ -1325,6 +1375,9 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
1325
1375
  compDragItem(): any;
1326
1376
  compResizeItem(): any;
1327
1377
  }, {
1378
+ handleShowMoreItemsClick({ event, slot }: any): void;
1379
+ handlePopoverClose(): void;
1380
+ handlePopoverDayClick(slot: import('./models/Slot').Slot): void;
1328
1381
  handleDataAction(action: DataAction): void;
1329
1382
  handleDragItemChange(item: any): void;
1330
1383
  handleResizeItemChange(item: any): void;
@@ -1399,11 +1452,15 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
1399
1452
  updated?: DataItem[];
1400
1453
  deleted?: DataItem[];
1401
1454
  }): void;
1455
+ handleNewEventClick(e: Event): void;
1456
+ handleNewEventFormSubmit(event: SchedulerFormStateChangeEvent<DataItem>): void;
1457
+ handleNewEventFormCancel(): void;
1402
1458
  handleCreate(action: DataAction): void;
1403
1459
  handleUpdate(action: DataAction): void;
1404
1460
  handleRemove(action: DataAction): void;
1405
1461
  handleDataAction(action: DataAction): void;
1406
1462
  handleActiveViewNameChange(newView: string, event?: any): void;
1463
+ setToolbarRef(instance: any): void;
1407
1464
  handleDateChange(newDate: Date, event?: any): void;
1408
1465
  handleDatePickerChange(event: DatePickerChangeEvent): void;
1409
1466
  handleNextClick(event: any): void;
@@ -1421,6 +1478,7 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
1421
1478
  setDate(newDate: Date, event: any): void;
1422
1479
  updatePassedState(newViewName: string): void;
1423
1480
  calculateMedia(): void;
1481
+ measureToolbar(): void;
1424
1482
  }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("datachange" | "itemclick" | "viewchange" | "datechange" | "itemdoubleclick" | "slotclick" | "slotdoubleclick" | "taskclick" | "taskdoubleclick")[], "datachange" | "itemclick" | "viewchange" | "datechange" | "itemdoubleclick" | "slotclick" | "slotdoubleclick" | "taskclick" | "taskdoubleclick", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
1425
1483
  dataItems: {
1426
1484
  type: PropType<any[]>;
@@ -1471,6 +1529,11 @@ declare const Scheduler: import('vue').DefineComponent<import('vue').ExtractProp
1471
1529
  task: PropType<any>;
1472
1530
  form: PropType<any>;
1473
1531
  resizeHint: PropType<any>;
1532
+ editItem: PropType<any>;
1533
+ viewTask: PropType<any>;
1534
+ editTask: PropType<any>;
1535
+ editSlot: PropType<any>;
1536
+ className: PropType<string>;
1474
1537
  dialogProps: PropType<any>;
1475
1538
  formProps: PropType<any>;
1476
1539
  dateHeaderCell: PropType<any>;
package/Scheduler.js CHANGED
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),t=require("./utils/main.js"),r=require("@progress/kendo-vue-common"),x=require("./components/header/SchedulerHeader.js"),A=require("./components/header/SchedulerAdaptiveHeader.js"),k=require("@progress/kendo-vue-intl"),E=require("./components/header/navigation/SchedulerNavigation.js"),h=require("@progress/kendo-date-math"),T=require("./components/footer/SchedulerFooter.js"),g=require("@progress/kendo-vue-buttons"),H=require("./components/header/navigation/NavigationDatePicker.js"),W=require("./components/header/view-selector/ViewSelectorList.js"),z=require("./components/footer/bussiness-hours/BusinessHours.js"),w=require("./messages/main.js"),f=require("./package-metadata.js"),q=require("./views/agenda/AgendaView.js"),j=require("./views/time/TimelineView.js"),u=require("./views/day/DayView.js"),L=require("./views/week/WeekView.js"),B=require("./views/week/WorkWeekView.js"),_=require("./views/month/MonthView.js"),v=require("./constants/main.js"),U=require("./hooks/useEditable.js");function G(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!n.isVNode(e)}const V="{0:D}",D="{0:d}",K=n.defineComponent({name:"KendoScheduler",emits:["datechange","viewchange","datachange","itemclick","itemdoubleclick","slotclick","slotdoubleclick","taskclick","taskdoubleclick"],props:{dataItems:{type:Array,default:function(){return[]}},views:{type:Array,default:function(){return[]}},view:String,defaultView:String,date:Date,rtl:Boolean,height:{type:[Number,String],default:600},timezone:String,group:Object,resources:[Object,Array],modelFields:Object,tabIndex:{type:Number,default:-1},editable:{type:[Boolean,Object],default:!1},defaultDate:{type:Date,default:function(){return new Date}},validator:{type:Function,default:()=>({})},modifyInitialFormValues:{type:Function,default:e=>e},header:[String,Function,Object],footer:[String,Function,Object],slotRender:[String,Function,Object],viewSlot:[String,Function,Object],item:[String,Function,Object],viewItem:[String,Function,Object],task:[String,Function,Object],form:[String,Function,Object],resizeHint:[String,Function,Object],dialogProps:Object,formProps:Object,dateHeaderCell:[String,Function,Object],timeHeaderCell:[String,Function,Object],adaptive:{type:Boolean,default:!1}},computed:{isRtl(){return this.$props.rtl!==void 0?this.$props.rtl:this.currentRtl},isMobile(){return this.$props.adaptive&&this.media==="mobile"},wrapperClassName(){return{"k-rtl":this.isRtl,"k-scheduler":!0,"k-scheduler-mobile":this.isMobile}},fields(){return t.getModelFields(this.$props.modelFields).fields}},mounted(){this.currentRtl=r.isRtl(this.$el),this.calculateMedia(),this.$props.adaptive&&r.canUseDOM&&window.ResizeObserver&&(this.resizeObserver=new window.ResizeObserver(this.calculateMedia),this.resizeObserver.observe(this.$el))},unmounted(){this.resizeObserver&&this.resizeObserver.disconnect()},provide(){return{ks:this.ks,ksMobile:()=>this.isMobile,setActiveViewName:this.handleActiveViewNameChange,setActiveDate:this.handleDateChange,itemDoubleClick:this.handleItemDoubleClick,itemClick:this.handleItemClick,slotDoubleClick:this.handleSlotDoubleClick,slotClick:this.handleSlotClick,taskDoubleClick:this.handleTaskDoubleClick,taskClick:this.handleTaskClick,ksValidator:this.validator,ksModifyInitialFormValues:this.modifyInitialFormValues}},inject:{kendoLocalizationService:{default:null},kendoIntlService:{default:null}},data(){const e=k.provideIntlService(this),s=this.$props.date||this.$props.defaultDate,a=this.$props.view||this.$props.defaultView||this.views[0]&&this.views[0].name||"day",i=this.views.find(c=>c.name===a)||this.views[0]||n.createVNode(u.DayView,null,null),l=this.getViewPropValue(i,"selectedDateFormat",a)||V,o=this.getViewPropValue(i,"selectedShortDateFormat",a)||D,d=this.getViewComponentByName(a).props.dateRange.default()({intl:e,date:s,timezone:this.$props.timezone,numberOfDays:this.getViewPropValue(i,"numberOfDays",a),workWeekStart:this.getViewPropValue(i,"workWeekStart",a)||e.firstDay(),workWeekEnd:this.getViewPropValue(i,"workWeekEnd",a)||(e.firstDay()+this.getViewPropValue(i,"numberOfDays",a))%6});return{media:"desktop",ks:{activeViewName:a,currentDate:s,showWorkHours:i.showWorkHours!==void 0?i.showWorkHours:!0,timezone:this.$props.timezone,props:{...this.$props},views:this.views,view:i,fields:t.getModelFields(this.$props.modelFields).fields,groups:t.toSchedulerGroups(this.$props.group,this.$props.resources),dateRange:d,orientation:this.$props.group&&this.$props.group.orientation?this.$props.group.orientation:"horizontal",dateFormat:l,shortDateFormat:o,scheduler:this,dataItems:this.dataItems}}},watch:{isRtl(e){this.ks.isRtl=e},view(e){this.updatePassedState(e)},date(e){this.ks.currentDate=e,this.updatePassedState()},timezone(e){this.ks.timezone=e,this.updatePassedState()},dataItems(e){this.ks.dataItems=e}},render(){r.validatePackage(f.packageMetadata),this.showLicenseWatermark=r.shouldShowValidationUI(f.packageMetadata),this.licenseMessage=r.getLicenseMessage(f.packageMetadata);const e=this.views.find(O=>O.name===this.ks.activeViewName)||this.views[0]||n.createVNode(u.DayView,null,null),s=this.getViewPropValue(this.ks.view,"slotDuration",this.ks.activeViewName),a=r.templateRendering.call(this,e.header||this.$props.header,r.getListeners.call(this)),i=r.templateRendering.call(this,e.footer||this.$props.footer,r.getListeners.call(this)),l=r.templateRendering.call(this,e.slot||this.$props.slotRender,{}),o=r.templateRendering.call(this,e.viewSlot||this.$props.viewSlot,{}),d=r.templateRendering.call(this,e.item||this.$props.item,{}),c=r.templateRendering.call(this,e.viewItem||this.$props.viewItem,{}),p=r.templateRendering.call(this,e.task||this.$props.task,{}),b=r.templateRendering.call(this,e.dateHeaderCell||this.$props.dateHeaderCell,{}),F=r.templateRendering.call(this,e.timeHeaderCell||this.$props.timeHeaderCell,{}),S=r.templateRendering.call(this,e.resizeHint||this.$props.resizeHint,{});this.ks.form=r.templateRendering.call(this,e.form||this.$props.form,{}),this.ks.dialogProps=e.dialogProps||this.$props.dialogProps,this.ks.formProps=e.formProps||this.$props.formProps;const C=U.useEditable(e.editable!==void 0?e.editable:this.$props.editable),y=this.getViewComponentByName(this.ks.activeViewName||e.name),I={...this.$props,...this.ks.view,showWorkHours:this.ks.showWorkHours,dataItems:void 0,views:void 0,defaultDate:void 0,dateRange:this.ks.dateRange,slotRender:l,viewSlot:o,item:d,viewItem:c,task:p,dateHeaderCell:b,timeHeaderCell:F,resizeHint:S,editable:C},R=this.isMobile?n.createVNode(A.SchedulerAdaptiveHeader,{isRtl:this.isRtl,onPrevclick:this.handlePrevClick,onNextclick:this.handleNextClick},null):n.createVNode(x.SchedulerHeader,null,{default:()=>[n.createVNode(E.SchedulerNavigation,{isRtl:this.isRtl,onPrevclick:this.handlePrevClick,onNextclick:this.handleNextClick,onTodayclick:this.handleTodayClick},null),n.createVNode(H.NavigationDatePicker,{value:this.ks.currentDate,onChange:this.handleDatePickerChange},null),n.createVNode(g.ToolbarSpacer,null,null),n.createVNode(W.ViewSelectorList,null,null)]}),$=r.getTemplate.call(this,{h:n.h,template:a,defaultRendering:R,additionalProps:{currentDate:this.ks.currentDate},additionalListeners:{prevclick:this.handlePrevClick,nextclick:this.handleNextClick,todayclick:this.handleTodayClick,datepickerchange:this.handleDatePickerChange}}),m=k.provideLocalizationService(this).toLanguageString(w.today,w.messages[w.today]),N=n.createVNode(T.SchedulerFooter,null,{default:()=>[this.isMobile&&n.createVNode(g.Button,{class:"k-scheduler-today",tabIndex:-1,onClick:this.handleTodayClick},G(m)?m:{default:()=>[m]}),this.isMobile&&n.createVNode(g.ToolbarSpacer,null,null),n.createVNode(z.BusinessHours,{slotDuration:s,onClick:this.handleShowWorkHoursClick},null)]}),P=r.getTemplate.call(this,{h:n.h,template:i,defaultRendering:N,additionalProps:{slotDuration:s},additionalListeners:{showworkhoursclick:this.handleShowWorkHoursClick}}),M=this.showLicenseWatermark?n.createVNode(r.WatermarkOverlay,{message:this.licenseMessage},null):null;return n.createVNode("div",{id:this.$props.id,style:{height:this.$props.height+"px"},class:this.wrapperClassName,tabindex:this.$props.tabIndex,dir:this.isRtl&&"rtl",role:this.$props.role||"application","aria-label":this.$props.ariaLabel,"aria-labelledby":this.$props.ariaLabelledby,onFocusin:this.handleFocus,onFocusout:this.handleBlur},[$,n.h(y,{key:this.ks.view.name,onDataaction:this.handleDataAction,...I}),P,M])},methods:{getViewComponentByName(e){switch(e.toLowerCase()){case"week":return L.WeekView;case"workweek":return B.WorkWeekView;case"agenda":return q.AgendaView;case"timeline":return j.TimelineView;case"month":return _.MonthView;default:return u.DayView}},getViewPropValue(e,s,a){const i=this.getViewComponentByName(a).props[s];return e[s]||(i?i.default:void 0)},handleDataChange({created:e=[],updated:s=[],deleted:a=[]}){const i={created:e,updated:s,deleted:a};this.$emit("datachange",i)},handleCreate(e){const s=[e.dataItem];this.handleDataChange({created:s})},handleUpdate(e){const s=[],a=[];if(e.series)if(Array.isArray(e.dataItem))e.dataItem.map(i=>{const l=r.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),o=r.clone(i);t.setField(o,this.fields.originalStart,t.getField(l,this.fields.originalStart)),t.setField(o,this.fields.recurrenceId,t.getField(l,this.fields.recurrenceId)),t.setField(o,this.fields.recurrenceExceptions,t.getField(l,this.fields.recurrenceExceptions)),a.push(o)});else{const i=r.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),l=r.clone(e.dataItem);t.setField(l,this.fields.originalStart,t.getField(i,this.fields.originalStart)),t.setField(l,this.fields.recurrenceId,t.getField(i,this.fields.recurrenceId)),t.setField(l,this.fields.recurrenceExceptions,t.getField(i,this.fields.recurrenceExceptions)),a.push(l)}else if(Array.isArray(e.dataItem))e.dataItem.map(i=>{const l=t.getField(i,this.fields.recurrenceRule)!==null&&t.getField(i,this.fields.recurrenceRule)!==void 0;if(t.getField(i,this.fields.recurrenceId)!==null&&t.getField(i,this.fields.recurrenceId)!==void 0&&l){const d=r.clone(t.findMaster(i,this.fields,this.dataItems)),c=t.getField(i,this.fields.originalStart),p=t.getField(d,this.fields.recurrenceExceptions)||[];t.setField(d,this.fields.recurrenceExceptions,[...p,c]),t.setField(i,this.fields.recurrenceRule,null),a.push(d),s.push(i)}else a.push(i)});else{const i=t.getField(e.dataItem,this.fields.recurrenceRule)!==null&&t.getField(e.dataItem,this.fields.recurrenceRule)!==void 0;if(t.getField(e.dataItem,this.fields.recurrenceId)!==null&&t.getField(e.dataItem,this.fields.recurrenceId)!==void 0&&i){const o=r.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),d=t.getField(e.dataItem,this.fields.originalStart),c=t.getField(o,this.fields.recurrenceExceptions)||[];t.setField(o,this.fields.recurrenceExceptions,[...c,d]),t.setField(e.dataItem,this.fields.recurrenceRule,null),a.push(o),s.push(e.dataItem)}else a.push(e.dataItem)}this.handleDataChange({updated:a,created:s})},handleRemove(e){const s=[],a=[];if(e.series){const i=r.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),l=r.clone(e.dataItem);t.setField(l,this.fields.originalStart,t.getField(i,this.fields.originalStart)),t.setField(l,this.fields.recurrenceId,t.getField(i,this.fields.recurrenceId)),t.setField(l,this.fields.recurrenceRule,t.getField(i,this.fields.recurrenceRule)),t.setField(l,this.fields.recurrenceExceptions,t.getField(i,this.fields.recurrenceExceptions)),a.push(l)}else if(!(t.getField(e.dataItem,this.fields.recurrenceRule)!==null&&t.getField(e.dataItem,this.fields.recurrenceRule)!==void 0))a.push(e.dataItem);else{const l=r.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),o=t.getField(e.dataItem,this.fields.originalStart),d=t.getField(l,this.fields.recurrenceExceptions)||[];t.setField(l,this.fields.recurrenceExceptions,[...d,o]),t.setField(e.dataItem,this.fields.recurrenceRule,null),s.push(l)}this.handleDataChange({updated:s,deleted:a})},handleDataAction(e){switch(e.type){case v.DATA_ACTION.create:this.handleCreate(e);break;case v.DATA_ACTION.update:this.handleUpdate(e);break;case v.DATA_ACTION.remove:this.handleRemove(e);break}},handleActiveViewNameChange(e,s){this.updatePassedState(e),this.$emit("viewchange",{viewName:e,...s,target:this.ks.scheduler.$el})},handleDateChange(e,s){this.setDate(e,{...s,target:this.ks.scheduler.$el})},handleDatePickerChange(e){e.value&&this.setDate(e.value,{...e,target:this.ks.scheduler.$el,nativeEvent:e.event})},handleNextClick(e){e.preventDefault();const s=this.getViewPropValue(this.ks.view,"step",this.ks.activeViewName)||this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName)||1,i=s>27?h.addMonths(this.ks.currentDate,Math.round(s/27)):h.addDays(this.ks.currentDate,s);this.setDate(i,e)},handlePrevClick(e){e.preventDefault();const s=this.getViewPropValue(this.ks.view,"step",this.ks.activeViewName)||this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName)||1,i=s>27?h.addMonths(this.ks.currentDate,-Math.round(s/27)):h.addDays(this.ks.currentDate,-s);this.setDate(i,e)},handleTodayClick(e){e.preventDefault();const s=t.getToday();this.setDate(s,e)},handleShowWorkHoursClick(){this.ks.showWorkHours=!this.ks.showWorkHours},handleFocus(){this.$el&&(this.$el.style.boxShadow="0 0.5px 0.5px 0.5px rgba(0, 0, 0, .12)")},handleBlur(){this.$el&&(this.$el.style.boxShadow="")},handleItemClick(e){this.$emit("itemclick",e)},handleItemDoubleClick(e){this.$emit("itemdoubleclick",e)},handleSlotClick(e){this.$emit("slotclick",e)},handleSlotDoubleClick(e){this.$emit("slotdoubleclick",e)},handleTaskClick(e){this.$emit("taskclick",e)},handleTaskDoubleClick(e){this.$emit("taskdoubleclick",e)},setDate(e,s){this.ks.currentDate=e,this.updatePassedState(),this.$emit("datechange",{date:e,event:s})},updatePassedState(e){const s=k.provideIntlService(this),a=e||this.ks.activeViewName;this.ks.activeViewName=a,this.ks.view=this.views.find(i=>i.name===a)||this.views[0]||n.createVNode(u.DayView,null,null),this.ks.dateFormat=this.getViewPropValue(this.ks.view,"selectedDateFormat",a)||V,this.ks.shortDateFormat=this.getViewPropValue(this.ks.view,"selectedShortDateFormat",a)||D,this.ks.dateRange=this.getViewComponentByName(a).props.dateRange.default()({intl:s,date:this.ks.currentDate,timezone:this.$props.timezone,numberOfDays:this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName),workWeekStart:this.getViewPropValue(this.ks.view,"workWeekStart",this.ks.activeViewName)||s.firstDay(),workWeekEnd:this.getViewPropValue(this.ks.view,"workWeekEnd",this.ks.activeViewName)||(s.firstDay()+this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName))%6})},calculateMedia(){r.canUseDOM&&window.matchMedia&&(this.media=window.matchMedia("(min-width: 1024px)").matches?"desktop":"mobile")}}});exports.Scheduler=K;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("vue"),t=require("./utils/main.js"),l=require("@progress/kendo-vue-common"),_=require("./components/header/SchedulerHeader.js"),K=require("./components/header/SchedulerAdaptiveHeader.js"),y=require("@progress/kendo-vue-intl"),S=require("@progress/kendo-date-math"),G=require("./components/footer/SchedulerFooter.js"),b=require("@progress/kendo-vue-buttons"),Y=require("./components/header/navigation/NavigationDatePicker.js"),Z=require("./components/header/view-selector/ViewSelectorList.js"),J=require("./components/footer/bussiness-hours/BusinessHours.js"),p=require("./messages/main.js"),E=require("./package-metadata.js"),Q=require("./views/agenda/AgendaView.js"),X=require("./views/time/TimelineView.js"),C=require("./views/day/DayView.js"),ee=require("./views/week/WeekView.js"),te=require("./views/week/WorkWeekView.js"),ie=require("./views/month/MonthView.js"),R=require("./constants/main.js"),V=require("@progress/kendo-svg-icons"),se=require("./components/SchedulerForm.js"),O=require("@progress/kendo-recurrence"),ae=require("./hooks/useEditable.js");function x(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!h.isVNode(e)}const M="{0:D}",P="{0:d}",W=(e,s)=>{const a=Math.round(s/864e5),i=O.parseRule({recurrenceRule:e});if(a%7===0||(i==null?void 0:i.freq)!=="weekly"||!i.byWeekDay)return e;const r=O.serializeRule({...i,byWeekDay:i.byWeekDay.map(o=>({...o,day:(o.day+a+7)%7}))});return e.toUpperCase().includes("WKST=")?r:r.replace(";WKST=SU","")},re=h.defineComponent({name:"KendoScheduler",emits:["datechange","viewchange","datachange","itemclick","itemdoubleclick","slotclick","slotdoubleclick","taskclick","taskdoubleclick"],props:{dataItems:{type:Array,default:function(){return[]}},views:{type:Array,default:function(){return[]}},view:String,defaultView:String,date:Date,rtl:Boolean,height:{type:[Number,String],default:600},timezone:String,group:Object,resources:[Object,Array],modelFields:Object,tabIndex:{type:Number,default:-1},editable:{type:[Boolean,Object],default:!1},defaultDate:{type:Date,default:function(){return new Date}},validator:{type:Function,default:()=>({})},modifyInitialFormValues:{type:Function,default:e=>e},header:[String,Function,Object],footer:[String,Function,Object],slotRender:[String,Function,Object],viewSlot:[String,Function,Object],item:[String,Function,Object],viewItem:[String,Function,Object],task:[String,Function,Object],form:[String,Function,Object],resizeHint:[String,Function,Object],editItem:[String,Function,Object],viewTask:[String,Function,Object],editTask:[String,Function,Object],editSlot:[String,Function,Object],className:String,dialogProps:Object,formProps:Object,dateHeaderCell:[String,Function,Object],timeHeaderCell:[String,Function,Object],adaptive:{type:Boolean,default:!1}},computed:{isRtl(){return this.$props.rtl!==void 0?this.$props.rtl:this.currentRtl},isMobile(){return this.$props.adaptive&&this.media==="mobile"},canAdd(){return typeof this.$props.editable=="object"?this.$props.editable.add:!!this.$props.editable},wrapperClassName(){return{"k-rtl":this.isRtl,"k-scheduler":!0,"k-scheduler-mobile":this.isMobile,[this.$props.className]:!!this.$props.className}},fields(){return t.getModelFields(this.$props.modelFields).fields}},mounted(){this.currentRtl=l.isRtl(this.$el),this.calculateMedia(),this.$props.adaptive&&l.canUseDOM&&window.ResizeObserver&&(this.resizeObserver=new window.ResizeObserver(this.calculateMedia),this.resizeObserver.observe(this.$el)),l.canUseDOM&&window.ResizeObserver&&(this.toolbarObserver=new window.ResizeObserver(this.measureToolbar),this.toolbarElement&&this.toolbarObserver.observe(this.toolbarElement))},unmounted(){this.resizeObserver&&this.resizeObserver.disconnect(),this.toolbarObserver&&this.toolbarObserver.disconnect()},provide(){return{ks:this.ks,ksMobile:()=>this.isMobile,setActiveViewName:this.handleActiveViewNameChange,setActiveDate:this.handleDateChange,itemDoubleClick:this.handleItemDoubleClick,itemClick:this.handleItemClick,slotDoubleClick:this.handleSlotDoubleClick,slotClick:this.handleSlotClick,taskDoubleClick:this.handleTaskDoubleClick,taskClick:this.handleTaskClick,ksValidator:this.validator,ksModifyInitialFormValues:this.modifyInitialFormValues}},inject:{kendoLocalizationService:{default:null},kendoIntlService:{default:null}},data(){const e=y.provideIntlService(this),s=this.$props.date||this.$props.defaultDate,a=this.$props.view||this.$props.defaultView||this.views[0]&&this.views[0].name||"day",i=this.views.find(d=>d.name===a)||this.views[0]||h.createVNode(C.DayView,null,null),r=this.getViewPropValue(i,"selectedDateFormat",a)||M,o=this.getViewPropValue(i,"selectedShortDateFormat",a)||P,n=this.getViewComponentByName(a).props.dateRange.default()({intl:e,date:s,timezone:this.$props.timezone,numberOfDays:this.getViewPropValue(i,"numberOfDays",a),workWeekStart:this.getViewPropValue(i,"workWeekStart",a)||e.firstDay(),workWeekEnd:this.getViewPropValue(i,"workWeekEnd",a)||(e.firstDay()+this.getViewPropValue(i,"numberOfDays",a))%6});return{media:"desktop",toolbarLevel:0,toolbarBreakpoints:[1/0,1/0,1/0],newEventDialogItem:null,ks:{activeViewName:a,currentDate:s,showWorkHours:i.showWorkHours!==void 0?i.showWorkHours:!0,timezone:this.$props.timezone,props:{...this.$props},views:this.views,view:i,fields:t.getModelFields(this.$props.modelFields).fields,groups:t.toSchedulerGroups(this.$props.group,this.$props.resources),dateRange:n,orientation:this.$props.group&&this.$props.group.orientation?this.$props.group.orientation:"horizontal",dateFormat:r,shortDateFormat:o,scheduler:this,dataItems:this.dataItems}}},watch:{isRtl(e){this.ks.isRtl=e},view(e){this.updatePassedState(e)},date(e){this.ks.currentDate=e,this.updatePassedState()},timezone(e){this.ks.timezone=e,this.updatePassedState()},dataItems(e){this.ks.dataItems=e}},render(){l.validatePackage(E.packageMetadata),this.showLicenseWatermark=l.shouldShowValidationUI(E.packageMetadata),this.licenseMessage=l.getLicenseMessage(E.packageMetadata);const e=this.views.find(U=>U.name===this.ks.activeViewName)||this.views[0]||h.createVNode(C.DayView,null,null),s=this.getViewPropValue(this.ks.view,"slotDuration",this.ks.activeViewName),a=l.templateRendering.call(this,e.header||this.$props.header,l.getListeners.call(this)),i=l.templateRendering.call(this,e.footer||this.$props.footer,l.getListeners.call(this)),r=l.templateRendering.call(this,e.slot||this.$props.slotRender,{}),o=l.templateRendering.call(this,e.viewSlot||this.$props.viewSlot,{}),n=l.templateRendering.call(this,e.item||this.$props.item,{}),d=l.templateRendering.call(this,e.viewItem||this.$props.viewItem,{}),c=l.templateRendering.call(this,e.task||this.$props.task,{}),f=e.form||this.$props.form||se.SchedulerForm,g=l.templateRendering.call(this,e.dateHeaderCell||this.$props.dateHeaderCell,{}),u=l.templateRendering.call(this,e.timeHeaderCell||this.$props.timeHeaderCell,{}),m=l.templateRendering.call(this,e.resizeHint||this.$props.resizeHint,{});this.ks.form=l.templateRendering.call(this,e.form||this.$props.form,{}),this.ks.dialogProps=e.dialogProps||this.$props.dialogProps,this.ks.formProps=e.formProps||this.$props.formProps;const w=ae.useEditable(e.editable!==void 0?e.editable:this.$props.editable),D=this.getViewComponentByName(this.ks.activeViewName||e.name),I={...this.$props,...this.ks.view,showWorkHours:this.ks.showWorkHours,dataItems:void 0,views:void 0,defaultDate:void 0,dateRange:this.ks.dateRange,slotRender:r,viewSlot:o,item:n,viewItem:d,task:c,dateHeaderCell:g,timeHeaderCell:u,resizeHint:m,editable:w},k=y.provideLocalizationService(this),v=k.toLanguageString(p.today,p.messages[p.today]),N=k.toLanguageString(p.previousTitle,p.messages[p.previousTitle]),$=k.toLanguageString(p.nextTitle,p.messages[p.nextTitle]),A=k.toLanguageString(p.newEvent,p.messages[p.newEvent]),L=k.toLanguageString(p.newEventLabel,p.messages[p.newEventLabel]),T=k.toLanguageString(p.toolbarLabel,p.messages[p.toolbarLabel]),F=this.toolbarLevel,H=this.isMobile?h.createVNode(K.SchedulerAdaptiveHeader,{isRtl:this.isRtl,onPrevclick:this.handlePrevClick,onNextclick:this.handleNextClick},null):h.createVNode(_.SchedulerHeader,{ref:this.setToolbarRef,ariaLabel:T},{default:()=>[this.canAdd&&h.createVNode(b.Button,{class:"k-toolbar-button",themeColor:"primary",svgIcon:V.plusIcon,"aria-label":L,tabIndex:-1,onClick:this.handleNewEventClick},{default:()=>[F<2&&A]}),F<2&&h.createVNode(b.Button,{class:"k-toolbar-button",fillMode:"flat",tabIndex:-1,title:v,onClick:this.handleTodayClick},x(v)?v:{default:()=>[v]}),F<3&&h.createVNode(b.ButtonGroup,{class:"k-button-group-flat k-toolbar-button-group"},{default:()=>[h.createVNode(b.Button,{fillMode:"flat",tabIndex:-1,svgIcon:this.isRtl?V.chevronRightIcon:V.chevronLeftIcon,"aria-label":N,title:N,onClick:this.handlePrevClick},null),h.createVNode(b.Button,{fillMode:"flat",tabIndex:-1,svgIcon:this.isRtl?V.chevronLeftIcon:V.chevronRightIcon,"aria-label":$,title:$,onClick:this.handleNextClick},null)]}),h.createVNode(Y.NavigationDatePicker,{value:this.ks.currentDate,onChange:this.handleDatePickerChange,level:F},null),h.createVNode(b.ToolbarSpacer,null,null),F===1&&h.createVNode("span",{class:"k-separator"},null),h.createVNode(Z.ViewSelectorList,{level:F},null)]}),j=l.getTemplate.call(this,{h:h.h,template:a,defaultRendering:H,additionalProps:{currentDate:this.ks.currentDate},additionalListeners:{prevclick:this.handlePrevClick,nextclick:this.handleNextClick,todayclick:this.handleTodayClick,datepickerchange:this.handleDatePickerChange}}),z=h.createVNode(G.SchedulerFooter,{"aria-label":T},{default:()=>[this.isMobile&&h.createVNode(b.Button,{class:"k-scheduler-today",tabIndex:-1,onClick:this.handleTodayClick},x(v)?v:{default:()=>[v]}),this.isMobile&&h.createVNode(b.ToolbarSpacer,null,null),h.createVNode(J.BusinessHours,{slotDuration:s,onClick:this.handleShowWorkHoursClick},null)]}),q=l.getTemplate.call(this,{h:h.h,template:i,defaultRendering:z,additionalProps:{slotDuration:s},additionalListeners:{showworkhoursclick:this.handleShowWorkHoursClick}}),B=this.showLicenseWatermark?h.createVNode(l.WatermarkOverlay,{message:this.licenseMessage},null):null;return h.createVNode("div",{id:this.$props.id,style:{height:this.$props.height+"px"},class:this.wrapperClassName,tabindex:this.$props.tabIndex,dir:this.isRtl&&"rtl",role:this.$props.role||"application","aria-label":this.$props.ariaLabel,"aria-labelledby":this.$props.ariaLabelledby,onFocusin:this.handleFocus,onFocusout:this.handleBlur},[j,h.h(D,{key:`${this.ks.view.name}-${this.ks.showWorkHours}`,onDataaction:this.handleDataAction,...I}),!["agenda","month"].includes(this.ks.activeViewName)&&q,B,this.newEventDialogItem&&h.createVNode(f,{dataItem:this.newEventDialogItem,onSubmit:this.handleNewEventFormSubmit,onCancel:this.handleNewEventFormCancel,onClose:this.handleNewEventFormCancel},null)])},methods:{getViewComponentByName(e){switch(e.toLowerCase()){case"week":return ee.WeekView;case"workweek":return te.WorkWeekView;case"agenda":return Q.AgendaView;case"timeline":return X.TimelineView;case"month":return ie.MonthView;default:return C.DayView}},getViewPropValue(e,s,a){const i=this.getViewComponentByName(a).props[s];return e[s]||(i?i.default:void 0)},handleDataChange({created:e=[],updated:s=[],deleted:a=[]}){const i={created:e,updated:s,deleted:a};this.$emit("datachange",i)},handleNewEventClick(e){e.preventDefault();const s=new Date,a=this.getViewPropValue(this.ks.view,"slotDuration",this.ks.activeViewName)||30,i=a*60*1e3,r=s.getMinutes(),o=Math.ceil(r/a)*a;let n=new Date(s);n.setHours(s.getHours()+Math.floor(o/60),o%60,0,0);const d=this.$props.dataItems||[],c=this.fields,f=(m,w)=>d.some(D=>{const I=t.getField(D,c.start),k=t.getField(D,c.end);return!I||!k?!1:I.getTime()<w.getTime()&&k.getTime()>m.getTime()});let g=new Date(n.getTime()+i);for(let m=0;m<48&&f(n,g);m++)n=new Date(n.getTime()+i),g=new Date(n.getTime()+i);const u={};t.setField(u,c.start,n),t.setField(u,c.end,g),t.setField(u,c.isAllDay,!1),t.setField(u,c.title,""),t.setField(u,c.description,""),this.newEventDialogItem=u},handleNewEventFormSubmit(e){this.handleDataChange({created:[e.value]}),this.newEventDialogItem=null},handleNewEventFormCancel(){this.newEventDialogItem=null},handleCreate(e){const s=[e.dataItem];this.handleDataChange({created:s})},handleUpdate(e){const s=[],a=[];if(e.series)if(Array.isArray(e.dataItem)){const i=e.dataItem[0];if(t.getField(i,this.fields.recurrenceId)!==null&&t.getField(i,this.fields.recurrenceId)!==void 0){const o=l.clone(t.findMaster(i,this.fields,this.dataItems)),n=new Date(t.getField(i,this.fields.originalStart)).getTime(),d=new Date(t.getField(i,this.fields.start)).getTime(),c=new Date(t.getField(i,this.fields.end)).getTime(),f=d-n,g=c-d,u=new Date(t.getField(o,this.fields.start)).getTime();t.setField(o,this.fields.start,new Date(u+f)),t.setField(o,this.fields.end,new Date(u+f+g));const m=t.getField(o,this.fields.recurrenceExceptions)||[];if(m.length>0&&f!==0){const w=m.map(D=>new Date(new Date(D).getTime()+f));t.setField(o,this.fields.recurrenceExceptions,w)}t.setField(o,this.fields.recurrenceRule,W(t.getField(o,this.fields.recurrenceRule),f)),a.push(o)}else e.dataItem.forEach(o=>{const n=l.clone(t.findMaster(o,this.fields,this.dataItems)),d=l.clone(o);t.setField(d,this.fields.originalStart,t.getField(n,this.fields.originalStart)),t.setField(d,this.fields.recurrenceId,t.getField(n,this.fields.recurrenceId));const c=t.getField(n,this.fields.recurrenceExceptions)||[],f=new Date(t.getField(n,this.fields.start)).getTime(),u=new Date(t.getField(d,this.fields.start)).getTime()-f;if(c.length>0&&u!==0){const m=c.map(w=>new Date(new Date(w).getTime()+u));t.setField(d,this.fields.recurrenceExceptions,m)}else t.setField(d,this.fields.recurrenceExceptions,c);a.push(d)})}else if(t.getField(e.dataItem,this.fields.recurrenceId)!==null&&t.getField(e.dataItem,this.fields.recurrenceId)!==void 0){const r=l.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),o=new Date(t.getField(e.dataItem,this.fields.originalStart)).getTime(),n=new Date(t.getField(e.dataItem,this.fields.start)).getTime(),d=new Date(t.getField(e.dataItem,this.fields.end)).getTime(),c=n-o,f=d-n,g=new Date(t.getField(r,this.fields.start)).getTime();t.setField(r,this.fields.start,new Date(g+c)),t.setField(r,this.fields.end,new Date(g+c+f));const u=t.getField(r,this.fields.recurrenceExceptions)||[];if(u.length>0&&c!==0){const m=u.map(w=>new Date(new Date(w).getTime()+c));t.setField(r,this.fields.recurrenceExceptions,m)}t.setField(r,this.fields.recurrenceRule,W(t.getField(r,this.fields.recurrenceRule),c)),a.push(r)}else{const r=l.clone(e.dataItem);if(t.getField(r,this.fields.recurrenceRule)){const n=l.clone(t.findMaster(e.dataItem,this.fields,this.dataItems));t.setField(r,this.fields.originalStart,t.getField(n,this.fields.originalStart)),t.setField(r,this.fields.recurrenceId,t.getField(n,this.fields.recurrenceId));const d=t.getField(n,this.fields.recurrenceExceptions)||[],c=new Date(t.getField(n,this.fields.start)).getTime(),g=new Date(t.getField(r,this.fields.start)).getTime()-c;if(d.length>0&&g!==0){const u=d.map(m=>new Date(new Date(m).getTime()+g));t.setField(r,this.fields.recurrenceExceptions,u)}else t.setField(r,this.fields.recurrenceExceptions,d)}else t.setField(r,this.fields.recurrenceExceptions,null);a.push(r)}else if(Array.isArray(e.dataItem))e.dataItem.forEach(i=>{const r=t.getField(i,this.fields.recurrenceRule)!==null&&t.getField(i,this.fields.recurrenceRule)!==void 0;if(t.getField(i,this.fields.recurrenceId)!==null&&t.getField(i,this.fields.recurrenceId)!==void 0&&r){const n=l.clone(t.findMaster(i,this.fields,this.dataItems)),d=t.getField(i,this.fields.originalStart),c=t.getField(n,this.fields.recurrenceExceptions)||[];t.setField(n,this.fields.recurrenceExceptions,[...c,d]),t.setField(i,this.fields.recurrenceRule,null),a.push(n),s.push(i)}else a.push(i)});else{const i=t.getField(e.dataItem,this.fields.recurrenceRule)!==null&&t.getField(e.dataItem,this.fields.recurrenceRule)!==void 0;if(t.getField(e.dataItem,this.fields.recurrenceId)!==null&&t.getField(e.dataItem,this.fields.recurrenceId)!==void 0&&i){const o=l.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),n=t.getField(e.dataItem,this.fields.originalStart),d=t.getField(o,this.fields.recurrenceExceptions)||[];t.setField(o,this.fields.recurrenceExceptions,[...d,n]),t.setField(e.dataItem,this.fields.recurrenceRule,null),a.push(o),s.push(e.dataItem)}else a.push(e.dataItem)}this.handleDataChange({updated:a,created:s})},handleRemove(e){const s=[],a=[];if(e.series){const i=l.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),r=l.clone(e.dataItem);t.setField(r,this.fields.originalStart,t.getField(i,this.fields.originalStart)),t.setField(r,this.fields.recurrenceId,t.getField(i,this.fields.recurrenceId)),t.setField(r,this.fields.recurrenceRule,t.getField(i,this.fields.recurrenceRule)),t.setField(r,this.fields.recurrenceExceptions,t.getField(i,this.fields.recurrenceExceptions)),a.push(r)}else if(!(t.getField(e.dataItem,this.fields.recurrenceRule)!==null&&t.getField(e.dataItem,this.fields.recurrenceRule)!==void 0))a.push(e.dataItem);else{const r=l.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),o=t.getField(e.dataItem,this.fields.originalStart),n=t.getField(r,this.fields.recurrenceExceptions)||[];t.setField(r,this.fields.recurrenceExceptions,[...n,o]),t.setField(e.dataItem,this.fields.recurrenceRule,null),s.push(r)}this.handleDataChange({updated:s,deleted:a})},handleDataAction(e){switch(e.type){case R.DATA_ACTION.create:this.handleCreate(e);break;case R.DATA_ACTION.update:this.handleUpdate(e);break;case R.DATA_ACTION.remove:this.handleRemove(e);break}},handleActiveViewNameChange(e,s){this.$props.view===void 0&&this.updatePassedState(e),this.$emit("viewchange",{viewName:e,...s,target:this.ks.scheduler.$el})},setToolbarRef(e){const s=(e==null?void 0:e.$el)||null;s!==this.toolbarElement&&(this.toolbarObserver&&this.toolbarElement&&this.toolbarObserver.unobserve(this.toolbarElement),this.toolbarElement=s,this.toolbarObserver&&s&&this.toolbarObserver.observe(s))},handleDateChange(e,s){this.setDate(e,{...s,target:this.ks.scheduler.$el})},handleDatePickerChange(e){e.value&&this.setDate(e.value,{...e,target:this.ks.scheduler.$el,nativeEvent:e.event})},handleNextClick(e){e.preventDefault();const s=this.getViewPropValue(this.ks.view,"step",this.ks.activeViewName)||this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName)||1,i=s>27?S.addMonths(this.ks.currentDate,Math.round(s/27)):S.addDays(this.ks.currentDate,s);this.setDate(i,e)},handlePrevClick(e){e.preventDefault();const s=this.getViewPropValue(this.ks.view,"step",this.ks.activeViewName)||this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName)||1,i=s>27?S.addMonths(this.ks.currentDate,-Math.round(s/27)):S.addDays(this.ks.currentDate,-s);this.setDate(i,e)},handleTodayClick(e){e.preventDefault();const s=S.ZonedDate.fromLocalDate(new Date,this.ks.timezone);this.setDate(new Date(s.getTime()),e)},handleShowWorkHoursClick(){this.ks.showWorkHours=!this.ks.showWorkHours},handleFocus(){this.$el&&(this.$el.style.boxShadow="0 0.5px 0.5px 0.5px rgba(0, 0, 0, .12)")},handleBlur(){this.$el&&(this.$el.style.boxShadow="")},handleItemClick(e){this.$emit("itemclick",e)},handleItemDoubleClick(e){this.$emit("itemdoubleclick",e)},handleSlotClick(e){this.$emit("slotclick",e)},handleSlotDoubleClick(e){this.$emit("slotdoubleclick",e)},handleTaskClick(e){this.$emit("taskclick",e)},handleTaskDoubleClick(e){this.$emit("taskdoubleclick",e)},setDate(e,s){this.$props.date===void 0&&(this.ks.currentDate=e,this.updatePassedState()),this.$emit("datechange",{date:e,event:s})},updatePassedState(e){const s=y.provideIntlService(this),a=e||this.ks.activeViewName;this.ks.activeViewName=a,this.ks.view=this.views.find(i=>i.name===a)||this.views[0]||h.createVNode(C.DayView,null,null),this.ks.dateFormat=this.getViewPropValue(this.ks.view,"selectedDateFormat",a)||M,this.ks.shortDateFormat=this.getViewPropValue(this.ks.view,"selectedShortDateFormat",a)||P,this.ks.dateRange=this.getViewComponentByName(a).props.dateRange.default()({intl:s,date:this.ks.currentDate,timezone:this.$props.timezone,numberOfDays:this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName),workWeekStart:this.getViewPropValue(this.ks.view,"workWeekStart",this.ks.activeViewName)||s.firstDay(),workWeekEnd:this.getViewPropValue(this.ks.view,"workWeekEnd",this.ks.activeViewName)||(s.firstDay()+this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName))%6})},calculateMedia(){l.canUseDOM&&window.matchMedia&&(this.media=window.matchMedia("(min-width: 1024px)").matches?"desktop":"mobile")},measureToolbar(){const s=this.toolbarElement;if(!s)return;const a=s.clientWidth;if(!a)return;const i=parseInt(window.getComputedStyle(s).gap||"0",10),r=Array.from(s.children),o=r.reduce((d,c)=>d+c.offsetWidth,0)+(r.length-1)*i,n=this.toolbarLevel;if(o>a&&n<3){this.toolbarBreakpoints[n]=a,this.toolbarLevel=n+1;return}n>0&&a>this.toolbarBreakpoints[n-1]+20&&(this.toolbarLevel=n-1)}}});exports.Scheduler=re;