@progress/kendo-vue-scheduler 9.3.0-develop.4 → 9.3.0-develop.6
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.
- package/Scheduler.d.ts +67 -4
- package/Scheduler.js +1 -1
- package/Scheduler.mjs +267 -115
- package/components/BaseView.js +1 -1
- package/components/BaseView.mjs +10 -4
- package/components/CurrentTimeMarker.js +1 -1
- package/components/CurrentTimeMarker.mjs +9 -9
- package/components/CurrentTimeMarkerArrow.js +1 -1
- package/components/CurrentTimeMarkerArrow.mjs +3 -3
- package/components/DateHeaderCell.js +1 -1
- package/components/DateHeaderCell.mjs +22 -13
- package/components/MoreEventsPopover.d.ts +77 -0
- package/components/MoreEventsPopover.js +8 -0
- package/components/MoreEventsPopover.mjs +125 -0
- package/components/SchedulerActionButtons.d.ts +6 -0
- package/components/SchedulerActionButtons.js +1 -1
- package/components/SchedulerActionButtons.mjs +25 -19
- package/components/SchedulerForm.d.ts +7 -0
- package/components/SchedulerForm.js +1 -1
- package/components/SchedulerForm.mjs +69 -61
- package/components/SchedulerOccurrenceDialog.d.ts +4 -4
- package/components/SchedulerOccurrenceDialog.js +1 -1
- package/components/SchedulerOccurrenceDialog.mjs +35 -26
- package/components/SchedulerRemoveDialog.d.ts +6 -0
- package/components/SchedulerRemoveDialog.js +1 -1
- package/components/SchedulerRemoveDialog.mjs +24 -23
- package/components/ShowMoreItemsButton.d.ts +10 -1
- package/components/ShowMoreItemsButton.js +1 -1
- package/components/ShowMoreItemsButton.mjs +40 -18
- package/components/footer/bussiness-hours/BusinessHours.js +1 -1
- package/components/footer/bussiness-hours/BusinessHours.mjs +16 -21
- package/components/header/SchedulerAdaptiveHeader.js +1 -1
- package/components/header/SchedulerAdaptiveHeader.mjs +28 -26
- package/components/header/SchedulerHeader.d.ts +5 -1
- package/components/header/SchedulerHeader.js +1 -1
- package/components/header/SchedulerHeader.mjs +11 -7
- package/components/header/navigation/NavigationDatePicker.d.ts +22 -3
- package/components/header/navigation/NavigationDatePicker.js +1 -1
- package/components/header/navigation/NavigationDatePicker.mjs +27 -30
- package/components/header/view-selector/ViewSelectorList.d.ts +26 -6
- package/components/header/view-selector/ViewSelectorList.js +1 -1
- package/components/header/view-selector/ViewSelectorList.mjs +55 -49
- package/dist/cdn/js/kendo-vue-scheduler.js +1 -1
- package/editors/RemoveRecurrenceConfirmDialog.d.ts +29 -0
- package/editors/RemoveRecurrenceConfirmDialog.js +8 -0
- package/editors/RemoveRecurrenceConfirmDialog.mjs +65 -0
- package/editors/ResourceEditor.d.ts +3 -0
- package/editors/ResourceEditor.js +1 -1
- package/editors/ResourceEditor.mjs +12 -10
- package/editors/SchedulerFormEditor.d.ts +1067 -2953
- package/editors/SchedulerFormEditor.js +1 -1
- package/editors/SchedulerFormEditor.mjs +297 -365
- package/editors/SchedulerRecurrenceDialog.d.ts +143 -0
- package/editors/SchedulerRecurrenceDialog.js +8 -0
- package/editors/SchedulerRecurrenceDialog.mjs +575 -0
- package/editors/TimezoneDropDownList.d.ts +46 -0
- package/editors/TimezoneDropDownList.js +8 -0
- package/editors/TimezoneDropDownList.mjs +63 -0
- package/editors/ZonedSplitDateTime.d.ts +65 -0
- package/editors/ZonedSplitDateTime.js +8 -0
- package/editors/ZonedSplitDateTime.mjs +100 -0
- package/hooks/main.d.ts +1 -0
- package/hooks/useGroupRowHeightSync.d.ts +10 -0
- package/hooks/useRecurrenceSummary.d.ts +10 -0
- package/hooks/useRecurrenceSummary.js +8 -0
- package/hooks/useRecurrenceSummary.mjs +74 -0
- package/hooks/useRowSync.js +1 -1
- package/hooks/useRowSync.mjs +23 -4
- package/hooks/useSlotExpand.js +1 -1
- package/hooks/useSlotExpand.mjs +36 -28
- package/index.d.mts +9 -3
- package/index.d.ts +9 -3
- package/index.js +1 -1
- package/index.mjs +83 -71
- package/items/SchedulerEditItem.d.ts +14 -3
- package/items/SchedulerEditItem.js +1 -1
- package/items/SchedulerEditItem.mjs +130 -72
- package/items/SchedulerItem.d.ts +10 -0
- package/items/SchedulerItem.js +1 -1
- package/items/SchedulerItem.mjs +153 -135
- package/items/SchedulerProportionalViewItem.d.ts +183 -0
- package/items/SchedulerProportionalViewItem.js +8 -0
- package/items/SchedulerProportionalViewItem.mjs +378 -0
- package/items/SchedulerViewItem.d.ts +3 -0
- package/items/SchedulerViewItem.js +1 -1
- package/items/SchedulerViewItem.mjs +107 -67
- package/messages/main.d.ts +186 -0
- package/messages/main.js +1 -1
- package/messages/main.mjs +226 -102
- package/models/Item.d.ts +2 -0
- package/models/Occurrence.d.ts +2 -0
- package/models/SchedulerModelFields.d.ts +5 -0
- package/models/SchedulerResource.d.ts +6 -0
- package/models/SchedulerView.d.ts +2 -0
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +12 -11
- package/recurrence/common.js +1 -1
- package/recurrence/common.mjs +36 -39
- package/services/itemsService.js +1 -1
- package/services/itemsService.mjs +31 -27
- package/services/occurrenceService.js +1 -1
- package/services/occurrenceService.mjs +41 -35
- package/slots/SchedulerEditSlot.d.ts +2 -0
- package/slots/SchedulerEditSlot.js +1 -1
- package/slots/SchedulerEditSlot.mjs +27 -28
- package/slots/SchedulerSlot.d.ts +4 -0
- package/slots/SchedulerSlot.js +1 -1
- package/slots/SchedulerSlot.mjs +10 -1
- package/slots/SchedulerViewSlot.d.ts +5 -0
- package/slots/SchedulerViewSlot.js +1 -1
- package/slots/SchedulerViewSlot.mjs +70 -50
- package/tasks/SchedulerEditTask.d.ts +6 -0
- package/tasks/SchedulerEditTask.js +1 -1
- package/tasks/SchedulerEditTask.mjs +64 -23
- package/tasks/SchedulerTask.d.ts +15 -0
- package/tasks/SchedulerTask.js +1 -1
- package/tasks/SchedulerTask.mjs +39 -28
- package/tasks/SchedulerViewTask.d.ts +9 -0
- package/tasks/SchedulerViewTask.js +1 -1
- package/tasks/SchedulerViewTask.mjs +10 -5
- package/utils/main.d.ts +4 -1
- package/utils/main.js +1 -1
- package/utils/main.mjs +133 -112
- package/views/agenda/AgendaView.js +1 -1
- package/views/agenda/AgendaView.mjs +28 -22
- package/views/agenda/AgendaViewBody.js +1 -1
- package/views/agenda/AgendaViewBody.mjs +44 -42
- package/views/agenda/AgendaViewHead.js +1 -1
- package/views/agenda/AgendaViewHead.mjs +14 -10
- package/views/common/SchedulerDrag.d.ts +12 -0
- package/views/common/SchedulerResize.d.ts +12 -0
- package/views/common/VerticalResourceIterator.d.ts +3 -0
- package/views/common/VerticalResourceIterator.js +1 -1
- package/views/common/VerticalResourceIterator.mjs +16 -9
- package/views/day/DayView.js +1 -1
- package/views/day/DayView.mjs +2 -2
- package/views/day/MultiDayView.js +1 -1
- package/views/day/MultiDayView.mjs +98 -127
- package/views/month/MonthView.d.ts +8 -2
- package/views/month/MonthView.js +1 -1
- package/views/month/MonthView.mjs +115 -109
- package/views/month/MonthViewBody.d.ts +7 -2
- package/views/month/MonthViewBody.js +1 -1
- package/views/month/MonthViewBody.mjs +15 -11
- package/views/time/MultiDayTimelineView.d.ts +5 -0
- package/views/time/MultiDayTimelineView.js +1 -1
- package/views/time/MultiDayTimelineView.mjs +125 -132
- package/views/time/TimelineView.js +1 -1
- package/views/time/TimelineView.mjs +2 -2
- package/views/week/WeekView.js +1 -1
- package/views/week/WeekView.mjs +2 -2
- package/views/week/WorkWeekView.js +1 -1
- package/views/week/WorkWeekView.mjs +9 -9
- package/components/header/navigation/DatePickerToggleButton.d.ts +0 -16
- package/editors/FilterableComboBox.d.ts +0 -38
- package/editors/FilterableComboBox.js +0 -8
- package/editors/FilterableComboBox.mjs +0 -61
- package/editors/ZonedDateTime.js +0 -8
- 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;
|