/* * Kendo UI Complete v2013.3.1119 (http://kendoui.com) * Copyright 2013 Telerik AD. All rights reserved. * * Kendo UI Complete commercial licenses may be obtained at * https://www.kendoui.com/purchase/license-agreement/kendo-ui-complete-commercial.aspx * If you do not own a commercial license, this file shall be governed by the trial license terms. */ !function(define){return define(["./kendo.dropdownlist.min","./kendo.editable.min","./kendo.multiselect.min","./kendo.window.min","./kendo.datepicker.min","./kendo.scheduler.recurrence.min","./kendo.scheduler.view.min","./kendo.scheduler.dayview.min","./kendo.scheduler.agendaview.min","./kendo.scheduler.monthview.min","./kendo.mobile.actionsheet.min","./kendo.mobile.pane.min"],function(){!function(e,t){function i(e,t){return t=t||"",e.startTimezone&&(t=e.startTimezone,e.endTimezone&&(t+=" | "+e.endTimezone)),t}function n(e,t){var i=t.timezone;i&&(e[B.attr("timezone")]=i)}function a(e,t){var i,n=t.model.fields[t.field].validation;n&&(i=n.dateCompare,i&&L(i)&&i.message&&(e[B.attr("dateCompare-msg")]=i.message))}function o(e,t){return function(i){return i=e(i),s(i,"apply",t),i||[]}}function r(e,t){return function(i){return i&&("[object Array]"===Q.call(i)||i instanceof B.data.ObservableArray||(i=[i])),s(i,"remove",t,!0),i=e(i),i||[]}}function s(e,t,i,n){var a,o,r;for(e=e||[],o=0,r=e.length;r>o;o++)a=e[o],n?a.startTimezone||a.endTimezone?i?(a.start=B.timezone.convert(a.start,a.startTimezone||a.endTimezone,i),a.end=B.timezone.convert(a.end,a.endTimezone||a.startTimezone,i),a.start=B.timezone[t](a.start,i),a.end=B.timezone[t](a.end,i)):(a.start=B.timezone[t](a.start,a.startTimezone||a.endTimezone),a.end=B.timezone[t](a.end,a.endTimezone||a.startTimezone)):i&&(a.start=B.timezone[t](a.start,i),a.end=B.timezone[t](a.end,i)):a.startTimezone||a.endTimezone?(a.start=B.timezone[t](a.start,a.startTimezone||a.endTimezone),a.end=B.timezone[t](a.end,a.endTimezone||a.startTimezone),i&&(a.start=B.timezone.convert(a.start,a.startTimezone||a.endTimezone,i),a.end=B.timezone.convert(a.end,a.endTimezone||a.startTimezone,i))):i&&(a.start=B.timezone[t](a.start,i),a.end=B.timezone[t](a.end,i)),n&&delete a.uid;return e}function d(e,t){for(var i,n=e.length,a=0;n>a;a++)if(i=e[a],i.uid===t)return i}function l(e){var t=new Date(1980,0,1);return t.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),t}function c(e){var t,i,n,a,o,r,s,d,l,c,u,h;return e.filter("[name=end]").length&&(t=e.closest(".k-scheduler-edit-form"),i=t.find("[name=start]:visible"),n=t.find("[name=end]:visible"),n[0]&&i[0]&&(r=B.widgetInstance(i,B.ui),s=B.widgetInstance(n,B.ui),d=t.data("kendoEditable"),l=d?d.options.model:null,r&&s?(a=r.value(),o=s.value()):(a=B.parseDate(i.val()),o=B.parseDate(n.val())),a&&o))?(l&&(c=i.attr(B.attr("timezone")),u=l.startTimezone,h=l.endTimezone,u=u||h,h=h||u,u&&(c?(a=B.timezone.convert(l.start,u,c),o=B.timezone.convert(l.end,h,c)):(a=B.timezone.remove(l.start,u),o=B.timezone.remove(l.end,h)))),o>=a):!0}function u(e,t,i,n){for(var a=e.length,o=[],r=0;a>r;r++)o=o.concat(e[r].expand(t,i,n));return o}function h(e){return delete e.name,delete e.prefix,delete e.remove,delete e.edit,delete e.add,delete e.navigate,e}function p(t){return function(i){e(B.format('{2}',B.ns,t.field,o)).appendTo(i)}}function v(t){return function(i){e(B.format('{2}',B.ns,t.field,o,t.valuePrimitive)).appendTo(i)}}function g(e,t){var i,n=e.end.getTime()-e.start.getTime(),a=new Date(e.start.getTime());return B.date.setTime(a,t),i=new Date(a.getTime()),B.date.setTime(i,n),{start:a,end:i}}var k,_,w,z,b,y,T,D,x,S,E,B=window.kendo,P=B.date,R=B.support.input,H=P.MS_PER_DAY,V=P.getDate,C=B.date.getMilliseconds,M=B.recurrence,I=B.keys,A=B.ui,O=A.Widget,W="string",N=A.Popup,F=A.Calendar,U=B.data.DataSource,L=e.isPlainObject,K=e.extend,q=e.proxy,Q=Object.prototype.toString,j=e.isArray,J=".kendoScheduler",Z="click",Y="change",$="cancel",G="remove",X="save",et="add",tt="edit",it=V(new Date),nt="recurrenceException",at="yyyyMMddTHHmmssZ",ot="Are you sure you want to delete this event?",rt="Do you want to delete only this event occurrence or the whole series?",st="Do you want to edit only this event occurrence or the whole series?",dt='#=text#',lt=B.template('
'),ct=B.template('
'),ut=function(t,i){var o={name:i.field},r=R.date?"":B.attr("role")+'="datepicker" ',s=R.datetimelocal?"":B.attr("role")+'="datetimepicker" ';n(o,i),a(o,i),e('').attr(o).appendTo(t),e('').attr(o).appendTo(t),e("').hide().appendTo(t)},ht=function(t,i){var o={name:i.field};n(o,i),a(o,i),e('').attr(o).appendTo(t),e('').attr(o).appendTo(t),e("').appendTo(t),"end"===i.field&&e("').appendTo(t),e("').hide().appendTo(t)},pt=function(t,i){e("
').attr({name:i.field}).appendTo(t).kendoRecurrenceEditor({start:i.model.start,timezone:i.timezone,messages:i.messages})},mt=function(t,i){e("
').attr({name:i.field}).appendTo(t).kendoMobileRecurrenceEditor({start:i.model.start,timezone:i.timezone,messages:i.messages,pane:i.pane,value:i.model[i.field]})},vt=function(t,n){var a=i(n.model,n.messages.noTimezone);e(''+a+"").click(n.click).appendTo(t)},ft=function(t,i){e(''+i.messages.timezoneEditorButton+"").click(i.click).appendTo(t)},gt=function(t,i){e("
').attr({name:i.field}).toggle(i.visible).appendTo(t).kendoMobileTimezoneEditor()},kt=function(t,i){e("
').attr({name:i.field}).toggle(i.visible).appendTo(t).kendoTimezoneEditor()},_t=B.Class.extend({init:function(t,i){var n=t.timezone;this.reader=i,i.model&&(this.model=i.model),this.timezone=n,this.data=o(e.proxy(this.data,this),n),this.serialize=r(e.proxy(this.serialize,this),n)},errors:function(e){return this.reader.errors(e)},parse:function(e){return this.reader.parse(e)},data:function(e){return this.reader.data(e)},total:function(e){return this.reader.total(e)},groups:function(e){return this.reader.groups(e)},aggregates:function(e){return this.reader.aggregates(e)},serialize:function(e){return this.reader.serialize(e)}}),wt=B.data.Model.define({init:function(e){var t=this;B.data.Model.fn.init.call(t,e)},clone:function(t,i){var n=this.uid,a=new this.constructor(e.extend({},this.toJSON(),t));return i||(a.uid=n),a},duration:function(){var e=this.end,t=this.start,i=(e.getTimezoneOffset()-t.getTimezoneOffset())*B.date.MS_PER_MINUTE;return e-t-i},expand:function(e,t,i){return M?M.expand(this,e,t,i):[this]},update:function(e){for(var t in e)this.set(t,e[t]);this.startTime&&this.set("startTime",l(this.start)),this.endTime&&this.set("endTime",l(this.end))},isMultiDay:function(){return this.isAllDay||this.duration()>=B.date.MS_PER_DAY},isException:function(){return this.id&&this.recurrenceId},isOccurrence:function(){return this.isNew()&&this.recurrenceId},isRecurring:function(){return!(!this.recurrenceRule&&!this.recurrenceId)},isRecurrenceHead:function(){return!(!this.id||!this.recurrenceRule)},toOccurrence:function(t){return t=e.extend(t,{recurrenceException:null,recurrenceRule:null,recurrenceId:this.id||this.recurrenceId,id:this.defaults.id}),t[this.idField]=this.defaults.id,this.clone(t,!0)},toJSON:function(){var e=B.data.Model.fn.toJSON.call(this);return e.uid=this.uid,delete e.startTime,delete e.endTime,e},set:function(e,t){var i,n,a,o=this.isAllDay||!1;B.data.Model.fn.set.call(this,e,t),"isAllDay"==e&&t!=o&&(i=B.date.getDate(this.start),n=new Date(this.end),a=B.date.getMilliseconds(n),0===a&&t&&(a=H),this.set("start",i),t===!0?(B.date.setTime(n,-a),i>n&&(n=i)):B.date.setTime(n,H-a),this.set("end",n))},id:"id",fields:{id:{type:"number"},title:{defaultValue:"",type:"string"},start:{type:"date",validation:{required:!0}},startTimezone:{type:"string"},end:{type:"date",validation:{required:!0,dateCompare:{value:c,message:"End date should be greater than or equal to the start date"}}},endTimezone:{type:"string"},recurrenceRule:{defaultValue:"",type:"string"},recurrenceException:{defaultValue:"",type:"string"},isAllDay:{type:"boolean",defaultValue:!1},description:{type:"string"}}}),zt=U.extend({init:function(e){U.fn.init.call(this,K(!0,{},{schema:{modelBase:wt,model:wt}},e)),this.reader=new _t(this.options.schema,this.reader)},expand:function(e,t){var i=this.view(),n={};return e&&t&&(t=new Date(t.getTime()+H-1),n={logic:"or",filters:[{logic:"and",filters:[{field:"start",operator:"gte",value:e},{field:"end",operator:"gte",value:e},{field:"start",operator:"lte",value:t}]},{logic:"and",filters:[{field:"start",operator:"lte",value:new Date(e.getTime()+H-1)},{field:"end",operator:"gte",value:e}]}]},i=new B.data.Query(u(i,e,t,this.reader.timezone)).filter(n).toArray()),i},cancelChanges:function(e){e&&e.isOccurrence()&&this._removeExceptionDate(e),U.fn.cancelChanges.call(this,e)},insert:function(e,t){if(t){if(!(t instanceof wt)){var i=t;t=this._createNewModel(),t.accept(i)}return(t.isRecurrenceHead()||t.recurrenceId)&&(t=t.recurrenceId?t:t.toOccurrence(),this._addExceptionDate(t)),U.fn.insert.call(this,e,t)}},remove:function(e){return e.isRecurrenceHead()?this._removeExceptions(e):e.isRecurring()&&this._addExceptionDate(e),U.fn.remove.call(this,e)},_removeExceptions:function(e){for(var t=this.data().slice(0),i=t.shift(),n=e.id;i;)i.recurrenceId===n&&U.fn.remove.call(this,i),i=t.shift();e.set(nt,"")},_removeExceptionDate:function(e){var t,i,n;e.recurrenceId&&(t=this.get(e.recurrenceId),t&&(i=e.start,i=B.timezone.convert(i,this.reader.timezone||i.getTimezoneOffset(),"Etc/UTC"),n=B.toString(i,at)+";",t.set(nt,t.recurrenceException.replace(n,""))))},_addExceptionDate:function(e){var t=e.start,i=this.reader.timezone,n=this.get(e.recurrenceId),a=n.recurrenceException||"";M.isException(a,t,i)||(t=B.timezone.convert(t,i||t.getTimezoneOffset(),"Etc/UTC"),a+=B.toString(t,at)+";",n.set(nt,a))}});zt.create=function(e){e=e&&e.push?{data:e}:e;var t=e||{},i=t.data;if(t.data=i,!(t instanceof zt)&&t instanceof B.data.DataSource)throw Error("Incorrect DataSource type. Only SchedulerDataSource instances are supported");return t instanceof zt?t:new zt(t)},K(!0,B.data,{SchedulerDataSource:zt,SchedulerDataReader:_t,SchedulerEvent:wt}),k={update:{text:"Save",className:"k-scheduler-update"},canceledit:{text:"Cancel",className:"k-scheduler-cancel"},destroy:{text:"Delete",imageClass:"k-delete",className:"k-scheduler-delete",iconClass:"k-icon"}},_={mobile:{dateRange:ut,timezonePopUp:vt,timezone:gt,recurrence:mt,description:'