var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||typeof Object.defineProperties=='function'?Object.defineProperty:function(a,c,b){if(a==Array.prototype||a==Object.prototype){return a}a[c]=b.value;return a};$jscomp.getGlobal=function(d){var c=['object'==typeof globalThis&&globalThis,d,'object'==typeof window&&window,'object'==typeof self&&self,'object'==typeof global&&global];for(var b=0;b>>0;$jscomp.propertyToPolyfillSymbol[b]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global['Symbol'](b):$jscomp.POLYFILL_PREFIX+l+'$'+b}var i=$jscomp.propertyToPolyfillSymbol[b];$jscomp.defineProperty(a,i,{configurable:!0,writable:!0,value:d})}};$jscomp.polyfill('Array.prototype.copyWithin',function(a){if(a){return a}var b=function(f,g,i){var c=this.length;f=toInteger(f);g=toInteger(g);var h=i===undefined?c:toInteger(i);var e=f<0?Math.max(c+f,0):Math.min(f,c);var b=g<0?Math.max(c+g,0):Math.min(g,c);var d=h<0?Math.max(c+h,0):Math.min(h,c);if(eb){if(--d in this){this[--e]=this[d]}else {delete this[--e]}}}return this};function toInteger(c){var b=Number(c);if(b===Infinity||b===-Infinity){return b}return b|0}return b},'es6','es3');$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){if(b>>0;var d='jscomp_symbol_'+f+'_';var e=0;var a=function(f){if(this instanceof a){throw new TypeError('Symbol is not a constructor')}return new b(d+(f||'')+'_'+e++,f)};return a},'es6','es3');$jscomp.polyfill('Symbol.iterator',function(e){if(e){return e}var a=Symbol('Symbol.iterator');var d=['Array','Int8Array','Uint8Array','Uint8ClampedArray','Int16Array','Uint16Array','Int32Array','Uint32Array','Float32Array','Float64Array'];for(var c=0;cd){b=d}b=Number(b);if(b<0){b=Math.max(0,d+b)}for(var e=Number(c||0);e0){var f=Array.prototype.flat.call(d,b-1);c.push.apply(c,f)}else {c.push(d)}}return c};return b},'es9','es5');$jscomp.polyfill('Array.prototype.flatMap',function(a){if(a){return a}var b=function(e,f){var b=[];for(var c=0;c0){var a=this.properties_.pop();if(a in this.object_){return a}}return null};$jscomp.generator.Engine_=function(a){this.context_=new $jscomp.generator.Context();this.program_=a};$jscomp.generator.Engine_.prototype.next_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_){return this.yieldAllStep_(this.context_.yieldAllIterator_.next,a,this.context_.next_)}this.context_.next_(a);return this.nextStep_()};$jscomp.generator.Engine_.prototype.return_=function(b){this.context_.start_();var a=this.context_.yieldAllIterator_;if(a){var c='return' in a?a['return']:function(a){return {value:a,done:!0}};return this.yieldAllStep_(c,b,this.context_["return"])}this.context_["return"](b);return this.nextStep_()};$jscomp.generator.Engine_.prototype.throw_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_){return this.yieldAllStep_(this.context_.yieldAllIterator_['throw'],a,this.context_.next_)}this.context_.throw_(a);return this.nextStep_()};$jscomp.generator.Engine_.prototype.yieldAllStep_=function(d,e,c){try{var a=d.call(this.context_.yieldAllIterator_,e);$jscomp.generator.ensureIteratorResultIsObject_(a);if(!a.done){this.context_.stop_();return a}var b=a.value}catch(f){this.context_.yieldAllIterator_=null;this.context_.throw_(f);return this.nextStep_()}this.context_.yieldAllIterator_=null;c.call(this.context_,b);return this.nextStep_()};$jscomp.generator.Engine_.prototype.nextStep_=function(){while(this.context_.nextAddress){try{var b=this.program_(this.context_);if(b){this.context_.stop_();return {value:b.value,done:!1}}}catch(c){this.context_.yieldResult=undefined;this.context_.throw_(c)}}this.context_.stop_();if(this.context_.abruptCompletion_){var a=this.context_.abruptCompletion_;this.context_.abruptCompletion_=null;if(a.isException){throw a.exception}return {value:a["return"],done:!0}}return {value:undefined,done:!0}};$jscomp.generator.Generator_=function(a){this.next=function(b){return a.next_(b)};this["throw"]=function(b){return a.throw_(b)};this["return"]=function(b){return a.return_(b)};this[Symbol.iterator]=function(){return this}};$jscomp.generator.createGenerator=function(a,c){var b=new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(c));if($jscomp.setPrototypeOf&&a.prototype){$jscomp.setPrototypeOf(b,a.prototype)}return b};$jscomp.asyncExecutePromiseGenerator=function(a){function passValueToGenerator(b){return a.next(b)}function passErrorToGenerator(b){return a["throw"](b)}return new Promise(function(b,c){function handleGeneratorRecord(d){if(d.done){b(d.value)}else {Promise.resolve(d.value).then(passValueToGenerator,passErrorToGenerator).then(handleGeneratorRecord,c)}}handleGeneratorRecord(a.next())})};$jscomp.asyncExecutePromiseGeneratorFunction=function(a){return $jscomp.asyncExecutePromiseGenerator(a())};$jscomp.asyncExecutePromiseGeneratorProgram=function(a){return $jscomp.asyncExecutePromiseGenerator(new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(a)))};$jscomp.polyfill('globalThis',function(a){return a||$jscomp.global},'es_2020','es3');$jscomp.checkEs6ConformanceViaProxy=function(){try{var a={};var b=Object.create(new $jscomp.global['Proxy'](a,{'get':function(d,e,c){return d==a&&e=='q'&&c==b}}));return b['q']===!0}catch(c){return !1}};$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS=!1;$jscomp.ES6_CONFORMANCE=$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS&&$jscomp.checkEs6ConformanceViaProxy();$jscomp.owns=function(b,a){return Object.prototype.hasOwnProperty.call(b,a)};$jscomp.polyfill('WeakMap',function(c){function isConformant(){if(!c||!Object.seal){return !1}try{var b=Object.seal({});var d=Object.seal({});var a=new c([[b,2],[d,3]]);if(a.get(b)!=2||a.get(d)!=3){return !1}a["delete"](b);a.set(d,4);return !a.has(b)&&a.get(d)==4}catch(e){return !1}}if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(c&&$jscomp.ES6_CONFORMANCE){return c}}else {if(isConformant()){return c}}var a='$jscomp_hidden_'+Math.random();function WeakMapMembership(){}function isValidKey(b){var a=typeof b;return a==='object'&&b!==null||a==='function'}function insert(b){if(!$jscomp.owns(b,a)){var d=new WeakMapMembership();$jscomp.defineProperty(b,a,{value:d})}}function patch(a){if($jscomp.ISOLATE_POLYFILLS){return}var b=Object[a];if(b){Object[a]=function(d){if(d instanceof WeakMapMembership){return d}else {if(Object.isExtensible(d)){insert(d)}return b(d)}}}}patch('freeze');patch('preventExtensions');patch('seal');var d=0;var b=function(a){this.id_=(d+=Math.random()+1).toString();if(a){var f=$jscomp.makeIterator(a);var b;while(!(b=f.next()).done){var e=b.value;this.set(e[0],e[1])}}};b.prototype.set=function(b,d){if(!isValidKey(b)){throw new Error('Invalid WeakMap key')}insert(b);if(!$jscomp.owns(b,a)){throw new Error('WeakMap key fail: '+b)}b[a][this.id_]=d;return this};b.prototype.get=function(b){return isValidKey(b)&&$jscomp.owns(b,a)?b[a][this.id_]:undefined};b.prototype.has=function(b){return isValidKey(b)&&$jscomp.owns(b,a)&&$jscomp.owns(b[a],this.id_)};b.prototype["delete"]=function(b){if(!isValidKey(b)||!$jscomp.owns(b,a)||!$jscomp.owns(b[a],this.id_)){return !1}return delete b[a][this.id_]};return b},'es6','es3');$jscomp.MapEntry=function(){this.previous;this.next;this.head;this.key;this.value};$jscomp.polyfill('Map',function(b){function isConformant(){if($jscomp.ASSUME_NO_NATIVE_MAP||!b||typeof b!='function'||!b.prototype.entries||typeof Object.seal!='function'){return !1}try{b=b;var e=Object.seal({x:4});var c=new b($jscomp.makeIterator([[e,'s']]));if(c.get(e)!='s'||c.size!=1||c.get({x:4})||c.set({x:4},'t')!=c||c.size!=2){return !1}var d=c.entries();var a=d.next();if(a.done||a.value[0]!=e||a.value[1]!='s'){return !1}a=d.next();if(a.done||a.value[0].x!=4||a.value[1]!='t'||!d.next().done){return !1}return !0}catch(i){return !1}}if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(b&&$jscomp.ES6_CONFORMANCE){return b}}else {if(isConformant()){return b}}var e=new WeakMap();var a=function(a){this.data_={};this.head_=f();this.size=0;if(a){var e=$jscomp.makeIterator(a);var c;while(!(c=e.next()).done){var d=c.value;this.set(d[0],d[1])}}};a.prototype.set=function(d,e){d=d===0?0:d;var a=c(this,d);if(!a.list){a.list=this.data_[a.id]=[]}if(!a.entry){a.entry={next:this.head_,previous:this.head_.previous,head:this.head_,key:d,value:e};a.list.push(a.entry);this.head_.previous.next=a.entry;this.head_.previous=a.entry;this.size++}else {a.entry.value=e}return this};a.prototype["delete"]=function(d){var a=c(this,d);if(a.entry&&a.list){a.list.splice(a.index,1);if(!a.list.length){delete this.data_[a.id]}a.entry.previous.next=a.entry.next;a.entry.next.previous=a.entry.previous;a.entry.head=null;this.size--;return !0}return !1};a.prototype.clear=function(){this.data_={};this.head_=this.head_.previous=f();this.size=0};a.prototype.has=function(a){return !!c(this,a).entry};a.prototype.get=function(d){var a=c(this,d).entry;return a&&a.value};a.prototype.entries=function(){return d(this,function(a){return [a.key,a.value]})};a.prototype.keys=function(){return d(this,function(a){return a.key})};a.prototype.values=function(){return d(this,function(a){return a.value})};a.prototype.forEach=function(e,d){var f=this.entries();var c;while(!(c=f.next()).done){var a=c.value;e.call(d,a[1],a[0],this)}};a.prototype[Symbol.iterator]=a.prototype.entries;var c=function(g,e){var f=h(e);var a=g.data_[f];if(a&&$jscomp.owns(g.data_,f)){for(var d=0;d-0.25){var f=b;var g=1;var c=b;var d=0;var e=1;while(d!=c){f*=b;e*=-1;c=(d=c)+e*f/++g}return c}return Math.log(1+b)};return b},'es6','es3');$jscomp.polyfill('Math.atanh',function(b){if(b){return b}var a=Math.log1p;var c=function(c){c=Number(c);return (a(c)-a(-c))/2};return c},'es6','es3');$jscomp.polyfill('Math.cbrt',function(a){if(a){return a}var b=function(b){if(b===0){return b}b=Number(b);var c=Math.pow(Math.abs(b),1/3);return b<0?-c:c};return b},'es6','es3');$jscomp.polyfill('Math.clz32',function(a){if(a){return a}var b=function(b){b=Number(b)>>>0;if(b===0){return 32}var c=0;if((b&4.29490176E9)===0){b<<=16;c+=16}if((b&4.27819008E9)===0){b<<=8;c+=8}if((b&4.02653184E9)===0){b<<=4;c+=4}if((b&3.221225472E9)===0){b<<=2;c+=2}if((b&2.147483648E9)===0){c++}return c};return b},'es6','es3');$jscomp.polyfill('Math.cosh',function(a){if(a){return a}var b=Math.exp;var c=function(c){c=Number(c);return (b(c)+b(-c))/2};return c},'es6','es3');$jscomp.polyfill('Math.expm1',function(a){if(a){return a}var b=function(b){b=Number(b);if(b<0.25&&b>-0.25){var e=b;var f=1;var c=b;var d=0;while(d!=c){e*=b/++f;c=(d=c)+e}return c}return Math.exp(b)-1};return b},'es6','es3');$jscomp.polyfill('Math.fround',function(a){if(a){return a}if($jscomp.SIMPLE_FROUND_POLYFILL||typeof Float32Array!=='function'){return function(b){return b}}var b=new Float32Array(1);var c=function(c){b[0]=c;return b[0]};return c},'es6','es3');$jscomp.polyfill('Math.hypot',function(a){if(a){return a}var b=function(f){if(arguments.length<2){return arguments.length?Math.abs(arguments[0]):0}var b,e,d,c;for(c=0,b=0;b1.0E100||c<1.0E-100){if(!c){return c}d=0;for(b=0;b>>16&65535;var d=b&65535;var g=c>>>16&65535;var e=c&65535;var h=f*e+d*g<<16>>>0;return d*e+h|0};return b},'es6','es3');$jscomp.polyfill('Math.log10',function(a){if(a){return a}var b=function(b){return Math.log(b)/Math.LN10};return b},'es6','es3');$jscomp.polyfill('Math.log2',function(a){if(a){return a}var b=function(b){return Math.log(b)/Math.LN2};return b},'es6','es3');$jscomp.polyfill('Math.sign',function(a){if(a){return a}var b=function(b){b=Number(b);return b===0||isNaN(b)?b:b>0?1:-1};return b},'es6','es3');$jscomp.polyfill('Math.sinh',function(a){if(a){return a}var b=Math.exp;var c=function(c){c=Number(c);if(c===0){return c}return (b(c)-b(-c))/2};return c},'es6','es3');$jscomp.polyfill('Math.tanh',function(a){if(a){return a}var b=function(b){b=Number(b);if(b===0){return b}var c=Math.exp(-2*Math.abs(b));var d=(1-c)/(1+c);return b<0?-d:d};return b},'es6','es3');$jscomp.polyfill('Math.trunc',function(a){if(a){return a}var b=function(b){b=Number(b);if(isNaN(b)||b===Infinity||b===-Infinity||b===0){return b}var c=Math.floor(Math.abs(b));return b<0?-c:c};return b},'es6','es3');$jscomp.polyfill('Number.EPSILON',function(a){return Math.pow(2,-52)},'es6','es3');$jscomp.polyfill('Number.MAX_SAFE_INTEGER',function(){return 9.007199254740991E15},'es6','es3');$jscomp.polyfill('Number.MIN_SAFE_INTEGER',function(){return -9.007199254740991E15},'es6','es3');$jscomp.polyfill('Number.isFinite',function(a){if(a){return a}var b=function(b){if(typeof b!=='number'){return !1}return !isNaN(b)&&b!==Infinity&&b!==-Infinity};return b},'es6','es3');$jscomp.polyfill('Number.isInteger',function(a){if(a){return a}var b=function(b){if(!Number.isFinite(b)){return !1}return b===Math.floor(b)};return b},'es6','es3');$jscomp.polyfill('Number.isNaN',function(a){if(a){return a}var b=function(b){return typeof b==='number'&&isNaN(b)};return b},'es6','es3');$jscomp.polyfill('Number.isSafeInteger',function(a){if(a){return a}var b=function(b){return Number.isInteger(b)&&Math.abs(b)<=Number.MAX_SAFE_INTEGER};return b},'es6','es3');$jscomp.polyfill('Number.parseFloat',function(a){return a||parseFloat},'es6','es3');$jscomp.polyfill('Number.parseInt',function(a){return a||parseInt},'es6','es3');$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&typeof Object.assign=='function'?Object.assign:function(d,e){for(var c=1;c3?f:b,e);return !0}else if(c.writable&&!Object.isFrozen(b)){b[d]=e;return !0}return !1};return b},'es6','es5');$jscomp.polyfill('Reflect.setPrototypeOf',function(a){if(a){return a}else if($jscomp.setPrototypeOf){var b=$jscomp.setPrototypeOf;var c=function(c,d){try{b(c,d);return !0}catch(e){return !1}};return c}else {return null}},'es6','es5');$jscomp.polyfill('Set',function(b){function isConformant(){if($jscomp.ASSUME_NO_NATIVE_SET||!b||typeof b!='function'||!b.prototype.entries||typeof Object.seal!='function'){return !1}try{b=b;var d=Object.seal({x:4});var c=new b($jscomp.makeIterator([d]));if(!c.has(d)||c.size!=1||c.add(d)!=c||c.size!=1||c.add({x:4})!=c||c.size!=2){return !1}var e=c.entries();var a=e.next();if(a.done||a.value[0]!=d||a.value[1]!=d){return !1}a=e.next();if(a.done||a.value[0]==d||a.value[0].x!=4||a.value[1]!=a.value[0]){return !1}return e.next().done}catch(f){return !1}}if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(b&&$jscomp.ES6_CONFORMANCE){return b}}else {if(isConformant()){return b}}var a=function(a){this.map_=new Map();if(a){var e=$jscomp.makeIterator(a);var c;while(!(c=e.next()).done){var d=c.value;this.add(d)}}this.size=this.map_.size};a.prototype.add=function(a){a=a===0?0:a;this.map_.set(a,a);this.size=this.map_.size;return this};a.prototype["delete"]=function(c){var a=this.map_["delete"](c);this.size=this.map_.size;return a};a.prototype.clear=function(){this.map_.clear();this.size=0};a.prototype.has=function(a){return this.map_.has(a)};a.prototype.entries=function(){return this.map_.entries()};a.prototype.values=function(){return this.map_.values()};a.prototype.keys=a.prototype.values;a.prototype[Symbol.iterator]=a.prototype.values;a.prototype.forEach=function(c,a){var d=this;this.map_.forEach(function(e){return c.call(a,e,e,d)})};return a},'es6','es3');$jscomp.checkStringArgs=function(a,c,b){if(a==null){throw new TypeError("The 'this' value for String.prototype."+b+' must not be null or undefined')}if(c instanceof RegExp){throw new TypeError('First argument to String.prototype.'+b+' must not be a regular expression')}return a+''};$jscomp.polyfill('String.prototype.codePointAt',function(a){if(a){return a}var b=function(b){var e=$jscomp.checkStringArgs(this,null,'codePointAt');var f=e.length;b=Number(b)||0;if(!(b>=0&&b56319||b+1===f){return c}var d=e.charCodeAt(b+1);if(d<56320||d>57343){return c}return (c-55296)*1024+d+9216};return b},'es6','es3');$jscomp.polyfill('String.prototype.endsWith',function(a){if(a){return a}var b=function(b,c){var d=$jscomp.checkStringArgs(this,b,'endsWith');b=b+'';if(c===void 0){c=d.length}var f=Math.max(0,Math.min(c|0,d.length));var e=b.length;while(e>0&&f>0){if(d[--f]!=b[--e]){return !1}}return e<=0};return b},'es6','es3');$jscomp.polyfill('String.fromCodePoint',function(a){if(a){return a}var b=function(e){var c='';for(var d=0;d1114111||b!==Math.floor(b)){throw new RangeError('invalid_code_point '+b)}if(b<=65535){c+=String.fromCharCode(b)}else {b-=65536;c+=String.fromCharCode(b>>>10&1023|55296);c+=String.fromCharCode(b&1023|56320)}}return c};return b},'es6','es3');$jscomp.polyfill('String.prototype.includes',function(a){if(a){return a}var b=function(b,c){var d=$jscomp.checkStringArgs(this,b,'includes');return d.indexOf(b,c||0)!==-1};return b},'es6','es3');$jscomp.polyfill('String.prototype.matchAll',function(a){if(a){return a}var b=function(b){if(b instanceof RegExp&&!b.global){throw new TypeError('RegExp passed into String.prototype.matchAll() must have global tag.')}var d=new RegExp(b,b instanceof RegExp?undefined:'g');var f=this;var e=!1;var c={next:function(){if(e){return {value:undefined,done:!0}}var c=d.exec(f);if(!c){e=!0;return {value:undefined,done:!0}}if(c[0]===''){d.lastIndex+=1}return {value:c,done:!1}}};c[Symbol.iterator]=function(){return c};return c};return b},'es_2020','es3');$jscomp.polyfill('String.prototype.repeat',function(a){if(a){return a}var b=function(b){var c=$jscomp.checkStringArgs(this,null,'repeat');if(b<0||b>1342177279){throw new RangeError('Invalid count value')}b=b|0;var d='';while(b){if(b&1){d+=c}if(b>>>=1){c+=c}}return d};return b},'es6','es3');$jscomp.stringPadding=function(c,a){var b=c!==undefined?String(c):' ';if(!(a>0)||!b){return ''}var d=Math.ceil(a/b.length);return b.repeat(d).substring(0,a)};$jscomp.polyfill('String.prototype.padEnd',function(a){if(a){return a}var b=function(d,c){var b=$jscomp.checkStringArgs(this,null,'padStart');var e=d-b.length;return b+$jscomp.stringPadding(c,e)};return b},'es8','es3');$jscomp.polyfill('String.prototype.padStart',function(a){if(a){return a}var b=function(d,c){var b=$jscomp.checkStringArgs(this,null,'padStart');var e=d-b.length;return $jscomp.stringPadding(c,e)+b};return b},'es8','es3');$jscomp.polyfill('String.raw',function(a){if(a){return a}var b=function(d,g){if(d==null){throw new TypeError('Cannot convert undefined or null to object')}var f=d.raw;var e=f.length;var c='';for(var b=0;b=e};return b},'es6','es3');$jscomp.polyfill('String.prototype.trimRight',function(a){function polyfill(){return this.replace(/[\s\xa0]+$/,'')}return a||polyfill},'es_2019','es3');$jscomp.polyfill('String.prototype.trimEnd',function(a){return a||String.prototype.trimRight},'es_2019','es3');$jscomp.polyfill('String.prototype.trimLeft',function(a){function polyfill(){return this.replace(/^[\s\xa0]+/,'')}return a||polyfill},'es_2019','es3');$jscomp.polyfill('String.prototype.trimStart',function(a){return a||String.prototype.trimLeft},'es_2019','es3');$jscomp.typedArrayCopyWithin=function(a){if(a){return a}return Array.prototype.copyWithin};$jscomp.polyfill('Int8Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Uint8Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Uint8ClampedArray.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Int16Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Uint16Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Int32Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Uint32Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Float32Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.polyfill('Float64Array.prototype.copyWithin',$jscomp.typedArrayCopyWithin,'es6','es5');$jscomp.typedArrayFill=function(a){if(a){return a}return Array.prototype.fill};$jscomp.polyfill('Int8Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Uint8Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Uint8ClampedArray.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Int16Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Uint16Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Int32Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Uint32Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Float32Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.polyfill('Float64Array.prototype.fill',$jscomp.typedArrayFill,'es6','es5');$jscomp.createTemplateTagFirstArg=function(a){a.raw=a;return a};$jscomp.createTemplateTagFirstArgWithRaw=function(a,b){a.raw=b;return a};$jscomp.arrayFromIterator=function(c){var b;var a=[];while(!(b=c.next()).done){a.push(b.value)}return a};$jscomp.arrayFromIterable=function(a){if(a instanceof Array){return a}else {return $jscomp.arrayFromIterator($jscomp.makeIterator(a))}};$jscomp.getRestArguments=function(){var b=Number(this);var c=[];for(var a=b;a'+Ext.baseCSSPrefix+'calendar-list-item-hidden'+'">'+'
'+'
{title:htmlEncode}
'+'',itemSelector:'.'+Ext.baseCSSPrefix+'calendar-list-item',itemCls:Ext.baseCSSPrefix+'calendar-list-item',scrollable:!0,prepareData:function(c,b,a){return {id:a.id,editable:a.isEditable(),hidden:a.isHidden(),color:a.getBaseColor(),title:a.getTitle()}},handleItemTap:function(a){if(this.getEnableToggle()){a.setHidden(!a.isHidden())}}});Ext.define('Ext.calendar.date.Range',{end:null,start:null,isRange:!0,statics:{fly:function(){var a=null;return function(b,c){if(b.isRange){return b}if(!a){a=new Ext.calendar.date.Range()}a.start=b;a.end=c;return a}}()},constructor:function(a,b){this.start=a;this.end=b},clone:function(){var a=Ext.Date,b=this.self;return new b(a.clone(this.start),a.clone(this.end))},contains:function(a){return this.start<=a&&a<=this.end},containsRange:function(b,c){var a=this.self.fly(b,c);return a.start>=this.start&&a.end<=this.end},equals:function(b,c){var a;if(!b){return !1}a=this.self.fly(b,c);return this.start.getTime()===a.start.getTime()&&this.end.getTime()===a.end.getTime()},getDuration:function(){return this.end.getTime()-this.start.getTime()},isContainedBy:function(b,c){var a=this.self.fly(b,c);return a.containsRange(this)},overlaps:function(b,c){var a=this.self.fly(b,c);return a.start'+'({days} days) '+''+'{title}',width:null},draggingCls:Ext.baseCSSPrefix+'calendar-event-dragging',applyTitleTpl:function(a){if(a&&!a.isXTemplate){a=new Ext.XTemplate(a)}return a},getElement:function(c){var b=this,d=c.view,a=c.widget.cloneForProxy(),e=a.element;a.removeCls(d.$staticEventCls);a.addCls(b.draggingCls);a.addCls(b.placeholderCls);d.element.appendChild(e);a.setWidth(b.getWidth());b.setTitle(a);b.clone=a;return e},cleanup:function(){this.clone=Ext.destroy(this.clone);this.callParent()},privates:{setTitle:function(a){var c=this.getTitleTpl(),b;if(c){b=a.getModel();a.setTitle(c.apply({model:b,title:a.getTitle(),days:this.getSource().getView().getEventDaysSpanned(b)}))}}}});Ext.define('Ext.calendar.util.Dom',{singleton:!0,extractPositions:function(b,d){var e=b.length,c=[],a;for(a=0;ab[d-1]){c=d-1}else {for(a=d-1;a>=0;--a){if(e>b[a]){c=a;break}}}return c}});Ext.define('Ext.calendar.dd.DaysAllDaySource',{extend:'Ext.drag.Source',requires:['Ext.calendar.dd.WeeksProxy','Ext.calendar.util.Dom'],activateOnLongPress:'touch',config:{proxy:{type:'calendar-weeks',width:200},view:null},describe:function(a){var c=this.getView(),b=c.getEvent(a.eventTarget);a.event=b;a.widget=c.getEventWidget(b);a.setData('calendar-event-allday',b);a.view=c},beforeDragStart:function(a){return this.getView().handleChangeStart('drag',a.event)},updateView:function(a){if(a){this.setHandle('.'+a.$eventCls);this.setElement(a.allDayContent)}},destroy:function(){this.setView(null);this.callParent()},privates:{setup:function(a){var c,d,b;this.callParent([a]);c=a.view;d=a.event;b=Ext.calendar.util.Dom.extractPositions(c.backgroundCells,'getX');a.index=Ext.calendar.util.Dom.getIndexPosition(b,a.cursor.current.x);a.positions=b;a.span=c.getEventDaysSpanned(d)}}});Ext.define('Ext.calendar.dd.DaysAllDayTarget',{extend:'Ext.drag.Target',requires:['Ext.calendar.util.Dom','Ext.calendar.date.Range'],config:{view:null},updateView:function(a){if(a){this.setElement(a.allDayContent)}},accepts:function(a){return Ext.Array.contains(a.types,'calendar-event-allday')},onDragMove:function(a){var c=a.view,b;if(a.valid){b=Ext.calendar.util.Dom.getIndexPosition(a.positions,a.cursor.current.x);c.selectRange(b,b+a.span-1)}this.callParent([a])},onDragLeave:function(a){this.getView().clearSelected();this.callParent([a])},onDrop:function(b){var a=Ext.Date,e=b.view,d=b.event,i=Ext.calendar.util.Dom.getIndexPosition(b.positions,b.cursor.current.x),f=e.utcTimezoneOffset(a.add(e.dateInfo.full.start,a.DAY,i)),h=d.getStartDate(),g=f'+'
{'+a+'}
'},prepareData:function(c,b,a){return {id:a.id,title:a.getTitle(),color:a.getBaseColor()}}},afterRender:function(){this.callParent();this.updateValue()},updateValue:function(){var b=this,a,c;b.callParent();c=b.valueCollection.first();if(b.rendered){a=b.iconEl;if(!a){b.iconEl=a=b.inputWrap.createChild({cls:Ext.baseCSSPrefix+'calendar-picker-field-icon'})}if(c){a.setDisplayed(!0);a.setStyle('background-color',c.getBaseColor())}else {a.setDisplayed(!1)}}}});Ext.define('Ext.calendar.form.AbstractForm',{extend:'Ext.window.Window',requires:['Ext.layout.container.Fit','Ext.layout.container.VBox','Ext.layout.container.HBox','Ext.form.Panel','Ext.form.field.Text','Ext.form.field.Date','Ext.form.field.Time','Ext.form.field.Checkbox','Ext.calendar.form.CalendarPicker'],layout:'fit',modal:!0,closable:!1,defaultListenerScope:!0,config:{calendarField:{xtype:'calendar-calendar-picker',fieldLabel:'Calendar',name:'calendarId',forceSelection:!0,editable:!1,queryMode:'local',displayField:'title',valueField:'id'},titleField:{xtype:'textfield',fieldLabel:'Title',name:'title',allowBlank:!1},fromContainer:{xtype:'fieldcontainer',fieldLabel:'From',layout:'hbox'},startDateField:{xtype:'datefield',itemId:'startDate',name:'startDate',allowBlank:!1},startTimeField:{xtype:'timefield',itemId:'startTime',name:'startTime',margin:'0 0 0 5'},toContainer:{xtype:'fieldcontainer',fieldLabel:'To',layout:'hbox'},endDateField:{xtype:'datefield',itemId:'endDate',name:'endDate',allowBlank:!1},endTimeField:{xtype:'timefield',itemId:'endTime',name:'endTime',margin:'0 0 0 5'},allDayField:{xtype:'checkbox',itemId:'allDay',name:'allDay',boxLabel:'All Day',hideEmptyLabel:!1,handler:'onAllDayChange'},descriptionField:{xtype:'textarea',fieldLabel:'Description',name:'description',flex:1},dropButton:{text:'Delete',handler:'onDropTap'},saveButton:{text:'Save',handler:'onSaveTap'},cancelButton:{text:'Cancel',handler:'onCancelTap'}},initComponent:function(){var a=this;a.initForm();a.fbar=a.generateButtons();a.callParent();a.form=a.items.first();a.checkFields();a.applyValues()},generateButtons:function(){var a=[],b=this.getDropButton();if(b){a.push(b)}a.push({xtype:'component',flex:1},this.getSaveButton(),this.getCancelButton());return a},applyValues:function(){this.form.getForm().setValues(this.consumeEventData())},createItems:function(){var a=this,b=a.getCalendarField(),c=a.getFromContainer(),d=a.getToContainer();if(!b.store){b.store=a.getCalendarStore()}if(!c.items){c.items=[a.getStartDateField(),a.getStartTimeField()]}if(!d.items){d.items=[a.getEndDateField(),a.getEndTimeField()]}this.items=[{xtype:'form',border:!1,trackResetOnLoad:!0,layout:{type:'vbox',align:'stretch'},bodyPadding:10,items:[b,a.getTitleField(),c,d,a.getAllDayField(),a.getDescriptionField()]}]},privates:{checkFields:function(){var a=this.down('#allDay').checked;this.down('#startTime').setDisabled(a);this.down('#endTime').setDisabled(a)},onAllDayChange:function(){this.checkFields()},onCancelTap:function(){this.fireCancel()},onDropTap:function(){this.fireDrop()},onSaveTap:function(){var b=this.form,a=b.getForm().getFieldValues();if(!b.isValid()){return}a.allDay=this.down('#allDay').checked;this.fireSave(this.produceEventData(a))}}});Ext.define('Ext.calendar.form.Base',{extend:'Ext.Mixin',requires:['Ext.data.ChainedStore'],config:{event:null,view:null},fireCancel:function(){this.fireEvent('cancel',this)},fireDrop:function(){this.fireEvent('drop',this)},fireSave:function(a){this.fireEvent('save',this,{data:a})},getCalendarStore:function(){return {type:'chained',autoDestroy:!0,source:this.getView().getStore(),filters:[{filterFn:function(a){return a.isEditable()}}]}}});Ext.define('Ext.calendar.form.Form',{extend:'Ext.calendar.form.AbstractForm',mixins:['Ext.calendar.form.Base'],defaultStartTime:[9,0],defaultEndTime:[10,0],initForm:function(){this.createItems()},consumeEventData:function(){var c=this,f=Ext.Date,i=c.getView(),b=c.getEvent(),j=b.getStartDate(),k=b.getEndDate(),d=b.getAllDay(),g=d?f.utcToLocal(j):i.utcToLocal(j),e=d?f.utcToLocal(k):i.utcToLocal(k),l=d||g.getTime()===e.getTime(),a={calendarId:b.getCalendarId(),title:b.getTitle(),description:b.getDescription(),allDay:d,startDate:g,endDate:e},h;if(!l){a.startTime=g;a.endTime=e}if(d){a.endDate=f.subtract(e,f.DAY,1)}c.setDefaultTime(a,'startTime',c.defaultStartTime);c.setDefaultTime(a,'endTime',c.defaultEndTime);if(!a.calendarId){h=i.getEditableCalendars();if(h.length){a.calendarId=h[0].id}}return a},produceEventData:function(a){var d=Ext.Date,m=this.getView(),e=a.startTime,f=a.endTime,b=a.startDate,c=a.endDate,l=b.getFullYear(),h=b.getMonth(),k=b.getDate(),j=c.getFullYear(),g=c.getMonth(),i=c.getDate();if(a.allDay){b=d.utc(l,h,k);c=d.add(d.utc(j,g,i),d.DAY,1);delete a.startTime;delete a.endTime}else {b=m.toUtcOffset(new Date(l,h,k,e.getHours(),e.getMinutes()));c=m.toUtcOffset(new Date(j,g,i,f.getHours(),f.getMinutes()))}a.startDate=b;a.endDate=c;return a},privates:{setDefaultTime:function(a,c,b){if(!a[c]){a[c]=new Date(2010,0,1,b[0],b[1])}}}});Ext.define('Ext.calendar.form.Add',{extend:'Ext.calendar.form.Form',xtype:'calendar-form-add',dropButton:null,title:'Add Event'});Ext.define('Ext.calendar.form.Edit',{extend:'Ext.calendar.form.Form',xtype:'calendar-form-edit',title:'Edit Event'});Ext.define('Ext.calendar.header.Base',{extend:'Ext.Gadget',mixins:['Ext.mixin.ConfigState'],alternateStateConfig:'compactOptions',config:{cellCls:'',compact:!1,compactOptions:null,format:'',value:null,visibleDays:null},baseCls:Ext.baseCSSPrefix+'calendar-header',constructor:function(a){this.callParent([a]);this.redrawCells()},updateCompact:function(b){var a=this,c=a.baseCls;a.element.toggleCls(c+'-compact',b);a.element.toggleCls(c+'-large',!b);a.toggleConfigState(b)},updateCompactOptions:function(){if(!this.isConfiguring&&this.getCompact()){this.toggleConfigState()}},updateFormat:function(){if(!this.isConfiguring){this.setHeaderText(!0)}},applyValue:function(a,b){if(a&&b&&a-b===0){a=undefined}return a},updateValue:function(){if(!this.isConfiguring){this.setHeaderText()}},updateVisibleDays:function(){if(!this.isConfiguring){this.redrawCells()}},getElementConfig:function(){return {tag:'table',cls:this.$tableCls,reference:'element',children:[{tag:'tbody',children:[{tag:'tr',reference:'row'}]}]}},privates:{domFormat:'Y-m-d',useDates:!0,$headerCls:Ext.baseCSSPrefix+'calendar-header-cell',$hiddenCls:Ext.baseCSSPrefix+'calendar-header-hidden-cell',$tableCls:Ext.baseCSSPrefix+'calendar-header-table',clearCells:function(a){var c=this.row.dom,b=c.childNodes;a=a||0;while(b.length>a){c.removeChild(b[a])}},createCells:function(){var b=this,h=b.row.dom,e=[],g=b.getCreateDays(),f=Ext.baseCSSPrefix+'unselectable '+b.$headerCls,d=b.getCellCls(),a,c;if(d){f+=' '+d}for(c=0;c=this.getVisibleDays())}}});Ext.define('Ext.calendar.model.EventBase',{extend:'Ext.Mixin',requires:['Ext.calendar.date.Range'],inheritableStatics:{getDaysSpanned:function(a,d){var b=Ext.Date,c=0;a=b.clearTime(a,!0);while(aa.diff(c,d,'mi')},occursInRange:function(a,b){return this.getRange().overlaps(a,b)},setCalendar:function(a,b){b=b!==!1;this.calendar=a;this.setCalendarId(a?a.id:null,b)}});Ext.define('Ext.calendar.model.Event',{extend:'Ext.data.Model',mixins:['Ext.calendar.model.EventBase'],requires:['Ext.data.field.String','Ext.data.field.Integer','Ext.data.field.Date','Ext.data.field.Boolean'],fields:[{name:'title',type:'string'},{name:'calendarId'},{name:'color',type:'string'},{name:'description',type:'string'},{name:'startDate',type:'date',dateFormat:'c'},{name:'endDate',type:'date',dateFormat:'c'},{name:'allDay',type:'boolean'},{name:'duration',type:'int',depends:['startDate','endDate'],calculate:function(b){var a=b.startDate,c=b.endDate,d=0;if(c&&a){d=c.getTime()-a.getTime()}return d/60000}}],getAllDay:function(){return this.data.allDay},getCalendarId:function(){return this.data.calendarId},getColor:function(){return this.data.color},getDescription:function(){return this.data.description},getDuration:function(){return this.data.duration},getEndDate:function(){return this.data.endDate},getRange:function(){var a=this,b=a.range;if(!b){a.range=b=new Ext.calendar.date.Range(a.getStartDate(),a.getEndDate())}return b},getStartDate:function(){return this.data.startDate},getTitle:function(){return this.data.title},isEditable:function(){var a=this.getCalendar();return a?a.isEditable():!0},setAllDay:function(a){this.set('allDay',a)},setCalendarId:function(b,a){a=a!==!1;this.set('calendarId',b,{dirty:a})},setColor:function(a){this.set('color',a)},setData:function(a){var b=a.duration;if(b){a=Ext.apply({},a);delete a.duration;this.setDuration(b)}else if(a.startDate&&a.endDate){this.range=null}this.set(a)},setDescription:function(a){this.set('description',a)},setDuration:function(b){var a=Ext.Date;this.range=null;this.set('endDate',a.add(this.data.startDate,a.MINUTE,b,!0))},setRange:function(a,b){var c=Ext.Date;if(a.isRange){b=a.end;a=a.start}this.range=null;this.set({startDate:c.clone(a),endDate:c.clone(b)})},setTitle:function(a){this.set('title',a)}});Ext.define('Ext.calendar.store.Events',{extend:'Ext.data.Store',alias:'store.calendar-events',model:'Ext.calendar.model.Event',requires:['Ext.calendar.model.Event','Ext.calendar.date.Range'],config:{calendar:null,calendarParam:'calendar',dateFormat:'C',endParam:'endDate',prefetchMode:'month',startParam:'startDate'},remoteSort:!1,pageSize:0,sorters:[{direction:'ASC',sorterFn:function(a,b){return Ext.calendar.model.Event.sort(a,b)}}],prefetchSettings:{month:{unit:Ext.Date.MONTH,amount:2},week:{unit:Ext.Date.WEEK,amount:2},day:{unit:Ext.Date.DAY,amount:4}},constructor:function(a){this.requests={};this.callParent([a])},getInRange:function(e,f){var c=this.data.items,g=c.length,d=[],a,b;for(a=0;ad){i=d;j=c.full.start;++g;k=!0}if(c.full.endd?g:h,border:b.createDarker(0.2).toString()}},getBaseColor:function(f){var b=this,d=b.idMap,c=b.colors,e=f.id,a;a=d[e];if(!a){a=c[b.current%c.length];d[e]=a;++b.current}return a},getPalette:function(b){var c=this.colorMap,a=c[b],d;if(!a){d=Ext.util.Color.fromString(b);c[b]=a=this.generatePalette(d)}return a},privates:{colorMap:{},idMap:{},current:0,onIdChanged:function(d,b){var a=this.idMap,c=a[b];if(c){delete a[b];a[d]=c}}}});Ext.define('Ext.calendar.model.CalendarBase',{extend:'Ext.Mixin',requires:['Ext.calendar.store.Events','Ext.calendar.theme.Theme'],config:{eventStoreDefaults:{type:'calendar-events',proxy:{type:'ajax'}}},events:function(){var a=this,b=a._eventStore,c;if(!b){c=Ext.merge({calendar:a},a.config.eventStoreDefaults,a.eventStoreDefaults,a.get('eventCfg'));a._eventStore=b=Ext.Factory.store(a.getEventStoreConfig(c))}return b},getBaseColor:function(){var a=this.getColor()||this.getAssignedColor();if(!a){a=Ext.calendar.theme.Theme.getBaseColor(this);this.setAssignedColor(a)}return a},isEditable:function(){return this.getEditable()},isHidden:function(){return this.getHidden()},privates:{onIdChanged:function(a,b){Ext.calendar.theme.Theme.onIdChanged(a,b)}}});Ext.define('Ext.calendar.model.Calendar',{extend:'Ext.data.Model',mixins:['Ext.calendar.model.CalendarBase'],requires:['Ext.data.field.String','Ext.data.field.Boolean'],fields:[{name:'title',type:'string'},{name:'description',type:'string'},{name:'color',type:'string'},{name:'assignedColor',type:'string',persist:!1},{name:'hidden',type:'bool'},{name:'editable',type:'bool',defaultValue:!0},{name:'eventStore',type:'auto',persist:!1}],constructor:function(b,a){this.callParent([b,a]);this.getBaseColor()},getAssignedColor:function(){return this.data.assignedColor},getColor:function(){return this.data.color},getDescription:function(){return this.data.description},getEditable:function(){return this.data.editable},getEventStoreConfig:function(a){return Ext.merge(a,this.data.eventStore)},getHidden:function(){return this.data.hidden},getTitle:function(){return this.data.title},setAssignedColor:function(a){this.set('assignedColor',a)},setColor:function(a){this.set('color',a)},setDescription:function(a){this.set('description',a)},setEditable:function(a){this.set('editable',a)},setHidden:function(a){this.set('hidden',a)},setTitle:function(a){this.set('title',a)}});Ext.define('Ext.calendar.panel.AbstractBase',{extend:'Ext.panel.Panel',requires:['Ext.layout.container.Fit'],layout:'fit',updateDayHeader:function(a){if(a){this.addItem(a,'dockedItems','addDocked')}},updateView:function(a){this.addItem(a,'items','add')},afterComponentLayout:function(d,c,b,a){this.callParent([d,c,b,a]);this.syncHeaders()},privates:{addItem:function(d,c,e){var b=this,a=b[c];if(a){if(a.isMixedCollection){b[e](d)}else {if(!Ext.isArray(a)){a=[a]}b[c]=a.concat(d)}}else {b[c]=d}},syncHeaders:function(){var b=this,a;if(b.syncHeaderSize){a=b.getDayHeader();if(a&&a.setOverflowWidth){a.setOverflowWidth(b.getView().scrollable.getScrollbarSize().width)}}}}});Ext.define('Ext.calendar.panel.Base',{extend:'Ext.calendar.panel.AbstractBase',config:{dayHeader:null,eventRelayers:{view:{beforeeventadd:!0,beforeeventedit:!0,eventadd:!0,eventedit:!0,eventdrop:!0,eventtap:!0,validateeventadd:!0,validateeventedit:!0,validateeventdrop:!0,valuechange:!0}},view:null},platformConfig:{'!desktop':{compact:!0}},configExtractor:{view:{addForm:!0,compact:!0,compactOptions:!0,controlStoreRange:!0,editForm:!0,eventDefaults:!0,gestureNavigation:!0,store:!0,timezoneOffset:!0,value:!0}},twoWayBindable:{value:1},cls:[Ext.baseCSSPrefix+'calendar-base',Ext.baseCSSPrefix+'unselectable'],constructor:function(a){var c=this,j=Ext.Config,i=c.configExtractor,h={},f,b,e,g,d;a=Ext.apply({},a);c.extracted=h;for(f in i){e=i[f];h[f]=g={};for(b in a){if(b in e){d=e[b];if(d===!0){d=b}g[d]=a[b];delete a[b]}}c.setupProxy(e,j.get(f).names.get)}c.callParent([a]);c.initRelayers()},onClassExtended:function(c,b,d){var a=b.configExtractor;if(a){delete b.configExtractor;c.prototype.configExtractor=Ext.merge({},c.prototype.configExtractor,a)}},updateHighlightToday:Ext.emptyFn,getDisplayRange:function(){return this.getView().getDisplayRange()},getVisibleRange:function(){return this.getView().getVisibleRange()},moveNext:function(){this.getView().moveNext()},movePrevious:function(){this.getView().movePrevious()},navigate:function(b,a){this.getView().navigate(b,a)},showAddForm:function(b,a){this.getView().showAddForm(b,a)},showEditForm:function(b,a){this.getView().showEditForm(b,a)},applyDayHeader:function(a){if(a){a=Ext.apply(this.extracted.dayHeader,a);a=Ext.create(a)}return a},updateDayHeader:function(b,a){if(a){a.destroy()}if(b){this.getView().setHeader(b)}this.callParent([b,a])},applyView:function(a){if(a){a=Ext.create(Ext.apply(this.extracted.view,a))}return a},updateView:function(b,a){if(a){a.destroy()}this.callParent([b,a])},privates:{calculateMoveNext:function(){return this.getView().calculateMoveNext()},calculateMovePrevious:function(){return this.getView().calculateMovePrevious()},createItemRelayer:function(b){var a=this;return function(d,c){return a.fireEvent(b,a,c)}},generateProxyMethod:function(d,c,b){var a=this,h=c.names.set,g=c.names.get,f=d.names.set,e=d.names.get;if(!a[f]){a[f]=function(f){var e=a[b]();if(e){e[h](f)}}}if(!a[e]){a[e]=function(){var e=a[b]();if(e){return e[g]()}}}},initRelayers:function(){var g=Ext.Config,d=this.getEventRelayers(),c,a,f,b,e;for(c in d){a=d[c];f=this[g.get(c).names.get]();e=a.$prefix||'';for(b in a){f.on(b,this.createItemRelayer(e+b))}}},refreshEvents:function(){this.getView().refreshEvents()},setupProxy:function(e,g){var h=this,f=Ext.Config,c,a,b,d;for(c in e){d=e[c];b=f.get(c);if(d===!0){a=b}else {a=f.get(d)}h.generateProxyMethod(b,a,g)}}}});Ext.define('Ext.calendar.store.EventSource',{extend:'Ext.data.Store',requires:['Ext.calendar.date.Range'],config:{source:null},sorters:[{direction:'ASC',sorterFn:function(a,b){return Ext.calendar.model.Event.sort(a,b)}}],trackRemoved:!1,constructor:function(a){this.calendarMap={};this.callParent([a])},createEvent:function(b){var c=this.getSource().first().events().getModel(),a=new c();if(b){a.setData(b)}return a},updateSource:function(b){var a=this;a.sourceListeners=Ext.destroy(a.sourceListeners);if(b){a.sourceListeners=b.on({destroyable:!0,scope:a,add:'checkData',remove:'checkData',refresh:'checkData'});a.checkData()}},add:function(b){var a=this.getEventsForCalendar(b.getCalendarId());if(!a){return}a.add(b)},move:function(b,e){var a=this.getEventsForCalendar(e),c=b.getCalendar(),d;if(c){a.suspendAutoSync();++a.isMoving}a.remove(b);if(c){--a.isMoving;a.resumeAutoSync();b.unjoin(a);d=a.removed;if(d){Ext.Array.remove(d,b)}a=this.getEventsForCalendar(c);a.suspendAutoSync();a.add(b);a.resumeAutoSync()}},remove:function(b){var a=this.getEventsForCalendar(b.getCalendarId());if(!a){return}a.remove(b)},hasRangeCached:function(c){var e=this.calendarMap,a=this.range,f,d,b;if(!a){return !1}for(f in e){b=!0;d=this.getEventsForCalendar(e[f]);if(!d.hasRangeCached(c)){return !1}}if(!b){return a.containsRange(c)}return !0},setRange:function(g){var a=this,i=a.calendarMap,e=!0,d=!0,f,c,j,b,h;a.range=g.clone();for(j in i){h=!0;c=a.getEventsForCalendar(i[j]);f=c.hasRangeCached(g);d=d&&f;c.setRange(g);if(!f){b=b||[];c.on('load',function(d,f,c){Ext.Array.remove(b,d);e=e&&c;if(b.length===0){a.doBulkLoad(e)}},null,{single:!0});b.push(c);a.activeLoad=!0}}if(h&&d){a.checkData(!0)}else if(b){a.fireEvent('beforeload',a)}},doDestroy:function(){var a=this,b=this.calendarMap,c;for(c in b){a.untrackCalendar(b[c])}a.calendarMap=a.stores=null;a.setSource(null);a.callParent()},privates:{checkData:function(m){var a=this,e=a.calendarMap,g=Ext.apply({},e),n=a.getSource(),i=n.getRange(),o=i.length,j=[],c=a.range,f,b,d,h,k,l;if(c){k=c.start;l=c.end}for(f=0;f0){this.getDataSource().add(b)}},onEventStoreBeforeUpdate:function(b,a){if(!a.$moving){this.suspendEvents();this.lastIndex=this.indexOf(a)}},onEventStoreClear:function(d,b){var a=this,c;if(b.length>0){a.suspendEvents();c=a.getDataSource().remove(b);a.resumeEvents();if(c){a.fireEvent('refresh',a)}}},onEventStorePrefetch:function(c,b,a){this.getDataSource().remove(a)},onEventStoreRefresh:function(){if(this.activeLoad){return}this.checkData()},onEventStoreRemove:function(b,a){this.getDataSource().remove(a)},onEventStoreUpdate:function(i,b,h,e,g){if(b.$moving){return}var a=this,f=a.lastIndex,c=a.lastIndex!==-1,d=a.contains(b);a.resumeEvents();if(c&&d){a.fireEvent('update',a,b,h,e,g)}else if(c&&!d){a.fireEvent('remove',a,[b],f,!1)}else if(!c&&d){a.fireEvent('add',a,[b],a.indexOf(b))}},trackCalendar:function(b){var a=this.getEventsForCalendar(b);a.sourceListeners=a.on({destroyable:!0,scope:this,add:'onEventStoreAdd',beforeupdate:'onEventStoreBeforeUpdate',clear:'onEventStoreClear',prefetch:'onEventStorePrefetch',refresh:'onEventStoreRefresh',remove:'onEventStoreRemove',update:'onEventStoreUpdate'})},untrackCalendar:function(b){var a=this.getEventsForCalendar(b);a.sourceListeners=Ext.destroy(a.sourceListeners)}}});Ext.define('Ext.calendar.store.Calendars',{extend:'Ext.data.Store',alias:'store.calendar-calendars',requires:['Ext.calendar.store.EventSource','Ext.calendar.model.Calendar'],config:{eventStoreDefaults:null},model:'Ext.calendar.model.Calendar',getEventSource:function(){var a=this.eventSource;if(!a){this.eventSource=a=new Ext.calendar.store.EventSource({source:this})}return a},onCollectionAdd:function(f,d){var e=this.getEventStoreDefaults(),c=d.items,g=c.length,b,a;this.callParent([f,d]);if(e){for(b=0;b0},isEventHidden:function(b){var a=b.getCalendar();return a?a.isHidden():!0},onBodySwipe:function(b){var a=this;if(b.direction===a.forwardDirection){a.moveNext()}else if(b.direction===a.backwardDirection){a.movePrevious()}},onEventTap:function(a){this.fireEvent('eventtap',this,{event:a});this.showEditForm(a)},onFormCreateSave:function(c,a,b){a.setData(b);a.setCalendar(this.getCalendar(a.getCalendarId()));this.getEventSource().add(a);this.form=Ext.destroy(c)},onFormEditSave:function(f,b,e){var a=this,d=b.getCalendar(),c;a.suspendEventRefresh();b.setData(e);c=b.getCalendarId();if(d.id!==c){b.setCalendar(a.getCalendar(c));a.getEventSource().move(b,d)}a.resumeEventRefresh();a.refreshEvents();a.form=Ext.destroy(f)},onFormDrop:function(b,a){this.getEventSource().remove(a);this.form=Ext.destroy(b)},onFormCancel:function(a){this.form=Ext.destroy(a)},onSourceAdd:function(){this.refreshEvents()},onSourceAttach:Ext.privateFn,onSourceRefresh:function(){this.refreshEvents()},onSourceRemove:function(){this.refreshEvents()},onSourceUpdate:function(){this.refreshEvents()},onStoreUpdate:function(){this.refreshEvents()},refresh:function(){var a=this;if(!a.isConfiguring){a.isRefreshing=!0;try{a.doRefresh();if(a.hasListeners.refresh){a.fireEvent('refresh',a)}}finally{a.isRefreshing=!1}}},refreshEvents:function(){var a=this;if(!a.eventRefreshSuspend&&!a.isConfiguring){if(!a.isRefreshing){a.refresh()}a.doRefreshEvents()}},refreshHeaders:Ext.privateFn,resumeEventRefresh:function(){--this.eventRefreshSuspend},setSourceRange:function(a){if(!this.getControlStoreRange()){return}var b=this.getEventSource(),c;if(b){a=Ext.calendar.date.Util.expandRange(a);c=b.hasRangeCached(a);b.setRange(a);if(c){this.refreshEvents()}}},suspendEventRefresh:function(){++this.eventRefreshSuspend},toUtcOffset:function(e){var c=Ext.Date,f=c.localToUtc(e),d=this.autoOffset,a=d?f.getTimezoneOffset():this.getTimezoneOffset(),b;if(d){b=e.getTimezoneOffset();if(b!==a){a+=b-a}}return c.add(f,c.MINUTE,a,!1)},utcToLocal:function(c){var b=Ext.Date,e=this.getTimezoneOffset(),d=c.getTimezoneOffset(),a;if(this.autoOffset){a=b.clone(c)}else {a=b.subtract(c,b.MINUTE,e-d,!0)}return a},utcTimezoneOffset:function(a){var b=Ext.Date,c=this.autoOffset?a.getTimezoneOffset():this.getTimezoneOffset();return b.subtract(a,b.MINUTE,c,!0)}}});Ext.define('Ext.overrides.calendar.view.Base',{override:'Ext.calendar.view.Base',constructor:function(a){this.callParent([a]);this.initialized=!0},render:function(b,c){var a=this;a.callParent([b,c]);if(a.initialized&&!a.getRefOwner()){a.refresh()}},afterComponentLayout:function(d,c,b,a){this.callParent([d,c,b,a]);this.handleResize()},privates:{refreshEvents:function(){if(this.element.dom.offsetHeight===0){return}this.callParent()}}});Ext.define('Ext.calendar.view.DaysRenderer',{end:null,start:null,view:null,constructor:function(d){var b=this,a,c;Ext.apply(b,d);a=b.view;c=a.slotTicks;b.slots=(a.getEndTime()-a.getStartTime())*(60/c);b.offset=a.MS_TO_MINUTES*c;b.events=[]},addIf:function(a){var b=this,e=b.start,g=b.view,f=b.offset,c,d;if(!a.isSpan()&&a.isContainedByRange(e,b.end)){c=Math.max(0,(g.roundDate(a.getStartDate())-e)/f);d=Math.min(b.slots,(g.roundDate(a.getEndDate())-e)/f);this.events.push({event:a,start:c,end:d,len:d-c,colIdx:-1,overlaps:[],edgeWeight:-1,forwardPos:-1,backwardPos:-1})}},calculate:function(){var b=this,f=b.events,d,e,a,c;f.sort(b.sortEvents);d=b.buildColumns(f);b.constructOverlaps(d);c=d[0];if(c){e=c.length;for(a=0;a0},privates:{appendOverlappingEvents:function(a,b){this.doOverlap(a,b,a.overlaps)},buildColumns:function(g){var h=g.length,b=[],e,c,f,d,a;for(e=0;eb.start},sortEvents:function(a,b){return Ext.calendar.model.EventBase.sort(a.event,b.event)},sortOverlaps:function(a,b){return b.edgeWeight-a.edgeWeight||(a.backwardPos||0)-(b.backwardPos||0)||Ext.calendar.model.EventBase.sort(a.event,b.event)}}});Ext.define('Ext.calendar.view.Days',{extend:'Ext.calendar.view.Base',xtype:'calendar-daysview',requires:['Ext.calendar.view.DaysRenderer','Ext.calendar.Event','Ext.scroll.NativeScroller','Ext.calendar.util.Dom'],uses:['Ext.calendar.dd.DaysAllDaySource','Ext.calendar.dd.DaysAllDayTarget','Ext.calendar.dd.DaysBodySource','Ext.calendar.dd.DaysBodyTarget'],isDaysView:!0,baseCls:Ext.baseCSSPrefix+'calendar-days',cellOverflowScrollBug:Ext.isGecko||Ext.isIE11m||Ext.isEdge,config:{allowSelection:!0,compactOptions:{displayOverlap:!1,showNowMarker:!1,timeFormat:'g',timeRenderer:function(f,e,d){var g=Ext.Date,b='',a,c;if(d){c=Ext.baseCSSPrefix+'calendar-days-time-ampm';a=g.clone(this.baseDate);a.setHours(f);b='
'+Ext.Date.format(a,'a')+'
'}return e+b}},displayOverlap:!0,draggable:!0,droppable:!0,endTime:20,resizeEvents:!0,showNowMarker:!0,startTime:8,timeFormat:'H:i',timeRenderer:null,visibleDays:4},constructor:function(b){var a=this;a.slotsPerHour=60/a.slotTicks;a.callParent([b]);a.scrollable=a.createScroller();a.bodyTable.on('tap','handleEventTap',a,{delegate:'.'+a.$eventCls});a.allDayContent.on('tap','handleEventTap',a,{delegate:'.'+a.$eventCls});a.recalculate();a.refreshHeaders()},getDisplayRange:function(){var a=this,b;if(a.isConfiguring){a.recalculate()}b=a.dateInfo.active;return new Ext.calendar.date.Range(a.utcToLocal(b.start),a.utcToLocal(b.end))},getVisibleRange:function(){var b=Ext.Date,a;if(this.isConfiguring){this.recalculate()}a=this.dateInfo.active;return new Ext.calendar.date.Range(b.clone(a.start),b.clone(a.end))},setTimeRange:function(b,c){var a=this;a.isConfiguring=!0;a.setStartTime(b);a.setEndTime(c);this.isConfiguring=!1;a.suspendEventRefresh();a.recalculate();a.resumeEventRefresh();a.refresh()},updateAllowSelection:function(b){var a=this;a.allDaySelectionListeners=a.selectionListeners=Ext.destroy(a.selectionListeners,a.allDaySelectionListeners);if(b){a.bodySelectionListeners=a.bodyTable.on({destroyable:!0,scope:a,touchstart:'onBodyTouchStart',touchmove:'onBodyTouchMove',touchend:'onBodyTouchEnd'});a.allDaySelectionListeners=a.headerWrap.on({destroyable:!0,scope:a,touchstart:'onAllDayTouchStart',touchmove:'onAllDayTouchMove',touchend:'onAllDayTouchEnd'})}},updateDisplayOverlap:function(a){if(!this.isConfiguring){this.refreshEvents()}},applyDraggable:function(a){if(a){a=new Ext.calendar.dd.DaysBodySource()}return a},updateDraggable:function(c,b){var a=this;if(b){b.destroy();a.allDayDrag=Ext.destroy(a.allDayDrag)}if(c){c.setView(a);a.allDayDrag=new Ext.calendar.dd.DaysAllDaySource();a.allDayDrag.setView(a)}},applyDroppable:function(a){if(a&&!a.isInstance){a=new Ext.calendar.dd.DaysBodyTarget(a)}return a},updateDroppable:function(c,b){var a=this;if(b){b.destroy();a.allDayDrop=Ext.destroy(a.allDayDrop)}if(c){c.setView(a);a.allDayDrop=new Ext.calendar.dd.DaysAllDayTarget();a.allDayDrop.setView(a)}},updateEndTime:function(){this.calculateSlots();if(!this.isConfiguring){this.refresh()}},updateResizeEvents:function(b){var a=this;a.dragListeners=Ext.destroy(a.dragListeners);if(b){a.dragListeners=a.bodyTable.on({scope:a,dragstart:'onResizerDragStart',drag:'onResizerDrag',dragend:'onResizerDragEnd',destroyable:!0,delegate:'.'+a.$resizerCls,priority:1001})}if(!(a.isConfiguring||a.destroying)){a.refreshEvents()}},updateShowNowMarker:function(c){var a=this,b=a.markerEl;Ext.uninterval(a.showNowInterval);a.showNowInterval=null;a.markerEl=null;if(b){Ext.fly(b).remove()}if(c){if(!a.isConfiguring){a.checkNowMarker()}a.showNowInterval=Ext.interval(a.checkNowMarker,300000,a)}},updateStartTime:function(){this.calculateSlots();if(!this.isConfiguring){this.refresh()}},updateTimeFormat:function(){if(!this.isConfiguring){this.updateTimeLabels()}},updateTimeRenderer:function(){if(!this.isConfiguring){this.updateTimeLabels()}},updateTimezoneOffset:function(){if(!this.isConfiguring){this.recalculate()}},updateValue:function(c,b){var a=this;if(!a.isConfiguring){a.recalculate();a.refreshHeaders();a.checkNowMarker();a.refreshEvents()}a.callParent([c,b])},updateVisibleDays:function(){var a=this;if(!a.isConfiguring){a.suspendEventRefresh();a.recalculate();a.resumeEventRefresh();a.refresh()}},getElementConfig:function(){var a=this,b=a.callParent(),c=[{tag:'table',cls:a.$tableCls+' '+a.$bodyTableCls,reference:'bodyTable',children:[{tag:'tbody',children:[{tag:'tr',reference:'timeRow',children:[{tag:'td',reference:'timeContainer',cls:a.$timeContainerCls}]}]}]}];b.children=[{cls:Ext.baseCSSPrefix+'calendar-days-table-wrap',reference:'tableWrap',children:[{cls:Ext.baseCSSPrefix+'calendar-days-header-wrap',reference:'headerWrap',children:[{cls:Ext.baseCSSPrefix+'calendar-days-allday-background-wrap',reference:'allDayBackgroundWrap',children:[{tag:'table',cls:a.$tableCls+' '+Ext.baseCSSPrefix+'calendar-days-allday-background-table',children:[{tag:'tbody',children:[{tag:'tr',reference:'allDayBackgroundRow',children:[{tag:'td',cls:a.$headerGutterCls}]}]}]}]},{tag:'table',cls:a.$tableCls+' '+Ext.baseCSSPrefix+'calendar-days-allday-events',children:[{tag:'tbody',reference:'allDayContent',children:[{tag:'tr',reference:'allDayEmptyRow'}]}]}]},{cls:Ext.baseCSSPrefix+'calendar-days-body-row',children:[{cls:Ext.baseCSSPrefix+'calendar-days-body-cell',reference:a.cellOverflowScrollBug?null:'bodyWrap',children:a.cellOverflowScrollBug?[{cls:Ext.baseCSSPrefix+'calendar-days-body-wrap',reference:'bodyWrap',children:c}]:c}]}]}];return b},doDestroy:function(){var a=this;a.scrollable=Ext.destroy(a.scrollable);a.setAllowSelection(!1);a.setShowNowMarker(!1);a.setResizeEvents(!1);a.setDraggable(null);a.setDroppable(null);a.callParent()},privates:{$allDayBackgroundCls:Ext.baseCSSPrefix+'calendar-days-allday-background-cell',$allDayEmptyRowCls:Ext.baseCSSPrefix+'calendar-days-allday-empty-cell',$bodyCls:Ext.baseCSSPrefix+'calendar-days-body',$bodyTableCls:Ext.baseCSSPrefix+'calendar-days-body-table',$dayColumnCls:Ext.baseCSSPrefix+'calendar-days-day-column',$dayEventContainerCls:Ext.baseCSSPrefix+'calendar-days-day-event-container',$headerGutterCls:Ext.baseCSSPrefix+'calendar-days-header-gutter',$markerAltCls:Ext.baseCSSPrefix+'calendar-days-marker-alt',$markerCls:Ext.baseCSSPrefix+'calendar-days-marker',$nowMarkerCls:Ext.baseCSSPrefix+'calendar-days-now-marker',$resizerCls:Ext.baseCSSPrefix+'calendar-event-resizer',$resizingCls:Ext.baseCSSPrefix+'calendar-event-resizing',$selectionCls:Ext.baseCSSPrefix+'calendar-days-selection',$tableCls:Ext.baseCSSPrefix+'calendar-days-table',$timeCls:Ext.baseCSSPrefix+'calendar-days-time',$timeContainerCls:Ext.baseCSSPrefix+'calendar-days-time-ct',baseDate:new Date(2008,0,1),MS_TO_MINUTES:60000,minimumEventMinutes:30,slotTicks:5,slotsPerHour:null,backPosName:'left',forwardPosName:'right',headerScrollOffsetName:'padding-right',calculateSlots:function(){this.maxSlots=(this.getEndTime()-this.getStartTime())*2},checkNowMarker:function(){if(this.getShowNowMarker()){this.doCheckNowMarker()}},clearAndPopulate:function(b,e,f){var c=b.dom.childNodes,g=e.length,d=f?0:1,a;while(c.length>d){b.removeChild(c[d])}for(a=0;a1){a.removeChild(b[0])}}},clearSelected:function(){this.selectRange(-1,-1)},constructAllDayEvents:function(n){var a=this,r=Ext.Date,l=n.length,q=a.getVisibleDays(),d=a.allDayEmptyRow.dom,i=a.allDayContent.dom,c,e,b,p,m,h,g,j,o,k,f;c=new Ext.calendar.view.WeeksRenderer({view:a,start:r.clone(this.dateInfo.full.start),days:q,index:0,maxEvents:null});for(b=0;b=12&&!h){c=h=!0}d=e.call(this,a,d,c)}i.push(d)}return i},getBodyElement:function(){return this.bodyTable},getColumn:function(a){return this.getColumns()[a]},getColumns:function(){return this.bodyTable.query('.'+this.$dayColumnCls)},getEventColumn:function(a){return Ext.fly(this.getColumn(a)).down('.'+this.$dayEventContainerCls)},getEventStyle:function(){var c=this,d=c.eventStyle,e,b,a;if(!d){e=c.createEvent(null,{resize:!0},!0);b=e.element;b.dom.style.visibility='hidden';c.getEventColumn(0).appendChild(b.dom);a=b.getMargin();a.height=a.top+a.bottom;c.eventStyle=d={margin:a,resizerWidth:Ext.fly(b.down('.'+this.$resizerCls,!0)).getWidth()};e.destroy()}return d},getEventWidget:function(d){var c=this.eventMap,e=d.id,b,a;for(b in c){a=c[b];if(a.getModel().id===e){return a}}return null},getMoveInterval:function(){return {unit:Ext.Date.DAY,amount:this.getVisibleDays()}},getSlotStyle:function(){var a=this,c=a.slotStyle,b;if(!c){b=Ext.fly(a.bodyTable.down('.'+a.$markerCls,!0)).getHeight();a.slotStyle=c={hourHeight:b,halfHeight:b/2,minSlotHeight:b/a.slotsPerHour}}return c},handleEventTap:function(b){var a=this.getEvent(b);if(a){b.preventDefault();this.onEventTap(a)}},handleResize:function(){var a=this;a.slotStyle=null;a.callParent();a.refreshEvents();a.checkNowMarker();a.syncHeaderScroll()},onAllDayTouchEnd:function(j){var b=this,a=Ext.Date,d=b.isAllDayCreating,f,g,c,e,h,i;if(d){f=d.initialIndex;g=Ext.calendar.util.Dom.getIndexPosition(d.positions,j.pageX);c=d.startDate;h=Math.abs(g-f);if(f>g){e=c;c=a.subtract(e,a.DAY,h)}else {e=a.add(c,a.DAY,h)}i=b.createModel({startDate:a.localToUtc(c),endDate:a.add(a.localToUtc(e),a.DAY,1),allDay:!0});b.showAddForm(i,{scope:b,onSave:b.clearSelected,onCancel:b.clearSelected});b.isAllDayCreating=null}},onAllDayTouchMove:function(e){var d=this,a=d.isAllDayCreating,b,c;if(!a){return}b=a.initialIndex;c=Ext.calendar.util.Dom.getIndexPosition(a.positions,e.pageX);d.selectRange(b,c)},onAllDayTouchStart:function(d){var a=this,e=Ext.Date,c,b,f=this.utcToLocal(a.dateInfo.full.start);if(d.pointerType==='touch'||d.getTarget('.'+a.$eventCls,a.headerWrap)){return}c=Ext.calendar.util.Dom.extractPositions(a.backgroundCells,'getX');b=Ext.calendar.util.Dom.getIndexPosition(c,d.pageX);a.isAllDayCreating={positions:c,initialIndex:b,startDate:e.add(f,e.DAY,b)};a.selectRange(b,b)},onBodyTouchEnd:function(h){var b=this,d=b.isBodyCreating,a,c,e,f,g;if(d){a=d.widget;if(a){f=a.getStartDate();g=a.getEndDate();c=function(){a.destroy()};e=b.createModel({startDate:f,endDate:g});b.showAddForm(e,{onSave:c,onCancel:c})}b.isBodyCreating=null}},onBodyTouchMove:function(n){var b=this,i=Ext.Date,e=b.isBodyCreating,k=b.minimumEventMinutes,l=b.getEventStyle().margin,h,a,c,d,f,j,g,m;if(!e){return}n.preventDefault();a=e.widget;if(!a){a=b.createEvent(null,{},!0);h=a.element;a.setPalette(b.getDefaultPalette());a.addCls(b.$resizingCls);a.setWidth('100%');h.setZIndex(999);b.getEventColumn(e.index).appendChild(h);e.widget=a}h=a.element;c=b.slotFromPosition(n.getY());if(c<0||c>b.maxSlots){return}d=e.startSlot;if(d===c){c=d+1}if(d>c){f=c;j=d}else {f=d;j=c}h.setStyle({top:l.top+b.slotToPosition(f)+'px',marginTop:0,marginBottom:0});a.setHeight((j-f)*b.getSlotStyle().halfHeight-l.bottom);g=i.clone(e.baseDate);g=i.add(g,i.MINUTE,f*k,!0);m=i.add(g,i.MINUTE,(j-f)*k,!0);a.setStartDate(g);a.setEndDate(m)},onBodyTouchStart:function(d){var a=this,e=Ext.Date,b,c,f;if(d.getTarget('.'+a.$eventCls,a.bodyTable)){return}b=d.getTarget('.'+a.$dayColumnCls);if(b){c=parseInt(b.getAttribute('data-index'),10);f=e.add(a.dateInfo.visible.start,e.DAY,c);a.isBodyCreating={col:b,index:c,baseDate:f,startSlot:a.slotFromPosition(d.getY())}}},onResizerDrag:function(g){if(!this.resizing){return}var c=this,f=Ext.Date,a=c.resizing,k=a.event,h=a.widget,i=c.getSlotStyle().halfHeight,b=c.slotFromPosition(g.getY()),m=b*i-a.eventTop,d=a.startSlot,l=k.getStartDate(),j=c.minimumEventMinutes,e;g.stopEvent();if(b<0||b>c.maxSlots||b<=d){return}a.current=e=f.add(l,f.MINUTE,j*(b-d),!0);h.setHeight(m);h.setEndDate(e)},onResizerDragEnd:function(){if(!this.resizing){return}var c=this,h=Ext.calendar.date.Range,a=c.resizing,f=a.current,b=a.widget,g=a.height,d=a.event,e=function(e){if(!b.destroyed){b.element.setZIndex(a.oldZIndex);b.removeCls(c.$resizingCls)}if(!e){b.setHeight(g);b.setEndDate(d.getEndDate())}};c.resizing=null;if(f){c.handleChange('resize',d,new h(d.getStartDate(),f),e)}else {e()}},onResizerDragStart:function(f){var a=this,d=a.getEvent(f),b,c,e;f.stopEvent();if(a.handleChangeStart('resize',d)!==!1){b=a.getEventWidget(d);c=b.element;e=c.getTop(!0);a.resizing={height:b.getHeight(),event:d,eventTop:e,startSlot:a.slotFromPosition(e,!0),widget:b,oldZIndex:c.getZIndex()};b.addCls(a.$resizingCls);c.setZIndex(999)}},onSourceAttach:function(){this.recalculate()},processDay:function(q,p){var b=this,l=q.events,r=l.length,k=b.getSlotStyle().minSlotHeight,j=b.getEventStyle(),m=j.margin,h=0,i=b.getDisplayOverlap(),f,a,g,n,o,e,d,c;if(b.getResizeEvents()){h=j.resizerWidth+5}for(f=0;f0){c.marginRight=h+'px'}g.setStyle(c);g.setHeight(a.len*k-m.bottom);p.appendChild(g.element.dom)}},recalculate:function(){var a=this.doRecalculate();this.dateInfo=a;this.setSourceRange(a.full)},refreshHeaders:function(){var a=this,b=a.getHeader(),c=a.dateInfo;if(b){b.setVisibleDays(a.getVisibleDays());if(c){b.setValue(a.utcToLocal(c.full.start))}}},roundDate:function(a){return new Date(Ext.Number.roundToNearest(a.getTime(),this.slotTicks))},selectRange:function(b,c){var d=this.backgroundCells,e=d.length,a;if(b>c){a=b;b=c;c=a}for(a=0;a=b&&a<=c)}},slotFromPosition:function(b,a){var c=b-(a?0:this.bodyTable.getY());return Math.round(c/this.getSlotStyle().halfHeight)},slotToPosition:function(a){return a*this.getSlotStyle().halfHeight},syncHeaderScroll:function(){var a=this,c=a.scrollable,d=a.headerScrollOffsetName,b;if(c){b=c.getScrollbarSize().width+'px';a.headerWrap.setStyle(d,b);a.allDayBackgroundWrap.setStyle(d,b)}},updateTimeLabels:function(){var b=this.generateTimeLabels(),d=this.timeContainer.dom.childNodes,c,a;for(a=0,c=b.length;aq){m=A-e}else {m=L.getDaysSpanned(k,v,w)}}B[h]=m;c.push({event:f,id:h})}else if(x){c.push({isPlaceholder:!0,event:f,id:h})}}}g=c.length;c.sort(b.sortEvents);if(I){j={};u[e]=i=[];i.$map=j;if(e>0){H=u[e-1].$map;for(a=0;a0){if(g>l){G=Math.max(0,l-C);s=Ext.Array.splice(c,G);for(a=0,E=s.length;a0&&i.length&&g===l){d=c.pop();i.push(d.event);j[d.id]=!0}}}r.push(c);z=n;D=y}if(p&&l>0){b.calculateOverflows(r,u)}for(e=0;e0){c.push({isEmpty:!0,len:a});a=0}c.push(b);d+=b.len}else {++a;++d}}if(a>0){c.push({isEmpty:!0,len:a})}return c},hasEvents:function(){return this.events.length>0},privates:{addToRow:function(j,e,k){var i=this,d=i.rows,l=d.length,f=k+e,a,b,c,h,g;for(b=0;b=0;--a){c=g[a];b=c.length;if(b>0&&d[a].length===0&&b===h){e=c[b-1];f=e.id;if(d[a+1].$map[f]){d[a].unshift(e.event);d[a].$map[f]=!0;c.length=b-1}}}},makeRow:function(){var b=[],c=this.days,a;for(a=0;am){c.push(a.$futureCls,a.$outsideCls)}}if(b.getFullYear()===u&&b.getMonth()===t&&b.getDate()===s){c.push(a.$todayCls);l=a.highlightToday;if(l){c.push(a.$todayCellHighlightCls+'-weeks-day')}}if(e%q>=p){c.push(a.$hiddenCellCls)}f.className=c.join(' ');f.setAttribute('data-date',d.format(b,a.domFormat));f.firstChild.firstChild.innerHTML=d.format(b,r);b=d.add(b,d.DAY,1)}a.refreshEvents()},doRefreshEvents:function(){var a=this,b=a.getEventSource();a.clearEvents();a.hideOverflowPopup();if(b&&b.getCount()){a.constructEvents()}},findIndex:function(c,b){var a=0,d=c.length;while(ac){e=c;c=b;b=e}b=a.getDateFromCell(d[b]);c=a.getDateFromCell(d[c]);a.fireEvent('selectrange',a,{range:new Ext.calendar.date.Range(b,c)})}a.maybeShowAddForm(b,c);a.isSelecting=!1}},onTouchMove:function(j){var b=this,a=b.selectedStartIndex,f=b.cells,i=f.length,e,d,c,g,h;if(b.isSelecting){g=b.getCellFromEvent(j,!0);d=Ext.Array.indexOf(f,g);if(d>a){e=d}else if(d=a&&c<=e)}}},onTouchStart:function(c,e){var a=this,d=a.element,b;if(c.getTarget('.'+a.$overflowCls,d)||c.getTarget('.'+a.$overflowPopupCls,d)){return}b=a.getCellFromEvent(c);if(b){a.isSelecting=!0;a.selectedStartIndex=a.selectedEndIndex=Ext.Array.indexOf(a.cells,b);Ext.fly(b).addCls(a.$selectionCls)}},positionEvent:function(e,b){var a=this,c=a.getDaySizes(),g=a.getEventStyle(),d=g.margin,h=c.widths,i=b.start,j=b.localIdx,k=b.weekIdx,f;f=c.headerHeight+g.height*j+(j+1)*d.height;e.setTop(a.positionSum(0,k,c.heights)+f);e.setLeft(a.positionSum(0,i,h)+d[a.startMarginName]);e.setWidth(a.positionSum(i,b.len,h)-d.width)},positionSum:function(b,f,d){var c=0,e=b+f,a;for(a=b;ad.end){b=d.end}a=c.getCell(i.clearTime(a,!0));b=c.getCell(i.clearTime(b,!0));if(a&&b){for(f=0;f=i){d=i-d}k=d+b.getDaysInMonth(a);h=Math.ceil(k/f)}e=f*h-(f-i);a=b.subtract(j,b.DAY,d);e=b.add(a,b.DAY,e);return {full:new g(a,e),visible:new g(a,e),active:new g(a,b.subtract(e,b.DAY,1)),month:new g(j,l),requiredWeeks:h}},doRefresh:function(){var a=this,b=a.$rowClasses,c=a.dateInfo.requiredWeeks;a.element.replaceCls(b,b[c-1-b.length]);a.callParent()},getMoveBaseValue:function(){return this.utcToLocal(this.dateInfo.month.start)},getMoveInterval:function(){return {unit:Ext.Date.MONTH,amount:1}},generateCells:function(){return this.callParent([this.maxWeeks,!1])},getNavigateValue:function(a){return a||a===0?a:1}}});Ext.define('Ext.calendar.panel.Month',{extend:'Ext.calendar.panel.Weeks',xtype:'calendar-month',requires:['Ext.calendar.view.Month'],config:{view:{xtype:'calendar-monthview'}},autoSize:!1,nextMonth:function(a){this.getView().nextMonth(a)},nextYear:function(a){this.getView().nextYear(a)},previousMonth:function(a){this.getView().previousMonth(a)},previousYear:function(a){this.getView().previousYears(a)},updateHighlightToday:function(d){var b=this.getView(),e=b.getHeader(),a,c;c=Ext.Date.format(new Date(),e.domFormat);a=b.element.selectNode('td[data-date="'+c+'"]',!1);if(a){a.toggleCls(b.$todayCellHighlightCls+'-weeks-day',d)}}});Ext.define('Ext.calendar.panel.AbstractPanel',{extend:'Ext.panel.Panel',requires:['Ext.layout.container.Border','Ext.button.Segmented','Ext.toolbar.Toolbar'],layout:'border',config:{createButton:{ui:'default-small'},sideBar:{region:'west',collapsible:!0}},items:[{xtype:'panel',reference:'mainContainer',region:'center',layout:'fit'}],initComponent:function(){var a=this,b;a.callParent();b=a.lookup('mainContainer');a.addSideBar({collapsed:a.getCompact()});a.addTitleBar();b.add(a.createView());a.refreshCalTitle()},onRender:function(b,a){this.callParent([b,a]);this.body.unselectable()},updateCompact:function(a){if(!this.isConfiguring){this.reconfigureItems()}},updateCreateButtonPosition:function(){var a=this,b=a.sheet,c;if(!a.isConfiguring){c=b&&b.isVisible();a.reconfigureItems();if(c){a.showSheet()}}},updateSwitcherPosition:function(){var a=this,b=a.sheet,c;if(!a.isConfiguring){c=b&&b.isVisible();a.reconfigureItems();if(c){a.showSheet()}}},privates:{addSideBar:function(){var a=this.createSideBar();if(a){this.add(a)}},addTitleBar:function(){var a=this.createTitleBar();if(a){this.lookup('mainContainer').addDocked(a)}},createSideBar:function(c){var a=this,b=[];if(a.getCreateButtonPosition()==='sideBar'){b.push({xtype:'container',margin:'0 0 10 0',layout:{type:'hbox',pack:'center'},items:a.createCreateButton()})}b.push(a.createCalendarList());if(a.getSwitcherPosition()==='sideBar'){b.push(a.createSwitcher({vertical:!0}))}c=Ext.merge({reference:'sideBar',layout:{type:'vbox',align:'stretch'}},c);return this.createContainerWithChildren(c,this.getSideBar(),b)},createTitleBar:function(){var a=this,b=[];if(a.getCreateButtonPosition()==='titleBar'){b.push(a.createCreateButton({margin:'0 10 0 0'}))}b.push(a.createTodayButton(),{xtype:'segmentedbutton',allowToggle:!1,items:[a.createPreviousButton(),a.createNextButton()]},a.createDateTitle());if(a.getSwitcherPosition()==='titleBar'){b.push({xtype:'component',flex:1},a.createSwitcher())}return this.createContainerWithChildren({reference:'titleBar'},this.getTitleBar(),b)},onSwitcherChange:function(b,a){this.doSetView(a,!0)},reconfigureItems:function(){var a=this;Ext.suspendLayouts();Ext.destroy(a.lookup('titleBar'),a.lookup('sideBar'));a.addTitleBar();a.addSideBar({collapsed:a.getCompact()});a.refreshCalTitle();Ext.resumeLayouts(!0)},setSwitcherValue:function(b){var a=this.lookup('switcher');if(a){a.setValue(b)}else {this.setView(b,!0)}}}});Ext.define('Ext.calendar.view.Week',{extend:'Ext.calendar.view.Days',xtype:'calendar-weekview',config:{firstDayOfWeek:undefined,visibleDays:7},applyFirstDayOfWeek:function(a){if(typeof a!=='number'){a=Ext.Date.firstDayOfWeek}return a},updateFirstDayOfWeek:function(){var a=this;if(!a.isConfiguring){a.recalculate();a.refreshHeaders();a.checkNowMarker()}},privates:{doRecalculate:function(a){var c=this,b=Ext.Date,e=Ext.calendar.date.Range,g=b.DAYS_IN_WEEK,f,h,d;a=a||c.getValue();a=b.clearTime(a,!0);f=(a.getDay()+g-c.getFirstDayOfWeek())%g;a=c.toUtcOffset(a);a=b.subtract(a,b.DAY,f);d=b.add(a,b.DAY,c.getVisibleDays());h=b.subtract(d,b.DAY,1);return {full:new e(a,d),active:new e(a,h),visible:new e(b.add(a,b.HOUR,c.getStartTime(),!0),b.subtract(d,b.HOUR,24-c.getEndTime(),!0))}},getMoveBaseValue:function(){return this.utcToLocal(this.dateInfo.full.start)},getMoveInterval:function(){var a=Ext.Date;return {unit:a.DAY,amount:a.DAYS_IN_WEEK}}}});Ext.define('Ext.calendar.panel.Week',{extend:'Ext.calendar.panel.Days',xtype:'calendar-week',requires:['Ext.calendar.view.Week'],config:{view:{xtype:'calendar-weekview'}},configExtractor:{view:{firstDayOfWeek:!0}},$todayCellHighlightCls:Ext.baseCSSPrefix+'today-cell-highlight',updateDayHeader:function(b,a){this.callParent(arguments);this.updateHighlightToday(this.extracted.view.highlightToday)},updateHighlightToday:function(d){var e=this.getView(),c=e.getHeader(),a,b;b=Ext.Date.format(new Date(),c.domFormat);a=c.element.selectNode('td[data-date="'+b+'"]',!1);if(a){a.toggleCls(this.$todayCellHighlightCls+'-day',d)}}});Ext.define('Ext.calendar.view.Multi',{extend:'Ext.container.Container',xtype:'calendar-multiview',requires:['Ext.calendar.date.Util'],layout:'fit',platformConfig:{'!desktop':{compact:!0}},config:{compact:!1,compactOptions:null,store:null,timezoneOffset:undefined,value:undefined,views:null},defaultView:null,constructor:function(b){var a;this.callParent([b]);a=this.defaultView;if(a){this.setView(a)}},moveNext:function(){this.setValue(this.activeView.calculateMoveNext())},movePrevious:function(){this.setValue(this.activeView.calculateMovePrevious())},navigate:function(a,c){var b=Ext.Date;if(a!==0){this.setValue(b.add(this.getValue(),c||b.DAY,a,!0))}},setView:function(c){var a=this,b=a.activeView,d;if(b&&b.$key===c){return}Ext.suspendLayouts();if(b){a.remove(b)}d=a.getViews()[c];d.highlightToday=a.highlightToday;a.activeView=a.add(a.createView(d,c));a.activeView.on('valuechange','onValueChange',a);a.recalculate(a.getValue());Ext.resumeLayouts(!0)},updateHighlightToday:function(a){this.highlightToday=a;this.getActiveItem().updateHighlightToday(a)},updateCompact:function(a){this.setViewCfg('setCompact',a)},applyStore:function(a){if(a){a=Ext.StoreManager.lookup(a,'calendar-calendars')}return a},updateStore:function(b){var a=this;a.setViewCfg('setStore',b);if(!a.isConfiguring){a.recalculate(a.getValue())}},applyTimezoneOffset:function(a){this.autoOffset=!1;if(a===undefined){a=Ext.calendar.date.Util.getDefaultTimezoneOffset();this.autoOffset=!0}return a},updateTimezoneOffset:function(a){this.setViewCfg('setTimezoneOffset',a)},applyValue:function(a,b){a=Ext.Date.clearTime(a||Ext.calendar.date.Util.getLocalNow(),!0);if(b&&b.getTime()===a.getTime()){a=undefined}return a},updateValue:function(a){if(!this.isConfiguring){this.recalculate(a)}},showAddForm:function(b,a){return this.activeView.showAddForm(b,a)},showEditForm:function(b,a){return this.activeView.showEditForm(b,a)},privates:{createView:function(b,c){var a=this;return Ext.apply({$key:c,controlStoreRange:!1,compact:a.getCompact(),store:a.getStore(),timezoneOffset:a.autoOffset?undefined:a.getTimezoneOffset(),value:a.getValue()},b)},getActiveKey:function(){var a=this.activeView;return a?a.$key:''},onValueChange:function(b,a){this.setValue(a.value);this.fireEvent('valuechange',this,a)},recalculate:function(e){var a=this.activeView,d=this.getStore(),c,b;if(a&&d){b=d.getEventSource();c=Ext.calendar.date.Util.expandRange(a.getView().doRecalculate(e).full);b.setRange(c);a.setValue(e)}},setViewCfg:function(b,c){var a;if(!this.isConfiguring){a=this.activeView;if(a){a[b](c)}}}}});Ext.define('Ext.calendar.panel.Panel',{extend:'Ext.calendar.panel.AbstractPanel',xtype:'calendar',mixins:['Ext.mixin.ConfigState'],alternateStateConfig:'compactOptions',requires:['Ext.calendar.panel.Day','Ext.calendar.panel.Week','Ext.calendar.panel.Month','Ext.calendar.List','Ext.calendar.view.Multi','Ext.calendar.date.Util'],referenceHolder:!0,platformConfig:{'!desktop':{compact:!0}},config:{calendarList:{xtype:'calendar-list',reference:'list',flex:1},compact:!1,compactOptions:{},createButton:{xtype:'button',cls:Ext.baseCSSPrefix+'calendar-panel-create-button',text:'Create'},createButtonPosition:'sideBar',dateTitle:{xtype:'component',reference:'calTitle',cls:Ext.baseCSSPrefix+'calendar-panel-title',margin:'0 0 0 10'},highlightToday:!0,nextButton:{xtype:'button',text:'>'},previousButton:{xtype:'button',text:'<'},sideBar:{xtype:'panel',cls:Ext.baseCSSPrefix+'calendar-sidebar'},store:null,switcher:{xtype:'segmentedbutton',reference:'switcher',cls:Ext.baseCSSPrefix+'calendar-panel-switcher',allowMultiple:!1},switcherPosition:'titleBar',timezoneOffset:undefined,titleBar:{xtype:'toolbar'},todayButton:{xtype:'button',text:'Today',margin:'0 10 0 0'},value:undefined,views:{day:{xtype:'calendar-day',titleTpl:'{start:date("l F d, Y")}',controlStoreRange:!1,label:'Day',weight:10,dayHeader:null},week:{xtype:'calendar-week',dayHeaderFormat:'D d',controlStoreRange:!1,titleTpl:'{start:date("j M")} - {end:date("j M Y")}',label:'Week',weight:20},month:{xtype:'calendar-month',titleTpl:'{start:date("F Y")}',label:'Month',weight:30}}},defaultView:'month',cls:Ext.baseCSSPrefix+'calendar-panel',moveNext:function(){this.getView().moveNext()},movePrevious:function(){this.getView().movePrevious()},navigate:function(b,a){this.getView().navigate(b,a)},setView:function(a){this.doSetView(a)},updateCompact:function(a,c){var b=this;b.toggleCls(Ext.baseCSSPrefix+'compact',a);b.toggleConfigState(a);b.callParent([a,c]);b.setViewCfg('setCompact',a)},updateCompactOptions:function(){if(!this.isConfiguring&&this.getCompact()){this.toggleConfigState(!0)}},applyStore:function(a){if(a){a=Ext.StoreManager.lookup(a,'calendar-calendars')}return a},updateStore:function(a){var b=this.lookup('list');this.setViewCfg('setStore',a);if(b){b.setStore(a)}},applyTimezoneOffset:function(a){this.autoOffset=!1;if(a===undefined){a=Ext.calendar.date.Util.getDefaultTimezoneOffset();this.autoOffset=!0}return a},updateTimezoneOffset:function(a){this.setViewCfg('setTimezoneOffset',a)},applyValue:function(a,b){a=Ext.Date.clearTime(a||Ext.calendar.date.Util.getLocalNow(),!0);if(b&&b.getTime()===a.getTime()){a=undefined}return a},updateValue:function(a){this.setViewCfg('setValue',a);this.refreshCalTitle()},getValue:function(){var a=this.getView();return a?a.getValue():this.callParent()},getView:function(){return this.lookup('view')},privates:{weightStart:0,weightIncrement:10,createCalendarList:function(a){return Ext.apply({store:this.getStore()},this.getCalendarList())},createCreateButton:function(a){a=a||{};a=Ext.apply(a,this.getCreateButton());return Ext.apply({handler:'onCreateTap',scope:this},a)},createContainerWithChildren:function(i,b,a){b=Ext.apply({},b);var f=this,c=b.items,g=f.weightStart,j=f.weightIncrement,h,d,e;if(c){if(!Ext.isArray(c)){c=[c]}a=Ext.Array.clone(a);for(d=0,h=a.length;d