@grapecity/wijmo
Version:
UI library for pure JS, Angular, React, Vue and more...
14 lines (13 loc) • 135 kB
JavaScript
/*!
*
* Wijmo Library 5.20252.42
* 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
*
*/
"use strict";var __importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)Object.hasOwnProperty.call(e,s)&&(t[s]=e[s]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});const selfModule=__importStar(require("@grapecity/wijmo"));class Binding{constructor(e){this.path=e}get path(){return this._path}set path(e){this._path=e;this._parts=e?e.split("."):[];for(let e=0;e<this._parts.length;e++){let t=this._parts[e],s=t.indexOf("[");if(s>-1){this._parts[e]=t.substr(0,s);this._parts.splice(++e,0,parseInt(t.substr(s+1)))}}this._key=1==this._parts.length?this._parts[0]:null}getValue(e){if(e){if(this._key)return e[this._key];if(this._path&&this._path in e)return e[this._path];for(let t=0;t<this._parts.length&&e;t++)e=e[this._parts[t]]}return e}setValue(e,t){if(e)try{let s=this._path;if(s in e){e[s]=t;return e[s]==t}for(let t=0;t<this._parts.length-1;t++)if(null==(e=e[this._parts[t]]))return!1;e[s=this._parts[this._parts.length-1]]=t;return e[s]==t}catch(e){return!1}return!1}}exports.Binding=Binding;class EventHandler{constructor(e,t){this.handler=e;this.self=t}}class Event{constructor(e){this._handlers=[];this._handlersChanged=e}addHandler(e,t){e=asFunction(e);this._handlers.push(new EventHandler(e,t));isFunction(this._handlersChanged)&&this._handlersChanged()}getHandler(e=0){const t=this._handlers[e];if(t)return t.handler}removeHandler(e,t){let s=!1;e=asFunction(e);for(let i=0;i<this._handlers.length;i++){let r=this._handlers[i];if(!(r.handler!=e&&null!=e||r.self!=t&&null!=t)){this._handlers.splice(i--,1);s=!0;if(e&&t)break}}s&&isFunction(this._handlersChanged)&&this._handlersChanged()}removeAllHandlers(){let e=this._handlers.length>0;this._handlers.length=0;e&&isFunction(this._handlersChanged)&&this._handlersChanged()}raise(e,t=EventArgs.empty){let s=this._handlers;for(let i=0;i<s.length;i++){let r=s[i];r.handler.call(r.self,e,t);s[i]!==r&&i--}}get hasHandlers(){return this._handlers.length>0}get handlerCount(){return this._handlers.length}}exports.Event=Event;class EventArgs{}EventArgs.empty=new EventArgs;exports.EventArgs=EventArgs;class CancelEventArgs extends EventArgs{constructor(){super(...arguments);this.cancel=!1}}exports.CancelEventArgs=CancelEventArgs;class PropertyChangedEventArgs extends EventArgs{constructor(e,t,s){super();this._name=e;this._oldVal=t;this._newVal=s}get propertyName(){return this._name}get oldValue(){return this._oldVal}get newValue(){return this._newVal}}exports.PropertyChangedEventArgs=PropertyChangedEventArgs;class RequestErrorEventArgs extends CancelEventArgs{constructor(e,t){super();this._xhr=e;this._msg=t}get request(){return this._xhr}get message(){return this._msg}set message(e){this._msg=e}}exports.RequestErrorEventArgs=RequestErrorEventArgs;var NotifyCollectionChangedAction;!function(e){e[e.Add=0]="Add";e[e.Remove=1]="Remove";e[e.Change=2]="Change";e[e.Reset=3]="Reset"}(NotifyCollectionChangedAction=exports.NotifyCollectionChangedAction||(exports.NotifyCollectionChangedAction={}));class NotifyCollectionChangedEventArgs extends EventArgs{constructor(e=NotifyCollectionChangedAction.Reset,t=null,s=-1){super();this.action=e;this.item=t;this.index=s}}NotifyCollectionChangedEventArgs.reset=new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset);exports.NotifyCollectionChangedEventArgs=NotifyCollectionChangedEventArgs;class SortDescription{constructor(e,t){this._bnd=new Binding(e);this._asc=t}get property(){return this._bnd.path}get ascending(){return this._asc}}exports.SortDescription=SortDescription;class PageChangingEventArgs extends CancelEventArgs{constructor(e){super();this.newPageIndex=e}}exports.PageChangingEventArgs=PageChangingEventArgs;class GroupDescription{groupNameFromItem(e,t){return""}namesMatch(e,t){return e===t}}exports.GroupDescription=GroupDescription;class PropertyGroupDescription extends GroupDescription{constructor(e,t){super();this._bnd=new Binding(e);this._converter=t}get propertyName(){return this._bnd.path}groupNameFromItem(e,t){return this._converter?this._converter(e,this.propertyName):this._bnd.getValue(e)}namesMatch(e,t){return e===t}}exports.PropertyGroupDescription=PropertyGroupDescription;exports.empty={};exports.ClipboardClsNames={clipboard:"wj-clipboard"};exports.ControlClsNames={content:"wj-content",hostElement:"wj-control",template:"wj-template"};exports.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",exactMatchSpace:"wj-state-exact-match-space",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",labeledInput:".wj-labeled-input",wjError:".wj-error",errorVisible:"wj-error-visible"};exports.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"};exports.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"};exports.PrintDocumentClsNames={printDocument:"wj-printdocument"};exports.TooltipClsNames={hostElement:"wj-tooltip"};exports.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"};exports.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:"";function isMobile(){const e=_agent.toLowerCase(),t=["android","webos","iphone","ipad","ipod","blackberry","windows phone","mobile","mobi","tablet"].some(t=>e.includes(t)),s="ontouchstart"in window||navigator.maxTouchPoints>0;return t||s}exports.isMobile=isMobile;const _isiOS=null!=_agent.match(/iPad|iPhone|iPod/i);function isiOS(){return _isiOS}exports.isiOS=isiOS;const _isFF=null!=_agent.match(/Firefox\//);function isFirefox(){return _isFF}exports.isFirefox=isFirefox;const _isSafari=null!=_agent.match(/^((?!Chrome|Android).)*safari/i);function isSafari(){return _isSafari}exports.isSafari=isSafari;const _isEdge=null!=_agent.match(/Edge\/|Edg\//);function isEdge(){return _isEdge}exports.isEdge=isEdge;const _isIE=null!=_agent.match(/MSIE |Trident\/|Edge\//);function isIE(){return _isIE}exports.isIE=isIE;let _isIE9=!1;function isIE9(){return _isIE9}exports.isIE9=isIE9;let _isIE10=!1;function isIE10(){return _isIE10}exports.isIE10=isIE10;let _isChromiumBased=null;function isChromiumBased(){if(null!=_isChromiumBased)return _isChromiumBased;{_isChromiumBased=!1;const e="undefined"!=typeof navigator?navigator.userAgentData:null;if(e&&e.brands)for(let t of e.brands)if("Chromium"==t.brand){_isChromiumBased=!0;break}return _isChromiumBased}}exports.isChromiumBased=isChromiumBased;let _supportsPassive=!1;"undefined"!=typeof document&&document.addEventListener("test",e=>{},{get passive(){_supportsPassive=!0;return!0}});function getEventOptions(e,t){return _supportsPassive?{capture:e,passive:t}:e}exports.getEventOptions=getEventOptions;var _supportsFocusOptions=!1;"undefined"!=typeof document&&document.createElement("div").focus({get preventScroll(){_supportsFocusOptions=!0;return!0}});function supportsFocusOptions(){return _supportsFocusOptions}exports.supportsFocusOptions=supportsFocusOptions;function _startDrag(e,t){e.effectAllowed=t;isFirefox()&&e.setData("text","")}exports._startDrag=_startDrag;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",e=>{if(1==e.which){let t=closest(e.target,`.${exports.ControlClsNames.hostElement}`);if(t&&!t.style.cursor)for(let t=e.target;t;t=t.parentElement)if(t.attributes&&t.attributes.draggable){t.dragDrop();return!1}}})}}if("undefined"!=typeof window){let e="requestAnimationFrame",t="cancelAnimationFrame";if(!window[e]){let s=0;window[e]=e=>{let t=Date.now(),i=16-(t-s),r=i>0?i:0;s=t+r;return setTimeout(()=>{e(s)},r)};window[t]=clearTimeout}if(!window.atob){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t=new RegExp("[^"+e+"]");window.atob=s=>{let i,r,n,o,l=[],a=0,h=s.length;if(t.test(s)||/=/.test(s)&&(/=[^=]/.test(s)||/={3}/.test(s)))throw new Error("Invalid base64 data");h%4>0&&(h=(s+=Array(4-h%4+1).join("=")).length);for(;a<h;){for(r=[],o=a;a<o+4;)r.push(e.indexOf(s.charAt(a++)));n=[((i=(r[0]<<18)+(r[1]<<12)+((63&r[2])<<6)+(63&r[3]))&255<<16)>>16,64===r[2]?-1:(65280&i)>>8,64===r[3]?-1:255&i];for(o=0;o<3;++o)(n[o]>=0||0===o)&&l.push(String.fromCharCode(n[o]))}return l.join("")};window.btoa=t=>{let s,i,r=[],n=0,o=t.length;for(;n<o;){s=((i=[t.charCodeAt(n++),t.charCodeAt(n++),t.charCodeAt(n++)])[0]<<16)+((i[1]||0)<<8)+(i[2]||0);r.push(e.charAt((s&63<<18)>>18),e.charAt((258048&s)>>12),e.charAt(isNaN(i[1])?64:(4032&s)>>6),e.charAt(isNaN(i[2])?64:63&s))}return r.join("")}}}class _FocusService{constructor(){this._hasDoc="undefined"!=typeof Document;this._ae=this._nativeAe();let e=window,t=this._onBlur.bind(this),s=this._onFocus.bind(this);e.addEventListener("focusout",t,!0);e.addEventListener("focusin",s,!0);if(!isIE()){e.addEventListener("blur",t,!0);e.addEventListener("focus",s,!0)}}get activeElement(){let e=this._ae,t=this._nativeAe();e===_FocusService._noAe?e=this._ae=t:e!=t&&(this._isSpecialRoot(e)||document.body.contains(e)||(e=this._ae=t));return e!==_FocusService._noAe?e:null}_onBlur(e){if(e.isTrusted){let t=e.relatedTarget;this._ae=this._isSpecialRoot(t)?this._nativeAe():t}}_onFocus(e){e.isTrusted&&(this._ae=this._nativeAe())}_isSpecialRoot(e){return null==e||e===document.body||this._hasDoc&&e instanceof Document}_nativeAe(){let e;try{e="unknown"!=typeof document.activeElement?document.activeElement:_FocusService._noAe}catch(t){e=_FocusService._noAe}return e}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={};exports._FocusService=_FocusService;const _getProxyTarget="undefined"!=typeof window&&window.Symbol?Symbol("_getProxyTarget"):"\t_get\tProxy\tTarget\t";function _getCalculatedArray(e,t,s){let i=new WeakMap;if(!s){let t={};if(e.length){let i=e[0];for(let e in i){let s=typeof i[e];t[e]="string"==s?"":"number"==s?0:null}s=t}}return new Proxy(e,{get(e,r){if(r===_getProxyTarget)return e;if("string"==typeof r||"number"==typeof r){if("indexOf"==r)return(t,s)=>{let i=e.indexOf(t,s);i<0&&t&&(t=t[_getProxyTarget])&&(i=e.indexOf(t,s));return i};let n=parseInt(r);if(!isNaN(n)){let r=e[n];if(r&&!r[_getProxyTarget]){let e=i.get(r);if(!e){e=_createItemProxy(r,t,s);i.set(r,e)}r=e}return r}}return Reflect.get(e,r)}})}exports._getCalculatedArray=_getCalculatedArray;function _createItemProxy(e,t,s){if(!e[_getProxyTarget]){if(isIE())for(let s in t)e[s]=null;let i={get:(e,i,r)=>{if(i===_getProxyTarget)return e;if("constructor"===i)return()=>Object.assign({},s||{});let n=t[i];if(n)switch(typeof n){case"function":return n(r);case"string":return _eval(n,r)}return e[i]}};if(!isIE()){i.ownKeys=e=>Object.keys(e).concat(Object.keys(t));i.getOwnPropertyDescriptor=(e,s)=>s in t?{enumerable:!0,configurable:!0,writable:!1}:Reflect.getOwnPropertyDescriptor(e,s)}e=new Proxy(e,i)}return e}function _getTargetObject(e){return(e?e[_getProxyTarget]:null)||e}exports._getTargetObject=_getTargetObject;function _eval(e,t){let s=[t];return new Function(...["$"],"return "+e)(...s)}var Key,DataType,_VERSION="5.20252.42";exports._CLS_STATE_DISABLED=exports.ControlStateClsNames.disabled;function getVersion(){return _VERSION}exports.getVersion=getVersion;function setLicenseKey(e){Control._licKey=e}exports.setLicenseKey=setLicenseKey;!function(e){e[e.Back=8]="Back";e[e.Tab=9]="Tab";e[e.Enter=13]="Enter";e[e.Escape=27]="Escape";e[e.Space=32]="Space";e[e.PageUp=33]="PageUp";e[e.PageDown=34]="PageDown";e[e.End=35]="End";e[e.Home=36]="Home";e[e.Left=37]="Left";e[e.Up=38]="Up";e[e.Right=39]="Right";e[e.Down=40]="Down";e[e.Delete=46]="Delete";e[e.X=88]="X";e[e.F1=112]="F1";e[e.F2=113]="F2";e[e.F3=114]="F3";e[e.F4=115]="F4";e[e.F5=116]="F5";e[e.F6=117]="F6";e[e.F7=118]="F7";e[e.F8=119]="F8";e[e.F9=120]="F9";e[e.F10=121]="F10";e[e.F11=122]="F11";e[e.F12=123]="F12";e[e.PlusKey=107]="PlusKey";e[e.EqualPlusKey=187]="EqualPlusKey";e[e.MinusKey=109]="MinusKey";e[e.HyphenMinusKey=189]="HyphenMinusKey";e[e.S=83]="S";e[e.P=80]="P";e[e.F=70]="F"}(Key=exports.Key||(exports.Key={}));!function(e){e[e.Object=0]="Object";e[e.String=1]="String";e[e.Number=2]="Number";e[e.Boolean=3]="Boolean";e[e.Date=4]="Date";e[e.Array=5]="Array"}(DataType=exports.DataType||(exports.DataType={}));function tryCast(e,t){return null==e?null:isString(t)?isFunction(e.implementsInterface)&&e.implementsInterface(t)?e:null:e instanceof t?e:null}exports.tryCast=tryCast;function isPrimitive(e){return isString(e)||isNumber(e)||isBoolean(e)||isDate(e)}exports.isPrimitive=isPrimitive;function isString(e){return"string"==typeof e}exports.isString=isString;function isNullOrWhiteSpace(e){return!e||!/\S/.test(e)}exports.isNullOrWhiteSpace=isNullOrWhiteSpace;function isNumber(e){return"number"==typeof e}exports.isNumber=isNumber;function isInt(e){return isNumber(e)&&e==Math.round(e)}exports.isInt=isInt;function isBoolean(e){return"boolean"==typeof e}exports.isBoolean=isBoolean;function isFunction(e){return"function"==typeof e}exports.isFunction=isFunction;function isUndefined(e){return void 0===e}exports.isUndefined=isUndefined;function isNullOrUndefined(e){return null==e}exports.isNullOrUndefined=isNullOrUndefined;function isDate(e){return(e instanceof Date||"[object Date]"===Object.prototype.toString.call(e))&&!isNaN(e.getTime())}exports.isDate=isDate;function isArray(e){return e instanceof Array||Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)}exports.isArray=isArray;function _isPlainArray(e){return Array.isArray(e)}exports._isPlainArray=_isPlainArray;function isObject(e){return null!=e&&"object"==typeof e&&!isDate(e)&&!isArray(e)}exports.isObject=isObject;function isEmpty(e){for(var t in e)return!1;return!0}exports.isEmpty=isEmpty;function _areObjectsEqual(e,t){const s=Object.entries(e),i=Object.entries(t);if(s.length!==i.length)return!1;for(const[e,i]of s)if(!t.hasOwnProperty(e)||t[e]!==i)return!1;return!0}exports._areObjectsEqual=_areObjectsEqual;function getUniqueId(e){let t=e;for(let s=0;null!=document.getElementById(t);s++)t=e+s;return t}exports.getUniqueId=getUniqueId;function getSafeUniqueId(e,t="wj",s){let i=e;(i=(i=(i=i.trim().toLowerCase()).replace(/[^a-z0-9_-]+/g,"-")).replace(/-+/g,"-").replace(/^-|-$/g,""))?/^[a-z]/.test(i)&&!s||(i=`${t}-${i}`):i=`${t}-${Date.now()}`;for(let e=0;null!=document.getElementById(i);e++)i+=e;return i}exports.getSafeUniqueId=getSafeUniqueId;function uidGenerator(){for(var e="",t="0123456789abcdef".split(""),s=0;s<32;s++){var i=Math.floor(16*Math.random());switch(s){case 8:e+="-";break;case 12:i=4;e+="-";break;case 16:i=3&i|8;e+="-";break;case 20:e+="-"}e+=t[i]}return e}exports.uidGenerator=uidGenerator;function mouseToPage(e){if(e instanceof Point)return e;e&&e.touches&&e.touches.length>0&&(e=e.touches[0]);if(isNumber(e.clientX)&&isNumber(e.clientY))return new Point(e.clientX+pageXOffset,e.clientY+pageYOffset);throw"Mouse or touch event expected."}exports.mouseToPage=mouseToPage;function getType(e){return isNumber(e)?DataType.Number:isBoolean(e)?DataType.Boolean:isDate(e)?DataType.Date:isString(e)?DataType.String:isArray(e)?DataType.Array:DataType.Object}exports.getType=getType;function getTypes(e,t=1e3){if(!e)return[];const s=e.length;(t<=0||s<t)&&(t=s);const i=[];if(t){const s=Object.keys(e[0]),r={},n=[...s];for(let s=0;s<t;s++){const t=e[s];for(let i=n.length-1;i>=0;i--){const o=n[i],l=t[o];if(isPrimitive(l)){let t=Object.getOwnPropertyDescriptor(e[s],o);r[o]={binding:o,dataType:getType(l),isReadOnly:t&&!t.writable&&!t.set};n.splice(i,1)}}if(!n.length)break}for(let e=0;e<s.length;e++){const t=r[s[e]];t&&i.push(t)}}return i}exports.getTypes=getTypes;function changeType(e,t,s,i){if(null!=e){let r=DataType;if(isString(e))switch(t){case r.Number:let t=Globalize.parseFloat(e,s);return isNaN(t)?e:t;case r.Date:let n=Globalize.parseDate(e,s,isDate(i)?i:null);n||s||!e||(n=new Date(e));return n&&isFinite(n.getTime())?n:e;case r.Boolean:switch(e.toLowerCase()){case"true":return!0;case"false":return!1}return e;case r.Array:try{let t=e.split(",").map(e=>(e=e.trim()).match(/^(\+|\-)?\d+\.?\d*$/)?e:'"'+e+'"');return JSON.parse("["+t.join(",")+"]")}catch(e){}}if(t==DataType.String)return Globalize.format(e,s)}return e}exports.changeType=changeType;function toFixed(e,t,s){if(s){let s=e.toString(),i=s.indexOf("e"),r=s.indexOf(".");if(i>-1){if("-"===s[i+1]){let n=parseFloat(s.substr(i+2)),o=s.substr(0,i);r>-1&&(o=o.substr(0,r)+o.substr(r+1));s="0."+(Array(n).join("0")+o).substr(0,t);e=parseFloat(s)}}else if(r>-1){s=s.substr(0,r+1+t);e=parseFloat(s)}}else{let s=Math.pow(10,t);e=Math.round(e*s)/s}return e}exports.toFixed=toFixed;function format(e,t,s){if((e=asString(e)).match(/\{.*"count".*:.*"when".*:.*\}/))try{let s=JSON.parse(e);if(isString(s.count)){let i=t[s.count],r=s.when;if(isNumber(i)&&isObject(r)){let t=r[i]||r.other;isString(t)&&(e=t)}}}catch(e){}return e.replace(/\{(.*?)(:(.*?))?\}/g,(e,i,r,n)=>{let o=e;if(i&&"{"!=i[0]&&t){o=new Binding(i).getValue(t);n&&(o=Globalize.format(o,n));s&&(o=s(t,i,n,o))}return null==o?"":o})}exports.format=format;function glbz(...e){let t=[],s=-1;e[0].forEach((i,r)=>{if(r>0&&r!=s){let n=e[r],o=i.match(/^:([a-z][0-9]*\b)/i)||i.match(/^:'(.+?)'/)||i.match(/^:"(.+?)"/);if(o){n=Globalize.format(n,o[1]);i=i.substr(o[0].length)}else if(":"==i&&r<e.length-1&&(isNumber(n)||isDate(n))){n=Globalize.format(n,e[r+1]);i="";s=r+1}t.push(n)}i&&t.push(i)});return t.join("")}exports.glbz=glbz;function evalTemplate(e,t){if(isIE()){let s=/:\${([^}]*)}/g,i=/\${([^}]*)}(:(([A-Za-z]\d*)|"([^"]+)"|'([^']+)'))?/g;return(e=e.replace(s,(e,s)=>":"+_evalExpression(s,t))).replace(i,(e,s,i,r,n,o,l)=>{let a=_evalExpression(s,t);return r?Globalize.format(a,n||o||l):a})}return _evalExpression(e,t)}exports.evalTemplate=evalTemplate;function _evalExpression(e,t){(t=t||{}).glbz=glbz;const s=parseTpl(e,t);return isIE()?s:glbz`${s}`}function get(e,t,s=`\${${e}}`){return e.split(".").reduce((e,t)=>null!=e&&null!=e[t]?e[t]:s,t)}function parseTpl(e,t,s){return e.replace(/\$\{.+?}/g,e=>{return get(e.substr(2,e.length-3).trim(),t,s)})}function clamp(e,t,s){if(null!=e){null!=s&&e>s&&(e=s);null!=t&&e<t&&(e=t)}return e}exports.clamp=clamp;function copy(e,t,s=!0,i=!1){if(t)for(let r in t)if("_"!=r[0]){assert(r in e,'Unknown property "'+r+'".');let n=t[r];if(!e._copy||!e._copy(r,n)){const t=e[r];e[r]instanceof Event?isFunction(n)&&e[r].addHandler(n):!s||!isObject(n)||"undefined"!=typeof Element&&n instanceof Element||!t||!isObject(t)||Object.getPrototypeOf(t).constructor==Object.prototype.constructor&&isWritable(e,r)||"itemsSource"==r?i&&isObject(n)&&Object.getPrototypeOf(n).isPrototypeOf(Object)&&isObject(t)&&!Object.getPrototypeOf(t).isPrototypeOf(Object)?copy(t,n):e[r]=n:copy(t,n)}}return e}exports.copy=copy;function _isPlainObject(e){return isObject(e)&&Object.getPrototypeOf(e).isPrototypeOf(Object)}exports._isPlainObject=_isPlainObject;function isWritable(e,t){const s=Object.getOwnPropertyDescriptor(e,t)||Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),t)||{};return!!s.writable||isFunction(s.set)}exports.isWritable=isWritable;function deepClone(e){if(null===e||"object"!=typeof e)return e;if(Array.isArray(e)){return e.map(e=>deepClone(e))}const t={};for(const s in e)e.hasOwnProperty(s)&&(t[s]=deepClone(e[s]));return t}exports.deepClone=deepClone;function assert(e,t,s=!0){if(!e){t="** Assertion failed in Wijmo: "+t;let e=new Error;isString(e.stack)&&s&&(t+=" "+e.stack);throw t}}exports.assert=assert;function _deprecated(e,t){console.error('** WARNING: "'+e+'" has been deprecated; please use "'+t+'" instead.')}exports._deprecated=_deprecated;function _warning(e){console.error('** WARNING: "'+e)}exports._warning=_warning;function asString(e,t=!0){isUndefined(e)&&(e=null);assert(t&&null==e||isString(e),"String expected.");return e}exports.asString=asString;function asNumber(e,t=!1,s=!1){assert(t&&null==e||isNumber(e),"Number expected.");if(s&&e&&e<0)throw"Positive number expected.";return e}exports.asNumber=asNumber;function asInt(e,t=!1,s=!1){assert(t&&null==e||isInt(e),"Integer expected.");if(s&&e&&e<0)throw"Positive integer expected.";return e}exports.asInt=asInt;function asBoolean(e,t=!1){assert(t&&null==e||isBoolean(e),"Boolean expected.");return e}exports.asBoolean=asBoolean;function asDate(e,t=!1){if(isString(e)){let t=changeType(e,DataType.Date,"r");isDate(t)&&(e=t)}assert(t&&null==e||isDate(e),"Date expected.");return e}exports.asDate=asDate;function asFunction(e,t=!0){assert(t&&null==e||isFunction(e),"Function expected.");return e}exports.asFunction=asFunction;function asArray(e,t=!0){assert(t&&null==e||isArray(e),"Array expected.");return e}exports.asArray=asArray;function asType(e,t,s=!1){e=tryCast(e,t);assert(s||null!=e,t+" expected.");return e}exports.asType=asType;function asEnum(e,t,s=!1){if(null==e&&s)return null;let i=isString(e)?t[e]:e;assert(null!=i,'Invalid enum value: "'+e+'"');return isNumber(i)?i:e}exports.asEnum=asEnum;function asCollectionView(e,t=!0){if(null==e&&t)return null;let s=tryCast(e,"ICollectionView");if(null!=s)return s;isArray(e)||assert(!1,"Array or ICollectionView expected.");return new CollectionView(e)}exports.asCollectionView=asCollectionView;function hasItems(e){return null!=e&&null!=e.items&&e.items.length>0}exports.hasItems=hasItems;function toHeaderCase(e){return e&&e.length?e[0].toUpperCase()+e.substr(1).replace(/([a-z])([A-Z])/g,"$1 $2"):""}exports.toHeaderCase=toHeaderCase;function escapeHtml(e){e&&isString(e)&&(e=e.replace(/[&<>]/g,e=>_ENTITYMAP[e]));return null!=e?e.toString():""}exports.escapeHtml=escapeHtml;const _ENTITYMAP={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},_specialCharsRegex=/"(.*?)"|[^\w]|_/g;function getSpecialCharsRegex(){return _specialCharsRegex}exports.getSpecialCharsRegex=getSpecialCharsRegex;function escapeRegExp(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}exports.escapeRegExp=escapeRegExp;function toPlainText(e){let t=asString(e);if(isString(t)&&t.indexOf("<")>-1){_plainText||(_plainText=document.createElement("div"));_plainText.innerHTML=t;t=_plainText.textContent}return t}exports.toPlainText=toPlainText;var _plainText;function hasClass(e,t){if(e&&t){if(e instanceof HTMLElement&&e.classList&&!isIE9())return e.classList.contains(t);if(e.getAttribute){let s=new RegExp("(\\s|^)"+t+"(\\s|$)");return e&&s.test(e.getAttribute("class"))}}return!1}exports.hasClass=hasClass;function addClass(e,t=""){if(e&&t){let s=t.trim();if(e instanceof HTMLElement&&e.classList&&!isIE9()){s.indexOf(" ")<0?e.classList.add(s):s.split(" ").forEach(t=>{t.length>0&&e.classList.add(t)});return}e.setAttribute&&s.split(" ").forEach(t=>{if(t.length>0&&!hasClass(e,t)){let s=e.getAttribute("class");e.setAttribute("class",s?s+" "+t:t)}})}}exports.addClass=addClass;function removeClass(e,t){if(e&&t){let s=t.trim();if(e instanceof HTMLElement&&e.classList&&!isIE9()){s.indexOf(" ")<0?e.classList.remove(s):s.split(" ").forEach(t=>{t.length>0&&e.classList.remove(t)});0===e.classList.length&&e.removeAttribute("class");return}e.setAttribute&&s.split(" ").forEach(t=>{if(hasClass(e,t)){let s=new RegExp("((\\s|^)"+t+"(\\s|$))","g"),i=e.getAttribute("class");(i=i.replace(s," ").replace(/ +/g," ").trim())?e.setAttribute("class",i):e.removeAttribute("class")}})}}exports.removeClass=removeClass;function toggleClass(e,t,s){null==s&&(s=!hasClass(e,t));s?addClass(e,t):removeClass(e,t)}exports.toggleClass=toggleClass;function setAttribute(e,t,s,i){e&&(null!=s?i&&e.getAttribute(t)||e.setAttribute(t,s.toString()):e.removeAttribute(t))}exports.setAttribute=setAttribute;function setChecked(e,t){let s=null==t;e.checked=isIE()?t||s:t;e.indeterminate=s}exports.setChecked=setChecked;function setAriaLabel(e,t){setAttribute(e,"aria-label",t)}exports.setAriaLabel=setAriaLabel;function setSelectionRange(e,t,s=t,i=!0){assert(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement,"INPUT or TEXTAREA element expected");if(contains(document.body,e)&&!e.disabled&&e.offsetHeight){try{e.setSelectionRange(t,s,"backward")}catch(e){}if(i)try{e.focus();return!0}catch(e){}}return!1}exports.setSelectionRange=setSelectionRange;function disableAutoComplete(e){let t="autocomplete",s=e.getAttribute(t);s&&"on"!=s||e.setAttribute(t,"off");"autocorrect,autocapitalize,spellcheck".split(",").forEach(t=>{e.setAttribute(t,"spellcheck"==t?"false":"off")})}exports.disableAutoComplete=disableAutoComplete;function removeChild(e){return e&&e.parentNode?e.parentNode.removeChild(e):null}exports.removeChild=removeChild;function getActiveElement(){let e=document.activeElement;if(e){let t=e.shadowRoot;t&&t.activeElement&&(e=t.activeElement)}return e}exports.getActiveElement=getActiveElement;function _getActiveElement(e){let t=e;if(t){let e=t.shadowRoot;e&&e.activeElement&&(t=e.activeElement)}return t}exports._getActiveElement=_getActiveElement;function moveFocus(e,t){let s=_getFocusableElements(e,t<0),i=0;if(t){let e=s.indexOf(getActiveElement());e>-1&&(i=(e+t+s.length)%s.length)}if(i<s.length){let e=s[i];e.focus();e instanceof HTMLInputElement&&e.select();return!0}return!1}exports.moveFocus=moveFocus;function _getFocusableElements(e,t=!1){let s=[],i=Array.prototype.slice.call(e.querySelectorAll("input,select,textarea,button,a,div,label,[tabindex]")),r={};i=i.filter(e=>-1!==e.tabIndex);const isRb=e=>e instanceof HTMLInputElement&&"radio"===e.type;i.forEach(e=>{isRb(e)&&e.checked&&(r[e.name||""]=!0)});(i=i.filter(e=>!isRb(e)||e.checked||!r[e.name||""])).sort((e,t)=>e.tabIndex===t.tabIndex?0:0===e.tabIndex?1:0===t.tabIndex?-1:e.tabIndex-t.tabIndex);for(let e=0;e<i.length;e++){let r=i[e];if(r.offsetHeight>0&&r.tabIndex>-1&&!r.disabled&&"hidden"!==window.getComputedStyle(r).visibility&&!closest(r,`[disabled],.${exports.ControlStateClsNames.disabled}`)){if(r instanceof HTMLAnchorElement&&!r.hasAttribute("href"))continue;if(isIE()&&!r.hasAttribute("tabindex")){if(r instanceof HTMLDivElement)continue;let e=Control.getControl(closest(r,".wj-flexgrid"));if(e&&0==e.keyActionTab)continue}if("radio"===r.type&&!r.checked&&s.length>0){let e=s[s.length-1],i=getActiveElement();if("radio"===e.type&&e.name===r.name){t&&e!=i&&(s[s.length-1]=r);continue}}(Control.getControl(r)||!_getFocusableElements(r).length||r.classList.contains("wj-detail"))&&s.push(r)}}return s}exports._getFocusableElements=_getFocusableElements;function saveFile(e,t,s="text/plain"){let i=e instanceof Blob;i||!s.match(/\bcsv\b/i)&&!t.match(/\.csv$/i)||(e="\ufeff"+e);let r=i?e:new Blob([e],{type:s});const n=navigator;if(isFunction(n.msSaveOrOpenBlob))n.msSaveOrOpenBlob(r,t);else{var o=document.createElement("a"),click=e=>{let t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null);e.dispatchEvent(t)};if("download"in o){let e=window.URL||window.webkitURL,s=e.createObjectURL(r);o.href=s;o.target="_blank";o.download=t;click(o);o=null;window.setTimeout(()=>{e.revokeObjectURL(s)},3e4)}else{let e=new FileReader;e.onloadend=()=>{o.href=e.result;o.download=t;click(o);o=null};e.readAsDataURL(r)}}}exports.saveFile=saveFile;function getElement(e){if(e instanceof Element||e&&e.appendChild&&e.appendChild instanceof Function)return e;if(isString(e))try{return document.querySelector(e)}catch(e){}return e&&e.jquery?e[0]:null}exports.getElement=getElement;function processStyleProperty(e){let t=(e=e.replace(";base64,","_wj_")).split(";"),s=[];t.forEach(e=>{let t=[];e.indexOf("_wj_")>-1?2==(t=(e=e.replace("_wj_",";base64,").replace("data:image","_wjimg_")).split(":")).length&&(t[1]=t[1].replace("_wjimg_","data:image")):t=e.split(":");s.push(t)});return s}function createElement(e,t,s){e=e.replace(/\bstyle\s*=\s*"/g,'_wj-style="');let i=document.createElement("div");i.innerHTML=e;if(e.indexOf("_wj-style")>-1){const e=i.querySelectorAll("[_wj-style]");for(let t=0;t<e.length;t++){let s=e[t],i=s.getAttribute("_wj-style"),r=[];if(i.indexOf(";base64,")>-1)r=processStyleProperty(i);else{i.split(";").forEach(e=>{r.push(e.split(":"))})}r.forEach(e=>{2==e.length&&(s.style[e[0].trim()]=e[1].trim())});s.removeAttribute("_wj-style")}}1==i.children.length&&(i=i.children[0]);s&&setCss(i,s);t&&(t=getElement(t)).appendChild(i);return i}exports.createElement=createElement;function setText(e,t){e.textContent=t||""}exports.setText=setText;function contains(e,t,s){for(let i=t;i&&e;){if(i===e)return!0;i=(s?i[Control._OWNR_KEY]:null)||i.parentNode||i.host}return!1}exports.contains=contains;function closest(e,t){if(e){if(isFunction(e.closest))return e.closest(t);let s=e.matches||e.webkitMatchesSelector||e.msMatchesSelector||e.mozMatchesSelector;if(s)for(;e&&1===e.nodeType;e=e.parentElement||e.parentNode)if(s.call(e,t))return e}return null}exports.closest=closest;function closestClass(e,t){return closest(e,"."+t)}exports.closestClass=closestClass;function enable(e,t){let s=!t,i="disabled";toggleClass(e,exports.ControlStateClsNames.disabled,s);setAttribute(e,i,s?i:null);let r=e.querySelectorAll("input,button");for(let e=0;e<r.length;e++)setAttribute(r[e],i,s?i:null)}exports.enable=enable;function getElementRect(e){let t=e.getBoundingClientRect();return new Rect(t.left+pageXOffset,t.top+pageYOffset,t.width,t.height)}exports.getElementRect=getElementRect;function setCss(e,t){assert(isObject(t),"css parameter should be an object");if(e instanceof Array)for(let s=0;s<e.length;s++)setCss(e[s],t);else if(e&&e.style){let s=e.style;for(let e in t){let i=t[e];"number"==typeof i&&e.match(/width|height|left|top|right|bottom|size|padding|margin'/i)&&(i+="px");s[e]!==i&&(s[e]=i)}}}exports.setCss=setCss;function animate(e,t,s){null==t&&(t=Control._ANIM_DEF_DURATION);null==s&&(s=Control._ANIM_DEF_STEP);e=asFunction(e);t=asNumber(t,!1,!0);s=asNumber(s,!1,!0);let i,r=Date.now(),n=setInterval(()=>{let s=Math.min(1,(Date.now()-r)/t);s=Math.sin(s*Math.PI/2);s*=s;i&&cancelAnimationFrame(i);i=requestAnimationFrame(()=>{i=null;e(s)});s>=1&&clearInterval(n)},s);return n}exports.animate=animate;class Point{constructor(e=0,t=0){this.x=asNumber(e);this.y=asNumber(t)}equals(e,t=0,s=0){return e instanceof Point&&Math.abs(this.x-e.x)<=t&&Math.abs(this.y-e.y)<=s}clone(){return new Point(this.x,this.y)}}exports.Point=Point;class Size{constructor(e=0,t=0){this.width=asNumber(e);this.height=asNumber(t)}equals(e){return e instanceof Size&&this.width==e.width&&this.height==e.height}clone(){return new Size(this.width,this.height)}}exports.Size=Size;class Rect{constructor(e,t,s,i){this.left=asNumber(e);this.top=asNumber(t);this.width=asNumber(s);this.height=asNumber(i)}get right(){return this.left+this.width}get bottom(){return this.top+this.height}equals(e){return e instanceof Rect&&this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height}clone(){return new Rect(this.left,this.top,this.width,this.height)}static fromBoundingRect(e){if(null!=e.left)return new Rect(e.left,e.top,e.width,e.height);if(null!=e.x)return new Rect(e.x,e.y,e.width,e.height);assert(!1,"Invalid source rectangle.")}static union(e,t){let s=Math.min(e.left,t.left),i=Math.min(e.top,t.top),r=Math.max(e.right,t.right),n=Math.max(e.bottom,t.bottom);return new Rect(s,i,r-s,n-i)}static intersection(e,t){let s=Math.max(e.left,t.left),i=Math.max(e.top,t.top),r=Math.min(e.right,t.right),n=Math.min(e.bottom,t.bottom);return new Rect(s,i,r-s,n-i)}contains(e){if(e instanceof Point)return e.x>=this.left&&e.x<=this.right&&e.y>=this.top&&e.y<=this.bottom;if(e instanceof Rect){let t=e;return t.left>=this.left&&t.right<=this.right&&t.top>=this.top&&t.bottom<=this.bottom}assert(!1,"Point or Rect expected.")}inflate(e,t,s,i){return null!=s&&null!=i?new Rect(this.left-e,this.top-t,this.width+e+s,this.height+t+i):new Rect(this.left-e,this.top-t,this.width+2*e,this.height+2*t)}}exports.Rect=Rect;class DateTime{static addDays(e,t){(e=new Date(e.getTime())).setDate(e.getDate()+t);return e}static addMonths(e,t){var s=(e=new Date(e.getTime())).getDate();e.setMonth(e.getMonth()+t);e.getDate()!=s&&e.setDate(0);return e}static addYears(e,t){(e=new Date(e.getTime())).setFullYear(e.getFullYear()+t);return e}static addHours(e,t){(e=new Date(e.getTime())).setHours(e.getHours()+t);return e}static addMinutes(e,t){(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t);return e}static addSeconds(e,t){(e=new Date(e.getTime())).setSeconds(e.getSeconds()+t);return e}static weekFirst(e,t=Globalize.getFirstDayOfWeek()){return DateTime.addDays(e,-(e.getDay()-t))}static weekLast(e,t=Globalize.getFirstDayOfWeek()){e=DateTime.weekFirst(e,t);return DateTime.addDays(e,6)}static monthFirst(e){return DateTime.addDays(e,1-e.getDate())}static monthLast(e){e=DateTime.monthFirst(e);e=DateTime.addMonths(e,1);return DateTime.addDays(e,-1)}static yearFirst(e){return new Date(e.getFullYear(),0,1)}static yearLast(e){return new Date(e.getFullYear(),11,31)}static sameDate(e,t){return isDate(e)&&isDate(t)&&e.getFullYear()==t.getFullYear()&&e.getMonth()==t.getMonth()&&e.getDate()==t.getDate()}static sameTime(e,t){return isDate(e)&&isDate(t)&&e.getHours()==t.getHours()&&e.getMinutes()==t.getMinutes()&&e.getSeconds()==t.getSeconds()&&e.getMilliseconds()==t.getMilliseconds()}static equals(e,t){return null==e&&null==t||isDate(e)&&isDate(t)&&e.getTime()==t.getTime()}static fromDateTime(e,t){if(!e&&!t)return null;e||(e=t);t||(t=e);return DateTime.newDate(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())}static toFiscal(e,t){let s=exports.culture.Globalize.calendar;return isArray(s.fiscalYearOffsets)?DateTime.addMonths(e,-s.fiscalYearOffsets[t?0:1]):e}static fromFiscal(e,t){let s=exports.culture.Globalize.calendar;return isArray(s.fiscalYearOffsets)?DateTime.addMonths(e,+s.fiscalYearOffsets[t?0:1]):e}static newDate(e,t,s,i,r,n,o){if(null==e||null==t||null==s){let i=new Date;null==e&&(e=i.getFullYear());null==t&&(t=i.getMonth());null==s&&(s=i.getDate())}null==i&&(i=0);null==r&&(r=0);null==n&&(n=0);null==o&&(o=0);let l=new Date(e,t,s,i,r,n,o),a=l.getFullYear();e<100&&a>=1900&&l.setFullYear(l.getFullYear()-1900);return l}static clone(e){return DateTime.fromDateTime(e,e)}}exports.DateTime=DateTime;function httpRequest(e,t){let s=t||{},i=s.method?asString(s.method).toUpperCase():"GET",r=null==s.async||asBoolean(s.async),n=s.data;if(null!=n&&"GET"==i){let t=[];for(let e in n){let s=n[e];isDate(s)&&(s=s.toJSON());t.push(e+"="+encodeURIComponent(s))}if(t.length){let s=e.indexOf("?")<0?"?":"&";e+=s+t.join("&")}n=null}let o=new XMLHttpRequest;o.URL_DEBUG=e;let l=!1;if(null!=n&&!isString(n)){l=isObject(n);n=JSON.stringify(n)}o.onload=function(){if(4==o.readyState){o.status<300?s.success&&asFunction(s.success)(o):s.error&&asFunction(s.error)(o);s.complete&&asFunction(s.complete)(o)}};o.onerror=function(){if(!isFunction(s.error))throw"HttpRequest Error: "+o.status+" "+o.statusText;s.error(o)};o.open(i,e,r,s.user,s.password);s.user&&s.password&&o.setRequestHeader("Authorization","Basic "+btoa(s.user+":"+s.password));l&&(()=>{for(let e in s.requestHeaders)if("content-type"===e.toLowerCase())return!1;return!0})()&&o.setRequestHeader("Content-Type","application/json");if(s.requestHeaders)for(let e in s.requestHeaders)o.setRequestHeader(e,s.requestHeaders[e]);isNumber(s.timeout)&&(o.timeout=s.timeout);isFunction(s.beforeSend)&&s.beforeSend(o);o.send(n);return o}exports.httpRequest=httpRequest;let _modules={};function _registerModule(e,t){_modules[e]=t;if("wijmo"===e){let e="undefined"!=typeof window?window:"undefined"!=typeof self?self:null;e&&(e.wijmo=t)}}exports._registerModule=_registerModule;function _getModule(e){return _modules[e]}exports._getModule=_getModule;function focusFirst(e,t){const s=e.querySelectorAll(t||'button, [href], input, [tabindex]:not([tabindex="-1"])'),i=Array.from(s).filter(e=>e.offsetWidth>0&&e.offsetHeight>0&&!e.hasAttribute("disabled")&&e.tabIndex>=0);if(i.length>0){i[0].focus();return!0}return!1}exports.focusFirst=focusFirst;exports.cellCoordinateParserRegex=new RegExp(/(\'?\w+\'?\!)?(\$?[A-Za-z]+)(\$?\d+)/,"g");function getScrollableParent(e){const t=document.scrollingElement;let s="absolute"==getComputedStyle(e).position?e.offsetParent:e.parentElement;for(;s&&s!=t;){if(s.clientHeight!=s.scrollHeight)return s;e=s="absolute"==getComputedStyle(s).position?s.offsetParent:s.parentElement}return t}exports.getScrollableParent=getScrollableParent;function getOffsetFromAncestor(e,t){let s=0,i=0,r=0,n=0;for(;e;){i+=e.offsetLeft;s+=e.offsetTop;e=e.offsetParent}for(;t;){n+=t.offsetLeft;r+=t.offsetTop;t=t.offsetParent}return{top:s-r,left:i-n}}exports.getOffsetFromAncestor=getOffsetFromAncestor;function _isMacOS(){return-1!==navigator.userAgent.indexOf("Mac")}exports._isMacOS=_isMacOS;function _setAriaLabelBy(e,t,s,i){let r=""===s?null:s;if(r!==e.ariaLabelledBy){e._ariaLabelledby=r;setAttribute(t,"aria-labelledby",r);i&&i()}}exports._setAriaLabelBy=_setAriaLabelBy;function deepElementFromPoint(e,t){let s=document.elementFromPoint(e,t);for(;s&&s.shadowRoot;){const i=s.shadowRoot.elementFromPoint(e,t);if(!i||i===s)break;s=i}return s}exports.deepElementFromPoint=deepElementFromPoint;function roundTo(e,t){const s=Math.pow(10,t);return Math.round(e*s)/s}exports.roundTo=roundTo;function addAttributeValueToElement(e,t,s){const i=e.getAttribute(t);if(i){if(!i.split(/\s+/).includes(s)){setAttribute(e,t,i+" "+s)}}else setAttribute(e,t,s)}exports.addAttributeValueToElement=addAttributeValueToElement;function removeAttributeValueFromElement(e,t,s){const i=e.getAttribute(t);if(!i)return;const r=s.toString(),n=i.split(/\s+/).filter(e=>e!==r);n.length>0?e.setAttribute(t,n.join(" ")):e.removeAttribute(t)}exports.removeAttributeValueFromElement=removeAttributeValueFromElement;function replaceItems(e,t){const s=new Map(t.map(e=>[`${e.value}`,e]));return e.map(e=>{const t=`${e.value}`;return s.has(t)?s.get(t):e})}exports.replaceItems=replaceItems;class _Map{constructor(e=!0){if(e)this._h={};else{let e=_getGlobal(),t=e&&e.Map;this._m=t&&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(e){this._h?delete this._h[e]:this._m.delete(e)}get(e){return this._h?this._h[e]:this._m.get(e)}has(e){return this._h?e in this._h:this._m.has(e)}set(e,t){this._h?this._h[e]=t:this._m.set(e,t);return this}}exports._Map=_Map;class _ArrayMap{constructor(){this._d=[]}get size(){return this._d.length}clear(){this._d=[]}delete(e){let t=this._kIdx(e);if(t>-1){this._d.splice(t,1);return!0}return!1}get(e){let t=this._kIdx(e);return t>-1?this._d[t].v:void 0}has(e){return this._kIdx(e)>-1}set(e,t){let s=this._kIdx(e);s>-1?this._d[s].v=t:this._d.push({k:e,v:t});return this}_kIdx(e){let t=this._d,s=t.length;if(e==e){for(let i=0;i<s;i++)if(t[i].k===e)return i}else for(let e=0;e<s;e++){let s=t[e].k;if(s!=s)return e}return-1}}function _getGlobal(){let e=null;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self);return e}class Color{constructor(e){this._r=0;this._g=0;this._b=0;this._a=1;e&&this._parse(e)}get r(){return this._r}set r(e){this._r=clamp(asNumber(e),0,255)}get g(){return this._g}set g(e){this._g=clamp(asNumber(e),0,255)}get b(){return this._b}set b(e){this._b=clamp(asNumber(e),0,255)}get a(){return this._a}set a(e){this._a=clamp(asNumber(e),0,1)}equals(e){return e instanceof Color&&this.r==e.r&&this.g==e.g&&this.b==e.b&&this.a==e.a}toString(){let e=Math.round(100*this.a);return e>99?"#"+((1<<24)+(this.r<<16)+(this.g<<8)+this.b).toString(16).slice(1):"rgba("+this.r+","+this.g+","+this.b+","+e/100+")"}static fromRgba(e,t,s,i=1){let r=new Color(null);r.r=Math.round(clamp(asNumber(e),0,255));r.g=Math.round(clamp(asNumber(t),0,255));r.b=Math.round(clamp(asNumber(s),0,255));r.a=clamp(asNumber(i),0,1);return r}static fromHsb(e,t,s,i=1){let r=Color._hsbToRgb(clamp(asNumber(e),0,1),clamp(asNumber(t),0,1),clamp(asNumber(s),0,1));return Color.fromRgba(r[0],r[1],r[2],i)}static fromHsl(e,t,s,i=1){let r=Color._hslToRgb(clamp(asNumber(e),0,1),clamp(asNumber(t),0,1),clamp(asNumber(s),0,1));return Color.fromRgba(r[0],r[1],r[2],i)}static fromString(e){let t=new Color(null);return t._parse(asString(e))?t:null}getHsb(){return Color._rgbToHsb(this.r,this.g,this.b)}getHsl(){return Color._rgbToHsl(this.r,this.g,this.b)}static interpolate(e,t,s){s=clamp(asNumber(s),0,1);let i=Color._rgbToHsl(e.r,e.g,e.b),r=Color._rgbToHsl(t.r,t.g,t.b),n=1-s,o=e.a*n+t.a*s,l=[i[0]*n+r[0]*s,i[1]*n+r[1]*s,i[2]*n+r[2]*s],a=Color._hslToRgb(l[0],l[1],l[2]);return Color.fromRgba(a[0],a[1],a[2],o)}static toOpaque(e,t){if(1==(e=isString(e)?Color.fromString(e):asType(e,Color)).a)return e;t=null==t?Color.fromRgba(255,255,255,1):isString(t)?Color.fromString(t):asType(t,Color);let s=e.a,i=1-s;return Color.fromRgba(e.r*s+t.r*i,e.g*s+t.g*i,e.b*s+t.b*i)}_parse(e){if("transparent"==(e=e.toLowerCase())){this._r=this._g=this._b=this._a=0;return!0}if(e&&0!=e.indexOf("#")&&0!=e.indexOf("rgb")&&0!=e.indexOf("hsl")){let t=document.createElement("div");t.style.color=e;let s=t.style.color;if(s==e&&!(s=window.getComputedStyle(t).color)){document.body.appendChild(t);s=window.getComputedStyle(t).color;removeChild(t)}e=s.toLowerCase()}if(0==e.indexOf("#")){if(this._isValidHexColor(e)){if(4==e.length){this.r=parseInt(e[1]+e[1],16);this.g=parseInt(e[2]+e[2],16);this.b=parseInt(e[3]+e[3],16);this.a=1;return!0}if(7==e.length){this.r=parseInt(e.substr(1,2),16);this.g=parseInt(e.substr(3,2),16);this.b=parseInt(e.substr(5,2),16);this.a=1;return!0}}return!1}if(0==e.indexOf("rgb")){let t=e.indexOf("("),s=e.indexOf(")");if(t>-1&&s>-1){let i=e.substr(t+1,s-(t+1)).split(",");if(i.length>2){this.r=parseInt(i[0]);this.g=parseInt(i[1]);this.b=parseInt(i[2]);this.a=i.length>3?parseFloat(i[3]):1;return!0}}}if(0==e.indexOf("hsl")){let t=e.indexOf("("),s=e.indexOf(")");if(t>-1&&s>-1){let i=e.substr(t+1,s-(t+1)).split(",");if(i.length>2){let e=parseInt(i[0])/360,t=parseInt(i[1]),s=parseInt(i[2]);i[1].indexOf("%")>-1&&(t/=100);i[2].indexOf("%")>-1&&(s/=100);let r=Color._hslToRgb(e,t,s);this.r=r[0];this.g=r[1];this.b=r[2];this.a=i.length>3?parseFloat(i[3]):1;return!0}}}return!1}_isValidHexColor(e){return/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/.test(e)}static _hslToRgb(e,t,s){assert(e>=0&&e<=1&&t>=0&&t<=1&&s>=0&&s<=1,"bad HSL values");let i,r,n;if(0==t)i=r=n=s;else{let o=s<.5?s*(1+t):s+t-s*t,l=2*s-o;i=Color._hue2rgb(l,o,e+1/3);r=Color._hue2rgb(l,o,e);n=Color._hue2rgb(l,o,e-1/3)}return[Math.round(255*i),Math.round(255*r),Math.round(255*n)]}static _hue2rgb(e,t,s){s<0&&(s+=1);s>1&&(s-=1);return s<1/6?e+6*(t-e)*s:s<.5?t:s<2/3?e+(t-e)*(2/3-s)*6:e}static _rgbToHsl(e,t,s){assert(e>=0&&e<=255&&t>=0&&t<=255&&s>=0&&s<=255,"bad RGB values");e/=255,t/=255,s/=255;let i,r,n=Math.max(e,t,s),o=Math.min(e,t,s),l=(n+o)/2;if(n==o)i=r=0;else{let a=n-o;r=l>.5?a/(2-n-o):a/(n+o);switch(n){case e:i=(t-s)/a+(t<s?6:0);break;case t:i=(s-e)/a+2;break;case s:i=(e-t)/a+4}i/=6}return[i,r,l]}static _rgbToHsb(e,t,s){assert(e>=0&&e<=255&&t>=0&&t<=255&&s>=0&&s<=255,"bad RGB values");let i=Color._rgbToHsl(e,t,s);return Color._hslToHsb(i[0],i[1],i[2])}static _hsbToRgb(e,t,s){let i=Color._hsbToHsl(e,t,s);return Color._hslToRgb(i[0],i[1],i[2])}static _hsbToHsl(e,t,s){assert(e>=0&&e<=1&&t>=0&&t<=1&&s>=0&&s<=1,"bad HSB values");let i=clamp(s*(2-t)/2,0,1),r=1-Math.abs(2*i-1),n=clamp(r>0?s*t/r:t,0,1);assert(!isNaN(i)&&!isNaN(n),"bad conversion to HSL");return[e,n,i]}static _hslToHsb(e,t,s){assert(e>=0&&e<=1&&t>=0&&t<=1&&s>=0&&s<=1,"bad HSL values");let i=clamp(1==s?1:(2*s+t*(1-Math.abs(2*s-1)))/2,0,1),r=clamp(i>0?2*(i-s)/i:t,0,1);assert(!isNaN(i)&&!isNaN(r),"bad conversion to HSB");return[e,r,i]}}exports.Color=Color;exports.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]}}};class Globalize{static format(e,t,s,i,r){if(isString(e))return e;if(isNumber(e)){t=t||(e==Math.round(e)?"n0":"n2");return Globalize.formatNumber(e,t,s,i,r)}if(isDate(e)){t=t||"d";return Globalize.formatDate(e,t)}return null!=e?e.toString():""}static formatNumber(e,t,s,i,r){e=asNumber(e);t=asString(t);let n,o=exports.culture.Globalize.numberFormat,l=Globalize._parseNumericFormat(t),a=l.spec,h=l.prec,u=o["."]||".",c=o[","]||",",d=o["-"]||"-",p=Math;null==h&&(h=null!=r?r:"c"==a?o.currency.decimals:"e"==a?6:"r"==a?15:e==p.round(e)?0:2);l.scale&&(e/=p.pow(10,l.scale));if("d"==a||"x"==a){n=(i?p.floor:p.round)(p.abs(e)).toString("d"==a?10:16);for(;n.length<h;)n="0"+n;e<0&&(n=d+n);return"X"==l.specRaw?n.toUpperCase():n}i&&"p"!=a&&"e"!=a&&(e=toFixed(e,h,!0));switch(a){case"e":n=e.toExponential(h);"E"==l.specRaw&&(n=n.replace("e","E"));break;case"c":n=Globalize._toFixedStr(p.abs(e),h);break;case"p":e=Globalize._shiftDecimal(e,2,14);i&&(e=toFixed(e,h,i));n=Globalize._toFixedStr(p.abs(e),h);break;default:"-"!=(n=Globalize._toFixedStr(e,h))[0]||n.match(/[1-9]/)||(n=n.substr(1))}(s||"g"==a||"r"==a)&&n.indexOf(".")>-1&&(n=n.replace(/(\.\d*?)0+$/g,"$1").replace(/\.$/,""));"."!=u&&(n=n.replace(".",u));"-"!=d&&(n=n.replace("-",d));if(c&&("n"==a||"c"==a||"p"==l.specRaw||"F"==l.specRaw||"G"==l.specRaw)){let e=n.indexOf(u),t=/\B(?=(\d\d\d)+(?!\d))/g;n=e>-1?n.substr(0,e).replace(t,c)+n.substr(e):n.replace(t,c)}if("c"==a){let t=e<0&&n.match(/[1-9]/)?0:1,s=o.currency.pattern[t],i=l.curr||o.currency.symbol;""==i&&(i="");n=s.replace("n",n).replace("$",i)}if("p"==a){let t=e<0&&n.match(/[1-9]/)?0:1,s=o.percent.pattern[t],i=o["%"]||"%";n=s.replace("n",n);"%"!=i&&(n=n.replace("%",i));"-"!=d&&0==t&&(n=n.replace("-",d))}return l.prefix||l.suffix?l.prefix+n+l.suffix:n}static formatDate(e,t){e=asDate(e);switch(t){case"r":case"R":return e.toUTCString();case"u":return e.toISOString().replace(/\.\d{3}/,"")}t=Globalize._expandFormat(t);return Globalize._parseDateFormat(t).map(s=>Globalize._formatDatePart(e,t,s)).join("")}static parseInt(e,t){return Math.round(Globalize.parseFloat(e,t))}static parseFloat(e,t){let s=Globalize._parseNumericFormat(t),i=s.prefix;i&&0==e.indexOf(i)&&(e=e.substring(i.length));let r=s.suffix;if(r){let t=e.lastIndexOf(r);t>-1&&t==e.length-r.length&&(e=e.substring(0,e.length-r.length))}let n=exports.culture.Globalize.numberFormat,o=n["."]||".",l=n[","]||",",a=n["-"]||"-",h=n["%"]||"%",u=s.curr||n.currency.symbol||"$",c=e.indexOf(h)>-1,d=e.indexOf("(")>-1&&e.indexOf(")")>-1,p=0;if("x"==s.spec)p=parseInt(e,16);else{[u,h,"(",")"].forEach(t=>{e=e.replace(t,"")});/\s/.test(l)&&(e=e.replace(/\s+/g,""));let t=(e=e.replace(new RegExp("\\"+l,"g"),"").replace(new RegExp("\\"+a,"g"),"-").replace(/(\+|\-)\s+/g,"$1").replace(o,".").trim()).length;if(!d&&t&&"-"==e[t-1]){d=!0;e=e.substring(0,t-1)}p=/^\s*(\+|\-)?\d*(\.\d*)?(\s*E(\+|\-)?\d+)?\s*$/i.test(e)?parseFloat(e):Number.NaN}if(!isNaN(p)){d=d||p<0;p=Math.abs(p);c&&(p=Globalize._shiftDecimal(p,-2));d&&(p=-p);s.scale&&(p*=Math.pow(10,s.scale))}return p}static parseDate(e,t,s){if(!(e=asString(e)))return null;if("u"==t)return new Date(e);let i;if("R"==t||"r"==t){let t=/((\d+)\-(\d+)\-(\d+))?\s?((\d+):(\d+)(:(\d+))?)?/,s=e.match(t);if(s[1]||s[5]){i=s[1]?new Date(parseInt(s[2]),parseInt(s[3])-1,parseInt(s[4])):new Date;if(s[5]){i.setHours(parseInt(s[6]));i.setMinutes(parseInt(s[7]));i.setSeconds(s[8]?parseInt(s[9]):0)}}else i=new Date(e);return isNaN(i.getTime())?null:i}t=Globalize._expandFormat(t||"d");let r=expo