-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgrid-lite.js
More file actions
10 lines (10 loc) · 231 KB
/
Copy pathgrid-lite.js
File metadata and controls
10 lines (10 loc) · 231 KB
1
2
3
4
5
6
7
8
9
10
!/**
* Highcharts Grid v3.1.0 (2026-08-06)
* @module grid/grid-lite
*
* (c) 2009-2026 Highsoft AS
*
* A commercial license may be required depending on use,
* see www.highcharts.com/license
*/function(e,t){"object"==typeof exports&&"object"==typeof module?(e._Grid=t(),module.exports=e._Grid):"function"==typeof define&&define.amd?define("grid/grid-lite",[],t):"object"==typeof exports?(e._Grid=t(),exports["grid/grid-lite"]=e._Grid):(e.Grid&&e.Grid.error(16,!0),e.Grid=t())}("u"<typeof window?this:window,()=>(()=>{"use strict";var e,t;let i,n,s,o,r={};r.d=(e,t)=>{if(Array.isArray(t))for(var i=0;i<t.length;){var n=t[i++],s=t[i++];r.o(e,n)?0===s&&i++:0===s?Object.defineProperty(e,n,{enumerable:!0,value:t[i++]}):Object.defineProperty(e,n,{enumerable:!0,get:s})}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let l={};r.d(l,{default:()=>ne}),(t=e||(e={})).SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="3.1.0",t.win="u">typeof window?window:{},t.doc=t.win.document,t.svg=!!t.doc?.createElementNS?.(t.SVG_NS,"svg")?.createSVGRect,t.pageLang=t.doc?.documentElement?.closest("[lang]")?.lang,t.userAgent=t.win.navigator?.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0;let a=e,{doc:h,win:d}=a;function u(e,t,i,n={}){let s="function"==typeof e&&e.prototype||e;Object.hasOwnProperty.call(s,"hcEvents")||(s.hcEvents={});let o=s.hcEvents;a.Point&&e instanceof a.Point&&e.series&&e.series.chart&&(e.series.chart.runTrackerClick=!0);let r=e.addEventListener;r&&r.call(e,t,i,!!a.supportsPassiveEvents&&{passive:void 0===n.passive?-1!==t.indexOf("touch"):n.passive,capture:!1}),o[t]||(o[t]=[]);let l={fn:i,order:"number"==typeof n.order?n.order:1/0};return o[t].push(l),o[t].sort((e,t)=>e.order-t.order),function(){!function(e,t,i){function n(t,i){let n=e.removeEventListener;n&&n.call(e,t,i,!1)}function s(i){let s,o;e.nodeName&&(t?(s={})[t]=!0:s=i,S(s,function(e,t){if(i[t])for(o=i[t].length;o--;)n(t,i[t][o].fn)}))}let o="function"==typeof e&&e.prototype||e;if(Object.hasOwnProperty.call(o,"hcEvents")){let e=o.hcEvents;if(t){let o=e[t]||[];i?(e[t]=o.filter(function(e){return i!==e.fn}),n(t,i)):(s(e),e[t]=[])}else s(e),delete o.hcEvents}}(e,t,i)}}function c(e,t,i){let n,s=E(t)&&!p(i),o=(t,i)=>{p(t)?e.setAttribute(i,t):s?(n=e.getAttribute(i))||"class"!==i||(n=e.getAttribute(i+"Name")):e.removeAttribute(i)};return E(t)?o(i,t):S(t,o),n}function m(e,t){return e>1e14?e:parseFloat(e.toPrecision(t||14))}function p(e){return null!=e}function g(e,t,i,n){let s={};return!function e(t,s,o,r){let l=i?s:t;S(t,function(i,a){if(!r&&n&&n.indexOf(a)>-1&&s[a]){i=P(i),o[a]=[];for(let t=0;t<Math.max(i.length,s[a].length);t++)s[a][t]&&(void 0===i[t]?o[a][t]=s[a][t]:(o[a][t]={},e(i[t],s[a][t],o[a][t],r+1)))}else T(i,!0)&&!i.nodeType?(o[a]=x(i)?[]:{},e(i,s[a]||{},o[a],r+1),0===Object.keys(o[a]).length&&("colorAxis"!==a||0!==r)&&delete o[a]):(t[a]!==s[a]||a in t&&!(a in s))&&"__proto__"!==a&&"constructor"!==a&&(o[a]=l[a])})}(e,t,s,0),s}function f(e,t){let i;for(i in e||(e={}),t)e[i]=t[i];return e}function y(e,t,i,n){if(i=i||{},h?.createEvent&&(e.dispatchEvent||e.fireEvent&&e!==a)){let n=h.createEvent("Events");n.initEvent(t,!0,!0),i=f(n,i),e.dispatchEvent?e.dispatchEvent(i):e.fireEvent(t,i)}else if(e.hcEvents){i.target||f(i,{preventDefault:function(){i.defaultPrevented=!0},target:e,type:t});let n=[],s=e,o=!1;for(;s.hcEvents;)Object.hasOwnProperty.call(s,"hcEvents")&&s.hcEvents[t]&&(n.length&&(o=!0),n.unshift.apply(n,s.hcEvents[t])),s=Object.getPrototypeOf(s);o&&n.sort((e,t)=>e.order-t.order),n.forEach(t=>{!1===t.fn.call(e,i,e)&&i.preventDefault()})}n&&!i.defaultPrevented&&n.call(e,i)}function w(e,t,i){let n;if("width"===t){let t=Math.min(e.offsetWidth,e.scrollWidth),i=e.getBoundingClientRect?.().width;return i<t&&i>=t-1&&(t=Math.floor(i)),Math.max(0,t-(w(e,"padding-left",!0)||0)-(w(e,"padding-right",!0)||0))}if("height"===t)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(w(e,"padding-top",!0)||0)-(w(e,"padding-bottom",!0)||0));let s=d.getComputedStyle(e,void 0);return s&&(n=s.getPropertyValue(t),I(i,"opacity"!==t)&&(n=parseInt(n,10))),n}function C(e){p(e)&&clearTimeout(e)}function v(e){return T(e)&&"number"==typeof e.nodeType}function b(e){return"number"==typeof e&&!isNaN(e)&&e<1/0&&e>-1/0}function E(e){return"string"==typeof e}function x(e){let t=Object.prototype.toString.call(e);return"[object Array]"===t||"[object Array Iterator]"===t}function R(e){return"function"==typeof e}function T(e,t){return!!e&&"object"==typeof e&&(!t||!x(e))}function M(e,...t){let i,n=[e,...t],s={},o=function(e,t){return"object"!=typeof e&&(e={}),S(t,function(i,n){if("__proto__"!==n&&"constructor"!==n){let s;!T(i,!0)||(s=i?.constructor,T(i,!0)&&!v(i)&&s?.name&&"Object"!==s.name)||v(i)?e[n]=t[n]:e[n]=o(e[n]||{},i)}}),e};!0===e&&(s=n[1],n=Array.prototype.slice.call(n,2));let r=n.length;for(i=0;i<r;i++)s=o(s,n[i]);return s}function S(e,t,i){for(let n in e)Object.hasOwnProperty.call(e,n)&&t.call(i||e[n],e[n],n,e)}function O(e,t,i){return Array((t||2)+1-String(e).replace("-","").length).join(i||"0")+e}function I(){let e=arguments,t=e.length;for(let i=0;i<t;i++){let t=e[i];if(null!=t)return t}}function L(e,t){return 0>e.indexOf(t)&&!!e.push(t)}function P(e){return x(e)?e:[e]}function A(e){return E(e)?e.substring(0,1).toUpperCase()+e.substring(1):String(e)}Array.prototype.find;let{charts:D,win:N}=a;function H(e,t,i,n){let s=t?"Highcharts error":"Highcharts warning";32===e&&(e=`${s}: Deprecated member`);let o=b(e),r=o?`${s} #${e}: www.highcharts.com/errors/${e}/`:e.toString();if(void 0!==n){let e="";o&&(r+="?"),S(n,function(t,i){e+=`
- ${i}: ${t}`,o&&(r+=encodeURI(i)+"="+encodeURI(t))}),r+=e}y(a,"displayError",{chart:i,code:e,message:r,params:n},function(){if(t)throw Error(r);N.console&&-1===H.messages.indexOf(r)&&console.warn(r)}),H.messages.push(r)}(H||(H={})).messages=[];let k={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5};Math.easeInOutSine=function(e){return -.5*(Math.cos(Math.PI*e)-1)};let F=(s=Math.random().toString(36).substring(2,9)+"-",o=0,function(){return"highcharts-"+(i?"":s)+o++});N.jQuery&&(N.jQuery.fn.highcharts=function(){let e=[].slice.call(arguments);if(this[0])return e[0]?(new a[E(e[0])?e.shift():"Chart"](this[0],e[0],e[1]),this):D[c(this[0],"data-highcharts-chart")]});let{SVG_NS:B,win:z}=a,{trustedTypes:W}=z,V=W&&R(W.createPolicy)&&W.createPolicy("highcharts",{createHTML:e=>e}),j=V?V.createHTML(""):"";class U{static filterUserAttributes(e){return S(e,(t,i)=>{let n=!0;-1===U.allowedAttributes.indexOf(i)&&(n=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(n=E(t)&&U.allowedReferences.some(e=>0===t.indexOf(e))),n||(H(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete e[i]),E(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()),n=i.shift();return n&&i.length&&(e[n.replace(/-([a-z])/g,e=>e[1].toUpperCase())]=i.join(":")),e},{})}static setElementHTML(e,t){e.innerHTML=U.emptyHTML,t&&new U(t).addToDOM(e)}constructor(e){this.nodes="string"==typeof e?this.parseMarkup(e):e}addToDOM(e){return function e(t,i){let n;return P(t).forEach(function(t){let s,o=t.tagName,r=t.textContent?a.doc.createTextNode(t.textContent):void 0,l=U.bypassHTMLFiltering;if(o)if("#text"===o)s=r;else if(-1!==U.allowedTags.indexOf(o)||l){var h,d;let n="svg"===o?B:i.namespaceURI||B,u=a.doc.createElementNS(n,o),m=t.attributes||{};S(t,function(e,t){"tagName"!==t&&"attributes"!==t&&"children"!==t&&"style"!==t&&"textContent"!==t&&(m[t]=e)}),c(u,l?m:U.filterUserAttributes(m)),t.style&&(h=u,d=t.style,f(h.style,d)),r&&u.appendChild(r),e(t.children||[],u),s=u}else H(33,!1,void 0,{"Invalid tagName in config":o});s&&i.appendChild(s),n=s}),n}(this.nodes,e)}parseMarkup(e){let t,i=[];e=e.trim().replace(/ style=(["'])/g," data-style=$1");try{t=new DOMParser().parseFromString(V?V.createHTML(e):e,"text/html")}catch{}if(!t){let i=h.createElement("div");i.innerHTML=e,t={body:i}}let n=(e,t)=>{let i=e.localName||e.nodeName.toLowerCase(),s={tagName:i};"#text"===i&&(s.textContent=e.textContent||"");let o=e.attributes;if(o){let e={};[].forEach.call(o,t=>{"data-style"===t.name?s.style=U.parseStyle(t.value):e[t.name]=t.value}),s.attributes=e}if(e.childNodes.length){let t=[];[].forEach.call(e.childNodes,e=>{n(e,t)}),t.length&&(s.children=t)}t.push(s)};return[].forEach.call(t.body.childNodes,e=>n(e,i)),i}}U.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","aria-sort","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","stop-color","stop-opacity","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"],U.allowedReferences=["https://","http://","mailto:","/","../","./","#"],U.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"],U.emptyHTML=j,U.bypassHTMLFiltering=!1;let{pageLang:q,win:Y}=a,$=a.isSafari&&Y.Intl&&!Y.Intl.DateTimeFormat.prototype.formatRange,K=class{constructor(e,t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=Y.Date,this.update(e),this.lang=t}update(e={}){this.dTLCache={},this.options=e=M(!0,this.options,e);let{timezoneOffset:t,useUTC:i,locale:n}=e;this.Date=e.Date||Y.Date||Date;let s=e.timezone;p(i)&&(s=i?"UTC":void 0),t&&t%60==0&&(s="Etc/GMT"+(t>0?"+":"")+t/60),this.variableTimezone="UTC"!==s&&s?.indexOf("Etc/GMT")!==0,this.timezone=s,this.lang&&n&&(this.lang.locale=n),["months","shortMonths","weekdays","shortWeekdays"].forEach(e=>{let t=/months/i.test(e),i=/short/.test(e),n={timeZone:"UTC"};n[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(n,(t?31:1)*24*36e5*e))})}toParts(e){let[t,i,n,s,o,r,l]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},e,"es").split(/(?:, | |\/|:)/g);return[+s,n-1,+i,+o,+r,+l,Math.floor(Number(e)||0)%1e3,"DLMXJVS".indexOf(t)]}dateTimeFormat(e,t,i=this.options.locale||q){let n=JSON.stringify(e)+i;E(e)&&(e=this.str2dtf(e));let s=this.dTLCache[n];if(!s){e.timeZone??(e.timeZone=this.timezone);try{s=new Intl.DateTimeFormat(i,e)}catch(t){/Invalid time zone/i.test(t.message)?(H(34),e.timeZone="UTC",s=new Intl.DateTimeFormat(i,e)):H(t.message,!1)}}return this.dTLCache[n]=s,s?.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(n=>{-1!==e.indexOf(n)&&f(t,i[n])}),t}makeTime(e,t,i=1,n=0,s,o,r){let l=this.Date.UTC(e,t,i,n,s||0,o||0,r||0);if("UTC"!==this.timezone){let e=this.getTimezoneOffset(l),i=(n-e/k.hour+24)%24;if(l+=e,-1!==[2,3,8,9,10,11].indexOf(t)&&(i<5||i>20)){let t=this.getTimezoneOffset(l);e!==t?l+=t-e:e-36e5!==this.getTimezoneOffset(l-36e5)||$||(l-=36e5)}}return l}parse(e){if(!E(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 n=Date.parse(e);if(b(n))return n+(!t||i?this.getTimezoneOffset(n):0)}getTimezoneOffset(e){if("UTC"!==this.timezone){let[t,i,n,s,o=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},e,"en").split(/(GMT|:)/).map(Number),r=-(60*(n+o/60)*6e4);if(b(r))return r}return 0}dateFormat(e,t,i){let n=this.lang;if(!p(t)||isNaN(t))return n?.invalidDate||"";if(E(e=e??"%Y-%m-%d %H:%M:%S")){let i,s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(e);)e=e.replace(i[0],this.dateTimeFormat(i[1],t,n?.locale))}if(E(e)&&-1!==e.indexOf("%")){let i=this,[s,o,r,l,h,d,u,c]=this.toParts(t),m=n?.weekdays||this.weekdays,p=n?.shortWeekdays||this.shortWeekdays,g=n?.months||this.months,y=n?.shortMonths||this.shortMonths;S(f({a:p?p[c]:m[c].substr(0,3),A:m[c],d:O(r),e:O(r,2," "),w:c,v:n?.weekFrom??"",b:y[o],B:g[o],m:O(o+1),o:o+1,y:s.toString().substr(2,2),Y:s,H:O(l),k:l,I:O(l%12||12),l:l%12||12,M:O(h),p:l<12?"AM":"PM",P:l<12?"am":"pm",S:O(d),L:O(u,3)},a.dateFormats),function(n,s){if(E(e))for(;-1!==e.indexOf("%"+s);)e=e.replace("%"+s,"function"==typeof n?n.call(i,t,i):n)})}else if(T(e)){let i=(this.getTimezoneOffset(t)||0)/36e5,n=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:s="",suffix:o=""}=e;e=s+this.dateTimeFormat(f({timeZone:n},e),t)+o}return i?A(e):e}resolveDTLFormat(e){return T(e,!0)?T(e,!0)&&void 0===e.main?{main:e}:e:{main:(e=P(e))[0],from:e[1],to:e[2]}}getDateFormat(e,t,i,n){let s=this.dateFormat("%m-%d %H:%M:%S.%L",t),o="01-01 00:00:00.000",r={millisecond:15,second:12,minute:9,hour:6,day:3},l="millisecond",a=l;for(l in k){if(e&&e===k.week&&+this.dateFormat("%w",t)===i&&s.substr(6)===o.substr(6)){l="week";break}if(e&&k[l]>e){l=a;break}if(r[l]&&s.substr(r[l])!==o.substr(r[l]))break;"week"!==l&&(a=l)}return this.resolveDTLFormat(n[l]).main}},G=class extends K{getBoundaryTicks(e,t,i,n){let s={};if(t===k.year)return s;let o=p(i)&&p(n),r=t<k.hour,l=t<k.day,a=t<k.month,h=t>=k.hour?9e5:t>=k.minute?6e4:t>=k.second&&1e3;if(e.length<1e4){let d=!0;for(let u=0;u<e.length;u++){let c=e[u];if(o){if(c<i)continue;if(c>n)break}if(d){if(t===k.month){s[c]="year",d=!1;continue}if(t===k.hour){s[c]="day",d=!1;continue}}if(h&&c%h!=0){d=!1;continue}let[,m,p,g,f,y,w]=this.toParts(c),C=!g&&!f&&!y&&!w;r&&0===f&&(s[c]="hour"),l&&C&&(s[c]="day"),a&&1===p&&C&&(s[c]="month"),0===m&&1===p&&C&&(s[c]="year"),d=!1}}return s}getTimeTicks(e,t,i,n){let s=[],{count:o=1,unitRange:r}=e,l=t,[a,h,d,u,c,m]=this.toParts(t),g=(t||0)%1e3,y;if(n??(n=1),p(t)){if(g=r>=k.second?0:o*Math.floor(g/o),r>=k.second&&(m=r>=k.minute?0:o*Math.floor(m/o)),r>=k.minute&&(c=r>=k.hour?0:o*Math.floor(c/o)),r>=k.hour&&(u=r>=k.day?0:o*Math.floor(u/o)),r>=k.day&&(d=r>=k.month?1:Math.max(1,o*Math.floor(d/o))),r>=k.month&&(h=r>=k.year?0:o*Math.floor(h/o)),r>=k.year&&(a-=a%o),r===k.week){o&&(t=this.makeTime(a,h,d,u,c,m,g));let e=this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},t,"es"),i="DLMXJVS".indexOf(e);d+=-i+n+(i<n?-7:0)}t=this.makeTime(a,h,d,u,c,m,g),this.variableTimezone&&p(i)&&(y=i-t>4*k.month||this.getTimezoneOffset(t)!==this.getTimezoneOffset(i));let e=t,l=1;for(;e<i;)s.push(e),r===k.year?e=this.makeTime(a+l*o,0):r===k.month?e=this.makeTime(a,h+l*o):y&&(r===k.day||r===k.week)?e=this.makeTime(a,h,d+l*o*(r===k.day?1:7)):y&&r===k.hour&&o>1?e=this.makeTime(a,h,d,u+l*o):e+=r*o,l++;s.push(e)}return s.info=f(e,{boundaryTicks:this.getBoundaryTicks(s,r,l,i),totalRange:r*o}),s}},{isTouchDevice:_}=a,X={palette:{dark:{backgroundColor:"#141414",neutralColor:"#ffffff",highlightColor:"#2caffe"},light:{backgroundColor:"#ffffff",neutralColor:"#000000",highlightColor:"#0022ff",positiveColor:"#06b535",negativeColor:"#f21313"}},colors:Array(10).fill(1).map((e,t)=>`var(--highcharts-color-${t})`),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:"var(--highcharts-neutral-color-3)",padding:8,r:2,stroke:"var(--highcharts-neutral-color-20)","stroke-width":1,style:{color:"var(--highcharts-neutral-color-80)",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"var(--highcharts-neutral-color-10)"},select:{fill:"var(--highcharts-highlight-color-10)",style:{color:"var(--highcharts-neutral-color-100)",fontWeight:"bold"}},disabled:{style:{color:"var(--highcharts-neutral-color-20)"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{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,selectionMarkerFill:"color-mix(in srgb, var(--highcharts-highlight-color-80) 25%, transparent)",type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"var(--highcharts-highlight-color-80)",backgroundColor:"var(--highcharts-background-color)",plotBorderColor:"var(--highcharts-neutral-color-20)"},title:{style:{color:"var(--highcharts-neutral-color-80)",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"var(--highcharts-neutral-color-60)",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:"var(--highcharts-neutral-color-40)",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"var(--highcharts-highlight-color-100)",inactiveColor:"var(--highcharts-neutral-color-20)"},itemStyle:{color:"var(--highcharts-neutral-color-80)",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"var(--highcharts-neutral-color-100)"},itemHiddenStyle:{color:"var(--highcharts-neutral-color-60)",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:"var(--highcharts-neutral-color-80)",fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"var(--highcharts-background-color)",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:e=>Math.sqrt(1-Math.pow(e-1,2))},borderColor:"light-dark(var(--highcharts-neutral-color-5), var(--highcharts-neutral-color-20))",borderRadius:5,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"%v %[AebY]",month:"%[BY]",year:"%[Y]"},footerFormat:"",header:{distance:5,shape:"callout",style:{fontSize:"1em"}},hideDelay:500,showDelay:0,padding:8,position:{x:0,y:3},shared:!1,snap:_?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:"var(--highcharts-background-color)",borderWidth:void 0,stickOnContact:!1,style:{color:"var(--highcharts-neutral-color-80)",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",verticalAlign:"bottom",x:-10,y:-5},style:{cursor:"pointer",color:"var(--highcharts-neutral-color-40)",fontSize:"0.6em"},text:"Highcharts.com"}},Z=new G(X.time,X.lang),{defaultOptions:Q,defaultTime:J}={defaultOptions:X,defaultTime:Z,getOptions:function(){return X},setOptions:function(e){return y(a,"setOptions",{options:e}),M(!0,X,e),e.time&&Z.update(X.time),e.lang&&"locale"in e.lang&&Z.update({locale:e.lang.locale}),e.lang?.chartTitle&&(X.title={...X.title,text:e.lang.chartTitle}),X}},{pageLang:ee}=a,et={add:(e,t)=>e+t,divide:(e,t)=>0!==t?m(e/t):"",eq:(e,t)=>e==t,each:function(e){let t=arguments[arguments.length-1];return!!x(e)&&e.map((i,n)=>en(t.body,f(T(i)?i:{"@this":i},{"@index":n,"@first":0===n,"@last":n===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)=>m(e*t,15),ne:(e,t)=>e!=t,subtract:(e,t)=>e-t,ucfirst:A,unless:e=>!e},ei={};function en(e="",t,i){let n=/\{([^{}]+)\}/g,s=/\(([^()]+)\)/g,o=[],r=/f$/,l=/\.(\d)/,a=i?.options?.lang||Q.lang,h=i?.time||J,u=i?.numberFormatter||es.bind(i),c=(e="")=>{let i;if("true"===e)return!0;if("false"===e)return!1;if((i=Number(e)).toString()===e)return i;if(/^["'].+["']$/.test(e))return e.slice(1,-1);var n=t;let s=e.split(".");for(;s.length&&p(n);){let e=s.shift();if(void 0===e||"__proto__"===e)return;if("this"===e){let e;return T(n)&&(e=n["@this"]),e??n}let t=n[e.replace(/[\\'"]/g,"")];if(!p(t)||"function"==typeof t||"number"==typeof t.nodeType||t===d)return;n=t}return n},m,g,f=0,y;for(;null!==(m=n.exec(e));){let i=m,n=s.exec(m[1]);n&&(m=n,y=!0),g?.isBlock||(g={ctx:t,expression:m[1],find:m[0],isBlock:"#"===m[1].charAt(0),start:m.index,startInner:m.index+m[0].length,length:m[0].length});let r=(g.isBlock?i:m)[1].split(" ")[0].replace("#","");et[r]&&(g.isBlock&&r===g.fn&&f++,g.fn||(g.fn=r));let l="else"===m[1];if(g.isBlock&&g.fn&&(m[1]===`/${g.fn}`||l))if(f)!l&&f--;else{let t=g.startInner,i=e.substr(t,m.index-t);void 0===g.body?(g.body=i,g.startInner=m.index+m[0].length):g.elseBody=i,g.find+=i+m[0],l||(o.push(g),g=void 0)}else g.isBlock||o.push(g);if(n&&!g?.isBlock)break}return o.forEach(n=>{let o,d,{body:m,elseBody:p,expression:g,fn:f}=n;if(f){let e=[n],s=[],r=g.length,l=0,a;for(d=0;d<=r;d++){let e=g.charAt(d);a||'"'!==e&&"'"!==e?a===e&&(a=""):a=e,a||" "!==e&&d!==r||(s.push(g.substr(l,d-l)),l=d+1)}for(d=et[f].length;d--;)e.unshift(c(s[d+1]));o=et[f].apply(t,e),n.isBlock&&"boolean"==typeof o&&(o=en(o?m:p,t,i))}else{let e=/^["'].+["']$/.test(g)?[g]:g.split(":");if(o=c(e.shift()||""),e.length&&"number"==typeof o){let t=e.join(":");if(r.test(t)){let e=parseInt((t.match(l)||["","-1"])[1],10);null!==o&&(o=u(o,e,a.decimalPoint,t.indexOf(",")>-1?a.thousandsSep:""))}else o=h.dateFormat(t,o)}s.lastIndex=0,s.test(n.find)&&E(o)&&(o=`"${o}"`)}e=e.replace(n.find,I(o,""))}),y?en(e,t,i):e}function es(e,t,i,n){t*=1;let s,o,[r,l]=(e=+e||0).toString().split("e").map(Number),a=this?.options?.lang||Q.lang,h=(e.toString().split(".")[1]||"").split("e")[0].length,d=t,u={};i??(i=a.decimalPoint),n??(n=a.thousandsSep),-1===t?t=Math.min(h,20):b(t)?t&&l<0&&((o=t+l)>=0?(r=+r.toExponential(o).split("e")[0],t=o):(r=Math.floor(r),e=t<20?+(r*Math.pow(10,l)).toFixed(t):0,l=0)):t=2,l&&(t??(t=2),e=r),b(t)&&t>=0&&(u.minimumFractionDigits=t,u.maximumFractionDigits=t),""===n&&(u.useGrouping=!1);let c=n||i,m=c?"en":this?.locale||a.locale||ee,p=JSON.stringify(u)+m;return s=(ei[p]??(ei[p]=new Intl.NumberFormat(m,u))).format(e),c&&(s=s.replace(/([,\.])/g,"_$1").replace(/_\,/g,n??",").replace("_.",i??".")),(t||0!=+s)&&(!(l<0)||d)||(s="0"),l&&0!=+s&&(s+="e"+(l<0?"":"+")+l),s}let eo={dateFormat:function(e,t,i){return J.dateFormat(e,t,i)},format:en,helpers:et,numberFormat:es},er="hcg-",el={container:"container",themed:"themed",tableElement:"table",captionElement:"caption",descriptionElement:"description",theadElement:"thead",tbodyElement:"tbody",cell:"cell",rowElement:"row",rowEven:"row-even",rowOdd:"row-odd",hoveredRow:"hovered-row",hoveredCell:"hovered-cell",hoveredColumn:"hovered-column",syncedRow:"synced-row",syncedCell:"synced-cell",syncedColumn:"synced-column",editedCell:"edited-cell",cellEditingContainer:"cell-editing-container",mockedRow:"mocked-row",rowsContentNowrap:"rows-content-nowrap",virtualization:"virtualization",columnVirtualization:"column-virtualization",scrollableContent:"scrollable-content",headerCell:"header-cell",headerCellContainer:"header-cell-container",headerCellContent:"header-cell-content",headerCellFilterIcon:"header-cell-filter-icon",headerCellIcons:"header-cell-icons",headerCellSortIcon:"header-cell-sort-icon",headerCellMenuIcon:"header-cell-menu-icon",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",popup:"popup",button:"button",buttonSelected:"button-selected",input:"input",icon:"icon",iconSelected:"icon-selected",iconHighlighted:"icon-highlighted",popupContent:"popup-content",columnFilterWrapper:"column-filter-wrapper",columnFilterOperatorSpacer:"column-filter-operator-spacer",menuContainer:"menu-container",menuItem:"menu-item",menuHeader:"menu-header",menuHeaderCategory:"menu-header-category",menuHeaderName:"menu-header-name",menuItemIcon:"menu-item-icon",menuItemLabel:"menu-item-label",menuDivider:"menu-divider",clearFilterButton:"clear-filter-button",pagination:"pagination",paginationPageInfo:"pagination-info",paginationControls:"pagination-controls",paginationPageSize:"pagination-page-size",paginationPages:"pagination-pages",paginationNavDropdown:"pagination-nav-dropdown",paginationLeft:"pagination-left",paginationCenter:"pagination-center",paginationRight:"pagination-right",paginationDistributed:"pagination-distributed",noWidth:"no-width",rightAlign:"right",centerAlign:"center",leftAlign:"left"},ea="u">typeof window?window:{},eh=ea.navigator&&ea.navigator.userAgent||"",ed=-1!==eh.indexOf("Chrome"),eu=!ed&&-1!==eh.indexOf("Safari"),ec=!!ea.navigator&&(/iPhone|iPod|iPad/i.test(eh)||"MacIntel"===ea.navigator.platform&&ea.navigator.maxTouchPoints>1),em=!!("ontouchstart"in ea||ea.navigator&&ea.navigator.maxTouchPoints>0),ep={classNamePrefix:er,version:"3.1.0",buildDate:"2026-08-06",rawClassNames:el,win:ea,composed:[],userAgent:eh,isChrome:ed,isSafari:eu,isIos:ec,isTouchDevice:em,getClassName:e=>er+el[e]};function eg(e,t,i){let n=document.createElement(e);if(t){let e=Object.keys(t);for(let i=0;i<e.length;i++){let s=e[i],o=t[s];void 0!==o&&("style"===s?Object.assign(n.style,o):n[s]=o)}}return i&&i.appendChild(n),n}function ef(e){if(!e)return 0;let t=ep.win.getComputedStyle(e);return(parseFloat(t.paddingLeft)||0)+(parseFloat(t.paddingRight)||0)+(parseFloat(t.borderLeftWidth)||0)+(parseFloat(t.borderRightWidth)||0)}function ey(e){return -1!==e.indexOf("<")}function ew(e,t){ey(t)?(e.innerHTML=U.emptyHTML,new U(t).addToDOM(e)):e.innerText=t}function eC(e,t={}){let i=(e={})=>({get(t,n){let s=t[n],o=e[n];return T(s,!0)?new Proxy(s,i(o??{})):s??o},set:(e,t,i)=>(e[t]=i,!0),deleteProperty:(e,t)=>(delete e[t],!0)});return new Proxy(e,i(t))}function ev(...e){return e.filter(Boolean).join(" ")}function eb(e,t,i){if(t){let i=t.split(/\s+/g).filter(Boolean);i.length&&e.classList.remove(...i)}if(!i)return;let n=i.split(/\s+/g).filter(Boolean);if(n.length)return e.classList.add(...n),n.join(" ")}function eE(e,t){if(e){if("function"==typeof e){if(!t)return;return e.call(t,t)}return e}}function ex(e,...t){let i={};for(let n of t){let t=eE(n,e);t&&Object.assign(i,t)}return i}U.allowedAttributes.push("srcset","media"),U.allowedTags.push("picture","source");let eR={makeHTMLElement:eg,makeDiv:function(e,t){return eg("div",{className:e,id:t})},measureWidthOverhead:ef,isHTML:ey,sanitizeText:function(e){try{return new DOMParser().parseFromString(e,"text/html").body.textContent||""}catch{return""}},setHTMLContent:ew,createOptionsProxy:eC,formatText:function(e,t){return e.replace(/\{(\w+)\}/g,(e,i)=>void 0!==t[i]?String(t[i]):e)},joinClassNames:ev,applyUserClassNames:eb,isDeepEqual:function e(t,i){if(t===i)return!0;if(t instanceof RegExp||i instanceof RegExp)return t instanceof RegExp&&i instanceof RegExp&&t.source===i.source&&t.flags===i.flags;if(!T(t)||!T(i)||"nodeType"in t||"nodeType"in i||(Array.isArray(t)||Array.isArray(i))&&(!Array.isArray(t)||!Array.isArray(i)||t.length!==i.length))return!1;let n=Object.keys(t).filter(function(e){return"__proto__"!==e&&"constructor"!==e}),s=Object.keys(i).filter(function(e){return"__proto__"!==e&&"constructor"!==e});if(n.length!==s.length)return!1;for(let s=0,o=n.length;s<o;++s){let o=n[s];if(!(o in i)||!e(t[o],i[o]))return!1}return!0},resolveStyleValue:eE,mergeStyleValues:ex,waitForAnimationFrame:function(){return new Promise(e=>{requestAnimationFrame(()=>e())})}};class eT{constructor(e){this.columnWidths={},this.columnWidthUnits={},this.viewport=e}getColumnWidth(e){let t=this.viewport,i=this.columnWidths[e.id];if(!p(i)){let t=this.autoWidthCache||this.calculateAutoWidthCache();return eT.fitWidth(e,t.freeWidth/Math.max(t.freeColumns,1))}return 0===this.columnWidthUnits[e.id]?eT.fitWidth(e,i):eT.fitWidth(e,t.getWidthFromRatio(i/100))}loadColumn(e){let t,i=e.options.width;if(!p(i)||"auto"===i){delete this.columnWidths[e.id],delete this.columnWidthUnits[e.id];return}let n=0;"number"==typeof i?(t=i,n=0):(t=parseFloat(i),n=+("%"===i.charAt(i.length-1))),this.columnWidthUnits[e.id]=n,this.columnWidths[e.id]=t}loadColumns(){let{columns:e}=this.viewport;for(let t=0,i=e.length;t<i;++t)this.loadColumn(e[t])}reflow(){let e=this.viewport,t=e.grid.enabledColumns?.length||0,i=Object.keys(this.columnWidths).length;i<t&&(this.autoWidthCache=this.calculateAutoWidthCache(t,i));try{e.columnLayout.reflow()}finally{delete this.autoWidthCache}e.rowsWidth=e.columnLayout.totalWidth}static getMinWidth(e){let t=e.cells[0]?.htmlElement,i=e.header?.htmlElement,n=eT.getOptionWidth(e,e.options.minWidth),s=t||i?Math.max(ef(t),ef(i)):e.viewport.columnLayout.getCellWidthOverhead();return Math.max(eT.MIN_COLUMN_WIDTH,n??0,s)}static getOptionWidth(e,t){if(!p(t))return;if("number"==typeof t)return t;let i=parseFloat(t);return t.endsWith("%")?e.viewport.getWidthFromRatio(i/100):i}static getMaxWidth(e){let t=eT.getOptionWidth(e,e.options.maxWidth);if(p(t))return Math.max(t,eT.getMinWidth(e))}static fitWidth(e,t){var i;let n=eT.getMinWidth(e);return i=eT.getMaxWidth(e)??1/0,t>n?t<i?t:i:n}calculateAutoWidthCache(e=this.viewport.grid.enabledColumns?.length||0,t=Object.keys(this.columnWidths).length){let i=this.viewport.tbodyElement;return{freeColumns:e-t,freeWidth:i.getBoundingClientRect().width-this.calculateOccupiedWidth()-i.offsetWidth+i.clientWidth}}calculateOccupiedWidth(){let e,t=this.viewport,i=0;for(let n=0,s=t.columns.length;n<s;++n){let s=t.columns[n];if(p(e=this.columnWidths[s.id])){if(0===this.columnWidthUnits[s.id]){i+=eT.fitWidth(s,e);continue}i+=eT.fitWidth(s,t.getWidthFromRatio(e/100))}}return i}}eT.MIN_COLUMN_WIDTH=20;let eM=eT,eS=class extends eM{constructor(){super(...arguments),this.type="adjacent"}resize(e,t){let i=this.viewport,n=e.draggedColumn;if(!n)return;let s=e.columnStartWidth??0,o=i.columns[n.index+1],r=Math.round(10*eM.fitWidth(n,s+t))/10;if(this.columnWidths[n.id]=r,this.columnWidthUnits[n.id]=0,n.setOptions({width:r}),o){let t=this.columnWidths[o.id]=Math.round(10*eM.fitWidth(o,(e.nextColumnStartWidth??0)+s-r))/10;this.columnWidthUnits[o.id]=0,o.setOptions({width:t})}}},eO=class extends eM{constructor(){super(...arguments),this.type="independent"}resize(e,t){let i=e.draggedColumn;if(!i)return;let n=this.columnWidths[i.id]=Math.round(10*eM.fitWidth(i,(e.columnStartWidth??0)+t))/10;this.columnWidthUnits[i.id]=0;let s=this.viewport;for(let e=0;e<s.columns.length;++e){let t=s.columns[e];if(t.id===i.id)continue;let n=this.columnWidths[t.id]=t.getWidth();this.columnWidthUnits[t.id]=0,t.setOptions({width:n})}i.setOptions({width:n})}},eI={adjacent:eS,distributed:class extends eM{constructor(){super(...arguments),this.type="distributed"}resize(e,t){let i=e.draggedColumn;if(!i)return;let n=this.columnWidths[i.id]=Math.round(10*eM.fitWidth(i,(e.columnStartWidth??0)+t))/10;this.columnWidthUnits[i.id]=0,i.setOptions({width:n})}},independent:eO},eL={initMode:function(e){let t=e.grid.options?.rendering?.columns?.resizing?.mode||"adjacent",i=eI[t];return i||(console.warn(`Unknown column resizing mode: '${t}'. Applied default 'adjacent' mode.`),i=eI.adjacent),new i(e)},types:eI,AbstractStrategy:eM};class eP{static registerType(e,t){return!!e&&!eP.types[e]&&!!(eP.types[e]=t)}benchmark(e,t){let i=[],n=this,s=()=>{n.modifyTable(e),n.emit({type:"afterBenchmarkIteration"})},{iterations:o}=M({iterations:1},t);n.on("afterBenchmarkIteration",()=>{i.length===o?n.emit({type:"afterBenchmark",results:i}):s()});let r={startTime:0,endTime:0};return n.on("modify",()=>{r.startTime=window.performance.now()}),n.on("afterModify",()=>{r.endTime=window.performance.now(),i.push(r.endTime-r.startTime)}),s(),i}emit(e){y(this,e.type,e)}modify(e,t){let i=this;return new Promise((n,s)=>{e.modified||(e.modified=e.clone(!1,t));try{n(i.modifyTable(e,t))}catch(n){i.emit({type:"error",detail:t,table:e}),s(n instanceof Error?n:Error(""+n))}})}on(e,t){return u(this,e,t)}}eP.types={};let eA=eP,eD={convertToNumber:function(e,t){switch(typeof e){case"boolean":return+!!e;case"number":return isNaN(e)&&!t?null:e;default:return isNaN(e=parseFloat(`${e??""}`))&&!t?null:e}},setLength:function(e,t,i){return Array.isArray(e)?(e.length=t,e):e[i?"subarray":"slice"](0,t)},splice:function(e,t,i,n,s=[]){if(Array.isArray(e))return Array.isArray(s)||(s=Array.from(s)),{removed:e.splice(t,i,...s),array:e};let o=Object.getPrototypeOf(e).constructor,r=e[n?"subarray":"slice"](t,t+i),l=new o(e.length-i+s.length);return l.set(e.subarray(0,t),0),l.set(s,t),l.set(e.subarray(t+i),t+s.length),{removed:r,array:l}}},{setLength:eN,splice:eH}=eD,ek=class{constructor(e={}){this.isDataTable=!0,this.autoId=!e.id,this.columns={},this.id=e.id||F(),this.rowCount=0,this.versionTag=F();let t=0;S(e.columns||{},(e,i)=>{this.columns[i]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,S(this.columns,(t,i)=>{t.length!==e&&(this.columns[i]=eN(t,e))})}deleteRows(e,t=1){if(t>0&&e<this.rowCount){let i=0;S(this.columns,(n,s)=>{this.columns[s]=eH(n,e,t).array,i=n.length}),this.rowCount=i}y(this,"afterDeleteRows",{rowIndex:e,rowCount:t}),this.versionTag=F()}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),{})}getRowObject(e,t){let i={},n=this.columns;for(let s of(t??(t=Object.keys(this.columns)),t))i[s]=n[s]?.[e];return i}setColumn(e,t=[],i=0,n){this.setColumns({[e]:t},i,n)}setColumns(e,t,i){let n=this.rowCount;S(e,(e,t)=>{this.columns[t]=e.slice(),n=e.length}),this.applyRowCount(n),i?.silent||(y(this,"afterSetColumns"),this.versionTag=F())}setRow(e,t=this.rowCount,i,n){var s;let{columns:o}=this,r=i?this.rowCount+1:t+1,l=Object.keys(e);if(n?.addColumns!==!1)for(let e=0,t=l.length;e<t;e++)o[s=l[e]]||(o[s]=Array(this.rowCount));S(o,(n,s)=>{n&&(i?n=eH(n,t,0,!0,[e[s]]).array:n[t]=s in e?e[s]:n[t],o[s]=n)}),this.applyRowCount(Math.max(r,this.rowCount)),n?.silent||(y(this,"afterSetRows",{rowIndex:t}),this.versionTag=F())}getModified(){return this.modified||this}},{splice:eF,setLength:eB}=eD;class ez extends ek{constructor(e={}){super(e),this.metadata=e.metadata}clone(e,t){let i={};this.emit({type:"cloneTable",detail:t}),e||(i.columns=this.columns),this.autoId||(i.id=this.id);let n=new ez(i);return e||(n.versionTag=this.versionTag,n.originalRowIndexes=this.originalRowIndexes,n.localRowIndexes=this.localRowIndexes),n.metadata={...this.metadata},this.emit({type:"afterCloneTable",detail:t,tableClone:n}),n}deleteColumns(e,t){let i=this.columns,n={},s={},o=this.modifier,r=this.rowCount;if((e=e||Object.keys(i)).length){this.emit({type:"deleteColumns",columnIds:e,detail:t});for(let t=0,o=e.length,l,a;t<o;++t)(l=i[a=e[t]])&&(n[a]=l,s[a]=Array(r)),delete i[a];return Object.keys(i).length||(this.rowCount=0,this.deleteRowIndexReferences()),o&&o.modifyTable(this),this.emit({type:"afterDeleteColumns",columns:n,columnIds:e,detail:t}),n}}deleteRowIndexReferences(){delete this.originalRowIndexes,delete this.localRowIndexes}deleteRows(e,t=1,i){let n,s,{columns:o,modifier:r}=this,l=[];if(p(e)?Array.isArray(e)?s=(n=e.filter((e,t,i)=>e>=0&&e<this.rowCount&&i.indexOf(e)===t).sort((e,t)=>t-e)).length:(n=[e],s=t):(n=[0],s=this.rowCount),this.emit({type:"deleteRows",detail:i,rowCount:s,rowIndex:e??0}),s>0){let e=Object.keys(o);for(let t=0;t<e.length;++t){let i,r=e[t],a=o[r];if(1===n.length&&s>1){let e=eF(a,n[0],s);i=e.removed,o[r]=e.array}else{for(let e of(i=[],n))i.push(a[e]),eF(a,e,1);i.reverse()}t||(this.rowCount=a.length);for(let e=0,n=i.length;e<n;++e)l[e]=l[e]||[],l[e][t]=i[e]}}return r&&r.modifyTable(this),this.emit({type:"afterDeleteRows",detail:i,rowCount:s,rowIndex:e??0,rows:l}),l}emit(e){["afterDeleteColumns","afterDeleteRows","afterSetCell","afterSetColumns","afterSetRows"].includes(e.type)&&(this.versionTag=F()),y(this,e.type,e)}getCell(e,t){let i=this.columns[e];if(i)return i[t]}getColumn(e,t){return this.getColumns([e],t)[e]}getColumnIds(){return Object.keys(this.columns)}getColumns(e,t,i){let n=this.columns,s={};e=e||Object.keys(n);for(let o=0,r=e.length,l,a;o<r;++o)(l=n[a=e[o]])&&(t?s[a]=l:i&&!Array.isArray(l)?s[a]=Array.from(l):s[a]=l.slice());return s}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 n=this.columns[e];if(n){let e=-1;if(Array.isArray(n)?e=n.indexOf(t,i):b(t)&&(e=n.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 n=this.columns,s=Array(t);i=i||Object.keys(n);for(let o=e,r=0,l=Math.min(this.rowCount,e+t),a,h;o<l;++o,++r)for(let e of(h=s[r]={},i))a=n[e],h[e]=a?a[o]:void 0;return s}getRows(e=0,t=this.rowCount-e,i){let n=this.columns,s=Array(t);i=i||Object.keys(n);for(let o=e,r=0,l=Math.min(this.rowCount,e+t),a,h;o<l;++o,++r)for(let e of(h=s[r]=[],i))a=n[e],h.push(a?a[o]:void 0);return s}getVersionTag(){return this.versionTag}hasColumns(e){let t=this.columns;for(let i=0,n=e.length;i<n;++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):!!(p(t)&&Number.isFinite(t))&&-1!==i.indexOf(+t)}on(e,t){return u(this,e,t)}changeColumnId(e,t){let i=this.columns;return!!i[e]&&(e!==t&&(i[t]=i[e],delete i[e]),!0)}setCell(e,t,i,n){let s=this.columns,o=this.modifier,r=s[e];r&&r[t]===i||(this.emit({type:"setCell",cellValue:i,columnId:e,detail:n,rowIndex:t}),r||(r=s[e]=Array(this.rowCount)),t>=this.rowCount&&(this.rowCount=t+1),r[t]=i,o&&o.modifyTable(this),this.emit({type:"afterSetCell",cellValue:i,columnId:e,detail:n,rowIndex:t}))}setColumns(e,t,i,n){let s=this.columns,o=this.modifier,r=Object.keys(e),l=this.rowCount;if(this.emit({type:"setColumns",columns:e,columnIds:r,detail:i,rowIndex:t}),p(t)||n){for(let i=0,o=r.length,a,h,d,u;i<o;++i){a=e[d=r[i]],u=Object.getPrototypeOf((h=s[d])&&n?h:a).constructor,h?u===Array?Array.isArray(h)||(h=Array.from(h)):h.length<l&&(h=new u(l)).set(s[d]):h=new u(l),s[d]=h;for(let e=t||0,i=a.length;e<i;++e)h[e]=a[e];l=Math.max(l,a.length)}this.applyRowCount(l)}else super.setColumns(e,t,f(i,{silent:!0}));o&&o.modifyTable(this),this.emit({type:"afterSetColumns",columns:e,columnIds:r,detail:i,rowIndex:t})}setModifier(e,t){let i=this;return i.emit({type:"setModifier",detail:t,modifier:e,modified:i.getModified()}),i.modifier=e,(e?e.modify(i):Promise.resolve(i)).then(i=>(i.emit({type:"afterSetModifier",detail:t,modifier:e,modified:i.getModified()}),i)).catch(t=>{throw i.emit({type:"setModifierError",error:t,modifier:e,modified:i.getModified()}),t})}setOriginalRowIndexes(e,t=!1){if(this.originalRowIndexes=e,t)return;let i=this.localRowIndexes=[];for(let t=0,n=e.length,s;t<n;++t)p(s=e[t])&&(i[s]=t)}setRow(e,t,i,n){this.setRows([e],t,i,n)}setRows(e,t=this.rowCount,i,n){let s=this.columns,o=Object.keys(s),r=this.modifier,l=e.length;this.emit({type:"setRows",detail:n,rowCount:l,rowIndex:t,rows:e});for(let n=0,r=t,a;n<l;++n,++r)if(0===Object.keys(a=e[n]).length)for(let e=0,t=o.length;e<t;++e){let t=s[o[e]];i?s[o[e]]=eF(t,r,0,!0,[null]).array:t[r]=null}else if(Array.isArray(a))for(let e=0,t=o.length;e<t;++e)s[o[e]][r]=a[e];else super.setRow(a,r,i,{silent:!0});let a=i?l+e.length:t+l;if(a>this.rowCount){this.rowCount=a;for(let e=0,t=o.length;e<t;++e){let t=o[e];s[t]=eB(s[t],a)}}r&&r.modifyTable(this),this.emit({type:"afterSetRows",detail:n,rowCount:l,rowIndex:t,rows:e})}}class eW{static registerType(e,t){return!!e&&!eW.types[e]&&!!(eW.types[e]=t)}get polling(){return!!this._polling}constructor(e){this.dataTables={},this.loaded=!1,this.metadata=e.metadata||{columns:{}},this.options=e;const t=e?.dataTables;let i=0;if(e.options&&console.error("The `DataConnectorOptions.options` property was removed in Dashboards v4.0.0. Check how to upgrade your connector to use the new options structure here: https://api.highcharts.com/dashboards/#interfaces/Data_DataTableOptions.DataTableOptions"),t&&t?.length>0)for(let e=0,n=t.length;e<n;++e){const n=t[e],s=n?.key;this.dataTables[s??i]=new ez(n),!s&&i++}else this.dataTables[0]=new ez({id:e.id})}getTable(e){return e?this.dataTables[e]:Object.values(this.dataTables)[0]}describeColumn(e,t){let i=this.metadata.columns;i[e]=M(i[e]||{},t)}describeColumns(e){let t,i=Object.keys(e);for(;"string"==typeof(t=i.pop());)this.describeColumn(t,e[t])}getColumnOrder(){let e=this.metadata.columns,t=Object.keys(e||{});if(t.length)return t.sort((t,i)=>I(e[t].index,0)-I(e[i].index,0))}getSortedColumns(){return this.getTable().getColumns(this.getColumnOrder())}setColumnOrder(e){for(let t=0,i=e.length;t<i;++t)this.describeColumn(e[t],{index:t})}async update(e,t=!0){this.emit({type:"beforeUpdate"}),M(!0,this.options,e);let{options:i}=this;("enablePolling"in e||"dataRefreshRate"in e)&&("enablePolling"in i&&i.enablePolling?(this.stopPolling(),this.startPolling("dataRefreshRate"in i&&"number"==typeof i.dataRefreshRate?1e3*Math.max(i.dataRefreshRate,1):1e3)):this.stopPolling()),t&&await this.load(),this.emit({type:"afterUpdate"})}load(){return this.emit({type:"afterLoad"}),Promise.resolve(this)}async applyTableModifiers(){let e=this.options?.dataTables;for(let[t,i]of Object.entries(this.dataTables)){let n=e?.find(e=>e.key===t)?.dataModifier??this.options?.dataModifier;if(!n)continue;let s=n&&eA.types[n.type];await i.setModifier(s?new s(n):void 0)}return this}startPolling(e=1e3){let t=this;this.pollingController=new AbortController,window.clearTimeout(t._polling),t._polling=window.setTimeout(()=>t.load().catch(e=>t.emit({type:"loadError",error:e})).then(()=>{t._polling&&t.startPolling(e)}),e)}stopPolling(){this.polling&&(this?.pollingController?.abort(),window.clearTimeout(this._polling),delete this._polling)}emit(e){y(this,e.type,e)}on(e,t){return u(this,e,t)}initConverters(e,t,i){let n=0;for(let[s,o]of Object.entries(this.dataTables)){let r=t(s),l=i(r,e);o.deleteColumns(),o.setColumns(l),0===n&&(this.converter=r),n++}}}eW.types={};let eV=eW;function ej(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/^[\d\s]+$/.test(e)&&(e=e.replace(/\s/g,""))),e}let eU=function(e,t){let i;if("string"==typeof e)i=t.parseDate(e);else if("number"==typeof e)i=e;else{if(e instanceof Date)return e;i=t.parseDate(""+e)}return new Date(i)},eq=function(e,t){if("number"==typeof e)return e;if("boolean"==typeof e)return+!!e;if("string"==typeof e){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},eY=function(e){return""+e},e$=function(e=[],t){let i={};for(let n=0,s=Math.max(t.length,e.length);n<s;++n)i[t[n]||`${n}`]=e[n]?e[n].slice():[];return i},eK=function(e,t){let i="string";if("string"==typeof e){let n=ej(`${e}`),s=t.decimalRegExp,o=ej(n,!0);s&&(o=s.test(o)?o.replace(s,"$1.$2"):"");let r=parseFloat(o);+o===r?e=r:i=b(t.parseDate(e))?"Date":"string"}return"number"==typeof e&&(i=e>31536e6?"Date":"number"),i};class eG{static registerType(e,t){return!!e&&!eG.types[e]&&!!(eG.types[e]=t)}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}}};const t=M(eG.defaultOptions,e);let i=t.decimalPoint;("."===i||","===i)&&(i="."===i?"\\.":",",this.decimalRegExp=RegExp("^(-?[0-9]+)"+i+"([0-9]+)$")),this.options=t}convertByType(e){let t=this;return({number:e=>eq(e,t.decimalRegExp),Date:e=>eU(e,t),string:eY})[eK(e,t)].call(t,e)}deduceDateFormat(e,t,i){let n=[],s=[],o="YYYY/mm/dd",r,l=[],a=0,h=!1,d,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,r=e[a].trim().replace(/[\-\.\/]/g," ").split(" "),l=["","",""];u<r.length;u++)u<l.length&&(d=parseInt(r[u],10))&&(s[u]=!s[u]||s[u]<d?d:s[u],void 0!==n[u]?n[u]!==d&&(n[u]=!1):n[u]=d,d>31?d<100?l[u]="YY":l[u]="YYYY":d>12&&d<=31?(l[u]="dd",h=!0):l[u].length||(l[u]="mm"));if(h){for(u=0;u<n.length;u++)!1!==n[u]?s[u]>12&&"YY"!==l[u]&&"YYYY"!==l[u]&&(l[u]="YY"):s[u]>12&&"mm"===l[u]&&(l[u]="dd");3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),o=l.join("/")}return i&&(this.options.dateFormat=o),o}emit(e){y(this,e.type,e)}on(e,t){return u(this,e,t)}parseDate(e,t){let i=this.options,n=t||i.dateFormat,s=NaN,o,r=null;if(i.parseDate)s=i.parseDate(e);else{let t=this.dateFormats;if(n){let i=t[n];i||(i=t["YYYY/mm/dd"]),(r=e.match(i.regex))&&(s=i.parser(r))}else for(o in t){let i=t[o];if(r=e.match(i.regex)){n=o,s=i.parser(r);break}}if(!r){let t=Date.parse(e);!isNaN(t)&&(s=t-6e4*new Date(t).getTimezoneOffset(),e.includes("2001")||2001!==new Date(s).getFullYear()||(s=NaN))}}return s}}eG.defaultOptions={dateFormat:"",firstRowAsNames:!0},eG.types={};let e_=eG;function eX(e,t){if("position"===e.type){for(let i,n=0,s=t.length;n<s;++n)if("position"===(i=t[n]).type&&i.state===e.state&&i.column===e.column&&i.row===e.row)return n}else{let i=JSON.stringify(e.columns);for(let n,s=0,o=t.length;s<o;++s)if("range"===(n=t[s]).type&&n.state===e.state&&n.firstRow===e.firstRow&&n.lastRow===e.lastRow&&JSON.stringify(n.columns)===i)return s}return -1}let eZ=class{constructor(e={}){this.emittingRegister=[],this.listenerMap={},this.stateMap=e}addListener(e,t,i){let n=this.listenerMap[e]=this.listenerMap[e]||{};return(n[t]=n[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(e,t,i,n){let s=e.id,o=t.state,r=this.listenerMap[s]&&this.listenerMap[s][o];if(r){let o=this.stateMap[s]=this.stateMap[s]??{},l=o[t.state]||[];n&&(l.length||(o[t.state]=l),-1===eX(t,l)&&l.push(t));let a={cursor:t,cursors:l,table:e};i&&(a.event=i);let h=this.emittingRegister,d=this.buildEmittingTag(a);if(h.indexOf(d)>=0)return this;try{this.emittingRegister.push(d);for(let e=0,t=r.length;e<t;++e)r[e].call(this,a)}finally{let e=this.emittingRegister.indexOf(d);e>=0&&this.emittingRegister.splice(e,1)}}return this}remitCursor(e,t){let i=this.stateMap[e]&&this.stateMap[e][t.state];if(i){let e=eX(t,i);e>=0&&i.splice(e,1)}return this}removeListener(e,t,i){let n=this.listenerMap[e]&&this.listenerMap[e][t];if(n){let e=n.indexOf(i);e>=0&&n.splice(e,1)}return this}},{doc:eQ,isMS:eJ,win:e0}=a,e1=function(){if(eJ&&e0.getComputedStyle){let e=eQ.createElement("div");e.style.backgroundImage="url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)",eQ.body.appendChild(e);let t=(e.currentStyle||e0.getComputedStyle(e)).backgroundImage;return eQ.body.removeChild(e),"none"===t}return e0.matchMedia&&e0.matchMedia("(forced-colors: active)").matches};class e2{constructor(e,t){this.querying=e,this.options=t}init(){return Promise.resolve()}async getPrePaginationRowCount(){return await this.getRowCount()}static assumeColumnDataType(e,t){for(let t=0,i=e.length;t<i;++t)if(p(e[t]))switch(typeof e[t]){case"number":return"number";case"boolean":return"boolean";default:return"string"}return console.warn(`Column "${t}" sample does not contain any defined values; defaulting dataType to "string". Set \`dataType\` option for the column to determine the data type and avoid unnecessary column scanning.`),"string"}}function e3(e){return!!(e&&"function"==typeof e.getDataTable)}class e6 extends eA{static compile(e){if(R(e))return e;let t=e.operator;switch(t){case"and":{let t=e.conditions.map(e=>this.compile(e));return(e,i,n)=>t.every(t=>t(e,i,n))}case"or":{let t=e.conditions.map(e=>this.compile(e));return(e,i,n)=>t.some(t=>t(e,i,n))}case"not":{let t=this.compile(e.condition);return(e,i,n)=>!t(e,i,n)}}let{columnId:i,value:n}=e;switch(t){case"==":return e=>e[i]==n;case"===":return e=>e[i]===n;case"!=":return e=>e[i]!=n;case"!==":return e=>e[i]!==n;case">":return e=>(e[i]||0)>(n||0);case">=":return e=>(e[i]||0)>=(n||0);case"<":return e=>(e[i]||0)<(n||0);case"<=":return e=>(e[i]||0)<=(n||0);case"empty":return e=>null===e[i]||""===e[i]}let{ignoreCase:s}=e,o=e=>{let t=""+e;return s??!0?t.toLowerCase():t};return"contains"===t?e=>o(e[i]).includes(o(n)):e=>o(e[i])[t](o(n))}constructor(e){super(),this.options=M(e6.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let{condition:i}=this.options;if(!i)return e;let n=e6.compile(i),s=e.getModified(),o=[],r=[];for(let t=0,i=e.getRowCount();t<i;++t){let i=e.getRowObject(t);i&&n(i,e,t)&&(o.push(i),r.push(e.getOriginalRowIndex(t)))}return s.deleteRows(),s.setRows(o),s.setOriginalRowIndexes(r),this.emit({type:"afterModify",detail:t,table:e}),e}}e6.defaultOptions={type:"Filter"},eA.registerType("Filter",e6);let e4={before:"lessThan",after:"greaterThan"},e8={string:["contains","doesNotContain","equals","doesNotEqual","beginsWith","endsWith","empty","notEmpty"],number:["equals","doesNotEqual","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","empty","notEmpty"],datetime:["equals","doesNotEqual","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","empty","notEmpty"],boolean:["all","true","false","empty"]};class e5{constructor(e){this.columnConditions={},this.querying=e}static mapOptionsToFilter(e,t){let i,n=t.rule?.operator??t.condition;n&&(i=e4[n]??n);let s=t.rule?.value??t.value,o=E(s),r=o?s:"";if(void 0!==s&&(!o||r)||["empty","notEmpty","true","false"].includes(i??""))switch(i){case"contains":return{columnId:e,operator:"contains",value:r};case"doesNotContain":return{operator:"not",condition:{columnId:e,operator:"contains",value:r}};case"equals":return{columnId:e,operator:"===",value:s};case"doesNotEqual":return{columnId:e,operator:"!==",value:s};case"beginsWith":return{columnId:e,operator:"startsWith",value:r};case"endsWith":return{columnId:e,operator:"endsWith",value:r};case"greaterThan":return{columnId:e,operator:">",value:s};case"greaterThanOrEqualTo":return{columnId:e,operator:">=",value:s};case"lessThan":return{columnId:e,operator:"<",value:s};case"lessThanOrEqualTo":return{columnId:e,operator:"<=",value:s};case"empty":return{columnId:e,operator:"empty",value:s};case"notEmpty":return{operator:"not",condition:{columnId:e,operator:"empty",value:s}};case"true":return{columnId:e,operator:"===",value:!0};case"false":return{columnId:e,operator:"===",value:!1}}}static filterConditionsEqual(e,t){return e===t||!!e&&!!t&&"function"!=typeof e&&"function"!=typeof t&&e.operator===t.operator&&("condition"in e||"condition"in t?"condition"in e&&"condition"in t&&e5.filterConditionsEqual(e.condition,t.condition):"conditions"in e||"conditions"in t?"conditions"in e&&"conditions"in t&&e.conditions.length===t.conditions.length&&e.conditions.every((e,i)=>e5.filterConditionsEqual(e,t.conditions[i])):"columnId"in e&&"columnId"in t&&e.columnId===t.columnId&&e.value===t.value&&("ignoreCase"in e?e.ignoreCase:void 0)===("ignoreCase"in t?t.ignoreCase:void 0))}loadOptions(){let e=this.querying.grid.columnPolicy,t={},i=e.getColumnIds();for(let n=0,s=i.length;n<s;++n){let s=i[n];if(e.isColumnUnbound(s))continue;let o=e.getColumnSourceId(s),r=e.getIndividualColumnOptions(s)?.filtering;if(!r||!o)continue;let l=this.createColumnCondition(s,o,r);l&&(t[s]=l)}this.columnConditions=t,this.updateModifier()}addColumnFilterCondition(e,t){if(this.querying.grid.columnPolicy.isColumnUnbound(e))return;let i=this.querying.grid.columnPolicy.getColumnSourceId(e);if(!i)return;let n=this.createColumnCondition(e,i,t);n?this.columnConditions[e]=n:delete this.columnConditions[e],this.updateModifier()}clearColumnFiltering(e){e?delete this.columnConditions[e]:this.columnConditions={},this.updateModifier()}createColumnCondition(e,t,i){let n={columnId:e,condition:e5.mapOptionsToFilter(t,i),options:i,sourceColumnId:t};return y(this.querying.grid,"resolveFilterCondition",n),n.condition}updateModifier(){let e=Object.values(this.columnConditions);(this.querying.shouldBeUpdated=!0,e.length<1)?delete this.modifier:this.modifier=new e6({condition:{operator:"and",conditions:e}})}}let e9=[{docsPath:"columnDefaults.filtering.condition",runtimePath:"columnDefaults.filtering.condition",segments:[{kind:"property",name:"columnDefaults"},{kind:"property",name:"filtering"},{kind:"property",name:"condition"}],text:"Use `rule.operator` instead.",version:"3.1.0"},{docsPath:"columnDefaults.filtering.conditions",runtimePath:"columnDefaults.filtering.conditions",segments:[{kind:"property",name:"columnDefaults"},{kind:"property",name:"filtering"},{kind:"property",name:"conditions"}],text:"Use `operators` instead.",version:"3.1.0"},{docsPath:"columnDefaults.filtering.value",runtimePath:"columnDefaults.filtering.value",segments:[{kind:"property",name:"columnDefaults"},{kind:"property",name:"filtering"},{kind:"property",name:"value"}],text:"Use `rule.value` instead.",version:"3.1.0"},{docsPath:"columnDefaults.treeView",runtimePath:"columnDefaults.treeView",segments:[{kind:"property",name:"columnDefaults"},{kind:"property",name:"treeView"}],text:"Use the column level `rowAggregator` option instead.",version:"3.1.0"},{docsPath:"columns.filtering.condition",runtimePath:"columns.filtering.condition",segments:[{kind:"property",name:"columns"},{kind:"property",name:"filtering"},{kind:"property",name:"condition"}],text:"Use `rule.operator` instead.",version:"3.1.0"},{docsPath:"columns.filtering.conditions",runtimePath:"columns.filtering.conditions",segments:[{kind:"property",name:"columns"},{kind:"property",name:"filtering"},{kind:"property",name:"conditions"}],text:"Use `operators` instead.",version:"3.1.0"},{docsPath:"columns.filtering.value",runtimePath:"columns.filtering.value",segments:[{kind:"property",name:"columns"},{kind:"property",name:"filtering"},{kind:"property",name:"value"}],text:"Use `rule.value` instead.",version:"3.1.0"},{docsPath:"columns.treeView",runtimePath:"columns.treeView",segments:[{kind:"property",name:"columns"},{kind:"property",name:"treeView"}],text:"Use the column level `rowAggregator` option instead.",version:"3.1.0"},{docsPath:"data.local.treeView",runtimePath:"data.treeView",segments:[{kind:"property",name:"data"},{kind:"discriminator",name:"providerType",value:"local",allowUndefined:!0},{kind:"property",name:"treeView"}],text:"Use the root level `treeView` and `rowGrouping` instead.",version:"3.1.0"},{docsPath:"dataTable",runtimePath:"dataTable",segments:[{kind:"property",name:"dataTable"}],text:"Use `data.dataTable` instead.",version:"2.3.0"},{docsPath:"lang.columnFilteringConditions",runtimePath:"lang.columnFilteringConditions",segments:[{kind:"property",name:"lang"},{kind:"property",name:"columnFilteringConditions"}],text:"Use `columnFilteringOperators` instead.",version:"3.1.0"},{docsPath:"lang.pinRowBottom",runtimePath:"lang.pinRowBottom",segments:[{kind:"property",name:"lang"},{kind:"property",name:"pinRowBottom"}],text:"Use `lang.rowPinning.pinRowBottom` instead.",version:"3.1.0"},{docsPath:"lang.pinRowTop",runtimePath:"lang.pinRowTop",segments:[{kind:"property",name:"lang"},{kind:"property",name:"pinRowTop"}],text:"Use `lang.rowPinning.pinRowTop` instead.",version:"3.1.0"},{docsPath:"lang.unpinRow",runtimePath:"lang.unpinRow",segments:[{kind:"property",name:"lang"},{kind:"property",name:"unpinRow"}],text:"Use `lang.rowPinning.unpinRow` instead.",version:"3.1.0"}];function e7(e){for(let t of e9.filter(t=>(function e(t,i,n=0){if(n>=i.length)return!0;let s=i[n];return!!T(t)&&(Array.isArray(t)?t.some(t=>e(t,i,n)):"discriminator"===s.kind?Object.prototype.hasOwnProperty.call(t,s.name)?t[s.name]===s.value&&e(t,i,n+1):!!s.allowUndefined&&e(t,i,n+1):!!Object.prototype.hasOwnProperty.call(t,s.name)&&e(t[s.name],i,n+1))})(e,t.segments)))H(function(e){let t,i=e.version?` since version ${e.version}`:"",n=[`Option "${e.runtimePath}" has been deprecated${i}.`];return e.text&&n.push((t=e.text.trim())&&!/[.!?]$/u.test(t)?`${t}.`:t),n.push(`Read more at https://api.highcharts.com/grid/${e.docsPath}`),n.join(" ")}(t),!1)}let te={filter:{width:12,height:12,children:[{d:"M 1.69283 2.38107 C 1.31465 1.89803 1.12557 1.65651 1.11844 1.45125 C 1.11224 1.27293 1.17929 1.10156 1.29969 0.98793 C 1.4383 0.85714 1.72187 0.85714 2.28902 0.85714 H 9.71048 C 10.27763 0.85714 10.5612 0.85714 10.6998 0.98793 C 10.82025 1.10156 10.88722 1.27293 10.88108 1.45125 C 10.87395 1.65651 10.68487 1.89803 10.30665 2.38107 L 7.45356 6.02539 C 7.37817 6.12168 7.34048 6.16983 7.3136 6.22461 C 7.28977 6.27321 7.27228 6.32553 7.26169 6.37991 C 7.24975 6.44122 7.24975 6.50583 7.24975 6.63503 V 9.69051 C 7.24975 9.80229 7.24975 9.85809 7.23398 9.90643 C 7.22005 9.94911 7.19738 9.98734 7.16788 10.01803 C 7.13449 10.05266 7.0891 10.07349 6.99831 10.11497 L 5.29831 10.89206 C 5.11454 10.97606 5.02265 11.01814 4.94889 11.00057 C 4.88438 10.98523 4.82778 10.94143 4.79137 10.87869 C 4.74975 10.80694 4.74975 10.69389 4.74975 10.4676 V 6.63503 C 4.74975 6.50583 4.74975 6.44122 4.73781 6.37991 C 4.72722 6.32553 4.70973 6.27321 4.6859 6.22461 C 4.65902 6.16983 4.62133 6.12168 4.54594 6.02539 L 1.69283 2.38107 Z"}]},menu:{width:8,height:12,viewBox:"0 0 4 12",children:[{d:"M2.00016 6.66675C2.36835 6.66675 2.66683 6.36827 2.66683 6.00008C2.66683 5.63189 2.36835 5.33341 2.00016 5.33341C1.63197 5.33341 1.3335 5.63189 1.3335 6.00008C1.3335 6.36827 1.63197 6.66675 2.00016 6.66675Z"},{d:"M2.00016 2.00008C2.36835 2.00008 2.66683 1.7016 2.66683 1.33341C2.66683 0.965225 2.36835 0.666748 2.00016 0.666748C1.63197 0.666748 1.3335 0.965225 1.3335 1.33341C1.3335 1.7016 1.63197 2.00008 2.00016 2.00008Z"},{d:"M2.00016 11.3334C2.36835 11.3334 2.66683 11.0349 2.66683 10.6667C2.66683 10.2986 2.36835 10.0001 2.00016 10.0001C1.63197 10.0001 1.3335 10.2986 1.3335 10.6667C1.3335 11.0349 1.63197 11.3334 2.00016 11.3334Z"}]},checkmark:{width:12,height:12,children:[{d:"M 11.3332 1.33333 L 3.99984 11.11111 L 0.6665 6.66667"}]},arrowUpDown:{width:12,height:12,children:[{d:"M 3.14286 0.66675 V 11.3334 M 3.14286 11.3334 L 0.85714 8.66675 M 3.14286 11.3334 L 5.42857 8.66675 M 8.85711 11.3334 V 0.66675 M 8.85711 0.66675 L 6.57143 3.33341 M 8.85711 0.66675 L 11.14286 3.33341"}]},arrowUp:{width:12,height:12,children:[{d:"M 3.14286 0.66675 V 11.3334 M 3.14286 11.3334 L 0.85714 8.66675 M 3.14286 11.3334 L 5.42857 8.66675",opacity:.2},{d:"M 8.85711 11.3334 V 0.6667 M 8.85711 0.6667 L 6.57146 3.3334 M 8.85711 0.6667 L 11.14286 3.3334"}]},arrowDown:{width:12,height:12,children:[{d:"M 3.14286 0.66675 V 11.3334 M 3.14286 11.3334 L 0.85714 8.66675 M 3.14286 11.3334 L 5.42857 8.66675"},{d:"M 8.85711 11.3334 V 0.6667 M 8.85711 0.6667 L 6.57146 3.3334 M 8.85711 0.6667 L 11.14286 3.3334",opacity:.2}]},doubleChevronLeft:{width:12,height:12,children:[{d:"M 6 10.8 L 1.2 6 L 6 1.2 M 10.8 10.8 L 6 6 L 10.8 1.2","stroke-width":1.34}]},chevronLeft:{width:12,height:12,children:[{d:"M 7.5 10.8 L 1.5 6 L 7.5 1.2","stroke-width":1.34}]},doubleChevronRight:{width:12,height:12,children:[{d:"M 6 1.2 L 10.8 6 L 6 10.8 M 1.2 1.2 L 6 6 L 1.2 10.8","stroke-width":1.34}]},chevronRight:{width:12,height:12,children:[{d:"M 4.5 1.2 L 10.5 6 L 4.5 10.8","stroke-width":1.34}]},copy:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M5 15C4.06812 15 3.60218 15 3.23463 14.8478C2.74458 14.6448 2.35523 14.2554 2.15224 13.7654C2 13.3978 2 12.9319 2 12V5.2C2 4.0799 2 3.51984 2.21799 3.09202C2.40973 2.71569 2.71569 2.40973 3.09202 2.21799C3.51984 2 4.0799 2 5.2 2H12C12.9319 2 13.3978 2 13.7654 2.15224C14.2554 2.35523 14.6448 2.74458 14.8478 3.23463C15 3.60218 15 4.06812 15 5M12.2 22H18.8C19.9201 22 20.4802 22 20.908 21.782C21.2843 21.5903 21.5903 21.2843 21.782 20.908C22 20.4802 22 19.9201 22 18.8V12.2C22 11.0799 22 10.5198 21.782 10.092C21.5903 9.71569 21.2843 9.40973 20.908 9.21799C20.4802 9 19.9201 9 18.8 9H12.2C11.0799 9 10.5198 9 10.092 9.21799C9.71569 9.40973 9.40973 9.71569 9.21799 10.092C9 10.5198 9 11.0799 9 12.2V18.8C9 19.9201 9 20.4802 9.21799 20.908C9.40973 21.2843 9.71569 21.5903 10.092 21.782C10.5198 22 11.0799 22 12.2 22Z","stroke-width":2}]},clipboard:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M16 4C16.93 4 17.395 4 17.7765 4.10222C18.8117 4.37962 19.6204 5.18827 19.8978 6.22354C20 6.60504 20 7.07003 20 8V17.2C20 18.8802 20 19.7202 19.673 20.362C19.3854 20.9265 18.9265 21.3854 18.362 21.673C17.7202 22 16.8802 22 15.2 22H8.8C7.11984 22 6.27976 22 5.63803 21.673C5.07354 21.3854 4.6146 20.9265 4.32698 20.362C4 19.7202 4 18.8802 4 17.2V8C4 7.07003 4 6.60504 4.10222 6.22354C4.37962 5.18827 5.18827 4.37962 6.22354 4.10222C6.60504 4 7.07003 4 8 4M9.6 6H14.4C14.9601 6 15.2401 6 15.454 5.89101C15.6422 5.79513 15.7951 5.64215 15.891 5.45399C16 5.24008 16 4.96005 16 4.4V3.6C16 3.03995 16 2.75992 15.891 2.54601C15.7951 2.35785 15.6422 2.20487 15.454 2.10899C15.2401 2 14.9601 2 14.4 2H9.6C9.03995 2 8.75992 2 8.54601 2.10899C8.35785 2.20487 8.20487 2.35785 8.10899 2.54601C8 2.75992 8 3.03995 8 3.6V4.4C8 4.96005 8 5.24008 8.10899 5.45399C8.20487 5.64215 8.35785 5.79513 8.54601 5.89101C8.75992 6 9.03995 6 9.6 6Z","stroke-width":2}]},plus:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M12 5V19M5 12H19","stroke-width":2}]},trash:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M16 6V5.2C16 4.0799 16 3.51984 15.782 3.09202C15.5903 2.71569 15.2843 2.40973 14.908 2.21799C14.4802 2 13.9201 2 12.8 2H11.2C10.0799 2 9.51984 2 9.09202 2.21799C8.71569 2.40973 8.40973 2.71569 8.21799 3.09202C8 3.51984 8 4.0799 8 5.2V6M10 11.5V16.5M14 11.5V16.5M3 6H21M19 6V17.2C19 18.8802 19 19.7202 18.673 20.362C18.3854 20.9265 17.9265 21.3854 17.362 21.673C16.7202 22 15.8802 22 14.2 22H9.8C8.11984 22 7.27976 22 6.63803 21.673C6.07354 21.3854 5.6146 20.9265 5.32698 20.362C5 19.7202 5 18.8802 5 17.2V6","stroke-width":2}]},addRowAbove:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M22.654 16.657H1m21.654-6.048H1m0-6.143v12.433c0 2.033 0 3.05.393 3.825a3.619 3.619 0 0 0 1.577 1.587c.772.395 1.783.395 3.804.395H16.88c2.021 0 3.032 0 3.804-.395a3.619 3.619 0 0 0 1.577-1.587c.394-.776.394-1.792.394-3.825V4.466m-14.068-.24h6.462M11.822 1v6.462","stroke-width":1.34}]},addRowBelow:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M1 7.049h21.654M1 13.097h21.654m0 6.143V6.807c0-2.033 0-3.05-.394-3.825a3.619 3.619 0 0 0-1.577-1.586C19.911 1 18.901 1 16.88 1H6.774c-2.02 0-3.031 0-3.803.396a3.62 3.62 0 0 0-1.578 1.586C1 3.758 1 4.774 1 6.807V19.24m14.068.24H8.606m3.226 3.226v-6.462","stroke-width":1.34}]},addColumnLeft:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M16.657 1v21.654M10.61 1v21.654m-6.143 0h12.433c2.033 0 3.05 0 3.825-.394a3.62 3.62 0 0 0 1.587-1.577c.395-.772.395-1.782.395-3.804V6.774c0-2.02 0-3.031-.395-3.803a3.62 3.62 0 0 0-1.587-1.578C19.948 1 18.932 1 16.9 1H4.466m-.24 14.068V8.606M1 11.832h6.462","stroke-width":1.34}]},addColumnRight:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M7.049 22.654V1m6.048 21.654V1m6.143 0H6.807c-2.033 0-3.05 0-3.825.393a3.62 3.62 0 0 0-1.586 1.578C1 3.743 1 4.753 1 6.774V16.88c0 2.021 0 3.032.396 3.804.348.68.903 1.231 1.586 1.577.776.394 1.792.394 3.825.394H19.24m.24-14.068v6.462m3.226-3.226h-6.462","stroke-width":1.34}]},pin:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M12.0004 15L12.0004 22M8.00043 7.30813V9.43875C8.00043 9.64677 8.00043 9.75078 7.98001 9.85026C7.9619 9.93852 7.93194 10.0239 7.89095 10.1042C7.84474 10.1946 7.77977 10.2758 7.64982 10.4383L6.08004 12.4005C5.4143 13.2327 5.08143 13.6487 5.08106 13.9989C5.08073 14.3035 5.21919 14.5916 5.4572 14.7815C5.73088 15 6.26373 15 7.32943 15H16.6714C17.7371 15 18.27 15 18.5437 14.7815C18.7817 14.5916 18.9201 14.3035 18.9198 13.9989C18.9194 13.6487 18.5866 13.2327 17.9208 12.4005L16.351 10.4383C16.2211 10.2758 16.1561 10.1946 16.1099 10.1042C16.0689 10.0239 16.039 9.93852 16.0208 9.85026C16.0004 9.75078 16.0004 9.64677 16.0004 9.43875V7.30813C16.0004 7.19301 16.0004 7.13544 16.0069 7.07868C16.0127 7.02825 16.0223 6.97833 16.0357 6.92937C16.0507 6.87424 16.0721 6.8208 16.1149 6.71391L17.1227 4.19423C17.4168 3.45914 17.5638 3.09159 17.5025 2.79655C17.4489 2.53853 17.2956 2.31211 17.0759 2.1665C16.8247 2 16.4289 2 15.6372 2H8.36368C7.57197 2 7.17611 2 6.92494 2.1665C6.70529 2.31211 6.55199 2.53853 6.49838 2.79655C6.43707 3.09159 6.58408 3.45914 6.87812 4.19423L7.88599 6.71391C7.92875 6.8208 7.95013 6.87424 7.96517 6.92937C7.97853 6.97833 7.98814 7.02825 7.99392 7.07868C8.00043 7.13544 8.00043 7.19301 8.00043 7.30813Z","stroke-width":2}]},unpin:{width:16,height:16,viewBox:"0 0 24 24",children:[{d:"M8.3767 15.6163L2.71985 21.2732M11.6944 6.64181L10.1335 8.2027C10.0062 8.33003 9.94252 8.39369 9.86999 8.44427C9.80561 8.48917 9.73616 8.52634 9.66309 8.555C9.58077 8.58729 9.49249 8.60495 9.31592 8.64026L5.65145 9.37315C4.69915 9.56361 4.223 9.65884 4.00024 9.9099C3.80617 10.1286 3.71755 10.4213 3.75771 10.7109C3.8038 11.0434 4.14715 11.3867 4.83387 12.0735L11.9196 19.1592C12.6063 19.8459 12.9497 20.1893 13.2821 20.2354C13.5718 20.2755 13.8645 20.1869 14.0832 19.9928C14.3342 19.7701 14.4294 19.2939 14.6199 18.3416L15.3528 14.6771C15.3881 14.5006 15.4058 14.4123 15.4381 14.33C15.4667 14.2569 15.5039 14.1875 15.5488 14.1231C15.5994 14.0505 15.663 13.9869 15.7904 13.8596L17.3512 12.2987C17.4326 12.2173 17.4734 12.1766 17.5181 12.141C17.5578 12.1095 17.5999 12.081 17.644 12.0558C17.6936 12.0274 17.7465 12.0048 17.8523 11.9594L20.3467 10.8904C21.0744 10.5785 21.4383 10.4226 21.6035 10.1706C21.7481 9.95025 21.7998 9.68175 21.7474 9.42348C21.6875 9.12813 21.4076 8.84822 20.8478 8.28839L15.7047 3.14526C15.1448 2.58543 14.8649 2.30552 14.5696 2.24565C14.3113 2.19329 14.0428 2.245 13.8225 2.38953C13.5705 2.55481 13.4145 2.91866 13.1027 3.64636L12.0337 6.14071C11.9883 6.24653 11.9656 6.29944 11.9373 6.34905C11.9121 6.39313 11.8836 6.43522 11.852 6.47496C11.8165 6.51971 11.7758 6.56041 11.6944 6.64181Z","stroke-width":2}]}},tt={stroke:"currentColor","stroke-width":1.33,"stroke-linecap":"round","stroke-linejoin":"round"};function ti(e){let t=e=>document.createElementNS("http://www.w3.org/2000/svg",e),{width:i=16,height:n=16,viewBox:s,fill:o,children:r}=e,l=t("svg");for(let e of(l.setAttribute("width",i.toString()),l.setAttribute("height",n.toString()),l.setAttribute("viewBox",s??`0 0 ${i} ${n}`),l.setAttribute("fill",o??"none"),r??[])){let i=t("path");for(let t of new Set([...Object.keys(e),...Object.keys(tt)])){let n=e[t]??tt[t];void 0!==n&&i.setAttribute(t,n.toString())}l.appendChild(i)}return l}function tn(e,t){return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:te[e]}function ts(e,t){let i=tn(e,t);if(!p(i))return ti(te.filter);if(E(i)){let e=document.createElement("div");ew(e,i);let t=e.firstElementChild;if(!t||"http://www.w3.org/2000/svg"!==t.namespaceURI){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.setAttribute("width","16"),e.setAttribute("height","16"),e}return t.cloneNode(!0)}return ti(i)}let{makeHTMLElement:to,formatText:tr,joinClassNames:tl}=eR,ta=["left","center","right","distributed"],th=e=>`${ep.classNamePrefix}pagination-${e}`;class td{constructor(e){this.grid=e,this.controller=e.querying.pagination}get options(){return this.grid.options?.pagination}get lang(){return this.grid.options?.lang?.pagination}get pageSizeSelectorOptions(){let e=this.options?.controls?.pageSizeSelector;return T(e)?e.options??[]:(td.defaultOptions.controls?.pageSizeSelector).options??[]}update(e){("page"in e||"pageSize"in e)&&(this.isDirtyQuerying=!0,delete e.page,delete e.pageSize),"alignment"in e&&(this.isDirtyAlignment=!0,delete e.alignment),"className"in e&&(this.isDirtyClassName=!0,delete e.className),Object.keys(e).length>0&&this.grid.dirtyFlags.add("grid")}render(){let e=this.options?.position,t=this.grid,i=this.getAlignmentClass();this.oldTotalItems=this.controller.totalItems,t.tableElement?.setAttribute("aria-current","page"),this.updateA11yRowsCount(this.controller.currentPageSize),"string"==typeof e&&e.startsWith("#")?this.renderCustomContainer(e):("footer"===e&&this.renderFooter(),this.contentWrapper=to("nav",{className:tl(ep.getClassName("pagination"),i,this.options?.className)},"footer"===e?this.paginationContainer:t.contentWrapper),this.contentWrapper.setAttribute("aria-label","Results pagination")),this.renderPageInfo(),this.renderControls(),this.renderPageSizeSelector(),this.updateButtonStates()}getAlignmentClass(){return th(this.options?.align||"")}updateAlignmentClass(){let e=this.contentWrapper;if(!e)return;let t=ta.map(th);e.classList.remove(...t),e.classList.add(this.getAlignmentClass())}updateClassName(){let e=this.contentWrapper;e&&(e.className=tl(ep.getClassName("pagination"),this.options?.className))}redraw(){this.isDirtyQuerying&&this.updateControls(!0),this.isDirtyClassName&&this.updateClassName(),this.isDirtyAlignment&&this.updateAlignmentClass(),delete this.isDirtyQuerying,delete this.isDirtyAlignment,delete this.isDirtyClassName}renderFooter(){let e=this.grid.tableElement;if(!e)return;let t=to("tfoot",{},e),i=to("tr",{},t);this.paginationContainer=to("td",{},i),this.paginationContainer.setAttribute("colSpan",(this.grid.enabledColumns||[]).length.toString()),this.reflow()}renderCustomContainer(e){let t=document.querySelector(e);if(!t)return void console.warn(`Pagination: Custom container with ID "${e}" not found.`);this.paginationContainer=t;let i=this.getAlignmentClass();this.contentWrapper=to("div",{className:tl(ep.getClassName("pagination"),i,this.options?.className)},t)}renderPageInfo(){let e=this.options?.controls?.pageInfo;!1===e||T(e)&&!1===e.enabled||(this.pageInfoElement=to("div",{className:tl(ep.getClassName("paginationPageInfo"),e?.className)},this.contentWrapper),this.updatePageInfo())}updatePageInfo(){if(!this.pageInfoElement)return;let{currentPage:e,currentPageSize:t,totalItems:i,totalPages:n}=this.controller,s=Math.min(Math.max(0,(e-1)*t+1),i),o=Math.min(e*t,i),r=tr(this.lang?.pageInfo??"",{start:s,end:o,total:i,currentPage:e,totalPages:n});this.pageInfoElement.innerHTML=r}renderControls(){let e=to("div",{className:tl(ep.getClassName("paginationControls"),this.options?.controls?.className)},this.contentWrapper),t=this.options?.controls||{};t.firstLastButtons&&this.renderFirstButton(e),t.previousNextButtons&&this.renderPrevButton(e),t.pageButtons&&this.renderPageNumbers(e),t.previousNextButtons&&this.renderNextButton(e),t.firstLastButtons&&this.renderLastButton(e)}updateControls(e=!1){let{totalItems:t,currentPageSize:i}=this.controller;(this.oldTotalItems!==this.controller.totalItems||e)&&(this.updatePageInfo(),this.updatePageNumbers(),this.updateButtonStates(),this.updateA11yRowsCount(i),this.oldTotalItems=t)}renderFirstButton(e){let t=this.options?.controls?.firstLastButtons;if(!1===t||T(t)&&!1===t.enabled)return;let i=ts("doubleChevronLeft",this.grid.options?.rendering?.icons);this.firstButton=to("button",{className:ep.getClassName("button")},e),this.firstButton.appendChild(i),this.firstButton.title=this.lang?.firstPage??"",this.firstButton.setAttribute("aria-label",this.lang?.firstPage??""),this.firstButton.addEventListener("click",()=>{this.goToPage(1)}),this.setButtonState(this.firstButton,1===this.controller.currentPage)}renderPrevButton(e){let t=this.options?.controls?.previousNextButtons;if(!1===t||T(t)&&!1===t.enabled)return;let i=ts("chevronLeft",this.grid.options?.rendering?.icons);this.prevButton=to("button",{className:ep.getClassName("button")},e),this.prevButton.appendChild(i),this.prevButton.title=this.lang?.previousPage??"",this.prevButton.setAttribute("aria-label",this.lang?.previousPage??""),this.prevButton.addEventListener("click",()=>{this.goToPage(this.controller.currentPage-1)}),this.setButtonState(this.prevButton,1===this.controller.currentPage)}renderNextButton(e){let t=this.options?.controls?.previousNextButtons;if(!1===t||T(t)&&!1===t.enabled)return;let i=ts("chevronRight",this.grid.options?.rendering?.icons);this.nextButton=to("button",{className:ep.getClassName("button")},e),this.nextButton.appendChild(i),this.nextButton.title=this.lang?.nextPage??"",this.nextButton.setAttribute("aria-label",this.lang?.nextPage??""),this.nextButton.addEventListener("click",()=>{this.goToPage(this.controller.currentPage+1)}),this.setButtonState(this.nextButton,this.controller.currentPage>=this.controller.totalPages)}renderLastButton(e){let t=this.options?.controls?.firstLastButtons;if(!1===t||T(t)&&!1===t.enabled)return;let i=ts("doubleChevronRight",this.grid.options?.rendering?.icons);this.lastButton=to("button",{className:ep.getClassName("button")},e),this.lastButton.appendChild(i),this.lastButton.title=this.lang?.lastPage??"",this.lastButton.setAttribute("aria-label",this.lang?.lastPage??""),this.lastButton.addEventListener("click",()=>{this.goToPage(this.controller.totalPages)}),this.setButtonState(this.lastButton,this.controller.currentPage>=this.controller.totalPages)}renderPageNumbers(e){let t=this.options?.controls?.pageButtons;!1===t||T(t)&&!1===t.enabled||(this.pageNumbersContainer=to("div",{className:ep.getClassName("paginationPages")},e),this.updatePageNumbers())}updatePageNumbers(){if(!this.pageNumbersContainer)return;this.pageNumbersContainer.innerHTML=U.emptyHTML;let e=this.options?.controls?.pageButtons,t=T(e)?e.count:(td.defaultOptions.controls?.pageButtons).count;if(!t)return;let{totalPages:i,currentPage:n}=this.controller;if(i<=t)for(let e=1;e<=i;e++)this.createPageButton(e,e===n);else{let e=[],s=n>=i-2;if(n<=3){let n=t-2,s=Math.min(n,i-1);for(let t=1;t<=s;t++)e.push({type:"button",page:t});i>n+1&&(e.push({type:"ellipsis"}),e.push({type:"button",page:i}))}else if(s){let n=i-(t-2)+1;for(e.push({type:"button",page:1}),e.push({type:"ellipsis"});n<=i;n++)e.push({type:"button",page:n})}else{e.push({type:"button",page:1});let s=t-4,o=Math.floor(s/2),r=Math.max(2,n-o),l=Math.min(i-1,n+o);l-r+1>s&&(2===r?l=r+s-1:r=l-s+1);let a=r>2,h=l<i-1;a||h?a?h||(r=Math.max(2,(l=i-1)-(t-3)+1)):l=Math.min(i-1,(r=2)+(t-3)-1):l=Math.min(i-1,(r=2)+(t-2)-1),a&&e.push({type:"ellipsis"});for(let t=r;t<=l;t++)e.push({type:"button",page:t});h&&e.push({type:"ellipsis"}),e.push({type:"button",page:i})}e.forEach(e=>{"button"===e.type&&p(e.page)?this.createPageButton(e.page,e.page===n):"ellipsis"===e.type&&this.createEllipsis()})}}createPageButton(e,t){if(!this.pageNumbersContainer)return;let i=to("button",{className:ep.getClassName("button"),innerHTML:e.toString()},this.pageNumbersContainer);t&&(i.classList.add(ep.getClassName("buttonSelected")),i.setAttribute("aria-current","page")),i.title=tr(this.lang?.pageNumber??"",{page:e}),i.setAttribute("aria-label",tr(this.lang?.pageNumber??"",{page:e})),i.addEventListener("click",()=>{this.goToPage(e)})}createEllipsis(){if(!this.pageNumbersContainer)return;let e=to("span",{innerHTML:"..."},this.pageNumbersContainer);e.title=this.lang?.ellipsis??"",e.setAttribute("aria-hidden",!0)}renderPageSizeSelector(){let e=this.options?.controls?.pageSizeSelector;if(!1===e||T(e)&&!1===e.enabled)return;let t=to("div",{className:tl(ep.getClassName("paginationPageSize"),e?.className)},this.contentWrapper);to("span",{innerHTML:this.lang?.pageSizeLabel??""},t),this.pageSizeSelect=to("select",{className:ep.getClassName("input"),id:ep.getClassName("paginationPageSize")},t),this.pageSizeSelectorOptions.forEach(e=>{let t=document.createElement("option");t.value=e.toString(),t.innerHTML=e.toString(),e===this.controller.currentPageSize&&(t.selected=!0),this.pageSizeSelect?.appendChild(t)}),this.pageSizeSelect.addEventListener("change",()=>{this.pageSizeSelect&&this.setPageSize(parseInt(this.pageSizeSelect.value,10))})}setOptions(e){var t,i,n;let s=(t=this.grid.userOptions).pagination??(t.pagination={}),o=(n=(i=this.grid).options??(i.options={})).pagination??(n.pagination={});M(!0,s,e),M(!0,o,e)}async setPageSize(e){let t=this.controller.currentPageSize,i=this.grid.options?.lang?.accessibility;y(this,"beforePageSizeChange",{pageSize:t,newPageSize:e}),this.controller.setPageSize(e),this.controller.setPage(1),this.setOptions({pageSize:e,page:1}),await this.updateGridPagination(),this.updatePageInfo(),this.updatePageNumbers(),this.updateButtonStates(),this.updateA11yRowsCount(this.controller.currentPageSize),this.grid.accessibility?.announce(i?.pagination?.announcements?.pageSizeChange+" "+e),y(this,"afterPageSizeChange",{pageSize:e,previousPageSize:t})}async goToPage(e){let t=this.grid.options?.lang?.accessibility,{totalPages:i,currentPage:n,currentPageSize:s}=this.controller;if(e<1||e>i||e===n)return;y(this,"beforePageChange",{currentPage:n,nextPage:e,pageSize:s}),this.controller.setPage(e);let o=this.controller.currentPage;this.setOptions({page:o}),await this.updateGridPagination(),this.updatePageInfo(),this.updatePageNumbers(),this.updateButtonStates(),this.grid.accessibility?.announce(t?.pagination?.announcements?.pageChange+" "+o),y(this,"afterPageChange",{currentPage:o,previousPage:n,pageSize:s})}async updateGridPagination(){await this.grid.viewport?.updateRows();let e=this.grid.viewport?.tbodyElement;e&&(e.scrollTop=0)}updateButtonStates(){let{currentPage:e,totalPages:t}=this.controller;this.firstButton&&this.setButtonState(this.firstButton,1===e),this.prevButton&&this.setButtonState(this.prevButton,1===e),this.nextButton&&this.setButtonState(this.nextButton,e>=t),this.lastButton&&this.setButtonState(this.lastButton,e>=t)}async updatePage(e=!0){let{currentPage:t}=this.controller;await this.goToPage(e?t+1:t-1)}setButtonState(e,t){t?e.setAttribute("disabled","disabled"):e.removeAttribute("disabled")}reflow(){let e=this.options?.position;if(this.paginationContainer&&"footer"===e){this.paginationContainer.style.width=this.grid.tableElement?.offsetWidth+"px";return}}destroy(){let e=this.paginationContainer?.closest("tfoot");e?e.remove():this.contentWrapper?.remove()}renderDropdownPageSelector(e){if(this.controller.totalPages<=1)return;let t=to("div",{className:ep.getClassName("paginationNavDropdown")},e),i=to("select",{className:ep.getClassName("input"),id:ep.getClassName("paginationNavDropdown")},t);this.dropdownPageSelector=i,this.updateDropdownPageSelector(),i.addEventListener("change",()=>{let e=parseInt(i.value,10);e!==this.controller.currentPage&&this.goToPage(e)})}updateDropdownPageSelector(){let e=this.dropdownPageSelector;if(!e)return;let{totalPages:t,currentPage:i}=this.controller;e.innerHTML=U.emptyHTML;for(let i=1;i<=t;i++){let n=to("option",{},e);n.value=i.toString(),n.textContent=`Page ${i} of ${t}`}e.value=i.toString()}updateA11yRowsCount(e){let t=this.grid;t.tableElement?.setAttribute("aria-rowcount",e||this.controller.totalItems)}}td.defaultOptions={enabled:!1,page:1,pageSize:10,position:"bottom",controls:{pageSizeSelector:{enabled:!0,options:[10,20,50,100]},pageInfo:{enabled:!0},firstLastButtons:{enabled:!0},previousNextButtons:{enabled:!0},pageButtons:{enabled:!0,count:7}}};let tu={accessibility:{enabled:!0,highContrastMode:"auto",announcements:{sorting:!0,filtering:!0},screenReaderSection:{beforeGridFormat:"{gridTitle}<div>{gridDescription}</div><div>Grid with {rowCount} rows and {columnCount} columns.</div>",afterGridFormat:"End of Grid."}},data:{providerType:"local",autogenerateColumns:!0},time:{timezone:"UTC"},rendering:{rows:{bufferSize:10,minVisibleRows:2,strictHeights:!1,virtualizationThreshold:50},header:{enabled:!0},columns:{bufferSize:2,resizing:{enabled:!0,mode:"adjacent"},strictWidths:!1,virtualizationThreshold:20},theme:"hcg-theme-default"},columnDefaults:{sorting:{enabled:!0},filtering:{inline:!1}},pagination:td.defaultOptions,lang:{accessibility:{columnMenu:"Open menu for {column}.",sorting:{sortable:"Sortable.",announcements:{ascending:"Sorted ascending.",descending:"Sorted descending.",none:"Not sorted."},priority:"Priority {priority}."},pagination:{announcements:{pageSizeChange:"Page size changed to",pageChange:"Page changed to"}},filtering:{announcements:{filterApplied:"Filter applied for {columnId}, {condition} {value}. {rowsCount} results found.",emptyFilterApplied:"Filter applied for {columnId}, {condition} values. {rowsCount} results found.",filterCleared:"Filter cleared for {columnId}. {rowsCount} results found."}},screenReaderSection:{beforeRegionLabel:"",afterRegionLabel:""}},loading:"Loading...",noData:"No data to display",filter:"Filter",sortAscending:"Sort ascending",sortDescending:"Sort descending",column:"Column",setFilter:"Set filter",filterValuePlaceholder:"Value...",pagination:{pageInfo:"Showing {start} - {end} of {total} (page {currentPage} of {totalPages})",pageSizeLabel:"rows per page",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page",pageNumber:"Page {page}",ellipsis:"More pages"},columnFilteringOperators:{contains:"Contains",doesNotContain:"Does not contain",equals:"Equals",doesNotEqual:"Does not equal",beginsWith:"Begins with",endsWith:"Ends with",empty:"Empty",notEmpty:"Not empty",greaterThan:"Greater than",greaterThanOrEqualTo:"Greater than or equal to",lessThan:"Less than",lessThanOrEqualTo:"Less than or equal to",all:"All",true:"True",false:"False"},columnFilteringDateTimeOperators:{equals:"On",doesNotEqual:"Not on",greaterThan:"After",greaterThanOrEqualTo:"On or after",lessThan:"Before",lessThanOrEqualTo:"On or before"}}};class tc{static parseCamelCaseToReadable(e){let t=e.replace(/([A-Z])/g," $1").trim().toLowerCase().split(/\s+/).join(" ");return t.charAt(0).toUpperCase()+t.slice(1)}static getOperatorLabel(e,t,i){if("datetime"===t){let t=i?.columnFilteringDateTimeOperators?.[e];if(t)return t}let n=i?.columnFilteringOperators?.[e]??i?.columnFilteringConditions?.[e];return n||tc.parseCamelCaseToReadable(e)}static mapOperatorAliases(e){if(e)return e4[e]??e}constructor(e){this.onKeyDown=e=>{let t=[];this.filterSelect&&!this.filterSelect.disabled&&t.push(this.filterSelect),this.filterInput&&!this.filterInput.disabled&&t.push(this.filterInput),this.clearButton&&!this.clearButton.disabled&&t.push(this.clearButton);let i={ArrowDown:1,ArrowUp:-1}[e.key];if(i&&t.length){e.preventDefault();let n=t.indexOf(e.target),s=t.length;t[(n+i+s)%s].focus();return}if("Enter"===e.key&&e.target===this.clearButton){e.preventDefault(),this.set(),t[0]?.focus();return}},this.column=e}async set(e,t){this.filterInput&&(this.filterInput.value=e??"");let i=this.getAllowedConditions(),n=tc.mapOperatorAliases(t);this.filterSelect&&(this.filterSelect.value=n&&i.includes(n)?n:i[0]),this.updateFilterInputHint(),await this.applyFilter({value:e,condition:n??i[0]})}refreshState(){let e=this.column.options.filtering,t=e?.rule?.operator??e?.condition,i=e?.rule?.value??e?.value;if(this.filterSelect){let e=this.getAllowedConditions(),i=tc.mapOperatorAliases(t);this.filterSelect.value=i&&e.includes(i)?i:e[0]}this.filterInput&&(this.filterInput.value=""+(i??"")),this.clearButton&&(this.clearButton.disabled=!this.isFilteringApplied()),this.disableInputIfNeeded(),this.updateFilterInputHint()}renderFilteringContent(e){let t=this.column,i=t.dataType;if(!t.viewport.grid.columnPolicy.isColumnFilteringEnabled(t.id))return;let n=eg("div",{className:ep.getClassName("columnFilterWrapper")},e);t.viewport.grid.columnPolicy.isFilterOperatorSelectHidden(t.id)?t.viewport.grid.columnPolicy.shouldRenderOperatorSpacer(t.id,t.viewport.grid.enabledColumns??[])&&this.renderOperatorSelectSpacer(n):this.renderConditionSelect(n),"boolean"!==i&&this.renderFilteringInput(n,i),this.renderClearButton(n)}applyFilterFromForm(){let e={condition:this.getActiveCondition()};this.filterInput&&(e.value=this.filterInput.value),e.condition&&this.getAllowedConditions().includes(e.condition)&&this.applyFilter(e)}async applyFilter(e){let t=this.column.viewport,i=t.grid.querying,n=i.filtering,s=this.column.id,o=t.grid.accessibility,{value:r}=e;y(this.column,"beforeFilter",{target:this.column});let l=this.isFilteringApplied(),a=this.clearButton;if(a&&l===a.disabled&&(a.disabled=!l),p(r)&&""!==r&&"number"!=typeof r)switch(this.column.dataType){case"number":e.value=Number(r);break;case"datetime":e.value=new Date(`${r}Z`).getTime()}if(this.hasSameFilterCondition(s,e))return;this.column.setOptions({filtering:{rule:{operator:e.condition,value:e.value}}});let h=this.column.viewport.grid.columnPolicy.getIndividualColumnOptions(this.column.id)?.filtering;h&&(delete h.condition,delete h.value,delete h.conditions),n.addColumnFilterCondition(s,e),this.disableInputIfNeeded(),await i.proceed(),await t.updateRows(),o?.userFilteredColumn({...e,columnId:s,rowsCount:t.rows.length},l),y(this.column,"afterFilter",{target:this.column})}hasSameFilterCondition(e,t){let i=e5.mapOptionsToFilter(e,this.column.options.filtering??{}),n=e5.mapOptionsToFilter(e,t);return e5.filterConditionsEqual(i,n)}renderFilteringInput(e,t){this.filterInput=eg("input",{className:ep.getClassName("input")},e),this.filterInput.setAttribute("tabindex","-1");let i=this.column;this.filterInput.setAttribute("id","filter-input-"+i.viewport.grid.id+"-"+i.id),"number"===t?this.filterInput.type="number":"datetime"===t?this.filterInput.type="date":this.filterInput.type="text";let n=this.column.options.filtering?.rule?.value??this.column.options.filtering?.value;for(let e of((n||0===n)&&(this.filterInput.value="datetime"===t?i.viewport.grid.time.dateFormat("%Y-%m-%d",Number(n)):n.toString()),this.disableInputIfNeeded(),this.updateFilterInputHint(),({string:["keyup"],number:["keyup","change"],datetime:["change"]})[t]))this.filterInput.addEventListener(e,()=>{this.applyFilterFromForm()})}renderOperatorSelectSpacer(e){eg("div",{className:ep.getClassName("columnFilterOperatorSpacer")+" "+ep.getClassName("input"),innerText:"\xa0"},e).setAttribute("aria-hidden","true")}renderConditionSelect(e){this.filterSelect=eg("select",{className:ep.getClassName("input")},e),this.filterSelect.setAttribute("tabindex","-1");let t=this.column;this.filterSelect.setAttribute("id","filter-select-"+t.viewport.grid.id+"-"+t.id);let i=this.getAllowedConditions(),n=t.viewport.grid.options?.lang;for(let e of i){let i=document.createElement("option");i.value=e,i.textContent=tc.getOperatorLabel(e,t.dataType,n),this.filterSelect.appendChild(i)}let s=tc.mapOperatorAliases(t.options.filtering?.rule?.operator??t.options.filtering?.condition);s&&i.includes(s)?this.filterSelect.value=s:this.filterSelect.value=i[0],this.disableInputIfNeeded(),this.filterSelect.addEventListener("change",()=>{this.applyFilterFromForm()})}renderClearButton(e){this.clearButton=eg("button",{className:ep.getClassName("clearFilterButton"),innerText:"Clear filter"},e),this.clearButton.setAttribute("tabindex","-1"),this.clearButton.disabled=!this.isFilteringApplied(),this.clearButton.addEventListener("click",()=>{this.set()})}isFilteringApplied(){let{filterInput:e}=this,{dataType:t}=this.column,i=this.getActiveCondition();return"boolean"===t?"all"!==i:"empty"===i||"notEmpty"===i||e?.value!==""}updateFilterInputHint(){let e=this.filterInput,t=this.column;if(!e)return;if(!t.viewport.grid.columnPolicy.isFilterOperatorSelectHidden(t.id)){e.placeholder=I(t.viewport.grid.options?.lang?.filterValuePlaceholder,tu.lang?.filterValuePlaceholder,""),e.removeAttribute("aria-label");return}let i=tc.getOperatorLabel(this.getActiveCondition(),t.dataType,t.viewport.grid.options?.lang);"datetime"===t.dataType?e.setAttribute("aria-label",i):e.placeholder=i}disableInputIfNeeded(){let{filterInput:e}=this,t=this.getActiveCondition();e&&("empty"===t||"notEmpty"===t?e.disabled=!0:e.disabled&&(e.disabled=!1))}getActiveCondition(){if(this.filterSelect)return this.filterSelect.value;let e=this.getAllowedConditions(),t=tc.mapOperatorAliases(this.column.options.filtering?.rule?.operator??this.column.options.filtering?.condition);return t&&e.includes(t)?t:e[0]}focusFirstControl(){this.filterSelect?.disabled?this.filterInput?.disabled?this.clearButton?.disabled||this.clearButton?.focus():this.filterInput?.focus():this.filterSelect?.focus()}getAllowedConditions(){let e=this.column,t=e.viewport.grid,i=e8[e.dataType],n=t.columnPolicy.getIndividualColumnOptions(e.id)?.filtering?.operators??t.columnPolicy.getIndividualColumnOptions(e.id)?.filtering?.conditions??t.options?.columnDefaults?.filtering?.operators??t.options?.columnDefaults?.filtering?.conditions;if(!n?.length)return i;let s=new Set(n.map(e=>tc.mapOperatorAliases(e)??e)),o=i.filter(e=>s.has(e));return o.length?o:i}}let{doc:tm,win:tp}=a,tg=tp.EventTarget&&new tp.EventTarget||"none";function tf(e){if("function"==typeof tp.MouseEvent)return new tp.MouseEvent(e.type,e);if(tm?.createEvent){let t=tm.createEvent("MouseEvent");if(t.initMouseEvent)return t.initMouseEvent(e.type,e.bubbles,e.cancelable,e.view||tp,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget),t}return ty(e.type)}function ty(e,t,i){let n=t||{x:0,y:0};if("function"==typeof tp.MouseEvent)return new tp.MouseEvent(e,{bubbles:!0,cancelable:!0,composed:!0,button:0,buttons:1,relatedTarget:i||tg,view:tp,detail:+("click"===e),screenX:n.x,screenY:n.y,clientX:n.x,clientY:n.y});if(tm?.createEvent){let t=tm.createEvent("MouseEvent");if(t.initMouseEvent)return t.initMouseEvent(e,!0,!0,tp,+("click"===e),n.x,n.y,n.x,n.y,!1,!1,!1,!1,0,null),t}return{type:e}}let{formatText:tw}=eR,{getHeadingTagNameForElement:tC}={addClass:function(e,t){e.classList?e.classList.add(t):0>e.className.indexOf(t)&&(e.className+=" "+t)},cloneMouseEvent:tf,cloneTouchEvent:function(e){let t=e=>{let t=[];for(let i=0;i<e.length;++i){let n=e.item(i);n&&t.push(n)}return t};if("function"==typeof tp.TouchEvent){let i=new tp.TouchEvent(e.type,{touches:t(e.touches),targetTouches:t(e.targetTouches),changedTouches:t(e.changedTouches),ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed,detail:e.detail,view:e.view});return e.defaultPrevented&&i.preventDefault(),i}let i=tf(e);return i.touches=e.touches,i.changedTouches=e.changedTouches,i.targetTouches=e.targetTouches,i},escapeStringForHTML:function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},getElement:function(e){return tm.getElementById(e)},getFakeMouseEvent:ty,getHeadingTagNameForElement:function(e){let t=e=>"h"+Math.min(6,parseInt(e.slice(1),10)+1),i=e=>/^H[1-6]$/i.test(e),n=e=>{let s=(e=>{let t=e;for(;t=t.previousSibling;){let e=t.tagName||"";if(i(e))return e}return""})(e);if(s)return t(s);let o=e.parentElement;if(!o)return"h6";let r=o.tagName;return i(r)?t(r):n(o)};return n(e)},removeChildNodes:function(e){for(;e.lastChild;)e.removeChild(e.lastChild)},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(RegExp(t,"g"),"")},removeElement:function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},reverseChildNodes:function(e){let t=e.childNodes.length;for(;t--;)e.appendChild(e.childNodes[t])},simulatedEventTarget:tg,stripHTMLTagsFromString:function(e,t=!1){return"string"==typeof e?t?e.replace(/<\/?[^>]+(>|$)/g,""):e.replace(/<\/?(?!\s)[^>]+(>|$)/g,""):e},visuallyHideElement:function(e){var t;t={position:"absolute",width:"1px",height:"1px",overflow:"hidden",whiteSpace:"nowrap",clip:"rect(1px, 1px, 1px, 1px)",marginTop:"-3px","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)",filter:"alpha(opacity=1)",opacity:.01},f(e.style,t)}},tv=class{constructor(e){this.beforeGridElement=null,this.afterGridElement=null,this.grid=e,this.element=document.createElement("div"),this.element.classList.add(ep.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")}addHeaderCellDescription(e,t){t&&e.setAttribute("aria-description",t)}announce(e,t=!1){this.announcerTimeout&&C(this.announcerTimeout),this.announcerElement.remove(),this.announcerElement.setAttribute("aria-live",t?"assertive":"polite"),this.element.appendChild(this.announcerElement),requestAnimationFrame(()=>{this.announcerElement.textContent=e}),this.announcerTimeout=setTimeout(()=>{this.announcerElement.remove()},3e3)}userSortedColumn(e){let t,{options:i}=this.grid,n=i?.lang?.accessibility?.sorting?.announcements;if(i?.accessibility?.announcements?.sorting){switch(e){case"asc":t=n?.ascending;break;case"desc":t=n?.descending;break;default:t=n?.none}t&&this.announce(t,!0)}}setColumnSortState(e,t){e?.setAttribute("aria-sort",t)}userFilteredColumn(e,t){let i,{columnId:n,condition:s,value:o,rowsCount:r}=e,{lang:l,accessibility:a}=this.grid.options||{};if(!a?.announcements?.filtering)return;let h=l?.accessibility?.filtering?.announcements;if(t&&s){let e=this.grid.viewport?.getColumn(n),t=tc.getOperatorLabel(s,e?.dataType??"string",l);i="empty"===s||"notEmpty"===s||"false"===s||"true"===s?tw(h?.emptyFilterApplied||"",{columnId:n,condition:t,rowsCount:r}):tw(h?.filterApplied||"",{columnId:n,condition:t,value:o?.toString()||"",rowsCount:r})}else i=tw(h?.filterCleared||"",{columnId:n,rowsCount:r});this.announce(i,!0)}addHighContrast(){let e=this.grid.options?.accessibility?.highContrastMode;!1!==e&&(e1()||!0===e)&&this.grid.contentWrapper?.classList.add("hcg-theme-highcontrast")}setRowIndex(e,t){e.setAttribute("aria-rowindex",t)}async setA11yOptions(){let e=this.grid,t=e.tableElement;t&&(t.setAttribute("aria-rowcount",await e.dataProvider?.getRowCount()||0),e.captionElement&&t.setAttribute("aria-labelledby",e.captionElement.id),e.descriptionElement&&t.setAttribute("aria-describedby",e.descriptionElement.id),this.addHighContrast())}addScreenReaderSection(e){let t=this.grid,i="before"===e,n=i?this.defaultBeforeFormatter():this.defaultAfterFormatter(),s=t.options?.accessibility?.screenReaderSection?.[`${e}GridFormatter`],o=s?s(t):n,r=this[`${e}GridElement`]=this[`${e}GridElement`]||document.createElement("div"),l=r.firstChild||document.createElement("div");if(o){this.setScreenReaderSectionAttributes(r,e),U.setElementHTML(l,o),l.parentNode!==r&&r.appendChild(l);let n=t.container;!r.parentNode&&n&&(i?n.insertBefore(r,n.firstChild):n.appendChild(r)),l.classList.add(ep.getClassName("visuallyHidden"))}else r.parentNode&&r.parentNode.removeChild(r),this[`${e}GridElement`]=null}setScreenReaderSectionAttributes(e,t){let i=this.grid;e.setAttribute("id",`grid-screen-reader-region-${t}-${i.id}`);let n=i.options?.lang?.accessibility?.screenReaderSection?.[`${t}RegionLabel`];n&&(e.setAttribute("aria-label",n),e.setAttribute("role","region")),e.style.position="relative"}defaultBeforeFormatter(){let e=this.grid,{container:t,options:i}=e,n=i?.accessibility?.screenReaderSection?.beforeGridFormat;if(!n||!t)return"";let s=i?.caption?.text,o="";if(s)if(this.isWrappedInHeadingTag(s))o=s;else{let e=tC(t);o=`<${e}>${s}</${e}>`}let r=e3(e.dataProvider)?e.dataProvider.getDataTable():void 0,l={gridTitle:o,gridDescription:i?.description?.text||"",rowCount:r?.rowCount||0,columnCount:(r?.getColumnIds()||[]).length},a=this.formatTemplateString(n,l);return this.stripEmptyHTMLTags(a)}isWrappedInHeadingTag(e){return/^<h([1-6])[^>]*>[\s\S]*<\/h\1>$/i.test(e.trim())}formatTemplateString(e,t){return e.replace(/\{(\w+)\}/g,(e,i)=>i in t?String(t[i]):`{${i}}`)}defaultAfterFormatter(){let e=this.grid,t=e.options?.accessibility?.screenReaderSection?.afterGridFormat;return t?this.stripEmptyHTMLTags(t):""}stripEmptyHTMLTags(e){return function(e,...t){let i,n;do for(n of(i=e,t))e=e.replace(n[0],n[1]);while(e!==i);return e}(e,[/<([\w\-.:!]+)\b[^<>]*>\s*<\/\1>/g,""])}destroy(){let e=this.beforeGridElement;e?.parentNode&&e.parentNode.removeChild(e);let t=this.afterGridElement;t?.parentNode&&t.parentNode.removeChild(t),this.element.remove(),this.announcerElement.remove(),C(this.announcerTimeout)}};class tb{constructor(){this.columnOptionsMap={},this.sourceColumnIdMap={},this.columnDefaults={}}setColumnOptionsMap(e){this.columnOptionsMap=e,this.rebuildSourceColumnIdMap()}clearColumnOptions(){this.columnOptionsMap={},this.sourceColumnIdMap={}}hasColumnOptions(e){return!!this.columnOptionsMap[e]}getColumnIds(){return Object.keys(this.columnOptionsMap)}getIndividualColumnOptions(e){return this.columnOptionsMap[e]?.options}getColumnOptionIndex(e){return this.columnOptionsMap[e]?.index}setColumnOption(e,t){this.columnOptionsMap[e]=t,this.sourceColumnIdMap[e]=this.resolveSourceColumnId(e)}removeColumnOption(e){delete this.columnOptionsMap[e],delete this.sourceColumnIdMap[e]}setColumnDefaults(e){this.columnDefaults=e||{}}setAvailableSourceColumnIds(e){this.availableSourceColumnIds=e?new Set(e):void 0}setHiddenSourceColumnIds(e){this.hiddenSourceColumnIds=e?.length?new Set(e):void 0}getAvailableSourceColumnIds(){return this.availableSourceColumnIds?Array.from(this.availableSourceColumnIds):void 0}getColumnSourceId(e){return e in this.sourceColumnIdMap?this.sourceColumnIdMap[e]:e}isColumnUnbound(e){let t=this.getColumnSourceId(e);return!t||!!this.availableSourceColumnIds&&!this.availableSourceColumnIds.has(t)}isColumnExportable(e){let t=this.getIndividualColumnOptions(e)?.exportable??this.columnDefaults.exportable;return!this.isColumnUnbound(e)&&!1!==t}isColumnSortingEnabled(e){let t=this.getIndividualColumnOptions(e)?.sorting,i=this.columnDefaults.sorting,n=t?.enabled??i?.enabled;return!this.isColumnUnbound(e)&&!!n}isColumnFilteringEnabled(e){let t=this.getIndividualColumnOptions(e)?.filtering?.enabled??this.columnDefaults.filtering?.enabled;return!this.isColumnUnbound(e)&&!!t}isColumnInlineFilteringEnabled(e){let t=this.getIndividualColumnOptions(e)?.filtering?.inline??this.columnDefaults.filtering?.inline;return this.isColumnFilteringEnabled(e)&&!!t}isFilterOperatorSelectHidden(e){let t=this.getIndividualColumnOptions(e),i=t?.filtering?.hideOperatorSelect??this.columnDefaults.filtering?.hideOperatorSelect;if(p(i))return i;let n=t?.filtering?.operators??t?.filtering?.conditions??this.columnDefaults.filtering?.operators??this.columnDefaults.filtering?.conditions;return n?.length===1}shouldRenderOperatorSpacer(e,t){return this.isColumnInlineFilteringEnabled(e)&&this.isFilterOperatorSelectHidden(e)&&t.some(e=>this.isColumnInlineFilteringEnabled(e)&&!this.isFilterOperatorSelectHidden(e))}isColumnEditable(e){let t=this.getIndividualColumnOptions(e)?.cells?.editMode?.enabled??this.columnDefaults.cells?.editMode?.enabled;return!this.isColumnUnbound(e)&&!!t}getColumnsForRender(e,t,i,n){let s=e.length>0?e:t?tb.getColumnsForAutogeneration(i,n):n;return s?.length?this.filterEnabledColumns(this.filterHiddenSourceColumns(s)):[]}static getColumnsForAutogeneration(e,t){let i=new Set(e),n=(t||[]).filter(e=>!i.has(e));return e.concat(n)}filterHiddenSourceColumns(e){let t=this.hiddenSourceColumnIds;if(!t)return e;let i=[];for(let n=0,s=e.length;n<s;++n){let s=e[n],o=this.getColumnSourceId(s);o&&t.has(o)||i.push(s)}return i}filterEnabledColumns(e){let t=new Set,i=[];for(let n of e){let e=this.columnOptionsMap?.[n]?.options?.enabled;t.has(n)||!1===e||(t.add(n),i.push(n))}return i}rebuildSourceColumnIdMap(){let e={},t=Object.keys(this.columnOptionsMap);for(let i=0,n=t.length;i<n;++i){let n=t[i];e[n]=this.resolveSourceColumnId(n)}this.sourceColumnIdMap=e}resolveSourceColumnId(e){let t=this.columnOptionsMap[e]?.options?.dataId;return null===t?void 0:"string"==typeof t?t:e}}let tE={},tx={registerDataProvider:function(e,t){return!!e&&!tE[e]&&!!(tE[e]=t)},types:tE},tR=class{constructor(e){this.cell=e}},{setHTMLContent:tT}=eR;class tM extends tR{constructor(e){super(e),this.add()}add(){this.update()}destroy(){this.cell.htmlElement.innerHTML=U.emptyHTML}update(){tT(this.cell.htmlElement,this.format())}format(){let{cell:e}=this,t=e.row.viewport.grid.options?.columnDefaults?.cells||{},{format:i,formatter:n}=e.column.options.cells||{},s=e.value;p(s)||(s="");let o="";if(!i&&!n)return e.format(tM.defaultFormatsForDataTypes[e.column.dataType]);let r=t.format===i,l=t.formatter===n;if(r&&l)o=n?n.call(e).toString():i?e.format(i):s+"";else if(r){let t=n?.call(e);o=p(t)?String(t):s+""}else l&&(o=i?e.format(i):s+"");return o}}tM.defaultFormatsForDataTypes={string:"{value}",number:"{value:,.f}",boolean:"{value}",datetime:"{value:%Y-%m-%d %H:%M:%S}"};let{createOptionsProxy:tS}=eR,tO=class{constructor(e,t,i){var n;this.dataType="string",this.cells=[];const{grid:s}=e;if(this.id=t,this.index=i,this.viewport=e,s.options&&!s.columnPolicy.hasColumnOptions(t)){const e={id:t};((n=s.options).columns??(n.columns=[])).push(e),s.columnPolicy.setColumnOption(t,{index:s.options.columns.length-1,options:e})}this.options=tS(s.columnPolicy.getIndividualColumnOptions(t)??{},s.options?.columnDefaults)}async init(){this.loadData(),this.dataType=await this.assumeDataType(),this.viewport.grid.columnPolicy.isColumnFilteringEnabled(this.id)&&(this.filtering=new tc(this)),y(this,"afterInit")}loadData(){let e=this.viewport.grid,t=e.dataProvider,i=e.columnPolicy.getColumnSourceId(this.id),n=e.columnPolicy.isColumnUnbound(this.id);e3(t)&&i&&!n?this.data=t.getDataTable(!0)?.getColumn(i,!0):delete this.data,e.columnPolicy.isColumnFilteringEnabled(this.id)?this.filtering??(this.filtering=new tc(this)):delete this.filtering}async getCellValue(e){let t=this.options.cells?.valueGetter;if(t)return await t.call(e,e);let i=this.viewport.grid.columnPolicy.getColumnSourceId(this.id);if(i)return this.viewport.grid.dataProvider?.getValue(i,e.row.index)}createCellContent(e){return new tM(e)}async assumeDataType(){let{grid:e}=this.viewport,t=e.dataProvider,i=e.columnPolicy.getIndividualColumnOptions(this.id)?.dataType??e.options?.columnDefaults?.dataType;if(i)return i;let n=e.columnPolicy.getColumnSourceId(this.id);return e.columnPolicy.isColumnUnbound(this.id)||!n?"string":await t?.getColumnDataType(n)??"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(ep.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.columnLayout.getColumnWidth(this)}setHoveredState(e){this.header?.htmlElement?.classList[e?"add":"remove"](ep.getClassName("hoveredColumn"));for(let t=0,i=this.cells.length;t<i;++t)this.cells[t].htmlElement.classList[e?"add":"remove"](ep.getClassName("hoveredColumn"))}setSyncedState(e){this.header?.htmlElement?.classList[e?"add":"remove"](ep.getClassName("syncedColumn"));for(let t=0,i=this.cells.length;t<i;++t)this.cells[t].htmlElement.classList[e?"add":"remove"](ep.getClassName("syncedColumn"))}format(e){return eo.format(e,this,this.viewport.grid)}setOptions(e,t=!1){return this.viewport.grid.setColumnOptions([{id:this.id,...e}],t)}async update(e,t=!0){await this.viewport.grid.updateColumn(this.id,e,t)}},{makeHTMLElement:tI}=eR,tL=class{constructor(e){this.cells=[],this.cellsByColumnId={},this.viewport=e,this.htmlElement=tI("tr",{}),this.htmlElement.setAttribute("role","row")}async render(){await this.syncRenderedCells(),this.rendered=!0,this.viewport.virtualRows&&this.reflow()}async syncRenderedCells(){let e=this.viewport,t=e.getRenderedColumns(),i=t[0],n=t[t.length-1],s=e.virtualColumns?e.columnsVirtualizer.columnCursor:i?.index??0,o=e.virtualColumns?e.columnsVirtualizer.columnEnd:n?.index??-1;for(let e=this.cells.length-1;e>=0;--e){let t=this.cells[e],i=t.column?.index;(void 0===i||i<s||i>o)&&(this.onCellBeforeDetach(t),t.destroy())}let r=[];for(let e=0,i=t.length;e<i;++e){let i=t[e],n=this.getCell(i.id),s=r.length;n?n.reflow():(n=this.createCell(i),await n.render()),this.insertCellElement(n,s),r.push(n)}this.cells=r,this.reflowPosition()}reflow(){for(let e=0,t=this.cells.length;e<t;++e)this.cells[e].reflow();this.reflowPosition()}reflowPosition(){let e=this.viewport;e.rowsWidth&&(this.htmlElement.style.width=e.rowsWidth+"px"),this.htmlElement.style.paddingLeft=e.getRenderedColumnOffset()+"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.cellsByColumnId[e]}getCellByColumnIndex(e){let t=this.viewport.getColumnByIndex(e);return t?this.getCell(t.id):void 0}insertCellElement(e,t){let i=e.htmlElement,n=this.htmlElement.children[t];n!==i&&this.htmlElement.insertBefore(i,n||null)}onCellBeforeDetach(e){}registerCell(e){this.cells.push(e),e.column&&(this.cellsByColumnId[e.column.id]=e)}unregisterCell(e){let t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1),e.column&&this.cellsByColumnId[e.column.id]===e&&delete this.cellsByColumnId[e.column.id]}},tP=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.column&&this.column.viewport.grid.columnPolicy.isColumnEditable(this.column.id)||this.htmlElement.setAttribute("aria-readonly","true"),this.initEvents()}init(){let e=!!this.column?.options.cells?.rowHeader,t=document.createElement(e?"th":"td",{});return t.classList.add(ep.getClassName("cell")),e?(t.setAttribute("scope","row"),t.setAttribute("role","rowheader")):t.setAttribute("role","gridcell"),t}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.push(["mouseout",()=>{this.onMouseOut()}]),this.cellEvents.push(["mouseover",()=>{this.onMouseOver()}]),this.cellEvents.forEach(e=>{this.htmlElement.addEventListener(e[0],e[1])})}onFocus(){this.row.viewport.setFocusAnchorCell(this)}onBlur(){let e=this.row.viewport;e.focusCursor?.detached||delete e.focusCursor}onKeyDown(e){let{row:t,column:i}=this;if(!i)return;let n=t.viewport,{header:s}=n,o={ArrowDown:[1,0],ArrowUp:[-1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]}[e.key];if("Enter"===e.key&&this.onClick(e),o){e.preventDefault(),e.stopPropagation();let{header:r}=n,l=(()=>{if(void 0!==t.index){let e=n.getRenderedRows().indexOf(t);return -1!==e?e:t.index-(n.rows[0]?.index??0)}let e=t.level;return s&&void 0!==e?Math.max(e,s.levels)-s.rows.length-1:0})()+o[0],a=i.index+o[1],h=e=>{e.htmlElement.focus({preventScroll:!0}),n.ensureColumnFullyVisible(a),void 0!==e.row.index&&n.ensureRowFullyVisible(e.row)};if(l<0&&r){let e=r.rows.length+l,t=e+1>r.levels?r.rows[e]?.getCellByColumnIndex(a):n.getColumnByIndex(a)?.header;t&&h(t);return}let d=n.getRenderedRows()[l];if(d){let e=d.getCellByColumnIndex(a);e?h(e):void 0!==d.index&&n.focusCellByRowIndex(d.index,a)}}}onMouseOver(){let{grid:e}=this.row.viewport;e.hoverColumn(this.column?.id),y(this,"mouseOver",{target:this})}onMouseOut(){let{grid:e}=this.row.viewport;e.hoverColumn(),y(this,"mouseOut",{target:this})}async render(){return this.row.htmlElement.appendChild(this.htmlElement),this.reflow(),Promise.resolve()}reflow(){let e=this.column;if(!e)return;let t=this.htmlElement.style;t.width=t.maxWidth=e.getWidth()+"px"}format(e){return eo.format(e,this,this.row.viewport.grid)}setCustomClassName(e){if(!e){this.customClassName=eb(this.htmlElement,this.customClassName);return}let t=this.format(e);this.customClassName=eb(this.htmlElement,this.customClassName,t||void 0)}setCustomStyles(e){let t=this.htmlElement.style,i=e=>e.indexOf("-")>-1?e:e.replace(/[A-Z]/g,"-$&").toLowerCase();if(this.customStyleProperties)for(let e of this.customStyleProperties)t.removeProperty(e);if(!e)return void delete this.customStyleProperties;let n=[];for(let s of Object.keys(e)){let o=e[s];if(null==o)continue;let r=i(String(s));t.setProperty(r,String(o)),n.push(r)}this.customStyleProperties=n}destroy(){this.cellEvents.forEach(e=>{this.htmlElement.removeEventListener(e[0],e[1])}),this.column?.unregisterCell(this),this.row.unregisterCell(this),this.htmlElement.remove()}},tA=class{constructor(e,t){this.toggle=e=>{let t=this.column.viewport.grid.querying.sorting,i=!!e?.shiftKey,n=!1,s=(()=>{if(i){let e=t.currentSortings?.find(e=>e.columnId===this.column.id);return n=!!e,this.normalizeOrder(e?.order)}let e=t.currentSorting;return(n=e?.columnId===this.column.id)?this.normalizeOrder(e?.order):null})(),o=this.getOrderSequence();if(o.length<1)return;let r=0,l=this.lastOrderSequenceIndex;if(n&&"number"==typeof l&&o[l]===s)r=(l+1)%o.length;else{let e=o.indexOf(s);r=-1===e?0:(e+1)%o.length}this.lastOrderSequenceIndex=r;let a=o[r];this.setOrder(a,i)},this.column=e,this.headerCellElement=t,this.addHeaderElementAttributes(),e.viewport.grid.columnPolicy.isColumnSortingEnabled(e.id)&&t.classList.add(ep.getClassName("columnSortable"))}addHeaderElementAttributes(){let e=this.column,t=e.viewport.grid.accessibility,{currentSorting:i,currentSortings:n}=e.viewport.grid.querying.sorting,s=ep.getClassName("columnSortedAsc"),o=ep.getClassName("columnSortedDesc"),r=this.headerCellElement,l=e.viewport.grid.columnPolicy.isColumnSortingEnabled(e.id),a=n?.find(t=>t.columnId===e.id)||(i?.columnId===e.id?i:void 0);if(!a?.order){r.classList.remove(s),r.classList.remove(o),l&&t?.setColumnSortState(r,"none");return}switch(a.order){case"asc":r.classList.add(s),r.classList.remove(o),t?.setColumnSortState(r,"ascending");break;case"desc":r.classList.remove(s),r.classList.add(o),t?.setColumnSortState(r,"descending")}}refreshHeaderAttributes(){this.addHeaderElementAttributes()}updateColumnOptions(e){let t=e.viewport.grid.querying.sorting.currentSortings||[],i=t.findIndex(t=>t.columnId===e.id);if(-1!==i&&t[i].order){let n={order:t[i].order};t.length>1&&(n.priority=i+1),e.setOptions({sorting:n}),t.length<2&&delete e.options.sorting?.priority}else delete e.options.sorting?.order,delete e.options.sorting?.priority,e.options.sorting&&Object.keys(e.options.sorting).length<1&&delete e.options.sorting}getOrderSequence(){return this.column.options.sorting?.orderSequence||["asc","desc",null]}normalizeOrder(e){return"asc"===e||"desc"===e?e:null}async setOrder(e,t=!1){let i=this.column.viewport;if(i.validator?.errorCell)return;let n=i.grid.querying.sorting,s=i.grid.accessibility;if([this.column,i.grid].forEach(t=>{y(t,"beforeSort",{target:this.column,order:e})}),t){let t=(n.currentSortings||(n.currentSorting?.columnId&&n.currentSorting.order?[n.currentSorting]:[])).filter(e=>!!(e.columnId&&e.order)).slice(),i=t.findIndex(e=>e.columnId===this.column.id);if(e){let n={columnId:this.column.id,order:e};-1!==i?t[i]=n:t.push(n)}else -1!==i&&t.splice(i,1);n.setSorting(t)}else n.setSorting(e,this.column.id);for(let e of(await i.updateRows(),i.columns))this.updateColumnOptions(e),e.sorting?.refreshHeaderAttributes();s?.userSortedColumn(e),[this.column,i.grid].forEach(t=>{y(t,"afterSort",{target:this.column,order:e})})}},{makeHTMLElement:tD}=eR,tN=class{constructor(e){this.eventListenerDestroyers=[],this.isActive=!1,this.options=e}add(e){let t=this.options;this.toolbar=e,e.buttons.push(this);let i=tD("span",t.classNameKey&&{className:ep.getClassName(t.classNameKey)},e.container);this.wrapper=i;let n=this.buttonEl=tD("button",{className:ep.getClassName("icon")+(this.isActive?" "+ep.getClassName("iconSelected"):"")},i);return n.setAttribute("type","button"),n.setAttribute("tabindex","-1"),this.setA11yAttributes(n),this.setIcon(t.icon),this.refreshState(),this.addEventListeners(),this}setA11yAttributes(e){let{accessibility:t,tooltip:i}=this.options,{ariaLabel:n,ariaExpanded:s,ariaControls:o}=t||{};i&&(e.title=i),n&&e.setAttribute("aria-label",n),"boolean"==typeof s&&e.setAttribute("aria-expanded",s),o&&e.setAttribute("aria-controls",o)}focus(e){this.buttonEl?.focus(e);let t=this.toolbar;t&&(t.focusCursor=t.buttons.indexOf(this))}setIcon(e){this.icon?.remove();let t=this.toolbar?.grid;this.icon=ts(e,t?.options?.rendering?.icons),this.buttonEl?.appendChild(this.icon)}setActive(e){this.isActive=e,this.buttonEl?.classList.toggle(ep.getClassName("iconSelected"),e)}setHighlighted(e){this.buttonEl?.classList.toggle(ep.getClassName("iconHighlighted"),e),"boolean"==typeof this.options.accessibility?.ariaExpanded&&this.buttonEl?.setAttribute("aria-expanded",e)}destroy(){this.removeEventListeners(),this.wrapper?.remove(),this.toolbar?.buttons.splice(this.toolbar.buttons.indexOf(this),1),delete this.toolbar}refreshState(){}clickHandler(e){this.options.onClick?.(e,this)}addEventListeners(){let e=e=>{this.clickHandler(e)};this.buttonEl?.addEventListener("click",e),this.eventListenerDestroyers.push(()=>{this.buttonEl?.removeEventListener("click",e)})}removeEventListeners(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0}},tH=function(e){let t=e.options.filtering||{},i=t.rule?.operator??t.condition,n=t.rule?.value??t.value;return!!(i&&(["empty","notEmpty","true","false"].includes(i)||void 0!==n&&""!==n))},tk=function(e,t){let{currentSorting:i,currentSortings:n}=e.viewport.grid.querying.sorting||{},s=n?.find(t=>t.columnId===e.id)||(i?.columnId===e.id?i:void 0);return!!s?.order&&(t?s.order===t:!!s.order)},{formatText:tF}=eR,tB=class extends tN{getColumnLabel(){let e=this.toolbar?.column;return(e?.header?.headerContent?.textContent||e?.header?.value||e?.id||"").trim()||e?.id||""}updateA11yLabel(e,t){let i,n=this.wrapper?.querySelector("button");if(!n)return;let s=this.toolbar?.column,o=s?.viewport.grid.options?.lang,r=o?.accessibility?.sorting,l=r?.announcements,a=this.getColumnLabel(),h=[];a&&h.push(a),(i="asc"===e?l?.ascending:"desc"===e?l?.descending:l?.none)&&h.push(i),t&&h.push(tF(r?.priority??"Priority {priority}.",{priority:String(t)})),h.length&&n.setAttribute("aria-label",h.join(" "))}constructor(){super({icon:"arrowUpDown",accessibility:{ariaLabel:"sort"}})}clickHandler(e){super.clickHandler(e),this.toolbar?.column.sorting?.toggle(e)}renderSortPriorityIndicator(e){let t=this.wrapper;if(!t)return;let i=t.querySelector("button");if(i){if(!e){this.sortPriorityIndicator?.remove(),delete this.sortPriorityIndicator;return}this.sortPriorityIndicator||(this.sortPriorityIndicator=document.createElement("span")),i.appendChild(this.sortPriorityIndicator),this.sortPriorityIndicator.textContent=String(e)}}refreshState(){let e=this.toolbar?.column;if(!e)return;let{currentSortings:t,currentSorting:i}=e.viewport.grid.querying.sorting,n=t||[],s=n.find(t=>t.columnId===e.id)||(i?.columnId===e.id?i:void 0);if(!tk(e)||!s?.order){this.setActive(!1),this.setIcon("arrowUpDown"),this.renderSortPriorityIndicator(),this.updateA11yLabel(null);return}this.setActive(!0),this.setIcon("asc"===s.order?"arrowUp":"arrowDown");let o=n.findIndex(t=>t.columnId===e.id),r=n.length>1&&-1!==o?o+1:void 0;this.renderSortPriorityIndicator(r),this.updateA11yLabel(s.order,r)}addEventListeners(){super.addEventListeners();let e=this.toolbar?.column;e&&this.eventListenerDestroyers.push(u(e.viewport.grid,"afterSort",()=>this.refreshState()))}},{makeHTMLElement:tz}=eR,tW=class{constructor(e,t,i){this.isVisible=!1,this.eventListenerDestroyers=[],this.grid=e,this.button=t,this.options=i||{}}show(e){if(this.container)return;this.button?.setHighlighted(!0),this.container=tz("div",{className:ep.getClassName("popup")}),this.content=tz("div",{className:ep.getClassName("popupContent")});let{header:t}=this.options;t&&this.addHeader(t.label,t.category),this.renderContent(this.content),this.container.appendChild(this.content),this.anchorElement=e,this.isVisible=!0,this.grid.contentWrapper?.appendChild(this.container),this.position(e),this.addEventListeners(),this.grid.popups.add(this),y(this,"afterShow")}hide(){this.container&&(y(this,"beforeHide"),this.grid.popups.delete(this),this.isVisible=!1,this.removeEventListeners(),this.container.remove(),delete this.container,delete this.content,this.button?.setHighlighted(!1),y(this,"afterHide"))}toggle(e){this.isVisible?this.hide():this.show(e)}reflow(){this.anchorElement?.isConnected?this.position(this.anchorElement):this.hide()}position(e){let t=this.grid.contentWrapper;if(!this.container||!this.content||!t)return;let i=this.options.nextToAnchor||!1,n=this.container.getBoundingClientRect(),s=t.getBoundingClientRect(),o=e?.getBoundingClientRect()??s,r=i?o.top:o.bottom+4,l=i?o.right+3:o.left;l+n.width>s.right-8&&(l=-n.width+(i?o.left+4:o.right)),l<s.left+8&&(l=s.left+8),this.container.style.top=`${r-s.top}px`,this.container.style.left=`${l-s.left}px`,r+n.height>s.bottom-8?(this.container.style.top="auto",this.container.style.bottom="8px"):(this.container.style.top=`${r-s.top}px`,this.container.style.bottom="auto")}addHeader(e,t){if(!this.content)return;let i=tz("div",{className:ep.getClassName("menuHeader")},this.content);return t&&tz("span",{className:ep.getClassName("menuHeaderCategory"),innerText:t+" "},i),tz("span",{className:ep.getClassName("menuHeaderName"),innerText:e},i),i}onKeyDown(e){("Escape"===e.key||"Tab"===e.key&&e.shiftKey)&&(e.preventDefault(),this.hide(),this.button?.focus())}onClickOutside(e){this.container?.contains(e.target)||this.anchorElement?.contains(e.target)||this.hide()}addEventListeners(){let e=this.container;if(!e)return;let t=e=>{this.onClickOutside(e)},i=e=>{this.onKeyDown(e)};document.addEventListener("mousedown",t),e.addEventListener("keydown",i),this.eventListenerDestroyers.push(()=>{document.removeEventListener("mousedown",t),e.removeEventListener("keydown",i)})}removeEventListeners(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0}},tV=class extends tW{constructor(e,t,i){const n=e.column.viewport.grid;super(n,t,M({header:{category:n.options?.lang?.setFilter,label:e.column.header?.value||""}},i)),this.filtering=e}show(e){super.show(e),this.filtering.filterSelect?.focus()}renderContent(e){this.filtering.renderFilteringContent(e)}onKeyDown(e){super.onKeyDown(e),this.filtering.onKeyDown(e)}},tj=class extends tN{constructor(){super({icon:"filter",classNameKey:"headerCellFilterIcon",accessibility:{ariaLabel:"filter",ariaExpanded:!1,ariaControls:"filter-popup"}})}refreshState(){let e=this.toolbar?.column;e&&this.setActive(tH(e))}addEventListeners(){super.addEventListeners();let e=this.toolbar;e&&this.eventListenerDestroyers.push(u(e.column,"afterFilter",()=>{this.refreshState()}))}clickHandler(e){super.clickHandler(e);let t=this.toolbar?.column.filtering;t&&(this.popup||(this.popup=new tV(t,this)),this.popup.toggle(this.wrapper))}},{makeHTMLElement:tU}=eR,tq=class extends tW{constructor(){super(...arguments),this.buttons=[],this.focusCursor=0}ensureItemsContainer(){if(this.content)return this.itemsContainer||(this.itemsContainer=tU("ul",{className:ep.getClassName("menuContainer")},this.content)),this.itemsContainer}show(e){super.show(e),this.buttons[0]?.focus()}hide(){for(let e of this.buttons)e.destroy();this.buttons.length=0,this.itemsContainer?.remove(),delete this.itemsContainer,super.hide()}addDivider(){if(this.ensureItemsContainer())return tU("li",{className:ep.getClassName("menuDivider")},this.itemsContainer)}onClickOutside(e){let t=e.target;this.isInDescendantPopup(t)||super.onClickOutside(e)}isInDescendantPopup(e){let t=[];for(let e of this.buttons)e.popup?.container&&t.push(e.popup);for(;t.length;){let i=t.shift();if(!i?.container)continue;if(i.container.contains(e))return!0;let n=i.buttons;if(n)for(let e of n)e.popup?.container&&t.push(e.popup)}return!1}addEventListeners(){super.addEventListeners();let e=this.container;if(!e)return;let t=e=>{e.stopPropagation()};e.addEventListener("mousedown",t),this.eventListenerDestroyers.push(()=>{e.removeEventListener("mousedown",t)})}onKeyDown(e){super.onKeyDown(e);let t=this.buttons.length,i=this.focusCursor;switch(e.key){case"ArrowUp":case"ArrowLeft":e.preventDefault(),this.buttons[Math.abs((i-1+t)%t)].focus();break;case"ArrowDown":case"ArrowRight":e.preventDefault(),this.buttons[(i+1)%t].focus()}}},{makeHTMLElement:tY}=eR,t$=class{constructor(e){this.eventListenerDestroyers=[],this.isActive=!1,this.options=e}add(e){let t=this.options;this.contextMenu=e,e.buttons.push(this);let i=e.ensureItemsContainer();if(!i)return;let n=this.wrapper=tY("li",t.classNameKey&&{className:ep.getClassName(t.classNameKey)},i),s=this.buttonEl=tY("button",{className:ep.getClassName("menuItem")},n),o=this.iconWrapper=tY("span",{className:ep.getClassName("menuItemIcon")},s);this.spanEl=tY("span",{className:ep.getClassName("menuItemLabel"),innerText:t.label||""},s);let r=tY("span",{className:ep.getClassName("menuItemIcon")},s);if(o.setAttribute("aria-hidden","true"),r.setAttribute("aria-hidden","true"),s.setAttribute("type","button"),s.setAttribute("tabindex","-1"),this.refreshState(),t.chevron){let e=this.contextMenu?.grid;r.appendChild(ts("chevronRight",e?.options?.rendering?.icons))}return t.icon&&this.setIcon(t.icon),this.addEventListeners(),this}focus(e){this.buttonEl?.focus(e);let t=this.contextMenu;t&&(t.focusCursor=t.buttons.indexOf(this))}click(){this.buttonEl?.click()}setLabel(e){this.spanEl&&(this.spanEl.innerText=e)}setIcon(e){if(this.icon?.remove(),!e)return;let t=this.contextMenu?.grid;this.icon=ts(e,t?.options?.rendering?.icons),this.iconWrapper?.appendChild(this.icon)}setActive(e){this.isActive=e,this.buttonEl?.classList.toggle("active",e);let{activeIcon:t,icon:i}=this.options;t&&this.setIcon(e?t:i)}setHighlighted(e){this.buttonEl?.classList.toggle("highlighted",e)}destroy(){this.popup?.hide(),this.removeEventListeners(),this.wrapper?.remove();let e=this.contextMenu;if(e){let t=e.buttons.indexOf(this);-1!==t&&e.buttons.splice(t,1),delete this.contextMenu}}refreshState(){}clickHandler(e){this.options.onClick?.(e,this)}addEventListeners(){let e=e=>{this.clickHandler(e)};this.buttonEl?.addEventListener("click",e),this.eventListenerDestroyers.push(()=>{this.buttonEl?.removeEventListener("click",e)})}removeEventListeners(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0}},tK=class extends t${constructor(e){super({label:e.filter,icon:"filter",chevron:!0})}refreshState(){let e=this.contextMenu?.button.toolbar?.column;e&&this.setActive(tH(e))}addEventListeners(){super.addEventListeners();let e=this.contextMenu?.button.toolbar;e&&this.eventListenerDestroyers.push(u(e.column,"afterFilter",()=>{this.refreshState()}))}clickHandler(e){super.clickHandler(e);let t=this.contextMenu?.button.toolbar?.column.filtering;t&&(this.popup||(this.popup=new tV(t,this,{nextToAnchor:!0})),this.popup.toggle(this.wrapper))}},tG=class extends t${constructor(e,t){super({icon:"asc"===t?"arrowUp":"arrowDown"}),this.direction=t,this.baseLabel=e["asc"===t?"sortAscending":"sortDescending"]||"",this.options.label=this.baseLabel}refreshState(){let e=this.contextMenu?.button?.toolbar?.column;if(!e)return;let t=tk(e,this.direction);this.setActive(t),this.updateLabelWithPriority(t?e:void 0)}updateLabelWithPriority(e){if(!e)return void this.setLabel(this.baseLabel);let{currentSortings:t}=e.viewport.grid.querying.sorting,i=t||[],n=i.findIndex(t=>t.columnId===e.id),s=i.length>1&&-1!==n?n+1:void 0;s?this.setLabel(`${this.baseLabel} (${s})`):this.setLabel(this.baseLabel)}addEventListeners(){super.addEventListeners();let e=this.contextMenu?.button?.toolbar?.column;e&&this.eventListenerDestroyers.push(u(e.viewport.grid,"afterSort",()=>this.refreshState()))}clickHandler(e){super.clickHandler(e);let t=this.contextMenu?.button?.toolbar?.column.sorting;t&&t.setOrder(this.isActive?null:this.direction,!!e?.shiftKey)}},t_=class extends tq{constructor(e,t){super(e,t),this.button=t}renderContent(){let e=this.grid.options?.lang||{},t=this.button.toolbar?.column,i=t?.options||{},n=!!t&&this.grid.columnPolicy.isColumnFilteringEnabled(t.id)&&!i.filtering?.inline,s=!!t&&this.grid.columnPolicy.isColumnSortingEnabled(t.id);this.addHeader(this.button.toolbar?.column.header?.value||"",e.column),s&&(new tG(e,"desc").add(this),new tG(e,"asc").add(this),n&&this.addDivider()),n&&new tK(e||{}).add(this)}},{formatText:tX}=eR,tZ=class extends tN{getColumnLabel(){let e=this.toolbar?.column;return(e?.header?.headerContent?.textContent||e?.id||"").trim()||e?.id||""}updateA11yLabel(){let e=this.wrapper?.querySelector("button"),t=this.toolbar?.column,i=t?.viewport.grid.options?.lang,n=this.getColumnLabel(),s=tX(i?.accessibility?.columnMenu||"Open menu for {column}.",{column:n});e&&s&&e.setAttribute("aria-label",s)}constructor(){super({icon:"menu",classNameKey:"headerCellMenuIcon",accessibility:{ariaExpanded:!1}})}clickHandler(e){super.clickHandler(e);let t=this.toolbar?.column.viewport.grid;t&&(this.popup||(this.popup=new t_(t,this)),this.popup.toggle(this.wrapper))}refreshState(){let e=this.toolbar?.column;e&&(this.updateA11yLabel(),this.setActive(tk(e)||tH(e)))}addEventListeners(){super.addEventListeners();let e=this.toolbar?.column;e&&this.eventListenerDestroyers.push(u(e.viewport.grid,"afterSort",()=>{this.refreshState()}),u(e,"afterFilter",()=>{this.refreshState()}))}},{makeHTMLElement:tQ}=eR;class tJ{get grid(){return this.column.viewport.grid}constructor(e){this.buttons=[],this.focusCursor=0,this.eventListenerDestroyers=[],this.column=e}renderFull(){let e=this.column.options;this.column.viewport.grid.columnPolicy.isColumnSortingEnabled(this.column.id)&&new tB().add(this),this.column.viewport.grid.columnPolicy.isColumnFilteringEnabled(this.column.id)&&!e.filtering?.inline&&new tj().add(this)}renderMinimized(){let e=this.column.options;(this.column.viewport.grid.columnPolicy.isColumnSortingEnabled(this.column.id)||this.column.viewport.grid.columnPolicy.isColumnFilteringEnabled(this.column.id)&&!e.filtering?.inline)&&new tZ().add(this)}add(){let e=this.column.header;if(!e?.container)return;this.columnResizeObserver&&(this.columnResizeObserver.disconnect(),delete this.columnResizeObserver),this.columnResizeObserver=new ResizeObserver(()=>this.reflow()),this.columnResizeObserver.observe(e.container);let t=this.container=tQ("div",{className:ep.getClassName("headerCellIcons")});e.container.appendChild(t);let i=e=>{this.keyDownHandler(e)};t.addEventListener("keydown",i),this.eventListenerDestroyers.push(()=>{t.removeEventListener("keydown",i)})}refreshState(){for(let e of this.buttons)e.refreshState()}clearButtons(){let{buttons:e}=this;for(;e.length>0;)e[e.length-1].destroy()}reflow(){let e=this.column.getWidth()<=tJ.MINIMIZED_COLUMN_WIDTH;if(e!==this.isMinimized&&(this.isMinimized=e,this.clearButtons(),e?this.renderMinimized():this.renderFull()),!e){this.isMenuCentered=void 0,this.column.header?.container?.classList.remove(ep.getClassName("noWidth"));return}let t=this.column.header?.htmlElement,i=this.container,n=t?.offsetWidth||0,s=this.buttons[0]?.wrapper?.offsetWidth||0,o=n-((t&&w(t,"padding-left",!0)||0)+(t&&w(t,"padding-right",!0)||0))<s+((i&&w(i,"margin-left",!0)||0)+(i&&w(i,"margin-right",!0)||0));this.isMenuCentered!==o&&(this.isMenuCentered=o,this.column.header?.container?.classList.toggle(ep.getClassName("noWidth"),o))}destroy(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0,this.clearButtons(),this.columnResizeObserver?.disconnect(),delete this.columnResizeObserver}focus(e){this.buttons[0]?.focus(e)}keyDownHandler(e){let t,i=this.buttons.length,n=this.focusCursor;switch(e.key){case"ArrowUp":case"ArrowLeft":t=this.buttons[Math.abs((n-1+i)%i)];break;case"ArrowDown":case"ArrowRight":t=this.buttons[(n+1)%i];break;case"Escape":t=this.column.header?.htmlElement;break;default:return}e.preventDefault(),e.stopPropagation(),t?.focus({preventScroll:!0})}}tJ.MINIMIZED_COLUMN_WIDTH=120;let t0=class extends tP{constructor(e,t,i){super(e,t),this.superColumnOptions={},this.columns=[],this.value="";const n=this.row.viewport.header;if(!n)throw Error("No header found.");this.tableHeader=n,this.syncColumns(t,i)}init(){let e=document.createElement("th",{});return e.classList.add(ep.getClassName("headerCell")),e.setAttribute("role","columnheader"),e}async render(){let{column:e}=this,t=eC(this.superColumnOptions,e?.options??this.row.viewport.grid.options?.columnDefaults),i=t.header||{},n=e?i.formatter?.call(e):void 0;n?this.value=n.toString():E(i.format)?this.value=e?e.format(i.format):i.format:this.value=e?.id||"",this.htmlElement.parentElement||this.row.htmlElement.appendChild(this.htmlElement);let s=this.container=eg("div",{className:ep.getClassName("headerCellContainer")},this.htmlElement);return this.headerContent=eg("span",{className:ep.getClassName("headerCellContent")},s),ew(this.headerContent,this.value),this.htmlElement.setAttribute("scope","col"),this.superColumnOptions.className&&this.htmlElement.classList.add(...this.superColumnOptions.className.split(/\s+/g)),e&&(this.htmlElement.setAttribute("data-column-id",e.id),this.htmlElement.setAttribute("aria-label",e.id),e.options.className&&this.htmlElement.classList.add(...e.options.className.split(/\s+/g)),this.resizeHandle=e.viewport.columnsResizer?.renderColumnDragHandles(e,this),this.toolbar=new tJ(e),this.toolbar.add(),this.initColumnSorting()),this.htmlElement.classList[e?.dataType==="number"?"add":"remove"](ep.getClassName("rightAlign")),this.setCustomClassName(t.header?.className),this.setCustomStyles(this.getColumnStyles()),y(this,"afterRender",{column:e}),Promise.resolve()}getColumnStyles(){let{column:e}=this,{grid:t}=this.row.viewport;if(!e){let e=eC(this.superColumnOptions,t.options?.columnDefaults);return{...eE(e.style),...eE(e.header?.style)}}let i=t.columnPolicy.getIndividualColumnOptions(e.id);return{...ex(e,t.options?.columnDefaults?.style,i?.style),...ex(e,t.options?.columnDefaults?.header?.style,i?.header?.style)}}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",this.toolbar?.reflow()}syncColumns(e,t){if(this.column?.header===this&&this.column!==e&&delete this.column.header,this.column=e,this.columns.length=0,e)e.header=this,this.columns.push(e);else if(t){let e=this.row.viewport,i=e.grid.getColumnIds(t,!1);for(let t=0,n=i.length;t<n;++t){let n=e.getColumn(i[t]);n&&e.isColumnRendered(n.index)&&this.columns.push(n)}}}onKeyDown(e){if(this.column&&e.target===this.htmlElement){if("Enter"===e.key){this.toolbar?.focus({preventScroll:!0}),e.preventDefault();return}super.onKeyDown(e)}}onClick(e){let{column:t}=this;!t||!this.htmlElement.contains(e.target)||this.toolbar?.container?.contains(e.target)||t.viewport.columnsResizer?.isResizing||(t.viewport.grid.columnPolicy.isColumnSortingEnabled(t.id)&&t.sorting?.toggle(e),y(this,"click",{originalEvent:e,column:t}))}initColumnSorting(){let{column:e}=this;e&&(e.sorting=new tA(e,this.htmlElement))}isLastColumn(){let e=this.row.viewport.getRenderedColumns();return e[e.length-1]===this.columns?.[this.columns.length-1]}destroy(){let e=this.column?.viewport.columnsResizer;this.resizeHandle&&e&&(e.removeHandle(this.resizeHandle),delete this.resizeHandle),this.toolbar?.destroy(),this.column?.header===this&&delete this.column.header,super.destroy()}},t1=class extends tL{constructor(e,t){super(e),this.headerCellsByKey={},this.level=t,this.setRowAttributes()}createCell(e,t){return new t0(this,e,t)}async renderContent(e){let t=this.viewport.grid.options?.header,i=this.viewport,n=i.getRenderedColumns(),s=n[0],o={},r=[];if(this.htmlElement.parentElement||i.theadElement?.appendChild(this.htmlElement),this.htmlElement.classList.add(ep.getClassName("headerRow")),this.clearPositionClasses(),t){let n=this.getColumnsAtLevel(t,e);for(let t=0,l=n.length;t<l;t++){let l=n[t],a="string"==typeof l,h=!a&&l.columns?i.grid.getColumnIds(l.columns,!1):void 0,d=0;if(h)for(let e=0,t=h.length;e<t;++e)i.isColumnRendered(h[e])&&++d;let u=a?l:l.columnId,c=u?i.getColumn(u||""):void 0,m=a?void 0:l.format,p=a?void 0:l.className;if(u&&(!c||!i.isColumnRendered(c.index))||!c&&0===d)continue;let g=u?this.getColumnCellKey(u):this.getGroupCellKey(e,t),{cell:f,isNew:y}=this.syncHeaderCell(g,o,r,c,a?void 0:l.columns);a||i.grid.accessibility?.addHeaderCellDescription(f.htmlElement,l.accessibility?.description),E(m)&&(f.superColumnOptions.header||(f.superColumnOptions.header={}),f.superColumnOptions.header.format=m),p&&(f.superColumnOptions.className=p),c===s&&0===t&&f.htmlElement.classList.add(ep.getClassName("columnFirst")),y&&await f.render(),u?(f.htmlElement.setAttribute("rowSpan",(this.viewport.header?.levels||1)-e),f.htmlElement.removeAttribute("colSpan")):(d>1?f.htmlElement.setAttribute("colSpan",d):f.htmlElement.removeAttribute("colSpan"),f.htmlElement.removeAttribute("rowSpan"))}}else await this.syncColumnHeaders(n,o,r);this.destroyStaleCells(o),this.syncCellElements(r),this.cells=r,this.setLastCellClass(),this.reflowPosition()}reflow(){let e=this.viewport,t=e.columnLayout,i=e.getRenderedColumnOffset(),n=0;this.htmlElement.style.height="",this.htmlElement.style.position="";for(let s=0,o=this.cells.length;s<o;s++){let o=this.cells[s],r=o.htmlElement,l=r.style;if(o.reflow(),l.height="",l.left="",l.position="",l.top="",l.zIndex="",e.virtualColumns){let e=o.columns[0],s=o.columns[o.columns.length-1];if(e&&s){let o=Math.max(0,t.getColumnLeft(e.index)-i),l=Math.max(o,t.getColumnRight(s.index)-i);r.style.marginLeft=Math.max(0,o-n)+"px",n=l}else r.style.marginLeft=""}else r.style.marginLeft=""}this.reflowPosition()}applyVirtualColumnLayout(e,t){let i=this.viewport.columnLayout,n=e[t]||0;this.htmlElement.style.height=n+"px",this.htmlElement.style.position="relative";for(let n=0,s=this.cells.length;n<s;n++){let s=this.cells[n],o=s.columns[0],r=s.columns[s.columns.length-1];if(!o||!r)continue;let l=s.htmlElement,a=l.style,h=Math.max(1,l.rowSpan||1),d=0;for(let i=0;i<h;++i)d+=e[t+i]||0;a.height=d+"px",a.left=Math.max(0,i.getColumnLeft(o.index))+"px",a.marginLeft="",a.position="absolute",a.top="0",a.zIndex=h>1?"1":""}}setLastCellClass(){let e=this.cells[this.cells.length-1];e?.isLastColumn()&&e.htmlElement.classList.add(ep.getClassName("lastHeaderCellInRow"))}async syncColumnHeaders(e,t,i){let n=e[0];for(let s=0,o=e.length;s<o;++s){let o=e[s],{cell:r,isNew:l}=this.syncHeaderCell(this.getColumnCellKey(o.id),t,i,o);o===n&&r.htmlElement.classList.add(ep.getClassName("columnFirst")),l&&await r.render()}}syncHeaderCell(e,t,i,n,s){let o=this.headerCellsByKey[e],r=!o;return o?(o.syncColumns(n,s),o.reflow()):((o=this.createCell(n,s)).headerCellKey=e,this.headerCellsByKey[e]=o),t[e]=!0,i.push(o),{cell:o,isNew:r}}destroyStaleCells(e){for(let t=this.cells.length-1;t>=0;--t){let i=this.cells[t],n=i.headerCellKey;n&&e[n]||(this.onCellBeforeDetach(i),i.destroy())}}syncCellElements(e){for(let t=0,i=e.length;t<i;++t)this.insertCellElement(e[t],t)}clearPositionClasses(){let e=ep.getClassName("columnFirst"),t=ep.getClassName("lastHeaderCellInRow");for(let i=0,n=this.cells.length;i<n;++i)this.cells[i].htmlElement.classList.remove(e,t)}getColumnCellKey(e){return"column:"+e}getCellByKey(e){return this.headerCellsByKey[e]}onCellBeforeDetach(e){let t=document.activeElement;if(!(t instanceof Element)||!e.htmlElement.contains(t))return;let i=this.getFocusCursor(e,t);i&&this.viewport.preserveFocusDuringDetach(i)}getFocusCursor(e,t){let i=this.viewport.header,n=e.headerCellKey,s=i?.rows.indexOf(this)??-1,o=e.columns[0];if(!i||!n||s<0||!o)return;let r={cellKey:n,columnIndex:o.index,rowIndex:s-i.rows.length,type:"header"};if(t===e.htmlElement)return r;let l=e.toolbar?.buttons;if(l){for(let e=0,i=l.length;e<i;++e)if(l[e].wrapper?.contains(t))return r.toolbarButtonIndex=e,r}}getGroupCellKey(e,t){return"group:"+e+":"+t}unregisterCell(e){let t=e.headerCellKey;t&&this.headerCellsByKey[t]===e&&delete this.headerCellsByKey[t],super.unregisterCell(e)}getColumnsAtLevel(e,t,i=0,n=[]){for(let s of e){if(i===t){n.push(s);continue}"string"!=typeof s&&s.columns&&this.getColumnsAtLevel(s.columns,t,i+1,n)}return n}setRowAttributes(){this.viewport.grid.accessibility?.setRowIndex(this.htmlElement,this.level)}},t2=class extends t0{constructor(e,t){const i=t.header;super(e,t),t.header=i}async render(){let{column:e}=this;if(!e)return Promise.resolve();this.row.htmlElement.appendChild(this.htmlElement),this.htmlElement.setAttribute("scope","col"),this.htmlElement.setAttribute("data-column-id",e.id),e.options.className&&this.htmlElement.classList.add(...e.options.className.split(/\s+/g)),this.setCustomClassName(e.options.header?.className),y(this,"afterRender",{column:e,filtering:!0})}syncColumns(e,t){let i=e?.header;super.syncColumns(e,t),e&&(e.header=i)}onKeyDown(e){e.target===this.htmlElement?"Enter"===e.key&&this.column.viewport.grid.columnPolicy.isColumnInlineFilteringEnabled(this.column.id)?this.column.filtering?.focusFirstControl():super.onKeyDown(e):(this.column.filtering?.onKeyDown(e),"Escape"===e.key&&this.htmlElement.focus())}onClick(e){e.target===this.htmlElement&&this.htmlElement.focus()}},t3=class extends t1{constructor(e){super(e,(e.header?.levels??0)+1)}createCell(e){return new t2(this,e)}async renderContent(){let e=this.viewport,t={},i=[];this.htmlElement.parentElement||e.theadElement?.appendChild(this.htmlElement),this.htmlElement.classList.add(ep.getClassName("headerRow")),this.clearPositionClasses();let n=e.getRenderedColumns(),s=n[0];for(let o=0,r=n.length;o<r;o++){let r=n[o],{cell:l,isNew:a}=this.syncHeaderCell(this.getColumnCellKey(r.id),t,i,r);r===s&&l.htmlElement.classList.add(ep.getClassName("columnFirst")),a&&(await l.render(),e.grid.columnPolicy.isColumnInlineFilteringEnabled(r.id)&&r.filtering?.renderFilteringContent(l.htmlElement))}this.destroyStaleCells(t),this.syncCellElements(i),this.cells=i,this.setLastCellClass(),this.reflowPosition()}},t6=class{constructor(e){this.columns=[],this.rows=[],this.levels=1,this.viewport=e,this.columns=e.getRenderedColumns(),e.grid.options?.header&&(this.levels=this.getRowLevels(e.grid.options?.header))}async render(){let e=this.viewport;if(e.grid.enabledColumns){for(let t=0,i=this.levels;t<i;t++){let i=new t1(e,t+1);await Promise.resolve(i.renderContent(t)),this.rows.push(i)}if(e.columns.some(t=>e.grid.columnPolicy.isColumnInlineFilteringEnabled(t.id))){let t=new t3(e);await t.renderContent(),this.rows.push(t)}}}async syncRenderedColumns(){let e=this.viewport;if(e.grid.enabledColumns){this.columns=e.getRenderedColumns();for(let t=0,i=this.levels;t<i;t++){let i=this.rows[t];i||(i=new t1(e,t+1),this.rows[t]=i),await i.renderContent(t)}if(this.hasInlineFiltering()){let t=this.rows[this.levels];t||(t=new t3(e),this.rows[this.levels]=t),await t.renderContent()}else{let e=this.rows[this.levels];e&&(e.destroy(),this.rows.splice(this.levels,1))}}}reflow(){let e=this.viewport;if(!e.theadElement)return;let{clientWidth:t,offsetWidth:i}=e.tbodyElement,n=this.rows;for(let e of n)e.reflow();if(e.virtualColumns){let e=[],t=[];for(let i=0,s=n.length;i<s;++i){let s=n[i].cells;for(let t=0,n=s.length;t<n;++t){let n=s[t].htmlElement,o=Math.max(1,n.rowSpan||1);o>1&&(e.push({height:n.offsetHeight,rowIndex:i,rowSpan:o}),n.style.position="absolute")}t[i]=n[i].htmlElement.offsetHeight}for(let i=0,s=e.length;i<s;++i){let{height:s,rowIndex:o,rowSpan:r}=e[i],l=Math.min(n.length,o+r),a=l-o,h=0;for(let e=o;e<l;++e)h+=t[e]||0;if(s>h&&a>0){let e=(s-h)/a;for(let i=o;i<l;++i)t[i]=(t[i]||0)+e}}for(let e=0,i=n.length;e<i;++e)n[e].applyVirtualColumnLayout(t,e)}e.rowsWidth&&(e.theadElement.style.width=Math.max(e.rowsWidth,t)+(i-t)+"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}hasInlineFiltering(){let e=this.viewport;return e.columns.some(t=>e.grid.columnPolicy.isColumnInlineFilteringEnabled(t.id))}scrollHorizontally(e){let t=this.viewport.theadElement;t&&(t.style.transform=`translateX(${-e}px)`)}destroy(){for(let e of this.rows)e.destroy()}},t4=class extends tP{constructor(e,t){super(e,t),this.asyncFetchToken=0,this.column=t,this.row=e,this.column.registerCell(this)}async render(){await super.render(),await this.setValue()}async editValue(e){this.isEditable()&&this.value!==e&&(y(this,"beforeEditValue"),await this.setValue(e,!0),y(this,"afterEditValue"))}async setValue(e,t=!1){let i=++this.asyncFetchToken,{grid:n}=this.column.viewport;if(this.htmlElement.style.opacity="0.5",!p(e)&&(e=await this.column.getCellValue(this),i!==this.asyncFetchToken)){this.htmlElement.style.opacity="";return}let s=this.value;if(this.value=e,t)try{if(n.showLoading(),await this.updateDataset())return}catch(e){console.error(e),this.value=s}finally{n.hideLoading()}this.content?this.content.update():this.content=this.column.createCellContent(this),this.htmlElement.setAttribute("data-value",this.value+""),this.updateReadonlyAttribute(),this.htmlElement.classList["number"===this.column.dataType?"add":"remove"](ep.getClassName("rightAlign")),this.setCustomClassName(this.column.options.cells?.className),this.setCustomStyles(this.getCellStyles()),this.htmlElement.style.opacity="",y(this,"afterRender",{target:this})}getCellStyles(){let{grid:e}=this.column.viewport,t=e.columnPolicy.getIndividualColumnOptions(this.column.id);return{...ex(this.column,e.options?.columnDefaults?.style,t?.style),...ex(this,e.options?.columnDefaults?.cells?.style,t?.cells?.style)}}async updateDataset(){let e=this.column.viewport.grid.columnPolicy.getColumnSourceId(this.column.id);if(!e||await this.column.viewport.grid.dataProvider?.getValue(e,this.row.index)===this.value)return!1;let t=this.column.viewport,{dataProvider:i}=t.grid,n=this.row.id;if(!i||void 0===n)return!1;this.row.data[this.column.id]=this.value,e!==this.column.id&&(this.row.data[e]=this.value),await i.setValue(this.value,e,n);let s={requiresFullRowsUpdate:!1,rowId:n,sourceColumnId:e};return y(this,"afterDataMutation",s),(!t.grid.querying.willNotModify()||!!s.requiresFullRowsUpdate)&&(await t.updateRows(),!0)}isEditable(){if(!this.column.viewport.grid.columnPolicy.isColumnEditable(this.column.id))return!1;let e={editable:!0};return y(this,"getEditability",e),e.editable}updateReadonlyAttribute(){this.isEditable()?this.htmlElement.removeAttribute("aria-readonly"):this.htmlElement.setAttribute("aria-readonly","true")}initEvents(){this.cellEvents.push(["blur",e=>{this.onBlur(e)}]),this.cellEvents.push(["focus",()=>this.onFocus()]),this.cellEvents.forEach(e=>{this.htmlElement.addEventListener(e[0],e[1])})}onFocus(){super.onFocus();let e=this.row.viewport,t=this.row.id;void 0!==t&&(delete e.pendingFocusCursor,e.clearDetachedFocus(),e.focusCursor={type:"body",rowId:t,columnIndex:this.column.index})}onBlur(e){e&&this.row.viewport.hasDetachedFocusAt(this.row.id,this.column.index)||super.onBlur()}onMouseDown(e){e.target===this.htmlElement&&this.htmlElement.focus(),y(this,"mouseDown",{target:this,originalEvent:e})}onMouseOver(){this.row.viewport.grid.hoverRow(this.row.index),super.onMouseOver()}onMouseOut(){this.row.viewport.grid.hoverRow(),super.onMouseOut()}onDblClick(e){y(this,"dblClick",{target:this,originalEvent:e})}onClick(){y(this,"click",{target:this})}onKeyDown(e){e.target===this.htmlElement&&(y(this,"keyDown",{target:this,originalEvent:e}),super.onKeyDown(e))}destroy(){this.content?.destroy(),delete this.content,super.destroy()}},t8=class extends tL{constructor(e,t){super(e),this.data={},this.translateY=0,this.index=t}async init(){this.id=await this.viewport.grid.dataProvider?.getRowId(this.index),await this.loadData(),this.setRowAttributes()}createCell(e){return new t4(this,e)}async loadData(){let e=await this.viewport.grid.dataProvider?.getRowObject(this.index);if(!e){this.data={};return}this.data=e,y(this,"afterLoadData",{data:e})}async update(){this.id=await this.viewport.grid.dataProvider?.getRowId(this.index),this.updateRowAttributes(),await this.loadData();for(let e=0,t=this.cells.length;e<t;++e){let t=this.cells[e];await t.setValue()}await this.syncRenderedCells(),this.reflow()}async reuse(e){for(let e=0,t=this.cells.length;e<t;++e)y(this.cells[e],"outdate");if(this.index===e)return void await this.update();this.index=e,this.id=await this.viewport.grid.dataProvider?.getRowId(e),this.htmlElement.setAttribute("data-row-index",e+""),this.updateRowAttributes(),this.updateParityClass(),this.updateStateClasses(),await this.loadData();for(let e=0,t=this.cells.length;e<t;++e){let t=this.cells[e];await t.setValue()}await this.syncRenderedCells(),this.reflow()}setHoveredState(e){this.htmlElement.classList[e?"add":"remove"](ep.getClassName("hoveredRow")),e&&(this.viewport.grid.hoveredRowIndex=this.index)}setSyncedState(e){this.htmlElement.classList[e?"add":"remove"](ep.getClassName("syncedRow")),e&&(this.viewport.grid.syncedRowIndex=this.index)}setRowAttributes(){let e=this.index,t=this.htmlElement,i=this.viewport.grid.options?.rendering?.rows;t.classList.add(ep.getClassName("rowElement")),t.setAttribute("data-row-index",e+""),i?.className&&t.classList.add(...i.className.split(/\s+/g)),this.updateRowAttributes(),this.updateParityClass(),this.updateStateClasses()}updateRowAttributes(){let e=this.viewport,t=e.grid.accessibility,i=this.index,n=this.htmlElement;void 0!==this.id&&n.setAttribute("data-row-id",this.id),t?.setRowIndex(n,i+(e.header?.rows.length??0)+1),y(this,"afterUpdateAttributes")}updateParityClass(){let e=this.htmlElement,t=!!(this.index%2),i=this.viewport.grid.options?.rendering?.rows?.evenClassName;e.classList.remove(ep.getClassName("rowEven"),ep.getClassName("rowOdd")),i&&e.classList.remove(...i.split(/\s+/g)),e.classList.add(ep.getClassName(t?"rowEven":"rowOdd")),t&&i&&e.classList.add(...i.split(/\s+/g))}updateStateClasses(){let e=this.htmlElement;e.classList.remove(ep.getClassName("hoveredRow"),ep.getClassName("syncedRow")),this.viewport.grid.hoveredRowIndex===this.index&&e.classList.add(ep.getClassName("hoveredRow")),this.viewport.grid.syncedRowIndex===this.index&&e.classList.add(ep.getClassName("syncedRow"))}onCellBeforeDetach(e){let t=document.activeElement,i=e.column?.index,{focusCursor:n}=this.viewport;void 0!==i&&void 0!==this.id&&n&&"header"!==n.type&&!n.bodySectionId&&n.rowId===this.id&&n.columnIndex===i&&t instanceof Element&&e.htmlElement.contains(t)&&this.viewport.preserveFocusDuringDetach()}setTranslateY(e){this.translateY=e,this.htmlElement.style.transform=`translateY(${e}px)`}getDefaultTopOffset(){return this.index*this.viewport.rowsVirtualizer.defaultRowHeight}};class t5{static getMaxElementHeight(){if(void 0!==t5.maxElementHeight)return t5.maxElementHeight;let e=ep.userAgent.indexOf("Firefox")>-1,t=(e?6e6:31e6)/(window.devicePixelRatio||1);if(!document.body)return t5.maxElementHeight=t,t5.maxElementHeight;let i=1e6,n=e?6e6:1e9,s=document.createElement("div");document.body.appendChild(s);let o=!1;for(;!o;){let e=2*i;if(s.style.height=e+"px",e>n||s.clientHeight!==e){o=!0;continue}i=e}return s.remove(),t5.maxElementHeight=Math.min(i||t,16e6),t5.maxElementHeight}constructor(e){this.defaultRowHeight=49,this.rowCursor=0,this.preventScroll=!1,this.totalGridHeight=0,this.gridHeightOverflow=0,this.scrollOffset=0,this.rowPool=[],this.scrollQueued=!1,this.isRendering=!1,this.pendingRowCursor=null;const t=e.grid.options?.rendering?.rows||{};this.rowSettings=t,this.viewport=e,this.rowCount=0,this.strictRowHeights=!!t.strictHeights,this.buffer=Math.max(t.bufferSize||0,0),this.maxElementHeight=t5.getMaxElementHeight(),this.rowCursor=0,this.strictRowHeights&&e.tbodyElement.classList.add(ep.getClassName("rowsContentNowrap"))}async initialRender(){this.defaultRowHeight=await this.getDefaultRowHeight(),this.viewport.virtualRows&&this.viewport.reflow(),await this.beforeInitialRenderRows?.(),await this.renderRows(this.rowCursor),this.adjustRowHeights(),this.viewport.virtualRows&&this.adjustRowOffsets()}async rerender(){let e,t=this.viewport.tbodyElement,i=this.viewport.rows,n=t.scrollLeft;if(this.rowPool.length){for(let e=this.rowPool.length-1;e>=0;--e)this.rowPool[e].destroy();this.rowPool.length=0}if(i.length){e=t.scrollTop;for(let e=0,t=i.length;e<t;++e)i[e].destroy();i.length=0}await this.renderRows(this.rowCursor),this.viewport.virtualRows&&p(e)&&(t.scrollTop=e),i=this.viewport.rows;for(let e=0,t=i.length;e<t;++e)i[e].reflow();t.scrollLeft=n}async refreshRows(){await this.updateGridMetrics();let e=this.viewport.tbodyElement,t=e.scrollLeft,i=this.viewport.virtualRows?e.scrollTop:void 0,n=Math.max(0,this.rowCount-1);this.rowCursor>n&&(this.rowCursor=n),await this.renderRows(this.rowCursor);let s=this.viewport.rows;if(!this.viewport.virtualRows){let t=e.firstElementChild;for(let i=0,n=s.length;i<n;++i){if(t===s[i].htmlElement){t=t.nextElementSibling;continue}for(let t=i;t<n;++t)e.appendChild(s[t].htmlElement);break}}for(let e=0,t=s.length;e<t;++e)await s[e].update();this.viewport.virtualRows&&p(i)&&(e.scrollTop=i),e.scrollLeft=t}scroll(){this.scrollQueued||(this.scrollQueued=!0,requestAnimationFrame(()=>{this.scrollQueued=!1,this.applyScroll()}))}async applyScroll(){let e=this.viewport.tbodyElement,{defaultRowHeight:t}=this,i=e.scrollTop,n=this.maxElementHeight-e.clientHeight;if(this.scrollOffset=Math.floor((n>0?i/n:0)*this.gridHeightOverflow),this.preventScroll){i<=e.scrollTop&&(this.preventScroll=!1),this.adjustBottomRowHeights();return}let s=Math.floor(e.scrollTop/t+this.scrollOffset/t);s=Math.min(s,Math.max(0,this.rowCount-1)),this.rowCursor!==s&&await this.renderRows(s),this.rowCursor=s,this.adjustRowHeights(),this.adjustRowOffsets(),this.strictRowHeights||!(i>e.scrollTop)||this.preventScroll||(e.scrollTop=i,this.preventScroll=!0)}adjustBottomRowHeights(){let e=this.viewport.rows,t=e.length;if(t<1)return;let i=e[t-1];if(!i.rendered||!i.cells.length||!i.cells[0]?.htmlElement)return;let n=i.translateY,s=n+i.htmlElement.offsetHeight,o=i.cells[0].htmlElement.offsetHeight;n=s-o,i.htmlElement.style.height=o+"px",i.setTranslateY(n);for(let e=0,t=i.cells.length;e<t;++e){let t=i.cells[e];t?.htmlElement&&(t.htmlElement.style.transform="")}for(let i=t-2;i>=0;i--){let t=e[i];if(t.rendered&&t.cells.length&&t.cells[0]?.htmlElement){n-=o=t.cells[0].htmlElement.offsetHeight,t.htmlElement.style.height=o+"px",t.setTranslateY(n);for(let e=0,i=t.cells.length;e<i;++e){let i=t.cells[e];i?.htmlElement&&(i.htmlElement.style.transform="")}}}}async renderRows(e){if(this.isRendering){this.pendingRowCursor=e;return}this.isRendering=!0;try{let{viewport:t,buffer:i}=this;await this.updateGridMetrics();let n=this.rowCount;if(0===n){if(t.rows.length){for(let e=0,i=t.rows.length;e<i;++e)t.rows[e].destroy();t.rows.length=0}t.tbodyElement.innerHTML="",this.rowCursor=0;return}let s=n-1,o=this.viewport.virtualRows;if(o&&t.grid.popups.size)for(let e of Array.from(t.grid.popups))e.anchorElement&&!e.anchorElement.isConnected&&e.hide();let r=o?Math.ceil((t.grid.tableElement?.clientHeight||0)/this.defaultRowHeight):1/0,l=t.rows;if(!o&&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 e=new t8(t,s);if(await e.init(),t.tbodyElement.appendChild(e.htmlElement),await e.render(),l.push(e),o){let t=Math.min(e.getDefaultTopOffset(),this.maxElementHeight-e.htmlElement.offsetHeight);e.setTranslateY(t)}}let a=l.length>0?l.pop():void 0;a&&a.index!==s&&(this.poolRow(a),a=void 0);let h=Math.max(0,Math.min(e-i,s-r+1)),d=Math.min(e+r+i,s-1),u=[],c=l[0]?.index,m=l[l.length-1]?.index;if(l.length>0&&p(c)&&p(m)&&!(d<c||h>m)){for(;l.length&&l[0].index<h;)this.poolRow(l.shift());for(;l.length&&l[l.length-1].index>d;)this.poolRow(l.pop());if(l.length){for(let e=l[0].index-1;e>=h;--e)l.unshift(await this.getOrCreateRow(e));let e=l[l.length-1].index+1;for(let t=e;t<=d;++t)l.push(await this.getOrCreateRow(t))}else for(let e=h;e<=d;++e)l.push(await this.getOrCreateRow(e));t.rows=l}else{for(let e=0,t=l.length;e<t;++e){let t=l[e],i=t.index;i<h||i>d?this.poolRow(t):u.push(t)}t.rows=l=u;for(let e=h;e<=d;++e){let t=l.length>0?l[0].index:h;l[e-t]||l.push(await this.getOrCreateRow(e))}l.sort((e,t)=>e.index-t.index)}for(let e=0,i=l.length;e<i;++e){let i=l[e];if(!i.rendered){if(i.htmlElement.hasAttribute("data-row-index")||await i.init(),t.tbodyElement.insertBefore(i.htmlElement,t.tbodyElement.lastChild),await i.render(),o){let e=Math.min(i.getDefaultTopOffset(),this.maxElementHeight-i.htmlElement.offsetHeight);i.setTranslateY(e)}continue}i.htmlElement.isConnected||t.tbodyElement.insertBefore(i.htmlElement,t.tbodyElement.lastChild)}if(!a&&n>0&&(a=await this.getOrCreateRow(s)),a){if(a.rendered)a.htmlElement.isConnected||t.tbodyElement.appendChild(a.htmlElement);else if(a.htmlElement.hasAttribute("data-row-index")||await a.init(),t.tbodyElement.appendChild(a.htmlElement),await a.render(),o){let e=Math.min(a.getDefaultTopOffset(),this.maxElementHeight-a.htmlElement.offsetHeight);a.setTranslateY(e)}l.push(a)}if(t.pendingFocusCursor){let[e,i]=t.pendingFocusCursor,n=l.find(t=>t.index===e),s=n?.getCellByColumnIndex(i);n&&s&&(delete t.pendingFocusCursor,t.restoreRenderedCellFocus(s,e,i),t.ensureRowFullyVisible(n))}else if(t.focusCursor){let{focusCursor:e}=t;if("header"!==e.type&&!e.bodySectionId){let i=l.find(t=>t.id===e.rowId);i&&t.restoreRenderedCellFocus(i.getCellByColumnIndex(e.columnIndex),i.index,e.columnIndex,!1)}}if((!t.focusCursor||"header"===t.focusCursor.type||!t.focusAnchorCell?.row.rendered)&&l.length>0){let i=Math.max(0,e-l[0].index),n=l[i];n?.cells[0]&&t.setFocusAnchorCell(n.cells[0])}await t.syncAriaRowIndexes(),await this.afterRenderRows?.()}finally{if(this.isRendering=!1,null!==this.pendingRowCursor){let e=this.pendingRowCursor;this.pendingRowCursor=null,await this.renderRows(e)}}}adjustRowHeights(){if(this.strictRowHeights||!this.viewport.virtualRows)return;let{rowCursor:e,defaultRowHeight:t}=this,{rows:i,tbodyElement:n}=this.viewport,s=i.length;if(s<1||!t)return;let o=i[0].getDefaultTopOffset();for(let o=0;o<s;++o){let s=i[o];if(!s.rendered||!s.cells.length||!s.cells[0]?.htmlElement){s.htmlElement.style.height=t+"px";continue}if(s.htmlElement.style.height="",s.cells[0].htmlElement.style.transform)for(let e=0,t=s.cells.length;e<t;++e){let t=s.cells[e];t?.htmlElement&&(t.htmlElement.style.transform="")}if(s.index<e){s.htmlElement.style.height=t+"px";continue}let r=s.cells[0].htmlElement.offsetHeight;if(s.htmlElement.style.height=r+"px",!(s.index>e)&&s.htmlElement.offsetHeight>t){let i=Math.floor(r-(r-t)*(n.scrollTop/t-Math.floor(e-this.scrollOffset/t)));s.htmlElement.style.height=i+"px";for(let e=0,t=s.cells.length;e<t;++e){let t=s.cells[e];t?.htmlElement&&(t.htmlElement.style.transform=`translateY(${i-r}px)`)}}}i[0].setTranslateY(o);for(let e=1,t=s-1;e<t;++e)o+=i[e-1].htmlElement.offsetHeight,i[e].setTranslateY(o);let r=i[s-1],l=i[s-2];l&&l.index===r.index-1&&r.setTranslateY(l.htmlElement.offsetHeight+o)}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(),this.viewport.virtualRows&&this.adjustRowOffsets()}}getEstimatedRowTop(e){let t=e*this.defaultRowHeight;return!this.viewport.virtualRows||this.gridHeightOverflow<=0?t:Math.floor(t-this.scrollOffset)}getEstimatedRowBottom(e,t=this.defaultRowHeight){return this.getEstimatedRowTop(e)+t}measureRenderedRowHeight(){let e=this.viewport.rows;if(e.length)for(let t=0,i=e.length;t<i;++t){let i=e[t].cells[0]?.htmlElement;if(i){let e=i.offsetHeight;return e>0?e:void 0}}}applyMeasuredRowHeight(e){let t=Math.max(1,Math.round(e));if(!t||t===this.defaultRowHeight)return!1;let i=this.defaultRowHeight;this.defaultRowHeight=t,this.totalGridHeight=this.rowCount*this.defaultRowHeight,this.gridHeightOverflow=Math.max(this.totalGridHeight-this.maxElementHeight,0);let n=this.viewport.tbodyElement;this.viewport.virtualRows&&i>0&&(n.scrollTop=n.scrollTop*t/i);let s=this.maxElementHeight-n.clientHeight,o=s>0?n.scrollTop/s:0;return this.scrollOffset=Math.floor(o*this.gridHeightOverflow),this.viewport.virtualRows&&(this.adjustRowHeights(),this.adjustRowOffsets()),!0}async getOrCreateRow(e){let t=this.viewport,i=t.virtualRows,n=this.rowPool.pop();if(n)return await n.reuse(e),i&&n.setTranslateY(n.getDefaultTopOffset()),n;let s=new t8(t,e);return s.rendered=!1,await s.init(),i&&s.setTranslateY(s.getDefaultTopOffset()),s}poolRow(e){let{focusCursor:t}=this.viewport,i=document.activeElement;t&&"header"!==t.type&&t.rowId===e.id&&i instanceof Element&&e.htmlElement.contains(i)&&this.viewport.preserveFocusDuringDetach(),e.htmlElement.remove(),this.rowPool.length<t5.MAX_POOL_SIZE?this.rowPool.push(e):e.destroy()}async getDefaultRowHeight(){let e=this.viewport,t=new t8(e,0);await t.init(),t.htmlElement.style.position="absolute",t.htmlElement.classList.add(ep.getClassName("mockedRow")),e.tbodyElement.appendChild(t.htmlElement),await t.render();let i=t.htmlElement.offsetHeight;return t.destroy(),i}async updateGridMetrics(){let e=await this.viewport.grid.dataProvider?.getRowCount();this.rowCount=p(e)?e:0,this.rowCount=this.getEffectiveRowCount?await this.getEffectiveRowCount(this.rowCount):this.rowCount,this.totalGridHeight=this.rowCount*this.defaultRowHeight,this.gridHeightOverflow=Math.max(this.totalGridHeight-this.maxElementHeight,0),this.rowCursor=Math.min(Math.max(this.rowCursor,0),Math.max(0,this.rowCount-1))}adjustRowOffsets(){let{rows:e}=this.viewport,t=e.length;if(t<2)return;let i=e[t-1],n=e[t-2],s=n&&n.index===i.index-1,o=e[0].getDefaultTopOffset();if(o=Math.floor(o-this.scrollOffset),s&&this.gridHeightOverflow>0){i.setTranslateY(this.maxElementHeight-i.htmlElement.offsetHeight);let n=this.maxElementHeight-i.htmlElement.offsetHeight;for(let i=t-2;i>=0;i--)n-=e[i].htmlElement.offsetHeight,e[i].setTranslateY(n);return}e[0].setTranslateY(o);for(let i=1,n=t-1;i<n;++i)o+=e[i-1].htmlElement.offsetHeight,e[i].setTranslateY(o);this.gridHeightOverflow>0?i.setTranslateY(this.maxElementHeight):n&&n.index===i.index-1&&i.setTranslateY(n.htmlElement.offsetHeight+o)}}t5.MAX_POOL_SIZE=100;let t9=class{constructor(e){this.columnCursor=0,this.columnEnd=-1,this.scrollQueued=!1,this.isRendering=!1,this.pendingRender=!1;const t=e.grid.options?.rendering?.columns||{};this.viewport=e,this.columnSettings=t,this.buffer=Math.max(t.bufferSize||0,0)}initialize(){let e=this.viewport;e.virtualColumns=this.shouldVirtualizeColumns(),e.tableElement.classList.toggle(ep.getClassName("columnVirtualization"),e.virtualColumns),this.updateRange(!0)}refresh(){this.updateRange()&&this.renderColumns()}scroll(){this.scrollQueued||(this.scrollQueued=!0,requestAnimationFrame(()=>{this.scrollQueued=!1,this.updateRange()&&this.renderColumns()}))}shouldVirtualizeColumns(){let{viewport:e}=this,t=e.grid.userOptions.rendering?.columns;if(p(t?.virtualization))return t.virtualization;let i=this.columnSettings.virtualizationThreshold??20;return e.columns.length>=i}updateRange(e=!1){let t=this.viewport,i=t.columns,n=0,s=i.length-1;if(t.virtualColumns){let[e,o]=t.columnLayout.getVisibleRange(t.tbodyElement.scrollLeft,t.tbodyElement.clientWidth);n=Math.max(0,e-this.buffer),s=Math.min(i.length-1,o+this.buffer)}return(!!e||n!==this.columnCursor||s!==this.columnEnd)&&(this.columnCursor=n,this.columnEnd=s,t.renderedColumns=s>=n?i.slice(n,s+1):[],!0)}async renderColumns(){if(this.isRendering){this.pendingRender=!0;return}this.isRendering=!0;try{await this.viewport.updateRenderedColumns()}finally{this.isRendering=!1,this.pendingRender&&(this.pendingRender=!1,this.updateRange()&&await this.renderColumns())}}},{makeHTMLElement:t7}=eR;class ie{constructor(e){this.isResizing=!1,this.handles=[],this.onDocumentDragMove=e=>{if(!this.draggedResizeHandle||!this.draggedColumn||"touches"in e&&e.touches[0]?.pageX===0)return;let t=ie.getPageX(e);if(void 0===t)return;ie.preventTouchDefault(e);let i=t-(this.dragStartX||0),n=this.viewport,s=n.columnResizing;s&&(s.resize(this,i),n.reflow(),y(this.draggedColumn,"afterResize",{target:this.draggedColumn,originalEvent:e}))},this.onDocumentDragEnd=()=>{this.draggedColumn?.header?.htmlElement?.classList.remove(ep.getClassName("resizedColumn")),this.draggedResizeHandle?.matches(":hover")||this.draggedResizeHandle?.classList.remove("hovered"),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.onDocumentDragMove),document.addEventListener("mouseup",this.onDocumentDragEnd),document.addEventListener("touchmove",this.onDocumentDragMove,{passive:!1}),document.addEventListener("touchend",this.onDocumentDragEnd),document.addEventListener("touchcancel",this.onDocumentDragEnd)}renderColumnDragHandles(e,t){let i=e.viewport;if(i.columnsResizer){let n=t7("div",{className:ep.getClassName("resizerHandles")},t.htmlElement);return n.setAttribute("aria-hidden",!0),i.columnsResizer?.addHandleListeners(n,e),n}}static getPageX(e){return"touches"in e?e.touches[0]?.pageX??e.changedTouches[0]?.pageX:e.pageX}static preventTouchDefault(e){"touches"in e&&e.cancelable&&e.preventDefault()}addHandleListeners(e,t){let i=i=>{let n=t.viewport,s=ie.getPageX(i);void 0!==s&&(ie.preventTouchDefault(i),this.isResizing=!0,e.classList.add("hovered"),n.reflow(),this.dragStartX=s,this.draggedColumn=t,this.draggedResizeHandle=e,this.columnStartWidth=t.getWidth(),this.nextColumnStartWidth=n.columns[t.index+1]?.getWidth(),t.header?.htmlElement.classList.add(ep.getClassName("resizedColumn")))},n=[{eventName:"mousedown",listener:i},{eventName:"touchstart",listener:i},{eventName:"mouseover",listener:()=>{this.draggedResizeHandle||e.classList.add("hovered")}},{eventName:"mouseout",listener:()=>{this.draggedResizeHandle||e.classList.remove("hovered")}}];for(let{eventName:t,listener:i}of n)e.addEventListener(t,i);this.handles.push([e,n])}removeEventListeners(){document.removeEventListener("mousemove",this.onDocumentDragMove),document.removeEventListener("mouseup",this.onDocumentDragEnd),document.removeEventListener("touchmove",this.onDocumentDragMove),document.removeEventListener("touchend",this.onDocumentDragEnd),document.removeEventListener("touchcancel",this.onDocumentDragEnd),this.clearHandles()}clearHandles(){for(let e=0,t=this.handles.length;e<t;e++){let[t,i]=this.handles[e];for(let{eventName:e,listener:n}of i)t.removeEventListener(e,n)}this.handles.length=0}removeHandle(e){for(let t=this.handles.length-1;t>=0;--t){let[i,n]=this.handles[t];if(i===e){for(let{eventName:e,listener:t}of n)i.removeEventListener(e,t);this.handles.splice(t,1);return}}}}class it{constructor(e){this.widths=[],this.offsets=[],this.totalWidth=0,this.viewport=e}reflow(){let{columns:e,columnResizing:t}=this.viewport,i=this.widths,n=this.offsets;if(delete this.cellWidthOverhead,this.viewport.grid.options?.rendering?.columns?.strictWidths){let t=this.strictColumnWidth=this.getStrictColumnWidth();i.length=0,n.length=0,this.totalWidth=e.length*t;return}if(delete this.strictColumnWidth,!t)return;i.length=e.length,n.length=e.length;let s=0;for(let o=0,r=e.length;o<r;++o){let r=t.getColumnWidth(e[o]);n[o]=s,i[o]=r,s+=r}this.totalWidth=s}getColumnWidth(e){return p(this.strictColumnWidth)?this.strictColumnWidth:this.viewport.grid.options?.rendering?.columns?.strictWidths?this.getStrictColumnWidth():this.widths[e.index]??this.viewport.columnResizing?.getColumnWidth(e)??0}getColumnLeft(e){return p(this.strictColumnWidth)?e*this.strictColumnWidth:this.offsets[e]??0}getColumnRight(e){return p(this.strictColumnWidth)?(e+1)*this.strictColumnWidth:this.getColumnLeft(e)+(this.widths[e]||0)}getVisibleRange(e,t){let{columns:i}=this.viewport,n=i.length;if(!n)return[0,-1];let s=Math.max(e,0),o=s+Math.max(t,0);if(p(this.strictColumnWidth)){let e=this.strictColumnWidth,t=Math.max(0,Math.min(Math.floor(s/e),n-1)),i=Math.max(t,Math.min(Math.floor(o/e),n-1));return[t,i]}let r=Math.max(0,Math.min(this.findColumnAt(s),n-1)),l=Math.max(r,Math.min(this.findColumnAt(o),n-1));return[r,l]}getStrictColumnWidth(){let e=this.viewport.grid.options?.columnDefaults,t=it.getViewportOptionWidth(this.viewport,e?.width)??it.STRICT_COLUMN_WIDTH;return it.fitStrictWidth(this.viewport,t,e?.minWidth,e?.maxWidth)}getCellWidthOverhead(){if(p(this.cellWidthOverhead))return this.cellWidthOverhead;let e=this.viewport.getRenderedColumns()[0],t=Math.max(ef(e?.cells[0]?.htmlElement),ef(e?.header?.htmlElement));return t&&(this.cellWidthOverhead=t),t}findColumnAt(e){let t=this.offsets,i=0,n=t.length-1,s=0;for(;i<=n;){let o=i+n>>1;t[o]<=e?(s=o,i=o+1):n=o-1}return s}static fitStrictWidth(e,t,i,n){var s;let o=Math.max(it.MIN_COLUMN_WIDTH,e.columnLayout.getCellWidthOverhead(),it.getViewportOptionWidth(e,i)??0);return s=it.getViewportOptionWidth(e,n)??1/0,t>o?t<s?t:s:o}static getViewportOptionWidth(e,t){if(!p(t)||"auto"===t)return;if("number"==typeof t)return t;let i=parseFloat(t);return t.endsWith("%")?e.getWidthFromRatio(i/100):i}}it.MIN_COLUMN_WIDTH=20,it.STRICT_COLUMN_WIDTH=100;let ii=new Set,is={},io={},ir=[];function il(e,t){ii.has(e)||(ii.add(e),console.warn(t))}function ia(e,t,i){let n=is[e];return n?!n.isVisible||n.isVisible(t)?{label:i?.label||n.getLabel(t),icon:i?.icon||n.icon,disabled:!!n.isDisabled?.(t)||!!i?.disabled,onClick:()=>{n.onClick(t)}}:void 0:void il(e,`Grid cell context menu: Unknown built-in action or group id "${e}".`)}function ih(e,t){let i=io[e];if(!i)return;if(i.isVisible&&!i.isVisible(t))return[];let n=[];for(let e of i.items){let i=ia(e,t);i&&n.push(i)}return n}let id={registerBuiltInAction:function(e,t){io[e]&&il(e,`Grid cell context menu: Built-in action id "${e}" is already registered as a group id.`),is[e]=t},registerBuiltInGroup:function(e,t,i=!1){is[e]&&il(e,`Grid cell context menu: Built-in group id "${e}" is already registered as an action id.`),io[e]=t,i&&!ir.includes(e)&&ir.push(e)},resolveCellContextMenuItems:function(e){let t=e.column?.options.cells?.contextMenu;if(t?.enabled===!1)return[];let i=function(e){let{grid:t}=e.row.viewport,i=e.row.id;return{cell:e,columnId:e.column.id,grid:t,rowId:E(i)||b(i)?i:void 0,sourceColumnId:t.columnPolicy.getColumnSourceId(e.column.id)}}(e),n=t?.items!==void 0?function e(t,i){if(!i.length)return[];let n=[];for(let s of i){if("object"==typeof s&&s&&("separator"in s&&!0===s.separator||"type"in s&&"separator"===s.type)){n.push({separator:!0,label:s.label});continue}if("string"==typeof s){let e=ih(s,t);if(e){n.push(...e);continue}let i=ia(s,t);i&&n.push(i);continue}if("submenu"===s.type){let i=e(t,s.items);i.length&&n.push({label:s.label,icon:s.icon,disabled:s.disabled,items:i});continue}if("actionId"in s){let e=ia(s.actionId,t,s);e&&n.push(e);continue}if("groupId"in s){let e=ih(s.groupId,t);e?n.push(...e):il(s.groupId,`Grid cell context menu: Unknown built-in action or group id "${s.groupId}".`);continue}let i={label:s.label,icon:s.icon,disabled:s.disabled,onClick:s.onClick};n.push(i)}return n}(i,t.items):function(e){let t=[];for(let i of ir){let n=io[i],s=ih(i,e);n&&s?.length&&t.push({definition:n,groupId:i,items:s})}return 1===t.length?t[0].items:t.map(t=>({label:t.definition.getLabel?.(e)||t.groupId,icon:t.definition.icon,items:t.items}))}(i);return n.length&&t?.enabled!==!0&&t?.items===void 0?n.some(e=>!("separator"in e)&&!e.disabled)?n:[]:n}};function iu(e){let t=e.buttons[e.focusCursor];!t||t.wrapper?.querySelector("button[disabled]")||t.click()}function ic(e,t,i){for(let n of i){if("separator"in n&&!0===n.separator){let t=e.ensureItemsContainer();if(t){let e=document.createElement("li");e.className=ep.getClassName("menuDivider"),t.appendChild(e)}continue}let i=!!n.items?.length,s=new t$({label:n.label,icon:n.icon,chevron:i,onClick:()=>{if(s&&!n.disabled){if(i){for(let t of e.buttons)t!==s&&t.popup?.isVisible&&t.popup.hide();s.popup||(s.popup=new im(e.grid,s,t,n.items)),s.popup.isVisible||s.popup.show(s.wrapper);return}n.onClick?.call(t,t),function(e){let t=e;for(;t;){let e=t instanceof im?t.openerButton?.contextMenu:void 0;t.hide(),t=e}}(e)}}}).add(e);s&&n.disabled&&s.wrapper?.querySelector("button")?.setAttribute("disabled","")}}class im extends tq{constructor(e,t,i,n){super(e,t,{nextToAnchor:!0}),this.cell=i,this.items=n,this.openerButton=t}renderContent(){ic(this,this.cell,this.items)}onKeyDown(e){if("ArrowRight"===e.key){e.preventDefault(),iu(this);return}if("ArrowLeft"===e.key){e.preventDefault(),this.hide(),this.openerButton.focus();return}super.onKeyDown(e)}}let ip=class extends tq{showAt(e,t,i){let n=this.grid.contentWrapper;if(!n)return;this.cell=e,this.removeCellOutdateListener?.(),this.removeCellOutdateListener=u(e,"outdate",()=>{this.hide(),delete this.cell});let s=n.getBoundingClientRect();this.cursorAnchorElement=document.createElement("div"),this.cursorAnchorElement.style.position="absolute",this.cursorAnchorElement.style.left=t-s.left+"px",this.cursorAnchorElement.style.top=i-s.top+"px",this.cursorAnchorElement.style.width="0px",this.cursorAnchorElement.style.height="0px",this.cursorAnchorElement.style.pointerEvents="none",n.appendChild(this.cursorAnchorElement),super.show(this.cursorAnchorElement)}hide(){super.hide(),this.cursorAnchorElement?.remove(),this.removeCellOutdateListener?.(),delete this.cursorAnchorElement,delete this.removeCellOutdateListener}renderContent(){let{cell:e}=this;if(!e)return;let t=id.resolveCellContextMenuItems(e);ic(this,e,t)}onKeyDown(e){if("ArrowRight"===e.key){e.preventDefault(),iu(this);return}"ArrowLeft"===e.key?e.preventDefault():super.onKeyDown(e)}},{win:ig,isIos:iy}=ep;class iw{constructor(e){this.onTouchStart=e=>{let t=e.target;if(1!==e.touches.length||t instanceof Element&&(t.closest("input,select,textarea,button,option")||t.closest("."+ep.getClassName("cellEditingContainer"))))return void this.cancelLongPress();let i=this.host.getTableCellFromTarget(e.target);if(!i||this.host.isCellInEditMode(i)||!id.resolveCellContextMenuItems(i).length)return void this.cancelLongPress();let n=e.touches[0],s=i.htmlElement;this.cancelLongPress(),s.style.setProperty("-webkit-touch-callout","none"),s.style.setProperty("-webkit-user-select","none"),s.style.setProperty("user-select","none");let o=ig.setTimeout(()=>{this.state&&this.state.timer===o&&(this.state.timer=0,this.host.openCellContextMenu(this.state.cell,this.state.clientX,this.state.clientY))},500);this.state={timer:o,cell:i,clientX:n.clientX,clientY:n.clientY,touchCalloutTarget:s}},this.onTouchMove=e=>{let t=this.state;if(!t||!e.touches.length)return;let i=e.touches[0],n=i.clientX-t.clientX,s=i.clientY-t.clientY;n*n+s*s>100&&this.cancelLongPress()},this.onTouchEnd=()=>{this.cancelLongPress()},this.host=e}addEvents(e){iy&&!this.eventsTarget&&(this.eventsTarget=e,e.addEventListener("touchstart",this.onTouchStart,{passive:!0}),e.addEventListener("touchmove",this.onTouchMove,{passive:!0}),e.addEventListener("touchend",this.onTouchEnd),e.addEventListener("touchcancel",this.onTouchEnd))}removeEvents(){let e=this.eventsTarget;e&&(e.removeEventListener("touchstart",this.onTouchStart),e.removeEventListener("touchmove",this.onTouchMove),e.removeEventListener("touchend",this.onTouchEnd),e.removeEventListener("touchcancel",this.onTouchEnd),this.state&&e.contains(this.state.cell.htmlElement)&&this.cancelLongPress(),delete this.eventsTarget)}cancelLongPress(){let e=this.state;e&&(e.timer&&ig.clearTimeout(e.timer),e.touchCalloutTarget.style.removeProperty("-webkit-touch-callout"),e.touchCalloutTarget.style.removeProperty("-webkit-user-select"),e.touchCalloutTarget.style.removeProperty("user-select"),delete this.state)}}let{makeHTMLElement:iC,applyUserClassNames:iv}=eR,ib=class{constructor(e,t){this.columns=[],this.columnsById={},this.renderedColumns=[],this.rows=[],this.bodySections=[],this.virtualRows=!0,this.virtualColumns=!1,this.afterUpdateRowsHooks=[],this.tbodyMinHeightManaged=!1,this.onTBodyFocus=e=>{e.preventDefault(),this.getRenderedRows()[0]?.cells[0]?.htmlElement.focus()},this.onResize=()=>{this.reflow()},this.onScroll=()=>{this.virtualRows&&this.rowsVirtualizer.scroll(),this.virtualColumns&&this.columnsVirtualizer.scroll(),this.header?.scrollHorizontally(this.tbodyElement.scrollLeft),y(this,"bodyScroll",{scrollLeft:this.tbodyElement.scrollLeft,scrollTop:this.tbodyElement.scrollTop})},this.onHeaderWheel=e=>{if(e.ctrlKey)return;let t=this.tbodyElement,i=e.deltaX,n=e.deltaY;if(e.shiftKey&&!i&&(i=n,n=0),!i&&!n)return;e.deltaMode===WheelEvent.DOM_DELTA_LINE?(i*=this.rowsVirtualizer.defaultRowHeight,n*=this.rowsVirtualizer.defaultRowHeight):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(i*=t.clientWidth,n*=t.clientHeight);let s=Math.max(t.scrollWidth-t.clientWidth,0),o=Math.max(t.scrollHeight-t.clientHeight,0),r=Math.max(0,Math.min(t.scrollLeft+i,s)),l=Math.max(0,Math.min(t.scrollTop+n,o));(r!==t.scrollLeft||l!==t.scrollTop)&&(e.preventDefault(),t.scrollLeft=r,t.scrollTop=l)},this.onDocumentFocusIn=e=>{if(!this.focusCursor?.detached)return;let t=e.target,i=t instanceof Node&&this.tableElement.contains(t);this.clearDetachedFocus(!i)},this.onDocumentPointerDown=e=>{if(!this.focusCursor?.detached)return;let t=e.target;t instanceof Node&&this.tableElement.contains(t)||this.clearDetachedFocus(!0)},this.onCellClick=e=>{let t=this.getCellFromElement(e.target);t&&t.onClick(e)},this.onCellDblClick=e=>{let t=this.getCellFromElement(e.target);t&&"onDblClick"in t&&t.onDblClick(e)},this.onCellContextMenu=e=>{let t=this.getTableCellFromTarget(e.target);t&&this.openCellContextMenu(t,e.clientX,e.clientY)&&e.preventDefault()},this.onCellMouseDown=e=>{let t=this.getCellFromElement(e.target);t&&"onMouseDown"in t&&t.onMouseDown(e)},this.onCellMouseOver=e=>{let t=this.getCellFromElement(e.target);t&&t.onMouseOver()},this.onCellMouseOut=e=>{let t=this.getCellFromElement(e.target);t&&t.onMouseOut()},this.onCellKeyDown=e=>{let t=this.getCellFromElement(e.target);if(t){if(("ContextMenu"===e.key||"F10"===e.key&&e.shiftKey)&&"column"in t&&"row"in t){let i=t.htmlElement.getBoundingClientRect();if(this.openCellContextMenu(t,i.left+4,i.bottom-2)){e.preventDefault(),e.stopPropagation();return}}t.onKeyDown(e)}},this.grid=e,this.tableElement=t,this.columnLayout=new it(this),e.options?.rendering?.columns?.strictWidths||(this.columnResizing=eL.initMode(this)),e.options?.rendering?.header?.enabled&&(this.theadElement=iC("thead",{},t)),this.tbodyElement=iC("tbody",{},t),this.rowsVirtualizer=new t5(this),this.columnsVirtualizer=new t9(this),y(this,"beforeInit"),this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(t),this.tbodyElement.addEventListener("scroll",this.onScroll),this.theadElement?.addEventListener("wheel",this.onHeaderWheel,{passive:!1}),this.addBodyEventListeners(this.tbodyElement),this.isContextMenuLongPressed()&&this.cellContextMenuLongPress.addEvents(this.tableElement),document.addEventListener("focusin",this.onDocumentFocusIn,!0),document.addEventListener("pointerdown",this.onDocumentPointerDown,!0)}async init(){try{this.grid.showLoading();let{tableElement:e}=this,t=this.grid.options?.rendering,i=t?.table?.className;this.virtualRows=await this.shouldVirtualizeRows(),this.virtualRows&&e.classList.add(ep.getClassName("virtualization")),!t?.columns?.strictWidths&&t?.columns?.resizing?.enabled&&(this.columnsResizer=new ie(this)),i&&iv(e,void 0,i),e.classList.add(ep.getClassName("scrollableContent")),await this.loadColumns(),this.reflowColumns(),this.columnsVirtualizer.initialize(),this.setTbodyMinHeight(),this.grid.options?.rendering?.header?.enabled&&(this.header=new t6(this),await this.header.render()),this.reflowColumns(),await this.rowsVirtualizer.initialRender()}finally{y(this,"afterInit"),this.reflow(),this.grid.hideLoading()}}addBodyEventListeners(e){e.addEventListener("focus",this.onTBodyFocus),e.addEventListener("click",this.onCellClick),e.addEventListener("dblclick",this.onCellDblClick),e.addEventListener("contextmenu",this.onCellContextMenu),e.addEventListener("mousedown",this.onCellMouseDown),e.addEventListener("mouseover",this.onCellMouseOver),e.addEventListener("mouseout",this.onCellMouseOut),e.addEventListener("keydown",this.onCellKeyDown)}removeBodyEventListeners(e){e.removeEventListener("focus",this.onTBodyFocus),e.removeEventListener("click",this.onCellClick),e.removeEventListener("dblclick",this.onCellDblClick),e.removeEventListener("contextmenu",this.onCellContextMenu),e.removeEventListener("mousedown",this.onCellMouseDown),e.removeEventListener("mouseover",this.onCellMouseOver),e.removeEventListener("mouseout",this.onCellMouseOut),e.removeEventListener("keydown",this.onCellKeyDown)}isContextMenuLongPressed(){return!!ep.isIos&&(this.cellContextMenuLongPress||(this.cellContextMenuLongPress=new iw({getTableCellFromTarget:e=>this.getTableCellFromTarget(e),openCellContextMenu:(e,t,i)=>this.openCellContextMenu(e,t,i),isCellInEditMode:e=>this.cellEditing?.editedCell===e})),!0)}getTableCellFromTarget(e){let t=this.getCellFromElement(e);if(t&&"column"in t&&"row"in t)return t}registerBodySection(e){this.unregisterBodySection(e.id),this.bodySections.push(e),this.addBodyEventListeners(e.tbodyElement)}unregisterBodySection(e){let t=this.bodySections.findIndex(t=>t.id===e);t<0||(this.removeBodyEventListeners(this.bodySections[t].tbodyElement),this.bodySections.splice(t,1))}setTbodyMinHeight(){let{options:e}=this.grid,t=e?.rendering?.rows?.minVisibleRows,i=this.tbodyElement;if(!p(t)){this.tbodyMinHeightManaged&&(i.style.minHeight="",this.tbodyMinHeightManaged=!1);return}let n=!!w(i,"min-height",!0);if(!this.tbodyMinHeightManaged&&n)return;let s=Math.max(0,t-this.bodySections.reduce((e,t)=>e+t.getRows().length,0));i.style.minHeight=s*this.rowsVirtualizer.defaultRowHeight+"px",this.tbodyMinHeightManaged=!0}async shouldVirtualizeRows(){let{grid:e}=this,t=e.userOptions.rendering?.rows;if(p(t?.virtualization))return t.virtualization;let i=await this.grid.dataProvider?.getRowCount()??0,n=t?.virtualizationThreshold??50;return e.pagination?e.querying.pagination.currentPageSize>=n:i>=n}async loadColumns(){let e,{enabledColumns:t}=this.grid;if(t){for(let i=0,n=t.length;i<n;++i){let n=new tO(this,e=t[i],i);await n.init(),this.columns.push(n),this.columnsById[e]=n}this.columnResizing?.loadColumns()}}async updateRows(){let{dataProvider:e}=this.grid;if(!e)return;let{focusCursor:t}=this;try{this.grid.showLoading();let i=this.rows.length>0?(this.rows[this.rows.length-1]?.index??-1)+1:0;for(let e of(await this.grid.querying.proceed(),this.grid.querying.pagination.clampPage(),this.grid.querying.shouldBeUpdated&&await this.grid.querying.proceed(),this.columns))e.loadData();let n=await this.shouldVirtualizeRows(),s=!1;this.virtualRows!==n&&(this.virtualRows=n,this.tableElement.classList.toggle(ep.getClassName("virtualization"),n),s=!0);let o=await e.getRowCount();if(s)await this.rowsVirtualizer.rerender();else if(i!==o)await this.rowsVirtualizer.refreshRows();else{let e=[...this.rows];for(let t=0,i=e.length;t<i;++t)await e[t].update()}for(let e of this.afterUpdateRowsHooks)await e();this.grid.pagination?.updateControls(),this.reflow(),t&&this.focusCellFromCursor(t,!0)}finally{this.grid.hideLoading()}this.grid.dirtyFlags.delete("rows")}reflow(){this.reflowColumns(),this.columnsVirtualizer.refresh(),this.header?.reflow(),this.rowsVirtualizer.reflowRows();let e=this.rowsVirtualizer.measureRenderedRowHeight();p(e)&&this.rowsVirtualizer.applyMeasuredRowHeight(e),this.setTbodyMinHeight(),this.grid.pagination?.reflow(),this.grid.popups.forEach(e=>{e.reflow()}),this.grid.dirtyFlags.delete("reflow"),y(this,"afterReflow")}reflowColumns(){let e=this.columnResizing;e?e.reflow():(this.columnLayout.reflow(),this.rowsWidth=this.columnLayout.totalWidth)}openCellContextMenu(e,t,i){let n=e.column?.options.cells?.contextMenu;if(n?.enabled===!1||!id.resolveCellContextMenuItems(e).length)return!1;for(let e of(this.cellContextMenu||(this.cellContextMenu=new ip(this.grid)),Array.from(this.grid.popups)))e!==this.cellContextMenu&&e.hide();return this.cellContextMenu.isVisible&&this.cellContextMenu.hide(),this.cellContextMenu.showAt(e,t,i),!0}scrollToRow(e){let t=this.getViewportTopInset();if(this.virtualRows){this.tbodyElement.scrollTop=Math.max(0,e*this.rowsVirtualizer.defaultRowHeight-t);return}let i="."+ep.getClassName("rowElement"),n=this.tbodyElement.querySelectorAll(i),s=n[0],o=Math.min(Math.max(0,e),Math.max(0,n.length-1)),r=n[o];if(!s||!r)return;let l=s.getBoundingClientRect().top;this.tbodyElement.scrollTop=Math.max(0,r.getBoundingClientRect().top-l-t)}scrollToColumn(e){this.ensureColumnFullyVisible(e)}ensureColumnFullyVisible(e){let t=this.getColumnByIndex(e);if(!t)return;let i=this.columnLayout.getColumnLeft(t.index),n=this.columnLayout.getColumnRight(t.index),{tbodyElement:s}=this,o=s.scrollLeft,r=o+s.clientWidth,l=o;i<o?l=i:n>r&&(l=Math.max(0,n-s.clientWidth)),l!==o&&(s.scrollLeft=l,this.header?.scrollHorizontally(s.scrollLeft))}getViewportTopInset(){let e={top:0};return y(this,"getViewportTopInset",e),e.top}ensureRowFullyVisible(e){if(!e.htmlElement.isConnected||e.htmlElement.parentElement!==this.tbodyElement)return;let t=this.tbodyElement.getBoundingClientRect(),i=e.htmlElement.getBoundingClientRect(),n=t.top+this.getViewportTopInset(),s=t.bottom,o=Math.max(s-n,0),r=Math.max(this.tbodyElement.scrollHeight-this.tbodyElement.clientHeight,0),l=this.tbodyElement.scrollTop;i.top<n?l-=n-i.top:i.bottom>s&&(i.height>=o?l+=i.top-n:l+=i.bottom-s),this.tbodyElement.scrollTop=Math.max(0,Math.min(l,r))}focusCellByRowIndex(e,t){if(t<0||t>=this.columns.length||e<0||e>=this.rowsVirtualizer.rowCount)return;let i=this.rows.find(t=>t.index===e);if(!this.isColumnRendered(t)){this.pendingFocusCursor=[e,t],this.scrollToColumn(t),this.scrollToRow(e);return}let n=i?.getCellByColumnIndex(t);if(n){delete this.pendingFocusCursor,this.clearDetachedFocus(),n.htmlElement.focus({preventScroll:!0}),this.ensureColumnFullyVisible(t),i?.htmlElement.parentElement===this.tbodyElement&&this.ensureRowFullyVisible(i);return}this.pendingFocusCursor=[e,t],this.scrollToRow(e)}preserveFocusDuringDetach(e){e?this.focusCursor={...e,detached:!0}:this.focusCursor&&(this.focusCursor.detached=!0)}hasDetachedFocusAt(e,t){let{focusCursor:i}=this;return!!(void 0!==e&&i&&i.detached&&"header"!==i.type&&i.rowId===e&&i.columnIndex===t)}clearDetachedFocus(e=!1){e?delete this.focusCursor:this.focusCursor&&delete this.focusCursor.detached}restoreRenderedCellFocus(e,t,i,n=!0){e&&y(this,"beforeRestoreCellFocus",{cell:e,columnIndex:i,rowIndex:t},()=>{this.clearDetachedFocus(),e.htmlElement.focus({preventScroll:!0}),n&&this.ensureColumnFullyVisible(i)})}getRatioFromWidth(e){return e/this.tbodyElement.clientWidth}getWidthFromRatio(e){return this.tbodyElement.clientWidth*e}getCellFromElement(e){let t;if(!(e instanceof Element))return;let i=e.closest("."+ep.getClassName("cell"));if(!i)return;let n=i.parentElement;if(!n)return;let s=n.parentElement;if(!s)return;if(s===this.tbodyElement){let e=n.getAttribute("data-row-index");if(null===e)return;let i=parseInt(e,10);t=this.getRenderedRowByIndex(i)}else t=this.bodySections.find(e=>e.tbodyElement===s)?.getRowByElement(n);if(!t)return;let o=Array.prototype.indexOf.call(n.children,i);return t.cells[o]}destroy(){for(let e of(this.tbodyElement.removeEventListener("scroll",this.onScroll),this.theadElement?.removeEventListener("wheel",this.onHeaderWheel),document.removeEventListener("focusin",this.onDocumentFocusIn,!0),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!0),this.removeBodyEventListeners(this.tbodyElement),this.bodySections))this.removeBodyEventListeners(e.tbodyElement);this.bodySections.length=0,this.resizeObserver.disconnect(),this.columnsResizer?.removeEventListeners(),this.header?.destroy(),this.cellContextMenu?.hide(),delete this.cellContextMenu,this.cellContextMenuLongPress?.removeEvents(),delete this.cellContextMenuLongPress;for(let e=0,t=this.rows.length;e<t;++e)this.rows[e]?.destroy();y(this,"afterDestroy")}getStateMeta(){return{scrollTop:this.tbodyElement.scrollTop,scrollLeft:this.tbodyElement.scrollLeft,columnResizing:this.columnResizing,focusCursor:this.focusCursor}}applyStateMeta(e){this.tbodyElement.scrollTop=e.scrollTop,this.tbodyElement.scrollLeft=e.scrollLeft,this.columnsVirtualizer.refresh(),this.header?.scrollHorizontally(e.scrollLeft),y(this,"bodyScroll",{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),e.focusCursor&&this.focusCellFromCursor(e.focusCursor)}setFocusAnchorCell(e){this.focusAnchorCell?.htmlElement.setAttribute("tabindex","-1"),this.focusAnchorCell=e,this.focusAnchorCell.htmlElement.setAttribute("tabindex","0")}getColumn(e){return this.columnsById[e]}getColumnByIndex(e){return this.columns[e]}getRenderedColumns(){return this.renderedColumns.length||this.virtualColumns?this.renderedColumns:this.columns}isColumnRendered(e){let t="number"==typeof e?this.getColumnByIndex(e):this.getColumn(e);return!!t&&(!this.virtualColumns||t.index>=this.columnsVirtualizer.columnCursor&&t.index<=this.columnsVirtualizer.columnEnd)}getRenderedColumnOffset(){return this.virtualColumns?this.columnLayout.getColumnLeft(this.columnsVirtualizer.columnCursor):0}async updateRenderedColumns(){for(let e of this.getRenderedRows())e.rendered&&await e.syncRenderedCells();this.grid.options?.rendering?.header?.enabled&&(this.header?await this.header.syncRenderedColumns():(this.header=new t6(this),await this.header.render())),this.header?.scrollHorizontally(this.tbodyElement.scrollLeft),this.header?.reflow(),this.rowsVirtualizer.reflowRows();let{focusCursor:e}=this;if(e?.detached&&"header"===e.type&&this.restoreHeaderFocusFromCursor(e,!1),this.pendingFocusCursor){let[e,t]=this.pendingFocusCursor,i=this.getRenderedRowByIndex(e),n=i?.getCellByColumnIndex(t);n&&(delete this.pendingFocusCursor,this.restoreRenderedCellFocus(n,e,t))}else if(e&&"header"!==e.type&&!e.bodySectionId){let t=await this.grid.dataProvider?.getRowIndex(e.rowId),i=p(t)?this.getRenderedRowByIndex(t):void 0;p(t)&&this.restoreRenderedCellFocus(i?.getCellByColumnIndex(e.columnIndex),t,e.columnIndex,!1)}}getRow(e){return this.rows.find(t=>t.id===e)||this.getRenderedRows().find(t=>t.id===e)}getRenderedRows(){return[...[].concat(...this.bodySections.filter(e=>"before"===e.position).map(e=>e.getRows())),...this.rows,...[].concat(...this.bodySections.filter(e=>"after"===e.position).map(e=>e.getRows()))]}getRenderedRowByIndex(e){return this.rows.find(t=>t.index===e)}async syncAriaRowIndexes(){let e=this.header?.rows.length??0,t=this.getRenderedRows();for(let i=0,n=t.length;i<n;++i)this.grid.accessibility?.setRowIndex(t[i].htmlElement,i+e+1);let i=await this.grid.dataProvider?.getRowCount()||0,n=this.grid.tableElement;n&&n.setAttribute("aria-rowcount",i+this.bodySections.reduce((e,t)=>e+t.getRows().length,0)+e+"")}focusCellFromCursor(e,t=!1){let i=()=>{"header"===e.type?this.restoreHeaderFocusFromCursor(e):e.bodySectionId?this.bodySections.find(t=>t.id===e.bodySectionId)?.getRowById(e.rowId)?.getCellByColumnIndex(e.columnIndex)?.htmlElement.focus():this.grid.dataProvider?.getRowIndex(e.rowId).then(i=>{if(void 0===i)return;if(t)return void this.focusCellByRowIndex(i,e.columnIndex);let n=this.getRenderedRowByIndex(i);this.restoreRenderedCellFocus(n?.getCellByColumnIndex(e.columnIndex),i,e.columnIndex)})};t?setTimeout(i):i()}restoreHeaderFocusFromCursor(e=this.focusCursor,t=!0){if(e?.type!=="header")return;let i=this.header?this.header.rows.length+(e.rowIndex||0):-1,n=this.header?.rows[i]?.getCellByKey(e.cellKey);if(n){if(this.clearDetachedFocus(!0),void 0!==e.toolbarButtonIndex){let i=n.toolbar?.buttons[e.toolbarButtonIndex];if(i){i.focus({preventScroll:!0}),t&&this.ensureColumnFullyVisible(e.columnIndex);return}}n.htmlElement.focus({preventScroll:!0}),t&&this.ensureColumnFullyVisible(e.columnIndex)}}};class iE extends eA{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?iE.ascending:iE.descending}constructor(e){super(),this.options=M(iE.defaultOptions,e)}getRowReferences(e){let t=e.getRows(),i=[];for(let e=0,n=t.length;e<n;++e)i.push({index:e,row:t[e]});return i}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=e.getColumnIds(),n=e.getRowCount(),s=this.getRowReferences(e),{direction:o,orderInColumn:r,compare:l}=this.options,a=e.getModified(),h="columns"in this.options?this.options.columns:[this.options.orderByColumn],d=[];for(let e=0,t=h.length;e<t;++e){let t=h[e],n="string"==typeof t,s=n?t:t.column,r=i.indexOf(s);-1!==r&&d.push({columnIndex:r,compare:iE.compareFactory(n?o:t.direction||o,n?l:t.compare||l)})}if(d.length&&s.sort((e,t)=>{for(let i=0,n=d.length;i<n;++i){let{columnIndex:n,compare:s}=d[i],o=s(e.row[n],t.row[n]);if(o)return o}return e.index-t.index}),r){let e=[];for(let t=0;t<n;++t)e[s[t].index]=t;a.setColumns({[r]:e})}else{let t,i=[],o=[];for(let r=0;r<n;++r)t=s[r],i.push(e.getOriginalRowIndex(t.index)),o.push(t.row);a.setRows(o,0),a.setOriginalRowIndexes(i)}return this.emit({type:"afterModify",detail:t,table:e}),e}}function ix(e,t){return(e||0)<(t||0)?-1:+((e||0)>(t||0))}function iR(e,t){return(t||0)<(e||0)?-1:+((t||0)>(e||0))}iE.defaultOptions={type:"Sort",direction:"desc",orderByColumn:"y"},eA.registerType("Sort",iE);class iT{constructor(e){this.querying=e}setSorting(e,t){if(Array.isArray(e)){let t=e.filter(e=>!!(e.columnId&&e.order)).map(e=>({columnId:e.columnId,order:e.order})),i=this.currentSortings||[];iT.sortingsEqual(t,i)||(this.querying.shouldBeUpdated=!0,this.currentSortings=t,this.currentSorting=t[0]||{order:null}),this.modifier=this.createModifier();return}(this.currentSorting?.columnId!==t||this.currentSorting?.order!==e)&&(this.querying.shouldBeUpdated=!0,this.currentSorting={columnId:t,order:e},this.currentSortings=e&&t?[{columnId:t,order:e}]:[]),this.modifier=this.createModifier()}static sortingsEqual(e,t){if(e.length!==t.length)return!1;for(let i=0,n=e.length;i<n;++i)if(e[i].columnId!==t[i].columnId||e[i].order!==t[i].order)return!1;return!0}getSortingOptions(){let e=this.querying.grid.columnPolicy,t=e.getColumnIds(),i=[];for(let n=0,s=t.length;n<s;++n){let s=t[n];if(e.isColumnUnbound(s))continue;let o=e.getIndividualColumnOptions(s)||{},r=o.sorting?.order;r&&i.push({columnId:s,order:r,priority:o.sorting?.priority,index:n})}return i.some(e=>"number"==typeof e.priority)?i.sort((e,t)=>{let i="number"==typeof e.priority?e.priority:1/0,n="number"==typeof t.priority?t.priority:1/0;return i!==n?i-n:e.index-t.index}):i.reverse(),i.map(e=>({columnId:e.columnId,order:e.order}))}loadOptions(){let e=this.getSortingOptions();iT.sortingsEqual(e,this.currentSortings||[])||this.setSorting(e)}createModifier(){let e=function(e,t,i){let n=e.columnPolicy,s=e.options?.columnDefaults?.sorting?.compare,o=(t||(i?[i]:[])).filter(e=>!!(e.columnId&&e.order&&!n.isColumnUnbound(e.columnId))),r=[];for(let e=0,t=o.length;e<t;++e){let t=o[e],i=n.getColumnSourceId(t.columnId);if(!i)continue;let l=n.getIndividualColumnOptions(t.columnId)?.sorting?.compare||s;r.push({columnId:t.columnId,compare:function(e,t){return t?"desc"===e?(e,i)=>-t(e,i):t:"asc"===e?ix:iR}(t.order,l),customCompare:l,order:t.order,sourceColumnId:i})}return r}(this.querying.grid,this.currentSortings,this.currentSorting);if(e.length)return new iE({direction:e[0].order,columns:e.map(e=>({column:e.sourceColumnId,direction:e.order,compare:e.customCompare}))})}}class iM extends eA{constructor(e){super(),this.options=M(iM.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let{start:i,end:n}=this.options;i=Math.max(0,i||0);let s=Math.max((n=Math.min(n||1/0,e.getRowCount()))-i,0),o=e.getModified();return o.deleteRows(),o.setRows(e.getRows(i,s)),o.setOriginalRowIndexes(Array.from({length:s},(t,n)=>e.getOriginalRowIndex(i+n))),this.emit({type:"afterModify",detail:t,table:e}),e}}iM.defaultOptions={type:"Range",start:0,end:1/0},eA.registerType("Range",iM);let iS=class{constructor(e){this.currentPage=1,this.currentPageSize=10,this.querying=e,this.enabled=!!e.grid.options?.pagination?.enabled}get totalItems(){return this.totalItemsCount??0}get totalPages(){return Math.max(1,this.currentPageSize>0?Math.ceil(this.totalItems/this.currentPageSize):1)}clampPage(){if(void 0===this.totalItemsCount)return;let e=Math.max(1,Math.min(this.currentPage,this.totalPages||1));this.currentPage!==e&&(this.currentPage=e,this.querying.shouldBeUpdated=!0)}setPage(e){this.currentPage=e,this.clampPage(),this.querying.shouldBeUpdated=!0}setPageSize(e){this.currentPageSize=e,this.querying.shouldBeUpdated=!0}loadOptions(){let e=this.querying.grid.options?.pagination||{};!e.enabled===this.enabled&&(this.enabled=!!e.enabled,this.querying.shouldBeUpdated=!0),this.currentPageSize!==e.pageSize&&this.setPageSize(e.pageSize??this.currentPageSize),this.currentPage!==e.page&&this.setPage(e.page??this.currentPage)}createModifier(e=e3(this.querying.grid.dataProvider)&&this.querying.grid.dataProvider.getDataTable()?.rowCount||0){if(!this.enabled)return;let t=this.currentPage,i=this.currentPageSize,n=(t-1)*i,s=Math.min(n+i,e);return this.totalItemsCount=e,new iM({start:n,end:s})}},iO=class{constructor(e){this.shouldBeUpdated=!1,this.grid=e,this.filtering=new e5(this),this.sorting=new iT(this),this.pagination=new iS(this)}async proceed(e=!1){(e||this.shouldBeUpdated)&&await this.modifyData()}loadOptions(){this.filtering.loadOptions(),this.sorting.loadOptions(),this.pagination.loadOptions()}willNotModify(){return!this.sorting.modifier&&!this.filtering.modifier}getGroupedModifiers(){let e=[];return this.sorting.modifier&&e.push(this.sorting.modifier),this.filtering.modifier&&e.push(this.filtering.modifier),e}async modifyData(){let e=this.grid.dataProvider;e&&(await e.applyQuery(),this.shouldBeUpdated=!1)}};class iI{static grid(e,t,i){return i?new Promise(i=>{new iI(e,t,e=>{i(e)})}):new iI(e,t)}constructor(e,t,i){this.columnPolicy=new tb,this.userOptions={},this.initialContainerHeight=0,this.popups=new Set,this.isRendered=!1,this.dirtyFlags=new Set,this.rowMeta=new Map,this.redrawQueue=Promise.resolve(),this.renderTo=e,this.loadUserOptions(t),this.id=this.options?.id||F(),this.querying=new iO(this),this.locale=this.options?.lang?.locale||this.container?.closest("[lang]")?.lang,this.time=new K(f(this.options?.time,{locale:this.locale}),this.options?.lang),y(this,"beforeLoad"),iI.grids.push(this),this.render().then(()=>{i?.(this),y(this,"afterLoad")})}initAccessibility(){this.accessibility?.destroy(),delete this.accessibility,this.options?.accessibility?.enabled&&(this.accessibility=new tv(this))}initPagination(){this.pagination?.destroy(),delete this.pagination,this.options?.pagination?.enabled&&(this.pagination=new td(this))}initContainer(e){let t="string"==typeof e?ep.win.document.getElementById(e):e;if(!t)throw Error("Rendering div not found. It is unable to find the HTML element to render the Grid in.");this.container=t,this.container.style.minHeight="0px",this.container.innerHTML=U.emptyHTML,this.contentWrapper=eg("div",{className:ep.getClassName("container")},this.container)}loadUserOptions(e,t=!1){e7(e=M(e));let i={},n=(e.data?.autogenerateColumns??this.userOptions.data?.autogenerateColumns??this.options?.data?.autogenerateColumns)===!1;return e.columns&&(t?i.columns=this.setColumnOptionsOneToOne(e.columns,n):i.columns=this.setColumnOptions(e.columns,!1,n),delete e.columns),i.columns&&Object.keys(i.columns).length<1&&delete i.columns,M(!0,i,g(e,this.userOptions)),this.userOptions=M(this.userOptions,e),this.options=M(this.options??tu,this.userOptions),this.columnPolicy.setColumnDefaults(this.options?.columnDefaults),this.viewport?.columns.forEach(e=>{e.options=eC(this.columnPolicy.getIndividualColumnOptions(e.id)??{},this.options?.columnDefaults)}),i}reloadColumnOptions(){let e=this.userOptions.columns;if(!e)return void this.columnPolicy.clearColumnOptions();if(e.length<1){delete this.userOptions.columns,this.columnPolicy.clearColumnOptions();return}let t={};for(let i=0,n=e.length;i<n;++i)t[e[i].id]={index:i,options:e[i]};this.columnPolicy.setColumnOptionsMap(t)}async refreshAvailableSourceColumnIds(){this.columnPolicy.setAvailableSourceColumnIds(await this.dataProvider?.getColumnIds()||[])}setColumnOptions(e,t=!1,i=!1){let n={};this.userOptions.columns||(this.userOptions.columns=this.options?.columns??[]);let s=this.userOptions.columns;for(let o=0,r=e.length;o<r;++o){let r,l=e[o];if(!l)continue;let a=this.columnPolicy.getColumnOptionIndex(l.id)??-1;if(Object.keys(l).length<2){if(i&&-1===a){s.push(l);continue}t&&-1!==a&&(n[l.id]=g(s[a],{id:l.id},!0),s.splice(a,1));continue}if(-1===a)r=M(l),s.push(l);else if(t){let e=s[a];r=M(g(e,l,!0),g(l,e)),s[a]=l}else{let e=s[a];r=g(l,e),M(!0,e,l)}delete r.id,Object.keys(r).length>0&&(n[l.id]=r)}return this.reloadColumnOptions(),n}setColumnOptionsOneToOne(e,t=!1){let i,n=this.userOptions.columns,s=[],o={};for(let r=0,l=e.length;r<l;++r){let l=e[r],a=n?.findIndex(e=>e.id===l.id);void 0!==a&&-1!==a&&(i=n?.[a]);let h=g(l,i??{});Object.keys(h).length>0&&(delete h.id,o[l.id]=h);let d=M(i??{},l);(t||Object.keys(d).length>1)&&s.push(d)}return this.userOptions.columns=s,this.reloadColumnOptions(),o}update(e={},t=!0,i=!1){y(this,"beforeUpdate",{scope:"grid",options:e,redraw:t,oneToOne:i});let{viewport:n}=this,s=this.loadUserOptions(e,i),o=this.dirtyFlags;if(n){if(y(this,"processUpdateDiff",{diff:s,flags:o}),!this.dataProvider||"data"in s||"dataTable"in s){if(s.dataTable&&this.options?.dataTable&&this.options?.data?.providerType==="local"){let e=this.options.dataTable;this.options.data.dataTable="clone"in e?e:new ez(e)}this.loadDataProvider(),o.add("grid")}if("columns"in s){for(let e of Object.keys(s.columns??{}))this.loadColumnOptionDiffs(n,e,s.columns?.[e]),delete s.columns?.[e];delete s.columns}if("columnDefaults"in s&&(this.loadColumnOptionDiffs(n,null,s.columnDefaults),delete s.columnDefaults),s.lang){let e=s.lang;"locale"in e&&(this.locale=e.locale,this.time.update({locale:this.locale})),delete e.locale,Object.keys(e).length>0&&o.add("grid")}if(delete s.lang,"time"in s&&(this.time.update(s.time),delete s.time),s.pagination){let e=s.pagination;"enabled"in e&&!this.pagination&&e.enabled&&(this.pagination=new td(this)),this.pagination?.update(e)}delete s.pagination,s.caption&&"className"in s.caption&&(o.add("classes"),delete s.caption.className,Object.keys(s.caption).length<1&&delete s.caption),s.description&&"className"in s.description&&(o.add("classes"),delete s.description.className,Object.keys(s.description).length<1&&delete s.description),s.rendering?.table&&"className"in s.rendering.table&&(o.add("classes"),delete s.rendering.table.className,Object.keys(s.rendering.table).length<1&&delete s.rendering.table,Object.keys(s.rendering).length<1&&delete s.rendering),Object.keys(s).length>0&&o.add("grid")}else o.add("grid");let r=()=>{y(this,"afterUpdate",{scope:"grid",options:e,redraw:t,oneToOne:i})};if(t)return this.redraw().then(r);r()}loadColumnOptionDiffs(e,t,i={}){if(Object.keys(i).length<1)return;let n=this.dirtyFlags,s=t?this.viewport?.getColumn(t):null;if(null!==s&&(!s&&!1!==i.enabled||s&&!1===i.enabled)&&n.add("grid"),delete i.enabled,"cells"in i){let e=i.cells??{};("format"in e||"formatter"in e||"className"in e)&&n.add("rows"),delete e.format,delete e.formatter,delete e.className,Object.keys(e).length>0&&n.add("rows")}if(delete i.cells,"width"in i||"minWidth"in i||"maxWidth"in i){let t=e.columnResizing;t&&(t.isDirty=!0)}if(delete i.width,delete i.minWidth,delete i.maxWidth,"sorting"in i){let e=i.sorting??{};("compare"in e||"order"in e)&&n.add("sorting"),delete e.compare,delete e.order,delete e.orderSequence,Object.keys(e).length>0&&n.add("grid")}if(delete i.sorting,"filtering"in i){let e=i.filtering??{},t=e.rule??{};("condition"in e||"value"in e||"conditions"in e||"operators"in e||"rule"in e||"operator"in t||"value"in t)&&n.add("filtering"),delete e.condition,delete e.value,delete e.conditions,delete e.operators,delete e.rule,Object.keys(e).length>0&&n.add("grid")}delete i.filtering,Object.keys(i).length>0&&n.add("grid")}async redraw(){let e=async()=>{y(this,"beforeRedraw");let e=this.dirtyFlags,t=new Set(e),{viewport:i,pagination:n}=this,s=i?.columnResizing,o=!!n?.isDirtyQuerying,r=!!s?.isDirty;if(t.has("grid")){for(let i of(await this.render(!1),t))e.delete(i);y(this,"afterRedraw");return}await this.dataProvider?.init(),await this.refreshAvailableSourceColumnIds(),(t.has("sorting")||t.has("filtering")||o)&&this.querying.loadOptions(),r&&s?.loadColumns(),t.has("rows")||t.has("sorting")||t.has("filtering")||o?await i?.updateRows():(t.has("reflow")||r)&&i?.reflow();let l=i?.columns??[];if(t.has("sorting")||t.has("filtering"))for(let e of l)e.header?.toolbar?.refreshState();if(t.has("filtering"))for(let e of l)e.filtering?.refreshState();for(let o of(t.has("classes")&&(this.captionElement&&(this.captionElement.className=ev(ep.getClassName("captionElement"),this.options?.caption?.className)),this.descriptionElement&&(this.descriptionElement.className=ev(ep.getClassName("descriptionElement"),this.options?.description?.className)),i&&(i.tableElement.className=ev(ep.getClassName("tableElement"),i.virtualRows&&ep.getClassName("virtualization"),ep.getClassName("scrollableContent"),this.options?.rendering?.table?.className))),n?.redraw(),delete s?.isDirty,["sorting","filtering","classes"]))e.delete(o);y(this,"afterRedraw")},t=this.redrawQueue.then(e,e);return this.redrawQueue=t.catch(()=>void 0),t}async updateColumn(e,t,i=!0,n=!1){y(this,"beforeUpdate",{scope:"column",options:t,redraw:i,overwrite:n,columnId:e});let s=this.viewport,o=this.setColumnOptions([{id:e,...t}],n),r=o?.[e];r&&s&&this.loadColumnOptionDiffs(s,e,r),i&&await this.redraw(),y(this,"afterUpdate",{scope:"column",options:t,redraw:i,overwrite:n,columnId:e})}async setSorting(e){let t=this.viewport;if(!t||t.validator?.errorCell)return;let i=(e||[]).filter(e=>!!(e.columnId&&e.order&&!this.columnPolicy.isColumnUnbound(e.columnId))),n=this.querying.sorting,s=n.currentSortings||[],o=new Set;for(let e of s)e.columnId&&o.add(e.columnId);for(let e of i)o.add(e.columnId);let r=Array.from(o).map(e=>{let n=t.getColumn(e);return n?{column:n,order:i.find(t=>t.columnId===e)?.order||null}:null}).filter(e=>!!e);for(let{column:e,order:t}of r)[e,this].forEach(i=>{y(i,"beforeSort",{target:e,order:t})});n.setSorting(i),await t.updateRows();let l=n.currentSortings||[],a=l.length>1;for(let e of t.columns){let t=l.findIndex(t=>t.columnId===e.id);if(-1!==t&&l[t].order){let i={order:l[t].order};a&&(i.priority=t+1),e.setOptions({sorting:i}),a||delete e.options.sorting?.priority}else delete e.options.sorting?.order,delete e.options.sorting?.priority,e.options.sorting&&Object.keys(e.options.sorting).length<1&&delete e.options.sorting;e.sorting?.refreshHeaderAttributes()}for(let{column:e,order:t}of(this.accessibility?.userSortedColumn(l[0]?.order||null),r))[e,this].forEach(i=>{y(i,"afterSort",{target:e,order:t})})}async render(e=!0){this.isRendered&&this.destroy(!0),await this.loadDataProvider().init(),this.initContainer(this.renderTo),this.initAccessibility(),this.initPagination(),await this.refreshAvailableSourceColumnIds(),this.querying.loadOptions(),await this.querying.proceed(),await this.renderViewport(),this.isRendered=!0,e&&this.dirtyFlags.clear()}hoverRow(e){let t=this.viewport;t&&(void 0!==this.hoveredRowIndex&&t.getRenderedRowByIndex(this.hoveredRowIndex)?.setHoveredState(!1),void 0!==e&&t.getRenderedRowByIndex(e)?.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;t&&(void 0!==this.syncedRowIndex&&t.getRenderedRowByIndex(this.syncedRowIndex)?.setSyncedState(!1),void 0!==e&&t.getRenderedRowByIndex(e)?.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;if(!e?.text||!this.contentWrapper)return;let t=e.htmlTag?.toLowerCase(),i=t&&U.allowedTags.includes(t)?t:"div",n=ev(ep.getClassName("captionElement"),e.className);this.captionElement=new U([{tagName:i,attributes:{class:n,id:this.id+"-caption"}}]).addToDOM(this.contentWrapper),ew(this.captionElement,e.text)}renderDescription(){let e=this.options?.description,t=e?.text;t&&(this.descriptionElement=eg("div",{className:ev(ep.getClassName("descriptionElement"),e.className),id:this.id+"-description"},this.contentWrapper),ew(this.descriptionElement,t))}resetContentWrapper(){if(!this.contentWrapper)return;this.contentWrapper.innerHTML=U.emptyHTML;let e=this.options?.rendering?.theme;this.contentWrapper.className=ev(ep.getClassName("container"),e&&ep.getClassName("themed"),e)}async renderViewport(){let e=this.viewport?.getStateMeta();this.credits?.destroy(),this.viewport?.destroy(),delete this.viewport,y(this,"beforeRenderViewport"),this.resetContentWrapper(),this.enabledColumns=await this.getEnabledColumnIDs();let t=this.pagination,i=t?.options?.position;this.renderCaption(),"top"===i&&t?.render(),this.enabledColumns.length>0?(this.viewport=await this.renderTable(),this.viewport.tableElement.setAttribute("id",this.id),e&&this.viewport&&this.viewport.applyStateMeta(e)):this.renderNoData(),await this.renderAccessibility(),"top"!==i&&t?.render(),this.renderDescription(),y(this,"afterRenderViewport"),this.viewport?.reflow()}async renderAccessibility(){let e=this.accessibility;e&&(await e.setA11yOptions(),e.addScreenReaderSection("before"),e.addScreenReaderSection("after"))}async renderTable(){this.tableElement=eg("table",{className:ep.getClassName("tableElement")},this.contentWrapper),this.tableElement.setAttribute("role","grid");let e=new ib(this,this.tableElement);return await e.init(),e}renderNoData(){eg("div",{className:ep.getClassName("noData"),innerText:this.options?.lang?.noData},this.contentWrapper)}async getEnabledColumnIDs(){let e=this.options?.header,t=this.getColumnIds(e||[],!1),i=this.options?.data,n=!i||!1!==i.autogenerateColumns,s=this.columnPolicy.getAvailableSourceColumnIds();return s||(await this.refreshAvailableSourceColumnIds(),s=this.columnPolicy.getAvailableSourceColumnIds()||[]),this.columnPolicy.getColumnsForRender(t,n,s,this.options?.columns?.map(e=>e.id))}loadDataProvider(){this.dataProvider?.destroy(),this.querying.shouldBeUpdated=!0,this.columnPolicy.setAvailableSourceColumnIds();let e=this.options?.dataTable,t=this.options?.data??{providerType:"local",dataTable:e??{}};"local"===t.providerType&&!t.dataTable&&e&&(t.dataTable="clone"in e?e:new ez(e));let i=tx.types[t.providerType??"local"]??tx.types.local;return this.dataProvider=new i(this.querying,t),this.dataProvider}getColumnIds(e,t=!0){let i=[],{enabledColumns:n}=this;for(let s of e){let e="string"==typeof s?s:s.columnId;e&&(!t||n?.includes(e))&&i.push(e),"string"!=typeof s&&s.columns&&(i=i.concat(this.getColumnIds(s.columns,t)))}return i}destroy(e=!1){y(this,"beforeDestroy",{onlyDOM:e}),this.isRendered=!1;let t=iI.grids.findIndex(e=>e===this);this.dataProvider?.destroy(),this.accessibility?.destroy(),this.pagination?.destroy(),this.viewport?.destroy(),this.container&&(this.container.innerHTML=U.emptyHTML,this.container.classList.remove(ep.getClassName("container"))),e||(Object.keys(this).forEach(e=>{delete this[e]}),iI.grids.splice(t,1))}showLoading(e){this.loadingWrapper||(this.loadingWrapper=eg("div",{className:ep.getClassName("loadingWrapper")},this.contentWrapper),eg("div",{className:ep.getClassName("loadingSpinner")},this.loadingWrapper),ew(eg("span",{className:ep.getClassName("loadingMessage")},this.loadingWrapper),I(e,this.options?.lang?.loading,"")))}hideLoading(){this.loadingWrapper?.remove(),delete this.loadingWrapper}getOptions(e=!0){let t=e?M(this.userOptions):M(this.options);t.dataTable&&"clone"in t.dataTable&&(t.dataTable={columns:t.dataTable.columns}),t.data?.providerType==="local"&&(t.data?.dataTable&&"clone"in t.data.dataTable&&(t.data.columns=t.data.dataTable.columns),t.data?.connector&&"initConverters"in t.data.connector&&(t.data.connector=t.data.connector.options));let i=t.columns,n=t.data?.autogenerateColumns===!1;if(i)for(let e of(t.columns=[],i))(n||Object.keys(e).length>1)&&t.columns.push(e);return t}}iI.grids=[];class iL{constructor(e){this.options=M(iL.defaultOptions,e),this.connectors={},this.waiting={}}emit(e){y(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,n=i.length;e<n;++e)i[e][0](t)}).catch(t=>{delete this.waiting[e];for(let e=0,n=i.length;e<n;++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,n=e.length;i<n;++i)t.push(e[i].id);return t}getConnectorOptions(e){let t=this.options.connectors;for(let i=0,n=t.length;i<n;++i)if(t[i].id===e)return t[i]}isNewConnector(e){return!this.connectors[e]}loadConnector(e){return new Promise((t,i)=>{this.emit({type:"load",options:e});let n=eV.types[e.type];if(!n)throw Error(`Connector type not found. (${e.type})`);let s=this.connectors[e.id]=new n(e);s.load().then(({converter:i})=>{s.converter=i,s.loaded=!0,this.emit({type:"afterLoad",options:e}),t(s)}).catch(i)})}cancelPendingRequests(){let{connectors:e}=this;for(let t of Object.keys(e))e[t].stopPolling()}on(e,t){return u(this,e,t)}async setConnectorOptions(e,t){let i=this.options.connectors,n=this.connectors;this.emit({type:"setConnectorOptions",options:e});for(let t=0,n=i.length;t<n;++t)if(i[t].id===e.id){i.splice(t,1);break}let s=n[e.id];s&&(t?await s.update(e,!0):(s.stopPolling(),s=void 0,delete n[e.id])),s||i.push(e),this.emit({type:"afterSetConnectorOptions",options:e})}}iL.defaultOptions={connectors:[]};let{makeHTMLElement:iP,setHTMLContent:iA}=eR;class iD{constructor(e,t){this.grid=e,this.containerElement=iP("div",{className:ep.getClassName("creditsContainer")}),this.textElement=this.renderAnchor(),this.options=t??iD.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&&iA(this.textElement,i),n&&this.textElement.setAttribute("href",n||""),e.descriptionElement?t?.insertBefore(this.containerElement,e.descriptionElement):t?.appendChild(this.containerElement)}renderAnchor(){let e=iP("a",{className:ep.getClassName("creditsText")},this.containerElement);return e.setAttribute("target","_blank"),e.setAttribute("alt","Highcharts logo"),e}getHeight(){return this.containerElement.offsetHeight}destroy(){this.containerElement.remove()}}function iN(){let e=new iD(this),t=e.containerElement.style;return t.setProperty("display","flex","important"),t.setProperty("padding","5px 5px 0px 5px","important"),t.setProperty("flex-direction","row-reverse","important"),(n=new MutationObserver(()=>{e.containerElement.querySelector(".hcg-credits")||e.render()})).observe(e.containerElement,{attributes:!0,childList:!0,subtree:!0}),e}function iH(){n?.disconnect()}function ik(){if(iF.call(this),this.container&&this.contentWrapper){if(this.activeRules=new Set,!this.updatingResponsive){let e=this.options?.responsive?.rules||[];if(e.length>0){let{clientWidth:t,clientHeight:i}=this.container,n={contentRect:{width:t,height:i}},s=[];for(let t of e)void 0===t._id&&(t._id=F()),iB.call(this,t,n)&&s.push(t);this.activeRules=new Set(s),iz.call(this,s,!1)}}this.resizeObserver=new ResizeObserver(e=>{iV.call(this,e[0])}),this.resizeObserver.observe(this.contentWrapper)}}function iF(){this.resizeObserver?.disconnect(),delete this.activeRules}function iB(e,t){let{maxWidth:i,maxHeight:n,minWidth:s,minHeight:o,callback:r}=e.condition;return(!p(r)||r?.call(this,this))&&(!p(i)||t.contentRect.width<=i)&&(!p(n)||t.contentRect.height<=n)&&(!p(s)||t.contentRect.width>=s)&&(!p(o)||t.contentRect.height>=o)}function iz(e,t=!0){let i,n=e.map(e=>e._id).toString()||void 0;if(n!==this.currentResponsive?.ruleIds&&!this.updatingResponsive){if(this.updatingResponsive=!0,this.currentResponsive){let e=this.currentResponsive.undoOptions;this.currentResponsive=void 0,t?i=this.update(e,!0):this.update(e,!1)}if(n){let s=M(...e.map(e=>e.gridOptions)),o=g(s,this.options||{},!0),r=iW.call(this,s);r?o.columns=r:function(e,t){let i=t.columns,n=e.columns;if(i&&n)for(let e=0,t=Math.min(i.length,n.length);e<t;++e){let t=i[e],s=n[e];!t||!s||"id"in s||(s.id=t.id)}}(o,s),this.currentResponsive={ruleIds:n,mergedOptions:s,undoOptions:o},t?i=this.update(s,!0):this.update(s,!1)}void 0!==i?i.then(()=>{this.updatingResponsive=!1}):this.updatingResponsive=!1}}function iW(e){let t=e.columns,i=this.options?.columns;if(!t||!i)return;let n=[],s=new Map;for(let e=0,t=i.length;e<t;++e){let t=i[e];"string"==typeof t.id&&s.set(t.id,t)}for(let e=0,i=t.length;e<i;++e){let i=t[e],o="string"==typeof i?.id?i.id:void 0;if(!i||!o)continue;let r=s.get(o);if(!r)continue;let l=g(i,r,!0);Object.keys(l).length>0&&(l.id=o,n.push(l))}if(n.length)return n}function iV(e){if(!this.activeRules||this.updatingResponsive)return;let t=this.options?.responsive?.rules||[],i=[];for(let n of t)void 0===n._id&&(n._id=F()),iB.call(this,n,e)&&i.push(n);this.activeRules=new Set(i),iz.call(this,i)}iD.defaultOptions={enabled:!0,text:"",href:"https://www.highcharts.com",position:"bottom"};class ij extends e_{constructor(e){const t=M(ij.defaultOptions,e);super(t),this.headers=[],this.dataTypes=[],this.options=t}parse(e,t){let i=this.dataTypes,n=M(this.options,e),{beforeParse:s,lineDelimiter:o,firstRowAsNames:r,itemDelimiter:l}=n,a,h=0,{csv:d,startRow:u,endRow:c}=n,m,p=[];if(this.emit({type:"parse",columns:p,detail:t,headers:this.headers}),d&&s&&(d=s(d)),d){if(a=d.replace(/\r\n|\r/g,"\n").split(o||"\n"),(!u||u<0)&&(u=0),(!c||c>=a.length)&&(c=a.length-1),l||(this.guessedItemDelimiter=this.guessDelimiter(a)),r){let e=a[0].split(l||this.guessedItemDelimiter||",");for(let t=0;t<e.length;t++)e[t]=e[t].trim().replace(/^["']|["']$/g,"");this.headers=e,u++}let e=0;for(h=u;h<=c;h++)"#"===a[h][0]?e++:this.parseCSVRow(p,a[h],h-u-e);i.length&&i[0].length&&"date"===i[0][1]&&!this.options.dateFormat&&this.deduceDateFormat(p[0],null,!0);for(let e=0,t=p.length;e<t;++e){m=p[e];for(let t=0,i=m.length;t<i;++t)if(m[t]&&"string"==typeof m[t]){let i=this.convertByType(m[t]);i instanceof Date&&(i=i.getTime()),p[e][t]=i}}}return p.forEach(e=>{e.length=Math.max(...p.map(e=>e.length))}),this.emit({type:"afterParse",columns:p,detail:t,headers:this.headers}),e$(p,this.headers)}parseCSVRow(e,t,i){let n=this,s=n.dataTypes,{startColumn:o,endColumn:r}=n.options,l=n.options.itemDelimiter||n.guessedItemDelimiter,{decimalPoint:a}=n.options;a&&a!==l||(a=n.guessedDecimalPoint||".");let h=0,d="",u="",c=0,m=0,p=e=>{d=t[e]},g=e=>{s.length<m+1&&s.push([e]),s[m][s[m].length-1]!==e&&s[m].push(e)},f=()=>{if(o>c||c>r){++c,u="";return}if("string"==typeof u){let e=parseFloat(u);!isNaN(e)&&isFinite(Number(u))?(u=e,g("number")):isNaN(Date.parse(u))?g("string"):(u=u.replace(/\//g,"-"),g("date"))}else g("number");if(e.length<m+1&&e.push([]),"number"!=typeof u&&"number"!==eK(u,n)&&a){let e=u;"number"!==eK(u=u.replace(a,"."),n)&&(u=e)}e[m][i]=u,u="",++m,++c};if(t.trim().length&&"#"!==t.trim()[0]){for(;h<t.length;h++){if(p(h),"#"===d&&!/^#[A-F\d]{3,3}|[A-F\d]{6,6}/i.test(t.substring(h)))return void f();if('"'===d)for(p(++h);h<t.length&&'"'!==d;)u+=d,p(++h);else d===l?f():u+=d}f()}}guessDelimiter(e){let t=0,i=0,n,s={",":0,";":0," ":0},o=e.length;for(let n=0;n<o;n++){let o=!1,r,l,a,h="";if(n>13)break;let d=e[n];for(let e=0;e<d.length&&(r=d[e],l=d[e+1],a=d[e-1],"#"!==r);e++){if('"'===r)if(o){if('"'!==a&&'"'!==l){for(;" "===l&&e<d.length;)l=d[++e];void 0!==s[l]&&s[l]++,o=!1}}else o=!0;else void 0!==s[r]?(isNaN(Date.parse(h=h.trim()))?(isNaN(Number(h))||!isFinite(Number(h)))&&s[r]++:s[r]++,h=""):h+=r;","===r&&i++,"."===r&&t++}}return s[";"]>s[","]?n=";":(s[","]>s[";"],n=","),t>i?this.guessedDecimalPoint=".":this.guessedDecimalPoint=",",n}}ij.defaultOptions={...e_.defaultOptions,lineDelimiter:"\n",startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE},e_.registerType("CSV",ij);class iU extends eV{constructor(e){const t=M(iU.defaultOptions,e);super(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}emit(e){y(this,e.type,e)}load(e){let t=this,i=t.options,{csv:n,csvURL:s,dataTables:o,decimalPoint:r}=i;return t.emit({type:"load",csv:n}),Promise.resolve(s?fetch(s,{signal:t?.pollingController?.signal}).then(e=>e.text()):n||"").then(e=>(e&&this.initConverters(e,e=>{let{firstRowAsNames:t=i.firstRowAsNames,beforeParse:n=i.beforeParse}=o?.find(t=>t.key===e)||{};return new ij(M(i,{decimalPoint:r,firstRowAsNames:t,beforeParse:n}))},(e,t)=>e.parse({csv:t})),t.applyTableModifiers().then(()=>e))).then(i=>(t.emit({type:"afterLoad",detail:e,csv:i}),t)).catch(i=>{throw t.emit({type:"loadError",detail:e,error:i}),i})}}iU.defaultOptions={id:"csv-connector",type:"CSV",csv:"",csvURL:"",enablePolling:!1,dataRefreshRate:1,firstRowAsNames:!0},eV.registerType("CSV",iU);class iq extends e_{constructor(e){const t=M(iq.defaultOptions,e);super(t),this.header=[],this.options=t}parse(e,t){let i,n=M(this.options,e),s=(n.json?.values||[]).map(e=>e.slice());if(0===s.length)return{};this.header=[],this.emit({type:"parse",columns:[],detail:t,headers:this.header});let{beforeParse:o,json:r}=n;o&&r&&(s=o(r.values));for(let e=0,t=s.length;e<t;e++){i=s[e],this.header[e]=n.firstRowAsNames?`${i.shift()}`:F();for(let t=0,n=i.length;t<n;++t){var l;let n=i[t];l=n,"[object Date]"===Object.prototype.toString.call(l)&&(n=n.getTime()),s[e][t]=n}}return this.emit({type:"afterParse",columns:s,detail:t,headers:this.header}),e$(s,this.header)}}iq.defaultOptions={...e_.defaultOptions},e_.registerType("GoogleSheets",iq);class iY extends eV{constructor(e){const t=M(iY.defaultOptions,e);super(t),this.options=t}emit(e){y(this,e.type,e)}load(e){let t=this,i=t.options,{dataRefreshRate:n,enablePolling:s,googleAPIKey:o,googleSpreadsheetKey:r,dataTables:l}=i,a=function(e,t,i={}){let n=new URL(`https://sheets.googleapis.com/v4/spreadsheets/${t}/values/`),s=i.onlyColumnIds?"A1:Z1":function(e={}){let{endColumn:t,endRow:i,googleSpreadsheetRange:n,startColumn:s,startRow:o}=e;return n||(i$[s||0]||"A")+(Math.max(o||0,0)+1)+":"+(i$[I(t,25)]||"Z")+(i?Math.max(i,0):"Z")}(i);n.pathname+=s;let o=n.searchParams;return o.set("alt","json"),i.onlyColumnIds||(o.set("dateTimeRenderOption","FORMATTED_STRING"),o.set("majorDimension","COLUMNS"),o.set("valueRenderOption","UNFORMATTED_VALUE")),o.set("prettyPrint","false"),o.set("key",e),n.href}(o,r,i);if(t.emit({type:"load",detail:e,url:a}),!URL.canParse(a))throw Error("Invalid URL: "+a);return fetch(a,{signal:t?.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{firstRowAsNames:t=i.firstRowAsNames,beforeParse:n=i.beforeParse}=l?.find(t=>t.key===e)||{};return new iq({firstRowAsNames:t,beforeParse:n})},(e,t)=>e.parse({json:t})),t.applyTableModifiers()}).then(()=>(t.emit({type:"afterLoad",detail:e,url:a}),s&&setTimeout(()=>t.load(),1e3*Math.max(n||0,1)),t)).catch(i=>{throw t.emit({type:"loadError",detail:e,error:i}),i})}}iY.defaultOptions={id:"google-sheets-connector",type:"GoogleSheets",googleAPIKey:"",googleSpreadsheetKey:"",enablePolling:!1,dataRefreshRate:2,firstRowAsNames:!0};let i$="ABCDEFGHIJKLMNOPQRSTUVWXYZ";eV.registerType("GoogleSheets",iY);class iK extends e_{constructor(e){const t=M(iK.defaultOptions,e);super(t),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,n=t.useMultiLevelHeaders,s=e.getSortedColumns(),o=Object.keys(s),r=[],l=o.length,a=[],h="";if(i){let e=[];if(n){for(let t of o){let i=s[t];Array.isArray(i)||(i=Array.from(i));let n=(i.shift()||"").toString();s[t]=i,e.push(n)}h=this.getTableHeaderHTML(o,e,t)}else h=this.getTableHeaderHTML(void 0,o,t)}for(let e=0;e<l;e++){let t=s[o[e]],i=t.length;for(let n=0;n<i;n++){let i=t[n];a[n]||(a[n]=[]),"string"!=typeof i&&"number"!=typeof i&&void 0!==i&&(i=(i||"").toString()),a[n][e]=this.getCellHTMLFromValue(e?"td":"th",null,e?"":'scope="row"',i),e===l-1&&r.push("<tr>"+a[n].join("")+"</tr>")}}let d="";return t.tableCaption&&(d='<caption class="highcharts-table-caption">'+t.tableCaption+"</caption>"),"<table>"+d+h+"<tbody>"+r.join("")+"</tbody></table>"}getCellHTMLFromValue(e,t,i,n,s){let o=n,r="text"+(t?" "+t:"");return"number"==typeof o?(o=o.toString(),","===s&&(o=o.replace(".",s)),r="number"):n||(o="",r="empty"),"<"+e+(i?" "+i:"")+' class="'+r+'">'+o+"</"+e+">"}getTableHeaderHTML(e=[],t=[],i=this.options){let{useMultiLevelHeaders:n,useRowspanHeaders:s}=i,o="<thead>",r=0,l=t&&t.length,a,h=0,d;if(n&&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(o+="<tr>";r<l;++r)(a=e[r])===e[r+1]?++h:h?(o+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col" colspan="'+(h+1)+'"',a),h=0):(a===t[r]?s?(d=2,t.splice(r,1)):(d=1,t[r]=""):d=1,o+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col"'+(d>1?' valign="top" rowspan="'+d+'"':""),a));o+="</tr>"}if(t){for(o+="<tr>",r=0,l=t.length;r<l;++r)void 0!==t[r]&&(o+=this.getCellHTMLFromValue("th",null,'scope="col"',t[r]));o+="</tr>"}return o+"</thead>"}parse(e,t){let i=[],n=[],s=M(this.options,e),{endRow:o,startColumn:r,endColumn:l,firstRowAsNames:a}=s,h=s.tableElement||this.tableElement;if(!(h instanceof HTMLElement))return this.emit({type:"parseError",columns:i,detail:t,headers:n,error:"Not a valid HTML Table"}),{};this.tableElement=h,this.tableElementID=h.id,this.emit({type:"parse",columns:i,detail:t,headers:this.headers});let d=h.getElementsByTagName("tr"),u=d.length,c=0,m,{startRow:p}=s;if(a&&u){let e=d[0].children,t=e.length;for(let i=r;i<t&&!(i>l);i++)("TD"===(m=e[i]).tagName||"TH"===m.tagName)&&n.push(m.innerHTML);p++}for(;c<u;){if(c>=p&&c<=o){let e=d[c].children,t=e.length,n=0;for(;n<t;){let t=n-r,s=i[t];if(("TD"===(m=e[n]).tagName||"TH"===m.tagName)&&n>=r&&n<=l){i[t]||(i[t]=[]);let e=this.convertByType(m.innerHTML);e instanceof Date&&(e=e.getTime()),i[t][c-p]=e;let n=1;for(;c-p>=n&&void 0===s[c-p-n];)s[c-p-n]=null,n++}n++}}c++}return this.headers=n,this.emit({type:"afterParse",columns:i,detail:t,headers:n}),e$(i,this.headers)}}iK.defaultOptions={...e_.defaultOptions,useRowspanHeaders:!0,useMultiLevelHeaders:!0,startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE},e_.registerType("HTMLTable",iK);let{win:iG}=a;class i_ extends eV{constructor(e){const t=M(i_.defaultOptions,e);super(t),this.options=t,this.converter=new iK(t)}async load(e){let t,i=this.options,n=this.converter,s=this.getTable(),o=i.htmlTable;if(this.emit({type:"load",detail:e}),"string"==typeof o?(this.tableID=o,t=iG.document.getElementById(o)):(t=o,this.tableID=t.id),this.tableElement=t||void 0,!this.tableElement){let t="HTML table not provided, or element with ID not found";return this.emit({type:"loadError",detail:e,error:t}),Promise.reject(Error(t))}let r=n.parse(M({tableElement:this.tableElement},i),e);return s.deleteColumns(),s.setColumns(r),await this.applyTableModifiers(),this.emit({type:"afterLoad",detail:e}),this}}i_.defaultOptions={id:"HTML-table-connector",type:"HTMLTable",htmlTable:""},eV.registerType("HTMLTable",i_);class iX extends e_{constructor(e){const t=M(iX.defaultOptions,e);super(t),this.headerColumnIds=[],this.headers=[],this.options=t}parse(e,t){let{beforeParse:i,orientation:n,firstRowAsNames:s,columnIds:o}=e=M(this.options,e),r=e.data;if(!r)return{};this.headers=[];let l=[];return this.emit({type:"parse",columns:l,detail:t,headers:this.headers}),i&&(r=i(r)),r=r.slice(),"columns"===n?this.parseColumnsOrientation(l,r,s,o):"rows"===n&&this.parseRowsOrientation(l,r,s,o),this.emit({type:"afterParse",columns:l,detail:t,headers:this.headers}),e$(l,this.headers)}parseColumnsOrientation(e,t,i,n){for(let s=0,o=t.length;s<o;s++){let o=t[s];if(!Array.isArray(o))return;Array.isArray(this.headers)?(i?this.headers.push(`${o.shift()}`):n&&Array.isArray(n)&&this.headers.push(n[s]),e.push(o)):H("JSONConverter: Invalid `columnIds` option.",!1)}}parseRowsOrientation(e,t,i,n){i?this.headers=t.shift():n&&(this.headerColumnIds=n);for(let s=0,o=t.length;s<o;s++){let o=t[s];x(o)||(o=this.convertItemToRow(o,n));for(let t=0,n=o.length;t<n;t++)e.length<t+1&&e.push([]),e[t].push(o[t]),i||0!==s||(Array.isArray(this.headerColumnIds)?this.headers.push(this.headerColumnIds[t]||t.toString()):H("JSONConverter: Invalid `columnIds` option.",!1))}}convertItemToRow(e,t){let i=this;if(t&&!Array.isArray(t)){let n=[];return S(t,(t,s)=>{n.push(t.reduce((e,t)=>e[t],e)),0>i.headers.indexOf(s)&&i.headers.push(s)}),n}return i.headerColumnIds=Object.keys(e),Object.values(e)}}iX.defaultOptions={...e_.defaultOptions,orientation:"rows"},e_.registerType("JSON",iX);class iZ extends eV{constructor(e){const t=M(iZ.defaultOptions,e);super(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}emit(e){y(this,e.type,e)}load(e){let t=this,i=t.options,{data:n,dataUrl:s,dataTables:o}=i;return t.emit({type:"load",detail:e,data:n}),Promise.resolve(s?fetch(s,{signal:t?.pollingController?.signal}).then(e=>e.json()).catch(i=>{t.emit({type:"loadError",detail:e,error:i}),console.warn(`Unable to fetch data from ${s}.`)}):n||[]).then(async e=>(e&&this.initConverters(e,t=>{let{columnIds:n=i.columnIds,firstRowAsNames:s=i.firstRowAsNames,orientation:r=i.orientation,beforeParse:l=i.beforeParse}=o?.find(e=>e.key===t)||{};return new iX({data:e,columnIds:n,firstRowAsNames:s,orientation:r,beforeParse:l})},(e,t)=>e.parse({data:t})),t.applyTableModifiers().then(()=>e??[]))).then(i=>(t.emit({type:"afterLoad",detail:e,data:i}),t)).catch(i=>{throw t.emit({type:"loadError",detail:e,error:i}),i})}}iZ.defaultOptions={type:"JSON",id:"json-connector",data:[],enablePolling:!1,dataRefreshRate:0,firstRowAsNames:!0,orientation:"rows"},eV.registerType("JSON",iZ);class iQ extends eA{constructor(e,...t){super(),this.chain=t,this.options=M(iQ.defaultOptions,e);const i=this.options.chain||[];for(let e=0,n=i.length,s,o;e<n;++e)(s=i[e]).type&&(o=eA.types[s.type])&&t.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.modified=e.clone(!1,t));let n=e;for(let s=0,o=i.length;s<o;++s){try{await i[s].modify(n,t)}catch(i){throw this.emit({type:"error",detail:t,table:e}),i}n=n.getModified()}return e.modified=n,e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=this.options.reverse?this.chain.reverse():this.chain.slice(),n=e.getModified();for(let e=0,s=i.length;e<s;++e)n=i[e].modifyTable(n,t).getModified();return e.modified=n,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})}emit(e){y(this,e.type,e)}on(e,t){return u(this,e,t)}}iQ.defaultOptions={type:"Chain"},eA.registerType("Chain",iQ);class iJ extends eA{constructor(e){super(),this.options=M(iJ.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=e.getModified();if(e.hasColumns(["columnIds"])){let t=(e.deleteColumns(["columnIds"])||{}).columnIds||[],n={},s=[];for(let e=0,i=t.length;e<i;++e)s.push(""+t[e]);for(let t=0,i=e.getRowCount(),o;t<i;++t)(o=e.getRow(t))&&(n[s[t]]=o);i.deleteColumns(),i.setColumns(n)}else{let t={};for(let i=0,n=e.getRowCount(),s;i<n;++i)(s=e.getRow(i))&&(t[`${i}`]=s);t.columnIds=e.getColumnIds(),i.deleteColumns(),i.setColumns(t)}return this.emit({type:"afterModify",detail:t,table:e}),e}}iJ.defaultOptions={type:"Invert"},eA.registerType("Invert",iJ);class i0 extends e2{constructor(){super(...arguments),this.dataTableEventDestructors=[],this.connectorEventDestructors=[]}async init(){this.dataTable||await this.initDataTable()}async initDataTable(){if(this.querying.shouldBeUpdated=!0,this.clearDataTableEvents(),this.clearConnector(),this.options.connector)return void await this.initConnector(this.options.connector);let e=this.options.dataTable;e||(e=new ez({columns:this.options.columns??{}})),this.setDataTable(e)}setDataTable(e){for(let t of(this.dataTable=e,this.presentationTable=e.getModified(),this.prePaginationRowCount=this.presentationTable?.rowCount??0,i0.tableChangeEventNames)){let i=e.on(t,e=>{this.handleTableChange(e)});this.dataTableEventDestructors.push(i)}this.originalRowIndexesMap=this.createOriginalRowIndexesMap()}async handleTableChange(e){this.querying.shouldBeUpdated=!0,("afterDeleteRows"===e.type||"afterSetRows"===e.type)&&(this.originalRowIndexesMap=this.createOriginalRowIndexesMap());let t=this.querying.grid;t?.viewport&&!e.detail?.fromGrid&&this.options.updateOnChange&&await t.viewport.updateRows()}clearDataTableEvents(){this.dataTableEventDestructors.forEach(e=>e()),this.dataTableEventDestructors.length=0}clearConnector(){this.connectorEventDestructors.forEach(e=>e()),this.connectorEventDestructors.length=0,this.connector?.stopPolling(),this.connector=void 0}async initConnector(e){let t;if(i0.isConnectorInstance(e))t=e;else{let i=eV.types[e.type];if(!i)throw Error(`Connector type not found. (${e.type})`);e.id||(e.id="connector-"+F()),t=new i(e)}if(this.connector=t,this.connectorEventDestructors.push(t.on("afterLoad",()=>{this.querying.shouldBeUpdated=!0})),!t.loaded)try{let e=await t.load();t.converter=e.converter,t.loaded=!0}catch{return}this.setDataTable(t.getTable(this.options.dataTableKey)),"enablePolling"in t.options&&t.options.enablePolling&&!t.polling&&"dataRefreshRate"in t.options&&t.startPolling(1e3*Math.max(t.options.dataRefreshRate||0,1))}getColumnIds(){return Promise.resolve(this.presentationTable?.getColumnIds()??[])}async getRowId(e){let t=this.options.idColumn;if(t){let i=this.presentationTable?.getCell(t,e);if(E(i)||b(i))return Promise.resolve(i)}let i=await this.getOriginalRowIndexFromLocal(e);if(!p(i)||!this.dataTable)return Promise.resolve(void 0);if(!t)return Promise.resolve(i);let n=this.dataTable.getCell(t,i);if(E(n)||b(n))return Promise.resolve(n)}getRowIndex(e){if(!this.originalRowIndexesMap&&b(e))return this.getLocalRowIndexFromOriginal(e);let t=this.originalRowIndexesMap?.get(e);return p(t)?this.getLocalRowIndexFromOriginal(t):Promise.resolve(void 0)}getOriginalRowIndexFromLocal(e){return Promise.resolve(this.presentationTable?.getOriginalRowIndex(e))}getLocalRowIndexFromOriginal(e){return Promise.resolve(this.presentationTable?.getLocalRowIndex(e))}getRowObject(e){return Promise.resolve(this.presentationTable?.getRowObject(e))}getPrePaginationRowCount(){return Promise.resolve(this.prePaginationRowCount??0)}getRowCount(){return Promise.resolve(this.presentationTable?.getRowCount()??0)}getValue(e,t){return Promise.resolve(this.presentationTable?.getCell(e,t))}setValue(e,t,i){let n=this.resolveOriginalRowIndex(i);return void 0===n?console.error("[setValue] Wrong row ID:",i):this.dataTable?.setCell(t,n,e,{fromGrid:!0}),Promise.resolve()}async applyQuery(){let e,t=this.querying,i=this.dataTable;if(!i)return;let n=t.getGroupedModifiers();if(n.length>0){let t=new iQ({},...n),s=i.clone();await t.modify(s.getModified()),e=s.getModified()}else e=i.getModified();let s={table:e};y(this.querying.grid,"projectPresentationTable",s),e=s.table,this.prePaginationRowCount=e.rowCount;let o=t.pagination.createModifier(e.rowCount);o&&(e=e.clone(),await o.modify(e),e=e.getModified()),this.presentationTable=e}createOriginalRowIndexesMap(){let e=this.options.idColumn,t=this.dataTable;if(!e||!t)return;let i=t.getColumn(e,!0);if(!i)throw Error(`Column "${e}" not found in table.`);let n=new Map;for(let e=0,t=i.length;e<t;++e){let t=i[e];if(!E(t)&&!b(t))throw Error("idColumn must contain only string or number values.");n.set(t,e)}if(n.size!==i.length)throw Error("idColumn must contain unique values.");return n}resolveOriginalRowIndex(e){return this.originalRowIndexesMap?this.originalRowIndexesMap.get(e):b(e)?e:void 0}destroy(){this.clearDataTableEvents(),this.clearConnector()}getColumnDataType(e){let t=this.dataTable?.getColumn(e);return t?Array.isArray(t)?Promise.resolve(e2.assumeColumnDataType(t.slice(0,30),e)):Promise.resolve("number"):Promise.resolve("string")}getDataTable(e=!1){return e?this.presentationTable:this.dataTable}static isConnectorInstance(e){return"getTable"in e}}i0.tableChangeEventNames=["afterDeleteColumns","afterDeleteRows","afterSetCell","afterSetColumns","afterSetRows"],tx.registerDataProvider("local",i0);let i1={AST:U,CellContextMenuBuiltInActions:id,ColumnResizing:eL,DataConnector:eV,DataConverter:e_,DataCursor:eZ,DataModifier:eA,DataPool:iL,DataProviderRegistry:tx,DataTable:ez,defaultOptions:tu,Grid:iI,grid:iI.grid,grids:iI.grids,isHighContrastModeActive:e1,merge:M,Pagination:td,product:"Grid Lite",setOptions:function(e){e7(e),M(!0,tu,e)},SvgIcons:{createGridIcon:ts,getIconFromRegistry:tn,icons:te,pathDefaults:tt},Table:ib,Templating:eo,version:ep.version,win:ep.win};({compose:function(e,t){L(a.composed,"CreditsLite")&&(u(e,"afterRenderViewport",iN),u(t,"afterDestroy",iH))}}).compose(i1.Grid,i1.Table),({compose:function(e){L(ep.composed,"Responsive")&&(u(e,"beforeRenderViewport",ik),u(e,"beforeDestroy",iF))}}).compose(i1.Grid);let{defaultOptions:i2,grid:i3,grids:i6,isHighContrastModeActive:i4,product:i8,setOptions:i5,version:i9,win:i7}=i1,ne=i1;return l.default})());