@progress/kendo-vue-scheduler 9.3.0-develop.5 → 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.
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
@@ -0,0 +1,143 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { DialogCloseEvent } from '@progress/kendo-vue-dialogs';
9
+ import { NumericTextBoxChangeEvent, RadioGroupChangeEvent } from '@progress/kendo-vue-inputs';
10
+ import { DropDownListChangeEvent } from '@progress/kendo-vue-dropdowns';
11
+ import { DatePickerChangeEvent } from '@progress/kendo-vue-dateinputs';
12
+ import { ZonedDate } from '@progress/kendo-date-math';
13
+ import { RecurrenceRule } from '@progress/kendo-recurrence';
14
+ import { PropType } from 'vue';
15
+ import { Frequency } from '../recurrence/types/Frequency';
16
+ import { WeekDayEntity } from '../recurrence/types/WeekDayEntity';
17
+ import { MonthEntity } from '../recurrence/types/MonthEntity';
18
+ import { OffsetPositionEntity } from '../recurrence/types/OffsetPositionEntity';
19
+ import { EndRule } from '../recurrence/types/EndRule';
20
+ import { RepeatOnRule } from '../recurrence/types/RepeatOnRule';
21
+ interface FrequencyDropDownItem {
22
+ text: string;
23
+ value: Frequency;
24
+ }
25
+ interface EndRuleDropDownItem {
26
+ text: string;
27
+ value: EndRule;
28
+ }
29
+ /** @hidden */
30
+ export interface SchedulerRecurrenceDialogProps {
31
+ /** The current recurrence rule string (RRULE). */
32
+ value: string | null;
33
+ /** The event start date. */
34
+ start: Date;
35
+ /** The scheduler timezone. */
36
+ timezone: string;
37
+ /** Fires when the user clicks Save. */
38
+ onSave?: (rule: string | null) => void;
39
+ /** Fires when the user clicks Cancel or closes. */
40
+ onCancel?: () => void;
41
+ /** Fires when the user clicks Remove recurrence. */
42
+ onRemoveRecurrence?: () => void;
43
+ /** Custom template for the recurrence summary text. */
44
+ recurrenceSummaryTemplate?: any;
45
+ /** Custom recurrence editor component rendered inside the dialog instead of the built-in form. */
46
+ recurrenceEditor?: any;
47
+ }
48
+ /** @hidden */
49
+ declare const SchedulerRecurrenceDialog: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
50
+ value: {
51
+ type: PropType<string>;
52
+ default: any;
53
+ };
54
+ start: {
55
+ type: PropType<Date>;
56
+ required: true;
57
+ };
58
+ timezone: {
59
+ type: StringConstructor;
60
+ default: string;
61
+ };
62
+ onSave: PropType<(rule: string | null) => void>;
63
+ onCancel: PropType<() => void>;
64
+ onRemoveRecurrence: PropType<() => void>;
65
+ recurrenceSummaryTemplate: PropType<any>;
66
+ recurrenceEditor: PropType<any>;
67
+ }>, {
68
+ kendoLocalizationService: {};
69
+ }, {
70
+ rrule: RecurrenceRule;
71
+ defaultCount: number;
72
+ defaultUntil: ZonedDate;
73
+ startsOn: Date;
74
+ }, {
75
+ frequency(): Frequency;
76
+ weekDays(): WeekDayEntity[];
77
+ extendedWeekDays(): WeekDayEntity[];
78
+ weekDay(): WeekDayEntity;
79
+ months(): MonthEntity[];
80
+ month(): MonthEntity;
81
+ offsets(): OffsetPositionEntity[];
82
+ offset(): OffsetPositionEntity;
83
+ endRule(): EndRule;
84
+ monthDay(): number;
85
+ until(): Date | null;
86
+ repeatOnRule(): RepeatOnRule | undefined;
87
+ isExistingRecurrence(): boolean;
88
+ frequencyData(): FrequencyDropDownItem[];
89
+ endRuleData(): EndRuleDropDownItem[];
90
+ frequencyDropDownValue(): FrequencyDropDownItem;
91
+ endRuleDropDownValue(): EndRuleDropDownItem;
92
+ narrowWeekDays(): {
93
+ narrow: string;
94
+ wide: string;
95
+ value: number;
96
+ }[];
97
+ selectedWeekDays(): number[];
98
+ summary(): string;
99
+ currentRuleString(): string | null;
100
+ parsedCurrentRule(): any;
101
+ }, {
102
+ localizeMessage(baseMassage: string, removePrepend?: boolean): string;
103
+ renderRecurrenceSummaryTemplate(): import("vue/jsx-runtime").JSX.Element;
104
+ updateRrule(newRrule: RecurrenceRule): void;
105
+ handleFrequencyChange(newFreq: string): void;
106
+ handleIntervalChange(event: NumericTextBoxChangeEvent): void;
107
+ handleCountChange(event: NumericTextBoxChangeEvent): void;
108
+ handleUntilChange(event: DatePickerChangeEvent): void;
109
+ handleWeekDaysChange(newWeekDays: number[]): void;
110
+ handleWeekDayChange(event: DropDownListChangeEvent): void;
111
+ handleMonthDayChange(event: NumericTextBoxChangeEvent): void;
112
+ handleMonthChange(event: DropDownListChangeEvent): void;
113
+ handleEndRuleDropDownChange(event: DropDownListChangeEvent): void;
114
+ handleRepeatOnRuleChange(event: RadioGroupChangeEvent): void;
115
+ handleOffsetChange(event: DropDownListChangeEvent): void;
116
+ handleFrequencyDropDownChange(event: DropDownListChangeEvent): void;
117
+ handleWeekDayButtonClick(dayValue: number): void;
118
+ handleStartsOnChange(event: DatePickerChangeEvent): void;
119
+ handleSave(): void;
120
+ handleClose(_e: DialogCloseEvent): void;
121
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
122
+ value: {
123
+ type: PropType<string>;
124
+ default: any;
125
+ };
126
+ start: {
127
+ type: PropType<Date>;
128
+ required: true;
129
+ };
130
+ timezone: {
131
+ type: StringConstructor;
132
+ default: string;
133
+ };
134
+ onSave: PropType<(rule: string | null) => void>;
135
+ onCancel: PropType<() => void>;
136
+ onRemoveRecurrence: PropType<() => void>;
137
+ recurrenceSummaryTemplate: PropType<any>;
138
+ recurrenceEditor: PropType<any>;
139
+ }>> & Readonly<{}>, {
140
+ value: string;
141
+ timezone: string;
142
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
143
+ export { SchedulerRecurrenceDialog };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),C=require("@progress/kendo-vue-dialogs"),D=require("@progress/kendo-vue-buttons"),u=require("@progress/kendo-vue-intl"),m=require("@progress/kendo-vue-inputs"),d=require("@progress/kendo-vue-dropdowns"),V=require("@progress/kendo-vue-dateinputs"),g=require("@progress/kendo-vue-labels"),h=require("@progress/kendo-vue-form"),p=require("@progress/kendo-date-math"),k=require("@progress/kendo-recurrence"),n=require("../messages/main.js"),N=require("../hooks/useRecurrenceSummary.js"),l=require("../recurrence/common.js");function c(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!r.isVNode(e)}const S=r.defineComponent({name:"KendoSchedulerRecurrenceDialog",props:{value:{type:[String,null],default:null},start:{type:Date,required:!0},timezone:{type:String,default:""},onSave:Function,onCancel:Function,onRemoveRecurrence:Function,recurrenceSummaryTemplate:[Object,Function],recurrenceEditor:[Object,Function]},inject:{kendoLocalizationService:{default:null}},setup(){return{kendoLocalizationService:r.inject("kendoLocalizationService",{})}},data(){var a;const e=l.getRule((a=this.value)!=null?a:"");return{rrule:e.freq?e:{freq:"daily",interval:1},defaultCount:1,defaultUntil:p.ZonedDate.fromUTCDate(this.start),startsOn:new Date(this.start)}},computed:{frequency(){return l.getFrequency(this.rrule)},weekDays(){const e=u.provideIntlService(this);return l.getWeekDays(e)},extendedWeekDays(){const e=u.provideIntlService(this);return l.getExtendedWeekDays(e,this.localizeMessage)},weekDay(){return l.getWeekDay(this.extendedWeekDays,this.rrule,this.startsOn)},months(){const e=u.provideIntlService(this);return l.getMonths(e)},month(){return l.getMonth(this.months,this.rrule)},offsets(){return l.getOffsets(this.localizeMessage)},offset(){return l.getOffset(this.offsets,this.rrule)},endRule(){return l.getEndRule(this.rrule)},monthDay(){return l.getMonthDay(this.rrule,this.startsOn)},until(){return this.rrule.until?p.toLocalDate(this.rrule.until):null},repeatOnRule(){return l.getRepeatOnRule(this.rrule)},isExistingRecurrence(){return!!this.value},frequencyData(){return[{text:this.localizeMessage(n.recurrenceEditorFrequenciesDaily,!0),value:"daily"},{text:this.localizeMessage(n.recurrenceEditorFrequenciesWeekly,!0),value:"weekly"},{text:this.localizeMessage(n.recurrenceEditorFrequenciesMonthly,!0),value:"monthly"},{text:this.localizeMessage(n.recurrenceEditorFrequenciesYearly,!0),value:"yearly"}]},endRuleData(){return[{text:this.localizeMessage(n.recurrenceEditorEndNever,!0),value:"never"},{text:this.localizeMessage(n.recurrenceEditorEndAfter,!0),value:"count"},{text:this.localizeMessage(n.recurrenceEditorEndOn,!0),value:"until"}]},frequencyDropDownValue(){return this.frequencyData.find(e=>e.value===this.frequency)||this.frequencyData[0]},endRuleDropDownValue(){return this.endRuleData.find(e=>e.value===this.endRule)||this.endRuleData[0]},narrowWeekDays(){const e=u.provideIntlService(this),t=e.firstDay(),a=e.dateFormatNames({type:"days",nameType:"narrow"}),i=e.dateFormatNames({type:"days",nameType:"wide"}),o=a.map((y,f)=>({narrow:y,wide:i[f],value:f}));return o.slice(t).concat(o.slice(0,t))},selectedWeekDays(){return(this.rrule.byWeekDay||[]).map(({day:e})=>e)},summary(){if(!this.rrule.freq||this.rrule.freq==="never")return"";const e=u.provideIntlService(this),t=u.provideLocalizationService(this),a=k.serializeRule(this.rrule,this.timezone);return N.getRecurrenceSummary(a,this.startsOn,e,(i,o)=>t.toLanguageString(i,o))},currentRuleString(){return!this.rrule.freq||this.rrule.freq==="never"?null:k.serializeRule(this.rrule,this.timezone)},parsedCurrentRule(){return this.currentRuleString?k.parseRule({recurrenceRule:this.currentRuleString}):null}},methods:{localizeMessage(e,t){const a=u.provideLocalizationService(this),i=t?e:"scheduler.recurrenceEditor"+e;return a.toLanguageString(i,n.messages[i])},renderRecurrenceSummaryTemplate(){const e=this.recurrenceSummaryTemplate;return!e||!this.currentRuleString?null:r.createVNode(e,{recurrenceRule:this.currentRuleString,text:this.summary||"",parsedRule:this.parsedCurrentRule},null)},updateRrule(e){this.rrule={...e}},handleFrequencyChange(e){const t={};t.freq=e,t.interval=1,e==="weekly"&&(t.byWeekDay=[{day:p.ZonedDate.fromLocalDate(this.startsOn,this.timezone).getDay(),offset:0}]),(e==="monthly"||e==="yearly")&&(t.byMonthDay=[this.startsOn.getDate()]),e==="yearly"&&(t.byMonth=[this.startsOn.getMonth()+1]),this.updateRrule(t)},handleIntervalChange(e){var t;this.updateRrule({...this.rrule,interval:(t=e.value)!=null?t:1})},handleCountChange(e){const t=e.value,a=t!=null?t:this.defaultCount;this.updateRrule({...this.rrule,count:a}),t!==null&&(this.defaultCount=a)},handleUntilChange(e){if(!e.value)return;const t=p.ZonedDate.fromLocalDate(e.value,this.timezone);this.updateRrule({...this.rrule,until:t}),this.defaultUntil=t},handleWeekDaysChange(e){this.updateRrule({...this.rrule,byWeekDay:this.weekDays.filter(t=>e.some(a=>a===t.value)).map(t=>({offset:0,day:t.value}))})},handleWeekDayChange(e){const t={...this.rrule},a=e.value;typeof a.value=="string"?(t.byWeekDay=l.weekDayRuleFromString(a.value),t.bySetPosition=[this.offset.value]):(t.bySetPosition=void 0,t.byWeekDay=[{day:a.value,offset:this.offset.value}]),this.updateRrule(t)},handleMonthDayChange(e){var t;this.updateRrule({...this.rrule,byMonthDay:[(t=e.value)!=null?t:1]})},handleMonthChange(e){this.updateRrule({...this.rrule,byMonth:[e.value.value]})},handleEndRuleDropDownChange(e){const t=e.value.value,a={...this.rrule};switch(t){case"never":a.until=void 0,a.count=void 0;break;case"count":a.until=void 0,a.count=this.defaultCount;break;case"until":a.until=this.defaultUntil,a.count=void 0;break}this.updateRrule(a)},handleRepeatOnRuleChange(e){const t={...this.rrule};e.value==="monthday"?(t.byWeekDay=void 0,t.bySetPosition=void 0,t.byMonthDay=[this.monthDay]):e.value==="weekday"&&(t.byMonthDay=void 0,typeof this.weekDay.value=="string"?(t.bySetPosition=[this.offset.value],t.byWeekDay=l.weekDayRuleFromString(this.weekDay.value)):t.byWeekDay=[{day:this.weekDay.value,offset:this.offset.value}]),this.updateRrule(t)},handleOffsetChange(e){const t={...this.rrule},a=e.value;if(t.byWeekDay)switch(t.byWeekDay.length){case 7:case 5:case 2:t.bySetPosition=[a.value];break;case 1:t.byWeekDay[0].offset=a.value;break}this.updateRrule(t)},handleFrequencyDropDownChange(e){const t=e.value.value;this.handleFrequencyChange(t)},handleWeekDayButtonClick(e){const t=this.selectedWeekDays.includes(e)?this.selectedWeekDays.filter(a=>a!==e):[...this.selectedWeekDays,e];this.handleWeekDaysChange(t)},handleStartsOnChange(e){e.value&&(this.startsOn=e.value)},handleSave(){const e=u.provideIntlService(this);this.rrule.freq==="never"||!this.rrule.freq?this.$emit("save",null):(this.rrule.weekStart===void 0&&(this.rrule.weekStart=e.firstDay()),this.$emit("save",k.serializeRule(this.rrule,this.timezone)))},handleClose(e){this.$emit("cancel")}},render(){let e,t,a,i,o;const y=u.provideLocalizationService(this),f=y.toLanguageString(n.editorSave,n.messages[n.editorSave]),R=y.toLanguageString(n.editorCancel,n.messages[n.editorCancel]),b=y.toLanguageString(n.editorRecurrenceDialogTitle,n.messages[n.editorRecurrenceDialogTitle]),w=y.toLanguageString(n.editorRecurrenceRemove,n.messages[n.editorRecurrenceRemove]);return r.createVNode(C.Dialog,{title:b,appendTo:"body",width:540,onClose:this.handleClose},{default:()=>[r.createVNode("div",{class:"k-form k-form-horizontal"},[r.createVNode(h.FieldWrapper,null,{default:()=>[r.createVNode(g.Label,{editorId:"recurrence-interval",class:"k-form-label"},c(e=this.localizeMessage(n.recurrenceEditorRepeat,!0))?e:{default:()=>[e]}),r.createVNode("div",{class:"k-form-field-wrap"},[r.createVNode("div",{class:"k-scheduler-recurrence-fields"},[this.frequency!=="never"&&r.createVNode(m.NumericTextBox,{id:"recurrence-interval",min:1,step:1,defaultValue:1,value:this.rrule.interval,onChange:this.handleIntervalChange},null),r.createVNode(d.DropDownList,{dataItems:this.frequencyData,textField:"text",dataItemKey:"value",value:this.frequencyDropDownValue,onChange:this.handleFrequencyDropDownChange},null)])])]}),this.frequency==="weekly"&&r.createVNode(h.FieldWrapper,null,{default:()=>[r.createVNode(g.Label,{class:"k-form-label"},c(t=this.localizeMessage(n.recurrenceEditorWeeklyRepeatOn,!0))?t:{default:()=>[t]}),r.createVNode("div",{class:"k-form-field-wrap"},[r.createVNode("div",{class:"k-scheduler-weekday-picker",role:"group","aria-label":this.localizeMessage(n.recurrenceEditorWeeklyRepeatOnDays,!0)},[this.narrowWeekDays.map(s=>r.createVNode(D.Button,{key:s.value,type:"button",themeColor:"primary",fillMode:"flat",rounded:"full",togglable:!0,selected:this.selectedWeekDays.includes(s.value),"aria-label":s.wide,"aria-pressed":this.selectedWeekDays.includes(s.value),onClick:()=>this.handleWeekDayButtonClick(s.value)},{default:()=>[s.narrow]}))])])]}),this.frequency==="monthly"&&r.createVNode(h.FieldWrapper,null,{default:()=>{var s,v;return[r.createVNode(g.Label,{class:"k-form-label"},c(a=this.localizeMessage(n.recurrenceEditorMonthlyRepeatOn,!0))?a:{default:()=>[a]}),r.createVNode("div",{class:"k-form-field-wrap"},[r.createVNode(m.RadioGroup,{value:this.repeatOnRule,onChange:this.handleRepeatOnRuleChange,class:"k-reset",dataItems:[{value:"weekday",tabIndex:0,name:"scheduler-recurrence-monthly-weekday",label:" ",content:r.createVNode("div",{class:"k-scheduler-recurrence-fields"},[r.createVNode(d.DropDownList,{textField:"text",dataItemKey:"value",disabled:this.repeatOnRule!=="weekday",dataItems:this.offsets,value:this.offset,onChange:this.handleOffsetChange},null),r.createVNode(d.DropDownList,{disabled:this.repeatOnRule!=="weekday",value:this.weekDay,dataItems:this.extendedWeekDays,onChange:this.handleWeekDayChange,textField:"text",dataItemKey:"value"},null)])},{value:"monthday",tabIndex:0,name:"scheduler-recurrence-monthly-monthday",label:" ",content:r.createVNode("div",{class:"k-scheduler-recurrence-fields"},[r.createVNode(m.NumericTextBox,{min:1,max:31,disabled:this.repeatOnRule!=="monthday",value:(v=(s=this.rrule)==null?void 0:s.byMonthDay)==null?void 0:v[0],onChange:this.handleMonthDayChange,style:{width:"auto"}},null)])}]},null)])]}}),this.frequency==="yearly"&&r.createVNode(h.FieldWrapper,null,{default:()=>[r.createVNode(g.Label,{class:"k-form-label"},c(i=this.localizeMessage(n.recurrenceEditorYearlyRepeatOn,!0))?i:{default:()=>[i]}),r.createVNode("div",{class:"k-form-field-wrap"},[r.createVNode(m.RadioGroup,{value:this.repeatOnRule,onChange:this.handleRepeatOnRuleChange,class:"k-reset",dataItems:[{value:"monthday",tabIndex:0,name:"scheduler-recurrence-yearly-monthday",label:" ",content:r.createVNode("div",{class:"k-scheduler-recurrence-fields"},[r.createVNode(d.DropDownList,{disabled:this.repeatOnRule!=="monthday",value:this.month,dataItems:this.months,textField:"text",dataItemKey:"value",onChange:this.handleMonthChange},null),r.createVNode(m.NumericTextBox,{min:1,max:31,disabled:this.repeatOnRule!=="monthday",value:this.monthDay,onChange:this.handleMonthDayChange,style:{width:"auto"}},null)])},{value:"weekday",tabIndex:0,name:"scheduler-recurrence-yearly-weekday",label:" ",content:r.createVNode("div",{class:"k-scheduler-recurrence-fields"},[r.createVNode(d.DropDownList,{textField:"text",dataItemKey:"value",disabled:this.repeatOnRule!=="weekday",dataItems:this.offsets,value:this.offset,onChange:this.handleOffsetChange},null),r.createVNode(d.DropDownList,{textField:"text",dataItemKey:"value",disabled:this.repeatOnRule!=="weekday",value:this.weekDay,dataItems:this.extendedWeekDays,onChange:this.handleWeekDayChange},null),r.createVNode("span",{key:"of-row",class:"k-scheduler-edit-form-row"},[r.createVNode("span",null,[this.localizeMessage(n.recurrenceEditorYearlyOf,!0)]),r.createVNode(d.DropDownList,{textField:"text",dataItemKey:"value",disabled:this.repeatOnRule!=="weekday",value:this.month,dataItems:this.months,onChange:this.handleMonthChange},null)])])}]},null)])]}),this.frequency!=="never"&&r.createVNode(h.FieldWrapper,null,{default:()=>{var s,v;return[r.createVNode(g.Label,{class:"k-form-label"},c(o=this.localizeMessage(n.recurrenceEditorEndLabel,!0))?o:{default:()=>[o]}),r.createVNode("div",{class:"k-form-field-wrap"},[r.createVNode("div",{class:"k-scheduler-recurrence-fields"},[r.createVNode(d.DropDownList,{dataItems:this.endRuleData,textField:"text",dataItemKey:"value",value:this.endRuleDropDownValue,onChange:this.handleEndRuleDropDownChange},null),this.endRule==="count"&&r.createVNode(m.NumericTextBox,{min:1,style:{width:"auto"},value:(s=this.rrule.count)!=null?s:this.defaultCount,onChange:this.handleCountChange,format:`0 '${this.localizeMessage(n.recurrenceEditorEndOccurrence,!0)}'`},null),this.endRule==="until"&&r.createVNode(V.DatePicker,{min:this.startsOn,value:(v=this.until)!=null?v:p.toLocalDate(this.defaultUntil),onChange:this.handleUntilChange,style:{width:"auto"}},null)])])]}}),this.frequency!=="never"&&(this.recurrenceSummaryTemplate&&this.currentRuleString?r.createVNode(h.FieldWrapper,null,{default:()=>[r.createVNode("div",{class:"k-form-field-wrap"},[r.createVNode("div",{class:"k-form-hint"},[this.renderRecurrenceSummaryTemplate()])])]}):this.summary?r.createVNode(h.FieldWrapper,null,{default:()=>[r.createVNode("div",{class:"k-form-field-wrap"},[r.createVNode("div",{class:"k-form-hint"},[this.summary])])]}):null)]),r.createVNode(C.DialogActionsBar,{layout:"end"},{default:()=>[this.isExistingRecurrence&&this.onRemoveRecurrence&&r.createVNode(D.Button,{fillMode:"flat",themeColor:"primary",onClick:this.onRemoveRecurrence},c(w)?w:{default:()=>[w]}),r.createVNode(D.Button,{onClick:()=>this.$emit("cancel")},c(R)?R:{default:()=>[R]}),r.createVNode(D.Button,{themeColor:"primary",onClick:this.handleSave},c(f)?f:{default:()=>[f]})]})]})}});exports.SchedulerRecurrenceDialog=S;