@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.
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,575 @@
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 { defineComponent as q, createVNode as a, inject as E, isVNode as I } from "vue";
9
+ import { Dialog as F, DialogActionsBar as L } from "@progress/kendo-vue-dialogs";
10
+ import { Button as g } from "@progress/kendo-vue-buttons";
11
+ import { provideLocalizationService as D, provideIntlService as c } from "@progress/kendo-vue-intl";
12
+ import { NumericTextBox as v, RadioGroup as w } from "@progress/kendo-vue-inputs";
13
+ import { DropDownList as i } from "@progress/kendo-vue-dropdowns";
14
+ import { DatePicker as T } from "@progress/kendo-vue-dateinputs";
15
+ import { Label as f } from "@progress/kendo-vue-labels";
16
+ import { FieldWrapper as o } from "@progress/kendo-vue-form";
17
+ import { toLocalDate as b, ZonedDate as R } from "@progress/kendo-date-math";
18
+ import { serializeRule as C, parseRule as K } from "@progress/kendo-recurrence";
19
+ import { editorSave as S, messages as m, editorCancel as O, editorRecurrenceDialogTitle as M, editorRecurrenceRemove as x, recurrenceEditorRepeat as j, recurrenceEditorWeeklyRepeatOn as U, recurrenceEditorWeeklyRepeatOnDays as _, recurrenceEditorMonthlyRepeatOn as B, recurrenceEditorYearlyRepeatOn as N, recurrenceEditorYearlyOf as P, recurrenceEditorEndLabel as V, recurrenceEditorEndOccurrence as $, recurrenceEditorEndNever as Y, recurrenceEditorEndAfter as A, recurrenceEditorEndOn as G, recurrenceEditorFrequenciesDaily as Z, recurrenceEditorFrequenciesWeekly as H, recurrenceEditorFrequenciesMonthly as J, recurrenceEditorFrequenciesYearly as Q } from "../messages/main.mjs";
20
+ import { getRecurrenceSummary as X } from "../hooks/useRecurrenceSummary.mjs";
21
+ import { weekDayRuleFromString as W, getRepeatOnRule as ee, getMonthDay as te, getEndRule as ae, getOffset as re, getOffsets as ne, getMonth as le, getMonths as se, getWeekDay as ie, getExtendedWeekDays as ue, getWeekDays as oe, getFrequency as he, getRule as de } from "../recurrence/common.mjs";
22
+ function u(e) {
23
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !I(e);
24
+ }
25
+ const Oe = /* @__PURE__ */ q({
26
+ name: "KendoSchedulerRecurrenceDialog",
27
+ props: {
28
+ value: {
29
+ type: [String, null],
30
+ default: null
31
+ },
32
+ start: {
33
+ type: Date,
34
+ required: !0
35
+ },
36
+ timezone: {
37
+ type: String,
38
+ default: ""
39
+ },
40
+ onSave: Function,
41
+ onCancel: Function,
42
+ onRemoveRecurrence: Function,
43
+ recurrenceSummaryTemplate: [Object, Function],
44
+ recurrenceEditor: [Object, Function]
45
+ },
46
+ inject: {
47
+ kendoLocalizationService: {
48
+ default: null
49
+ }
50
+ },
51
+ setup() {
52
+ return {
53
+ kendoLocalizationService: E("kendoLocalizationService", {})
54
+ };
55
+ },
56
+ data() {
57
+ var r;
58
+ const e = de((r = this.value) != null ? r : "");
59
+ return {
60
+ rrule: e.freq ? e : {
61
+ freq: "daily",
62
+ interval: 1
63
+ },
64
+ defaultCount: 1,
65
+ defaultUntil: R.fromUTCDate(this.start),
66
+ startsOn: new Date(this.start)
67
+ };
68
+ },
69
+ computed: {
70
+ frequency() {
71
+ return he(this.rrule);
72
+ },
73
+ weekDays() {
74
+ const e = c(this);
75
+ return oe(e);
76
+ },
77
+ extendedWeekDays() {
78
+ const e = c(this);
79
+ return ue(e, this.localizeMessage);
80
+ },
81
+ weekDay() {
82
+ return ie(this.extendedWeekDays, this.rrule, this.startsOn);
83
+ },
84
+ months() {
85
+ const e = c(this);
86
+ return se(e);
87
+ },
88
+ month() {
89
+ return le(this.months, this.rrule);
90
+ },
91
+ offsets() {
92
+ return ne(this.localizeMessage);
93
+ },
94
+ offset() {
95
+ return re(this.offsets, this.rrule);
96
+ },
97
+ endRule() {
98
+ return ae(this.rrule);
99
+ },
100
+ monthDay() {
101
+ return te(this.rrule, this.startsOn);
102
+ },
103
+ until() {
104
+ return this.rrule.until ? b(this.rrule.until) : null;
105
+ },
106
+ repeatOnRule() {
107
+ return ee(this.rrule);
108
+ },
109
+ isExistingRecurrence() {
110
+ return !!this.value;
111
+ },
112
+ frequencyData() {
113
+ return [{
114
+ text: this.localizeMessage(Z, !0),
115
+ value: "daily"
116
+ }, {
117
+ text: this.localizeMessage(H, !0),
118
+ value: "weekly"
119
+ }, {
120
+ text: this.localizeMessage(J, !0),
121
+ value: "monthly"
122
+ }, {
123
+ text: this.localizeMessage(Q, !0),
124
+ value: "yearly"
125
+ }];
126
+ },
127
+ endRuleData() {
128
+ return [{
129
+ text: this.localizeMessage(Y, !0),
130
+ value: "never"
131
+ }, {
132
+ text: this.localizeMessage(A, !0),
133
+ value: "count"
134
+ }, {
135
+ text: this.localizeMessage(G, !0),
136
+ value: "until"
137
+ }];
138
+ },
139
+ frequencyDropDownValue() {
140
+ return this.frequencyData.find((e) => e.value === this.frequency) || this.frequencyData[0];
141
+ },
142
+ endRuleDropDownValue() {
143
+ return this.endRuleData.find((e) => e.value === this.endRule) || this.endRuleData[0];
144
+ },
145
+ narrowWeekDays() {
146
+ const e = c(this), t = e.firstDay(), r = e.dateFormatNames({
147
+ type: "days",
148
+ nameType: "narrow"
149
+ }), l = e.dateFormatNames({
150
+ type: "days",
151
+ nameType: "wide"
152
+ }), s = r.map((h, d) => ({
153
+ narrow: h,
154
+ wide: l[d],
155
+ value: d
156
+ }));
157
+ return s.slice(t).concat(s.slice(0, t));
158
+ },
159
+ selectedWeekDays() {
160
+ return (this.rrule.byWeekDay || []).map(({
161
+ day: e
162
+ }) => e);
163
+ },
164
+ summary() {
165
+ if (!this.rrule.freq || this.rrule.freq === "never")
166
+ return "";
167
+ const e = c(this), t = D(this), r = C(this.rrule, this.timezone);
168
+ return X(r, this.startsOn, e, (l, s) => t.toLanguageString(l, s));
169
+ },
170
+ currentRuleString() {
171
+ return !this.rrule.freq || this.rrule.freq === "never" ? null : C(this.rrule, this.timezone);
172
+ },
173
+ parsedCurrentRule() {
174
+ return this.currentRuleString ? K({
175
+ recurrenceRule: this.currentRuleString
176
+ }) : null;
177
+ }
178
+ },
179
+ methods: {
180
+ localizeMessage(e, t) {
181
+ const r = D(this), l = t ? e : "scheduler.recurrenceEditor" + e;
182
+ return r.toLanguageString(l, m[l]);
183
+ },
184
+ renderRecurrenceSummaryTemplate() {
185
+ const e = this.recurrenceSummaryTemplate;
186
+ return !e || !this.currentRuleString ? null : a(e, {
187
+ recurrenceRule: this.currentRuleString,
188
+ text: this.summary || "",
189
+ parsedRule: this.parsedCurrentRule
190
+ }, null);
191
+ },
192
+ updateRrule(e) {
193
+ this.rrule = {
194
+ ...e
195
+ };
196
+ },
197
+ handleFrequencyChange(e) {
198
+ const t = {};
199
+ t.freq = e, t.interval = 1, e === "weekly" && (t.byWeekDay = [{
200
+ day: R.fromLocalDate(this.startsOn, this.timezone).getDay(),
201
+ offset: 0
202
+ }]), (e === "monthly" || e === "yearly") && (t.byMonthDay = [this.startsOn.getDate()]), e === "yearly" && (t.byMonth = [this.startsOn.getMonth() + 1]), this.updateRrule(t);
203
+ },
204
+ handleIntervalChange(e) {
205
+ var t;
206
+ this.updateRrule({
207
+ ...this.rrule,
208
+ interval: (t = e.value) != null ? t : 1
209
+ });
210
+ },
211
+ handleCountChange(e) {
212
+ const t = e.value, r = t != null ? t : this.defaultCount;
213
+ this.updateRrule({
214
+ ...this.rrule,
215
+ count: r
216
+ }), t !== null && (this.defaultCount = r);
217
+ },
218
+ handleUntilChange(e) {
219
+ if (!e.value)
220
+ return;
221
+ const t = R.fromLocalDate(e.value, this.timezone);
222
+ this.updateRrule({
223
+ ...this.rrule,
224
+ until: t
225
+ }), this.defaultUntil = t;
226
+ },
227
+ handleWeekDaysChange(e) {
228
+ this.updateRrule({
229
+ ...this.rrule,
230
+ byWeekDay: this.weekDays.filter((t) => e.some((r) => r === t.value)).map((t) => ({
231
+ offset: 0,
232
+ day: t.value
233
+ }))
234
+ });
235
+ },
236
+ handleWeekDayChange(e) {
237
+ const t = {
238
+ ...this.rrule
239
+ }, r = e.value;
240
+ typeof r.value == "string" ? (t.byWeekDay = W(r.value), t.bySetPosition = [this.offset.value]) : (t.bySetPosition = void 0, t.byWeekDay = [{
241
+ day: r.value,
242
+ offset: this.offset.value
243
+ }]), this.updateRrule(t);
244
+ },
245
+ handleMonthDayChange(e) {
246
+ var t;
247
+ this.updateRrule({
248
+ ...this.rrule,
249
+ byMonthDay: [(t = e.value) != null ? t : 1]
250
+ });
251
+ },
252
+ handleMonthChange(e) {
253
+ this.updateRrule({
254
+ ...this.rrule,
255
+ byMonth: [e.value.value]
256
+ });
257
+ },
258
+ handleEndRuleDropDownChange(e) {
259
+ const t = e.value.value, r = {
260
+ ...this.rrule
261
+ };
262
+ switch (t) {
263
+ case "never":
264
+ r.until = void 0, r.count = void 0;
265
+ break;
266
+ case "count":
267
+ r.until = void 0, r.count = this.defaultCount;
268
+ break;
269
+ case "until":
270
+ r.until = this.defaultUntil, r.count = void 0;
271
+ break;
272
+ }
273
+ this.updateRrule(r);
274
+ },
275
+ handleRepeatOnRuleChange(e) {
276
+ const t = {
277
+ ...this.rrule
278
+ };
279
+ 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 = W(this.weekDay.value)) : t.byWeekDay = [{
280
+ day: this.weekDay.value,
281
+ offset: this.offset.value
282
+ }]), this.updateRrule(t);
283
+ },
284
+ handleOffsetChange(e) {
285
+ const t = {
286
+ ...this.rrule
287
+ }, r = e.value;
288
+ if (t.byWeekDay)
289
+ switch (t.byWeekDay.length) {
290
+ case 7:
291
+ case 5:
292
+ case 2:
293
+ t.bySetPosition = [r.value];
294
+ break;
295
+ case 1:
296
+ t.byWeekDay[0].offset = r.value;
297
+ break;
298
+ }
299
+ this.updateRrule(t);
300
+ },
301
+ handleFrequencyDropDownChange(e) {
302
+ const t = e.value.value;
303
+ this.handleFrequencyChange(t);
304
+ },
305
+ handleWeekDayButtonClick(e) {
306
+ const t = this.selectedWeekDays.includes(e) ? this.selectedWeekDays.filter((r) => r !== e) : [...this.selectedWeekDays, e];
307
+ this.handleWeekDaysChange(t);
308
+ },
309
+ handleStartsOnChange(e) {
310
+ e.value && (this.startsOn = e.value);
311
+ },
312
+ handleSave() {
313
+ const e = c(this);
314
+ this.rrule.freq === "never" || !this.rrule.freq ? this.$emit("save", null) : (this.rrule.weekStart === void 0 && (this.rrule.weekStart = e.firstDay()), this.$emit("save", C(this.rrule, this.timezone)));
315
+ },
316
+ handleClose(e) {
317
+ this.$emit("cancel");
318
+ }
319
+ },
320
+ render() {
321
+ let e, t, r, l, s;
322
+ const h = D(this), d = h.toLanguageString(S, m[S]), p = h.toLanguageString(O, m[O]), z = h.toLanguageString(M, m[M]), k = h.toLanguageString(x, m[x]);
323
+ return a(F, {
324
+ title: z,
325
+ appendTo: "body",
326
+ width: 540,
327
+ onClose: this.handleClose
328
+ }, {
329
+ default: () => [a("div", {
330
+ class: "k-form k-form-horizontal"
331
+ }, [a(o, null, {
332
+ default: () => [a(f, {
333
+ editorId: "recurrence-interval",
334
+ class: "k-form-label"
335
+ }, u(e = this.localizeMessage(j, !0)) ? e : {
336
+ default: () => [e]
337
+ }), a("div", {
338
+ class: "k-form-field-wrap"
339
+ }, [a("div", {
340
+ class: "k-scheduler-recurrence-fields"
341
+ }, [this.frequency !== "never" && a(v, {
342
+ id: "recurrence-interval",
343
+ min: 1,
344
+ step: 1,
345
+ defaultValue: 1,
346
+ value: this.rrule.interval,
347
+ onChange: this.handleIntervalChange
348
+ }, null), a(i, {
349
+ dataItems: this.frequencyData,
350
+ textField: "text",
351
+ dataItemKey: "value",
352
+ value: this.frequencyDropDownValue,
353
+ onChange: this.handleFrequencyDropDownChange
354
+ }, null)])])]
355
+ }), this.frequency === "weekly" && a(o, null, {
356
+ default: () => [a(f, {
357
+ class: "k-form-label"
358
+ }, u(t = this.localizeMessage(U, !0)) ? t : {
359
+ default: () => [t]
360
+ }), a("div", {
361
+ class: "k-form-field-wrap"
362
+ }, [a("div", {
363
+ class: "k-scheduler-weekday-picker",
364
+ role: "group",
365
+ "aria-label": this.localizeMessage(_, !0)
366
+ }, [this.narrowWeekDays.map((n) => a(g, {
367
+ key: n.value,
368
+ type: "button",
369
+ themeColor: "primary",
370
+ fillMode: "flat",
371
+ rounded: "full",
372
+ togglable: !0,
373
+ selected: this.selectedWeekDays.includes(n.value),
374
+ "aria-label": n.wide,
375
+ "aria-pressed": this.selectedWeekDays.includes(n.value),
376
+ onClick: () => this.handleWeekDayButtonClick(n.value)
377
+ }, {
378
+ default: () => [n.narrow]
379
+ }))])])]
380
+ }), this.frequency === "monthly" && a(o, null, {
381
+ default: () => {
382
+ var n, y;
383
+ return [a(f, {
384
+ class: "k-form-label"
385
+ }, u(r = this.localizeMessage(B, !0)) ? r : {
386
+ default: () => [r]
387
+ }), a("div", {
388
+ class: "k-form-field-wrap"
389
+ }, [a(w, {
390
+ value: this.repeatOnRule,
391
+ onChange: this.handleRepeatOnRuleChange,
392
+ class: "k-reset",
393
+ dataItems: [{
394
+ value: "weekday",
395
+ tabIndex: 0,
396
+ name: "scheduler-recurrence-monthly-weekday",
397
+ label: " ",
398
+ content: a("div", {
399
+ class: "k-scheduler-recurrence-fields"
400
+ }, [a(i, {
401
+ textField: "text",
402
+ dataItemKey: "value",
403
+ disabled: this.repeatOnRule !== "weekday",
404
+ dataItems: this.offsets,
405
+ value: this.offset,
406
+ onChange: this.handleOffsetChange
407
+ }, null), a(i, {
408
+ disabled: this.repeatOnRule !== "weekday",
409
+ value: this.weekDay,
410
+ dataItems: this.extendedWeekDays,
411
+ onChange: this.handleWeekDayChange,
412
+ textField: "text",
413
+ dataItemKey: "value"
414
+ }, null)])
415
+ }, {
416
+ value: "monthday",
417
+ tabIndex: 0,
418
+ name: "scheduler-recurrence-monthly-monthday",
419
+ label: " ",
420
+ content: a("div", {
421
+ class: "k-scheduler-recurrence-fields"
422
+ }, [a(v, {
423
+ min: 1,
424
+ max: 31,
425
+ disabled: this.repeatOnRule !== "monthday",
426
+ value: (y = (n = this.rrule) == null ? void 0 : n.byMonthDay) == null ? void 0 : y[0],
427
+ onChange: this.handleMonthDayChange,
428
+ style: {
429
+ width: "auto"
430
+ }
431
+ }, null)])
432
+ }]
433
+ }, null)])];
434
+ }
435
+ }), this.frequency === "yearly" && a(o, null, {
436
+ default: () => [a(f, {
437
+ class: "k-form-label"
438
+ }, u(l = this.localizeMessage(N, !0)) ? l : {
439
+ default: () => [l]
440
+ }), a("div", {
441
+ class: "k-form-field-wrap"
442
+ }, [a(w, {
443
+ value: this.repeatOnRule,
444
+ onChange: this.handleRepeatOnRuleChange,
445
+ class: "k-reset",
446
+ dataItems: [{
447
+ value: "monthday",
448
+ tabIndex: 0,
449
+ name: "scheduler-recurrence-yearly-monthday",
450
+ label: " ",
451
+ content: a("div", {
452
+ class: "k-scheduler-recurrence-fields"
453
+ }, [a(i, {
454
+ disabled: this.repeatOnRule !== "monthday",
455
+ value: this.month,
456
+ dataItems: this.months,
457
+ textField: "text",
458
+ dataItemKey: "value",
459
+ onChange: this.handleMonthChange
460
+ }, null), a(v, {
461
+ min: 1,
462
+ max: 31,
463
+ disabled: this.repeatOnRule !== "monthday",
464
+ value: this.monthDay,
465
+ onChange: this.handleMonthDayChange,
466
+ style: {
467
+ width: "auto"
468
+ }
469
+ }, null)])
470
+ }, {
471
+ value: "weekday",
472
+ tabIndex: 0,
473
+ name: "scheduler-recurrence-yearly-weekday",
474
+ label: " ",
475
+ content: a("div", {
476
+ class: "k-scheduler-recurrence-fields"
477
+ }, [a(i, {
478
+ textField: "text",
479
+ dataItemKey: "value",
480
+ disabled: this.repeatOnRule !== "weekday",
481
+ dataItems: this.offsets,
482
+ value: this.offset,
483
+ onChange: this.handleOffsetChange
484
+ }, null), a(i, {
485
+ textField: "text",
486
+ dataItemKey: "value",
487
+ disabled: this.repeatOnRule !== "weekday",
488
+ value: this.weekDay,
489
+ dataItems: this.extendedWeekDays,
490
+ onChange: this.handleWeekDayChange
491
+ }, null), a("span", {
492
+ key: "of-row",
493
+ class: "k-scheduler-edit-form-row"
494
+ }, [a("span", null, [this.localizeMessage(P, !0)]), a(i, {
495
+ textField: "text",
496
+ dataItemKey: "value",
497
+ disabled: this.repeatOnRule !== "weekday",
498
+ value: this.month,
499
+ dataItems: this.months,
500
+ onChange: this.handleMonthChange
501
+ }, null)])])
502
+ }]
503
+ }, null)])]
504
+ }), this.frequency !== "never" && a(o, null, {
505
+ default: () => {
506
+ var n, y;
507
+ return [a(f, {
508
+ class: "k-form-label"
509
+ }, u(s = this.localizeMessage(V, !0)) ? s : {
510
+ default: () => [s]
511
+ }), a("div", {
512
+ class: "k-form-field-wrap"
513
+ }, [a("div", {
514
+ class: "k-scheduler-recurrence-fields"
515
+ }, [a(i, {
516
+ dataItems: this.endRuleData,
517
+ textField: "text",
518
+ dataItemKey: "value",
519
+ value: this.endRuleDropDownValue,
520
+ onChange: this.handleEndRuleDropDownChange
521
+ }, null), this.endRule === "count" && a(v, {
522
+ min: 1,
523
+ style: {
524
+ width: "auto"
525
+ },
526
+ value: (n = this.rrule.count) != null ? n : this.defaultCount,
527
+ onChange: this.handleCountChange,
528
+ format: `0 '${this.localizeMessage($, !0)}'`
529
+ }, null), this.endRule === "until" && a(T, {
530
+ min: this.startsOn,
531
+ value: (y = this.until) != null ? y : b(this.defaultUntil),
532
+ onChange: this.handleUntilChange,
533
+ style: {
534
+ width: "auto"
535
+ }
536
+ }, null)])])];
537
+ }
538
+ }), this.frequency !== "never" && (this.recurrenceSummaryTemplate && this.currentRuleString ? a(o, null, {
539
+ default: () => [a("div", {
540
+ class: "k-form-field-wrap"
541
+ }, [a("div", {
542
+ class: "k-form-hint"
543
+ }, [this.renderRecurrenceSummaryTemplate()])])]
544
+ }) : this.summary ? a(o, null, {
545
+ default: () => [a("div", {
546
+ class: "k-form-field-wrap"
547
+ }, [a("div", {
548
+ class: "k-form-hint"
549
+ }, [this.summary])])]
550
+ }) : null)]), a(L, {
551
+ layout: "end"
552
+ }, {
553
+ default: () => [this.isExistingRecurrence && this.onRemoveRecurrence && a(g, {
554
+ fillMode: "flat",
555
+ themeColor: "primary",
556
+ onClick: this.onRemoveRecurrence
557
+ }, u(k) ? k : {
558
+ default: () => [k]
559
+ }), a(g, {
560
+ onClick: () => this.$emit("cancel")
561
+ }, u(p) ? p : {
562
+ default: () => [p]
563
+ }), a(g, {
564
+ themeColor: "primary",
565
+ onClick: this.handleSave
566
+ }, u(d) ? d : {
567
+ default: () => [d]
568
+ })]
569
+ })]
570
+ });
571
+ }
572
+ });
573
+ export {
574
+ Oe as SchedulerRecurrenceDialog
575
+ };
@@ -0,0 +1,46 @@
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 { DropDownListChangeEvent, DropDownListFilterChangeEvent } from '@progress/kendo-vue-dropdowns';
9
+ import { PropType } from 'vue';
10
+ /**
11
+ * @hidden
12
+ */
13
+ declare const TimezoneDropDownList: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
14
+ value: PropType<any>;
15
+ dataItems: PropType<string[]>;
16
+ validationMessage: StringConstructor;
17
+ touched: BooleanConstructor;
18
+ modified: BooleanConstructor;
19
+ visited: BooleanConstructor;
20
+ valid: BooleanConstructor;
21
+ name: StringConstructor;
22
+ ariaLabel: StringConstructor;
23
+ }>, {}, {
24
+ filteredData: string[];
25
+ }, {}, {
26
+ handleChange(e: DropDownListChangeEvent): void;
27
+ handleFilterChange(e: DropDownListFilterChangeEvent): void;
28
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "change"[], "change", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
29
+ value: PropType<any>;
30
+ dataItems: PropType<string[]>;
31
+ validationMessage: StringConstructor;
32
+ touched: BooleanConstructor;
33
+ modified: BooleanConstructor;
34
+ visited: BooleanConstructor;
35
+ valid: BooleanConstructor;
36
+ name: StringConstructor;
37
+ ariaLabel: StringConstructor;
38
+ }>> & Readonly<{
39
+ onChange?: (...args: any[]) => any;
40
+ }>, {
41
+ touched: boolean;
42
+ modified: boolean;
43
+ visited: boolean;
44
+ valid: boolean;
45
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
46
+ export { TimezoneDropDownList };
@@ -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 t=require("vue"),r=require("@progress/kendo-vue-dropdowns"),l=t.defineComponent({name:"KendoTimezoneDropDownList",props:{value:[String,Number,Object],dataItems:Array,validationMessage:String,touched:Boolean,modified:Boolean,visited:Boolean,valid:Boolean,name:String,ariaLabel:String},emits:["change"],data(){return{filteredData:this.$props.dataItems}},watch:{dataItems(e){this.filteredData=e}},render(){return t.createVNode(r.DropDownList,t.mergeProps({popupSettings:{width:"360px"},dataItems:this.filteredData,value:this.value,onChange:this.handleChange,filterable:!0,ariaLabel:this.ariaLabel},{onFilterchange:this.handleFilterChange}),null)},methods:{handleChange(e){this.$emit("change",{value:e.value})},handleFilterChange(e){var a,i;const o=((i=(a=e.filter)==null?void 0:a.value)==null?void 0:i.toLocaleLowerCase())||"";this.filteredData=(this.$props.dataItems||[]).filter(n=>n.toLocaleLowerCase().includes(o))}}});exports.TimezoneDropDownList=l;
@@ -0,0 +1,63 @@
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 { defineComponent as r, createVNode as n, mergeProps as l } from "vue";
9
+ import { DropDownList as s } from "@progress/kendo-vue-dropdowns";
10
+ const m = /* @__PURE__ */ r({
11
+ name: "KendoTimezoneDropDownList",
12
+ props: {
13
+ value: [String, Number, Object],
14
+ dataItems: Array,
15
+ validationMessage: String,
16
+ touched: Boolean,
17
+ modified: Boolean,
18
+ visited: Boolean,
19
+ valid: Boolean,
20
+ name: String,
21
+ ariaLabel: String
22
+ },
23
+ emits: ["change"],
24
+ data() {
25
+ return {
26
+ filteredData: this.$props.dataItems
27
+ };
28
+ },
29
+ watch: {
30
+ dataItems(e) {
31
+ this.filteredData = e;
32
+ }
33
+ },
34
+ render() {
35
+ return n(s, l({
36
+ popupSettings: {
37
+ width: "360px"
38
+ },
39
+ dataItems: this.filteredData,
40
+ value: this.value,
41
+ onChange: this.handleChange,
42
+ filterable: !0,
43
+ ariaLabel: this.ariaLabel
44
+ }, {
45
+ onFilterchange: this.handleFilterChange
46
+ }), null);
47
+ },
48
+ methods: {
49
+ handleChange(e) {
50
+ this.$emit("change", {
51
+ value: e.value
52
+ });
53
+ },
54
+ handleFilterChange(e) {
55
+ var a, t;
56
+ const i = ((t = (a = e.filter) == null ? void 0 : a.value) == null ? void 0 : t.toLocaleLowerCase()) || "";
57
+ this.filteredData = (this.$props.dataItems || []).filter((o) => o.toLocaleLowerCase().includes(i));
58
+ }
59
+ }
60
+ });
61
+ export {
62
+ m as TimezoneDropDownList
63
+ };