@highcharts/dashboards
Version:
Highcharts Dashboards framework
14 lines • 147 kB
JavaScript
!/**
* Highcharts Dashboards v3.5.0 (2025-07-14)
*
* (c) 2009-2025 Highsoft AS
*
* License: www.highcharts.com/license
*/function(e,t){"object"==typeof module&&module.exports?(t.default=t,module.exports=e&&e.document?t(e):t):"function"==typeof define&&define.amd?define("datagrid/datagrid",function(){return t(e)}):(e.DataGrid&&e.DataGrid.error(16,!0),e.DataGrid=t(e))}("undefined"!=typeof window?window:this,function(e){"use strict";var t={};function i(t,i,s,n){!t.hasOwnProperty(i)&&(t[i]=n.apply(null,s),e&&"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("DataGridModuleLoaded",{detail:{path:i,module:t[i]}})))}return i(t,"Core/Globals.js",[],function(){var t,i;return(i=t||(t={})).SVG_NS="http://www.w3.org/2000/svg",i.product="Highcharts",i.version="3.5.0",i.win=void 0!==e?e:{},i.doc=i.win.document,i.svg=!!i.doc?.createElementNS?.(i.SVG_NS,"svg")?.createSVGRect,i.pageLang=i.doc?.documentElement?.closest("[lang]")?.lang,i.userAgent=i.win.navigator?.userAgent||"",i.isChrome=i.win.chrome,i.isFirefox=-1!==i.userAgent.indexOf("Firefox"),i.isMS=/(edge|msie|trident)/i.test(i.userAgent)&&!i.win.opera,i.isSafari=!i.isChrome&&-1!==i.userAgent.indexOf("Safari"),i.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(i.userAgent),i.isWebKit=-1!==i.userAgent.indexOf("AppleWebKit"),i.deg2rad=2*Math.PI/360,i.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],i.noop=function(){},i.supportsPassiveEvents=function(){let e=!1;if(!i.isMS){let t=Object.defineProperty({},"passive",{get:function(){e=!0}});i.win.addEventListener&&i.win.removeEventListener&&(i.win.addEventListener("testPassive",i.noop,t),i.win.removeEventListener("testPassive",i.noop,t))}return e}(),i.charts=[],i.composed=[],i.dateFormats={},i.seriesTypes={},i.symbolSizes={},i.chartCount=0,t}),i(t,"Core/Utilities.js",[t["Core/Globals.js"]],function(e){let t,{charts:i,doc:s,win:n}=e;function r(t,i,s,o){let l=i?"Highcharts error":"Highcharts warning";32===t&&(t=`${l}: Deprecated member`);let a=c(t),d=a?`${l} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==o){let e="";a&&(d+="?"),T(o,function(t,i){e+=`
- ${i}: ${t}`,a&&(d+=encodeURI(i)+"="+encodeURI(t))}),d+=e}R(e,"displayError",{chart:s,code:t,message:d,params:o},function(){if(i)throw Error(d);n.console&&-1===r.messages.indexOf(d)&&console.warn(d)}),r.messages.push(d)}function o(e,t){return parseInt(e,t||10)}function l(e){return"string"==typeof e}function a(e){let t=Object.prototype.toString.call(e);return"[object Array]"===t||"[object Array Iterator]"===t}function d(e,t){return!!e&&"object"==typeof e&&(!t||!a(e))}function h(e){return d(e)&&"number"==typeof e.nodeType}function u(e){let t=e?.constructor;return!!(d(e,!0)&&!h(e)&&t?.name&&"Object"!==t.name)}function c(e){return"number"==typeof e&&!isNaN(e)&&e<1/0&&e>-1/0}function m(e){return null!=e}function p(e,t,i){let s,n=l(t)&&!m(i),r=(t,i)=>{m(t)?e.setAttribute(i,t):n?(s=e.getAttribute(i))||"class"!==i||(s=e.getAttribute(i+"Name")):e.removeAttribute(i)};return l(t)?r(i,t):T(t,r),s}function f(e){return a(e)?e:[e]}function g(e,t){let i;for(i in e||(e={}),t)e[i]=t[i];return e}function C(){let e=arguments,t=e.length;for(let i=0;i<t;i++){let t=e[i];if(null!=t)return t}}function y(e,t){g(e.style,t)}function b(e){return Math.pow(10,Math.floor(Math.log(e)/Math.LN10))}function w(e,t){return e>1e14?e:parseFloat(e.toPrecision(t||14))}(r||(r={})).messages=[],Math.easeInOutSine=function(e){return -.5*(Math.cos(Math.PI*e)-1)};let v=Array.prototype.find?function(e,t){return e.find(t)}:function(e,t){let i,s=e.length;for(i=0;i<s;i++)if(t(e[i],i))return e[i]};function T(e,t,i){for(let s in e)Object.hasOwnProperty.call(e,s)&&t.call(i||e[s],e[s],s,e)}function E(e,t,i){function s(t,i){let s=e.removeEventListener;s&&s.call(e,t,i,!1)}function n(i){let n,r;e.nodeName&&(t?(n={})[t]=!0:n=i,T(n,function(e,t){if(i[t])for(r=i[t].length;r--;)s(t,i[t][r].fn)}))}let r="function"==typeof e&&e.prototype||e;if(Object.hasOwnProperty.call(r,"hcEvents")){let e=r.hcEvents;if(t){let r=e[t]||[];i?(e[t]=r.filter(function(e){return i!==e.fn}),s(t,i)):(n(e),e[t]=[])}else n(e),delete r.hcEvents}}function R(t,i,n,r){if(n=n||{},s?.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==e)){let e=s.createEvent("Events");e.initEvent(i,!0,!0),n=g(e,n),t.dispatchEvent?t.dispatchEvent(n):t.fireEvent(i,n)}else if(t.hcEvents){n.target||g(n,{preventDefault:function(){n.defaultPrevented=!0},target:t,type:i});let e=[],s=t,r=!1;for(;s.hcEvents;)Object.hasOwnProperty.call(s,"hcEvents")&&s.hcEvents[i]&&(e.length&&(r=!0),e.unshift.apply(e,s.hcEvents[i])),s=Object.getPrototypeOf(s);r&&e.sort((e,t)=>e.order-t.order),e.forEach(e=>{!1===e.fn.call(t,n)&&n.preventDefault()})}r&&!n.defaultPrevented&&r.call(t,n)}let x=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();return n.jQuery&&(n.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new e[l(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):i[p(this[0],"data-highcharts-chart")]}),{addEvent:function(t,i,s,n={}){let r="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(r,"hcEvents")||(r.hcEvents={});let o=r.hcEvents;e.Point&&t instanceof e.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let l=t.addEventListener;l&&l.call(t,i,s,!!e.supportsPassiveEvents&&{passive:void 0===n.passive?-1!==i.indexOf("touch"):n.passive,capture:!1}),o[i]||(o[i]=[]);let a={fn:s,order:"number"==typeof n.order?n.order:1/0};return o[i].push(a),o[i].sort((e,t)=>e.order-t.order),function(){E(t,i,s)}},arrayMax:function(e){let t=e.length,i=e[0];for(;t--;)e[t]>i&&(i=e[t]);return i},arrayMin:function(e){let t=e.length,i=e[0];for(;t--;)e[t]<i&&(i=e[t]);return i},attr:p,clamp:function(e,t,i){return e>t?e<i?e:i:t},clearTimeout:function(e){m(e)&&clearTimeout(e)},correctFloat:w,createElement:function(e,t,i,n,r){let o=s.createElement(e);return t&&g(o,t),r&&y(o,{padding:"0",border:"none",margin:"0"}),i&&y(o,i),n&&n.appendChild(o),o},crisp:function(e,t=0,i){let s=t%2/2,n=i?-1:1;return(Math.round(e*n-s)+s)*n},css:y,defined:m,destroyObjectProperties:function(e,t,i){T(e,function(s,n){s!==t&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete e[n]})},diffObjects:function(e,t,i,s){let n={};return!function e(t,n,r,o){let l=i?n:t;T(t,function(i,h){if(!o&&s&&s.indexOf(h)>-1&&n[h]){i=f(i),r[h]=[];for(let t=0;t<Math.max(i.length,n[h].length);t++)n[h][t]&&(void 0===i[t]?r[h][t]=n[h][t]:(r[h][t]={},e(i[t],n[h][t],r[h][t],o+1)))}else d(i,!0)&&!i.nodeType?(r[h]=a(i)?[]:{},e(i,n[h]||{},r[h],o+1),0===Object.keys(r[h]).length&&("colorAxis"!==h||0!==o)&&delete r[h]):(t[h]!==n[h]||h in t&&!(h in n))&&"__proto__"!==h&&"constructor"!==h&&(r[h]=l[h])})}(e,t,n,0),n},discardElement:function(e){e?.parentElement?.removeChild(e)},erase:function(e,t){let i=e.length;for(;i--;)if(e[i]===t){e.splice(i,1);break}},error:r,extend:g,extendClass:function(e,t){let i=function(){};return i.prototype=new e,g(i.prototype,t),i},find:v,fireEvent:R,getAlignFactor:(e="")=>({center:.5,right:1,middle:.5,bottom:1})[e]||0,getClosestDistance:function(e,t){let i,s,n,r,o=!t;return e.forEach(e=>{if(e.length>1)for(r=s=e.length-1;r>0;r--)(n=e[r]-e[r-1])<0&&!o?(t?.(),t=void 0):n&&(void 0===i||n<i)&&(i=n)}),i},getMagnitude:b,getNestedProperty:function(e,t){let i=e.split(".");for(;i.length&&m(t);){let e=i.shift();if(void 0===e||"__proto__"===e)return;if("this"===e){let e;return d(t)&&(e=t["@this"]),e??t}let s=t[e.replace(/[\\'"]/g,"")];if(!m(s)||"function"==typeof s||"number"==typeof s.nodeType||s===n)return;t=s}return t},getStyle:function e(t,i,s){let r;if("width"===i){let i=Math.min(t.offsetWidth,t.scrollWidth),s=t.getBoundingClientRect?.().width;return s<i&&s>=i-1&&(i=Math.floor(s)),Math.max(0,i-(e(t,"padding-left",!0)||0)-(e(t,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(e(t,"padding-top",!0)||0)-(e(t,"padding-bottom",!0)||0));let l=n.getComputedStyle(t,void 0);return l&&(r=l.getPropertyValue(i),C(s,"opacity"!==i)&&(r=o(r))),r},insertItem:function(e,t){let i,s=e.options.index,n=t.length;for(i=e.options.isInternal?n:0;i<n+1;i++)if(!t[i]||c(s)&&s<C(t[i].options.index,t[i]._i)||t[i].options.isInternal){t.splice(i,0,e);break}return i},isArray:a,isClass:u,isDOMElement:h,isFunction:function(e){return"function"==typeof e},isNumber:c,isObject:d,isString:l,merge:function(e,...t){let i,s=[e,...t],n={},r=function(e,t){return"object"!=typeof e&&(e={}),T(t,function(i,s){"__proto__"!==s&&"constructor"!==s&&(!d(i,!0)||u(i)||h(i)?e[s]=t[s]:e[s]=r(e[s]||{},i))}),e};!0===e&&(n=s[1],s=Array.prototype.slice.call(s,2));let o=s.length;for(i=0;i<o;i++)n=r(n,s[i]);return n},normalizeTickInterval:function(e,t,i,s,n){let r,o=e;i=C(i,b(e));let l=e/i;for(!t&&(t=n?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===s&&(1===i?t=t.filter(function(e){return e%1==0}):i<=.1&&(t=[1/i]))),r=0;r<t.length&&(o=t[r],(!n||!(o*i>=e))&&(n||!(l<=(t[r]+(t[r+1]||t[r]))/2)));r++);return w(o*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:T,offset:function(e){let t=s.documentElement,i=e.parentElement||e.parentNode?e.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:i.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0),width:i.width,height:i.height}},pad:function(e,t,i){return Array((t||2)+1-String(e).replace("-","").length).join(i||"0")+e},pick:C,pInt:o,pushUnique:function(e,t){return 0>e.indexOf(t)&&!!e.push(t)},relativeLength:function(e,t,i){return/%$/.test(e)?t*parseFloat(e)/100+(i||0):parseFloat(e)},removeEvent:E,replaceNested:function(e,...t){let i,s;do for(s of(i=e,t))e=e.replace(s[0],s[1]);while(e!==i);return e},splat:f,stableSort:function(e,t){let i,s,n=e.length;for(s=0;s<n;s++)e[s].safeI=s;for(e.sort(function(e,s){return 0===(i=t(e,s))?e.safeI-s.safeI:i}),s=0;s<n;s++)delete e[s].safeI},syncTimeout:function(e,t,i){return t>0?setTimeout(e,t,i):(e.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(e){return l(e)?e.substring(0,1).toUpperCase()+e.substring(1):String(e)},uniqueKey:x,useSerialIds:function(e){return t=C(e,t)},wrap:function(e,t,i){let s=e[t];e[t]=function(){let e=arguments,t=this;return i.apply(this,[function(){return s.apply(t,arguments.length?arguments:e)}].concat([].slice.call(arguments)))}}}}),i(t,"Core/Renderer/HTML/AST.js",[t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t){let{SVG_NS:i,win:s}=e,{attr:n,createElement:r,css:o,error:l,isFunction:a,isString:d,objectEach:h,splat:u}=t,{trustedTypes:c}=s,m=c&&a(c.createPolicy)&&c.createPolicy("highcharts",{createHTML:e=>e}),p=m?m.createHTML(""):"";class f{static filterUserAttributes(e){return h(e,(t,i)=>{let s=!0;-1===f.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=d(t)&&f.allowedReferences.some(e=>0===t.indexOf(e))),s||(l(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete e[i]),d(t)&&e[i]&&(e[i]=t.replace(/</g,"<"))}),e}static parseStyle(e){return e.split(";").reduce((e,t)=>{let i=t.split(":").map(e=>e.trim()),s=i.shift();return s&&i.length&&(e[s.replace(/-([a-z])/g,e=>e[1].toUpperCase())]=i.join(":")),e},{})}static setElementHTML(e,t){e.innerHTML=f.emptyHTML,t&&new f(t).addToDOM(e)}constructor(e){this.nodes="string"==typeof e?this.parseMarkup(e):e}addToDOM(t){return function t(s,r){let a;return u(s).forEach(function(s){let d,u=s.tagName,c=s.textContent?e.doc.createTextNode(s.textContent):void 0,m=f.bypassHTMLFiltering;if(u)if("#text"===u)d=c;else if(-1!==f.allowedTags.indexOf(u)||m){let l="svg"===u?i:r.namespaceURI||i,a=e.doc.createElementNS(l,u),p=s.attributes||{};h(s,function(e,t){"tagName"!==t&&"attributes"!==t&&"children"!==t&&"style"!==t&&"textContent"!==t&&(p[t]=e)}),n(a,m?p:f.filterUserAttributes(p)),s.style&&o(a,s.style),c&&a.appendChild(c),t(s.children||[],a),d=a}else l(33,!1,void 0,{"Invalid tagName in config":u});d&&r.appendChild(d),a=d}),a}(this.nodes,t)}parseMarkup(e){let t,i=[];e=e.trim().replace(/ style=(["'])/g," data-style=$1");try{t=new DOMParser().parseFromString(m?m.createHTML(e):e,"text/html")}catch(e){}if(!t){let i=r("div");i.innerHTML=e,t={body:i}}let s=(e,t)=>{let i=e.nodeName.toLowerCase(),n={tagName:i};"#text"===i&&(n.textContent=e.textContent||"");let r=e.attributes;if(r){let e={};[].forEach.call(r,t=>{"data-style"===t.name?n.style=f.parseStyle(t.value):e[t.name]=t.value}),n.attributes=e}if(e.childNodes.length){let t=[];[].forEach.call(e.childNodes,e=>{s(e,t)}),t.length&&(n.children=t)}t.push(n)};return[].forEach.call(t.body.childNodes,e=>s(e,i)),i}}return f.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","disabled","dx","dy","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","result","role","rowspan","scope","slope","src","startOffset","stdDeviation","stroke-linecap","stroke-width","stroke","style","summary","tabindex","tableValues","target","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],f.allowedReferences=["https://","http://","mailto:","/","../","./","#"],f.allowedTags=["#text","a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","tbody","td","text","textPath","th","thead","title","tr","tspan","u","ul"],f.emptyHTML=p,f.bypassHTMLFiltering=!1,f}),i(t,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),i(t,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),i(t,"Shared/TimeBase.js",[t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t){let{pageLang:i,win:s}=e,{defined:n,error:r,extend:o,isNumber:l,isObject:a,isString:d,merge:h,objectEach:u,pad:c,splat:m,timeUnits:p,ucfirst:f}=t,g=e.isSafari&&s.Intl&&!s.Intl.DateTimeFormat.prototype.formatRange,C=e=>void 0===e.main;return class{constructor(e,t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=s.Date,this.update(e),this.lang=t}update(e={}){this.dTLCache={},this.options=e=h(!0,this.options,e);let{timezoneOffset:t,useUTC:i,locale:r}=e;this.Date=e.Date||s.Date||Date;let o=e.timezone;n(i)&&(o=i?"UTC":void 0),t&&t%60==0&&(o="Etc/GMT"+(t>0?"+":"")+t/60),this.variableTimezone="UTC"!==o&&o?.indexOf("Etc/GMT")!==0,this.timezone=o,this.lang&&r&&(this.lang.locale=r),["months","shortMonths","weekdays","shortWeekdays"].forEach(e=>{let t=/months/i.test(e),i=/short/.test(e),s={timeZone:"UTC"};s[t?"month":"weekday"]=i?"short":"long",this[e]=(t?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(e=>this.dateFormat(s,(t?31:1)*24*36e5*e))})}toParts(e){let[t,i,s,n,r,o,l]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},e,"es").split(/(?:, | |\/|:)/g);return[n,s-1,i,r,o,l,Math.floor(Number(e)||0)%1e3,"DLMXJVS".indexOf(t)].map(Number)}dateTimeFormat(e,t,s=this.options.locale||i){let n=JSON.stringify(e)+s;d(e)&&(e=this.str2dtf(e));let o=this.dTLCache[n];if(!o){e.timeZone??(e.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(s,e)}catch(t){/Invalid time zone/i.test(t.message)?(r(34),e.timeZone="UTC",o=new Intl.DateTimeFormat(s,e)):r(t.message,!1)}}return this.dTLCache[n]=o,o?.format(t)||""}str2dtf(e,t={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==e.indexOf(s)&&o(t,i[s])}),t}makeTime(e,t,i=1,s=0,n,r,o){let l=this.Date.UTC(e,t,i,s,n||0,r||0,o||0);if("UTC"!==this.timezone){let e=this.getTimezoneOffset(l);if(l+=e,-1!==[2,3,8,9,10,11].indexOf(t)&&(s<5||s>20)){let t=this.getTimezoneOffset(l);e!==t?l+=t-e:e-36e5!==this.getTimezoneOffset(l-36e5)||g||(l-=36e5)}}return l}parse(e){if(!d(e))return e??void 0;let t=(e=e.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(e),i=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(e);t||i||(e+="Z");let s=Date.parse(e);if(l(s))return s+(!t||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(e){if("UTC"!==this.timezone){let[t,i,s,n,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},e,"en").split(/(GMT|:)/).map(Number),o=-(60*(s+r/60)*6e4);if(l(o))return o}return 0}dateFormat(t,i,s){let r=this.lang;if(!n(i)||isNaN(i))return r?.invalidDate||"";if(d(t=t??"%Y-%m-%d %H:%M:%S")){let e,s=/%\[([a-zA-Z]+)\]/g;for(;e=s.exec(t);)t=t.replace(e[0],this.dateTimeFormat(e[1],i,r?.locale))}if(d(t)&&-1!==t.indexOf("%")){let s=this,[n,l,a,h,m,p,f,g]=this.toParts(i),C=r?.weekdays||this.weekdays,y=r?.shortWeekdays||this.shortWeekdays,b=r?.months||this.months,w=r?.shortMonths||this.shortMonths;u(o({a:y?y[g]:C[g].substr(0,3),A:C[g],d:c(a),e:c(a,2," "),w:g,v:r?.weekFrom??"",b:w[l],B:b[l],m:c(l+1),o:l+1,y:n.toString().substr(2,2),Y:n,H:c(h),k:h,I:c(h%12||12),l:h%12||12,M:c(m),p:h<12?"AM":"PM",P:h<12?"am":"pm",S:c(p),L:c(f,3)},e.dateFormats),function(e,n){if(d(t))for(;-1!==t.indexOf("%"+n);)t=t.replace("%"+n,"function"==typeof e?e.call(s,i):e)})}else if(a(t)){let e=(this.getTimezoneOffset(i)||0)/36e5,s=this.timezone||"Etc/GMT"+(e>=0?"+":"")+e,{prefix:n="",suffix:r=""}=t;t=n+this.dateTimeFormat(o({timeZone:s},t),i)+r}return s?f(t):t}resolveDTLFormat(e){return a(e,!0)?a(e,!0)&&C(e)?{main:e}:e:{main:(e=m(e))[0],from:e[1],to:e[2]}}getDateFormat(e,t,i,s){let n=this.dateFormat("%m-%d %H:%M:%S.%L",t),r="01-01 00:00:00.000",o={millisecond:15,second:12,minute:9,hour:6,day:3},l="millisecond",a=l;for(l in p){if(e&&e===p.week&&+this.dateFormat("%w",t)===i&&n.substr(6)===r.substr(6)){l="week";break}if(e&&p[l]>e){l=a;break}if(o[l]&&n.substr(o[l])!==r.substr(o[l]))break;"week"!==l&&(a=l)}return this.resolveDTLFormat(s[l]).main}}}),i(t,"Core/Time.js",[t["Shared/TimeBase.js"],t["Core/Utilities.js"]],function(e,t){let{defined:i,extend:s,timeUnits:n}=t;return class extends e{getTimeTicks(e,t,r,o){let l=this,a=[],d={},{count:h=1,unitRange:u}=e,[c,m,p,f,g,C]=l.toParts(t),y=(t||0)%1e3,b;if(o??(o=1),i(t)){if(y=u>=n.second?0:h*Math.floor(y/h),u>=n.second&&(C=u>=n.minute?0:h*Math.floor(C/h)),u>=n.minute&&(g=u>=n.hour?0:h*Math.floor(g/h)),u>=n.hour&&(f=u>=n.day?0:h*Math.floor(f/h)),u>=n.day&&(p=u>=n.month?1:Math.max(1,h*Math.floor(p/h))),u>=n.month&&(m=u>=n.year?0:h*Math.floor(m/h)),u>=n.year&&(c-=c%h),u===n.week){h&&(t=l.makeTime(c,m,p,f,g,C,y));let e=this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},t,"es"),i="DLMXJVS".indexOf(e);p+=-i+o+(i<o?-7:0)}t=l.makeTime(c,m,p,f,g,C,y),l.variableTimezone&&i(r)&&(b=r-t>4*n.month||l.getTimezoneOffset(t)!==l.getTimezoneOffset(r));let e=t,s=1;for(;e<r;)a.push(e),u===n.year?e=l.makeTime(c+s*h,0):u===n.month?e=l.makeTime(c,m+s*h):b&&(u===n.day||u===n.week)?e=l.makeTime(c,m,p+s*h*(u===n.day?1:7)):b&&u===n.hour&&h>1?e=l.makeTime(c,m,p,f+s*h):e+=u*h,s++;a.push(e),u<=n.hour&&a.length<1e4&&a.forEach(e=>{e%18e5==0&&"000000000"===l.dateFormat("%H%M%S%L",e)&&(d[e]="day")})}return a.info=s(e,{higherRanks:d,totalRange:u*h}),a}}}),i(t,"Core/Defaults.js",[t["Core/Chart/ChartDefaults.js"],t["Core/Globals.js"],t["Core/Color/Palettes.js"],t["Core/Time.js"],t["Core/Utilities.js"]],function(e,t,i,s,n){let{isTouchDevice:r}=t,{fireEvent:o,merge:l}=n,a={colors:i.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{weekFrom:"week from",chartTitle:"Chart title",locale:void 0,loading:"Loading...",months:void 0,seriesName:"Series {add index 1}",shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],pieSliceName:"Slice",resetZoom:"Reset zoom",yAxisTitle:"Values",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:e,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{color:"#333333",fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:e=>Math.sqrt(1-Math.pow(e-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"%v %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,position:{x:0,y:3},shared:!1,snap:r?25:10,headerFormat:'<span style="font-size: 0.8em">{ucfirst point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"#ffffff",borderWidth:void 0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}},d=new s(a.time,a.lang);return{defaultOptions:a,defaultTime:d,getOptions:function(){return a},setOptions:function(e){return o(t,"setOptions",{options:e}),l(!0,a,e),e.time&&d.update(a.time),e.lang&&"locale"in e.lang&&d.update({locale:e.lang.locale}),e.lang?.chartTitle&&(a.title={...a.title,text:e.lang.chartTitle}),a}}}),i(t,"Core/Templating.js",[t["Core/Defaults.js"],t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){let{defaultOptions:s,defaultTime:n}=e,{pageLang:r}=t,{extend:o,getNestedProperty:l,isArray:a,isNumber:d,isObject:h,isString:u,pick:c,ucfirst:m}=i,p={add:(e,t)=>e+t,divide:(e,t)=>0!==t?e/t:"",eq:(e,t)=>e==t,each:function(e){let t=arguments[arguments.length-1];return!!a(e)&&e.map((i,s)=>C(t.body,o(h(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===e.length-1}))).join("")},ge:(e,t)=>e>=t,gt:(e,t)=>e>t,if:e=>!!e,le:(e,t)=>e<=t,lt:(e,t)=>e<t,multiply:(e,t)=>e*t,ne:(e,t)=>e!=t,subtract:(e,t)=>e-t,ucfirst:m,unless:e=>!e},f={},g=e=>/^["'].+["']$/.test(e);function C(e="",t,i){let r=/\{([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/g,o=/\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g,a=[],d=/f$/,h=/\.(\d)/,m=i?.options?.lang||s.lang,f=i?.time||n,b=i?.numberFormatter||y.bind(i),w=(e="")=>{let i;return"true"===e||"false"!==e&&((i=Number(e)).toString()===e?i:g(e)?e.slice(1,-1):l(e,t))},v,T,E=0,R;for(;null!==(v=r.exec(e));){let i=v,s=o.exec(v[1]);s&&(v=s,R=!0),T?.isBlock||(T={ctx:t,expression:v[1],find:v[0],isBlock:"#"===v[1].charAt(0),start:v.index,startInner:v.index+v[0].length,length:v[0].length});let n=(T.isBlock?i:v)[1].split(" ")[0].replace("#","");p[n]&&(T.isBlock&&n===T.fn&&E++,T.fn||(T.fn=n));let r="else"===v[1];if(T.isBlock&&T.fn&&(v[1]===`/${T.fn}`||r))if(E)!r&&E--;else{let t=T.startInner,i=e.substr(t,v.index-t);void 0===T.body?(T.body=i,T.startInner=v.index+v[0].length):T.elseBody=i,T.find+=i+v[0],r||(a.push(T),T=void 0)}else T.isBlock||a.push(T);if(s&&!T?.isBlock)break}return a.forEach(s=>{let n,r,{body:l,elseBody:a,expression:y,fn:v}=s;if(v){let e=[s],o=[],d=y.length,h=0,u;for(r=0;r<=d;r++){let e=y.charAt(r);u||'"'!==e&&"'"!==e?u===e&&(u=""):u=e,u||" "!==e&&r!==d||(o.push(y.substr(h,r-h)),h=r+1)}for(r=p[v].length;r--;)e.unshift(w(o[r+1]));n=p[v].apply(t,e),s.isBlock&&"boolean"==typeof n&&(n=C(n?l:a,t,i))}else{let e=g(y)?[y]:y.split(":"),t=(n=w(e.shift()||""))%1!=0;if("number"==typeof n&&(e.length||t)){let i=e.join(":");if(d.test(i)||t){let e=parseInt((i.match(h)||["","-1"])[1],10);null!==n&&(n=b(n,e,m.decimalPoint,i.indexOf(",")>-1?m.thousandsSep:""))}else n=f.dateFormat(i,n)}o.lastIndex=0,o.test(s.find)&&u(n)&&(n=`"${n}"`)}e=e.replace(s.find,c(n,""))}),R?C(e,t,i):e}function y(e,t,i,n){t*=1;let o,l,[a,h]=(e=+e||0).toString().split("e").map(Number),u=this?.options?.lang||s.lang,c=(e.toString().split(".")[1]||"").split("e")[0].length,m=t,p={};i??(i=u.decimalPoint),n??(n=u.thousandsSep),-1===t?t=Math.min(c,20):d(t)?t&&h<0&&((l=t+h)>=0?(a=+a.toExponential(l).split("e")[0],t=l):(a=Math.floor(a),e=t<20?+(a*Math.pow(10,h)).toFixed(t):0,h=0)):t=2,h&&(t??(t=2),e=a),d(t)&&t>=0&&(p.minimumFractionDigits=t,p.maximumFractionDigits=t),""===n&&(p.useGrouping=!1);let g=n||i,C=g?"en":this?.locale||u.locale||r,y=JSON.stringify(p)+C;return o=(f[y]??(f[y]=new Intl.NumberFormat(C,p))).format(e),g&&(o=o.replace(/([,\.])/g,"_$1").replace(/_\,/g,n??",").replace("_.",i??".")),(t||0!=+o)&&(!(h<0)||m)||(o="0"),h&&0!=+o&&(o+="e"+(h<0?"":"+")+h),o}return{dateFormat:function(e,t,i){return n.dateFormat(e,t,i)},format:C,helpers:p,numberFormat:y}}),i(t,"Grid/Core/Table/ColumnDistribution/ColumnDistributionStrategy.js",[t["Core/Utilities.js"]],function(e){let{getStyle:t}=e;class i{constructor(e){this.columnWidths={},this.viewport=e}loadColumns(){let{columns:e}=this.viewport;for(let t=0,i=e.length;t<i;++t)this.loadColumn(e[t])}reflow(){if("full"===this.type)return;let e=this.viewport,t=0;for(let i=0,s=e.columns.length;i<s;++i)t+=this.getColumnWidth(e.columns[i]);e.rowsWidth=t}static getMinWidth(e){let s=e.cells[0]?.htmlElement,n=e.header?.htmlElement,r=e=>(t(e,"padding-left",!0)||0)+(t(e,"padding-right",!0)||0)+(t(e,"border-left",!0)||0)+(t(e,"border-right",!0)||0),o=i.MIN_COLUMN_WIDTH;return s&&(o=Math.max(o,r(s))),n&&(o=Math.max(o,r(n))),o}}return i.MIN_COLUMN_WIDTH=20,i}),i(t,"Grid/Core/Table/ColumnDistribution/MixedDistributionStrategy.js",[t["Grid/Core/Table/ColumnDistribution/ColumnDistributionStrategy.js"],t["Core/Utilities.js"]],function(e,t){let{defined:i}=t;return class extends e{constructor(){super(...arguments),this.type="mixed",this.columnWidthUnits={}}loadColumn(e){let t,i=e.options.width;if(!i)return;let s=0;"number"==typeof i?(t=i,s=0):(t=parseFloat(i),s=+("%"===i.charAt(i.length-1))),this.columnWidthUnits[e.id]=s,this.columnWidths[e.id]=t}getColumnWidth(t){let s=this.viewport,n=this.columnWidths[t.id],r=e.getMinWidth(t);return i(n)?0===this.columnWidthUnits[t.id]?n:Math.max(s.getWidthFromRatio(n/100),r):Math.max((s.tbodyElement.clientWidth-this.calculateOccupiedWidth())/((s.grid.enabledColumns?.length||0)-Object.keys(this.columnWidths).length),r)}resize(t,i){let s=this.viewport,n=t.draggedColumn;if(!n)return;let r=t.columnStartWidth??0,o=e.getMinWidth(n),l=s.columns[n.index+1],a=Math.round(10*Math.max(r+i,o))/10;if(this.columnWidths[n.id]=a,this.columnWidthUnits[n.id]=0,n.update({width:a},!1),l){let e=this.columnWidths[l.id]=Math.round(10*Math.max((t.nextColumnStartWidth??0)+r-a,o))/10;this.columnWidthUnits[l.id]=0,l.update({width:e},!1)}}calculateOccupiedWidth(){let e,t,i=this.viewport,s=0,n=Object.keys(this.columnWidths);for(let r=0,o=n.length;r<o;++r){if(t=n[r],0===this.columnWidthUnits[t]){s+=this.columnWidths[t];continue}e=this.columnWidths[t],s+=i.getWidthFromRatio(e/100)}return s}}}),i(t,"Grid/Core/Globals.js",[],function(){var t,i;return(i=t||(t={})).classNamePrefix="hcg-",i.rawClassNames={container:"container",tableElement:"table",captionElement:"caption",descriptionElement:"description",theadElement:"thead",tbodyElement:"tbody",rowElement:"row",rowEven:"row-even",rowOdd:"row-odd",hoveredRow:"hovered-row",columnElement:"column",hoveredCell:"hovered-cell",hoveredColumn:"hovered-column",syncedRow:"synced-row",syncedCell:"synced-cell",syncedColumn:"synced-column",editedCell:"edited-cell",mockedRow:"mocked-row",rowsContentNowrap:"rows-content-nowrap",virtualization:"virtualization",scrollableContent:"scrollable-content",headerCell:"header-cell",headerCellContent:"header-cell-content",headerRow:"head-row-content",noData:"no-data",noPadding:"no-padding",columnFirst:"column-first",columnSortable:"column-sortable",columnSortableIcon:"column-sortable-icon",columnSortedAsc:"column-sorted-asc",columnSortedDesc:"column-sorted-desc",resizableContent:"resizable-content",resizerHandles:"column-resizer",resizedColumn:"column-resized",creditsContainer:"credits-container",creditsText:"credits",creditsPro:"credits-pro",visuallyHidden:"visually-hidden",lastHeaderCellInRow:"last-header-cell-in-row",loadingWrapper:"loading-wrapper",loadingSpinner:"spinner",loadingMessage:"loading-message"},i.win=e,i.composed=[],i.userAgent=i.win.navigator&&i.win.navigator.userAgent||"",i.isChrome=-1!==i.userAgent.indexOf("Chrome"),i.isSafari=!i.isChrome&&-1!==i.userAgent.indexOf("Safari"),i.getClassName=e=>i.classNamePrefix+i.rawClassNames[e],t}),i(t,"Grid/Core/GridUtils.js",[t["Core/Renderer/HTML/AST.js"]],function(e){e.allowedAttributes.push("srcset","media"),e.allowedTags.push("picture","source");var t,i=t||(t={});function s(e,t,i){let s=document.createElement(e);if(t){let e=Object.keys(t);for(let i=0;i<e.length;i++){let n=e[i],r=t[n];void 0!==r&&("style"===n?Object.assign(s.style,r):s[n]=r)}}return i&&i.appendChild(s),s}function n(e){return -1!==e.indexOf("<")}return i.makeHTMLElement=s,i.makeDiv=function(e,t){return s("div",{className:e,id:t})},i.isHTML=n,i.sanitizeText=function(e){try{return new DOMParser().parseFromString(e,"text/html").body.textContent||""}catch(e){return""}},i.setHTMLContent=function(t,i){n(i)?(t.innerHTML=e.emptyHTML,new e(i).addToDOM(t)):t.innerText=i},t}),i(t,"Grid/Core/Table/ColumnDistribution/FixedDistributionStrategy.js",[t["Grid/Core/Table/ColumnDistribution/ColumnDistributionStrategy.js"],t["Grid/Core/Globals.js"],t["Grid/Core/GridUtils.js"]],function(e,t,i){let{makeHTMLElement:s}=i;return class extends e{constructor(){super(...arguments),this.type="fixed",this.columnWidthUnits={}}loadColumn(e){let t,i=e.options.width;if(!i){this.columnWidths[e.id]=this.getInitialColumnWidth(e),this.columnWidthUnits[e.id]=0;return}let s=0;"number"==typeof i?(t=i,s=0):(t=parseFloat(i),s=+("%"===i.charAt(i.length-1))),this.columnWidthUnits[e.id]=s,this.columnWidths[e.id]=t}getColumnWidth(t){let i=this.viewport,s=this.columnWidths[t.id],n=e.getMinWidth(t);return 1===this.columnWidthUnits[t.id]?Math.max(i.getWidthFromRatio(s/100),n):s||100}resize(t,i){let s=t.draggedColumn;if(!s)return;let n=this.columnWidths[s.id]=Math.round(10*Math.max((t.columnStartWidth||0)+i,e.getMinWidth(s)))/10;this.columnWidthUnits[s.id]=0,s.update({width:n},!1)}getInitialColumnWidth(e){let{viewport:i}=this,n=s("div",{className:t.getClassName("columnElement")},i.grid.container);n.setAttribute("data-column-id",e.id),e.options.className&&n.classList.add(...e.options.className.split(/\s+/g));let r=n.offsetWidth||100;return n.remove(),r}}}),i(t,"Grid/Core/Table/ColumnDistribution/FullDistributionStrategy.js",[t["Grid/Core/Table/ColumnDistribution/ColumnDistributionStrategy.js"],t["Grid/Core/Globals.js"],t["Grid/Core/GridUtils.js"]],function(e,t,i){let{makeHTMLElement:s}=i;return class extends e{constructor(){super(...arguments),this.type="full",this.allPreviousWidths=0}loadColumn(e){let t=this.getInitialColumnWidth(e);this.allPreviousWidths+=t,this.columnWidths[e.id]=t}getColumnWidth(e){return this.viewport.getWidthFromRatio(this.columnWidths[e.id]||0)}resize(t,i){let s=this.viewport,n=t.draggedColumn;if(!n)return;let r=s.columns[n.index+1];if(!r)return;let o=t.columnStartWidth??0,l=t.nextColumnStartWidth??0,a=e.getMinWidth(n),d=o+i,h=l-i;d<a&&(d=a,h=o+l-a),h<a&&(h=a,d=o+l-a);let u=this.columnWidths[n.id]=s.getRatioFromWidth(d),c=this.columnWidths[r.id]=s.getRatioFromWidth(h);n.update({width:(100*u).toFixed(4)+"%"},!1),r.update({width:(100*c).toFixed(4)+"%"},!1)}getInitialFullDistWidth(e,t){let i=e.viewport,s=i.grid.enabledColumns?.length??0;if(e.index<s-1)return i.getRatioFromWidth(t.offsetWidth)||1/s;let n=1-this.allPreviousWidths;return n<0&&console.warn("The sum of the columns' widths exceeds the viewport width. It may cause unexpected behavior in the full distribution mode. Check the CSS styles of the columns. Corrections may be needed."),n}getInitialColumnWidth(e){let{viewport:i}=e,n=s("div",{className:t.getClassName("columnElement")},i.grid.container);n.setAttribute("data-column-id",e.id),e.options.className&&n.classList.add(...e.options.className.split(/\s+/g));let r=this.getInitialFullDistWidth(e,n);return n.remove(),r}}}),i(t,"Grid/Core/Table/ColumnDistribution/ColumnDistribution.js",[t["Grid/Core/Table/ColumnDistribution/ColumnDistributionStrategy.js"],t["Grid/Core/Table/ColumnDistribution/MixedDistributionStrategy.js"],t["Grid/Core/Table/ColumnDistribution/FixedDistributionStrategy.js"],t["Grid/Core/Table/ColumnDistribution/FullDistributionStrategy.js"],t["Core/Utilities.js"]],function(e,t,i,s,n){var r,o;let{defined:l}=n;return(o=r||(r={})).AbstractStrategy=e,o.types={mixed:t,fixed:i,full:s},o.initStrategy=function(e){return new o.types[function(e){let{options:t}=e.grid,i=t?.rendering?.columns,s=i?.resizing?.mode||i?.distribution;return s||(t?.columns?.some(e=>l(e.width))||l(t?.columnDefaults?.width)?"mixed":"full")}(e)](e)},r}),i(t,"Data/Modifiers/DataModifier.js",[t["Core/Utilities.js"]],function(t){var i;let{addEvent:s,fireEvent:n,merge:r}=t;class o{benchmark(t,i){let s=[],n=this,o=()=>{n.modifyTable(t),n.emit({type:"afterBenchmarkIteration"})},{iterations:l}=r({iterations:1},i);n.on("afterBenchmarkIteration",()=>{if(s.length===l)return void n.emit({type:"afterBenchmark",results:s});o()});let a={startTime:0,endTime:0};return n.on("modify",()=>{a.startTime=e.performance.now()}),n.on("afterModify",()=>{a.endTime=e.performance.now(),s.push(a.endTime-a.startTime)}),o(),s}emit(e){n(this,e.type,e)}modify(e,t){let i=this;return new Promise((s,n)=>{e.modified===e&&(e.modified=e.clone(!1,t));try{s(i.modifyTable(e,t))}catch(s){i.emit({type:"error",detail:t,table:e}),n(s)}})}modifyCell(e,t,i,s,n){return this.modifyTable(e)}modifyColumns(e,t,i,s){return this.modifyTable(e)}modifyRows(e,t,i,s){return this.modifyTable(e)}on(e,t){return s(this,e,t)}}return(i=o||(o={})).types={},i.registerType=function(e,t){return!!e&&!i.types[e]&&!!(i.types[e]=t)},o}),i(t,"Data/ColumnUtils.js",[],function(){var e,t;return(t=e||(e={})).setLength=function(e,t,i){return Array.isArray(e)?(e.length=t,e):e[i?"subarray":"slice"](0,t)},t.splice=function(e,t,i,s,n=[]){if(Array.isArray(e))return Array.isArray(n)||(n=Array.from(n)),{removed:e.splice(t,i,...n),array:e};let r=Object.getPrototypeOf(e).constructor,o=e[s?"subarray":"slice"](t,t+i),l=new r(e.length-i+n.length);return l.set(e.subarray(0,t),0),l.set(n,t),l.set(e.subarray(t+i),t+n.length),{removed:o,array:l}},e}),i(t,"Data/DataTableCore.js",[t["Data/ColumnUtils.js"],t["Core/Utilities.js"]],function(e,t){let{setLength:i,splice:s}=e,{fireEvent:n,objectEach:r,uniqueKey:o}=t;return class{constructor(e={}){this.autoId=!e.id,this.columns={},this.id=e.id||o(),this.modified=this,this.rowCount=0,this.versionTag=o();let t=0;r(e.columns||{},(e,i)=>{this.columns[i]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,r(this.columns,(t,s)=>{t.length!==e&&(this.columns[s]=i(t,e))})}deleteRows(e,t=1){if(t>0&&e<this.rowCount){let i=0;r(this.columns,(n,r)=>{this.columns[r]=s(n,e,t).array,i=n.length}),this.rowCount=i}n(this,"afterDeleteRows",{rowIndex:e,rowCount:t}),this.versionTag=o()}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRow(e,t){return(t||Object.keys(this.columns)).map(t=>this.columns[t]?.[e])}setColumn(e,t=[],i=0,s){this.setColumns({[e]:t},i,s)}setColumns(e,t,i){let s=this.rowCount;r(e,(e,t)=>{this.columns[t]=e.slice(),s=e.length}),this.applyRowCount(s),i?.silent||(n(this,"afterSetColumns"),this.versionTag=o())}setRow(e,t=this.rowCount,i,l){let{columns:a}=this,d=i?this.rowCount+1:t+1;r(e,(e,n)=>{let r=a[n]||l?.addColumns!==!1&&Array(d);r&&(i?r=s(r,t,0,!0,[e]).array:r[t]=e,a[n]=r)}),d>this.rowCount&&this.applyRowCount(d),l?.silent||(n(this,"afterSetRows"),this.versionTag=o())}}}),i(t,"Data/DataTable.js",[t["Data/ColumnUtils.js"],t["Data/DataTableCore.js"],t["Core/Utilities.js"]],function(e,t,i){let{addEvent:s,defined:n,extend:r,fireEvent:o,isNumber:l,uniqueKey:a}=i;class d extends t{static isNull(e){if(e===d.NULL)return!0;if(e instanceof Array){if(!e.length)return!1;for(let t=0,i=e.length;t<i;++t)if(null!==e[t])return!1}else{let t=Object.keys(e);if(!t.length)return!1;for(let i=0,s=t.length;i<s;++i)if(null!==e[t[i]])return!1}return!0}constructor(e={}){super(e),this.modified=this}clone(e,t){let i={};this.emit({type:"cloneTable",detail:t}),e||(i.columns=this.columns),this.autoId||(i.id=this.id);let s=new d(i);return e||(s.versionTag=this.versionTag,s.originalRowIndexes=this.originalRowIndexes,s.localRowIndexes=this.localRowIndexes),this.emit({type:"afterCloneTable",detail:t,tableClone:s}),s}deleteColumns(e,t){let i=this.columns,s={},n={},r=this.modifier,o=this.rowCount;if((e=e||Object.keys(i)).length){this.emit({type:"deleteColumns",columnNames:e,detail:t});for(let t=0,r=e.length,l,a;t<r;++t)(l=i[a=e[t]])&&(s[a]=l,n[a]=Array(o)),delete i[a];return Object.keys(i).length||(this.rowCount=0,this.deleteRowIndexReferences()),r&&r.modifyColumns(this,n,0,t),this.emit({type:"afterDeleteColumns",columns:s,columnNames:e,detail:t}),s}}deleteRowIndexReferences(){delete this.originalRowIndexes,delete this.localRowIndexes}deleteRows(t,i=1,s){let n=[],r=[],o=this.modifier;if(this.emit({type:"deleteRows",detail:s,rowCount:i,rowIndex:t||0}),void 0===t&&(t=0,i=this.rowCount),i>0&&t<this.rowCount){let s=this.columns,o=Object.keys(s);for(let l=0,a=o.length,d,h,u;l<a;++l){d=s[u=o[l]];let c=e.splice(d,t,i);h=c.removed,s[u]=d=c.array,l||(this.rowCount=d.length);for(let e=0,t=h.length;e<t;++e)n[e]=n[e]||[],n[e][l]=h[e];r.push(Array(a))}}return o&&o.modifyRows(this,r,t||0,s),this.emit({type:"afterDeleteRows",detail:s,rowCount:i,rowIndex:t||0,rows:n}),n}emit(e){["afterDeleteColumns","afterDeleteRows","afterSetCell","afterSetColumns","afterSetRows"].includes(e.type)&&(this.versionTag=a()),o(this,e.type,e)}getCell(e,t){let i=this.columns[e];if(i)return i[t]}getCellAsBoolean(e,t){let i=this.columns[e];return!!(i&&i[t])}getCellAsNumber(e,t,i){let s=this.columns[e],n=s&&s[t];switch(typeof n){case"boolean":return+!!n;case"number":return isNaN(n)&&!i?null:n}return isNaN(n=parseFloat(`${n??""}`))&&!i?null:n}getCellAsString(e,t){let i=this.columns[e];return`${i&&i[t]}`}getColumn(e,t){return this.getColumns([e],t)[e]}getColumnAsNumbers(e,t){let i=this.columns[e],s=[];if(i){let n=i.length;if(t)for(let t=0;t<n;++t)s.push(this.getCellAsNumber(e,t,!0));else{for(let e=0,t;e<n;++e){if("number"==typeof(t=i[e]))return i.slice();if(null!=t)break}for(let t=0;t<n;++t)s.push(this.getCellAsNumber(e,t))}}return s}getColumnNames(){return Object.keys(this.columns)}getColumns(e,t,i){let s=this.columns,n={};e=e||Object.keys(s);for(let r=0,o=e.length,l,a;r<o;++r)(l=s[a=e[r]])&&(t?n[a]=l:i&&!Array.isArray(l)?n[a]=Array.from(l):n[a]=l.slice());return n}getLocalRowIndex(e){let{localRowIndexes:t}=this;return t?t[e]:e}getModifier(){return this.modifier}getOriginalRowIndex(e){let{originalRowIndexes:t}=this;return t?t[e]:e}getRow(e,t){return this.getRows(e,1,t)[0]}getRowCount(){return this.rowCount}getRowIndexBy(e,t,i){let s=this.columns[e];if(s){let e=-1;if(Array.isArray(s)?e=s.indexOf(t,i):l(t)&&(e=s.indexOf(t,i)),-1!==e)return e}}getRowObject(e,t){return this.getRowObjects(e,1,t)[0]}getRowObjects(e=0,t=this.rowCount-e,i){let s=this.columns,n=Array(t);i=i||Object.keys(s);for(let r=e,o=0,l=Math.min(this.rowCount,e+t),a,d;r<l;++r,++o)for(let e of(d=n[o]={},i))a=s[e],d[e]=a?a[r]:void 0;return n}getRows(e=0,t=this.rowCount-e,i){let s=this.columns,n=Array(t);i=i||Object.keys(s);for(let r=e,o=0,l=Math.min(this.rowCount,e+t),a,d;r<l;++r,++o)for(let e of(d=n[o]=[],i))a=s[e],d.push(a?a[r]:void 0);return n}getVersionTag(){return this.versionTag}hasColumns(e){let t=this.columns;for(let i=0,s=e.length;i<s;++i)if(!t[e[i]])return!1;return!0}hasRowWith(e,t){let i=this.columns[e];return Array.isArray(i)?-1!==i.indexOf(t):!!(n(t)&&Number.isFinite(t))&&-1!==i.indexOf(+t)}on(e,t){return s(this,e,t)}renameColumn(e,t){let i=this.columns;return!!i[e]&&(e!==t&&(i[t]=i[e],delete i[e]),!0)}setCell(e,t,i,s){let n=this.columns,r=this.modifier,o=n[e];o&&o[t]===i||(this.emit({type:"setCell",cellValue:i,columnName:e,detail:s,rowIndex:t}),o||(o=n[e]=Array(this.rowCount)),t>=this.rowCount&&(this.rowCount=t+1),o[t]=i,r&&r.modifyCell(this,e,t,i),this.emit({type:"afterSetCell",cellValue:i,columnName:e,detail:s,rowIndex:t}))}setColumns(e,t,i,s){let o=this.columns,l=this.modifier,a=Object.keys(e),d=this.rowCount;if(this.emit({type:"setColumns",columns:e,columnNames:a,detail:i,rowIndex:t}),n(t)||s){for(let i=0,n=a.length,r,l,h,u;i<n;++i){r=e[h=a[i]],u=Object.getPrototypeOf((l=o[h])&&s?l:r).constructor,l?u===Array?Array.isArray(l)||(l=Array.from(l)):l.length<d&&(l=new u(d)).set(o[h]):l=new u(d),o[h]=l;for(let e=t||0,i=r.length;e<i;++e)l[e]=r[e];d=Math.max(d,r.length)}this.applyRowCount(d)}else super.setColumns(e,t,r(i,{silent:!0}));l&&l.modifyColumns(this,e,t||0),this.emit({type:"afterSetColumns",columns:e,columnNames:a,detail:i,rowIndex:t})}setModifier(e,t){let i,s=this;return s.emit({type:"setModifier",detail:t,modifier:e,modified:s.modified}),s.modified=s,s.modifier=e,(e?e.modify(s):Promise.resolve(s)).then(i=>(i.emit({type:"afterSetModifier",detail:t,modifier:e,modified:i.modified}),i)).catch(t=>{throw s.emit({type:"setModifierError",error:t,modifier:e,modified:s.modified}),t})}setOriginalRowIndexes(e,t=!1){if(this.originalRowIndexes=e,t)return;let i=this.localRowIndexes=[];for(let t=0,s=e.length,r;t<s;++t)n(r=e[t])&&(i[r]=t)}setRow(e,t,i,s){this.setRows([e],t,i,s)}setRows(t,i=this.rowCount,s,n){let r=this.columns,o=Object.keys(r),l=this.modifier,a=t.length;this.emit({type:"setRows",detail:n,rowCount:a,rowIndex:i,rows:t});for(let n=0,l=i,h;n<a;++n,++l)if((h=t[n])===d.NULL)for(let t=0,i=o.length;t<i;++t){let i=r[o[t]];s?r[o[t]]=e.splice(i,l,0,!0,[null]).array:i[l]=null}else if(h instanceof Array)for(let e=0,t=o.length;e<t;++e)r[o[e]][l]=h[e];else super.setRow(h,l,void 0,{silent:!0});let h=s?a+t.length:i+a;if(h>this.rowCount){this.rowCount=h;for(let t=0,i=o.length;t<i;++t){let i=o[t];r[i]=e.setLength(r[i],h)}}l&&l.modifyRows(this,t,i),this.emit({type:"afterSetRows",detail:n,rowCount:a,rowIndex:i,rows:t})}}return d.NULL={},d.version="1.0.0",d}),i(t,"Data/Connectors/DataConnector.js",[t["Data/Modifiers/DataModifier.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(t,i,s){var n;let{addEvent:r,fireEvent:o,merge:l,pick:a}=s;class d{constructor(e={},t=[]){this.dataTables={},this.loaded=!1,this.metadata=e.metadata||{columns:{}};let s=0;if(t?.length>0)for(let e=0,n=t.length;e<n;++e){let n=t[e],r=n?.key;this.dataTables[r??s]=new i(n),!r&&s++}else this.dataTables[0]=new i(e.dataTable)}get polling(){return!!this._polling}get table(){return this.getTable()}describeColumn(e,t){let i=this.metadata.columns;i[e]=l(i[e]||{},t)}describeColumns(e){let t,i=Object.keys(e);for(;"string"==typeof(t=i.pop());)this.describeColumn(t,e[t])}emit(e){o(this,e.type,e)}getColumnOrder(e){let t=this.metadata.columns,i=Object.keys(t||{});if(i.length)return i.sort((e,i)=>a(t[e].index,0)-a(t[i].index,0))}getTable(e){return e?this.dataTables[e]:Object.values(this.dataTables)[0]}getSortedColumns(e){return this.table.getColumns(this.getColumnOrder(e))}load(){return o(this,"afterLoad",{table:this.table}),Promise.resolve(this)}on(e,t){return r(this,e,t)}save(){return o(this,"saveError",{table:this.table}),Promise.reject(Error("Not implemented"))}setColumnOrder(e){for(let t=0,i=e.length;t<i;++t)this.describeColumn(e[t],{index:t})}async setModifierOptions(e,i){for(let[s,n]of Object.entries(this.dataTables)){let r=i?.find(e=>e.key===s),o=l(r?.dataModifier,e),a=o&&t.types[o.type];await n.setModifier(a?new a(o):void 0)}return this}startPolling(t=1e3){let i=this,s=i.dataTables;this.pollingController=new AbortController,e.clearTimeout(i._polling),i._polling=e.setTimeout(()=>i.load().catch(e=>i.emit({type:"loadError",error:e,tables:s})).then(()=>{i._polling&&i.startPolling(t)}),t)}stopPolling(){this.polling&&(this?.pollingController?.abort(),e.clearTimeout(this._polling),delete this._polling)}whatIs(e){return this.metadata.columns[e]}initConverters(e,t,i){let s=0;for(let[n,r]of Object.entries(this.dataTables)){let o=t(n,r);i(o,e),r.deleteColumns(),r.setColumns(o.getTable().getColumns()),0===s&&(this.converter=o),s++}}}return(n=d||(d={})).types={},n.registerType=function(e,t){return!!e&&!n.types[e]&&!!(n.types[e]=t)},d}),i(t,"Data/Converters/DataConverter.js",[t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t){var i;let{addEvent:s,fireEvent:n,isNumber:r,merge:o}=t;class l{constructor(e){this.dateFormats={"YYYY/mm/dd":{regex:/^(\d{4})([\-\.\/])(\d{1,2})\2(\d{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],e[3]-1,+e[4]):NaN}},"dd/mm/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[3]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[1]-1,+e[3]):NaN}},"dd/mm/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){let t=new Date;if(!e)return NaN;let i=+e[4];return i>t.getFullYear()-2e3?i+=1900:i+=2e3,Date.UTC(i,e[3]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){return e?Date.UTC(+e[4]+2e3,e[1]-1,+e[3]):NaN}}};let t=o(l.defaultOptions,e),i=t.decimalPoint;("."===i||","===i)&&(i="."===i?"\\.":",",this.decimalRegExp=RegExp("^(-?[0-9]+)"+i+"([0-9]+)$")),this.options=t}asBoolean(e){return"boolean"==typeof e?e:"string"==typeof e?""!==e&&"0"!==e&&"false"!==e:!!this.asNumber(e)}asDate(e){let t;if("string"==typeof e)t=this.parseDate(e);else if("number"==typeof e)t=e;else{if(e instanceof Date)return e;t=this.parseDate(this.asString(e))}return new Date(t)}asGuessedType(e){return({number:this.asNumber,Date:this.asDate,string:this.asString})[this.guessType(e)].call(this,e)}asNumber(e){if("number"==typeof e)return e;if("boolean"==typeof e)return+!!e;if("string"==typeof e){let t=this.decimalRegExp;if(e.indexOf(" ")>-1&&(e=e.replace(/\s+/g,"")),t){if(!t.test(e))return NaN;e=e.replace(t,"$1.$2")}return parseFloat(e)}return e instanceof Date?e.getDate():e?e.getRowCount():NaN}asString(e){return""+e}deduceDateFormat(e,t,i){let s=[],n=[],r="YYYY/mm/dd",o,l=[],a=0,d=!1,h,u;for((!t||t>e.length)&&(t=e.length);a<t;a++)if(void 0!==e[a]&&e[a]&&e[a].length)for(u=0,o=e[a].trim().replace(/[\-\.\/]/g," ").split(" "),l=["","",""];u<o.length;u++)u<l.length&&(h=parseInt(o[u],10))&&(n[u]=!n[u]||n[u]<h?h:n[u],void 0!==s[u]?s[u]!==h&&(s[u]=!1):s[u]=h,h>31?h<100?l[u]="YY":l[u]="YYYY":h>12&&h<=31?(l[u]="dd",d=!0):l[u].length||(l[u]="mm"));if(d){for(u=0;u<s.length;u++)!1!==s[u]?n[u]>12&&"YY"!==l[u]&&"YYYY"!==l[u]&&(l[u]="YY"):n[u]>12&&"mm"===l[u]&&(l[u]="dd");3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),r=l.join("/")}return i&&(this.options.dateFormat=r),r}emit(e){n(this,e.type,e)}export(e,t){throw this.emit({type:"exportError",columns:[],headers:[]}),Error("Not implemented")}getTable(){throw Error("Not implemented")}guessType(e){let t="string";if("string"==typeof e){let i=this.trim(`${e}`),s=this.decimalRegExp,n=this.trim(i,!0);s&&(n=s.test(n)?n.replace(s,"$1.$2"):"");let o=parseFloat(n);+n===o?e=o:t=r(this.parseDate(e))?"Date":"string"}return"number"==typeof e&&(t=e>31536e6?"Date":"number"),t}on(e,t){return s(this,e,t)}parse(e){throw this.emit({type:"parseError",columns:[],headers:[]}),Error("Not implemented")}parseDate(e,t){let i=this.options,s=t||i.dateFormat,n=NaN,o,l,a;if(i.parseDate)n=i.parseDate(e);else{if(s)(l=this.dateFormats[s])||(l=this.dateFormats["YYYY/mm/dd"]),(a=e.match(l.regex))&&(n=l.parser(a));else for(o in this.dateFormats)if(l=this.dateFormats[o],a=e.match(l.regex)){s=o,n=l.parser(a);break}!a&&("object"==typeof(a=Date.parse(e))&&null!==a&&a.getTime?n=a.getTime()-6e4*a.getTimezoneOffset():r(a)&&(n=a-6e4*new Date(a).getTimezoneOffset(),-1===e.indexOf("2001")&&2001===new Date(n).getFullYear()&&(n=NaN)))}return n}trim(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/^[\d\s]+$/.test(e)&&(e=e.replace(/\s/g,""))),e}}return l.defaultOptions={dateFormat:"",alternativeFormat:"",startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE,firstRowAsNames:!0,switchRowsAndColumns:!1},(i=l||(l={})).types={},i.registerType=function(e,t){return!!e&&!i.types[e]&&!!(i.types[e]=t)},i.getTableFromColumns=function(t=[],i=[]){let s=new e;for(let e=0,n=Math.max(i.length,t.length);e<n;++e)s.setColumn(i[e]||`${e}`,t[e]);return s},l}),i(t,"Data/DataCursor.js",[],function(){class e{constructor(e={}){this.emittingRegister=[],this.listenerMap={},this.stateMap=e}addListener(e,t,i){let s=this.listenerMap[e]=this.listenerMap[e]||{};return(s[t]=s[t]||[]).push(i),this}buildEmittingTag(e){return("position"===e.cursor.type?[e.table.id,e.cursor.column,e.cursor.row,e.cursor.state,e.cursor.type]:[e.table.id,e.cursor.columns,e.cursor.firstRow,e.cursor.lastRow,e.cursor.state,e.cursor.type]).join("\0")}emitCursor(t,i,s,n){let r=t.id,o=i.state,l=this.listenerMap[r]&&this.listenerMap[r][o];if(l){let o=this.stateMap[r]=this.stateMap[r]??{},a=o[i.state]||[];n&&(a.length||(o[i.state]=a),-1===e.getIndex(i,a)&&a.push(i));let d={cursor:i,cursors:a,table:t};s&&(d.event=s);let h=this.emittingRegister,u=this.buildEmittingTag(d);if(h.indexOf(u)>=0)return this;try{this.emittingRegister.push(u);for(let e=0,t=l.length;e<t;++e)l[e].call(this,d)}finally{let e=this.emittingRegister.indexOf(u);e>=0&&this.emittingRegister.splice(e,1)}}return this}remitCursor(t,i){let s=this.stateMap[t]&&this.stateMap[t][i.state];if(s){let t=e.getIndex(i,s);t>=0&&s.splice(t,1)}return this}removeListener(e,t,i){let s=this.listenerMap[e]&&this.listenerMap[e][t];if(s){let e=s.indexOf(i);e>=0&&s.splice(e,1)}return this}}e.version="1.0.0";var t=e||(e={});function i(e,t){if("range"===e.type)return e;let i={type:"range",firstRow:e.row??(t&&t.firstRow)??0,lastRow:e.row??(t&&t.lastRow)??Number.MAX_VALUE,state:e.state};return void 0!==e.column&&(i.columns=[e.column]),i}return t.getIndex=function(e,t){if("position"===e.type){for(let i,s=0,n=t.length;s<n;++s)if("position"===(i=t[s]).type&&i.state===e.state&&i.column===e.column&&i.row===e.row)return s}else{let i=JSON.stringify(e.columns);for(let s,n=0,r=t.length;n<r;++n)if("range"===(s=t[n]).type&&s.state===e.state&&s.firstRow===e.firstRow&&s.lastRow===e.lastRow&&JSON.stringify(s.columns)===i)return n}return -1},t.isEqual=function(e,t){return"position"===e.type&&"position"===t.type?e.column===t.column&&e.row===t.row&&e.state===t.state:"range"===e.type&&"range"===t.type&&e.firstRow===t.firstRow&&e.lastRow===t.lastRow&&JSON.stringify(e.columns)===JSON.stringify(t.columns)},t.isInRange=function(e,t){"position"===t.type&&(t=i(t)),"position"===e.type&&(e=i(e,t));let s=e.columns,n=t.columns;return e.firstRow>=t.firstRow&&e.lastRow<=t.lastRow&&(!s||!n||s.every(e=>n.indexOf(e)>=0))},t.toPositions=function(e){if("position"===e.type)return[e];let t=e.columns||[],i=[],s=e.state;for(let n=e.firstRow,r=e.lastRow;n<r;++n){if(!t.length){i.push({type:"position",row:n,state:s});continue}for(let e=0,r=t.length;e<r;++e)i.push({type:"position",column:t[e],row:n,state:s})}return i},t.toRange=i,e}),i(t,"Accessibility/HighContrastMode.js",[t["Core/Globals.js"]],function(e){let{doc:t,isMS:i,win:s}=e;return{isHighContrastModeActive:function(){if(i&&s.getComputedStyle){let e=t.createElement("div");e.style.backgroundImage="url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)",t.body.appendChild(e);let i=(e.currentStyle||s.getComputedStyle(e)).backgroundImage;return t.body.removeChild(e),"none"===i}return s.matchMedia&&s.matchMedia("(forced-colors: active)").matches},setHighContrastTheme:function(e){e.highContrastModeActive=!0;let t=e.options.accessibility.highContrastTheme;e.update(t,!1);let i=t.colors?.length>1;e.series.forEach(function(e){let s=t.plotOptions[e.type]||{},n=i&&void 0!==e.colorIndex?t.colors[e.colorIndex]:s.color||"window",r={color:s.color||"windowText",colors:i?t.colors:[s.color||"windowText"],borderColor:s.borderColor||"window",fillColor:n};e.update(r,!1),e.points&&e.points.forEach(function(e){e.options&&e.options.color&&e.update({color:s.color||"windowText",borderColor:s.borderColor||"window"},!1)})}),e.redraw()}}}),i(t,"Grid/Core/Accessibility/Accessibility.js",[t["Accessibility/HighContrastMode.js"],t["Grid/Core/Globals.js"],t["Grid/Core/GridUtils.js"]],function(e,t,i){let{makeHTMLElement:s}=i;return class{constructor(e){this.grid=e,this.element=document.createElement("div"),this.element.classList.add(t.getClassName("visuallyHidden")),this.grid.container?.prepend(this.element),this.announcerElement=document.createElement("p"),this.announcerElement.setAttribute("aria-atomic","true"),this.announcerElement.setAttribute("aria-hidden","false")}addSortableColumnHint(e){let i=this.grid.options?.lang?.accessibility?.sorting?.sortable;i&&s("span",{className:t.getClassName("visuallyHidden"),innerText:", "+i},e)}addHeaderCellDescription(e,t){t&&e.setAttribute("aria-description",t)}announce(e,t=!1){this.announcerTimeout&&clearTimeout(this.announcerTimeout),this.announcerElement.remove(),this.announcerElement.setAttribute("aria-live",t?"assertive":"polite"),this.element.appendChild(this.announcerElement),this.announcerElement.textContent=e,this.announcerTimeout=setTimeout(()=>{this.announcerElement.remove()},3e3)}userSortedColumn(e){let t,{options:i}=this.grid,s=i?.lang?.accessibility?.sorting?.announcements;if(i?.accessibility?.announcements?.sorting){switch(e){case"asc":t=s?.ascending;break;case"desc":t=s?.descending;break;default:t=s?.none}t&&this.announce(t,!0)}}setColumnSortState(e,t){e?.setAttribute("aria-sort",t)}addHighContrast(){let t=this.grid.options?.accessibility?.highContrastMode;!1!==t&&(e.isHighContrastModeActive()||!0===t)&&this.grid.contentWrapper?.classList.add("hcg-theme-highcontrast")}setRowIndex(e,t){e.setAttribute("aria-rowindex",t)}setA11yOptions(){let e=this.grid,t=e.tableElement;t&&(t.setAttribute("aria-rowcount",e.dataTable?.getRowCount()||0),e.captionElement&&t.setAttribute("aria-labelledby",e.captionElement.id),e.descriptionElement&&t.setAttribute("aria-describedby",e.descriptionElement.id),this.addHighContrast())}destroy(){this.element.remove(),this.announcerElement.remove(),clearTimeout(this.announcerTimeout)}}}),i(t,"Grid/Core/Defaults.js",[t["Core/Utilities.js"]],function(e){var t,i;let{merge:s}=e;return(i=t||(t={})).defaultOptions={accessibility:{enabled:!0,highContrastMode:"auto",announcements:{sorting:!0}},lang:{accessibility:{sorting:{sortable:"Sortable.",announcements:{ascending:"Sorted ascending.",descending:"Sorted descending.",none:"Not sorted."}}},loading:"Loading...",noData:"No data to display"},time:{timezone:"UTC"},rendering:{rows:{bufferSize:10,minVisibleRows:2,strictHeights:!1,virtualizationThreshold:50},header:{enabled:!0},columns:{resizing:{enabled:!0}},theme:"hcg-theme-default"},columnDefaults:{sorting:{sortable:!0}}},i.setOptions=function(e){s(!0,i.defaultOptions,e)},t}),i(t,"Grid/Core/Table/CellContent/CellContent.js",[],function(){return class{constructor(e){this.cell=e}}}),i(t,"Grid/Core/Table/CellContent/TextContent.js",[t["Core/Renderer/HTML/AST.js"],t["Grid/Core/Table/CellContent/CellContent.js"],t["Grid/Core/GridUtils.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{setHTMLContent:n}=i,{defined:r}=s;class o extends t{constructor(e){super(e),this.add()}add(){this.update()}destroy(){this.cell.htmlElement.innerHTML=e.emptyHTML}update(){n(this.cell.htmlElement,this.format())}format(){let{cell:e}=this,t=e.row.viewport.grid.options?.columnDefaults?.cells||{},{format:i,formatter:s}=e.column.options.cells||{},n=e.value;r(n)||(n="");let l="";if(!i&&!s)return e.format(o.defaultFormatsForDataTypes[e.column.dataType]);let a=t.format===i,d=t.formatter===s;return a&&d?l=s?s.call(e).toString():i?e.format(i):n+"":a?l=s?.call(e).toString()||n+"":d&&(l=i?e.format(i):n+""),l}}return(o||(o={})).defaultFormatsForDataTypes={string:"{value}",number:"{value}",boolean:"{value}",datetime:"{value:%Y-%m-%d %H:%M:%S}"},o}),i(t,"Grid/Core/Table/Column.js",[t["Core/Utilities.js"],t["Core/Templating.js"],t["Grid/Core/Table/CellContent/TextContent.js"],t["Grid/Core/Globals.js"]],function(e,t,i,s){let{defined:n,merge:r,fireEvent:o}=e;return class{constructor(e,t,i){this.cells=[];let{grid:s}=e;this.id=t,this.index=i,this.viewport=e,this.loadData(),this.dataType=this.assumeDataType(),this.options=r(s.options?.columnDefaults??{},s.columnOptionsMap?.[t]?.options??{}),o(this,"afterInit")}loadData(){this.data=this.viewport.dataTable.getColumn(this.id,!0)}createCellContent(e){return new i(e)}assumeDataType(){let{grid:e}=this.viewport,t=e.columnOptionsMap?.[this.id]?.options.dataType??e.options?.columnDefaults?.dataType;if(t)return t;if(!this.data)return"string";if(!Array.isArray(this.data))return"number";for(let e=0,t=Math.min(this.data.length,30);e<t;++e)if(n(this.data[e]))switch(typeof this.data[e]){case"number":return"number";case"boolean":return"boolean";default:return"string"}return console.warn(`Column "${this.id}" contains too few data points with unambiguous types to correctly determine its dataType. It's recommended to set the \`dataType\` option for it.`),"string"}registerCell(e){e.htmlElement.setAttribute("data-column-id",this.id),this.options.className&&e.htmlElement.classList.add(...this.options.className.split(/\s+/g)),this.viewport.grid.hoveredColumnId===this.id&&e.htmlElement.classList.add(s.getClassName("hoveredColumn")),this.cells.push(e)}unregisterCell(e){let t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)}getWidth(){return this.viewport.columnDistribution.getColumnWidth(this)}setHoveredState(e){this.header?.htmlElement?.classList[e?"add":"remove"](s.getClassName("hoveredColumn"));for(let t=0,i=this.cells.length;t<i;++t)this.cells[t].htmlElement.classList[e?"add":"remove"](s.getClassName("hoveredColumn"))}setSyncedState(e){this.header?.htmlElement?.classList[e?"add":"remove"](s.getClassName("syncedColumn"));for(let t=0,i=this.cells.length;t<i;++t)this.cells[t].htmlElement.classList[e?"add":"remove"](s.getClassName("syncedColumn"))}format(e){return t.format(e,this,this.viewport.grid)}async update(e,t=!0){await this.viewport.grid.updateColumn(this.id,e,t)}}}),i(t,"Grid/Core/Table/Row.js",[t["Grid/Core/GridUtils.js"]],function(e){let{makeHTMLElement:t}=e;return class{constructor(e){this.cells=[],this.viewport=e,this.htmlElement=t("tr",{})}render(){let e=this.viewport.columns;for(let t=0,i=e.length;t<i;t++)this.createCell(e[t]).render();this.rendered=!0,this.viewport.grid.options?.rendering?.rows?.virtualization&&this.reflow()}reflow(){for(let e=0,t=this.cells.length;e<t;++e)this.cells[e].reflow();let e=this.viewport;e.rowsWidth&&(this.htmlElement.style.width=e.rowsWidth+"px")}destroy(){if(this.htmlElement){for(let e=this.cells.length-1;e>=0;--e)this.cells[e].destroy();this.htmlElement.remove()}}getCell(e){return this.cells.find(t=>t.column?.id===e)}registerCell(e){this.cells.push(e)}unregisterCell(e){let t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)}}}),i(t,"Grid/Core/Table/Cell.js",[t["Core/Templating.js"]],function(e){return class{constructor(e,t){this.cellEvents=[],this.column=t,this.row=e,this.row.registerCell(this),this.htmlElement=this.init(),this.htmlElement.setAttribute("tabindex","-1"),this.initEvents()}init(){return document.createElement("td",{})}initEvents(){this.cellEvents.push(["blur",()=>this.onBlur()]),this.cellEvents.push(["focus",()=>this.onFocus()]),this.cellEvents.push(["click",e=>{this.onClick(e)}]),this.cellEvents.push(["keydown",e=>{this.onKeyDown(e)}]),this.cellEvents.forEach(e=>{this.htmlElement.addEventListener(e[0],e[1])})}onFocus(){let e=this.row.viewport,t=e.rowsVirtualizer.focusAnchorCell?.htmlElement;t?.setAttribute("tabindex","-1")}onBlur(){let e=this.row.viewport,t=e.rowsVirtualizer.focusAnchorCell?.htmlElement;t?.setAttribute("tabindex","0"),delete e.focusCursor}onKeyDown(e){let{row:t,column:i}=this;if(!i)return;let s=t.viewport,n={ArrowDown:[1,0],ArrowUp:[-1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]}[e.key];if(n){e.preventDefault(),e.stopPropagation();let r=(void 0===t.index?-1:t.index-s.rows[0].index)+n[0];if(r<0&&s.header)return void s.columns[i.index+n[1]]?.header?.htmlElement.focus();let o=s.rows[r];o&&o.cells[i.index+n[1]]?.htmlElement.focus()}}render(){this.row.htmlElement.appendChild(this.htmlElement),this.reflow()}reflow(){let e=this.column;if(!e)return;let t=this.htmlElement.style;t.width=t.maxWidth=e.getWidth()+"px"}format(t){return e.format(t,this,this.row.viewport.grid)}setCustomClassName(e){let t=this.htmlElement;if(this.customClassName&&t.classList.remove(...this.customClassName.split(/\s+/g)),!e)return void delete this.customClassName;let i=this.format(e);if(!i)return void delete this.customClassName;t.classList.add(...i.split(/\s+/g)),this.customClassName=i}destroy(){this.cellEvents.forEach(e=>{this.htmlElement.removeEventListener(e[0],e[1])}),this.column?.unregisterCell(this),this.row.unregisterCell(this),this.htmlElement.remove()}}}),i(t,"Grid/Core/Table/Actions/ColumnSorting.js",[t["Grid/Core/GridUtils.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){let{makeHTMLElement:s}=e,{fireEvent:n}=i;return class{constructor(e,i){this.toggle=()=>{let e=this.column.viewport,t=e.grid.querying.sorting;if(e.validator?.errorCell)return;let i=(t.currentSorting?.columnId===this.column.id?t.currentSorting.order:null)||"none";this.setOrder({none:"asc",asc:"desc",desc:null}[i])},this.column=e,this.headerCellElement=i,this.addHeaderElementAttributes(),e.options.sorting?.sortable&&(s("span",{className:t.getClassName("columnSortableIcon"),innerText:"▲"},i).setAttribute("aria-hidden",!0),i.classList.add(t.getClassName("columnSortable")))}addHeaderElementAttributes(){let e=this.column,i=e.viewport.grid.accessibility,s=e.options.sorting,{currentSorting:n}=e.viewport.grid.querying.sorting,r=t.getClassName("columnSortedAsc"),o=t.getClassName("columnSortedDesc"),l=this.headerCellElement;if(n?.columnId!==e.id||!n?.order){l.classList.remove(r),l.classList.remove(o),s?.sortable&&i?.setColumnSortState(l,"none");return}switch(n?.order){case"asc":l.classList.add(r),l.classList.remove(o),i?.setColumnSortState(l,"ascending");break;case"desc":l.classList.remove(r),l.classList.add(o),i?.setColumnSortState(l,"descending")}}async setOrder(e){let t=this.column.viewport,i=t.grid.querying.sorting,s=t.grid.accessibility;for(let s of(i.setSorting(e,this.column.id),await t.updateRows(),t.columns))s.sorting?.addHeaderElementAttributes();s?.userSortedColumn(e),n(this.column,"afterSorting",{target:this.column})}}}),i(t,"Grid/Core/Table/Header/HeaderCell.js",[t["Grid/Core/Table/Cell.js"],t["Grid/Core/GridUtils.js"],t["Grid/Core/Table/Actions/ColumnSorting.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i,s,n){let{makeHTMLElement:r,setHTMLContent:o}=t,{fireEvent:l,merge:a,isString:d}=n;return class extends e{constructor(e,t,i){if(super(e,t),this.options={},this.columns=[],this.value="",t)t.header=this,this.columns.push(t);else if(i){let e=this.row.viewport;for(let t of e.grid.getColumnIds(i,!0)){let i=e.getColumn(t);i&&this.columns.push(i)}}}init(){let e=document.createElement("th",{});return e.classList.add(s.getClassName("headerCell")),e}render(){let{column:e}=this,t=a(e?.options||{},this.options),i=t.header||{},n=t.sorting?.sortable&&e?.data;i.formatter?this.value=i.formatter.call(this).toString():d(i.format)?this.value=e?e.format(i.format):i.format:this.value=e?.id||"",this.row.htmlElement.appendChild(this.htmlElement),this.headerContent=r("span",{className:s.getClassName("headerCellContent")},this.htmlElement),o(this.headerContent,this.value),this.htmlElement.setAttribute("scope","col"),this.options.className&&this.htmlElement.classList.add(...this.options.className.split(/\s+/g)),e&&(this.htmlElement.setAttribute("data-column-id",e.id),n&&e.viewport.grid.accessibility?.addSortableColumnHint(this.headerContent),e.options.className&&this.htmlElement.classList.add(...e.options.className.split(/\s+/g)),e.viewport.columnsResizer?.renderColumnDragHandles(e,this),this.initColumnSorting()),this.setCustomClassName(t.header?.className),l(this,"afterRender",{target:e})}reflow(){let e=this.htmlElement;if(!e)return;let t=0;for(let e of this.columns)t+=e.getWidth()||0;e.style.width=e.style.maxWidth=t+"px"}onKeyDown(e){if(this.column&&e.target===this.htmlElement){if("Enter"===e.key){this.column.options.sorting?.sortable&&this.column.sorting?.toggle();return}super.onKeyDown(e)}}onClick(e){let t=this.column;!t||e.target!==this.htmlElement&&e.target!==t.header?.headerContent||t.viewport.columnsResizer?.isResizing||(t.options.sorting?.sortable&&t.sorting?.toggle(),l(this,"click",{originalEvent:e,target:this.column}))}initColumnSorting(){let{column:e}=this;e&&(e.sorting=new i(e,this.htmlElement))}isLastColumn(){let e=this.row.viewport;return e.columns[e.columns.length-1]===this.columns?.[this.columns.length-1]}}}),i(t,"Grid/Core/Table/Header/HeaderRow.js",[t["Grid/Core/Table/Row.js"],t["Grid/Core/Table/Header/HeaderCell.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{isString:n}=s;return class extends e{constructor(e,t){super(e),this.level=t,this.setRowAttributes()}createCell(e,i){return new t(this,e,i)}renderMultipleLevel(e){let t=this.viewport.grid.options?.header,s=this.viewport,r=s.grid.enabledColumns;if(s.theadElement?.appendChild(this.htmlElement),this.htmlElement.classList.add(i.getClassName("headerRow")),t){let o=this.getColumnsAtLevel(t,e);for(let t=0,l=o.length;t<l;t++){let l=o[t],a="string"==typeof l,d=!a&&l.columns?s.grid.getColumnIds(l.columns).length:0,h=a?l:l.columnId,u=h?s.getColumn(h||""):void 0,c=a?void 0:l.format,m=a?void 0:l.className;if(h&&r&&0>r.indexOf(h)||!u&&0===d)continue;let p=this.createCell(u,a?void 0:l.columns);a||s.grid.accessibility?.addHeaderCellDescription(p.htmlElement,l.accessibility?.description),n(c)&&(p.options.header||(p.options.header={}),p.options.header.format=c),m&&(p.options.className=m),u?.index===0&&0===t&&p.htmlElement.classList.add(i.getClassName("columnFirst")),p.render(),h?p.htmlElement.setAttribute("rowSpan",(this.viewport.header?.levels||1)-e):d>1&&p.htmlElement.setAttribute("colSpan",d)}}else super.render();let o=this.cells[this.cells.length-1];o.isLastColumn()&&o.htmlElement.classList.add(i.getClassName("lastHeaderCellInRow"))}reflow(){for(let e=0,t=this.cells.length;e<t;e++)this.cells[e].reflow()}getColumnsAtLevel(e,t,i=0){let s=[];for(let n of e)i===t&&s.push(n),"string"!=typeof n&&n.columns&&(s=s.concat(this.getColumnsAtLevel(n.columns,t,i+1)));return s}setRowAttributes(){let e=this.viewport.grid.accessibility;e?.setRowIndex(this.htmlElement,this.level)}}}),i(t,"Grid/Core/Table/Header/TableHeader.js",[t["Grid/Core/Table/Header/HeaderRow.js"]],function(e){return class{constructor(e){this.columns=[],this.rows=[],this.levels=1,this.viewport=e,this.columns=e.columns,e.grid.options?.header&&(this.levels=this.getRowLevels(e.grid.options?.header))}render(){let t=this.viewport;if(t.grid.enabledColumns)for(let i=0,s=this.levels;i<s;i++){let s=new e(t,i+1);s.renderMultipleLevel(i),this.rows.push(s)}}reflow(){let e=this.viewport;if(!e.theadElement)return;let{clientWidth:t,offsetWidth:i}=e.tbodyElement,s=e.header,n=this.rows,r=i-t;for(let e of n)e.reflow();if(e.rowsWidth&&(e.theadElement.style.width=Math.max(e.rowsWidth,t)+r+"px"),s&&r>0&&"full"===this.viewport.columnDistribution.type){let e=this.columns[this.columns.length-1].header?.row,t=e?.cells[e.cells.length-1]?.htmlElement;t&&(t.style.width=t.style.maxWidth=t.offsetWidth+r+"px")}}getRowLevels(e){let t=0;for(let i of e)if("string"!=typeof i&&i.columns){let e=this.getRowLevels(i.columns);e>t&&(t=e)}return t+1}scrollHorizontally(e){let t=this.viewport.theadElement;t&&(t.style.transform=`translateX(${-e}px)`)}}}),i(t,"Grid/Core/Table/Body/TableCell.js",[t["Grid/Core/Table/Cell.js"],t["Core/Utilities.js"]],function(e,t){let{fireEvent:i}=t;return class extends e{constructor(e,t){super(e,t),this.column=t,this.row=e,this.column.registerCell(this)}render(){super.render(),this.setValue()}async setValue(e=this.column.data?.[this.row.index],t=!1){this.value=e,t&&await this.updateDataTable()||(this.content?this.content.update():this.content=this.column.createCellContent(this),this.htmlElement.setAttribute("data-value",this.value+""),this.setCustomClassName(this.column.options.cells?.className),i(this,"afterRender",{target:this}))}async updateDataTable(){if(this.column.data?.[this.row.index]===this.value)return!1;let e=this.column.viewport,{dataTable:t}=e.grid,i=this.row.id&&t?.getLocalRowIndex(this.row.id);return!!t&&void 0!==i&&(this.row.data[this.column.id]=this.value,t.setCell(this.column.id,i,this.value),e.grid.querying.shouldBeUpdated=!0,!(e.grid.querying.getModifiers().length<1)&&(await e.updateRows(),!0))}initEvents(){this.cellEvents.push(["dblclick",e=>this.onDblClick(e)]),this.cellEvents.push(["mouseout",()=>this.onMouseOut()]),this.cellEvents.push(["mouseover",()=>this.onMouseOver()]),this.cellEvents.push(["mousedown",e=>{this.onMouseDown(e)}]),super.initEvents()}onFocus(){super.onFocus(),this.row.viewport.focusCursor=[this.row.index,this.column.index]}onMouseDown(e){e.target===this.htmlElement&&this.htmlElement.focus(),i(this,"mouseDown",{target:this,originalEvent:e})}onMouseOver(){let{grid:e}=this.row.viewport;e.hoverRow(this.row.index),e.hoverColumn(this.column.id),i(this,"mouseOver",{target:this})}onMouseOut(){let{grid:e}=this.row.viewport;e.hoverRow(),e.hoverColumn(),i(this,"mouseOut",{target:this})}onDblClick(e){i(this,"dblClick",{target:this,originalEvent:e})}onClick(){i(this,"click",{target:this})}onKeyDown(e){e.target===this.htmlElement&&(i(this,"keyDown",{target:this,originalEvent:e}),super.onKeyDown(e))}destroy(){this.content?.destroy(),delete this.content,super.destroy()}}}),i(t,"Grid/Core/Table/Body/TableRow.js",[t["Grid/Core/Table/Row.js"],t["Grid/Core/Table/Body/TableCell.js"],t["Grid/Core/Globals.js"]],function(e,t,i){return class extends e{constructor(e,t){super(e),this.data={},this.translateY=0,this.index=t,this.id=e.dataTable.getOriginalRowIndex(t),this.loadData(),this.setRowAttributes()}createCell(e){return new t(this,e)}loadData(){let e=this.viewport.dataTable.getRowObject(this.index);e&&(this.data=e)}update(){this.id=this.viewport.dataTable.getOriginalRowIndex(this.index),this.updateRowAttributes(),this.loadData();for(let e=0,t=this.cells.length;e<t;++e)this.cells[e].setValue();this.reflow()}setHoveredState(e){this.htmlElement.classList[e?"add":"remove"](i.getClassName("hoveredRow")),e&&(this.viewport.grid.hoveredRowIndex=this.index)}setSyncedState(e){this.htmlElement.classList[e?"add":"remove"](i.getClassName("syncedRow")),e&&(this.viewport.grid.syncedRowIndex=this.index)}setRowAttributes(){let e=this.index,t=this.htmlElement;t.classList.add(i.getClassName("rowElement")),t.setAttribute("data-row-index",e),this.updateRowAttributes(),t.classList.add(i.getClassName(e%2?"rowEven":"rowOdd")),this.viewport.grid.hoveredRowIndex===e&&t.classList.add(i.getClassName("hoveredRow")),this.viewport.grid.syncedRowIndex===e&&t.classList.add(i.getClassName("syncedRow"))}updateRowAttributes(){let e=this.viewport.grid.accessibility,t=this.index,i=this.htmlElement;void 0!==this.id&&i.setAttribute("data-row-id",this.id),e?.setRowIndex(i,t+(this.viewport.header?.levels??1)+1)}setTranslateY(e){this.translateY=e,this.htmlElement.style.transform=`translateY(${e}px)`}getDefaultTopOffset(){return this.index*this.viewport.rowsVirtualizer.defaultRowHeight}}}),i(t,"Grid/Core/Table/Actions/RowsVirtualizer.js",[t["Grid/Core/Table/Body/TableRow.js"],t["Grid/Core/Globals.js"]],function(e,t){return class{constructor(e){this.rowCursor=0,this.preventScroll=!1,this.rowSettings=e.grid.options?.rendering?.rows,this.viewport=e,this.strictRowHeights=this.rowSettings.strictHeights,this.buffer=Math.max(this.rowSettings.bufferSize,0),this.defaultRowHeight=this.getDefaultRowHeight(),this.strictRowHeights&&e.tbodyElement.classList.add(t.getClassName("rowsContentNowrap"))}initialRender(){this.rowSettings?.virtualization&&this.viewport.reflow(),this.renderRows(this.rowCursor),this.adjustRowHeights()}rerender(){let e,t=this.viewport.tbodyElement,i=this.viewport.rows,s=t.scrollLeft;if(i.length){e=t.scrollTop;for(let e=0,t=i.length;e<t;++e)i[e].destroy();i.length=0}this.renderRows(this.rowCursor),this.rowSettings?.virtualization&&(void 0!==e&&(t.scrollTop=e),this.scroll()),i=this.viewport.rows;for(let e=0,t=i.length;e<t;++e)i[e].reflow();t.scrollLeft=s}scroll(){let e=this.viewport.tbodyElement,{defaultRowHeight:t}=this,i=e.scrollTop;if(this.preventScroll){i<=e.scrollTop&&(this.preventScroll=!1),this.adjustBottomRowHeights();return}let s=Math.floor(e.scrollTop/t);this.rowCursor!==s&&this.renderRows(s),this.rowCursor=s,this.adjustRowHeights(),this.strictRowHeights||!(i>e.scrollTop)||this.preventScroll||(e.scrollTop=i,this.preventScroll=!0)}adjustBottomRowHeights(){let e=this.viewport.rows,t=e.length,i=e[t-1],s=i.translateY,n=s+i.htmlElement.offsetHeight,r=i.cells[0].htmlElement.offsetHeight;s=n-r,i.htmlElement.style.height=r+"px",i.setTranslateY(s);for(let e=0,t=i.cells.length;e<t;++e)i.cells[e].htmlElement.style.transform="";for(let i=t-2;i>=0;i--){let t=e[i];s-=r=t.cells[0].htmlElement.offsetHeight,t.htmlElement.style.height=r+"px",t.setTranslateY(s);for(let e=0,i=t.cells.length;e<i;++e)t.cells[e].htmlElement.style.transform=""}}renderRows(t){let{viewport:i,buffer:s}=this,n=i.dataTable.getRowCount();if(n<1)return;let r=this.rowSettings?.virtualization,o=r?Math.ceil((i.grid.tableElement?.clientHeight||0)/this.defaultRowHeight):1/0,l=i.rows;if(!r&&l.length>50&&console.warn("Grid: a large dataset can cause performance issues when virtualization is disabled. Consider enabling virtualization in the rows settings."),!l.length){let t=new e(i,n-1);i.tbodyElement.appendChild(t.htmlElement),t.render(),l.push(t),r&&t.setTranslateY(t.getDefaultTopOffset())}let a=Math.max(0,Math.min(t-s,n-o)),d=Math.min(t+o+s,l[l.length-1].index-1),h=l.pop(),u=[];for(let e=0,t=l.length;e<t;++e){let t=l[e],i=t.index;i<a||i>d?t.destroy():u.push(t)}i.rows=l=u;for(let t=a;t<=d;++t)if(!l[t-(l[0]?.index||0)]){let s=new e(i,t);l.push(s),s.rendered=!1,r&&s.setTranslateY(s.getDefaultTopOffset())}l.sort((e,t)=>e.index-t.index);for(let e=0,t=l.length;e<t;++e)l[e].rendered||(i.tbodyElement.insertBefore(l[e].htmlElement,i.tbodyElement.lastChild),l[e].render());if(h&&l.push(h),i.focusCursor){let[e,t]=i.focusCursor,s=l.find(t=>t.index===e);s&&s.cells[t]?.htmlElement.focus({preventScroll:!0})}this.focusAnchorCell?.htmlElement.setAttribute("tabindex","-1");let c=l[t-l[0].index];this.focusAnchorCell=c?.cells[0],this.focusAnchorCell?.htmlElement.setAttribute("tabindex","0")}adjustRowHeights(){if(this.strictRowHeights||!this.rowSettings?.virtualization)return;let{rowCursor:e,defaultRowHeight:t}=this,{rows:i,tbodyElement:s}=this.viewport,n=i.length,r=i[0].getDefaultTopOffset();for(let r=0;r<n;++r){let n=i[r];if(n.htmlElement.style.height="",n.cells[0].htmlElement.style.transform)for(let e=0,t=n.cells.length;e<t;++e)n.cells[e].htmlElement.style.transform="";if(n.index<e){n.htmlElement.style.height=t+"px";continue}let o=n.cells[0].htmlElement.offsetHeight;if(n.htmlElement.style.height=o+"px",!(n.index>e)&&n.htmlElement.offsetHeight>t){let i=Math.floor(o-(o-t)*(s.scrollTop/t-e));n.htmlElement.style.height=i+"px";for(let e=0,t=n.cells.length;e<t;++e)n.cells[e].htmlElement.style.transform=`translateY(${i-o}px)`}}i[0].setTranslateY(r);for(let e=1,t=n-1;e<t;++e)r+=i[e-1].htmlElement.offsetHeight,i[e].setTranslateY(r);let o=i[n-1],l=i[n-2];l&&l.index===o.index-1&&o.setTranslateY(l.htmlElement.offsetHeight+r)}reflowRows(){let e=this.viewport.rows;if(!(e.length<1)){for(let t=0,i=e.length;t<i;++t)e[t].reflow();this.adjustRowHeights()}}getDefaultRowHeight(){let i=new e(this.viewport,0);i.htmlElement.style.position="absolute",i.htmlElement.classList.add(t.getClassName("mockedRow")),this.viewport.tbodyElement.appendChild(i.htmlElement),i.render();let s=i.htmlElement.offsetHeight;return i.destroy(),s}}}),i(t,"Grid/Core/Table/Actions/ColumnsResizer.js",[t["Grid/Core/GridUtils.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){let{makeHTMLElement:s}=e,{fireEvent:n}=i;return class{constructor(e){this.isResizing=!1,this.handles=[],this.onDocumentMouseMove=e=>{if(!this.draggedResizeHandle||!this.draggedColumn)return;let t=e.pageX-(this.dragStartX||0),i=this.viewport;i.columnDistribution.resize(this,t),i.reflow(),i.rowsVirtualizer.adjustRowHeights(),n(this.draggedColumn,"afterResize",{target:this.draggedColumn,originalEvent:e})},this.onDocumentMouseUp=()=>{this.draggedColumn?.header?.htmlElement?.classList.remove(t.getClassName("resizedColumn")),this.dragStartX=void 0,this.draggedColumn=void 0,this.draggedResizeHandle=void 0,this.columnStartWidth=void 0,this.nextColumnStartWidth=void 0,requestAnimationFrame(()=>{this.isResizing=!1})},this.viewport=e,document.addEventListener("mousemove",this.onDocumentMouseMove),document.addEventListener("mouseup",this.onDocumentMouseUp)}renderColumnDragHandles(e,i){let n=e.viewport;if(n.columnsResizer&&("full"!==n.columnDistribution.type||n.grid.enabledColumns&&e.index<n.grid.enabledColumns.length-1)){let r=s("div",{className:t.getClassName("resizerHandles")},i.htmlElement);r.setAttribute("aria-hidden",!0),n.columnsResizer?.addHandleListeners(r,e)}}addHandleListeners(e,i){let s=s=>{let n=i.viewport;this.isResizing=!0,n.reflow(),this.dragStartX=s.pageX,this.draggedColumn=i,this.draggedResizeHandle=e,this.columnStartWidth=i.getWidth(),this.nextColumnStartWidth=n.columns[i.index+1]?.getWidth(),i.header?.htmlElement.classList.add(t.getClassName("resizedColumn"))};this.handles.push([e,s]),e.addEventListener("mousedown",s)}removeEventListeners(){document.removeEventListener("mousemove",this.onDocumentMouseMove),document.removeEventListener("mouseup",this.onDocumentMouseUp);for(let e=0,t=this.handles.length;e<t;e++){let[t,i]=this.handles[e];t.removeEventListener("mousedown",i)}}}}),i(t,"Grid/Core/Table/Table.js",[t["Grid/Core/GridUtils.js"],t["Core/Utilities.js"],t["Grid/Core/Table/ColumnDistribution/ColumnDistribution.js"],t["Grid/Core/Table/Column.js"],t["Grid/Core/Table/Header/TableHeader.js"],t["Grid/Core/Table/Actions/RowsVirtualizer.js"],t["Grid/Core/Table/Actions/ColumnsResizer.js"],t["Grid/Core/Globals.js"],t["Grid/Core/Defaults.js"]],function(e,t,i,s,n,r,o,l,a){let{makeHTMLElement:d}=e,{fireEvent:h,getStyle:u,defined:c}=t;return class{constructor(e,t){this.columns=[],this.rows=[],this.onTBodyFocus=e=>{e.preventDefault(),this.rows[this.rowsVirtualizer.rowCursor-this.rows[0].index]?.cells[0]?.htmlElement.focus()},this.onResize=()=>{this.reflow()},this.onScroll=()=>{this.virtualRows&&this.rowsVirtualizer.scroll(),this.header?.scrollHorizontally(this.tbodyElement.scrollLeft)},this.grid=e,this.dataTable=this.grid.presentationTable;let s=e.options,n=s?.rendering?.table?.className;this.columnDistribution=i.initStrategy(this),this.virtualRows=!!s?.rendering?.rows?.virtualization,s?.rendering?.header?.enabled&&(this.theadElement=d("thead",{},t)),this.tbodyElement=d("tbody",{},t),this.virtualRows&&t.classList.add(l.getClassName("virtualization")),s?.rendering?.columns?.resizing?.enabled!==!1&&s?.columnDefaults?.resizing!==!1&&(this.columnsResizer=new o(this)),n&&t.classList.add(...n.split(/\s+/g)),t.classList.add(l.getClassName("scrollableContent")),this.loadColumns(),this.rowsVirtualizer=new r(this),this.init(),this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(t),this.tbodyElement.addEventListener("scroll",this.onScroll),this.tbodyElement.addEventListener("focus",this.onTBodyFocus)}init(){h(this,"beforeInit"),this.setTbodyMinHeight(),this.grid.options?.rendering?.header?.enabled&&(this.header=new n(this),this.header.render()),this.rowsVirtualizer.initialRender(),h(this,"afterInit")}setTbodyMinHeight(){let{options:e}=this.grid,t=e?.rendering?.rows?.minVisibleRows,i=this.tbodyElement;c(t)&&!u(i,"min-height",!0)&&(i.style.minHeight=t*this.rowsVirtualizer.defaultRowHeight+"px")}loadColumns(){let e,{enabledColumns:t}=this.grid;if(t){for(let i=0,n=t.length;i<n;++i)e=t[i],this.columns.push(new s(this,e,i));this.columnDistribution.loadColumns()}}updateVirtualization(){let e=this.grid.options?.rendering?.rows,t=Number(e?.virtualizationThreshold||a.defaultOptions.rendering?.rows?.virtualizationThreshold),i=Number(this.dataTable?.rowCount);e?.virtualization!==i>=t&&this.grid.update()}async updateRows(){let e,t=this;t.focusCursor&&(e=t.dataTable.getOriginalRowIndex(t.focusCursor[0]));let i=(t.rows[t.rows.length-1]?.index??-1)+1;for(let e of(await t.grid.querying.proceed(),this.dataTable=this.grid.presentationTable,this.columns))e.loadData();if(i!==t.dataTable.rowCount)this.updateVirtualization(),this.rowsVirtualizer.rerender();else{for(let e=0,t=this.rows.length;e<t;++e)this.rows[e].update();this.rowsVirtualizer.adjustRowHeights()}if(void 0!==e&&t.focusCursor){let i=t.dataTable.getLocalRowIndex(e);void 0!==i&&(t.scrollToRow(i),setTimeout(()=>{c(t.focusCursor?.[1])&&t.rows[i-t.rows[0].index]?.cells[t.focusCursor[1]].htmlElement.focus()}))}}loadPresentationData(){for(let e of(this.dataTable=this.grid.presentationTable,this.columns))e.loadData();this.updateVirtualization(),this.rowsVirtualizer.rerender()}reflow(){this.columnDistribution.reflow(),this.header?.reflow(),this.rowsVirtualizer.reflowRows()}scrollToRow(e){if(this.grid.options?.rendering?.rows?.virtualization){this.tbodyElement.scrollTop=e*this.rowsVirtualizer.defaultRowHeight;return}let t="."+l.getClassName("rowElement"),i=this.tbodyElement.querySelectorAll(t)[0].getBoundingClientRect().top;this.tbodyElement.scrollTop=this.tbodyElement.querySelectorAll(t)[e].getBoundingClientRect().top-i}getRatioFromWidth(e){return e/this.tbodyElement.clientWidth}getWidthFromRatio(e){return this.tbodyElement.clientWidth*e}destroy(){this.tbodyElement.removeEventListener("focus",this.onTBodyFocus),this.tbodyElement.removeEventListener("scroll",this.onScroll),this.resizeObserver.disconnect(),this.columnsResizer?.removeEventListeners();for(let e=0,t=this.rows.length;e<t;++e)this.rows[e].destroy();h(this,"afterDestroy")}getStateMeta(){return{scrollTop:this.tbodyElement.scrollTop,scrollLeft:this.tbodyElement.scrollLeft,columnDistribution:this.columnDistribution,focusCursor:this.focusCursor}}applyStateMeta(e){if(this.tbodyElement.scrollTop=e.scrollTop,this.tbodyElement.scrollLeft=e.scrollLeft,e.focusCursor){let[t,i]=e.focusCursor,s=this.rows[t-this.rows[0].index];s?.cells[i]?.htmlElement.focus()}}getColumn(e){let t=this.grid.enabledColumns;if(!t)return;let i=t.indexOf(e);if(!(i<0))return this.columns[i]}getRow(e){return this.rows.find(t=>t.id===e)}}}),i(t,"Data/Modifiers/ChainModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:i}=t;class s extends e{constructor(t,...n){super(),this.chain=n,this.options=i(s.defaultOptions,t);let r=this.options.chain||[];for(let t=0,i=r.length,s,o;t<i;++t)(s=r[t]).type&&(o=e.types[s.type])&&n.push(new o(s))}add(e,t){this.emit({type:"addModifier",detail:t,modifier:e}),this.chain.push(e),this.emit({type:"addModifier",detail:t,modifier:e})}clear(e){this.emit({type:"clearChain",detail:e}),this.chain.length=0,this.emit({type:"afterClearChain",detail:e})}async modify(e,t){let i=this.options.reverse?this.chain.slice().reverse():this.chain.slice();e.modified===e&&(e.modified=e.clone(!1,t));let s=e;for(let n=0,r=i.length;n<r;++n){try{await i[n].modify(s,t)}catch(i){throw this.emit({type:"error",detail:t,table:e}),i}s=s.modified}return e.modified=s,e}modifyCell(e,t,i,s,n){let r=this.options.reverse?this.chain.reverse():this.chain;if(r.length){let o=e.clone();for(let e=0,l=r.length;e<l;++e)r[e].modifyCell(o,t,i,s,n),o=o.modified;e.modified=o}return e}modifyColumns(e,t,i,s){let n=this.options.reverse?this.chain.reverse():this.chain.slice();if(n.length){let r=e.clone();for(let e=0,o=n.length;e<o;++e)n[e].modifyColumns(r,t,i,s),r=r.modified;e.modified=r}return e}modifyRows(e,t,i,s){let n=this.options.reverse?this.chain.reverse():this.chain.slice();if(n.length){let r=e.clone();for(let e=0,o=n.length;e<o;++e)n[e].modifyRows(r,t,i,s),r=r.modified;e.modified=r}return e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=this.options.reverse?this.chain.reverse():this.chain.slice(),s=e.modified;for(let e=0,n=i.length;e<n;++e)s=i[e].modifyTable(s,t).modified;return e.modified=s,this.emit({type:"afterModify",detail:t,table:e}),e}remove(e,t){let i=this.chain;this.emit({type:"removeModifier",detail:t,modifier:e}),i.splice(i.indexOf(e),1),this.emit({type:"afterRemoveModifier",detail:t,modifier:e})}}return s.defaultOptions={type:"Chain"},e.registerType("Chain",s),s}),i(t,"Data/Modifiers/SortModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,i){let{merge:s}=i;class n extends e{static ascending(e,t){return(e||0)<(t||0)?-1:+((e||0)>(t||0))}static descending(e,t){return(t||0)<(e||0)?-1:+((t||0)>(e||0))}static compareFactory(e,t){return t?"desc"===e?(e,i)=>-t(e,i):t:"asc"===e?n.ascending:n.descending}constructor(e){super(),this.options=s(n.defaultOptions,e)}getRowReferences(e){let t=e.getRows(),i=[];for(let e=0,s=t.length;e<s;++e)i.push({index:e,row:t[e]});return i}modifyCell(e,i,s,n,r){let{orderByColumn:o,orderInColumn:l}=this.options;return i===o&&(l?(e.modified.setCell(i,s,n),e.modified.setColumn(l,this.modifyTable(new t({columns:e.getColumns([o,l])})).modified.getColumn(l))):this.modifyTable(e,r)),e}modifyColumns(e,i,s,n){let{orderByColumn:r,orderInColumn:o}=this.options,l=Object.keys(i);return l.indexOf(r)>-1&&(o&&i[l[0]].length?(e.modified.setColumns(i,s),e.modified.setColumn(o,this.modifyTable(new t({columns:e.getColumns([r,o])})).modified.getColumn(o))):this.modifyTable(e,n)),e}modifyRows(e,i,s,n){let{orderByColumn:r,orderInColumn:o}=this.options;return o&&i.length?(e.modified.setRows(i,s),e.modified.setColumn(o,this.modifyTable(new t({columns:e.getColumns([r,o])})).modified.getColumn(o))):this.modifyTable(e,n),e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=e.getColumnNames(),s=e.getRowCount(),r=this.getRowReferences(e),{direction:o,orderByColumn:l,orderInColumn:a,compare:d}=this.options,h=n.compareFactory(o,d),u=i.indexOf(l),c=e.modified;if(-1!==u&&r.sort((e,t)=>h(e.row[u],t.row[u])),a){let e=[];for(let t=0;t<s;++t)e[r[t].index]=t;c.setColumns({[a]:e})}else{let e,t=[],i=[];for(let n=0;n<s;++n)e=r[n],t.push(c.getOriginalRowIndex(e.index)),i.push(e.row);c.setRows(i,0),c.setOriginalRowIndexes(t)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return n.defaultOptions={type:"Sort",direction:"desc",orderByColumn:"y"},e.registerType("Sort",n),n}),i(t,"Grid/Core/Querying/SortingController.js",[t["Data/Modifiers/SortModifier.js"]],function(e){return class{constructor(e){this.querying=e}setSorting(e,t){(this.currentSorting?.columnId!==t||this.currentSorting?.order!==e)&&(this.querying.shouldBeUpdated=!0,this.currentSorting={columnId:t,order:e}),this.modifier=this.createModifier()}getSortingOptions(){let e,{columnOptionsMap:t}=this.querying.grid;if(!t)return{order:null};let i=Object.keys(t),s=null;for(let n=i.length-1;n>-1;--n){let r=i[n],o=t[r]?.options||{},l=o.sorting?.order;if(l){if(e){console.warn(`Grid: Only one column can be sorted at a time. Data will be sorted only by the last found column with the sorting order defined in the options: "${e}".`);break}s=l,e=r}}return{columnId:e,order:s}}loadOptions(){let e=this.getSortingOptions();(e.columnId!==this.initialSorting?.columnId||e.order!==this.initialSorting?.order)&&(this.initialSorting=e,this.setSorting(e.order,e.columnId))}createModifier(){if(!this.currentSorting)return;let{columnId:t,order:i}=this.currentSorting;if(i&&t)return new e({orderByColumn:t,direction:i,compare:this.querying.grid.columnOptionsMap?.[t]?.options?.sorting?.compare})}}}),i(t,"Grid/Core/Querying/QueryingController.js",[t["Data/Modifiers/ChainModifier.js"],t["Grid/Core/Querying/SortingController.js"]],function(e,t){return class{constructor(e){this.shouldBeUpdated=!1,this.grid=e,this.sorting=new t(this)}async proceed(e=!1){(e||this.shouldBeUpdated)&&await this.modifyData()}loadOptions(){this.sorting.loadOptions()}getModifiers(){let e=[];return this.sorting.modifier&&e.push(this.sorting.modifier),e}async modifyData(){let t=this.grid.dataTable;if(!t)return;let i=this.getModifiers();if(i.length>0){let s=new e({},...i),n=t.clone();await s.modify(n.modified),this.grid.presentationTable=n.modified}else this.grid.presentationTable=t.modified;this.shouldBeUpdated=!1}}}),i(t,"Grid/Core/Grid.js",[t["Grid/Core/Accessibility/Accessibility.js"],t["Core/Renderer/HTML/AST.js"],t["Grid/Core/Defaults.js"],t["Grid/Core/GridUtils.js"],t["Data/DataTable.js"],t["Grid/Core/Table/Table.js"],t["Core/Utilities.js"],t["Grid/Core/Querying/QueryingController.js"],t["Grid/Core/Globals.js"],t["Shared/TimeBase.js"]],function(e,t,i,s,n,r,o,l,a,d){let{makeHTMLElement:h,setHTMLContent:u}=s,{fireEvent:c,extend:m,getStyle:p,merge:f,pick:g,defined:C}=o;class y{static grid(e,t,i){return i?new Promise(i=>{new y(e,t,e=>{i(e)})}):new y(e,t)}constructor(e,t,i){this.columnOptionsMap={},this.userOptions={},this.initialContainerHeight=0,this.loadUserOptions(t),this.querying=new l(this),this.id=this.options?.id||o.uniqueKey(),this.initContainers(e),this.initAccessibility(),this.loadDataTable(this.options?.dataTable),this.initVirtualization(),this.locale=this.options?.lang?.locale||this.container?.closest("[lang]")?.lang,this.time=new d(m(this.options?.time,{locale:this.locale}),this.options?.lang),this.querying.loadOptions(),this.querying.proceed().then(()=>{this.renderViewport(),i?.(this)}),y.grids.push(this)}initAccessibility(){this.accessibility?.destroy(),delete this.accessibility,this.options?.accessibility?.enabled&&(this.accessibility=new e(this))}initContainers(e){let i="string"==typeof e?a.win.document.getElementById(e):e;if(!i)return void console.error(`
Rendering div not found. It is unable to find the HTML element
to render the Grid in.
`);this.initialContainerHeight=p(i,"height",!0)||0,this.container=i,this.container.innerHTML=t.emptyHTML,this.contentWrapper=h("div",{className:a.getClassName("container")},this.container)}loadUserOptions(e,t=!1){(e=f(e)).columns&&(t?this.setColumnOptionsOneToOne(e.columns):this.setColumnOptions(e.columns),delete e.columns),this.userOptions=f(this.userOptions,e),this.options=f(this.options??i.defaultOptions,this.userOptions);let s=this.options?.columns;if(!s)return;let n={};for(let e=0,t=s?.length??0;e<t;++e)n[s[e].id]={index:e,options:s[e]};this.columnOptionsMap=n}setColumnOptions(e,t=!1){this.userOptions.columns||(this.userOptions.columns=[]);let i=this.userOptions.columns;for(let s=0,n=e.length;s<n;++s){let n=e[s],r=this.columnOptionsMap?.[n.id]?.index??-1;if(Object.keys(n).length<2){t&&-1!==r&&i.splice(r,1);continue}-1===r?i.push(n):t?i[r]=n:f(!0,i[r],n)}i.length<1&&delete this.userOptions.columns}setColumnOptionsOneToOne(e){let t,i=this.userOptions.columns,s=[];for(let n=0,r=e.length;n<r;++n){let r=e[n],o=i?.findIndex(e=>e.id===r.id);void 0!==o&&-1!==o&&(t=i?.[o]);let l=f(t??{},r);Object.keys(l).length>1&&s.push(l)}this.userOptions.columns=s}async update(e={},t=!0,i=!1){this.loadUserOptions(e,i),this.initAccessibility();let s=!1;(!this.dataTable||e.dataTable)&&(this.userOptions.dataTable=e.dataTable,(this.options??{}).dataTable=e.dataTable,this.loadDataTable(this.options?.dataTable),s=!0,this.initVirtualization()),this.querying.loadOptions();let n=e.lang?.locale;n&&(this.locale=n,this.time.update(m(e.time||{},{locale:this.locale}))),t&&(await this.querying.proceed(s),this.renderViewport())}async updateColumn(e,t,i=!0,s=!1){this.setColumnOptions([{id:e,...t}],s),await this.update(void 0,i)}hoverRow(e){let t=this.viewport?.rows;if(!t)return;let i=this.viewport?.rows[0]?.index??0;void 0!==this.hoveredRowIndex&&t[this.hoveredRowIndex-i]?.setHoveredState(!1),void 0!==e&&t[e-i]?.setHoveredState(!0),this.hoveredRowIndex=e}hoverColumn(e){let t=this.viewport;t&&(this.hoveredColumnId&&t.getColumn(this.hoveredColumnId)?.setHoveredState(!1),e&&t.getColumn(e)?.setHoveredState(!0),this.hoveredColumnId=e)}syncRow(e){let t=this.viewport?.rows;if(!t)return;let i=this.viewport?.rows[0]?.index??0;void 0!==this.syncedRowIndex&&t[this.syncedRowIndex-i]?.setSyncedState(!1),void 0!==e&&t[e-i]?.setSyncedState(!0),this.syncedRowIndex=e}syncColumn(e){let t=this.viewport;t&&(this.syncedColumnId&&t.getColumn(this.syncedColumnId)?.setSyncedState(!1),e&&t.getColumn(e)?.setSyncedState(!0),this.syncedColumnId=e)}renderCaption(){let e=this.options?.caption,t=e?.text;t&&(this.captionElement=h("div",{className:a.getClassName("captionElement"),id:this.id+"-caption"},this.contentWrapper),u(this.captionElement,t),e.className&&this.captionElement.classList.add(...e.className.split(/\s+/g)))}renderDescription(){let e=this.options?.description,t=e?.text;t&&(this.descriptionElement=h("div",{className:a.getClassName("descriptionElement"),id:this.id+"-description"},this.contentWrapper),u(this.descriptionElement,t),e.className&&this.descriptionElement.classList.add(...e.className.split(/\s+/g)))}resetContentWrapper(){this.contentWrapper&&(this.contentWrapper.innerHTML=t.emptyHTML,this.contentWrapper.className=a.getClassName("container")+" "+this.options?.rendering?.theme||"")}renderViewport(){let e=this.viewport?.getStateMeta();this.enabledColumns=this.getEnabledColumnIDs(),this.credits?.destroy(),this.viewport?.destroy(),delete this.viewport,this.resetContentWrapper(),this.renderCaption(),this.enabledColumns.length>0?(this.viewport=this.renderTable(),e&&this.viewport&&this.viewport.applyStateMeta(e)):this.renderNoData(),this.renderDescription(),this.accessibility?.setA11yOptions(),c(this,"afterRenderViewport"),this.viewport?.reflow()}renderTable(){return this.tableElement=h("table",{className:a.getClassName("tableElement")},this.contentWrapper),new r(this,this.tableElement)}renderNoData(){h("div",{className:a.getClassName("noData"),innerText:this.options?.lang?.noData},this.contentWrapper)}getEnabledColumnIDs(){let e,{columnOptionsMap:t}=this,i=this.options?.header,s=this.getColumnIds(i||[],!1),n=this.options?.rendering?.columns?.included||(s&&s.length>0?s:this.dataTable?.getColumnNames());if(!n?.length)return[];if(!t)return n;let r=[];for(let i=0,s=n.length;i<s;++i)e=n[i],t?.[e]?.options?.enabled!==!1&&r.push(e);return r}loadDataTable(e){if(e?.id){this.dataTable=e,this.presentationTable=this.dataTable.modified;return}this.dataTable=this.presentationTable=new n(e)}getColumnIds(e,t=!0){let i=[],{enabledColumns:s}=this;for(let n of e){let e="string"==typeof n?n:n.columnId;e&&(!t||s?.includes(e))&&i.push(e),"string"!=typeof n&&n.columns&&(i=i.concat(this.getColumnIds(n.columns,t)))}return i}destroy(){let e=y.grids.findIndex(e=>e===this);this.viewport?.destroy(),this.container&&(this.container.innerHTML=t.emptyHTML,this.container.classList.remove(a.getClassName("container"))),Object.keys(this).forEach(e=>{delete this[e]}),y.grids.splice(e,1)}showLoading(e){this.loadingWrapper||(this.loadingWrapper=h("div",{className:a.getClassName("loadingWrapper")},this.contentWrapper),h("div",{className:a.getClassName("loadingSpinner")},this.loadingWrapper),u(h("span",{className:a.getClassName("loadingMessage")},this.loadingWrapper),g(e,this.options?.lang?.loading,"")))}hideLoading(){this.loadingWrapper?.remove(),delete this.loadingWrapper}getData(){let e=this.viewport?.dataTable.modified.columns;if(!this.enabledColumns||!e)return"{}";for(let t of Object.keys(e))-1===this.enabledColumns.indexOf(t)&&delete e[t];return JSON.stringify(e)}getJSON(){return this.getData()}getOptions(e=!0){let t=e?f(this.userOptions):f(this.options);return t.dataTable?.id&&(t.dataTable={columns:t.dataTable.columns}),t}getOptionsJSON(e=!0){return JSON.stringify(this.getOptions(e))}initVirtualization(){var e,t;let s=this.userOptions.rendering?.rows,n=s?.virtualization,r=Number(s?.virtualizationThreshold||i.defaultOptions.rendering?.rows?.virtualizationThreshold),o=Number(this.dataTable?.rowCount);(t=(e=this.options??(this.options={})).rendering??(e.rendering={})).rows??(t.rows={}),this.options.rendering.rows.virtualization=C(n)?n:o>=r}}return y.grids=[],y}),i(t,"Data/DataPoolDefaults.js",[],function(){return{connectors:[]}}),i(t,"Data/DataPool.js",[t["Data/Connectors/DataConnector.js"],t["Data/DataPoolDefaults.js"],t["Core/Utilities.js"]],function(e,t,i){class s{constructor(e=t){e.connectors=e.connectors||[],this.connectors={},this.options=e,this.waiting={}}emit(e){i.fireEvent(this,e.type,e)}getConnector(e){let t=this.connectors[e];if(t?.loaded)return Promise.resolve(t);let i=this.waiting[e];if(!i){i=this.waiting[e]=[];let t=this.getConnectorOptions(e);if(!t)throw Error(`Connector '${e}' not found.`);this.loadConnector(t).then(t=>{delete this.waiting[e];for(let e=0,s=i.length;e<s;++e)i[e][0](t)}).catch(t=>{delete this.waiting[e];for(let e=0,s=i.length;e<s;++e)i[e][1](t)})}return new Promise((e,t)=>{i.push([e,t])})}getConnectorIds(){let e=this.options.connectors,t=[];for(let i=0,s=e.length;i<s;++i)t.push(e[i].id);return t}getConnectorOptions(e){let t=this.options.connectors;for(let i=0,s=t.length;i<s;++i)if(t[i].id===e)return t[i]}getConnectorTable(e){return this.getConnector(e).then(e=>e.table)}isNewConnector(e){return!this.connectors[e]}loadConnector(t){return new Promise((i,s)=>{this.emit({type:"load",options:t});let n=e.types[t.type];if(!n)throw Error(`Connector type not found. (${t.type})`);let r=this.connectors[t.id]=new n(t.options,t.dataTables);r.load().then(({converter:e,dataTables:s})=>{r.dataTables=s,r.converter=e,r.loaded=!0,this.emit({type:"afterLoad",options:t}),i(r)}).catch(s)})}cancelPendingRequests(){let{connectors:e}=this;for(let t of Object.keys(e))e[t].stopPolling()}on(e,t){return i.addEvent(this,e,t)}setConnectorOptions(e){let t=this.options.connectors,i=this.connectors;this.emit({type:"setConnectorOptions",options:e});for(let i=0,s=t.length;i<s;++i)if(t[i].id===e.id){t.splice(i,1);break}i[e.id]&&(i[e.id].stopPolling(),delete i[e.id]),t.push(e),this.emit({type:"afterSetConnectorOptions",options:e})}}return s.version="1.0.0",s}),i(t,"Grid/Pro/GridEvents.js",[t["Core/Utilities.js"],t["Core/Globals.js"]],function(e,t){let{addEvent:i,fireEvent:s,pushUnique:n}=e,r={cell_mouseOver:function(){s(this.row.viewport.grid,"cellMouseOver",{target:this})},cell_mouseOut:function(){s(this.row.viewport.grid,"cellMouseOut",{target:this})}};return{compose:function(e,s,o){n(t.composed,"GridEvents")&&(["mouseOver","mouseOut","dblClick","click","afterRender"].forEach(e=>{i(o,e,t=>{let i=t.target,s=i.column.options.cells?.events?.[e]||i.row.viewport.grid.options?.events?.cell?.[e];s?.call(i),r["cell_"+e]?.call(i)})}),["afterResize","afterSorting"].forEach(t=>{i(e,t,e=>{let i=e.target,s=i.options?.events?.[t]||i.viewport.grid.options?.events?.column?.[t];s?.call(i)})}),["click","afterRender"].forEach(e=>{i(s,e,t=>{let i=t.target,s=i.options?.header?.events?.[e]||i.viewport?.grid?.options?.events?.header?.[e];s?.call(i)})}))}}}),i(t,"Grid/Pro/CellEditing/CellEditing.js",[t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t){let{fireEvent:i}=t;class s{constructor(e){this.onInputBlur=()=>{this.stopEditing()||this.editModeContent?.getMainElement().focus()},this.onInputChange=()=>{this.editModeContent?.finishAfterChange&&!this.stopEditing()&&this.editModeContent?.getMainElement().focus()},this.onInputKeyDown=e=>{let{key:t}=e;if(e.stopPropagation(),"Escape"===t)return void this.stopEditing(!1);if("Enter"===t){if(this.editModeContent?.finishAfterChange)return void this.onInputChange();this.stopEditing()}},this.viewport=e}startEditing(t){this.editedCell!==t&&(!this.editedCell||this.stopEditing())&&(this.editedCell=t,t.htmlElement.classList.add(e.getClassName("editedCell")),this.render(),i(t,"startedEditing"))}stopEditing(t=!0){let s=this.editedCell,n=this.editModeContent;if(!s||!n)return!1;let{column:r}=s,o=r.viewport,l=n.value;if(t){let e=[];if(!o.validator.validate(s,e))return o.validator.initErrorBox(s,e),!1;o.validator.hide(),o.validator.errorCell=void 0}this.viewport.validator.hide(),this.destroy(),s.htmlElement.classList.remove(e.getClassName("editedCell")),s.htmlElement.focus();let a=s.value!==l;return s.setValue(t?l:s.value,t&&a),a&&i(s,"stoppedEditing",{submit:t}),delete this.editedCell,!0}render(){let e=this.editedCell;e&&e.column.editModeRenderer&&(this.containerElement=this.containerElement||document.createElement("div"),this.containerElement.className=s.classNames.cellEditingContainer,this.editedCell?.htmlElement.appendChild(this.containerElement),this.editModeContent=e.column.editModeRenderer?.render(e,this.containerElement),this.editModeContent.getMainElement().focus(),this.editModeContent.blurHandler=this.onInputBlur,this.editModeContent.changeHandler=this.onInputChange,this.editModeContent.keyDownHandler=this.onInputKeyDown)}destroy(){this.editModeContent&&(this.editModeContent.destroy(),this.containerElement?.remove(),delete this.editModeContent,delete this.containerElement)}}return(s||(s={})).classNames={cellEditingContainer:e.classNamePrefix+"cell-editing-container"},s}),i(t,"Grid/Pro/CellRendering/CellRendererRegistry.js",[],function(){var e,t;return(t=e||(e={})).types={},t.registerRenderer=function(e,i){return!!e&&!t.types[e]&&!!(t.types[e]=i)},e}),i(t,"Grid/Pro/CellEditing/CellEditingComposition.js",[t["Grid/Core/Defaults.js"],t["Grid/Core/Globals.js"],t["Grid/Pro/CellEditing/CellEditing.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Core/GridUtils.js"],t["Core/Utilities.js"]],function(e,t,i,s,n,r){var o;let{makeHTMLElement:l}=n,{addEvent:a,merge:d,pushUnique:h}=r;return!function(n){let r={accessibility:{announcements:{cellEditing:!0}},lang:{accessibility:{cellEditing:{editable:"Editable.",announcements:{started:"Entered cell editing mode.",edited:"Edited cell value.",cancelled:"Editing canceled.",notValid:"Provided value is not valid."}}}}};function o(){this.cellEditing=new i(this)}function u(){let{options:e}=this;(e?.cells?.editMode?.enabled||e?.cells?.editable)&&(this.editModeRenderer=function(e){let t=e.options.cells?.editMode,i=t?.renderer?.type,n=e.options?.cells?.renderer?.type||"text";if(i)return new s.types[i](e,t?.renderer||{});let r=(s.types[n]||s.types.text).defaultEditingRenderer;return"string"!=typeof r&&(r=r[e.dataType]||"textInput"),new s.types[r](e,r===n&&d(e.options.cells?.renderer,{disabled:!1})||{})}(this))}function c(e){e.originalEvent?.key==="Enter"&&this.column.editModeRenderer&&this.row.viewport.cellEditing?.startEditing(this)}function m(){this.column.editModeRenderer&&this.row.viewport.cellEditing?.startEditing(this)}function p(){if(!this.row.viewport.grid.accessibility||this.a11yEditableHint?.isConnected)return;let e=this.row.viewport.grid.options?.lang?.accessibility?.cellEditing?.editable;(this.column.options.cells?.editable||this.column.options.cells?.editMode?.enabled)&&e&&(this.a11yEditableHint=l("span",{className:t.getClassName("visuallyHidden"),innerText:", "+e},this.htmlElement))}function f(e,t){let i=e.row.viewport.grid.accessibility;if(!i)return;let{options:s}=i.grid;if(!s?.accessibility?.announcements?.cellEditing)return;let n=s?.lang?.accessibility?.cellEditing?.announcements,r=n?.[t];r&&i.announce(r)}n.compose=function(i,s,n){h(t.composed,"CellEditing")&&(d(!0,e.defaultOptions,r),a(n,"afterInit",u),a(i,"beforeInit",o),a(s,"keyDown",c),a(s,"dblClick",m),a(s,"afterRender",p),a(s,"startedEditing",function(){f(this,"started")}),a(s,"stoppedEditing",function(e){let t=d(this.column.viewport.grid.options?.events?.cell,this.column.options.cells?.events);e.submit&&t?.afterEdit?.call(this),f(this,e.submit?"edited":"cancelled")}))}}(o||(o={})),o}),i(t,"Grid/Pro/Dash3Compatibility.js",[t["Core/Utilities.js"],t["Core/Globals.js"]],function(e,t){let{pushUnique:i}=e;return{compose:function(e){i(t.composed,"Dash3Compatibility")&&Object.defineProperty(e.prototype,"dataGrid",{get:function(){return this.grid},configurable:!0,enumerable:!1})}}}),i(t,"Grid/Core/Credits.js",[t["Grid/Core/Globals.js"],t["Grid/Core/GridUtils.js"]],function(e,t){let{makeHTMLElement:i,setHTMLContent:s}=t;class n{constructor(t,s){this.grid=t,this.containerElement=i("div",{className:e.getClassName("creditsContainer")}),this.textElement=this.renderAnchor(),this.options=s??n.defaultOptions,this.render()}render(){let e=this.grid,t=e.contentWrapper,{text:i,href:n}=this.options;this.containerElement.remove(),this.textElement||(this.textElement=this.renderAnchor()),i&&n&&(s(this.textElement,i),this.textElement.setAttribute("href",n||"")),e.descriptionElement?t?.insertBefore(this.containerElement,e.descriptionElement):t?.appendChild(this.containerElement)}renderAnchor(){let t=i("a",{className:e.getClassName("creditsText")},this.containerElement);return t.setAttribute("target","_blank"),t}getHeight(){return this.containerElement.offsetHeight}destroy(){this.containerElement.remove()}}return n.defaultOptions={enabled:!0,text:`<picture class="hcg-logo-wrapper">
<source srcset="https://assets.highcharts.com/grid/logo_darkx2.png 2x, https://assets.highcharts.com/grid/logo_dark.png 1x" media="(prefers-color-scheme: dark)">
<img src="https://assets.highcharts.com/grid/logo_light.png" srcset="https://assets.highcharts.com/grid/logo_lightx2.png 2x, https://assets.highcharts.com/grid/logo_light.png 1x" alt="Highcharts logo" style="height: 20px !important; width: auto !important; display: inline-block !important;">
</picture>`,href:"https://www.highcharts.com",position:"bottom"},n}),i(t,"Grid/Pro/Credits/CreditsPro.js",[t["Grid/Core/Globals.js"],t["Grid/Core/Credits.js"],t["Grid/Core/GridUtils.js"]],function(e,t,i){let{setHTMLContent:s}=i;return class extends t{setContent(){let{text:e,href:t}=this.options;s(this.textElement,e||""),this.textElement.setAttribute("href",t||"")}appendToContainer(){let t=this.grid,i=t.contentWrapper,{position:s}=this.options;if(this.containerElement.classList.add(e.getClassName("creditsPro")),"top"===s)return void i?.prepend(this.containerElement);t.descriptionElement?i?.insertBefore(this.containerElement,t.descriptionElement):i?.appendChild(this.containerElement)}update(e,t=!0){e&&(this.grid.update({credits:e},!1),this.options=this.grid.options?.credits??{}),t&&this.render()}render(){let e=this.options.enabled??!1;this.containerElement.remove(),e?(this.setContent(),this.appendToContainer()):this.destroy(),this.grid.viewport?.reflow()}destroy(){super.destroy(),delete this.grid.credits}}}),i(t,"Grid/Pro/Credits/CreditsProComposition.js",[t["Grid/Pro/Credits/CreditsPro.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"],t["Grid/Core/Defaults.js"]],function(e,t,i,s){var n;let{addEvent:r,merge:o,pushUnique:l}=i;function a(){this.credits=new e(this,this.options?.credits)}return(n||(n={})).compose=function(i){l(t.composed,"CreditsPro")&&(o(!0,s.defaultOptions,{credits:e.defaultOptions}),r(i,"afterRenderViewport",a))},n}),i(t,"Grid/Pro/ColumnTypes/Validator.js",[t["Core/Renderer/HTML/AST.js"],t["Grid/Core/Globals.js"],t["Grid/Core/GridUtils.js"],t["Core/Utilities.js"]],function(e,t,i,s){var n;let{makeDiv:r,setHTMLContent:o}=i,{defined:l}=s;class a{constructor(e){this.viewport=e,this.notifContainer=r(a.classNames.notifContainer),this.viewport.grid.contentWrapper?.appendChild(this.notifContainer)}validate(e,t=[]){let{options:i,dataType:s}=e.column,n=e.row.viewport.grid.options?.lang?.validationErrors,r=Array.from(i?.cells?.editMode?.validationRules||[]),o=r.every(e=>"string"==typeof e);if(r.length>0&&o)r=[...new Set(r)];else{let e=a.predefinedRules[s]||[];r.some(t=>"string"!=typeof t&&"string"==typeof t.validate&&e.includes(t.validate))||r.push(...e)}for(let i of r){let s,r,o;if("string"==typeof i?(s=a.rulesRegistry[i],r=n?.[i]?.notification):s=i,"string"==typeof s.validate){let e=a.rulesRegistry[s.validate];o=e?.validate}else o=s.validate;let{editModeContent:l}=e.column.viewport.cellEditing||{};"function"==typeof o&&l&&!o.call(e,l)&&("function"==typeof s.notification&&(r=s.notification.call(e,l)),t.push(r||s.notification))}return!t.length}initErrorBox(e,t){let{grid:i}=this.viewport;this.errorCell=e,this.reflow(),o(this.notifContainer,t.join("<br />")),i.options?.accessibility?.announcements?.cellEditing&&this.viewport.grid.accessibility?.announce((i.options?.lang?.accessibility?.cellEditing?.announcements?.notValid||"")+" "+t.join(". "),!0),this.show()}show(){this.errorCell?.htmlElement.classList.add(a.classNames.editedCellError),this.notifContainer.classList.add(a.classNames.notifError,a.classNames.notifAnimation)}hide(t=!0){this.errorCell?.htmlElement.classList.remove(a.classNames.editedCellError),this.notifContainer.classList.remove(a.classNames.notifError,a.classNames.notifAnimation),t&&(this.errorCell=void 0),this.notifContainer.innerHTML=e.emptyHTML}reflow(){let e=this.viewport,t=this.errorCell?.htmlElement,i=e.grid.tableElement,s=e.grid.contentWrapper;if(!t||!i||!s)return;let n=i.offsetTop,r=i.offsetHeight;t.offsetTop-n>n+r/2?(this.notifContainer.style.top=n+(e.theadElement?.offsetHeight||0)+"px",this.notifContainer.style.bottom="auto"):(this.notifContainer.style.top="auto",this.notifContainer.style.bottom=s.offsetHeight-n-r+"px")}destroy(){this.errorCell=void 0,this.notifContainer.remove()}}return(n=a||(a={})).classNames={notifContainer:t.classNamePrefix+"notification",notifError:t.classNamePrefix+"notification-error",notifAnimation:t.classNamePrefix+"notification-animation",editedCellError:t.classNamePrefix+"edited-cell-error"},n.rulesRegistry={notEmpty:{validate:({value:e,rawValue:t})=>l(e)&&t.length>0,notification:"Value cannot be empty."},number:{validate:({rawValue:e})=>!isNaN(+e),notification:"Value has to be a number."},datetime:{validate:({value:e})=>!l(e)||!isNaN(+e),notification:"Value has to be parsed to a valid timestamp."},boolean:{validate:({rawValue:e})=>"true"===e||"false"===e||1===Number(e)||0===Number(e),notification:"Value has to be a boolean."}},n.predefinedRules={boolean:["boolean"],datetime:["datetime"],number:["number"],string:[]},a}),i(t,"Grid/Pro/ColumnTypes/ValidatorComposition.js",[t["Grid/Pro/ColumnTypes/Validator.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){var s;let{addEvent:n,pushUnique:r}=i;function o(){this.validator=new e(this)}function l(){this.validator.destroy()}return(s||(s={})).compose=function(e){r(t.composed,"Validator")&&(n(e,"afterInit",o),n(e,"afterDestroy",l))},s}),i(t,"Grid/Pro/CellRendering/CellRenderersComposition.js",[t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){var s;let{addEvent:n,pushUnique:r}=i;function o(){let t=this.options.cells?.renderer?.type||"text",i=e.types[t];i||(console.warn(`The cell renderer of type "${t}" is not registered. Using default text renderer instead.`),i=e.types.text),this.cellRenderer=new i(this,this.options.cells?.renderer||{})}function l(e){return this.cellRenderer.render(e)}return(s||(s={})).compose=function(e){r(t.composed,"CellRenderers")&&(n(e,"afterInit",o),e.prototype.createCellContent=l)},s}),i(t,"Data/Converters/CSVConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:i}=t;class s extends e{constructor(e){let t=i(s.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.dataTypes=[],this.options=t}export(e,t=this.options){let{useLocalDecimalPoint:i,lineDelimiter:s}=t,n=!1!==this.options.firstRowAsNames,{decimalPoint:r,itemDelimiter:o}=t;r||(r=","!==o&&i?1.1.toLocaleString()[1]:"."),o||(o=","===r?";":",");let l=e.getSortedColumns(t.usePresentationOrder),a=Object.keys(l),d=[],h=a.length,u=[];n&&d.push(a.map(e=>`"${e}"`).join(o));for(let t=0;t<h;t++){let i,s=a[t],n=l[s],c=n.length,m=e.whatIs(s);m&&(i=m.dataType);for(let e=0;e<c;e++){let s=n[e];if(u[e]||(u[e]=[]),"string"===i?s='"'+s+'"':"number"==typeof s?s=String(s).replace(".",r):"string"==typeof s&&(s=`"${s}"`),u[e][t]=s,t===h-1){let i=t;for(;u[e].length>2&&void 0===u[e][i];)u[e].pop(),i--;d.push(u[e].join(o))}}}return d.join(s)}parse(e,t){let s=this.dataTypes,n=i(this.options,e),{beforeParse:r,lineDelimiter:o,firstRowAsNames:l,itemDelimiter:a}=n,d,h=0,{csv:u,startRow:c,endRow:m}=n,p;if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),u&&r&&(u=r(u)),u){if(d=u.replace(/\r\n|\r/g,"\n").split(o||"\n"),(!c||c<0)&&(c=0),(!m||m>=d.length)&&(m=d.length-1),a||(this.guessedItemDelimiter=this.guessDelimiter(d)),l){let e=d[0].split(a||this.guessedItemDelimiter||",");for(let t=0;t<e.length;t++)e[t]=e[t].trim().replace(/^["']|["']$/g,"");this.headers=e,c++}let e=0;for(h=c;h<=m;h++)"#"===d[h][0]?e++:this.parseCSVRow(d[h],h-c-e);s.length&&s[0].length&&"date"===s[0][1]&&!this.options.dateFormat&&this.deduceDateFormat(this.columns[0],null,!0);for(let e=0,t=this.columns.length;e<t;++e){p=this.columns[e];for(let t=0,i=p.length;t<i;++t)if(p[t]&&"string"==typeof p[t]){let i=this.asGuessedType(p[t]);i instanceof Date&&(i=i.getTime()),this.columns[e][t]=i}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}parseCSVRow(e,t){let i=this,s=i.columns||[],n=i.dataTypes,{startColumn:r,endColumn:o}=i.options,l=i.options.itemDelimiter||i.guessedItemDelimiter,{decimalPoint:a}=i.options;a&&a!==l||(a=i.guessedDecimalPoint||".");let d=0,h="",u="",c=0,m=0,p=t=>{h=e[t]},f=e=>{n.length<m+1&&n.push([e]),n[m][n[m].length-1]!==e&&n[m].push(e)},g=()=>{if(r>c||c>o){++c,u="";return}if("string"==typeof u?!isNaN(parseFloat(u))&&isFinite(u)?(u=parseFloat(u),f("number")):isNaN(Date.parse(u))?f("string"):(u=u.replace(/\//g,"-"),f("date")):f("number"),s.length<m+1&&s.push([]),"number"!=typeof u&&"number"!==i.guessType(u)&&a){let e=u;u=u.replace(a,"."),"number"!==i.guessType(u)&&(u=e)}s[m][t]=u,u="",++m,++c};if(e.trim().length&&"#"!==e.trim()[0]){for(;d<e.length;d++){if(p(d),"#"===h&&!/^#[A-F\d]{3,3}|[A-F\d]{6,6}/i.test(e.substring(d)))return void g();if('"'===h)for(p(++d);d<e.length&&'"'!==h;)u+=h,p(++d);else h===l?g():u+=h}g()}}guessDelimiter(e){let t=0,i=0,s,n={",":0,";":0," ":0},r=e.length;for(let s=0;s<r;s++){let r=!1,o,l,a,d="";if(s>13)break;let h=e[s];for(let e=0;e<h.length&&(o=h[e],l=h[e+1],a=h[e-1],"#"!==o);e++){if('"'===o)if(r){if('"'!==a&&'"'!==l){for(;" "===l&&e<h.length;)l=h[++e];void 0!==n[l]&&n[l]++,r=!1}}else r=!0;else void 0!==n[o]?(isNaN(Date.parse(d=d.trim()))?(isNaN(Number(d))||!isFinite(Number(d)))&&n[o]++:n[o]++,d=""):d+=o;","===o&&i++,"."===o&&t++}}return n[";"]>n[","]?s=";":(n[","]>n[";"],s=","),t>i?this.guessedDecimalPoint=".":this.guessedDecimalPoint=",",s}getTable(){return e.getTableFromColumns(this.columns,this.headers)}}return s.defaultOptions={...e.defaultOptions,lineDelimiter:"\n"},e.registerType("CSV",s),s}),i(t,"Data/Connectors/CSVConnector.js",[t["Data/Converters/CSVConverter.js"],t["Data/Connectors/DataConnector.js"],t["Core/Utilities.js"]],function(e,t,i){let{merge:s,defined:n}=i;class r extends t{constructor(e,t){let i=s(r.defaultOptions,e);super(i,t),this.options=n(t)?s(i,{dataTables:t}):i,i.enablePolling&&this.startPolling(1e3*Math.max(i.dataRefreshRate||0,1))}load(t){let i=this,n=i.dataTables,{csv:r,csvURL:o,dataModifier:l,dataTables:a}=i.options;return i.emit({type:"load",csv:r,detail:t,tables:n}),Promise.resolve(o?fetch(o,{signal:i?.pollingController?.signal}).then(e=>e.text()):r||"").then(t=>(t&&this.initConverters(t,t=>{let i=this.options,n=a?.find(e=>e.key===t),r={dataTableKey:t,firstRowAsNames:n?.firstRowAsNames??i.firstRowAsNames,beforeParse:n?.beforeParse??i.beforeParse};return new e(s(this.options,r))},(e,t)=>{e.parse({csv:t})}),i.setModifierOptions(l,a).then(()=>t))).then(e=>(i.emit({type:"afterLoad",csv:e,detail:t,tables:n}),i)).catch(e=>{throw i.emit({type:"loadError",detail:t,error:e,tables:n}),e})}}return r.defaultOptions={csv:"",csvURL:"",enablePolling:!1,dataRefreshRate:1,firstRowAsNames:!0},t.registerType("CSV",r),r}),i(t,"Data/Converters/GoogleSheetsConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:i,uniqueKey:s}=t;class n extends e{constructor(e){let t=i(n.defaultOptions,e);super(t),this.columns=[],this.header=[],this.options=t}parse(e,t){let n,r=i(this.options,e),o=(r.json?.values||[]).map(e=>e.slice());if(0===o.length)return!1;this.header=[],this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.header});let{beforeParse:l,json:a}=r;l&&a&&(o=l(a.values)),this.columns=o;for(let e=0,t=o.length;e<t;e++){n=o[e],this.header[e]=r.firstRowAsNames?`${n.shift()}`:s();for(let t=0,i=n.length;t<i;++t)if(n[t]&&"string"==typeof n[t]){let i=this.asGuessedType(n[t]);i instanceof Date&&(i=i.getTime()),this.columns[e][t]=i}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.header})}getTable(){return e.getTableFromColumns(this.columns,this.header)}}return n.defaultOptions={...e.defaultOptions},e.registerType("GoogleSheets",n),n}),i(t,"Data/Connectors/GoogleSheetsConnector.js",[t["Data/Connectors/DataConnector.js"],t["Data/Converters/GoogleSheetsConverter.js"],t["Core/Utilities.js"]],function(e,t,i){let{merge:s,pick:n,defined:r}=i;class o extends e{constructor(e,t){let i=s(o.defaultOptions,e);super(i,t),this.options=r(t)?s(i,{dataTables:t}):i}load(e){let i=this,n=i.dataTables,{dataModifier:r,dataRefreshRate:l,enablePolling:a,googleAPIKey:d,googleSpreadsheetKey:h,dataTables:u}=i.options,c=o.buildFetchURL(d,h,i.options);if(i.emit({type:"load",detail:e,tables:n,url:c}),!URL.canParse(c))throw Error("Invalid URL: "+c);return fetch(c,{signal:i?.pollingController?.signal}).then(e=>e.json()).then(e=>{if("object"==typeof e&&e&&"object"==typeof e.error&&e.error&&"number"==typeof e.error.code&&"string"==typeof e.error.message&&"string"==typeof e.error.status)throw Error(e.error.message);return this.initConverters(e,e=>{let i=this.options,n=u?.find(t=>t.key===e),r={dataTableKey:e,firstRowAsNames:n?.firstRowAsNames??i.firstRowAsNames,beforeParse:n?.beforeParse??i.beforeParse};return new t(s(this.options,r))},(e,t)=>{e.parse({json:t})}),i.setModifierOptions(r,u)}).then(()=>(i.emit({type:"afterLoad",detail:e,tables:n,url:c}),a&&setTimeout(()=>i.load(),1e3*Math.max(l||0,1)),i)).catch(t=>{throw i.emit({type:"loadError",detail:e,error:t,tables:n}),t})}}o.defaultOptions={googleAPIKey:"",googleSpreadsheetKey:"",enablePolling:!1,dataRefreshRate:2,firstRowAsNames:!0};var l=o||(o={});let a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";function d(e={}){let{endColumn:t,endRow:i,googleSpreadsheetRange:s,startColumn:r,startRow:o}=e;return s||(a[r||0]||"A")+(Math.max(o||0,0)+1)+":"+(a[n(t,25)]||"Z")+(i?Math.max(i,0):"Z")}return l.buildFetchURL=function(e,t,i={}){let s=new URL(`https://sheets.googleapis.com/v4/spreadsheets/${t}/values/`),n=i.onlyColumnNames?"A1:Z1":d(i);s.pathname+=n;let r=s.searchParams;return r.set("alt","json"),i.onlyColumnNames||(r.set("dateTimeRenderOption","FORMATTED_STRING"),r.set("majorDimension","COLUMNS"),r.set("valueRenderOption","UNFORMATTED_VALUE")),r.set("prettyPrint","false"),r.set("key",e),s.href},l.buildQueryRange=d,e.registerType("GoogleSheets",o),o}),i(t,"Data/Converters/HTMLTableConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:i}=t;class s extends e{constructor(e){let t=i(s.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.options=t,t.tableElement&&(this.tableElement=t.tableElement,this.tableElementID=t.tableElement.id)}export(e,t=this.options){let i=!1!==t.firstRowAsNames,s=t.useMultiLevelHeaders,n=e.getSortedColumns(t.usePresentationOrder),r=Object.keys(n),o=[],l=r.length,a=[],d="";if(i){let e=[];if(s){for(let t of r){let i=n[t];Array.isArray(i)||(i=Array.from(i));let s=(i.shift()||"").toString();n[t]=i,e.push(s)}d=this.getTableHeaderHTML(r,e,t)}else d=this.getTableHeaderHTML(void 0,r,t)}for(let e=0;e<l;e++){let t=n[r[e]],i=t.length;for(let s=0;s<i;s++){let i=t[s];a[s]||(a[s]=[]),"string"!=typeof i&&"number"!=typeof i&&void 0!==i&&(i=(i||"").toString()),a[s][e]=this.getCellHTMLFromValue(e?"td":"th",null,e?"":'scope="row"',i),e===l-1&&o.push("<tr>"+a[s].join("")+"</tr>")}}let h="";return t.tableCaption&&(h='<caption class="highcharts-table-caption">'+t.tableCaption+"</caption>"),"<table>"+h+d+"<tbody>"+o.join("")+"</tbody></table>"}getCellHTMLFromValue(e,t,i,s,n){let r=s,o="text"+(t?" "+t:"");return"number"==typeof r?(r=r.toString(),","===n&&(r=r.replace(".",n)),o="number"):s||(r="",o="empty"),"<"+e+(i?" "+i:"")+' class="'+o+'">'+r+"</"+e+">"}getTableHeaderHTML(e=[],t=[],i=this.options){let{useMultiLevelHeaders:s,useRowspanHeaders:n}=i,r="<thead>",o=0,l=t&&t.length,a,d=0,h;if(s&&e&&t&&!function(e,t){let i=e.length;if(t.length!==i)return!1;for(;--i;)if(e[i]!==t[i])return!1;return!0}(e,t)){for(r+="<tr>";o<l;++o)(a=e[o])===e[o+1]?++d:d?(r+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col" colspan="'+(d+1)+'"',a),d=0):(a===t[o]?n?(h=2,delete t[o]):(h=1,t[o]=""):h=1,r+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col"'+(h>1?' valign="top" rowspan="'+h+'"':""),a));r+="</tr>"}if(t){for(r+="<tr>",o=0,l=t.length;o<l;++o)void 0!==t[o]&&(r+=this.getCellHTMLFromValue("th",null,'scope="col"',t[o]));r+="</tr>"}return r+"</thead>"}parse(e,t){let s=[],n=[],r=i(this.options,e),{endRow:o,startColumn:l,endColumn:a,firstRowAsNames:d}=r,h=r.tableElement||this.tableElement;if(!(h instanceof HTMLElement))return void this.emit({type:"parseError",columns:s,detail:t,headers:n,error:"Not a valid HTML Table"});this.tableElement=h,this.tableElementID=h.id,this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers});let u=h.getElementsByTagName("tr"),c=u.length,m=0,p,{startRow:f}=r;if(d&&c){let e=u[0].children,t=e.length;for(let i=l;i<t&&!(i>a);i++)("TD"===(p=e[i]).tagName||"TH"===p.tagName)&&n.push(p.innerHTML);f++}for(;m<c;){if(m>=f&&m<=o){let e=u[m].children,t=e.length,i=0;for(;i<t;){let t=i-l,n=s[t];if(("TD"===(p=e[i]).tagName||"TH"===p.tagName)&&i>=l&&i<=a){s[t]||(s[t]=[]);let e=this.asGuessedType(p.innerHTML);e instanceof Date&&(e=e.getTime()),s[t][m-f]=e;let i=1;for(;m-f>=i&&void 0===n[m-f-i];)n[m-f-i]=null,i++}i++}}m++}this.columns=s,this.headers=n,this.emit({type:"afterParse",columns:s,detail:t,headers:n})}getTable(){return e.getTableFromColumns(this.columns,this.headers)}}return s.defaultOptions={...e.defaultOptions,useRowspanHeaders:!0,useMultiLevelHeaders:!0},e.registerType("HTMLTable",s),s}),i(t,"Data/Connectors/HTMLTableConnector.js",[t["Data/Connectors/DataConnector.js"],t["Core/Globals.js"],t["Data/Converters/HTMLTableConverter.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{win:n}=t,{merge:r}=s;class o extends e{constructor(e){let t=r(o.defaultOptions,e);super(t),this.converter=new i(t),this.options=t}load(e){let t,i=this,s=i.converter,o=i.table,{dataModifier:l,table:a}=i.options;if(i.emit({type:"load",detail:e,tables:{table:o},tableElement:i.tableElement}),"string"==typeof a?(i.tableID=a,t=n.document.getElementById(a)):i.tableID=(t=a).id,i.tableElement=t||void 0,!i.tableElement){let t="HTML table not provided, or element with ID not found";return i.emit({type:"loadError",detail:e,error:t,tables:{table:o}}),Promise.reject(Error(t))}return s.parse(r({tableElement:i.tableElement},i.options),e),o.deleteColumns(),o.setColumns(s.getTable().getColumns()),i.setModifierOptions(l).then(()=>(i.emit({type:"afterLoad",detail:e,tables:{table:o},tableElement:i.tableElement}),i))}}return o.defaultOptions={table:""},e.registerType("HTMLTable",o),o}),i(t,"Data/Converters/JSONConverter.js",[t["Data/Converters/DataConverter.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,i){let{error:s,isArray:n,merge:r,objectEach:o}=i;class l extends e{constructor(e){let i=r(l.defaultOptions,e);super(i),this.columns=[],this.headers=[],this.options=i,this.table=new t}parse(e,t){let{beforeParse:i,orientation:l,firstRowAsNames:a,columnNames:d}=e=r(this.options,e),h=e.data;if(h){if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),i&&(h=i(h)),h=h.slice(),"columns"===l)for(let e=0,t=h.length;e<t;e++){let t=h[e];if(!(t instanceof Array))return;this.headers instanceof Array?(a?this.headers.push(`${t.shift()}`):d&&d instanceof Array&&this.headers.push(d[e]),this.table.setColumn(this.headers[e]||e.toString(),t)):s("JSONConverter: Invalid `columnNames` option.",!1)}else if("rows"===l){a?this.headers=h.shift():d&&(this.headers=d);for(let e=0,t=h.length;e<t;e++){let t=h[e];if(n(t))for(let e=0,i=t.length;e<i;e++)this.columns.length<e+1&&this.columns.push([]),this.columns[e].push(t[e]),this.headers instanceof Array?this.table.setColumn(this.headers[e]||e.toString(),this.columns[e]):s("JSONConverter: Invalid `columnNames` option.",!1);else{let i=this.headers;if(i&&!(i instanceof Array)){let e={};o(i,(i,s)=>{e[s]=i.reduce((e,t)=>e[t],t)}),t=e}this.table.setRows([t],e)}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}}getTable(){return this.table}}return l.defaultOptions={...e.defaultOptions,data:[],orientation:"rows"},e.registerType("JSON",l),l}),i(t,"Data/Connectors/JSONConnector.js",[t["Data/Connectors/DataConnector.js"],t["Core/Utilities.js"],t["Data/Converters/JSONConverter.js"]],function(e,t,i){let{merge:s,defined:n}=t;class r extends e{constructor(e,t){let i=s(r.defaultOptions,e);super(i,t),this.options=n(t)?s(i,{dataTables:t}):i,i.enablePolling&&this.startPolling(1e3*Math.max(i.dataRefreshRate||0,1))}load(e){let t=this,n=t.dataTables,{data:r,dataUrl:o,dataModifier:l,dataTables:a}=t.options;return t.emit({type:"load",data:r,detail:e,tables:n}),Promise.resolve(o?fetch(o,{signal:t?.pollingController?.signal}).then(e=>e.json()).catch(i=>{t.emit({type:"loadError",detail:e,error:i,tables:n}),console.warn(`Unable to fetch data from ${o}.`)}):r||[]).then(e=>(e&&this.initConverters(e,e=>{let t=this.options,n=a?.find(t=>t.key===e),r={dataTableKey:e,columnNames:n?.columnNames??t.columnNames,firstRowAsNames:n?.firstRowAsNames??t.firstRowAsNames,orientation:n?.orientation??t.orientation,beforeParse:n?.beforeParse??t.beforeParse};return new i(s(this.options,r))},(e,t)=>{e.parse({data:t})}),t.setModifierOptions(l,a).then(()=>e))).then(i=>(t.emit({type:"afterLoad",data:i,detail:e,tables:n}),t)).catch(i=>{throw t.emit({type:"loadError",detail:e,error:i,tables:n}),i})}}return r.defaultOptions={data:[],enablePolling:!1,dataRefreshRate:0,firstRowAsNames:!0,orientation:"rows"},e.registerType("JSON",r),r}),i(t,"Data/Modifiers/InvertModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:i}=t;class s extends e{constructor(e){super(),this.options=i(s.defaultOptions,e)}modifyCell(e,t,i,s,n){let r=e.modified,o=r.getRowIndexBy("columnNames",t);return void 0===o?r.setColumns(this.modifyTable(e.clone()).getColumns(),void 0,n):r.setCell(`${i}`,o,s,n),e}modifyColumns(e,t,i,s){let n=e.modified,r=n.getColumn("columnNames")||[],o=e.getColumnNames(),l=e.getRowCount()!==r.length;if(!l){for(let e=0,t=o.length;e<t;++e)if(o[e]!==r[e]){l=!0;break}}if(l)return this.modifyTable(e,s);o=Object.keys(t);for(let e=0,r=o.length,l,a,d;e<r;++e){l=t[a=o[e]],d=n.getRowIndexBy("columnNames",a)||n.getRowCount();for(let e=0,t=i,r=l.length;e<r;++e,++t)n.setCell(`${t}`,d,l[e],s)}return e}modifyRows(e,t,i,s){let n=e.getColumnNames(),r=e.modified,o=r.getColumn("columnNames")||[],l=e.getRowCount()!==o.length;if(!l){for(let e=0,t=n.length;e<t;++e)if(n[e]!==o[e]){l=!0;break}}if(l)return this.modifyTable(e,s);for(let e=0,o=i,l=t.length,a;e<l;++e,++o)if((a=t[e])instanceof Array)r.setColumn(`${o}`,a);else for(let e=0,t=n.length;e<t;++e)r.setCell(`${o}`,e,a[n[e]],s);return e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=e.modified;if(e.hasColumns(["columnNames"])){let t=(e.deleteColumns(["columnNames"])||{}).columnNames||[],s={},n=[];for(let e=0,i=t.length;e<i;++e)n.push(""+t[e]);for(let t=0,i=e.getRowCount(),r;t<i;++t)(r=e.getRow(t))&&(s[n[t]]=r);i.deleteColumns(),i.setColumns(s)}else{let t={};for(let i=0,s=e.getRowCount(),n;i<s;++i)(n=e.getRow(i))&&(t[`${i}`]=n);t.columnNames=e.getColumnNames(),i.deleteColumns(),i.setColumns(t)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return s.defaultOptions={type:"Invert"},e.registerType("Invert",s),s}),i(t,"Data/Modifiers/RangeModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:i}=t;class s extends e{constructor(e){super(),this.options=i(s.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=[],{additive:s,ranges:n,strict:r}=this.options;if(n.length){let t=e.modified,o=e.getColumns(),l=[];for(let e=0,a=n.length,d,h;e<a;++e)if(d=n[e],!r||typeof d.minValue==typeof d.maxValue){e>0&&!s&&(t.deleteRows(),t.setRows(l),t.setOriginalRowIndexes(i,!0),o=t.getColumns(),l=[],i=[]),h=o[d.column]||[];for(let e=0,t=h.length;e<t;++e)switch(typeof h[e]){default:continue;case"boolean":case"number":case"string":}}t.deleteRows(),t.setRows(l),t.setOriginalRowIndexes(i)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return s.defaultOptions={type:"Range",ranges:[]},e.registerType("Range",s),s}),i(t,"Data/Modifiers/FilterModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{isFunction:i,merge:s}=t;class n extends e{static compile(e){if(i(e))return e;let t=e.operator;switch(t){case"and":{let t=e.conditions.map(e=>this.compile(e));return(e,i,s)=>t.every(t=>t(e,i,s))}case"or":{let t=e.conditions.map(e=>this.compile(e));return(e,i,s)=>t.some(t=>t(e,i,s))}case"not":{let t=this.compile(e.condition);return(e,i,s)=>!t(e,i,s)}}let{columnName:s,value:n}=e;switch(t){case"==":return e=>e[s]==n;case"===":return e=>e[s]===n;case"!=":return e=>e[s]!=n;case"!==":return e=>e[s]!==n;case">":return e=>(e[s]||0)>(n||0);case">=":return e=>(e[s]||0)>=(n||0);case"<":return e=>(e[s]||0)<(n||0);case"<=":return e=>(e[s]||0)<=(n||0)}let{ignoreCase:r}=e,o=e=>{let t=""+e;return r??!0?t.toLowerCase():t};return"contains"===t?e=>o(e[s]).includes(o(n)):e=>o(e[s])[t](o(n))}constructor(e){super(),this.options=s(n.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let{condition:i}=this.options;if(!i)return e;let s=n.compile(i),r=e.modified,o=[],l=[];for(let t=0,i=e.getRowCount();t<i;++t){let i=e.getRowObject(t);i&&s(i,e,t)&&(o.push(i),l.push(r.getOriginalRowIndex(t)))}return r.deleteRows(),r.setRows(o),r.setOriginalRowIndexes(l),this.emit({type:"afterModify",detail:t,table:e}),e}}return n.defaultOptions={type:"Filter"},e.registerType("Filter",n),n}),i(t,"Grid/Pro/CellRendering/CellRenderer.js",[],function(){return class{constructor(e){this.column=e}}}),i(t,"Grid/Pro/CellRendering/Renderers/TextRenderer.js",[t["Grid/Pro/CellRendering/CellRenderer.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Core/Table/CellContent/TextContent.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{merge:n}=s;class r extends e{constructor(e){super(e),this.options=n(r.defaultOptions,this.column.options.cells?.renderer||{});let t=e.options.cells;this.format=t?.format??i.defaultFormatsForDataTypes[e.dataType],this.formatter=t?.formatter}render(e){return new i(e)}}return r.defaultEditingRenderer={string:"textInput",number:"textInput",boolean:"checkbox",datetime:"dateInput"},r.defaultOptions={type:"text"},t.registerRenderer("text",r),r}),i(t,"Grid/Pro/CellRendering/CellContentPro.js",[t["Grid/Core/Table/CellContent/CellContent.js"]],function(e){return class extends e{constructor(e,t){super(e),this.renderer=t}}}),i(t,"Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js",[t["Grid/Pro/CellRendering/CellContentPro.js"],t["Grid/Core/Globals.js"]],function(e,t){return class extends e{constructor(e,t,i){super(e,t),this.finishAfterChange=!1,this.onChange=e=>{this.changeHandler?this.changeHandler(e):this.cell.setValue(this.value,!0)},this.onKeyDown=e=>{this.keyDownHandler?.(e)},this.onBlur=e=>{this.blurHandler?.(e)},this.onCellKeyDown=e=>{" "===e.key&&this.input.click()},this.input=this.add(i)}add(e=this.cell.htmlElement){let i=this.cell;return this.input=document.createElement("input"),this.input.tabIndex=-1,this.input.type="checkbox",this.input.name=i.column.id+"-"+i.row.id,this.update(),e.appendChild(this.input),this.input.classList.add(t.classNamePrefix+"field-auto-width"),this.input.addEventListener("change",this.onChange),this.input.addEventListener("keydown",this.onKeyDown),this.input.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),this.input}update(){let e=this.cell,t=this.input,{options:i}=this.renderer;t.checked=!!e.value,t.disabled=!!i.disabled}get rawValue(){return this.input.checked?"true":"false"}get value(){let e=this.input.checked;switch(this.cell.column.dataType){case"datetime":case"number":return+e;case"boolean":return e;case"string":return""+e}}getMainElement(){return this.input}destroy(){let e=this.input;this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),e.remove()}}}),i(t,"Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js",[t["Grid/Pro/CellRendering/CellRenderer.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{merge:n}=s;class r extends e{constructor(e,t){super(e),this.options=n(r.defaultOptions,t)}render(e,t){return new i(e,this,t)}}return r.defaultEditingRenderer="checkbox",r.defaultOptions={type:"checkbox"},t.registerRenderer("checkbox",r),r}),i(t,"Grid/Pro/CellRendering/ContentTypes/SelectContent.js",[t["Grid/Pro/CellRendering/CellContentPro.js"],t["Core/Renderer/HTML/AST.js"]],function(e,t){return class extends e{constructor(e,t,i){super(e,t),this.finishAfterChange=!0,this.optionElements=[],this.onChange=e=>{this.changeHandler?this.changeHandler(e):(this.cell.htmlElement.focus(),this.cell.setValue(this.value,!0))},this.onKeyDown=e=>{if(e.stopPropagation(),this.keyDownHandler)return void this.keyDownHandler?.(e);("Escape"===e.key||"Enter"===e.key)&&this.cell.htmlElement.focus()},this.onBlur=e=>{this.blurHandler?.(e)},this.onCellKeyDown=e=>{" "===e.key&&(this.select.focus(),e.preventDefault())},this.select=this.add(i)}add(e=this.cell.htmlElement){let t=this.cell,i=this.select=document.createElement("select");return i.tabIndex=-1,i.name=t.column.id+"-"+t.row.id,this.update(),e.appendChild(this.select),i.addEventListener("change",this.onChange),i.addEventListener("keydown",this.onKeyDown),i.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),i}update(){let e=this.cell,{options:i}=this.renderer;for(let s of(this.select.disabled=!!i.disabled,this.select.innerHTML=t.emptyHTML,i.options)){let t=document.createElement("option");t.value=s.value,t.textContent=s.label||s.value,t.disabled=!!s.disabled,e.value===s.value&&(t.selected=!0),this.select.appendChild(t),this.optionElements.push(t)}}destroy(){let e=this.select;for(let t of(this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),this.optionElements))t.remove();this.optionElements.length=0,e.remove()}get rawValue(){return this.select.value}get value(){let e=this.select.value;switch(this.cell.column.dataType){case"datetime":case"number":return+e;case"boolean":return e;case"string":return""+e}}getMainElement(){return this.select}}}),i(t,"Grid/Pro/CellRendering/Renderers/SelectRenderer.js",[t["Grid/Pro/CellRendering/CellRenderer.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Pro/CellRendering/ContentTypes/SelectContent.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{merge:n}=s;class r extends e{constructor(e,t){super(e),this.options=n(r.defaultOptions,t)}render(e,t){return new i(e,this,t)}}return r.defaultEditingRenderer="select",r.defaultOptions={type:"select",options:[]},t.registerRenderer("select",r),r}),i(t,"Grid/Pro/CellRendering/ContentTypes/TextInputContent.js",[t["Grid/Pro/CellRendering/CellContentPro.js"],t["Core/Utilities.js"]],function(e,t){let{defined:i}=t;return class extends e{constructor(e,t,i){super(e,t),this.finishAfterChange=!0,this.onChange=e=>{if(this.changeHandler)return void this.changeHandler(e);this.cell.setValue(e.target.value,!0)},this.onKeyDown=e=>{if(e.stopPropagation(),this.keyDownHandler)return void this.keyDownHandler(e);if("Escape"===e.key){this.input.value=this.convertToInputValue(),this.cell.htmlElement.focus();return}"Enter"===e.key&&this.cell.htmlElement.focus()},this.onBlur=e=>{this.blurHandler?.(e)},this.onCellKeyDown=e=>{" "===e.key&&(this.input.focus(),e.preventDefault())},this.input=this.add(i)}add(e=this.cell.htmlElement){let t=this.cell,i=this.input=document.createElement("input");return i.tabIndex=-1,i.name=t.column.id+"-"+t.row.id,this.update(),e.appendChild(this.input),i.addEventListener("change",this.onChange),i.addEventListener("keydown",this.onKeyDown),i.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),i}update(){let{options:e}=this.renderer;this.input.value=this.convertToInputValue(),this.input.disabled=!!e.disabled}get rawValue(){return this.input.value}get value(){let e=this.input.value;switch(this.cell.column.dataType){case"datetime":case"number":return""===e?null:+e;case"boolean":if(""===e)return null;if("false"===e||0==+e)return!1;return!0;case"string":return e}}convertToInputValue(){let e=this.cell.value;return i(e)?""+e:""}getMainElement(){return this.input}destroy(){let e=this.input;this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),e.remove()}}}),i(t,"Grid/Pro/CellRendering/Renderers/TextInputRenderer.js",[t["Grid/Pro/CellRendering/CellRenderer.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Pro/CellRendering/ContentTypes/TextInputContent.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{merge:n}=s;class r extends e{constructor(e,t){super(e),this.options=n(r.defaultOptions,t)}render(e,t){return new i(e,this,t)}}return r.defaultEditingRenderer="textInput",r.defaultOptions={type:"textInput"},t.registerRenderer("textInput",r),r}),i(t,"Grid/Pro/CellRendering/ContentTypes/DateInputContent.js",[t["Grid/Pro/CellRendering/CellContentPro.js"]],function(e){return class extends e{constructor(e,t,i){super(e,t),this.finishAfterChange=!1,this.onChange=e=>{this.changeHandler?.(e)},this.onKeyDown=e=>{if(e.stopPropagation(),this.keyDownHandler)return void this.keyDownHandler(e);if("Escape"===e.key){this.cell.htmlElement.focus(),this.input.value=this.convertToInputValue();return}"Enter"===e.key&&(this.cell.htmlElement.focus(),this.cell.setValue(this.value,!0))},this.onBlur=e=>{if(this.blurHandler)return void this.blurHandler(e);this.cell.setValue(this.value,!0)},this.onCellKeyDown=e=>{" "===e.key&&(this.input.focus(),e.preventDefault())},this.input=this.add(i)}add(e=this.cell.htmlElement){let t=this.cell,i=this.input=document.createElement("input");return i.tabIndex=-1,i.type="date",i.name=t.column.id+"-"+t.row.id,this.update(),e.appendChild(i),i.addEventListener("change",this.onChange),i.addEventListener("keydown",this.onKeyDown),i.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),this.input}update(){let e=this.input,{options:t}=this.renderer;e.value=this.convertToInputValue(),e.disabled=!!t.disabled}get rawValue(){return this.input.value}get value(){return new Date(this.input.value).getTime()}getMainElement(){return this.input}destroy(){let e=this.input;this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),e.remove()}convertToInputValue(){return this.cell.column.viewport.grid.time.dateFormat("%Y-%m-%d",Number(this.cell.value||0))}}}),i(t,"Grid/Pro/CellRendering/Renderers/DateInputRenderer.js",[t["Grid/Pro/CellRendering/CellRenderer.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Pro/CellRendering/ContentTypes/DateInputContent.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{merge:n}=s;class r extends e{constructor(e,t){super(e),this.options=n(r.defaultOptions,t)}render(e,t){return new i(e,this,t)}}return r.defaultEditingRenderer="dateInput",r.defaultOptions={type:"dateInput"},t.registerRenderer("dateInput",r),r}),i(t,"Grid/Pro/CellRendering/ContentTypes/SparklineContent.js",[t["Grid/Pro/CellRendering/CellContentPro.js"],t["Grid/Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){let{defined:s,merge:n}=i;class r extends e{constructor(e,t,i){super(e,t),this.onKeyDown=()=>{this.cell.htmlElement.focus()},this.add(i)}add(e=this.cell.htmlElement){let i=r.H;i&&s(this.cell.value)&&(this.chartContainer=document.createElement("div"),e.classList.add(t.getClassName("noPadding")),e.appendChild(this.chartContainer),this.chart=i.Chart.chart(this.chartContainer,n(r.defaultChartOptions,this.getProcessedOptions())),this.chartContainer.addEventListener("click",this.onKeyDown))}update(){let e=this.getProcessedOptions();this.chart?.update(e,!0,!1,e.chart?.animation)}destroy(){this.chartContainer?.removeEventListener("keydown",this.onKeyDown),this.chart?.destroy(),this.chartContainer?.remove(),delete this.chart,delete this.chartContainer,this.cell.htmlElement.classList.remove(t.getClassName("noPadding"))}getProcessedOptions(){let e,{chartOptions:t}=this.renderer.options;e="function"==typeof t?t.call(this.cell,this.cell.value):n(t)||{};let i=(""+this.cell.value).trim();return i.startsWith("[")||i.startsWith("{")||(i=`[${i}]`),e.series||(e.series=[{data:JSON.parse(i)}]),e}}return r.defaultChartOptions={chart:{height:40,margin:[5,8,5,8],backgroundColor:"transparent",skipClone:!0},accessibility:{enabled:!1},tooltip:{enabled:!1},title:{text:""},credits:{enabled:!1},xAxis:{visible:!1},yAxis:{visible:!1},legend:{enabled:!1},plotOptions:{series:{borderWidth:0,marker:{enabled:!1},states:{hover:{enabled:!1},inactive:{enabled:!1}},animation:!1,dataLabels:{enabled:!1}},pie:{slicedOffset:0,borderRadius:0}}},r||(r={}),r}),i(t,"Grid/Pro/CellRendering/Renderers/SparklineRenderer.js",[t["Grid/Pro/CellRendering/CellRenderer.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"],t["Grid/Pro/CellRendering/ContentTypes/SparklineContent.js"],t["Core/Utilities.js"]],function(e,t,i,s){let{merge:n}=s;class r extends e{constructor(e){if(super(e),!i.H)throw Error("Sparkline Renderer: Highcharts is not loaded. Please ensure that Highcharts namespace is registered before the Sparkline Renderer is used.");this.options=n(r.defaultOptions,this.column.options.cells?.renderer||{})}render(e){return new i(e,this)}}return r.defaultEditingRenderer="textInput",r.defaultOptions={type:"sparkline"},(r||(r={})).useHighcharts=function(e){e&&!i.H&&(i.H=e)},t.registerRenderer("sparkline",r),r}),i(t,"masters/datagrid.js",[t["Core/Renderer/HTML/AST.js"],t["Core/Templating.js"],t["Grid/Core/Table/ColumnDistribution/ColumnDistribution.js"],t["Data/Connectors/DataConnector.js"],t["Data/Converters/DataConverter.js"],t["Data/DataCursor.js"],t["Grid/Core/Grid.js"],t["Data/Modifiers/DataModifier.js"],t["Data/DataPool.js"],t["Data/DataTable.js"],t["Grid/Core/Defaults.js"],t["Grid/Core/Globals.js"],t["Accessibility/HighContrastMode.js"],t["Core/Utilities.js"],t["Grid/Core/Table/Table.js"],t["Grid/Core/Table/Column.js"],t["Grid/Core/Table/Header/HeaderCell.js"],t["Grid/Core/Table/Body/TableCell.js"],t["Grid/Pro/GridEvents.js"],t["Grid/Pro/CellEditing/CellEditingComposition.js"],t["Grid/Pro/Dash3Compatibility.js"],t["Grid/Pro/Credits/CreditsProComposition.js"],t["Grid/Pro/ColumnTypes/ValidatorComposition.js"],t["Grid/Pro/CellRendering/CellRenderersComposition.js"],t["Grid/Pro/CellRendering/CellRendererRegistry.js"]],function(e,t,i,s,n,r,o,l,a,d,h,u,c,m,p,f,g,C,y,b,w,v,T,E,R){return u.AST=e,u.classNamePrefix="highcharts-datagrid-",u.DataConnector=s,u.DataCursor=r,u.DataConverter=n,u.DataGrid=o,u.dataGrid=o.grid,u.dataGrids=o.grids,u.Grid=o,u.grid=o.grid,u.grids=o.grids,u.DataModifier=l,u.DataPool=a,u.DataTable=d,u.ColumnDistribution=i,u.defaultOptions=h.defaultOptions,u.isHighContrastModeActive=c.isHighContrastModeActive,u.setOptions=h.setOptions,u.Templating=t,u.product="Grid Pro",u.merge=m.merge,u.Table=u.Table||p,u.Column=u.Column||f,u.HeaderCell=u.HeaderCell||g,u.TableCell=u.TableCell||C,y.compose(u.Column,u.HeaderCell,u.TableCell),b.compose(u.Table,u.TableCell,u.Column),v.compose(u.Grid),w.compose(u.Table),T.compose(u.Table),E.compose(u.Column),u.CellRendererRegistry=u.CellRendererRegistry||R,u.win.DataGrid||(u.win.DataGrid=u),u.win.Grid||(u.win.Grid=u),u.win.Highcharts&&u.CellRendererRegistry.types.sparkline.useHighcharts(u.win.Highcharts),u}),t["masters/datagrid.js"]._modules=t,t["masters/datagrid.js"]});