@progress/kendo-vue-scheduler 10.2.0-develop.11 → 10.2.0-develop.12
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 +157 -56
- package/Scheduler.js +1 -1
- package/Scheduler.mjs +242 -214
- package/components/EventOverviewPopover.d.ts +62 -0
- package/components/EventOverviewPopover.js +8 -0
- package/components/EventOverviewPopover.mjs +191 -0
- package/components/MoreEventsPopover.d.ts +3 -1
- package/components/MoreEventsPopover.js +1 -1
- package/components/MoreEventsPopover.mjs +31 -27
- package/components/SchedulerActionButtons.js +1 -1
- package/components/SchedulerActionButtons.mjs +1 -0
- package/components/SchedulerForm.d.ts +412 -2
- package/components/SchedulerForm.js +1 -1
- package/components/SchedulerForm.mjs +162 -60
- package/components/SchedulerQuickCreateForm.d.ts +118 -0
- package/components/SchedulerQuickCreateForm.js +8 -0
- package/components/SchedulerQuickCreateForm.mjs +249 -0
- package/constants/main.d.ts +2 -0
- package/constants/main.js +1 -1
- package/constants/main.mjs +10 -9
- package/dist/cdn/js/kendo-vue-scheduler.js +1 -1
- package/editors/KeepResetCustomEventsDialog.d.ts +31 -0
- package/editors/KeepResetCustomEventsDialog.js +8 -0
- package/editors/KeepResetCustomEventsDialog.mjs +72 -0
- package/editors/SchedulerFormEditor.d.ts +151 -52
- package/editors/SchedulerFormEditor.js +1 -1
- package/editors/SchedulerFormEditor.mjs +192 -139
- package/editors/SchedulerRecurrenceDialog.d.ts +2 -2
- package/editors/SchedulerRecurrenceDialog.js +1 -1
- package/editors/SchedulerRecurrenceDialog.mjs +126 -131
- package/editors/ZonedSplitDateTime.d.ts +32 -3
- package/editors/ZonedSplitDateTime.js +1 -1
- package/editors/ZonedSplitDateTime.mjs +112 -47
- package/hooks/useCloseOnAnchorScrollOut.d.ts +10 -0
- package/hooks/useCloseOnAnchorScrollOut.js +8 -0
- package/hooks/useCloseOnAnchorScrollOut.mjs +43 -0
- package/hooks/useCustomEventsConfirmation.d.ts +20 -0
- package/hooks/useCustomEventsConfirmation.js +8 -0
- package/hooks/useCustomEventsConfirmation.mjs +48 -0
- package/hooks/useDeferredClick.d.ts +12 -0
- package/hooks/useDeferredClick.js +8 -0
- package/hooks/useDeferredClick.mjs +22 -0
- package/hooks/useExclusivePopover.d.ts +26 -0
- package/hooks/useExclusivePopover.js +8 -0
- package/hooks/useExclusivePopover.mjs +30 -0
- package/hooks/useRecurrenceSummary.d.ts +3 -0
- package/hooks/useRecurrenceSummary.js +1 -1
- package/hooks/useRecurrenceSummary.mjs +68 -41
- package/index.d.mts +4 -2
- package/index.d.ts +4 -2
- package/index.js +1 -1
- package/index.mjs +83 -78
- package/items/SchedulerEditItem.d.ts +116 -12
- package/items/SchedulerEditItem.js +1 -1
- package/items/SchedulerEditItem.mjs +212 -131
- package/items/SchedulerItem.d.ts +2 -1
- package/items/SchedulerItem.js +1 -1
- package/items/SchedulerItem.mjs +28 -23
- package/items/SchedulerProportionalViewItem.d.ts +1 -0
- package/items/SchedulerProportionalViewItem.js +1 -1
- package/items/SchedulerProportionalViewItem.mjs +83 -68
- package/items/SchedulerViewItem.d.ts +1 -0
- package/items/SchedulerViewItem.js +1 -1
- package/items/SchedulerViewItem.mjs +84 -75
- package/items/hooks/use-drag-item.js +1 -1
- package/items/hooks/use-drag-item.mjs +49 -48
- package/items/hooks/use-form-item.d.ts +1 -1
- package/items/hooks/use-remove-item.d.ts +1 -1
- package/items/hooks/use-resize-item.js +1 -1
- package/items/hooks/use-resize-item.mjs +74 -65
- package/messages/main.d.ts +42 -0
- package/messages/main.js +1 -1
- package/messages/main.mjs +303 -275
- package/models/InternalDataAction.d.ts +13 -0
- package/models/SchedulerView.d.ts +1 -1
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +13 -12
- package/recurrence/RecurrenceEditor.js +1 -1
- package/recurrence/RecurrenceEditor.mjs +42 -42
- package/recurrence/common.d.ts +10 -0
- package/recurrence/common.js +1 -1
- package/recurrence/common.mjs +39 -35
- package/services/itemsService.d.ts +5 -2
- package/services/itemsService.js +1 -1
- package/services/itemsService.mjs +46 -33
- package/services/occurrenceService.js +1 -1
- package/services/occurrenceService.mjs +18 -18
- package/slots/SchedulerEditSlot.d.ts +70 -8
- package/slots/SchedulerEditSlot.js +1 -1
- package/slots/SchedulerEditSlot.mjs +222 -141
- package/slots/SchedulerSlot.js +1 -1
- package/slots/SchedulerSlot.mjs +20 -16
- package/slots/SchedulerViewSlot.d.ts +3 -0
- package/slots/SchedulerViewSlot.js +1 -1
- package/slots/SchedulerViewSlot.mjs +21 -15
- package/tasks/SchedulerEditTask.d.ts +13 -2
- package/tasks/SchedulerEditTask.js +1 -1
- package/tasks/SchedulerEditTask.mjs +45 -30
- package/utils/main.d.ts +27 -0
- package/utils/main.js +1 -1
- package/utils/main.mjs +172 -136
- package/views/agenda/AgendaView.d.ts +6 -2
- package/views/agenda/AgendaView.js +1 -1
- package/views/agenda/AgendaView.mjs +31 -29
- package/views/agenda/AgendaViewBody.d.ts +3 -3
- package/views/agenda/AgendaViewBody.js +1 -1
- package/views/agenda/AgendaViewBody.mjs +31 -29
- package/views/common/SchedulerDrag.d.ts +4 -2
- package/views/common/SchedulerDrag.js +1 -1
- package/views/common/SchedulerDrag.mjs +8 -7
- package/views/common/SchedulerResize.d.ts +4 -2
- package/views/common/SchedulerResize.js +1 -1
- package/views/common/SchedulerResize.mjs +14 -12
- package/views/common/VerticalResourceIterator.d.ts +3 -3
- package/views/common/VerticalResourceIterator.js +1 -1
- package/views/common/VerticalResourceIterator.mjs +34 -33
- package/views/day/DayView.d.ts +2 -0
- package/views/day/DayView.js +1 -1
- package/views/day/DayView.mjs +9 -7
- package/views/day/DayViewAllDaySlots.d.ts +7 -5
- package/views/day/DayViewAllDaySlots.js +1 -1
- package/views/day/DayViewAllDaySlots.mjs +24 -21
- package/views/day/DayViewMiddleRow.d.ts +7 -5
- package/views/day/DayViewMiddleRow.js +1 -1
- package/views/day/DayViewMiddleRow.mjs +18 -13
- package/views/day/DayViewVerticalRow.d.ts +7 -5
- package/views/day/DayViewVerticalRow.js +1 -1
- package/views/day/DayViewVerticalRow.mjs +23 -17
- package/views/day/DayViewVerticalSlotsRow.d.ts +7 -5
- package/views/day/DayViewVerticalSlotsRow.js +1 -1
- package/views/day/DayViewVerticalSlotsRow.mjs +34 -29
- package/views/day/MultiDayView.d.ts +13 -7
- package/views/day/MultiDayView.js +1 -1
- package/views/day/MultiDayView.mjs +108 -95
- package/views/month/MonthView.d.ts +15 -4
- package/views/month/MonthView.js +1 -1
- package/views/month/MonthView.mjs +105 -68
- package/views/month/MonthViewBody.d.ts +3 -3
- package/views/month/MonthViewBody.js +1 -1
- package/views/month/MonthViewBody.mjs +18 -16
- package/views/time/MultiDayTimelineView.d.ts +6 -4
- package/views/time/MultiDayTimelineView.js +1 -1
- package/views/time/MultiDayTimelineView.mjs +64 -63
- package/views/time/TimelineView.d.ts +2 -0
- package/views/time/TimelineView.js +1 -1
- package/views/time/TimelineView.mjs +5 -3
- package/views/time/TimelineViewBody.d.ts +7 -5
- package/views/time/TimelineViewBody.js +1 -1
- package/views/time/TimelineViewBody.mjs +29 -27
- package/views/week/WeekView.d.ts +2 -0
- package/views/week/WeekView.js +1 -1
- package/views/week/WeekView.mjs +11 -10
- package/views/week/WorkWeekView.d.ts +2 -0
- package/views/week/WorkWeekView.js +1 -1
- package/views/week/WorkWeekView.mjs +17 -16
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 h=require("vue"),t=require("./utils/main.js"),l=require("@progress/kendo-vue-common"),_=require("./components/header/SchedulerHeader.js"),y=require("@progress/kendo-vue-intl"),S=require("@progress/kendo-date-math"),K=require("./components/footer/SchedulerFooter.js"),b=require("@progress/kendo-vue-buttons"),G=require("./components/header/navigation/NavigationDatePicker.js"),Y=require("./components/header/view-selector/ViewSelectorList.js"),Z=require("./components/footer/bussiness-hours/BusinessHours.js"),p=require("./messages/main.js"),E=require("./package-metadata.js"),J=require("./views/agenda/AgendaView.js"),Q=require("./views/time/TimelineView.js"),C=require("./views/day/DayView.js"),X=require("./views/week/WeekView.js"),ee=require("./views/week/WorkWeekView.js"),te=require("./views/month/MonthView.js"),R=require("./constants/main.js"),V=require("@progress/kendo-svg-icons"),ie=require("./components/SchedulerForm.js"),O=require("@progress/kendo-recurrence"),se=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","")},ae=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:!0}},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),this.measureToolbar()))},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||ie.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=se.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]),T=k.toLanguageString(p.nextTitle,p.messages[p.nextTitle]),L=k.toLanguageString(p.newEvent,p.messages[p.newEvent]),A=k.toLanguageString(p.newEventLabel,p.messages[p.newEventLabel]),$=k.toLanguageString(p.toolbarLabel,p.messages[p.toolbarLabel]),F=this.toolbarLevel,H=h.createVNode(_.SchedulerHeader,{ref:this.setToolbarRef,ariaLabel:$},{default:()=>[this.canAdd&&h.createVNode(b.Button,{class:"k-toolbar-button",themeColor:"primary",svgIcon:V.plusIcon,"aria-label":A,tabIndex:-1,onClick:this.handleNewEventClick},{default:()=>[F<2&&L]}),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":T,title:T,onClick:this.handleNextClick},null)]}),h.createVNode(G.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(Y.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(K.SchedulerFooter,{"aria-label":$},{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(Z.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 X.WeekView;case"workweek":return ee.WorkWeekView;case"agenda":return J.AgendaView;case"timeline":return Q.TimelineView;case"month":return te.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=ae;
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),t=require("./utils/main.js"),d=require("@progress/kendo-vue-common"),Y=require("./components/header/SchedulerHeader.js"),R=require("@progress/kendo-vue-intl"),V=require("@progress/kendo-date-math"),G=require("./components/footer/SchedulerFooter.js"),v=require("@progress/kendo-vue-buttons"),Q=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"),y=require("./package-metadata.js"),X=require("./views/agenda/AgendaView.js"),ee=require("./views/time/TimelineView.js"),E=require("./views/day/DayView.js"),te=require("./views/week/WeekView.js"),ie=require("./views/week/WorkWeekView.js"),se=require("./views/month/MonthView.js"),O=require("./constants/main.js"),I=require("@progress/kendo-svg-icons"),re=require("./components/SchedulerForm.js"),T=require("./hooks/useExclusivePopover.js"),M=require("@progress/kendo-recurrence"),ae=require("./hooks/useEditable.js");function P(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!u.isVNode(e)}const A="{0:D}",W="{0:d}",L=(e,i)=>{const s=Math.round(i/864e5),a=M.parseRule({recurrenceRule:e});if(s%7===0||(a==null?void 0:a.freq)!=="weekly"||!a.byWeekDay)return e;const n=M.serializeRule({...a,byWeekDay:a.byWeekDay.map(o=>({...o,day:(o.day+s+7)%7}))});return e.toUpperCase().includes("WKST=")?n:n.replace(";WKST=SU","")},ne=u.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},eventOverview:{type:Boolean,default:!0},quickCreate:{type:Boolean,default:!0},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],quickCreateForm:[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:!0}},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,[this.$props.className]:!!this.$props.className}},fields(){return t.getModelFields(this.$props.modelFields).fields}},mounted(){this.currentRtl=d.isRtl(this.$el),this.calculateMedia(),this.$props.adaptive&&d.canUseDOM&&window.ResizeObserver&&(this.resizeObserver=new window.ResizeObserver(this.calculateMedia),this.resizeObserver.observe(this.$el)),d.canUseDOM&&window.ResizeObserver&&(this.toolbarObserver=new window.ResizeObserver(this.measureToolbar),this.toolbarElement&&(this.toolbarObserver.observe(this.toolbarElement),this.measureToolbar()))},unmounted(){this.resizeObserver&&this.resizeObserver.disconnect(),this.toolbarObserver&&this.toolbarObserver.disconnect()},provide(){return{ks:this.ks,ksMobile:()=>this.isMobile,ksEventOverview:()=>this.$props.eventOverview,ksQuickCreate:()=>this.$props.quickCreate,ksQuickCreateForm:()=>d.templateRendering.call(this,u.toRaw(this.$props.quickCreateForm),{}),[T.POPOVER_COORDINATOR_KEY]:T.createPopoverCoordinator(),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=R.provideIntlService(this),i=this.$props.date||this.$props.defaultDate,s=this.$props.view||this.$props.defaultView||this.views[0]&&this.views[0].name||"day",a=this.views.find(l=>l.name===s)||this.views[0]||u.createVNode(E.DayView,null,null),n=this.getViewPropValue(a,"selectedDateFormat",s)||A,o=this.getViewPropValue(a,"selectedShortDateFormat",s)||W,r=this.getViewComponentByName(s).props.dateRange.default()({intl:e,date:i,timezone:this.$props.timezone,numberOfDays:this.getViewPropValue(a,"numberOfDays",s),workWeekStart:this.getViewPropValue(a,"workWeekStart",s)||e.firstDay(),workWeekEnd:this.getViewPropValue(a,"workWeekEnd",s)||(e.firstDay()+this.getViewPropValue(a,"numberOfDays",s))%6});return{media:"desktop",toolbarLevel:0,toolbarBreakpoints:[1/0,1/0,1/0],newEventDialogItem:null,ks:{activeViewName:s,currentDate:i,showWorkHours:a.showWorkHours!==void 0?a.showWorkHours:!0,timezone:this.$props.timezone,isRtl:this.$props.rtl,props:{...this.$props},views:this.views,view:a,fields:t.getModelFields(this.$props.modelFields).fields,groups:t.toSchedulerGroups(this.$props.group,this.$props.resources),dateRange:r,orientation:this.$props.group&&this.$props.group.orientation?this.$props.group.orientation:"horizontal",dateFormat:n,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(){d.validatePackage(y.packageMetadata),this.showLicenseWatermark=d.shouldShowValidationUI(y.packageMetadata),this.licenseMessage=d.getLicenseMessage(y.packageMetadata);const e=this.views.find(K=>K.name===this.ks.activeViewName)||this.views[0]||u.createVNode(E.DayView,null,null),i=this.getViewPropValue(this.ks.view,"slotDuration",this.ks.activeViewName),s=d.templateRendering.call(this,e.header||this.$props.header,d.getListeners.call(this)),a=d.templateRendering.call(this,e.footer||this.$props.footer,d.getListeners.call(this)),n=d.templateRendering.call(this,e.slot||this.$props.slotRender,{}),o=d.templateRendering.call(this,e.viewSlot||this.$props.viewSlot,{}),r=d.templateRendering.call(this,e.item||this.$props.item,{}),l=d.templateRendering.call(this,e.viewItem||this.$props.viewItem,{}),c=d.templateRendering.call(this,e.task||this.$props.task,{}),h=e.editSlot||this.$props.editSlot,g=e.form||this.$props.form||re.SchedulerForm,m=d.templateRendering.call(this,e.dateHeaderCell||this.$props.dateHeaderCell,{}),f=d.templateRendering.call(this,e.timeHeaderCell||this.$props.timeHeaderCell,{}),w=d.templateRendering.call(this,e.resizeHint||this.$props.resizeHint,{});this.ks.form=d.templateRendering.call(this,e.form||this.$props.form,{}),this.ks.editSlot=h&&typeof h=="object"?u.markRaw(u.toRaw(h)):h,this.ks.dialogProps=e.dialogProps||this.$props.dialogProps,this.ks.formProps=e.formProps||this.$props.formProps;const k=ae.useEditable(e.editable!==void 0?e.editable:this.$props.editable),D=this.getViewComponentByName(this.ks.activeViewName||e.name),C={...this.$props,...this.ks.view,showWorkHours:this.ks.showWorkHours,dataItems:void 0,views:void 0,defaultDate:void 0,dateRange:this.ks.dateRange,slotRender:n,viewSlot:o,item:r,viewItem:l,task:c,dateHeaderCell:m,timeHeaderCell:f,resizeHint:w,editable:k},F=R.provideLocalizationService(this),b=F.toLanguageString(p.today,p.messages[p.today]),$=F.toLanguageString(p.previousTitle,p.messages[p.previousTitle]),x=F.toLanguageString(p.nextTitle,p.messages[p.nextTitle]),H=F.toLanguageString(p.newEvent,p.messages[p.newEvent]),q=F.toLanguageString(p.newEventLabel,p.messages[p.newEventLabel]),N=F.toLanguageString(p.toolbarLabel,p.messages[p.toolbarLabel]),S=this.toolbarLevel,j=u.createVNode(Y.SchedulerHeader,{ref:this.setToolbarRef,ariaLabel:N},{default:()=>[this.canAdd&&u.createVNode(v.Button,{class:"k-toolbar-button",themeColor:"primary",svgIcon:I.plusIcon,"aria-label":q,tabIndex:-1,onClick:this.handleNewEventClick},{default:()=>[S<2&&H]}),S<2&&u.createVNode(v.Button,{class:"k-toolbar-button",fillMode:"flat",tabIndex:-1,title:b,onClick:this.handleTodayClick},P(b)?b:{default:()=>[b]}),S<3&&u.createVNode(v.ButtonGroup,{class:"k-button-group-flat k-toolbar-button-group"},{default:()=>[u.createVNode(v.Button,{fillMode:"flat",tabIndex:-1,svgIcon:this.isRtl?I.chevronRightIcon:I.chevronLeftIcon,"aria-label":$,title:$,onClick:this.handlePrevClick},null),u.createVNode(v.Button,{fillMode:"flat",tabIndex:-1,svgIcon:this.isRtl?I.chevronLeftIcon:I.chevronRightIcon,"aria-label":x,title:x,onClick:this.handleNextClick},null)]}),u.createVNode(Q.NavigationDatePicker,{value:this.ks.currentDate,onChange:this.handleDatePickerChange,level:S},null),u.createVNode(v.ToolbarSpacer,null,null),S===1&&u.createVNode("span",{class:"k-separator"},null),u.createVNode(Z.ViewSelectorList,{level:S},null)]}),z=d.getTemplate.call(this,{h:u.h,template:s,defaultRendering:j,additionalProps:{currentDate:this.ks.currentDate},additionalListeners:{prevclick:this.handlePrevClick,nextclick:this.handleNextClick,todayclick:this.handleTodayClick,datepickerchange:this.handleDatePickerChange}}),B=u.createVNode(G.SchedulerFooter,{"aria-label":N},{default:()=>[this.isMobile&&u.createVNode(v.Button,{class:"k-scheduler-today",tabIndex:-1,onClick:this.handleTodayClick},P(b)?b:{default:()=>[b]}),this.isMobile&&u.createVNode(v.ToolbarSpacer,null,null),u.createVNode(J.BusinessHours,{slotDuration:i,onClick:this.handleShowWorkHoursClick},null)]}),_=d.getTemplate.call(this,{h:u.h,template:a,defaultRendering:B,additionalProps:{slotDuration:i},additionalListeners:{showworkhoursclick:this.handleShowWorkHoursClick}}),U=this.showLicenseWatermark?u.createVNode(d.WatermarkOverlay,{message:this.licenseMessage},null):null;return u.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},[z,u.h(D,{key:`${this.ks.view.name}-${this.ks.showWorkHours}`,onDataAction:this.handleDataAction,...C}),!["agenda","month"].includes(this.ks.activeViewName)&&_,U,this.newEventDialogItem&&u.createVNode(g,{dataItem:this.newEventDialogItem,onSubmit:this.handleNewEventFormSubmit,onCancel:this.handleNewEventFormCancel,onClose:this.handleNewEventFormCancel},null)])},methods:{getViewComponentByName(e){switch(e.toLowerCase()){case"week":return te.WeekView;case"workweek":return ie.WorkWeekView;case"agenda":return X.AgendaView;case"timeline":return ee.TimelineView;case"month":return se.MonthView;default:return E.DayView}},getViewPropValue(e,i,s){const a=this.getViewComponentByName(s).props[i];return e[i]||(a?a.default:void 0)},handleDataChange({created:e=[],updated:i=[],deleted:s=[]}){const a={created:e,updated:i,deleted:s};this.$emit("datachange",a)},handleNewEventClick(e){e.preventDefault();const i=new Date,s=this.getViewPropValue(this.ks.view,"slotDuration",this.ks.activeViewName)||30,a=s*60*1e3,n=i.getMinutes(),o=Math.ceil(n/s)*s;let r=new Date(i);r.setHours(i.getHours()+Math.floor(o/60),o%60,0,0);const l=this.$props.dataItems||[],c=this.fields,h=(f,w)=>l.some(k=>{const D=t.getField(k,c.start),C=t.getField(k,c.end);return!D||!C?!1:D.getTime()<w.getTime()&&C.getTime()>f.getTime()});let g=new Date(r.getTime()+a);for(let f=0;f<48&&h(r,g);f++)r=new Date(r.getTime()+a),g=new Date(r.getTime()+a);const m={};t.setField(m,c.start,r),t.setField(m,c.end,g),t.setField(m,c.isAllDay,!1),t.setField(m,c.title,""),t.setField(m,c.description,""),this.newEventDialogItem=m},handleNewEventFormSubmit(e){this.handleDataChange({created:[e.value]}),this.newEventDialogItem=null},handleNewEventFormCancel(){this.newEventDialogItem=null},handleCreate(e){const i=[e.dataItem];this.handleDataChange({created:i})},handleUpdate(e){const i=[],s=[],a=[];if(e.series)if(Array.isArray(e.dataItem)){const n=e.dataItem[0];if(t.getField(n,this.fields.recurrenceId)!==null&&t.getField(n,this.fields.recurrenceId)!==void 0){const r=d.clone(t.findMaster(n,this.fields,this.dataItems)),l=new Date(t.getField(n,this.fields.originalStart)).getTime(),c=new Date(t.getField(n,this.fields.start)).getTime(),h=new Date(t.getField(n,this.fields.end)).getTime(),g=c-l,m=h-c,f=new Date(t.getField(r,this.fields.start)).getTime();t.setField(r,this.fields.start,new Date(f+g)),t.setField(r,this.fields.end,new Date(f+g+m));const w=t.getField(r,this.fields.recurrenceExceptions)||[];if(w.length>0&&g!==0){const k=w.map(D=>new Date(new Date(D).getTime()+g));t.setField(r,this.fields.recurrenceExceptions,k)}t.setField(r,this.fields.recurrenceRule,L(t.getField(r,this.fields.recurrenceRule),g)),s.push(r)}else e.dataItem.forEach(r=>{const l=d.clone(t.findMaster(r,this.fields,this.dataItems)),c=d.clone(r);t.setField(c,this.fields.originalStart,t.getField(l,this.fields.originalStart)),t.setField(c,this.fields.recurrenceId,t.getField(l,this.fields.recurrenceId));const h=t.getField(l,this.fields.recurrenceExceptions)||[],g=new Date(t.getField(l,this.fields.start)).getTime(),f=new Date(t.getField(c,this.fields.start)).getTime()-g;if(h.length>0&&f!==0){const w=h.map(k=>new Date(new Date(k).getTime()+f));t.setField(c,this.fields.recurrenceExceptions,w)}else t.setField(c,this.fields.recurrenceExceptions,h);s.push(c)})}else if(t.getField(e.dataItem,this.fields.recurrenceId)!==null&&t.getField(e.dataItem,this.fields.recurrenceId)!==void 0){const o=d.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),r=new Date(t.getField(e.dataItem,this.fields.originalStart)).getTime(),l=new Date(t.getField(e.dataItem,this.fields.start)).getTime(),c=new Date(t.getField(e.dataItem,this.fields.end)).getTime(),h=l-r,g=c-l,m=new Date(t.getField(o,this.fields.start)).getTime();t.setField(o,this.fields.start,new Date(m+h)),t.setField(o,this.fields.end,new Date(m+h+g));const f=t.getField(o,this.fields.recurrenceExceptions)||[];if(f.length>0&&h!==0){const w=f.map(k=>new Date(new Date(k).getTime()+h));t.setField(o,this.fields.recurrenceExceptions,w)}t.setField(o,this.fields.recurrenceRule,L(t.getField(o,this.fields.recurrenceRule),h)),s.push(o)}else{const o=d.clone(e.dataItem);if(t.getField(o,this.fields.recurrenceRule)){const l=d.clone(t.findMaster(e.dataItem,this.fields,this.dataItems));t.setField(o,this.fields.originalStart,t.getField(l,this.fields.originalStart)),t.setField(o,this.fields.recurrenceId,t.getField(l,this.fields.recurrenceId));const c=t.getField(l,this.fields.recurrenceExceptions)||[],h=new Date(t.getField(l,this.fields.start)).getTime(),m=new Date(t.getField(o,this.fields.start)).getTime()-h;if(c.length>0&&m!==0){const f=c.map(w=>new Date(new Date(w).getTime()+m));t.setField(o,this.fields.recurrenceExceptions,f)}else t.setField(o,this.fields.recurrenceExceptions,c)}else t.setField(o,this.fields.recurrenceExceptions,null);s.push(o)}else if(Array.isArray(e.dataItem))e.dataItem.forEach(n=>{const o=t.getField(n,this.fields.recurrenceRule)!==null&&t.getField(n,this.fields.recurrenceRule)!==void 0;if(t.getField(n,this.fields.recurrenceId)!==null&&t.getField(n,this.fields.recurrenceId)!==void 0&&o){const l=d.clone(t.findMaster(n,this.fields,this.dataItems)),c=t.getField(n,this.fields.originalStart),h=t.getField(l,this.fields.recurrenceExceptions)||[];t.setField(l,this.fields.recurrenceExceptions,[...h,c]),t.setField(n,this.fields.recurrenceRule,null),s.push(l),i.push(n)}else s.push(n)});else{const n=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&&n){const r=d.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),l=t.getField(e.dataItem,this.fields.originalStart),c=t.getField(r,this.fields.recurrenceExceptions)||[];t.setField(r,this.fields.recurrenceExceptions,[...c,l]),t.setField(e.dataItem,this.fields.recurrenceRule,null),s.push(r),i.push(e.dataItem)}else s.push(e.dataItem)}if(e.series){const n=Array.isArray(e.dataItem)?e.dataItem:[e.dataItem],o=new Set(n.map(l=>t.getSeriesMasterId(l,this.fields))),r=new Set(n.filter(l=>!t.getField(l,this.fields.recurrenceRule)&&(t.getField(l,this.fields.recurrenceId)===null||t.getField(l,this.fields.recurrenceId)===void 0)).map(l=>t.getField(l,this.fields.id)));o.forEach(l=>{if(l==null)return;const c=t.findSeriesExceptions(this.dataItems,this.fields,l);e.resetExceptions?a.push(...c.map(h=>d.clone(h))):r.has(l)&&s.push(...c.map(h=>t.toStandaloneEvent(h,this.fields))),(r.has(l)||e.resetExceptions)&&s.forEach(h=>{t.getField(h,this.fields.id)===l&&t.setField(h,this.fields.recurrenceExceptions,null)})})}this.handleDataChange({updated:s,created:i,deleted:a})},handleRemove(e){const i=[],s=[];if(e.series){const a=d.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),n=d.clone(a);t.setField(n,this.fields.originalStart,t.getField(a,this.fields.originalStart)),t.setField(n,this.fields.recurrenceId,t.getField(a,this.fields.recurrenceId)),t.setField(n,this.fields.recurrenceRule,t.getField(a,this.fields.recurrenceRule)),t.setField(n,this.fields.recurrenceExceptions,t.getField(a,this.fields.recurrenceExceptions)),s.push(n);const o=t.findSeriesExceptions(this.dataItems,this.fields,t.getField(a,this.fields.id));e.resetExceptions?s.push(...o.map(r=>d.clone(r))):i.push(...o.map(r=>t.toStandaloneEvent(r,this.fields)))}else if(!(t.getField(e.dataItem,this.fields.recurrenceRule)!==null&&t.getField(e.dataItem,this.fields.recurrenceRule)!==void 0))s.push(e.dataItem);else{const n=d.clone(t.findMaster(e.dataItem,this.fields,this.dataItems)),o=t.getField(e.dataItem,this.fields.originalStart),r=t.getField(n,this.fields.recurrenceExceptions)||[];t.setField(n,this.fields.recurrenceExceptions,[...r,o]),t.setField(e.dataItem,this.fields.recurrenceRule,null),i.push(n)}this.handleDataChange({updated:i,deleted:s})},handleDataAction(e){switch(e.type){case O.DATA_ACTION.create:this.handleCreate(e);break;case O.DATA_ACTION.update:this.handleUpdate(e);break;case O.DATA_ACTION.remove:this.handleRemove(e);break}},handleActiveViewNameChange(e,i){this.$props.view===void 0&&this.updatePassedState(e),this.$emit("viewchange",{viewName:e,...i,target:this.ks.scheduler.$el})},setToolbarRef(e){const i=(e==null?void 0:e.$el)||null;i!==this.toolbarElement&&(this.toolbarObserver&&this.toolbarElement&&this.toolbarObserver.unobserve(this.toolbarElement),this.toolbarElement=i,this.toolbarObserver&&i&&this.toolbarObserver.observe(i))},handleDateChange(e,i){this.setDate(e,{...i,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 i=this.getViewPropValue(this.ks.view,"step",this.ks.activeViewName)||this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName)||1,a=i>27?V.addMonths(this.ks.currentDate,Math.round(i/27)):V.addDays(this.ks.currentDate,i);this.setDate(a,e)},handlePrevClick(e){e.preventDefault();const i=this.getViewPropValue(this.ks.view,"step",this.ks.activeViewName)||this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName)||1,a=i>27?V.addMonths(this.ks.currentDate,-Math.round(i/27)):V.addDays(this.ks.currentDate,-i);this.setDate(a,e)},handleTodayClick(e){e.preventDefault();const i=V.ZonedDate.fromLocalDate(new Date,this.ks.timezone);this.setDate(new Date(i.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,i){this.$props.date===void 0&&(this.ks.currentDate=e,this.updatePassedState()),this.$emit("datechange",{date:e,event:i})},updatePassedState(e){const i=R.provideIntlService(this),s=e||this.ks.activeViewName;this.ks.activeViewName=s,this.ks.view=this.views.find(a=>a.name===s)||this.views[0]||u.createVNode(E.DayView,null,null),this.ks.dateFormat=this.getViewPropValue(this.ks.view,"selectedDateFormat",s)||A,this.ks.shortDateFormat=this.getViewPropValue(this.ks.view,"selectedShortDateFormat",s)||W,this.ks.dateRange=this.getViewComponentByName(s).props.dateRange.default()({intl:i,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)||i.firstDay(),workWeekEnd:this.getViewPropValue(this.ks.view,"workWeekEnd",this.ks.activeViewName)||(i.firstDay()+this.getViewPropValue(this.ks.view,"numberOfDays",this.ks.activeViewName))%6})},calculateMedia(){d.canUseDOM&&window.matchMedia&&(this.media=window.matchMedia("(min-width: 1024px)").matches?"desktop":"mobile")},measureToolbar(){const i=this.toolbarElement;if(!i)return;const s=i.clientWidth;if(!s)return;const a=parseInt(window.getComputedStyle(i).gap||"0",10),n=Array.from(i.children),o=n.reduce((l,c)=>l+c.offsetWidth,0)+(n.length-1)*a,r=this.toolbarLevel;if(o>s&&r<3){this.toolbarBreakpoints[r]=s,this.toolbarLevel=r+1;return}r>0&&s>this.toolbarBreakpoints[r-1]+20&&(this.toolbarLevel=r-1)}}});exports.Scheduler=ne;
|