@mescius/wijmo
Version:
UI library for pure JS, Angular, React, Vue and more...
14 lines (13 loc) • 127 kB
JavaScript
/*!
*
* Wijmo Library 5.20251.34
* https://developer.mescius.com/wijmo
*
* Copyright(c) MESCIUS inc. All rights reserved.
*
* Licensed under the End-User License Agreement For MESCIUS Wijmo Software.
* us.sales@mescius.com
* https://developer.mescius.com/wijmo/licensing
*
*/
import*as selfModule from"@mescius/wijmo";export class Binding{constructor(t){this.path=t}get path(){return this._path}set path(t){this._path=t;this._parts=t?t.split("."):[];for(let t=0;t<this._parts.length;t++){let e=this._parts[t],i=e.indexOf("[");if(i>-1){this._parts[t]=e.substr(0,i);this._parts.splice(++t,0,parseInt(e.substr(i+1)))}}this._key=1==this._parts.length?this._parts[0]:null}getValue(t){if(t){if(this._key)return t[this._key];if(this._path&&this._path in t)return t[this._path];for(let e=0;e<this._parts.length&&t;e++)t=t[this._parts[e]]}return t}setValue(t,e){if(t)try{let i=this._path;if(i in t){t[i]=e;return t[i]==e}for(let e=0;e<this._parts.length-1;e++)if(null==(t=t[this._parts[e]]))return!1;t[i=this._parts[this._parts.length-1]]=e;return t[i]==e}catch(t){return!1}return!1}}class EventHandler{constructor(t,e){this.handler=t;this.self=e}}export class Event{constructor(t){this._handlers=[];this._handlersChanged=t}addHandler(t,e){t=asFunction(t);this._handlers.push(new EventHandler(t,e));isFunction(this._handlersChanged)&&this._handlersChanged()}getHandler(t=0){const e=this._handlers[t];if(e)return e.handler}removeHandler(t,e){let i=!1;t=asFunction(t);for(let s=0;s<this._handlers.length;s++){let n=this._handlers[s];if(!(n.handler!=t&&null!=t||n.self!=e&&null!=e)){this._handlers.splice(s--,1);i=!0;if(t&&e)break}}i&&isFunction(this._handlersChanged)&&this._handlersChanged()}removeAllHandlers(){let t=this._handlers.length>0;this._handlers.length=0;t&&isFunction(this._handlersChanged)&&this._handlersChanged()}raise(t,e=EventArgs.empty){let i=this._handlers;for(let s=0;s<i.length;s++){let n=i[s];n.handler.call(n.self,t,e);i[s]!==n&&s--}}get hasHandlers(){return this._handlers.length>0}get handlerCount(){return this._handlers.length}}export class EventArgs{}EventArgs.empty=new EventArgs;export class CancelEventArgs extends EventArgs{constructor(){super(...arguments);this.cancel=!1}}export class PropertyChangedEventArgs extends EventArgs{constructor(t,e,i){super();this._name=t;this._oldVal=e;this._newVal=i}get propertyName(){return this._name}get oldValue(){return this._oldVal}get newValue(){return this._newVal}}export class RequestErrorEventArgs extends CancelEventArgs{constructor(t,e){super();this._xhr=t;this._msg=e}get request(){return this._xhr}get message(){return this._msg}set message(t){this._msg=t}}export var NotifyCollectionChangedAction;!function(t){t[t.Add=0]="Add";t[t.Remove=1]="Remove";t[t.Change=2]="Change";t[t.Reset=3]="Reset"}(NotifyCollectionChangedAction||(NotifyCollectionChangedAction={}));export class NotifyCollectionChangedEventArgs extends EventArgs{constructor(t=NotifyCollectionChangedAction.Reset,e=null,i=-1){super();this.action=t;this.item=e;this.index=i}}NotifyCollectionChangedEventArgs.reset=new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset);export class SortDescription{constructor(t,e){this._bnd=new Binding(t);this._asc=e}get property(){return this._bnd.path}get ascending(){return this._asc}}export class PageChangingEventArgs extends CancelEventArgs{constructor(t){super();this.newPageIndex=t}}export class GroupDescription{groupNameFromItem(t,e){return""}namesMatch(t,e){return t===e}}export class PropertyGroupDescription extends GroupDescription{constructor(t,e){super();this._bnd=new Binding(t);this._converter=e}get propertyName(){return this._bnd.path}groupNameFromItem(t,e){return this._converter?this._converter(t,this.propertyName):this._bnd.getValue(t)}namesMatch(t,e){return t===e}}export const empty={};export const ClipboardClsNames={clipboard:"wj-clipboard"};export const ControlClsNames={content:"wj-content",hostElement:"wj-control",template:"wj-template"};export const ControlStateClsNames={active:"wj-state-active",checked:"wj-state-checked",collapsed:"wj-state-collapsed",collapsing:"wj-state-collapsing",disabled:"wj-state-disabled",dragSrc:"wj-state-dragsrc",empty:"wj-state-empty",focus:"wj-state-focus",focused:"wj-state-focused",invalid:"wj-state-invalid",lastSelected:"wj-state-last-selected",loading:"wj-state-loading",match:"wj-state-match",measuring:"wj-state-measuring",multiSelected:"wj-state-multi-selected",pinned:"wj-state-pinned",readOnly:"wj-state-readonly",selected:"wj-state-selected",sticky:"wj-state-sticky",updating:"wj-state-updating"};export const GlyphClsNames={backward:"wj-glyph-backward",btnGlyph:"wj-btn-glyph",calendar:"wj-glyph-calendar",circle:"wj-glyph-circle",clock:"wj-glyph-clock",down:"wj-glyph-down",downLeft:"wj-glyph-down-left",drag:"wj-glyph-drag",file:"wj-glyph-file",filter:"wj-glyph-filter",forward:"wj-glyph-forward",glyph:"wj-glyph",left:"wj-glyph-left",minus:"wj-glyph-minus",plus:"wj-glyph-plus",right:"wj-glyph-right",stepBackward:"wj-glyph-step-backward",stepForward:"wj-glyph-step-forward",up:"wj-glyph-up"};export const InputFormElementsClsNames={btn:"wj-btn",btnDefault:"wj-btn-default",btnGroup:"wj-btn-group",btnGroupVertical:"wj-btn-group-vertical",btnsOutside:"wj-btns-outside",formControl:"wj-form-control",svgBtn:"wj-svg-btn"};export const PrintDocumentClsNames={printDocument:"wj-printdocument"};export const TooltipClsNames={hostElement:"wj-tooltip"};export const UtilitesClsNames={align:"wj-align",alignVCenter:"wj-align-vcenter",animated:"wj-animated",centerVert:"wj-center-vert",close:"wj-close",hide:"wj-hide",hideOk:"wj-hide-ok",remove:"wj-remove",right:"wj-right",rtl:"wj-rtl",separator:"wj-separator"};export const ForeignClsNames={InputClsNames:{input:"wj-input",inputBtnVisible:"wj-input-btn-visible",inputGroup:"wj-input-group",inputGroupBtn:"wj-input-group-btn"},SelectorClsNames:{columnSelector:"wj-column-selector",columnSelectorGroup:"wj-column-selector-group"}};const _agent="undefined"!=typeof navigator?navigator.userAgent:"",_isMobile=null!=_agent.match(/iPad|iPhone|iPod|Android|webOS|BlackBerry|Windows Phone/i);export function isMobile(){return _isMobile}const _isiOS=null!=_agent.match(/iPad|iPhone|iPod/i);export function isiOS(){return _isiOS}const _isFF=null!=_agent.match(/Firefox\//);export function isFirefox(){return _isFF}const _isSafari=null!=_agent.match(/^((?!Chrome|Android).)*safari/i);export function isSafari(){return _isSafari}const _isEdge=null!=_agent.match(/Edge\/|Edg\//);export function isEdge(){return _isEdge}const _isIE=null!=_agent.match(/MSIE |Trident\/|Edge\//);export function isIE(){return _isIE}let _isIE9=!1;export function isIE9(){return _isIE9}let _isIE10=!1;export function isIE10(){return _isIE10}let _isChromiumBased=null;export function isChromiumBased(){if(null!=_isChromiumBased)return _isChromiumBased;{_isChromiumBased=!1;const t="undefined"!=typeof navigator?navigator.userAgentData:null;if(t&&t.brands)for(let e of t.brands)if("Chromium"==e.brand){_isChromiumBased=!0;break}return _isChromiumBased}}let _supportsPassive=!1;"undefined"!=typeof document&&document.addEventListener("test",t=>{},{get passive(){_supportsPassive=!0;return!0}});export function getEventOptions(t,e){return _supportsPassive?{capture:t,passive:e}:t}var _supportsFocusOptions=!1;"undefined"!=typeof document&&document.createElement("div").focus({get preventScroll(){_supportsFocusOptions=!0;return!0}});export function supportsFocusOptions(){return _supportsFocusOptions}export function _startDrag(t,e){t.effectAllowed=e;isFirefox()&&t.setData("text","")}if("undefined"!=typeof document&&document.doctype){navigator.appVersion.indexOf("MSIE 10")>-1&&(_isIE10=!0);if(navigator.appVersion.indexOf("MSIE 9")>-1){_isIE9=!0;document.addEventListener("mousemove",t=>{if(1==t.which){let e=closest(t.target,`.${ControlClsNames.hostElement}`);if(e&&!e.style.cursor)for(let e=t.target;e;e=e.parentElement)if(e.attributes&&e.attributes.draggable){e.dragDrop();return!1}}})}}if("undefined"!=typeof window){let t="requestAnimationFrame",e="cancelAnimationFrame";if(!window[t]){let i=0;window[t]=t=>{let e=Date.now(),s=16-(e-i),n=s>0?s:0;i=e+n;return setTimeout(()=>{t(i)},n)};window[e]=clearTimeout}if(!window.atob){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e=new RegExp("[^"+t+"]");window.atob=i=>{let s,n,r,o,l=[],a=0,h=i.length;if(e.test(i)||/=/.test(i)&&(/=[^=]/.test(i)||/={3}/.test(i)))throw new Error("Invalid base64 data");h%4>0&&(h=(i+=Array(4-h%4+1).join("=")).length);for(;a<h;){for(n=[],o=a;a<o+4;)n.push(t.indexOf(i.charAt(a++)));r=[((s=(n[0]<<18)+(n[1]<<12)+((63&n[2])<<6)+(63&n[3]))&255<<16)>>16,64===n[2]?-1:(65280&s)>>8,64===n[3]?-1:255&s];for(o=0;o<3;++o)(r[o]>=0||0===o)&&l.push(String.fromCharCode(r[o]))}return l.join("")};window.btoa=e=>{let i,s,n=[],r=0,o=e.length;for(;r<o;){i=((s=[e.charCodeAt(r++),e.charCodeAt(r++),e.charCodeAt(r++)])[0]<<16)+((s[1]||0)<<8)+(s[2]||0);n.push(t.charAt((i&63<<18)>>18),t.charAt((258048&i)>>12),t.charAt(isNaN(s[1])?64:(4032&i)>>6),t.charAt(isNaN(s[2])?64:63&i))}return n.join("")}}}export class _FocusService{constructor(){this._hasDoc="undefined"!=typeof Document;this._ae=this._nativeAe();let t=window,e=this._onBlur.bind(this),i=this._onFocus.bind(this);t.addEventListener("focusout",e,!0);t.addEventListener("focusin",i,!0);if(!isIE()){t.addEventListener("blur",e,!0);t.addEventListener("focus",i,!0)}}get activeElement(){let t=this._ae,e=this._nativeAe();t===_FocusService._noAe?t=this._ae=e:t!=e&&(this._isSpecialRoot(t)||document.body.contains(t)||(t=this._ae=e));return t!==_FocusService._noAe?t:null}_onBlur(t){if(t.isTrusted){let e=t.relatedTarget;this._ae=this._isSpecialRoot(e)?this._nativeAe():e}}_onFocus(t){t.isTrusted&&(this._ae=this._nativeAe())}_isSpecialRoot(t){return null==t||t===document.body||this._hasDoc&&t instanceof Document}_nativeAe(){let t;try{t="unknown"!=typeof document.activeElement?document.activeElement:_FocusService._noAe}catch(e){t=_FocusService._noAe}return t}dispose(){if(!isIE()){window.removeEventListener("blur",this._onBlur,!0);window.removeEventListener("focus",this._onFocus,!0)}window.removeEventListener("focusout",this._onBlur,!0);window.removeEventListener("focusin",this._onFocus,!0)}}_FocusService._noAe={};const _getProxyTarget="undefined"!=typeof window&&window.Symbol?Symbol("_getProxyTarget"):"\t_get\tProxy\tTarget\t";export function _getCalculatedArray(t,e,i){let s=new WeakMap;if(!i){let e={};if(t.length){let s=t[0];for(let t in s){let i=typeof s[t];e[t]="string"==i?"":"number"==i?0:null}i=e}}return new Proxy(t,{get(t,n){if(n===_getProxyTarget)return t;if("string"==typeof n||"number"==typeof n){if("indexOf"==n)return(e,i)=>{let s=t.indexOf(e,i);s<0&&e&&(e=e[_getProxyTarget])&&(s=t.indexOf(e,i));return s};let r=parseInt(n);if(!isNaN(r)){let n=t[r];if(n&&!n[_getProxyTarget]){let t=s.get(n);if(!t){t=_createItemProxy(n,e,i);s.set(n,t)}n=t}return n}}return Reflect.get(t,n)}})}function _createItemProxy(t,e,i){if(!t[_getProxyTarget]){if(isIE())for(let i in e)t[i]=null;let s={get:(t,s,n)=>{if(s===_getProxyTarget)return t;if("constructor"===s)return()=>Object.assign({},i||{});let r=e[s];if(r)switch(typeof r){case"function":return r(n);case"string":return _eval(r,n)}return t[s]}};if(!isIE()){s.ownKeys=t=>Object.keys(t).concat(Object.keys(e));s.getOwnPropertyDescriptor=(t,i)=>i in e?{enumerable:!0,configurable:!0,writable:!1}:Reflect.getOwnPropertyDescriptor(t,i)}t=new Proxy(t,s)}return t}export function _getTargetObject(t){return(t?t[_getProxyTarget]:null)||t}function _eval(t,e){let i=[e];return new Function(...["$"],"return "+t)(...i)}var _VERSION="5.20251.34";export const _CLS_STATE_DISABLED=ControlStateClsNames.disabled;export function getVersion(){return _VERSION}export function setLicenseKey(t){Control._licKey=t}export var Key;!function(t){t[t.Back=8]="Back";t[t.Tab=9]="Tab";t[t.Enter=13]="Enter";t[t.Escape=27]="Escape";t[t.Space=32]="Space";t[t.PageUp=33]="PageUp";t[t.PageDown=34]="PageDown";t[t.End=35]="End";t[t.Home=36]="Home";t[t.Left=37]="Left";t[t.Up=38]="Up";t[t.Right=39]="Right";t[t.Down=40]="Down";t[t.Delete=46]="Delete";t[t.X=88]="X";t[t.F1=112]="F1";t[t.F2=113]="F2";t[t.F3=114]="F3";t[t.F4=115]="F4";t[t.F5=116]="F5";t[t.F6=117]="F6";t[t.F7=118]="F7";t[t.F8=119]="F8";t[t.F9=120]="F9";t[t.F10=121]="F10";t[t.F11=122]="F11";t[t.F12=123]="F12"}(Key||(Key={}));export var DataType;!function(t){t[t.Object=0]="Object";t[t.String=1]="String";t[t.Number=2]="Number";t[t.Boolean=3]="Boolean";t[t.Date=4]="Date";t[t.Array=5]="Array"}(DataType||(DataType={}));export function tryCast(t,e){return null==t?null:isString(e)?isFunction(t.implementsInterface)&&t.implementsInterface(e)?t:null:t instanceof e?t:null}export function isPrimitive(t){return isString(t)||isNumber(t)||isBoolean(t)||isDate(t)}export function isString(t){return"string"==typeof t}export function isNullOrWhiteSpace(t){return!t||!/\S/.test(t)}export function isNumber(t){return"number"==typeof t}export function isInt(t){return isNumber(t)&&t==Math.round(t)}export function isBoolean(t){return"boolean"==typeof t}export function isFunction(t){return"function"==typeof t}export function isUndefined(t){return void 0===t}export function isDate(t){return(t instanceof Date||"[object Date]"===Object.prototype.toString.call(t))&&!isNaN(t.getTime())}export function isArray(t){return t instanceof Array||Array.isArray(t)||"[object Array]"===Object.prototype.toString.call(t)}export function isObject(t){return null!=t&&"object"==typeof t&&!isDate(t)&&!isArray(t)}export function isEmpty(t){for(var e in t)return!1;return!0}export function _areObjectsEqual(t,e){const i=Object.entries(t),s=Object.entries(e);if(i.length!==s.length)return!1;for(const[t,s]of i)if(!e.hasOwnProperty(t)||e[t]!==s)return!1;return!0}export function getUniqueId(t){let e=t;for(let i=0;null!=document.getElementById(e);i++)e=t+i;return e}export function uidGenerator(){for(var t="",e="0123456789abcdef".split(""),i=0;i<32;i++){var s=Math.floor(16*Math.random());switch(i){case 8:t+="-";break;case 12:s=4;t+="-";break;case 16:s=3&s|8;t+="-";break;case 20:t+="-"}t+=e[s]}return t}export function mouseToPage(t){if(t instanceof Point)return t;t&&t.touches&&t.touches.length>0&&(t=t.touches[0]);if(isNumber(t.clientX)&&isNumber(t.clientY))return new Point(t.clientX+pageXOffset,t.clientY+pageYOffset);throw"Mouse or touch event expected."}export function getType(t){return isNumber(t)?DataType.Number:isBoolean(t)?DataType.Boolean:isDate(t)?DataType.Date:isString(t)?DataType.String:isArray(t)?DataType.Array:DataType.Object}export function getTypes(t,e=1e3){if(!t)return[];const i=t.length;(e<=0||i<e)&&(e=i);const s=[];if(e){const i=Object.keys(t[0]),n={},r=[...i];for(let i=0;i<e;i++){const e=t[i];for(let s=r.length-1;s>=0;s--){const o=r[s],l=e[o];if(isPrimitive(l)){let e=Object.getOwnPropertyDescriptor(t[i],o);n[o]={binding:o,dataType:getType(l),isReadOnly:e&&!e.writable&&!e.set};r.splice(s,1)}}if(!r.length)break}for(let t=0;t<i.length;t++){const e=n[i[t]];e&&s.push(e)}}return s}export function changeType(t,e,i,s){if(null!=t){let n=DataType;if(isString(t))switch(e){case n.Number:let e=Globalize.parseFloat(t,i);return isNaN(e)?t:e;case n.Date:let r=Globalize.parseDate(t,i,isDate(s)?s:null);r||i||!t||(r=new Date(t));return r&&isFinite(r.getTime())?r:t;case n.Boolean:switch(t.toLowerCase()){case"true":return!0;case"false":return!1}return t;case n.Array:try{let e=t.split(",").map(t=>(t=t.trim()).match(/^(\+|\-)?\d+\.?\d*$/)?t:'"'+t+'"');return JSON.parse("["+e.join(",")+"]")}catch(t){}}if(e==DataType.String)return Globalize.format(t,i)}return t}export function toFixed(t,e,i){if(i){let i=t.toString(),s=i.indexOf("e"),n=i.indexOf(".");if(s>-1){if("-"===i[s+1]){let r=parseFloat(i.substr(s+2)),o=i.substr(0,s);n>-1&&(o=o.substr(0,n)+o.substr(n+1));i="0."+(Array(r).join("0")+o).substr(0,e);t=parseFloat(i)}}else if(n>-1){i=i.substr(0,n+1+e);t=parseFloat(i)}}else{let i=Math.pow(10,e);t=Math.round(t*i)/i}return t}export function format(t,e,i){if((t=asString(t)).match(/\{.*"count".*:.*"when".*:.*\}/))try{let i=JSON.parse(t);if(isString(i.count)){let s=e[i.count],n=i.when;if(isNumber(s)&&isObject(n)){let e=n[s]||n.other;isString(e)&&(t=e)}}}catch(t){}return t.replace(/\{(.*?)(:(.*?))?\}/g,(t,s,n,r)=>{let o=t;if(s&&"{"!=s[0]&&e){o=new Binding(s).getValue(e);r&&(o=Globalize.format(o,r));i&&(o=i(e,s,r,o))}return null==o?"":o})}export function glbz(...t){let e=[],i=-1;t[0].forEach((s,n)=>{if(n>0&&n!=i){let r=t[n],o=s.match(/^:([a-z][0-9]*\b)/i)||s.match(/^:'(.+?)'/)||s.match(/^:"(.+?)"/);if(o){r=Globalize.format(r,o[1]);s=s.substr(o[0].length)}else if(":"==s&&n<t.length-1&&(isNumber(r)||isDate(r))){r=Globalize.format(r,t[n+1]);s="";i=n+1}e.push(r)}s&&e.push(s)});return e.join("")}export function evalTemplate(t,e){if(isIE()){let i=/:\${([^}]*)}/g,s=/\${([^}]*)}(:(([A-Za-z]\d*)|"([^"]+)"|'([^']+)'))?/g;return(t=t.replace(i,(t,i)=>":"+_evalExpression(i,e))).replace(s,(t,i,s,n,r,o,l)=>{let a=_evalExpression(i,e);return n?Globalize.format(a,r||o||l):a})}return _evalExpression(t,e)}function _evalExpression(t,e){(e=e||{}).glbz=glbz;const i=parseTpl(t,e);return isIE()?i:glbz`${i}`}function get(t,e,i=`\${${t}}`){return t.split(".").reduce((t,e)=>null!=t&&null!=t[e]?t[e]:i,e)}function parseTpl(t,e,i){return t.replace(/\$\{.+?}/g,t=>{return get(t.substr(2,t.length-3).trim(),e,i)})}export function clamp(t,e,i){if(null!=t){null!=i&&t>i&&(t=i);null!=e&&t<e&&(t=e)}return t}export function copy(t,e,i=!0,s=!1){if(e)for(let n in e)if("_"!=n[0]){assert(n in t,'Unknown property "'+n+'".');let r=e[n];if(!t._copy||!t._copy(n,r)){const e=t[n];t[n]instanceof Event?isFunction(r)&&t[n].addHandler(r):!i||!isObject(r)||"undefined"!=typeof Element&&r instanceof Element||!e||!isObject(e)||Object.getPrototypeOf(e).constructor==Object.prototype.constructor&&isWritable(t,n)||"itemsSource"==n?s&&isObject(r)&&Object.getPrototypeOf(r).isPrototypeOf(Object)&&isObject(e)&&!Object.getPrototypeOf(e).isPrototypeOf(Object)?copy(e,r):t[n]=r:copy(e,r)}}return t}export function isWritable(t,e){const i=Object.getOwnPropertyDescriptor(t,e)||Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),e)||{};return!!i.writable||isFunction(i.set)}export function deepClone(t){if(null===t||"object"!=typeof t)return t;if(Array.isArray(t)){return t.map(t=>deepClone(t))}const e={};for(const i in t)t.hasOwnProperty(i)&&(e[i]=deepClone(t[i]));return e}export function assert(t,e,i=!0){if(!t){e="** Assertion failed in Wijmo: "+e;let t=new Error;isString(t.stack)&&i&&(e+=" "+t.stack);throw e}}export function _deprecated(t,e){console.error('** WARNING: "'+t+'" has been deprecated; please use "'+e+'" instead.')}export function _warning(t){console.error('** WARNING: "'+t)}export function asString(t,e=!0){isUndefined(t)&&(t=null);assert(e&&null==t||isString(t),"String expected.");return t}export function asNumber(t,e=!1,i=!1){assert(e&&null==t||isNumber(t),"Number expected.");if(i&&t&&t<0)throw"Positive number expected.";return t}export function asInt(t,e=!1,i=!1){assert(e&&null==t||isInt(t),"Integer expected.");if(i&&t&&t<0)throw"Positive integer expected.";return t}export function asBoolean(t,e=!1){assert(e&&null==t||isBoolean(t),"Boolean expected.");return t}export function asDate(t,e=!1){if(isString(t)){let e=changeType(t,DataType.Date,"r");isDate(e)&&(t=e)}assert(e&&null==t||isDate(t),"Date expected.");return t}export function asFunction(t,e=!0){assert(e&&null==t||isFunction(t),"Function expected.");return t}export function asArray(t,e=!0){assert(e&&null==t||isArray(t),"Array expected.");return t}export function asType(t,e,i=!1){t=tryCast(t,e);assert(i||null!=t,e+" expected.");return t}export function asEnum(t,e,i=!1){if(null==t&&i)return null;let s=isString(t)?e[t]:t;assert(null!=s,'Invalid enum value: "'+t+'"');return isNumber(s)?s:t}export function asCollectionView(t,e=!0){if(null==t&&e)return null;let i=tryCast(t,"ICollectionView");if(null!=i)return i;isArray(t)||assert(!1,"Array or ICollectionView expected.");return new CollectionView(t)}export function hasItems(t){return null!=t&&null!=t.items&&t.items.length>0}export function toHeaderCase(t){return t&&t.length?t[0].toUpperCase()+t.substr(1).replace(/([a-z])([A-Z])/g,"$1 $2"):""}export function escapeHtml(t){t&&isString(t)&&(t=t.replace(/[&<>]/g,t=>_ENTITYMAP[t]));return null!=t?t.toString():""}const _ENTITYMAP={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},_specialCharsRegex=/"(.*?)"|[^\w]|_/g;export function getSpecialCharsRegex(){return _specialCharsRegex}export function escapeRegExp(t){return t.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}export function toPlainText(t){let e=asString(t);if(isString(e)&&e.indexOf("<")>-1){_plainText||(_plainText=document.createElement("div"));_plainText.innerHTML=e;e=_plainText.textContent}return e}var _plainText;export function hasClass(t,e){if(t&&e){if(t instanceof HTMLElement&&t.classList&&!isIE9())return t.classList.contains(e);if(t.getAttribute){let i=new RegExp("(\\s|^)"+e+"(\\s|$)");return t&&i.test(t.getAttribute("class"))}}return!1}export function addClass(t,e){if(t&&e){if(t instanceof HTMLElement&&t.classList&&!isIE9()){e.indexOf(" ")<0?t.classList.add(e):e.split(" ").forEach(e=>{t.classList.add(e)});return}t.setAttribute&&e.split(" ").forEach(e=>{if(!hasClass(t,e)){let i=t.getAttribute("class");t.setAttribute("class",i?i+" "+e:e)}})}}export function removeClass(t,e){if(t&&e){if(t instanceof HTMLElement&&t.classList&&!isIE9()){e.indexOf(" ")<0?t.classList.remove(e):e.split(" ").forEach(e=>{t.classList.remove(e)});0===t.classList.length&&t.removeAttribute("class");return}t.setAttribute&&e.split(" ").forEach(e=>{if(hasClass(t,e)){let i=new RegExp("((\\s|^)"+e+"(\\s|$))","g"),s=t.getAttribute("class");(s=s.replace(i," ").replace(/ +/g," ").trim())?t.setAttribute("class",s):t.removeAttribute("class")}})}}export function toggleClass(t,e,i){null==i&&(i=!hasClass(t,e));i?addClass(t,e):removeClass(t,e)}export function setAttribute(t,e,i,s){t&&(null!=i?s&&t.getAttribute(e)||t.setAttribute(e,i.toString()):t.removeAttribute(e))}export function setChecked(t,e){let i=null==e;t.checked=isIE()?e||i:e;t.indeterminate=i}export function setAriaLabel(t,e){setAttribute(t,"aria-label",e)}export function setSelectionRange(t,e,i=e,s=!0){assert(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement,"INPUT or TEXTAREA element expected");if(contains(document.body,t)&&!t.disabled&&t.offsetHeight){try{t.setSelectionRange(e,i,"backward")}catch(t){}if(s)try{t.focus();return!0}catch(t){}}return!1}export function disableAutoComplete(t){let e="autocomplete",i=t.getAttribute(e);i&&"on"!=i||t.setAttribute(e,"off");"autocorrect,autocapitalize,spellcheck".split(",").forEach(e=>{t.setAttribute(e,"spellcheck"==e?"false":"off")})}export function removeChild(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}export function getActiveElement(){let t=document.activeElement;if(t){let e=t.shadowRoot;e&&e.activeElement&&(t=e.activeElement)}return t}export function _getActiveElement(t){let e=t;if(e){let t=e.shadowRoot;t&&t.activeElement&&(e=t.activeElement)}return e}export function moveFocus(t,e){let i=_getFocusableElements(t,e<0),s=0;if(e){let t=i.indexOf(getActiveElement());t>-1&&(s=(t+e+i.length)%i.length)}if(s<i.length){let t=i[s];t.focus();t instanceof HTMLInputElement&&t.select();return!0}return!1}function _getFocusableElements(t,e=!1){let i=[],s=Array.prototype.slice.call(t.querySelectorAll("input,select,textarea,button,a,div,label,[tabindex]")),n={};s=s.filter(t=>-1!==t.tabIndex);const isRb=t=>t instanceof HTMLInputElement&&"radio"===t.type;s.forEach(t=>{isRb(t)&&t.checked&&(n[t.name||""]=!0)});(s=s.filter(t=>!isRb(t)||t.checked||!n[t.name||""])).sort((t,e)=>t.tabIndex===e.tabIndex?0:0===t.tabIndex?1:0===e.tabIndex?-1:t.tabIndex-e.tabIndex);for(let t=0;t<s.length;t++){let n=s[t];if(n.offsetHeight>0&&n.tabIndex>-1&&!n.disabled&&"hidden"!==window.getComputedStyle(n).visibility&&!closest(n,`[disabled],.${ControlStateClsNames.disabled}`)){if(n instanceof HTMLAnchorElement&&!n.hasAttribute("href"))continue;if(isIE()&&!n.hasAttribute("tabindex")){if(n instanceof HTMLDivElement)continue;let t=Control.getControl(closest(n,".wj-flexgrid"));if(t&&0==t.keyActionTab)continue}if("radio"===n.type&&!n.checked&&i.length>0){let t=i[i.length-1],s=getActiveElement();if("radio"===t.type&&t.name===n.name){e&&t!=s&&(i[i.length-1]=n);continue}}!Control.getControl(n)&&_getFocusableElements(n).length||i.push(n)}}return i}export function saveFile(t,e,i="text/plain"){let s=t instanceof Blob;s||!i.match(/\bcsv\b/i)&&!e.match(/\.csv$/i)||(t="\ufeff"+t);let n=s?t:new Blob([t],{type:i});const r=navigator;if(isFunction(r.msSaveOrOpenBlob))r.msSaveOrOpenBlob(n,e);else{var o=document.createElement("a"),click=t=>{let e=document.createEvent("MouseEvents");e.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null);t.dispatchEvent(e)};if("download"in o){let t=window.URL||window.webkitURL,i=t.createObjectURL(n);o.href=i;o.target="_blank";o.download=e;click(o);o=null;window.setTimeout(()=>{t.revokeObjectURL(i)},3e4)}else{let t=new FileReader;t.onloadend=()=>{o.href=t.result;o.download=e;click(o);o=null};t.readAsDataURL(n)}}}export function getElement(t){if(t instanceof Element||t&&t.appendChild&&t.appendChild instanceof Function)return t;if(isString(t))try{return document.querySelector(t)}catch(t){}return t&&t.jquery?t[0]:null}function processStyleProperty(t){let e=(t=t.replace(";base64,","_wj_")).split(";"),i=[];e.forEach(t=>{let e=[];t.indexOf("_wj_")>-1?2==(e=(t=t.replace("_wj_",";base64,").replace("data:image","_wjimg_")).split(":")).length&&(e[1]=e[1].replace("_wjimg_","data:image")):e=t.split(":");i.push(e)});return i}export function createElement(t,e,i){t=t.replace(/\bstyle\s*=\s*"/g,'_wj-style="');let s=document.createElement("div");s.innerHTML=t;if(t.indexOf("_wj-style")>-1){const t=s.querySelectorAll("[_wj-style]");for(let e=0;e<t.length;e++){let i=t[e],s=i.getAttribute("_wj-style"),n=[];if(s.indexOf(";base64,")>-1)n=processStyleProperty(s);else{s.split(";").forEach(t=>{n.push(t.split(":"))})}n.forEach(t=>{2==t.length&&(i.style[t[0].trim()]=t[1].trim())});i.removeAttribute("_wj-style")}}1==s.children.length&&(s=s.children[0]);i&&setCss(s,i);e&&(e=getElement(e)).appendChild(s);return s}export function setText(t,e){t.textContent=e||""}export function contains(t,e,i){for(let s=e;s&&t;){if(s===t)return!0;s=(i?s[Control._OWNR_KEY]:null)||s.parentNode||s.host}return!1}export function closest(t,e){if(t){if(isFunction(t.closest))return t.closest(e);let i=t.matches||t.webkitMatchesSelector||t.msMatchesSelector||t.mozMatchesSelector;if(i)for(;t&&1===t.nodeType;t=t.parentElement||t.parentNode)if(i.call(t,e))return t}return null}export function closestClass(t,e){return closest(t,"."+e)}export function enable(t,e){let i=!e,s="disabled";toggleClass(t,ControlStateClsNames.disabled,i);setAttribute(t,s,i?s:null);let n=t.querySelectorAll("input,button");for(let t=0;t<n.length;t++)setAttribute(n[t],s,i?s:null)}export function getElementRect(t){let e=t.getBoundingClientRect();return new Rect(e.left+pageXOffset,e.top+pageYOffset,e.width,e.height)}export function setCss(t,e){assert(isObject(e),"css parameter should be an object");if(t instanceof Array)for(let i=0;i<t.length;i++)setCss(t[i],e);else if(t&&t.style){let i=t.style;for(let t in e){let s=e[t];"number"==typeof s&&t.match(/width|height|left|top|right|bottom|size|padding|margin'/i)&&(s+="px");i[t]!==s&&(i[t]=s)}}}export function animate(t,e,i){null==e&&(e=Control._ANIM_DEF_DURATION);null==i&&(i=Control._ANIM_DEF_STEP);t=asFunction(t);e=asNumber(e,!1,!0);i=asNumber(i,!1,!0);let s,n=Date.now(),r=setInterval(()=>{let i=Math.min(1,(Date.now()-n)/e);i=Math.sin(i*Math.PI/2);i*=i;s&&cancelAnimationFrame(s);s=requestAnimationFrame(()=>{s=null;t(i)});i>=1&&clearInterval(r)},i);return r}export class Point{constructor(t=0,e=0){this.x=asNumber(t);this.y=asNumber(e)}equals(t,e=0,i=0){return t instanceof Point&&Math.abs(this.x-t.x)<=e&&Math.abs(this.y-t.y)<=i}clone(){return new Point(this.x,this.y)}}export class Size{constructor(t=0,e=0){this.width=asNumber(t);this.height=asNumber(e)}equals(t){return t instanceof Size&&this.width==t.width&&this.height==t.height}clone(){return new Size(this.width,this.height)}}export class Rect{constructor(t,e,i,s){this.left=asNumber(t);this.top=asNumber(e);this.width=asNumber(i);this.height=asNumber(s)}get right(){return this.left+this.width}get bottom(){return this.top+this.height}equals(t){return t instanceof Rect&&this.left==t.left&&this.top==t.top&&this.width==t.width&&this.height==t.height}clone(){return new Rect(this.left,this.top,this.width,this.height)}static fromBoundingRect(t){if(null!=t.left)return new Rect(t.left,t.top,t.width,t.height);if(null!=t.x)return new Rect(t.x,t.y,t.width,t.height);assert(!1,"Invalid source rectangle.")}static union(t,e){let i=Math.min(t.left,e.left),s=Math.min(t.top,e.top),n=Math.max(t.right,e.right),r=Math.max(t.bottom,e.bottom);return new Rect(i,s,n-i,r-s)}static intersection(t,e){let i=Math.max(t.left,e.left),s=Math.max(t.top,e.top),n=Math.min(t.right,e.right),r=Math.min(t.bottom,e.bottom);return new Rect(i,s,n-i,r-s)}contains(t){if(t instanceof Point)return t.x>=this.left&&t.x<=this.right&&t.y>=this.top&&t.y<=this.bottom;if(t instanceof Rect){let e=t;return e.left>=this.left&&e.right<=this.right&&e.top>=this.top&&e.bottom<=this.bottom}assert(!1,"Point or Rect expected.")}inflate(t,e,i,s){return null!=i&&null!=s?new Rect(this.left-t,this.top-e,this.width+t+i,this.height+e+s):new Rect(this.left-t,this.top-e,this.width+2*t,this.height+2*e)}}export class DateTime{static addDays(t,e){(t=new Date(t.getTime())).setDate(t.getDate()+e);return t}static addMonths(t,e){var i=(t=new Date(t.getTime())).getDate();t.setMonth(t.getMonth()+e);t.getDate()!=i&&t.setDate(0);return t}static addYears(t,e){(t=new Date(t.getTime())).setFullYear(t.getFullYear()+e);return t}static addHours(t,e){(t=new Date(t.getTime())).setHours(t.getHours()+e);return t}static addMinutes(t,e){(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e);return t}static addSeconds(t,e){(t=new Date(t.getTime())).setSeconds(t.getSeconds()+e);return t}static weekFirst(t,e=Globalize.getFirstDayOfWeek()){return DateTime.addDays(t,-(t.getDay()-e))}static weekLast(t,e=Globalize.getFirstDayOfWeek()){t=DateTime.weekFirst(t,e);return DateTime.addDays(t,6)}static monthFirst(t){return DateTime.addDays(t,1-t.getDate())}static monthLast(t){t=DateTime.monthFirst(t);t=DateTime.addMonths(t,1);return DateTime.addDays(t,-1)}static yearFirst(t){return new Date(t.getFullYear(),0,1)}static yearLast(t){return new Date(t.getFullYear(),11,31)}static sameDate(t,e){return isDate(t)&&isDate(e)&&t.getFullYear()==e.getFullYear()&&t.getMonth()==e.getMonth()&&t.getDate()==e.getDate()}static sameTime(t,e){return isDate(t)&&isDate(e)&&t.getHours()==e.getHours()&&t.getMinutes()==e.getMinutes()&&t.getSeconds()==e.getSeconds()&&t.getMilliseconds()==e.getMilliseconds()}static equals(t,e){return null==t&&null==e||isDate(t)&&isDate(e)&&t.getTime()==e.getTime()}static fromDateTime(t,e){if(!t&&!e)return null;t||(t=e);e||(e=t);return DateTime.newDate(t.getFullYear(),t.getMonth(),t.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}static toFiscal(t,e){let i=culture.Globalize.calendar;return isArray(i.fiscalYearOffsets)?DateTime.addMonths(t,-i.fiscalYearOffsets[e?0:1]):t}static fromFiscal(t,e){let i=culture.Globalize.calendar;return isArray(i.fiscalYearOffsets)?DateTime.addMonths(t,+i.fiscalYearOffsets[e?0:1]):t}static newDate(t,e,i,s,n,r,o){if(null==t||null==e||null==i){let s=new Date;null==t&&(t=s.getFullYear());null==e&&(e=s.getMonth());null==i&&(i=s.getDate())}null==s&&(s=0);null==n&&(n=0);null==r&&(r=0);null==o&&(o=0);let l=new Date(t,e,i,s,n,r,o),a=l.getFullYear();t<100&&a>=1900&&l.setFullYear(l.getFullYear()-1900);return l}static clone(t){return DateTime.fromDateTime(t,t)}}export function httpRequest(t,e){let i=e||{},s=i.method?asString(i.method).toUpperCase():"GET",n=null==i.async||asBoolean(i.async),r=i.data;if(null!=r&&"GET"==s){let e=[];for(let t in r){let i=r[t];isDate(i)&&(i=i.toJSON());e.push(t+"="+encodeURIComponent(i))}if(e.length){let i=t.indexOf("?")<0?"?":"&";t+=i+e.join("&")}r=null}let o=new XMLHttpRequest;o.URL_DEBUG=t;let l=!1;if(null!=r&&!isString(r)){l=isObject(r);r=JSON.stringify(r)}o.onload=function(){if(4==o.readyState){o.status<300?i.success&&asFunction(i.success)(o):i.error&&asFunction(i.error)(o);i.complete&&asFunction(i.complete)(o)}};o.onerror=function(){if(!isFunction(i.error))throw"HttpRequest Error: "+o.status+" "+o.statusText;i.error(o)};o.open(s,t,n,i.user,i.password);i.user&&i.password&&o.setRequestHeader("Authorization","Basic "+btoa(i.user+":"+i.password));l&&(()=>{for(let t in i.requestHeaders)if("content-type"===t.toLowerCase())return!1;return!0})()&&o.setRequestHeader("Content-Type","application/json");if(i.requestHeaders)for(let t in i.requestHeaders)o.setRequestHeader(t,i.requestHeaders[t]);isNumber(i.timeout)&&(o.timeout=i.timeout);isFunction(i.beforeSend)&&i.beforeSend(o);o.send(r);return o}let _modules={};export function _registerModule(t,e){_modules[t]=e;if("wijmo"===t){let t="undefined"!=typeof window?window:"undefined"!=typeof self?self:null;t&&(t.wijmo=e)}}export function _getModule(t){return _modules[t]}export function focusFirst(t,e){const i=t.querySelectorAll(e||'button, [href], input, [tabindex]:not([tabindex="-1"])'),s=Array.from(i).filter(t=>t.offsetWidth>0&&t.offsetHeight>0&&!t.hasAttribute("disabled")&&t.tabIndex>=0);if(s.length>0){s[0].focus();return!0}return!1}export const cellCoordinateParserRegex=new RegExp(/(\'?\w+\'?\!)?(\$?[A-Za-z]+)(\$?\d+)/,"g");export function getScrollableParent(t){const e=document.scrollingElement;let i="absolute"==getComputedStyle(t).position?t.offsetParent:t.parentElement;for(;i&&i!=e;){if(i.clientHeight!=i.scrollHeight)return i;t=i="absolute"==getComputedStyle(i).position?i.offsetParent:i.parentElement}return e}export function getOffsetFromAncestor(t,e){let i=0,s=0,n=0,r=0;for(;t;){s+=t.offsetLeft;i+=t.offsetTop;t=t.offsetParent}for(;e;){r+=e.offsetLeft;n+=e.offsetTop;e=e.offsetParent}return{top:i-n,left:s-r}}export function _isMacOS(){return-1!==navigator.userAgent.indexOf("Mac")}export class _Map{constructor(t=!0){if(t)this._h={};else{let t=_getGlobal(),e=t&&t.Map;this._m=e&&new Map||new _ArrayMap}}get isPojoHash(){return null!=this._h}get size(){return this._h&&Object.keys(this._h).length||this._m.size}clear(){this._h?this._h={}:this._m.clear()}delete(t){this._h?delete this._h[t]:this._m.delete(t)}get(t){return this._h?this._h[t]:this._m.get(t)}has(t){return this._h?t in this._h:this._m.has(t)}set(t,e){this._h?this._h[t]=e:this._m.set(t,e);return this}}class _ArrayMap{constructor(){this._d=[]}get size(){return this._d.length}clear(){this._d=[]}delete(t){let e=this._kIdx(t);if(e>-1){this._d.splice(e,1);return!0}return!1}get(t){let e=this._kIdx(t);return e>-1?this._d[e].v:void 0}has(t){return this._kIdx(t)>-1}set(t,e){let i=this._kIdx(t);i>-1?this._d[i].v=e:this._d.push({k:t,v:e});return this}_kIdx(t){let e=this._d,i=e.length;if(t==t){for(let s=0;s<i;s++)if(e[s].k===t)return s}else for(let t=0;t<i;t++){let i=e[t].k;if(i!=i)return t}return-1}}function _getGlobal(){let t=null;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self);return t}export class Color{constructor(t){this._r=0;this._g=0;this._b=0;this._a=1;t&&this._parse(t)}get r(){return this._r}set r(t){this._r=clamp(asNumber(t),0,255)}get g(){return this._g}set g(t){this._g=clamp(asNumber(t),0,255)}get b(){return this._b}set b(t){this._b=clamp(asNumber(t),0,255)}get a(){return this._a}set a(t){this._a=clamp(asNumber(t),0,1)}equals(t){return t instanceof Color&&this.r==t.r&&this.g==t.g&&this.b==t.b&&this.a==t.a}toString(){let t=Math.round(100*this.a);return t>99?"#"+((1<<24)+(this.r<<16)+(this.g<<8)+this.b).toString(16).slice(1):"rgba("+this.r+","+this.g+","+this.b+","+t/100+")"}static fromRgba(t,e,i,s=1){let n=new Color(null);n.r=Math.round(clamp(asNumber(t),0,255));n.g=Math.round(clamp(asNumber(e),0,255));n.b=Math.round(clamp(asNumber(i),0,255));n.a=clamp(asNumber(s),0,1);return n}static fromHsb(t,e,i,s=1){let n=Color._hsbToRgb(clamp(asNumber(t),0,1),clamp(asNumber(e),0,1),clamp(asNumber(i),0,1));return Color.fromRgba(n[0],n[1],n[2],s)}static fromHsl(t,e,i,s=1){let n=Color._hslToRgb(clamp(asNumber(t),0,1),clamp(asNumber(e),0,1),clamp(asNumber(i),0,1));return Color.fromRgba(n[0],n[1],n[2],s)}static fromString(t){let e=new Color(null);return e._parse(asString(t))?e:null}getHsb(){return Color._rgbToHsb(this.r,this.g,this.b)}getHsl(){return Color._rgbToHsl(this.r,this.g,this.b)}static interpolate(t,e,i){i=clamp(asNumber(i),0,1);let s=Color._rgbToHsl(t.r,t.g,t.b),n=Color._rgbToHsl(e.r,e.g,e.b),r=1-i,o=t.a*r+e.a*i,l=[s[0]*r+n[0]*i,s[1]*r+n[1]*i,s[2]*r+n[2]*i],a=Color._hslToRgb(l[0],l[1],l[2]);return Color.fromRgba(a[0],a[1],a[2],o)}static toOpaque(t,e){if(1==(t=isString(t)?Color.fromString(t):asType(t,Color)).a)return t;e=null==e?Color.fromRgba(255,255,255,1):isString(e)?Color.fromString(e):asType(e,Color);let i=t.a,s=1-i;return Color.fromRgba(t.r*i+e.r*s,t.g*i+e.g*s,t.b*i+e.b*s)}_parse(t){if("transparent"==(t=t.toLowerCase())){this._r=this._g=this._b=this._a=0;return!0}if(t&&0!=t.indexOf("#")&&0!=t.indexOf("rgb")&&0!=t.indexOf("hsl")){let e=document.createElement("div");e.style.color=t;let i=e.style.color;if(i==t&&!(i=window.getComputedStyle(e).color)){document.body.appendChild(e);i=window.getComputedStyle(e).color;removeChild(e)}t=i.toLowerCase()}if(0==t.indexOf("#")){if(this._isValidHexColor(t)){if(4==t.length){this.r=parseInt(t[1]+t[1],16);this.g=parseInt(t[2]+t[2],16);this.b=parseInt(t[3]+t[3],16);this.a=1;return!0}if(7==t.length){this.r=parseInt(t.substr(1,2),16);this.g=parseInt(t.substr(3,2),16);this.b=parseInt(t.substr(5,2),16);this.a=1;return!0}}return!1}if(0==t.indexOf("rgb")){let e=t.indexOf("("),i=t.indexOf(")");if(e>-1&&i>-1){let s=t.substr(e+1,i-(e+1)).split(",");if(s.length>2){this.r=parseInt(s[0]);this.g=parseInt(s[1]);this.b=parseInt(s[2]);this.a=s.length>3?parseFloat(s[3]):1;return!0}}}if(0==t.indexOf("hsl")){let e=t.indexOf("("),i=t.indexOf(")");if(e>-1&&i>-1){let s=t.substr(e+1,i-(e+1)).split(",");if(s.length>2){let t=parseInt(s[0])/360,e=parseInt(s[1]),i=parseInt(s[2]);s[1].indexOf("%")>-1&&(e/=100);s[2].indexOf("%")>-1&&(i/=100);let n=Color._hslToRgb(t,e,i);this.r=n[0];this.g=n[1];this.b=n[2];this.a=s.length>3?parseFloat(s[3]):1;return!0}}}return!1}_isValidHexColor(t){return/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/.test(t)}static _hslToRgb(t,e,i){assert(t>=0&&t<=1&&e>=0&&e<=1&&i>=0&&i<=1,"bad HSL values");let s,n,r;if(0==e)s=n=r=i;else{let o=i<.5?i*(1+e):i+e-i*e,l=2*i-o;s=Color._hue2rgb(l,o,t+1/3);n=Color._hue2rgb(l,o,t);r=Color._hue2rgb(l,o,t-1/3)}return[Math.round(255*s),Math.round(255*n),Math.round(255*r)]}static _hue2rgb(t,e,i){i<0&&(i+=1);i>1&&(i-=1);return i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}static _rgbToHsl(t,e,i){assert(t>=0&&t<=255&&e>=0&&e<=255&&i>=0&&i<=255,"bad RGB values");t/=255,e/=255,i/=255;let s,n,r=Math.max(t,e,i),o=Math.min(t,e,i),l=(r+o)/2;if(r==o)s=n=0;else{let a=r-o;n=l>.5?a/(2-r-o):a/(r+o);switch(r){case t:s=(e-i)/a+(e<i?6:0);break;case e:s=(i-t)/a+2;break;case i:s=(t-e)/a+4}s/=6}return[s,n,l]}static _rgbToHsb(t,e,i){assert(t>=0&&t<=255&&e>=0&&e<=255&&i>=0&&i<=255,"bad RGB values");let s=Color._rgbToHsl(t,e,i);return Color._hslToHsb(s[0],s[1],s[2])}static _hsbToRgb(t,e,i){let s=Color._hsbToHsl(t,e,i);return Color._hslToRgb(s[0],s[1],s[2])}static _hsbToHsl(t,e,i){assert(t>=0&&t<=1&&e>=0&&e<=1&&i>=0&&i<=1,"bad HSB values");let s=clamp(i*(2-e)/2,0,1),n=1-Math.abs(2*s-1),r=clamp(n>0?i*e/n:e,0,1);assert(!isNaN(s)&&!isNaN(r),"bad conversion to HSL");return[t,r,s]}static _hslToHsb(t,e,i){assert(t>=0&&t<=1&&e>=0&&e<=1&&i>=0&&i<=1,"bad HSL values");let s=clamp(1==i?1:(2*i+e*(1-Math.abs(2*i-1)))/2,0,1),n=clamp(s>0?2*(s-i)/s:e,0,1);assert(!isNaN(s)&&!isNaN(n),"bad conversion to HSB");return[t,n,s]}}export var culture="undefined"!=typeof window&&window.wijmo&&window.wijmo.culture||{Globalize:{numberFormat:{".":".",",":",","-":"-","+":"+","%":"%",percent:{pattern:["-n%","n%"]},currency:{decimals:2,symbol:"$",pattern:["($n)","$n"]}},calendar:{"/":"/",":":":",firstDay:0,days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],am:["AM","A"],pm:["PM","P"],eras:["A.D.","B.C."],patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",f:"dddd, MMMM dd, yyyy h:mm tt",F:"dddd, MMMM dd, yyyy h:mm:ss tt",t:"h:mm tt",T:"h:mm:ss tt",M:"MMMM d",m:"MMMM d",Y:"MMMM, yyyy",y:"MMMM, yyyy",g:"M/d/yyyy h:mm tt",G:"M/d/yyyy h:mm:ss tt",s:'yyyy"-"MM"-"dd"T"HH":"mm":"ss',o:'yyyy"-"MM"-"dd"T"HH":"mm":"ss"."fffffffK',O:'yyyy"-"MM"-"dd"T"HH":"mm":"ss"."fffffffK',U:"dddd, MMMM dd, yyyy h:mm:ss tt"},fiscalYearOffsets:[-3,-3]}}};export class Globalize{static format(t,e,i,s,n){if(isString(t))return t;if(isNumber(t)){e=e||(t==Math.round(t)?"n0":"n2");return Globalize.formatNumber(t,e,i,s,n)}if(isDate(t)){e=e||"d";return Globalize.formatDate(t,e)}return null!=t?t.toString():""}static formatNumber(t,e,i,s,n){t=asNumber(t);e=asString(e);let r,o=culture.Globalize.numberFormat,l=Globalize._parseNumericFormat(e),a=l.spec,h=l.prec,c=o["."]||".",u=o[","]||",",d=o["-"]||"-",p=Math;null==h&&(h=null!=n?n:"c"==a?o.currency.decimals:"e"==a?6:"r"==a?15:t==p.round(t)?0:2);l.scale&&(t/=p.pow(10,l.scale));if("d"==a||"x"==a){r=(s?p.floor:p.round)(p.abs(t)).toString("d"==a?10:16);for(;r.length<h;)r="0"+r;t<0&&(r=d+r);return"X"==l.specRaw?r.toUpperCase():r}s&&"p"!=a&&"e"!=a&&(t=toFixed(t,h,!0));switch(a){case"e":r=t.toExponential(h);"E"==l.specRaw&&(r=r.replace("e","E"));break;case"c":r=Globalize._toFixedStr(p.abs(t),h);break;case"p":t=Globalize._shiftDecimal(t,2,14);s&&(t=toFixed(t,h,s));r=Globalize._toFixedStr(p.abs(t),h);break;default:"-"!=(r=Globalize._toFixedStr(t,h))[0]||r.match(/[1-9]/)||(r=r.substr(1))}(i||"g"==a||"r"==a)&&r.indexOf(".")>-1&&(r=r.replace(/(\.\d*?)0+$/g,"$1").replace(/\.$/,""));"."!=c&&(r=r.replace(".",c));"-"!=d&&(r=r.replace("-",d));if(u&&("n"==a||"c"==a||"p"==l.specRaw||"F"==l.specRaw||"G"==l.specRaw)){let t=r.indexOf(c),e=/\B(?=(\d\d\d)+(?!\d))/g;r=t>-1?r.substr(0,t).replace(e,u)+r.substr(t):r.replace(e,u)}if("c"==a){let e=t<0&&r.match(/[1-9]/)?0:1,i=o.currency.pattern[e],s=l.curr||o.currency.symbol;""==s&&(s="");r=i.replace("n",r).replace("$",s)}if("p"==a){let e=t<0&&r.match(/[1-9]/)?0:1,i=o.percent.pattern[e],s=o["%"]||"%";r=i.replace("n",r);"%"!=s&&(r=r.replace("%",s));"-"!=d&&0==e&&(r=r.replace("-",d))}return l.prefix||l.suffix?l.prefix+r+l.suffix:r}static formatDate(t,e){t=asDate(t);switch(e){case"r":case"R":return t.toUTCString();case"u":return t.toISOString().replace(/\.\d{3}/,"")}e=Globalize._expandFormat(e);return Globalize._parseDateFormat(e).map(i=>Globalize._formatDatePart(t,e,i)).join("")}static parseInt(t,e){return Math.round(Globalize.parseFloat(t,e))}static parseFloat(t,e){let i=Globalize._parseNumericFormat(e),s=i.prefix;s&&0==t.indexOf(s)&&(t=t.substring(s.length));let n=i.suffix;if(n){let e=t.lastIndexOf(n);e>-1&&e==t.length-n.length&&(t=t.substring(0,t.length-n.length))}let r=culture.Globalize.numberFormat,o=r["."]||".",l=r[","]||",",a=r["-"]||"-",h=r["%"]||"%",c=i.curr||r.currency.symbol||"$",u=t.indexOf(h)>-1,d=t.indexOf("(")>-1&&t.indexOf(")")>-1,p=0;if("x"==i.spec)p=parseInt(t,16);else{[c,h,"(",")"].forEach(e=>{t=t.replace(e,"")});/\s/.test(l)&&(t=t.replace(/\s+/g,""));let e=(t=t.replace(new RegExp("\\"+l,"g"),"").replace(new RegExp("\\"+a,"g"),"-").replace(/(\+|\-)\s+/g,"$1").replace(o,".").trim()).length;if(!d&&e&&"-"==t[e-1]){d=!0;t=t.substring(0,e-1)}p=/^\s*(\+|\-)?\d*(\.\d*)?(\s*E(\+|\-)?\d+)?\s*$/i.test(t)?parseFloat(t):Number.NaN}if(!isNaN(p)){d=d||p<0;p=Math.abs(p);u&&(p=Globalize._shiftDecimal(p,-2));d&&(p=-p);i.scale&&(p*=Math.pow(10,i.scale))}return p}static parseDate(t,e,i){if(!(t=asString(t)))return null;if("u"==e)return new Date(t);let s;if("R"==e||"r"==e){let e=/((\d+)\-(\d+)\-(\d+))?\s?((\d+):(\d+)(:(\d+))?)?/,i=t.match(e);if(i[1]||i[5]){s=i[1]?new Date(parseInt(i[2]),parseInt(i[3])-1,parseInt(i[4])):new Date;if(i[5]){s.setHours(parseInt(i[6]));s.setMinutes(parseInt(i[7]));s.setSeconds(i[8]?parseInt(i[9]):0)}}else s=new Date(t);return isNaN(s.getTime())?null:s}e=Globalize._expandFormat(e||"d");let n=culture.Globalize.calendar,r=Globalize._CJK,o=new RegExp("(\\"+n["/"]+")|(\\"+n[":"]+")|(\\d+)|(["+r+"\\.]{2,})|(["+r+"]+)","gi"),l=t.match(o),a=Globalize._parseDateFormat(e),h=0;if(!(l&&l.length&&a&&a.length))return null;let c,u,d,p,g,f=-1,_=0,m=1,b=0,C=0,w=0,y=0,v=-1,x=null;if(i=asDate(i,!0)){_=i.getMonth();m=i.getDate();b=i.getHours();C=i.getMinutes();w=i.getSeconds();y=i.getMilliseconds()}for(let t=0;t<a.length&&l;t++){let e=t-h,i=e>-1&&e<l.length?l[e]:"",s=a[t].length;switch(a[t]){case"EEEE":case"EEE":case"EE":case"E":case"eeee":case"eee":case"ee":case"e":g=a[t];case"yyyy":case"yyy":case"yy":case"y":if(s>1&&i.length>s){l[e]=i.substr(s);i=i.substr(0,s);h++}f=parseInt(i);p=4==i.length;break;case"MMMM":case"MMM":d=!0;_=-1;let r=i.toLowerCase(),o="MMMM"==a[t]?n.months:n.monthsAbbr;for(let t=0;t<12;t++)if(0==o[t].toLowerCase().indexOf(r)){_=t;break}if(_>-1)break;case"MM":case"M":d=!0;if(s>1&&i.length>s){l[e]=i.substr(s);i=i.substr(0,s);h++}_=parseInt(i)-1;break;case"dddd":case"ddd":c=!0;break;case"dd":case"d":if(s>1&&i.length>s){l[e]=i.substr(s);i=i.substr(0,s);h++}m=parseInt(i);u=!0;break;case"hh":case"h":if(s>1&&i.length>s){l[e]=i.substr(s);i=i.substr(0,s);h++}b=12==(b=parseInt(i))?0:b;break;case"HH":if(s>1&&i.length>s){l[e]=i.substr(s);i=i.substr(0,s);h++}b=parseInt(i);break;case"H":b=parseInt(i);break;case"mm":case"m":if(s>1&&i.length>s){l[e]=i.substr(s);i=i.substr(0,s);h++}C=parseInt(i);break;case"ss":case"s":if(s>1&&i.length>s){l[e]=i.substr(s);i=i.substr(0,s);h++}w=parseInt(i);break;case"fffffff":case"FFFFFFF":case"ffffff":case"FFFFFF":case"fffff":case"FFFFF":case"ffff":case"FFFF":case"fff":case"FFF":case"ff":case"FF":case"f":case"F":y=parseInt(i)/Math.pow(10,s-3);break;case"tt":case"t":i=i.toUpperCase();b<12&&n.pm.indexOf(i)>-1&&(b+=12);break;case"q":case"Q":case"u":case"U":v=parseInt(i);break;case"ggg":case"gg":case"g":case'"г."':x=n.eras.length>1?Globalize._getEra(i,n):n.eras.length>0?n.eras[0]:null;if(n.eras.length>0&&!x)return null;break;case"/":case":":if(i&&i!=n[a[t]])return null;break;case n["/"]:case n[":"]:if(i&&i!=a[t])return null;break;case"K":break;default:Globalize._unquote(a[t]).trim()!=i.trim()&&h++}}if(d&&u){isNaN(b)&&(b=0);isNaN(C)&&(C=0);isNaN(w)&&(w=0)}if(_<0||_>11||isNaN(_)||m<1||m>31||isNaN(m)||b<0||b>=24||isNaN(b)||C<0||C>=60||isNaN(C)||w<0||w>=60||isNaN(w))return null;if(l.length+h>a.length)return null;if(g){if(!d)return null;let t=culture.Globalize.calendar;if(isArray(t.fiscalYearOffsets)){let e="E"==g[0],i=_-t.fiscalYearOffsets[e?0:1];f+=i>11?-1:i<0?1:0}}if(c&&!u)return null;!d&&v>=1&&v<=4&&(_=3*(v-1));if(isNaN(f)||f<0)f=i?i.getFullYear():(new Date).getFullYear();else if(x&&x.start)f=f+x.start.getFullYear()-1;else if(f<100&&!p){let t=isNumber(n.twoDigitYearMax)?n.twoDigitYearMax:2029;t>99&&(f+=f+2e3<=t?2e3:1900)}return(s=DateTime.newDate(f,_,m,b,C+0,w,y)).getMonth()!=_||s.getDate()!=m?null:isNaN(s.getTime())?null:s}static getFullFormat(t){return Globalize._expandFormat(t)}static getFirstDayOfWeek(){let t=culture.Globalize.calendar.firstDay;return t||0}static getNumberDecimalSeparator(){let t=culture.Globalize.numberFormat["."];return t||"."}static _toFixedStr(t,e){let i=t.toString(),s=i.indexOf("."),n=e-(i.length-s)+1,r=i.indexOf("e")>-1;if(!r&&s>-1&&n>=0)return i+Array(n+1).join("0");if(s>-1&&!r&&"5"==i[i.length-1]){t=+(Math.round(+(Math.abs(t)+"e"+e))+"e"+-e)*(t<0?-1:1)}return t.toFixed(e)}static _unquote(t){return t.length>1&&t[0]==t[t.length-1]&&("'"==t[0]||'"'==t[0])?t.substr(1,t.length-2):t}static _parseNumericFormat(t){let e=Globalize._numFormatInfo[t];if(!e){let i=t&&t.match(/(\"(.*?)\"\s*)?([a-z]+)\s*(\d*)\s*(,*)(\s*\"(.*?)\"\s*)?(.*)/i)||[],s=i[3]?i[3]:"n";if(s.length>1){i=[];s="n"}e={prefix:i[2]||"",spec:s.toLowerCase(),specRaw:s,prec:i[4]?parseInt(i[4]):null,scale:i[5]?3*i[5].length:0,suffix:i[7]||"",curr:i[8]||null};Globalize._numFormatInfo[t]=e}return e}static _parseDateFormat(t){let e=Globalize._dateFormatParts[t];if(!e){e=[];if(t){let i,s;for(i=0;i>-1&&i<t.length;i++){let n=t[i];if(("'"==n||'"'==n)&&(s=t.indexOf(n,i+1))>-1){e.push(t.substring(i,s+1));i=s}else if("\\"==n&&i<t.length-1){i++;e.push('"'+t[i]+'"')}else{s=i+1;for(;s<t.length&&t[s]==n;s++);e.push(t.substring(i,s));i=s-1}}}Globalize._dateFormatParts[t]=e}return e}static _formatDatePart(t,e,i){let s,n=culture.Globalize.calendar,r=null,o=0,l=0,a=i.length;switch(i){case"yyyy":case"yyy":case"yy":case"y":case"EEEE":case"EEE":case"EE":case"E":case"eeee":case"eee":case"ee":case"e":o=(s="E"==i[0]?DateTime.toFiscal(t,!0):"e"==i[0]?DateTime.toFiscal(t,!1):t).getFullYear();n.eras.length>1&&e.indexOf("g")>-1&&(r=Globalize._getEra(t,n))&&(o=isDate(r.start)?o-r.start.getFullYear()+1:Math.abs(o));let h=i.length<3?o%100:3==i.length?o%1e3:o;return Globalize._zeroPad(h,i.length);case"MMMMM":return n.monthsAbbr[t.getMonth()][0];case"MMMM":return n.months[t.getMonth()];case"MMM":return n.monthsAbbr[t.getMonth()];case"MM":case"M":return Globalize._zeroPad(t.getMonth()+1,a);case"dddd":return n.days[t.getDay()];case"ddd":return n.daysAbbr[t.getDay()];case"dd":return Globalize._zeroPad(t.getDate(),2);case"d":return t.getDate().toString();case"hh":case"h":return Globalize._zeroPad(Globalize._h12(t),a);case"HH":case"H":return Globalize._zeroPad(t.getHours(),a);case"mm":case"m":return Globalize._zeroPad(t.getMinutes(),a);case"ss":case"s":return Globalize._zeroPad(t.getSeconds(),a);case"fffffff":case"FFFFF