@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.
- 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
|
@@ -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;
|