@visactor/vtable 1.4.2-alpha.4 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,4 +12,4 @@
12
12
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */function Iz(t,e,i,r){var n,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,r);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(o<3?n(s):o>3?n(e,i,s):n(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s}const Oz=[],Fz=[];let zz=5,Dz=!1;function Wz(t){Z(t)&&(zz=t)}function Nz(t){const{axes:e,dataId:i,data:r,spec:n}=t.attribute,{chartInstance:o}=t,s=t.getViewBox();s.x2<=s.x1&&(s.x2=s.x1+1),s.y2<=s.y1&&(s.y2=s.y1+1),e?.forEach(((t,e)=>{"band"===t.type?o.updateModelSpec({type:"axes",index:e},{domain:t.domain.slice(0)},!0):o.updateModelSpecSync({type:"axes",index:e},{min:t.range?.min??0,max:t.range?.max??0},!0)})),o.updateViewBox({x1:s.x1-t.getRootNode().table.scrollLeft,x2:s.x2-t.getRootNode().table.scrollLeft,y1:s.y1-t.getRootNode().table.scrollTop,y2:s.y2-t.getRootNode().table.scrollTop},!1,!1);const a=t.getRootNode().table;if(a.internalProps.layoutMap?.updateDataStateToActiveChartInstance?.(o),"string"==typeof i)o.updateDataSync(i,r??[]);else{const t=[];for(const e in i){const s=i[e],a=n.series.find((t=>t?.data?.id===e));t.push({id:e,values:s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[],fields:a?.data?.fields}),o.updateFullDataSync||o.updateDataSync(e,s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[])}o.updateFullDataSync?.(t)}!function(t,e){const{viewWidth:i,viewHeight:r}=t;if(i<jz&&r<jz)return e.cacheCanvas=t.toCanvas(),void(e.isShareChartSpec||(e.chartInstance?.release(),e.chartInstance=null,e.setAttribute("chartInstance",null)));const n=Math.ceil(r/jz),o=Math.ceil(i/jz),s=[];for(let e=0;e<n;e++)for(let n=0;n<o;n++){const o=n*jz,a=e*jz,l=o+jz>i?i:o+jz,h=a+jz>r?r:a+jz,c=l-o,d=h-a,u=new Se;u.setValue(o,a,l,h);const g=t.toCanvas(!1,u);s.push({canvas:g,x:o,y:a,width:c,height:d})}e.cacheCanvas=s}(o.getStage(),t)}function Gz(t){Dz=!0,Fz.length>0?requestAnimationFrame((()=>{const e=Fz.splice(0,zz);Oz.splice(0,zz),e.forEach((t=>{Nz(t),t.addUpdateBoundTag()})),t.render(),Gz(t)})):Dz=!1}const jz=2e3;const Vz=Symbol.for("ChartRender");let Uz=class{type;numberType=oF;drawShape(t,e,i,r,n,o,s,a){const l=_o(t,o?.theme).group,{dataId:h,data:c,spec:d}=t.attribute;t.getViewBox();const{width:u=l.width,height:g=l.height}=t.attribute,{active:p,cacheCanvas:f,activeChartInstance:m}=t;if(!p&&f)nt(f)?f.forEach((t=>{const{x:i,y:r,width:n,height:o,canvas:s}=t;e.drawImage(s,i,r,n,o)})):e.drawImage(f,i,r,u,g);else if(m)if("string"==typeof h)m.updateDataSync(h,c??[]);else{const t=[];for(const e in h){const i=h[e],r=d.series.find((t=>t?.data?.id===e));t.push({id:e,values:i?c?.filter((t=>t.hasOwnProperty(i)))??[]:c??[],fields:r?.data?.fields}),m.updateFullDataSync||m.updateDataSync(e,i?c?.filter((t=>t.hasOwnProperty(i)))??[]:c??[])}m.updateFullDataSync?.(t)}else t.getRootNode().table.internalProps.renderChartAsync?(-1===Oz.indexOf(`${t.parent.col}+${t.parent.row}`)&&(Oz.push(`${t.parent.col}+${t.parent.row}`),Fz.push(t)),Dz||Gz(t.getRootNode().table)):Nz(t)}draw(t,e,i,r){const{context:n}=i;if(!n)return;const{clip:o}=t.attribute;o?n.save():n.highPerformanceSave(),n.transformFromMatrix(t.transMatrix,!0),n.beginPath(),r.skipDraw?this.drawShape(t,n,0,0,i,r,(()=>!1),(()=>!1)):this.drawShape(t,n,0,0,i),o?n.restore():n.highPerformanceRestore()}};Uz=Iz([f()],Uz);let Kz=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{shape:g}=t.attribute;if("circle"===g){const{width:n=l.width,height:o=l.height}=t.attribute;e.beginPath(),e.arc(i+n/2,r+o/2,Math.min(n,o)/2,0,2*Math.PI),e.closePath(),e.save(),e.clip()}}};Kz=Iz([f()],Kz);let $z=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{shape:g}=t.attribute;"circle"===g&&e.restore()}};function Yz(t,e,i,r){const{highlightScope:n,disableHeader:o,cellPos:s}=t.hover,a=t.table,l=a.isHeader(e,i);if(l&&o)return;let h;if(n===mE.single&&s.col===e&&s.row===i?h="cellBgColor":n===mE.column&&s.col===e?h=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":n===mE.row&&s.row===i?h=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":n===mE.cross&&(s.col===e&&s.row===i?h="cellBgColor":s.col===e?h="inlineColumnBgColor":s.row===i&&(h="inlineRowBgColor")),h){let t;if(l){const n=a.getHeaderDefine(e,i);t=n?.disableHeaderHover,r.firstChild&&"axis"===r.firstChild.name&&a.options.hover?.disableAxisHover&&(t=!0)}else{const r=a.getBodyColumnDefine(e,i);t=r?.disableHover}t&&(h=void 0)}return h}function Xz(t,e,i,r){const{highlightScope:n,disableHeader:o,cellPos:s,ranges:a}=t.select;let l;if(1===a?.length&&a[0].end.col===a[0].start.col&&a[0].end.row===a[0].start.row){const r=t.table,a=r.isHeader(e,i);if(a&&o)return;if(n===mE.single&&s.col===e&&s.row===i?l="cellBgColor":n===mE.column&&s.col===e?l=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":n===mE.row&&s.row===i?l=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":n===mE.cross&&(s.col===e&&s.row===i?l="cellBgColor":s.col===e?l="inlineColumnBgColor":s.row===i&&(l="inlineRowBgColor")),l){let t;if(a){const n=r.getHeaderDefine(e,i);t=n?.disableHeaderSelect}else{const n=r.getBodyColumnDefine(e,i);t=n?.disableSelect}t&&(l=void 0)}}return l}$z=Iz([f()],$z);let qz=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{stroke:g=l.stroke,strokeArrayWidth:p=l.strokeArrayWidth,strokeArrayColor:f=l.strokeArrayColor}=t.attribute;g&&(Array.isArray(p)||Array.isArray(f))&&(u.doStroke=!1)}};qz=Iz([f()],qz);let Zz=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{stroke:u=l.stroke,strokeArrayColor:g=l.strokeArrayColor,strokeArrayWidth:p=l.strokeArrayWidth,lineWidth:f=l.lineWidth,strokeColor:m=l.stroke}=t.attribute;let b,y,{width:v=l.width,height:C=l.height}=t.attribute;if(u&&(Array.isArray(p)||0!==f)&&(Array.isArray(g)||Array.isArray(p))){if("number"==typeof f&&1&f||Array.isArray(p)&&p.some((t=>1&t))){const e=t.stage.table;if(!e)return;const n="bottom-right"===e?.theme.cellBorderClipDirection;n?(i=Math.floor(i)-.5,r=Math.floor(r)-.5):(i=Math.floor(i)+.5,r=Math.floor(r)+.5),e.options.customConfig?._disableColumnAndRowSizeRound&&(v=Math.round(v),C=Math.round(C));const{width:o,height:s}=aD(t,Math.ceil(v),Math.ceil(C),n);b=o,y=s}else b=Math.ceil(v),y=Math.ceil(C);Jz(t,e,i,r,l,u,p||f,g||m,b,y)}}};function Jz(t,e,i,r,n,o,s,a,l,h,c,d){const u=function(t){if(!Array.isArray(t))return{isSplitDraw:!1,width:t};let e;for(let i=0;i<t.length;i++){const r=t[i];if(r)if(e){if(r!==e)return{isSplitDraw:!0}}else e=r}return{isSplitDraw:!1,width:e}}(s),g=!Array.isArray(s),p=!Array.isArray(o),f=Array.isArray(d),m=Array.isArray(a)||u.isSplitDraw;e.setStrokeStyle(t,t.attribute,i,r,n);const b=e.lineCap;e.lineCap="square";const{lineDash:y=n.lineDash}=t.attribute;let v=!1;y.length&&y.some((t=>Array.isArray(t)))&&(v=!0),e.beginPath(),e.moveTo(i,r);const C=(p||o[0])&&(g||s[0]),w=(p||o[1])&&(g||s[1]),x=(p||o[2])&&(g||s[2]),_=(p||o[3])&&(g||s[3]);if(C){const t=_?0:(g?u.width:s[3])/2,n=w?0:(g?u.width:s[1])/2;f&&Array.isArray(d[0])?(e.moveTo(i-t+(l+t+n)*d[0][0],r),e.lineTo(i-t+(l+t+n)*(d[0][1]-d[0][0]),r),e.moveTo(i+l+n,r)):(e.moveTo(i-t,r),e.lineTo(i+l+n,r)),(m||v)&&(a&&a[0]?e.strokeStyle=a[0]:e.strokeStyle="transparent",g||(e.lineWidth=s[0]),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,v&&e.setLineDash(y[0]??[]),e.stroke(),e.beginPath(),e.moveTo(i+l,r))}else e.moveTo(i+l,r);if(w){const t=C?0:(g?u.width:s[0])/2,n=x?0:(g?u.width:s[2])/2;f&&Array.isArray(d[1])?(e.moveTo(i+l,r-t+h*d[1][0]),e.lineTo(i+l,r-t+(h+t+n)*(d[1][1]-d[1][0])),e.moveTo(i+l,r+h+n)):(e.moveTo(i+l,r-t),e.lineTo(i+l,r+h+n)),(m||v)&&(a&&a[1]?e.strokeStyle=a[1]:e.strokeStyle="transparent",g||(e.lineWidth=s[1]),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,v&&e.setLineDash(y[1]??[]),e.stroke(),e.beginPath(),e.moveTo(i+l,r+h))}else e.moveTo(i+l,r+h);if(x){const t=_?0:(g?u.width:s[3])/2,n=w?0:(g?u.width:s[1])/2;f&&Array.isArray(d[2])?(e.moveTo(i-t+(l+t+n)*d[2][0],r+h),e.lineTo(i-t+(l+t+n)*(d[2][1]-d[2][0]),r+h),e.moveTo(i-t,r+h)):(e.moveTo(i-t,r+h),e.lineTo(i+l+n,r+h)),(m||v)&&(a&&a[2]?e.strokeStyle=a[2]:e.strokeStyle="transparent",g||(e.lineWidth=s[2]),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,v&&e.setLineDash(y[2]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r+h))}else e.moveTo(i,r+h);if(_){const t=C?0:(g?u.width:s[0])/2,n=x?0:(g?u.width:s[2])/2;f&&Array.isArray(d[3])?(e.moveTo(i,r-t+(h+t+n)*d[3][0]),e.lineTo(i,r-t+(h+t+n)*(d[3][1]-d[3][0])),e.moveTo(i,r-t)):(e.moveTo(i,r-t),e.lineTo(i,r+h+n)),(m||v)&&(a&&a[3]?e.strokeStyle=a[3]:e.strokeStyle="transparent",g||(e.lineWidth=s[3]),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,v&&e.setLineDash(y[3]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r))}else e.moveTo(i,r);m||v||(!g&&u.width&&(e.lineWidth=u.width),e.stroke()),e.lineDashOffset=0,e.lineCap=b,e.setLineDash([])}Zz=Iz([f()],Zz);let Qz=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{lineDash:g=l.lineDash,stroke:p=l.stroke,strokeArrayColor:f=l.strokeArrayColor,strokeArrayWidth:m=l.strokeArrayWidth}=t.attribute;p&&Array.isArray(g)&&g.length&&g[0]?.length&&!Array.isArray(f)&&!Array.isArray(m)&&(u.doStroke=!1)}};Qz=Iz([f()],Qz);let tD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{lineDash:u=l.lineDash,stroke:g=l.stroke,strokeArrayColor:p=l.strokeArrayColor,strokeArrayWidth:f=l.strokeArrayWidth,lineWidth:m=l.lineWidth}=t.attribute;if(!g||!(Array.isArray(u)&&u.length&&u[0]?.length)||Array.isArray(p)||Array.isArray(f))return;const b=t.stage.table;if(!b)return;const y=nt(u[0])?function(t){if(1===t.length)return[t[0],t[0],t[0],t[0]];if(2===t.length)return[t[0],t[1],t[0],t[1]];return t}(u):[u,u,u,u];let v,C,{width:w=l.width,height:x=l.height}=t.attribute;if(b.options.customConfig?._disableColumnAndRowSizeRound?(w=Math.round(w),x=Math.round(x)):(w=Math.ceil(w),x=Math.ceil(x)),1&m){const e="bottom-right"===b.theme.cellBorderClipDirection,n=0,o=0;e?(i=Math.floor(i)-.5,r=Math.floor(r)-.5):(i=Math.floor(i)+.5,r=Math.floor(r)+.5);const{width:s,height:a}=aD(t,Math.ceil(w+n),Math.ceil(x+o),e);v=s,C=a}else v=Math.ceil(w),C=Math.ceil(x);e.setStrokeStyle(t,t.attribute,i,r,l),e.beginPath(),e.moveTo(i,r),e.lineTo(i+v,r),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[0]??[]),e.stroke(),e.beginPath(),e.moveTo(i+v,r),e.lineTo(i+v,r+C),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[1]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r+C),e.lineTo(i+v,r+C),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[2]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r),e.lineTo(i,r+C),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[3]??[]),e.stroke(),e.lineDashOffset=0,e.setLineDash([])}};tD=Iz([f()],tD);let eD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{lineWidth:g=l.lineWidth,stroke:p=l.stroke,lineDash:f=l.lineDash,strokeArrayWidth:m=l.strokeArrayWidth,strokeArrayColor:b=l.strokeArrayColor,notAdjustPos:y}=t.attribute;!0!==y&&p&&Array.isArray(f)&&!f.length&&!Array.isArray(b)&&!Array.isArray(m)&&1&g&&(u.doStroke=!1)}};eD=Iz([f()],eD);let iD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{lineWidth:u=l.lineWidth,stroke:g=l.stroke,lineDash:p=l.lineDash,strokeArrayWidth:f=l.strokeArrayWidth,strokeArrayColor:m=l.strokeArrayColor,notAdjustPos:b,cornerRadius:y=l.cornerRadius}=t.attribute;let{width:v=l.width,height:C=l.height}=t.attribute;if(!0!==b&&g&&Array.isArray(p)&&!p.length&&!Array.isArray(m)&&!Array.isArray(f)&&1&u){const n=t.stage.table;if(!n)return;n.options.customConfig?._disableColumnAndRowSizeRound&&(v=Math.round(v),C=Math.round(C)),e.beginPath();const o="bottom-right"===n?.theme.cellBorderClipDirection,s=0,a=0;o?(i=Math.floor(i)-.5,r=Math.floor(r)-.5):(i=Math.floor(i)+.5,r=Math.floor(r)+.5);const{width:h,height:c}=aD(t,Math.ceil(v),Math.ceil(C),o);y?au(e,i,r,h+s,c+a,y):e.rect(i,r,h,c),e.setStrokeStyle(t,t.attribute,i,r,l),e.stroke()}}};iD=Iz([f()],iD);let rD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){if("cell"===t.role){const e=t.stage.table;if(e&&e.stateManager.interactionState!==fE.scrolling){const i=function(t,e){let i,r;if("cell"===t.role&&Z(t.mergeStartCol)&&Z(t.mergeStartRow)&&Z(t.mergeEndCol)&&Z(t.mergeEndRow)){const{colStart:r,colEnd:n,rowStart:o,rowEnd:s}=bz(t,e.scenegraph);for(let t=r;t<=n;t++)for(let r=o;r<=s;r++){const n=Xz(e.stateManager,t,r);!n||i&&"cellBgColor"!==n||(i=n)}}else"cell"===t.role&&(i=Xz(e.stateManager,t.col,t.row));if(!i)return;const n=e.internalProps.layoutMap;return n.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.select||e.theme.headerStyle?.select:n.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.select:n.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.select:n.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.select||(e.isListTable()?e.theme.bodyStyle?.select:e.theme.headerStyle?.select):n.isRightFrozenColumn(t.col,t.row)?r=e.theme.rightFrozenStyle?.select||(e.isListTable()?e.theme.bodyStyle?.select:e.theme.rowHeaderStyle?.select):e.isHeader(t.col,t.row)||(r=e.theme.bodyStyle?.select),UO(i,r,t.col,t.row,e)}(t,e);if(i)t.attribute._vtableHightLightFill=i;else{const i=function(t,e){let i,r;if("cell"===t.role&&Z(t.mergeStartCol)&&Z(t.mergeStartRow)&&Z(t.mergeEndCol)&&Z(t.mergeEndRow)){const{colStart:r,colEnd:n,rowStart:o,rowEnd:s}=bz(t,e.scenegraph);for(let a=r;a<=n;a++)for(let r=o;r<=s;r++){const n=Yz(e.stateManager,a,r,t);!n||i&&"cellBgColor"!==n||(i=n)}}else"cell"===t.role&&(i=Yz(e.stateManager,t.col,t.row,t));if(!i)return;const n=e.internalProps.layoutMap;return n.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.hover||e.theme.headerStyle?.hover:n.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.hover:n.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.hover:n.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.hover||(e.isListTable()?e.theme.bodyStyle?.hover:e.theme.headerStyle?.hover):n.isRightFrozenColumn(t.col,t.row)?r=e.theme.rightFrozenStyle?.hover||(e.isListTable()?e.theme.bodyStyle?.hover:e.theme.rowHeaderStyle?.hover):e.isHeader(t.col,t.row)||(r=e.theme.bodyStyle?.hover),UO(i,r,t.col,t.row,e)}(t,e);i&&(t.attribute._vtableHightLightFill=i)}}}}};rD=Iz([f()],rD);let nD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){if(t.attribute._vtableHightLightFill)if(c);else if(s){const n=t.attribute.fill;t.attribute.fill=t.attribute._vtableHightLightFill,e.setCommonStyle(t,t.attribute,i,r,l),e.fill(),t.attribute.fill=n,t.attribute._vtableHightLightFill=void 0}}};nD=Iz([f()],nD);let oD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const g=t.stage.table;if(g)if("body"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),n=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),o=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("row-header"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),n=g.getFrozenColsWidth(),o=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("col-header"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,n=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),o=g.getFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("right-frozen"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),n=g.getRightFrozenColsWidth(),o=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("bottom-frozen"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,n=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),o=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("corner-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),n=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}else if("corner-right-top-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),n=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}else if("corner-right-bottom-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),n=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}else if("corner-left-bottom-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),n=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}}};oD=Iz([f()],oD);let sD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){t.role}};function aD(t,e,i,r){const n=t.stage.table;if("cell"===t.role){let o=t.col,s=t.row;const a=bH(n,o,s);a&&(o=a.end.col,s=a.end.row),(n&&o===n.colCount-1&&!r||n&&o===n.frozenColCount-1&&n.scrollLeft&&!r)&&(e-=1),(n&&s===n.rowCount-1&&!r||n&&s===n.frozenRowCount-1&&n.scrollTop&&!r)&&(i-=1)}else"corner-frozen"===t.role&&(n&&n.scrollLeft&&!r&&(e-=1),n&&n.scrollTop&&!r&&(i-=1));return{width:e,height:i}}sD=Iz([f()],sD);let lD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{stroke:g=l.stroke,strokeArrayWidth:p=l.strokeArrayWidth,strokeArrayColor:f=l.strokeArrayColor}=t.attribute;g&&(Array.isArray(g)||Array.isArray(p)||Array.isArray(f))&&(u.doStroke=!1)}};lD=Iz([f()],lD);let hD,cD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{width:u=l.width,height:g=l.height,stroke:p=l.stroke,strokeArrayColor:f=l.strokeArrayColor,strokeArrayWidth:m=l.strokeArrayWidth,lineWidth:b=l.lineWidth,strokeColor:y=l.stroke}=t.attribute;if(p&&(Array.isArray(m)||0!==b)&&(Array.isArray(p)||Array.isArray(f)||Array.isArray(m))){const n=0,o=0;"border-rect"!==t.name&&"table-border-rect"!==t.name&&("number"==typeof b&&1&b||Array.isArray(m)&&m.some((t=>1&t)))&&(i=Math.floor(i)+.5,r=Math.floor(r)+.5),Jz(t,e,i,r,l,p,m||b,f||y,Math.ceil(u+n),Math.ceil(g+o))}}};cD=Iz([f()],cD);let dD=class{order=1;interceptors;constructor(){this.interceptors=[new uD]}afterDrawItem(t,e,i,r,n){for(let o=0;o<this.interceptors.length;o++)if(this.interceptors[o].afterDrawItem&&this.interceptors[o].afterDrawItem(t,e,i,r,n))return!0;return!1}beforeDrawItem(t,e,i,r,n){if((!t.in3dMode||i.in3dInterceptor)&&!t.shadowRoot&&!(t.baseGraphic||t.attribute.globalZIndex||t.interactiveGraphic))return!1;for(let o=0;o<this.interceptors.length;o++)if(this.interceptors[o].beforeDrawItem&&this.interceptors[o].beforeDrawItem(t,e,i,r,n))return!0;return!1}};dD=Iz([f()],dD);class uD{order=1;afterDrawItem(t,e,i,r,n){return"image"===t.type&&this.drawItem(t,e,i,r,n),!1}drawItem(t,e,i,r,n){const{image:o}=t.attribute;if(!o||!t.resources)return!1;if("loading"!==t.resources.get(o).state)return!1;if(!hD){const t=NO(),e=t.loading_pic.svg,i=t.loading_pic.width,r=t.loading_pic.height;hD=Nc({width:i,height:r,image:e})}const{image:s}=hD.attribute;if(!o||!hD.resources)return!1;const a=hD.resources.get(s);if("success"!==a.state)return!1;const{context:l}=i;l.highPerformanceSave(),t.parent&&l.setTransformFromMatrix(t.parent.globalTransMatrix,!0),t.glyphHost&&t.glyphHost.parent&&l.setTransformFromMatrix(t.glyphHost.parent.globalTransMatrix,!0);const h=t.AABBBounds,{width:c,height:d}=jO(a.data.width,a.data.height,h.width(),h.height());return l.drawImage(a.data,h.x1+(h.width()-c)/2,h.y1+(h.height()-d)/2,c,d),l.highPerformanceRestore(),!0}}let gD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{text:g,underline:p=l.underline,lineThrough:f=l.lineThrough,direction:m=l.direction,whiteSpace:b=l.whiteSpace,fontSize:y=l.fontSize,verticalMode:v=l.verticalMode,ellipsis:C=l.ellipsis,textAlign:w=l.textAlign,textBaseline:x=l.textBaseline,x:_=l.x,y:S=l.y}=t.attribute;let A=!1;if(Array.isArray(t)){const e=t.cache?.layoutData;C&&e&&e.lines.every((t=>""===t.str))&&(A=!0)}else{const{cache:e}=t;C&&e&&""===e.clipedText&&0===e.clipedWidth&&(A=!0)}if(!A)return;const M=rt(C)?C:"...",T=fs(t.attribute.lineHeight,y)??y;let R=0;T!==y&&("top"===x?R=(T-y)/2:"middle"===x||"bottom"===x&&(R=-(T-y)/2)),o&&(d?d(e,t.attribute,l):a&&(e.setStrokeStyle(t,t.attribute,_-i,S-r,l),e.strokeText(M,_,S+R))),n&&(c?c(e,t.attribute,l):s&&(e.setCommonStyle(t,t.attribute,_-i,S-r,l),e.fillText(M,_,S+R),this.drawUnderLine(p,f,t,_,S+R,0,l,e,M)))}drawUnderLine(t,e,i,r,n,o,s,a,l){if(e+t<=0)return;const{textAlign:h=s.textAlign,textBaseline:c=s.textBaseline,fontSize:d=s.fontSize,fontFamily:u=s.fontFamily,fontWeight:g=s.fontWeight,fontStyle:p=s.fontStyle,fill:f=s.fill,opacity:m=s.opacity,underlineOffset:b=s.underlineOffset,underlineDash:y=s.underlineDash,fillOpacity:v=s.fillOpacity}=i.attribute;if(!t&&!e)return;const C=sz.measureTextWidth(l,{fontSize:d,fontFamily:u,fontWeight:g,fontStyle:p}),w=ch(h,C),x=dh(c,d,d),_={lineWidth:0,stroke:f,opacity:m,strokeOpacity:v};if(t){_.lineWidth=t,a.setStrokeStyle(i,_,r,n,s),a.setLineDash(y),a.beginPath();const e=n+x+d+b;a.moveTo(r+w,e,o),a.lineTo(r+w+C,e,o),a.stroke()}if(e){_.lineWidth=e,a.setStrokeStyle(i,_,r,n,s),a.beginPath();const t=n+x+d/2;a.moveTo(r+w,t,o),a.lineTo(r+w+C,t,o),a.stroke()}}};gD=Iz([f()],gD);var pD=new i(((t,e,i,r)=>{i(cu)?r(cu).to(lD).inSingletonScope():(t(lD).toSelf().inSingletonScope(),t(th).toService(lD)),i(du)?r(du).to(cD).inSingletonScope():(t(cD).toSelf().inSingletonScope(),t(th).toService(cD)),t(Uz).toSelf().inSingletonScope(),t(Vz).to(Uz),t(Ig).to(Uz),t(Kz).toSelf().inSingletonScope(),t(Zl).toService(Kz),t($z).toSelf().inSingletonScope(),t(Zl).toService($z),t(rD).toSelf().inSingletonScope(),t(ql).toService(rD),t(nD).toSelf().inSingletonScope(),t(ql).toService(nD),t(Zz).toSelf().inSingletonScope(),t(ql).toService(Zz),t(qz).toSelf().inSingletonScope(),t(ql).toService(qz),t(Qz).toSelf().inSingletonScope(),t(ql).toService(Qz),t(tD).toSelf().inSingletonScope(),t(ql).toService(tD),t(eD).toSelf().inSingletonScope(),t(ql).toService(eD),t(iD).toSelf().inSingletonScope(),t(ql).toService(iD),t(oD).toSelf().inSingletonScope(),t(ql).toService(oD),t(sD).toSelf().inSingletonScope(),t(ql).toService(sD),t(dD).toSelf().inSingletonScope(),t(Jg).toService(dD),t(gD).toSelf().inSingletonScope(),t(ih).toService(gD)}));function fD(t,e,i,r){"undefined"!=typeof window&&window.performance.now(),e=e??0,i=i??t.colCount-1,0===e&&i===t.colCount-1&&t._clearColRangeWidthsMap();const n=[],o=[];if(r)for(let e=0;e<t.colCount;e++)n[e]=t.getColWidth(e);for(let n=e;n<=i;n++){let e;if(t.internalProps.transpose||"only-header"!==t.internalProps.layoutMap.columnObjects?.[n]?.columnWidthComputeMode&&"only-header"!==t.columnWidthComputeMode||!("showHeader"in t.internalProps.layoutMap))e=t.internalProps.transpose||"only-body"!==t.internalProps.layoutMap.columnObjects?.[n]?.columnWidthComputeMode&&"only-body"!==t.columnWidthComputeMode?mD(n,0,t.rowCount-1,t):mD(n,t.internalProps.layoutMap.getBodyRange().start.row,t.internalProps.layoutMap.getBodyRange().end.row,t);else{const i=t.internalProps.layoutMap.showHeader;t.internalProps.layoutMap.showHeader=!0,e=mD(n,0,t.internalProps.layoutMap.headerLevelCount-1,t),t.internalProps.layoutMap.showHeader=i}t._setColContentWidth(n,e);t.getColWidth(n)!==e&&t._clearColRangeWidthsMap(n),r?o[n]=Math.round(t._adjustColWidth(n,e)):t._setColWidth(n,t._adjustColWidth(n,e),!1,!0)}if("adaptive"===t.widthMode){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,n=0,s=t.colCount;if("only-body"===t.widthAdaptiveMode){for(let e=0;e<t.colCount;e++){const n=r?o[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=n)}n=t.rowHeaderLevelCount,s=t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount}wD(e-i,n,s,r,o,t)}else if(t.autoFillWidth){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,n=0;for(let e=0;e<t.colCount;e++){const s=r?o[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=s),n+=s}if(n<e&&n>i){wD(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,r,o,t)}}if(r){for(let e=0;e<t.colCount;e++){const i=o[e]??t.getColWidth(e);i!==n[e]&&t._setColWidth(e,i,!1,!0)}t.stateManager.checkFrozen();for(let e=0;e<t.colCount;e++){const i=t.getColWidth(e);i!==n[e]&&t.scenegraph.updateColWidth(e,i-n[e],!0,!0)}t.scenegraph.updateContainer(!0)}}function mD(t,e,i,r,n=!1){let o=function(t,e){const i=e.getColWidthDefined(t);if(e.internalProps._widthResizedColMap.has(t))return e.getColWidth(t);return i}(t,r);return r.internalProps.transpose&&"auto"===o&&("only-header"===r.columnWidthComputeMode&&t>=r.rowHeaderLevelCount||"only-body"===r.columnWidthComputeMode&&t<r.rowHeaderLevelCount)&&(o=r.getDefaultColumnWidth(t)),n&&!r.internalProps.transpose?bD(o,t,e,i,n,r):"number"==typeof o?o:"auto"!==o&&"string"==typeof o?r._adjustColWidth(t,r._colWidthDefineToPxWidth(o)):bD(o,t,e,i,n,r)}function bD(t,e,i,r,n,o){let s=0,a=1,l=1;if(r-i>5e3&&(l=Math.ceil((r-i)/5e3)),o.isPivotChart()&&e>=o.rowHeaderLevelCount&&e<o.colCount-o.rightFrozenColCount){if(o.internalProps.layoutMap.indicatorsAsCol)return o.defaultColWidth;{const t=o.internalProps.layoutMap.getOptimunWidthForChart(e);if(t>0)return t}}for(let h=i;h<=r;h+=a){if(o.isPivotChart()){const t=o.internalProps.layoutMap,i=DF(e,h,t);if(i){const t=KF(i,o);if("number"==typeof t){s=Math.max(t,s);continue}}else if(t.isLeftBottomCorner(e,h)||t.isRightTopCorner(e,h)||t.isRightBottomCorner(e,h))continue}const i=yD(e,h,o);if(i&&(s=Math.max(i.width,s),!i.renderDefault))continue;const r=t;if("number"==typeof r&&"standard"===o.widthMode&&!n){s=Math.max(r,s);continue}const c=o.isHeader(e,h)?o._getHeaderLayoutMap(e,h)?.headerType:o.getBodyColumnType(e,h);if(Z(c)&&"text"!==c&&"link"!==c&&"progressbar"!==c&&"checkbox"!==c&&"radio"!==c){s=Math.max(s,o.getColWidthDefinedNumber(e)||0);continue}let d=0;const u=o.internalProps.layoutMap;if(u.isHeader(e,h)){const t=u.getHeader(e,h);if("only-body"===t?.define?.columnWidthComputeMode)continue;Z(t?.hierarchyLevel)&&(d=(t.hierarchyLevel??0)*(u.rowHierarchyIndent??0),u.rowHierarchyTextStartAlignment&&!o.internalProps.headerHelper.getHierarchyIcon(e,h)&&(d+=o.internalProps.headerHelper.getHierarchyIconWidth()))}else{a=l;const t=o.getBodyColumnDefine(e,h);if(t?.tree){const t=o.dataSource.getIndexKey(o.getRecordShowIndexByCell(e,h));d=Array.isArray(t)&&o.getHierarchyState(e,h)!==yE.none?(t.length-1)*(u.hierarchyIndent??0):0,u.hierarchyTextStartAlignment&&!o.internalProps.bodyHelper.getHierarchyIcon(e,h)&&(d+=o.internalProps.headerHelper.getHierarchyIconWidth())}}const g=vD(e,h,c,o);s=Math.max(g+d,s),a>1&&o.bottomFrozenRowCount>0&&h<o.rowCount-o.bottomFrozenRowCount&&h+a>=o.rowCount-o.bottomFrozenRowCount&&(h=o.rowCount-o.bottomFrozenRowCount-a,a=1,l=1)}const h=o.getMinColWidth(e),c=o.getMaxColWidth(e);return s<h?h:s>c?c:(s<=0&&(s=o.defaultColWidth),s)}function yD(t,e,i){const r=i.getCustomRender(t,e),n=i.getCustomLayout(t,e);if(r||n){let o=1,s=0,a=!1,l=!1;if(i.isHeader(t,e)||i.getBodyColumnDefine(t,e)?.mergeCell||i.hasCustomMerge()){const r=i.getCellRange(t,e);o=r.end.col-r.start.col+1}const h={col:t,row:e,dataValue:i.getCellOriginValue(t,e),value:i.getCellValue(t,e)||"",rect:CD(t,e,i),table:i};if(X(n)){const t=n(h);if(t.rootContainer instanceof yl){t.rootContainer=IO(t.rootContainer),HO(t.rootContainer,0,i.getRowHeight(e));const r=t.rootContainer.attribute.width;t.rootContainer.setStage(i.scenegraph.stage),s=r>0?r:t.rootContainer.AABBBounds.width()??0,a=t.renderDefault,l=t.enableCellPadding}else s=0,a=t.renderDefault,l=t.enableCellPadding}else if("function"==typeof r){const t=r(h);s=t?.expectedWidth??0,a=t?.renderDefault}else s=r?.expectedWidth??0,a=r?.renderDefault;if(s=Math.ceil(s),l){const r=II(UO("padding",i._getCellStyle(t,e),t,e,i));s+=r[1]+r[3]}return{width:s/o,renderDefault:a}}}function vD(t,e,i,r){let n=0;const o=r.getCellValue(t,e),s=r._getCellStyle(t,e);let a=0,l=!1;if("body"!==r.getCellLocation(t,e))l=!0;else{const i=r.getBodyColumnDefine(t,e);l=!!i?.icon||!!i?.tree||i?.dragOrder}if(l){const i=r.getCellIcons(t,e);i?.forEach((t=>{t.positionType!==wE.absoluteRight&&(a+=(t.width??0)+(t.marginLeft??0)+(t.marginRight??0))}))}let h=1;if(r.isHeader(t,e)||r.getBodyColumnDefine(t,e)?.mergeCell||r.hasCustomMerge()){const i=r.getCellRange(t,e);h=i.end.col-i.start.col+1}const c=II(UO("padding",s,t,e,r)),d=c[1]+c[3],u=UO("fontSize",s,t,e,r),g=UO("fontFamily",s,t,e,r),p=UO("fontWeight",s,t,e,r);let f;if("checkbox"===i)f=J(o)?o.text:o;else if("radio"===i)if(nt(o)){f="";const i=r.getBodyColumnDefine(t,e),n=i?.radioDirectionInCell??"vertical";"vertical"===n?o.forEach((t=>{f+=(J(t)?t.text:t).toString()+"\n"})):"horizontal"===n&&o.forEach((t=>{f+=(J(t)?t.text:t).toString()}))}else f=J(o)?o.text:o;else f=o;const m=uF(f,r).text;if(m.length>=1?m.forEach((t=>{const e=r.measureText(t,{fontSize:u,fontFamily:g,fontWeight:p}).width;n=Math.max((e+d+4+a)/h,n)})):n=Math.max((d+4+a)/h,n),!1!==r.internalProps.limitMaxAutoWidth&&(n=Math.min("number"==typeof r.internalProps.limitMaxAutoWidth?r.internalProps.limitMaxAutoWidth:450,n)),"checkbox"===i){const i=UO("size",s,t,e,r);if(n+=i,f){const i=UO("spaceBetweenTextAndIcon",s,t,e,r);n+=i}}else if("radio"===i){const i=UO("size",s,t,e,r),a=UO("outerRadius",s,t,e,r),l=at(a)?2*a:i,h=UO("spaceBetweenTextAndIcon",s,t,e,r);if(nt(o)){const i=r.getBodyColumnDefine(t,e),a=UO("spaceBetweenRadio",s,t,e,r),c=i?.radioDirectionInCell??"vertical";"vertical"===c?(n+=l,n+=h):"horizontal"===c&&(n+=(l+h)*o.length,n+=a*(o.length-1))}else n+=l,f&&(n+=h)}return n}function CD(t,e,i){return{left:0,top:0,right:i.getColWidth(t),bottom:i.getRowHeight(e),width:null,height:null}}function wD(t,e,i,r,n,o,s){let a=0;const l=[],h=[];let c=0;for(let s=e;s<i;s++){const e=r?n[s]:o.getColWidth(s),i=o.getMaxColWidth(s),d=o.getMinColWidth(s);if(e!==i&&e!==d?(a+=e,l.push(s)):t-=e,o.options.customConfig?.shrinkSparklineFirst){"sparkline"===o.getBodyColumnType(s,0)&&(h.push({col:s,width:e}),c+=e-o.defaultColWidth)}}const d=t/a;if(o.options.customConfig?.shrinkSparklineFirst&&d<1&&t-a<c)for(let e=0;e<h.length;e++){const{col:i,width:l}=h[e],c=(a-t)/h.length,d=Math.floor(l-c);r?n[i]=o._adjustColWidth(i,d):s?o.scenegraph.setColWidth(i,o._adjustColWidth(i,d)):o._setColWidth(i,o._adjustColWidth(i,d),!1,!0)}else for(let e=0;e<l.length;e++){const i=l[e];let a;a=e===l.length-1?t-l.reduce(((t,e,s)=>e!==i?t+(r?n[e]:o.getColWidth(e)):t),0):Math.round((r?n[i]:o.getColWidth(i))*d),r?n[i]=o._adjustColWidth(i,a):s?o.scenegraph.setColWidth(i,o._adjustColWidth(i,a)):o._setColWidth(i,o._adjustColWidth(i,a),!1,!0)}}const xD=new GO({});function _D(t,e,i,r,n,o,s,a,l,h){let c,d,u,g=0;t.lastChild&&t.lastChild.row===r-1?g=t.lastChild.attribute.y+t.lastChild.attribute.height:t.colHeight&&(g=t.colHeight);for(let p=r;p<=n;p++){const n=p;let f,m,b,y,v=a.getCellValue(e,n),C=i,w=a.getRowHeight(n);if(a.internalProps.customMergeCell){const t=a.getCustomMerge(e,n);if(t){const{range:e,text:i,style:s,customLayout:l,customRender:h}=t;if(f=e,m=f.start.col!==f.end.col||f.start.row!==f.end.row,m){const t=SD(f,o,a,r>f.start.row);C=t.cellWidth,w=t.cellHeight}v=i,b=s,(l||h)&&(y=EO(l,h,e.start.col,e.start.row,a.getColsWidth(e.start.col,e.end.col),a.getRowsHeight(e.start.row,e.end.row),!1,a.isAutoRowHeight(n),[0,0,0,0],f,a))}}let x=e,_=n;f&&(x=f.start.col,_=f.start.row);const S="body"!==l?a.getHeaderDefine(x,_):a.getBodyColumnDefine(x,_),A="body"!==l||(S?.dragOrder||!!S?.icon||!!S?.tree);if(!f&&("body"!==l||S?.mergeCell)&&(f=a.getCellRange(e,n),m=f.start.col!==f.end.col||f.start.row!==f.end.row,m)){const t=SD(f,o,a,r>f.start.row);C=t.cellWidth,w=t.cellHeight}const M=yO(b||a._getCellStyle(e,n),a,f?f.start.col:e,f?f.start.row:n,UO).theme;M.group.cornerRadius=CO(e,n,a),M.group.width=i,M.group.height=Array.isArray(s)?s[n]:s,M._vtable.padding&&(c=M._vtable.padding),M.text.textAlign&&(d=M.text.textAlign),M.text.textBaseline&&(u=M.text.textBaseline),"body"===l||M.group.fill||(M.group.fill="#fff");const T=(a.isHeader(e,n)?a._getHeaderLayoutMap(e,n).headerType:a.getBodyColumnType(e,n))||"text";if(AL(v)){AD(e,n,0,g,C,w,t),vF(v,a,_F.bind(null,T,v,S,a,e,n,i,C,w,t,g,c,d,u,A,M,f,y)),t.updateColumnRowNumber(n);const r=a.getRowHeight(n);t.updateColumnHeight(r),g+=r}else{const r=_F(T,v,S,a,e,n,i,C,w,t,g,c,d,u,A,M,f,y);if(t.updateColumnRowNumber(n),m){const i=a.getRowHeight(n);a.getColWidth(e);const{width:o}=r.attribute,{height:s}=r.attribute;r.contentWidth=o,r.contentHeight=s,MF(f,o,s,c,d,u,a),t.updateColumnHeight(i),g+=i}else t.updateColumnHeight(w),g+=w}if(h&&n>h)break}return t.setAttribute("width",i),{width:i,height:g}}function SD(t,e,i,r){let n=0,o=0;const s=e.get(`${t.start.col},${t.start.row};${t.end.col},${t.end.row}`);if(!s||r){for(let e=t.start.col;e<=t.end.col;e++)n+=i.getColWidth(e);for(let e=t.start.row;e<=t.end.row;e++)o+=i.getRowHeight(e);e.set(`${t.start.col},${t.start.row};${t.end.col},${t.end.row}`,{cellWidth:n,cellHeight:o})}else n=s.cellWidth,o=s.cellHeight;return{cellWidth:n,cellHeight:o}}function AD(t,e,i,r,n,o,s){const a=new GO({x:i,y:r,width:n,height:o});a.role="cell",a.col=t,a.row=e,s.addChild(a)}function MD(t,e,i,r,n,o,s,a,l,h){if(r>n||o>s)return;const{layoutMap:c,defaultRowHeight:d,defaultHeaderRowHeight:u,defaultColWidth:g}=l.internalProps;let p=0,f=0;for(let c=r;c<=n;c++){const r=c,n=l.getColWidth(r),g=new GO({x:e+p,y:i,width:n,height:0,clip:!1,pickable:!1});g.role="column",g.col=c,t.addChild(g);const{width:m,height:b}=_D(g,r,n,o,s,l.scenegraph.mergeMap,"columnHeader"===a&&at(u)?u:d,l,a,h);p+=m,f=Math.max(f,b)}t.setAttribute("width",p),t.setAttribute("height",f)}function TD(t){let e=t.firstChild;for(;"group"!==e.type;)e=e._next;return e}function RD(t){let e=t.lastChild;for(;"group"!==e.type;)e=e._prev;return e}function BD(t,e,i,r="left"){for(let n=t;n<=e;n++){const t=i.scenegraph.getColGroup(n);t&&PD(t,i,r);const e=i.scenegraph.getColGroup(n,!0);e&&PD(e,i,r);const o=i.scenegraph.getColGroupInBottom(n);o&&PD(o,i,r)}const n=Math.min(i.scenegraph.proxy.colLimit,i.scenegraph.proxy.bodyRightCol-i.scenegraph.proxy.bodyLeftCol+1),o=i.getColsWidth(i.frozenColCount,i.frozenColCount+n),s=i.getColsWidth(i.frozenColCount,i.colCount-1);i.scenegraph.proxy.xLimitLeft=o/2,i.scenegraph.proxy.xLimitRight=s-o/2}function PD(t,e,i="left"){if("left"===i){let i;const r=function(t){let e=t._prev;for(;e&&"group"!==e.type;)e=e._prev;return e}(t);i=r?r.attribute.x+e.getColWidth(t._prev.col):e.getColsWidth(e.frozenColCount,t.col-1),t.setAttribute("x",i)}else{let i;const r=function(t){let e=t._next;for(;e&&"group"!==e.type;)e=e._next;return e}(t);i=r?r.attribute.x-e.getColWidth(t.col):e.getColsWidth(e.frozenColCount,t.col-1),t.setAttribute("x",i)}}async function kD(t,e,i,r){if(!e)return;const n=e.col,o=e.left;let s;if(s=i?r.bodyRightCol-r.colEnd:r.screenLeftCol-r.referenceCol,function(t,e,i,r,n){t>0?(ED(t,"left",n.screenLeftCol,i,r,n),n.updateDeltaX(r,i,e),n.table.scenegraph.setBodyAndColHeaderX(-r+n.deltaX)):t<0?(ED(-t,"right",n.screenLeftCol,i,r,n),n.updateDeltaX(r,i,e),n.table.scenegraph.setBodyAndColHeaderX(-r+n.deltaX)):(n.updateDeltaX(r,i,e),n.table.scenegraph.setBodyAndColHeaderX(-r+n.deltaX))}(s,n,o,t,r),i){const e=r.table.scenegraph.getColGroup(r.colEnd);if(e){const i=e.attribute.x+e.attribute.width-(r.table.tableNoFrameWidth-r.table.getFrozenColsWidth()-r.table.getRightFrozenColsWidth())-t;r.deltaX=-i,r.table.scenegraph.setBodyAndColHeaderX(-t+r.deltaX)}}r.table.scenegraph.updateNextFrame()}async function ED(t,e,i,r,n,o){if("left"===e&&o.colEnd+t>o.bodyRightCol?t=o.bodyRightCol-o.colEnd:"right"===e&&o.colStart-t<o.bodyLeftCol&&(t=o.colStart-o.bodyLeftCol),0!==t)if(t<0&&(e="left"===e?"right":"left",t=-t),t<o.colEnd-o.colStart){const n="left"===e?o.colStart:o.colEnd-t+1,s="left"===e?o.colStart+t-1:o.colEnd,a="left"===e?o.colEnd+1:o.colStart-t,l="left"===e?o.colEnd+t:o.colStart-1;fD(o.table,a,l),function(t,e,i,r){for(let n=t;n<=e;n++)r.table.scenegraph.bodyGroup.childrenCount>0&&"group"===r.table.scenegraph.bodyGroup.firstChild.type&&OD(r.table.scenegraph.bodyGroup,i,r),r.table.scenegraph.colHeaderGroup.childrenCount>0&&"group"===r.table.scenegraph.colHeaderGroup.firstChild.type&&OD(r.table.scenegraph.colHeaderGroup,i,r),r.table.scenegraph.bottomFrozenGroup.childrenCount>0&&"group"===r.table.scenegraph.bottomFrozenGroup.firstChild.type&&OD(r.table.scenegraph.bottomFrozenGroup,i,r)}(n,s,e,o);const h=a,c=l;o.colStart="left"===e?o.colStart+t:o.colStart-t,o.colEnd="left"===e?o.colEnd+t:o.colEnd-t,FD(h,c,o),BD(h,c,o.table,e);const d=r-((o.table.scenegraph.getColGroup(i)||o.table.scenegraph.getColGroup(i,!0)).attribute.x+o.table.getFrozenColsWidth()+o.table.scenegraph.proxy.deltaX);o.table.scenegraph.proxy.deltaX+=d,o.currentCol="left"===e?o.currentCol+t:o.currentCol-t,o.totalCol=Math.max(0,Math.min(o.table.colCount-1,"left"===e?o.totalCol+t:o.totalCol-t)),o.referenceCol=o.colStart+Math.floor((o.colEnd-o.colStart)/2),o.colUpdatePos=a,o.colUpdateDirection=e,o.table.scenegraph.updateNextFrame()}else{const i="left"===e?o.colStart+t:o.colStart-t,r="left"===e?o.colEnd+t:o.colEnd-t;fD(o.table,i,r);!function(t,e,i,r){r.table.scenegraph.colHeaderGroup.forEachChildren(((n,o)=>{"group"===n.type&&LD(n,"left"===i?n.col+e:n.col-e,0===o?t:n._prev.attribute.x+r.table.getColWidth(n._prev.col))})),r.table.scenegraph.bottomFrozenGroup.forEachChildren(((n,o)=>{"group"===n.type&&LD(n,"left"===i?n.col+e:n.col-e,0===o?t:n._prev.attribute.x+r.table.getColWidth(n._prev.col))})),r.table.scenegraph.bodyGroup.forEachChildren(((n,o)=>{"group"===n.type&&LD(n,"left"===i?n.col+e:n.col-e,0===o?t:n._prev.attribute.x+r.table.getColWidth(n._prev.col))}))}(o.table.getColsWidth(o.bodyLeftCol,i-1),t,e,o);const n=i,s=r;o.colStart=i,o.colEnd=r,FD(n,s,o),BD(n,s,o.table,r>o.bodyRightCol-(o.colEnd-o.colStart+1)?"right":"left"),o.currentCol="left"===e?o.currentCol+t:o.currentCol-t,o.totalCol=Math.max(0,Math.min(o.table.colCount-1,"left"===e?o.totalCol+t:o.totalCol-t)),o.referenceCol=o.colStart+Math.floor((o.colEnd-o.colStart)/2),o.colUpdatePos=o.colStart,o.colUpdateDirection=r>o.bodyRightCol-(o.colEnd-o.colStart+1)?"right":"left",o.table.scenegraph.updateNextFrame()}}function LD(t,e,i){t.col=e,t.forEachChildren((t=>{t.col=e,t.needUpdate=!0})),t.setAttribute("x",i),t.needUpdate=!0}function HD(t,e){if(!t)return;let i=t.firstChild;for(;i;){i=e.updateCellGroupContent(i)._next}t.needUpdate=!1,t.setAttribute("width",e.table.getColWidth(t.col))}function ID(t,e){if(!t)return;const i=e.screenTopRow,r=Math.max(e.bodyTopRow,i-1*e.screenRowCount),n=Math.min(e.bodyBottomRow,i+2*e.screenRowCount);for(let i=r;i<=n;i++){const r=e.highPerformanceGetCell(t.col,i,!0);e.updateCellGroupContent(r)}e.rowUpdatePos=e.rowStart,t.needUpdate=!1,t.setAttribute("width",e.table.getColWidth(t.col))}function OD(t,e,i){if("left"===e){const e=TD(t),r=RD(t);LD(e,r.col+1,r.attribute.x+i.table.getColWidth(r.col)),t.appendChild(e),t.border&&t.appendChild(t.border)}else{const e=RD(t),r=TD(t);LD(e,r.col-1,r.attribute.x-i.table.getColWidth(r.col-1)),t.insertBefore(e,t.firstChild)}}function FD(t,e,i){for(let r=t;r<=e;r++){const t=i.table.scenegraph.getColGroup(r,!0);t&&HD(t,i);const e=i.table.scenegraph.getColGroupInBottom(r);e&&HD(e,i);const n=i.table.scenegraph.getColGroupInRightTopCorner(r);n&&HD(n,i);const o=i.table.scenegraph.getColGroupInRightBottomCorner(r);o&&HD(o,i);const s=i.table.scenegraph.getColGroup(r);s&&ID(s,i)}i.progress()}function zD(t,e,i,r,n,o="up",s){if("up"===o)for(let o=t;o<=e;o++)for(let t=i;t<=r;t++){const e=n.scenegraph.highPerformanceGetCell(o,t,!0);if("cell"!==e.role||!e.row)continue;let i;if(e._prev)i=e._prev?.attribute.y+n.getRowHeight(e._prev.row);else if(s){if(i=n.scenegraph.highPerformanceGetCell(o,r+1,!0).attribute.y,Z(i))for(let e=t;e<=r;e++)i-=n.getRowHeight(e)}else i=n.getRowsHeight(n.columnHeaderLevelCount,e.row-1);Z(i)&&e.setAttribute("y",i)}else for(let o=t;o<=e;o++)for(let t=r;t>=i;t--){const e=n.scenegraph.highPerformanceGetCell(o,t,!0);if("cell"!==e.role||!e.row)continue;let r;if(e._next)r=e._next?.attribute.y-n.getRowHeight(e.row);else if(s){r=n.scenegraph.highPerformanceGetCell(o,i-1,!0).attribute.y;for(let e=i-1;e<t;e++){r+=n.getRowHeight(e)}}else r=n.getRowsHeight(n.columnHeaderLevelCount,e.row-1);Z(r)&&e.setAttribute("y",r)}const a=Math.min(n.scenegraph.proxy.rowLimit,n.scenegraph.proxy.bodyBottomRow-n.scenegraph.proxy.bodyTopRow+1),l=n.getRowsHeight(n.columnHeaderLevelCount,n.columnHeaderLevelCount+a),h=n.getRowsHeight(n.columnHeaderLevelCount,n.rowCount-1);n.scenegraph.proxy.yLimitTop=l/2,n.scenegraph.proxy.yLimitBottom=h-l/2}async function DD(t,e,i,r){if(!e)return;const n=e.row,o=e.top;let s;if(s=i?r.bodyBottomRow-r.rowEnd:n-r.referenceRow,function(t,e,i,r,n){t>0?(WD(t,"up",e,i,r,n),n.updateDeltaY(r,i,e),n.updateBody(r-n.deltaY)):t<0?(WD(-t,"down",e,i,r,n),n.updateDeltaY(r,i,e),n.updateBody(r-n.deltaY)):(n.updateDeltaY(r,i,e),n.updateBody(r-n.deltaY))}(s,n,o,t,r),i){const e=r.table.scenegraph.highPerformanceGetCell(r.colStart,r.rowEnd,!0);if("cell"===e.role){const i=e.attribute.y+e.attribute.height-(r.table.tableNoFrameHeight-r.table.getFrozenRowsHeight()-r.table.getBottomFrozenRowsHeight())-t;r.deltaY=-i,r.updateBody(t-r.deltaY)}}}async function WD(t,e,i,r,n,o){if("up"===e&&o.rowEnd+t>o.bodyBottomRow?t=o.bodyBottomRow-o.rowEnd:"down"===e&&o.rowStart-t<o.bodyTopRow&&(t=o.rowStart-o.bodyTopRow),0!==t)if(t<0&&(e="up"===e?"down":"up",t=-t),t<o.rowEnd-o.rowStart){const r="up"===e?o.rowStart:o.rowEnd-t+1,n="up"===e?o.rowStart+t-1:o.rowEnd,s="up"===e?o.rowEnd+1:o.rowStart-t,a="up"===e?o.rowEnd+t:o.rowStart-1;let l,h;if("autoHeight"===o.table.heightMode)l=s,h=a;else{l=Math.max(o.bodyTopRow,i-1*o.screenRowCount),h=Math.min(o.bodyBottomRow,i+2*o.screenRowCount)}cz(o.table,l,h,!1),function(t,e,i,r){for(let n=0;n<r.table.frozenColCount;n++){const o=r.table.scenegraph.getColGroup(n);if(o)for(let n=t;n<=e;n++)ND(o,i,r)}for(let n=r.table.colCount-r.table.rightFrozenColCount;n<r.table.colCount;n++){const o=r.table.scenegraph.getColGroup(n);if(o)for(let n=t;n<=e;n++)ND(o,i,r)}for(let n=r.bodyLeftCol;n<=r.bodyRightCol;n++){const o=r.table.scenegraph.getColGroup(n);if(o)for(let n=t;n<=e;n++)ND(o,i,r)}}(r,n,e,o),o.rowStart="up"===e?o.rowStart+t:o.rowStart-t,o.rowEnd="up"===e?o.rowEnd+t:o.rowEnd-t;const c=GD(l,h,o,!0);"autoHeight"===o.table.heightMode&&(zD(o.bodyLeftCol,o.bodyRightCol,l,h,o.table,a>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",!0),zD(0,o.table.frozenColCount-1,l,h,o.table,a>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",!0),zD(o.table.colCount-o.table.rightFrozenColCount,o.table.colCount-1,l,h,o.table,a>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",!0)),o.currentRow="up"===e?o.currentRow+t:o.currentRow-t,o.totalRow=Math.max(0,Math.min(o.bodyBottomRow,"up"===e?o.totalRow+t:o.totalRow-t)),o.referenceRow=o.rowStart+Math.floor((o.rowEnd-o.rowStart)/2),"autoHeight"===o.table.heightMode&&c?o.rowUpdatePos=Math.min(o.rowUpdatePos,o.rowEnd+1):o.rowUpdatePos=Math.min(o.rowUpdatePos,s),o.rowUpdateDirection=e,o.table.scenegraph.updateNextFrame(),await o.progress()}else{const r="up"===e?o.rowStart+t:o.rowStart-t,n="up"===e?o.rowEnd+t:o.rowEnd-t,s=o.table.getRowsHeight(o.bodyTopRow,r-1);let a,l;"autoHeight"===o.table.heightMode?(a=r,l=n):(a=Math.max(o.bodyTopRow,i-1*o.screenRowCount),l=Math.min(o.bodyBottomRow,i+2*o.screenRowCount)),cz(o.table,a,l,!1),function(t,e,i,r){for(let n=0;n<r.table.frozenColCount;n++){const o=r.table.scenegraph.getColGroup(n);o?.forEachChildren(((n,o)=>{r.updateCellGroupPosition(n,"up"===i?n.row+e:n.row-e,0===o?t:n._prev.attribute.y+r.table.getRowHeight(n._prev.row))}))}for(let n=r.table.colCount-r.table.rightFrozenColCount;n<r.table.colCount;n++){const o=r.table.scenegraph.getColGroup(n);o?.forEachChildren(((n,o)=>{r.updateCellGroupPosition(n,"up"===i?n.row+e:n.row-e,0===o?t:n._prev.attribute.y+r.table.getRowHeight(n._prev.row))}))}for(let n=r.bodyLeftCol;n<=r.bodyRightCol;n++){const o=r.table.scenegraph.getColGroup(n);o?.forEachChildren(((n,o)=>{r.updateCellGroupPosition(n,"up"===i?n.row+e:n.row-e,0===o?t:n._prev.attribute.y+r.table.getRowHeight(n._prev.row))}))}}(s,t,e,o),o.rowStart=r,o.rowEnd=n;const h=GD(a,l,o,!0);"autoHeight"===o.table.heightMode&&(zD(o.bodyLeftCol,o.bodyRightCol,a,l,o.table,n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up"),zD(0,o.table.frozenColCount-1,a,l,o.table,n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up"),zD(o.table.colCount-o.table.rightFrozenColCount,o.table.colCount-1,a,l,o.table,n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up")),o.currentRow="up"===e?o.currentRow+t:o.currentRow-t,o.totalRow=Math.max(0,Math.min(o.bodyBottomRow,"up"===e?o.totalRow+t:o.totalRow-t)),o.referenceRow=o.rowStart+Math.floor((o.rowEnd-o.rowStart)/2),"autoHeight"===o.table.heightMode&&h?o.rowUpdatePos=o.rowEnd+1:o.rowUpdatePos=o.rowStart,o.rowUpdateDirection=n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",o.table.scenegraph.updateNextFrame(),await o.progress()}}function ND(t,e,i){if(t.childrenCount>=1)if("up"===e){const e=t.firstChild;i.updateCellGroupPosition(e,t.lastChild.row+1,t.lastChild.attribute.y+i.table.getRowHeight(t.lastChild.row)),t.appendChild(e)}else{const e=t.lastChild;i.updateCellGroupPosition(e,t.firstChild.row-1,t.firstChild.attribute.y-i.table.getRowHeight(e.row)),t.insertBefore(e,t.firstChild)}}function GD(t,e,i,r=!1){for(let r=0;r<i.table.frozenColCount;r++)for(let n=t;n<=e;n++){const t=i.highPerformanceGetCell(r,n,!0);i.updateCellGroupContent(t)}for(let r=i.table.colCount-i.table.rightFrozenColCount;r<i.table.colCount;r++)for(let n=t;n<=e;n++){const t=i.highPerformanceGetCell(r,n);i.updateCellGroupContent(t)}let n=i.bodyLeftCol,o=i.bodyRightCol,s=!0;if(r){const t=i.screenLeftCol;n=Math.max(i.bodyLeftCol,t-1*i.screenColCount),o=Math.min(i.bodyRightCol,t+2*i.screenColCount),n===i.bodyLeftCol&&o===i.bodyRightCol||(s=!1)}for(let r=n;r<=o;r++)for(let n=t;n<=e;n++){const t=i.highPerformanceGetCell(r,n);i.updateCellGroupContent(t)}return i.table.scenegraph.updateNextFrame(),s}function jD(t){const{changedCells:e}=t.internalProps.stick;e.forEach((e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((t=>{t.setAttributes({dx:e.dx,dy:e.dy})}))})),e.clear();const{scrollTop:i,scrollLeft:r,frozenRowCount:n,frozenColCount:o}=t,s=t.getFrozenRowsHeight(),a=t.getFrozenColsWidth(),{row:l}=t.getRowAt(i+s+1),{col:h}=t.getColAt(r+a+1),c=Math.max(l,t.frozenRowCount),d=Math.max(h,t.frozenColCount),u=t.getAllRowsHeight()>t.tableNoFrameHeight?t.getRowAt(i+t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()-1).row:t.rowCount-t.bottomFrozenRowCount-1,g=t.getAllColsWidth()>t.tableNoFrameWidth?t.getColAt(r+t.tableNoFrameWidth-t.getRightFrozenColsWidth()-1).col:t.colCount-t.rightFrozenColCount-1;if(!(g<0||u<0)){for(let i=0;i<n&&!(g<d);i++)[d,g].forEach((r=>{const n=t._getCellStyle(r,i);if(n?.textStick){KD(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,n?.textStickBaseOnAlign,t)}}));for(let i=0;i<o&&!(u<c);i++)[c,u].forEach((r=>{const n=t._getCellStyle(i,r);if(n?.textStick&&"tree"!==t.internalProps.layoutMap.rowHierarchyType){VD(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,n?.textStickBaseOnAlign,t)}}));for(let i=d;i<=g&&!(u<c);i++)[c,u].forEach((r=>{const n=t._getCellStyle(i,r);if(n?.textStick){VD(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,n?.textStickBaseOnAlign,t)}}));for(let i=c;i<u&&!(g<d);i++)[d,g].forEach((r=>{const n=t._getCellStyle(r,i);if(t._getCellStyle(r,i)?.textStick){KD(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,n?.textStickBaseOnAlign,t)}}))}}function VD(t,e,i,r,n,o){if(at(t.mergeStartCol)&&at(t.mergeStartRow)&&at(t.mergeEndCol)&&at(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=bz(t,o.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){UD(o.scenegraph.getCell(t,s),e,i,r,n)}}else UD(t,e,i,r,n)}function UD(t,e,i,r,n){const o=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!o)return;if("image"===o.type){const{image:t}=o.attribute;if(!t||!o.resources)return;if("success"!==o.resources.get(t).state)return}const s=o.textBaseline??"top";o.AABBBounds.width();const a=o.globalAABBBounds.y1,l=o.globalAABBBounds.y2;if("middle"===s&&n){const n=t.globalAABBBounds.y1+(t.firstChild?.attribute.dy??0),s=n+(t.contentHeight??t.attribute.height??0);if(n<e||s>i){const a=Math.max(n,e),l=Math.min(s,i),h=o.globalTransMatrix.f-(l+a)/2+o.AABBBounds.height()/2;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dy",(t.attribute.dy??0)-h+2)}))}}else if(a<e){const i=a-e;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dy",(t.attribute.dy??0)-i+2)}))}else if(l>i){const e=l-i;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dy",(t.attribute.dy??0)-e)}))}}function KD(t,e,i,r,n,o){if(at(t.mergeStartCol)&&at(t.mergeStartRow)&&at(t.mergeEndCol)&&at(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=bz(t,o.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){$D(o.scenegraph.getCell(t,s),e,i,r,n)}}else $D(t,e,i,r,n)}function $D(t,e,i,r,n){const o=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!o)return;if("image"===o.type){const{image:t}=o.attribute;if(!t||!o.resources)return;if("success"!==o.resources.get(t).state)return}const s=o.attribute.textAlign??o.textAlign??"left";o.AABBBounds.width();const a=o.globalAABBBounds.x1,l=o.globalAABBBounds.x2;if("center"===s&&n){const n=t.globalAABBBounds.x1+(t.firstChild?.attribute.dx??0),s=n+(t.contentWidth??t.attribute.width??0);if(n<e||s>i){const a=Math.max(n,e),l=Math.min(s,i),h=o.globalTransMatrix.e-(l+a)/2;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dx",(t.attribute.dx??0)-h+2)}))}}else if(a<e){const i=a-e;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dx",(t.attribute.dx??0)-i+2)}))}else if(l>i){const e=l-i;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dx",(t.attribute.dx??0)-e)}))}}function YD(t){const e=t.internalProps.layoutMap.headerObjects,i=t.internalProps.layoutMap.columnObjects;for(let t=0;t<e.length;t++){const i=e[t];if(i&&i.style?.textStick)return!0}for(let t=0;t<i.length;t++){const e=i[t];if(e&&e.style?.textStick)return!0}return!!(t.theme.headerStyle.textStick||t.theme.rowHeaderStyle.textStick||t.theme.bodyStyle.textStick)}xD.role="empty";class XD{table;isRelease=!1;mode="column";isProgressing;rowLimit=200;currentRow=0;totalRow;yLimitTop;yLimitBottom;rowStart=0;rowEnd=0;referenceRow=0;bodyTopRow;bodyBottomRow;screenRowCount;firstScreenRowLimit;taskRowCount;rowUpdatePos;rowUpdateDirection;screenTopRow=0;totalActualBodyRowCount;deltaY=0;deltaHeight=0;colLimit=100;bodyRightCol;totalCol;colStart;colEnd;taskColCount;xLimitLeft;xLimitRight;screenColCount;firstScreenColLimit;colUpdatePos;currentCol;referenceCol;screenLeftCol=0;colUpdateDirection;totalActualBodyColCount;deltaX=0;deltaWidth=0;cellCache=new Map;constructor(t){this.table=t,this.table.isPivotChart()?(this.rowLimit=Math.max(100,Math.ceil(2*t.tableNoFrameHeight/t.defaultRowHeight)),this.colLimit=Math.max(100,Math.ceil(2*t.tableNoFrameWidth/t.defaultColWidth))):"autoHeight"===this.table.heightMode?this.rowLimit=Math.max(100,Math.ceil(2*t.tableNoFrameHeight/t.defaultRowHeight)):("autoWidth"===this.table.widthMode||(this.rowLimit=Math.max(200,Math.ceil(2*t.tableNoFrameHeight/t.defaultRowHeight))),this.colLimit=Math.max(100,Math.ceil(2*t.tableNoFrameWidth/t.defaultColWidth))),this.table.internalProps.transpose?this.mode="row":this.table.isPivotTable()&&(this.mode="pivot"),this.table.options.maintainedDataCount&&(this.rowLimit=this.table.options.maintainedDataCount)}get bodyLeftCol(){return this.table.frozenColCount}setParamsForColumn(){this.bodyRightCol=this.table.colCount-1-this.table.rightFrozenColCount;const t=Math.min(this.colLimit,this.bodyRightCol-this.bodyLeftCol+1);this.totalActualBodyColCount=t,this.totalCol=this.bodyLeftCol+t-1,this.colStart=this.bodyLeftCol,this.colEnd=this.totalCol;const e=this.table.defaultColWidth;this.taskColCount=1*Math.ceil(this.table.tableNoFrameWidth/e);const i=e*t,r=e*(this.bodyRightCol-this.bodyLeftCol+1);this.xLimitLeft=i/2,this.xLimitRight=r-i/2;const n=5*this.table.tableNoFrameWidth;this.screenColCount=Math.ceil(this.table.tableNoFrameWidth/e),this.firstScreenColLimit=Math.max(15,this.bodyLeftCol+Math.min(this.colLimit,Math.ceil(n/e))),this.colUpdatePos=this.bodyRightCol}setParamsForRow(){this.bodyTopRow=this.table.columnHeaderLevelCount,this.bodyBottomRow=this.table.rowCount-1-this.table.bottomFrozenRowCount;const t=Math.min(this.rowLimit,this.bodyBottomRow-this.bodyTopRow+1);this.totalActualBodyRowCount=t,this.totalRow=this.bodyTopRow+t-1,this.rowStart=this.bodyTopRow,this.rowEnd=this.totalRow;const e=this.table.defaultRowHeight;this.taskRowCount=1*Math.ceil(this.table.tableNoFrameHeight/e);const i=e*t,r=e*(this.bodyBottomRow-this.bodyTopRow+1);this.yLimitTop=i/2,this.yLimitBottom=r-i/2;const n=5*this.table.tableNoFrameHeight;this.screenRowCount=Math.ceil(this.table.tableNoFrameHeight/e),this.firstScreenRowLimit=Math.max(30,this.bodyTopRow+Math.min(this.rowLimit,Math.ceil(n/e))),this.rowUpdatePos=this.bodyBottomRow}resize(){const t=this.table.defaultColWidth;this.taskColCount=1*Math.ceil(this.table.tableNoFrameWidth/t);const e=5*this.table.tableNoFrameWidth;this.screenColCount=Math.ceil(this.table.tableNoFrameWidth/t),this.firstScreenColLimit=this.bodyLeftCol+Math.min(this.colLimit,Math.ceil(e/t));const i=this.table.defaultRowHeight;this.taskRowCount=1*Math.ceil(this.table.tableNoFrameHeight/i);const r=5*this.table.tableNoFrameHeight;this.screenRowCount=Math.ceil(this.table.tableNoFrameHeight/i),this.firstScreenRowLimit=this.bodyTopRow+Math.min(this.rowLimit,Math.ceil(r/i))}createGroupForFirstScreen(t,e,i,r,n,o,s,a){!function(t,e,i,r,n,o,s,a,l){const{table:h}=l,{leftBottomCornerGroup:c,rightTopCornerGroup:d,rightBottomCornerGroup:u}=h.scenegraph;let g,p;l.setParamsForRow(),l.setParamsForColumn(),g="adaptive"===h.widthMode||h.options.autoWrapText&&("adaptive"===h.heightMode||"autoHeight"===h.heightMode)?h.colCount-1:Math.min(l.firstScreenColLimit,h.colCount-1),p="adaptive"===h.heightMode?h.rowCount-1:Math.min(l.firstScreenRowLimit,h.rowCount-1),0===h.internalProps._widthResizedColMap.size&&fD(h,0,g),0===h.internalProps._heightResizedRowMap.size&&cz(h,0,p),g<h.colCount-h.rightFrozenColCount&&fD(h,h.colCount-h.rightFrozenColCount,h.colCount-1),p<h.rowCount-h.bottomFrozenRowCount&&cz(h,h.rowCount-h.bottomFrozenRowCount,h.rowCount-1),h.scenegraph.colHeaderGroup.setAttribute("x",h.getFrozenColsWidth()),h.scenegraph.rowHeaderGroup.setAttribute("y",h.getFrozenRowsHeight()),h.scenegraph.bottomFrozenGroup.setAttribute("x",h.getFrozenColsWidth()),h.scenegraph.rightFrozenGroup.setAttribute("y",h.getFrozenRowsHeight()),h.scenegraph.bodyGroup.setAttributes({x:h.getFrozenColsWidth(),y:h.getFrozenRowsHeight()}),MD(t,s,a,0,h.frozenColCount-1,0,h.columnHeaderLevelCount-1,h.isListTable()?"columnHeader":"cornerHeader",h),g-h.rightFrozenColCount>=h.frozenColCount&&MD(e,s,a,h.frozenColCount,g-h.rightFrozenColCount,0,h.columnHeaderLevelCount-1,"columnHeader",h),h.frozenColCount>0&&(h.leftRowSeriesNumberCount>0&&MD(i,s,a,0,h.leftRowSeriesNumberCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.rowHeaderLevelCount>0&&MD(i,s,a,h.leftRowSeriesNumberCount,h.leftRowSeriesNumberCount+h.rowHeaderLevelCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.frozenColCount>h.rowHeaderLevelCount+h.leftRowSeriesNumberCount&&MD(i,s,a,h.rowHeaderLevelCount+h.leftRowSeriesNumberCount,h.frozenColCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"body",h)),h.bottomFrozenRowCount>0&&(h.frozenColCount>0&&(h.leftRowSeriesNumberCount>0&&MD(c,s,a,0,h.leftRowSeriesNumberCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"rowHeader",h),h.rowHeaderLevelCount>0&&MD(c,s,a,h.leftRowSeriesNumberCount,h.leftRowSeriesNumberCount+h.rowHeaderLevelCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"rowHeader",h),h.frozenColCount>h.rowHeaderLevelCount+h.leftRowSeriesNumberCount&&MD(c,s,a,h.rowHeaderLevelCount+h.leftRowSeriesNumberCount,h.frozenColCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"body",h)),g-h.rightFrozenColCount>=h.frozenColCount&&MD(n,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,h.isPivotChart()?"rowHeader":"body",h)),h.rightFrozenColCount>0&&(MD(d,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,0,h.columnHeaderLevelCount-1,"columnHeader",h),MD(r,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,h.isPivotChart()?"rowHeader":"body",h)),h.bottomFrozenRowCount>0&&h.rightFrozenColCount>0&&MD(u,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"body",h),g-h.rightFrozenColCount>=h.frozenColCount&&MD(o,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"body",h),o.firstChild||e.firstChild||t.firstChild||i.firstChild?(l.currentRow=o.firstChild?.rowNumber??i.firstChild?.rowNumber??l.totalRow,l.rowEnd=l.currentRow,l.rowUpdatePos=l.rowEnd+1,l.referenceRow=l.rowStart+Math.floor((l.rowEnd-l.rowStart)/2),l.currentCol=o.lastChild?.col??e.lastChild?.col??i.lastChild?.col??t.lastChild?.col??l.totalCol,l.colEnd=l.currentCol,l.colUpdatePos=l.colEnd+1,l.referenceCol=l.colStart+Math.floor((l.colEnd-l.colStart)/2),l.progress()):(l.currentRow=l.totalRow,l.rowEnd=l.currentRow,l.rowUpdatePos=l.rowEnd+1,l.referenceRow=l.rowStart+Math.floor((l.rowEnd-l.rowStart)/2),l.currentCol=l.totalCol,l.colEnd=l.currentCol,l.colUpdatePos=l.colEnd+1,l.referenceCol=l.colStart+Math.floor((l.colEnd-l.colStart)/2))}(t,e,i,r,n,o,s,a,this)}async progress(){if(!this.isProgressing)return this.isProgressing=!0,new Promise(((t,e)=>{setTimeout((async()=>{this.isProgressing=!1,this.isRelease||(this.colUpdatePos<=this.colEnd?(await this.updateColCellGroupsAsync(),await this.progress()):this.rowUpdatePos<=this.rowEnd?(await this.updateRowCellGroupsAsync(),await this.progress()):this.currentCol<this.totalCol?(await this.createCol(),await this.progress()):this.currentRow<this.totalRow&&(await this.createRow(),await this.progress()),jD(this.table),this.table.scenegraph.updateNextFrame(),t())}),16)}))}async createRow(){this.taskRowCount&&this.createRowCellGroup(this.taskRowCount)}async createCol(){this.taskColCount&&this.createColGroup(this.taskRowCount)}createRowCellGroup(t){const e=Math.min(this.totalRow,this.currentRow+t);if(cz(this.table,this.currentRow+1,e,!1),this.rowEnd=e,this.table.frozenColCount){let t=0;for(let i=0;i<this.table.frozenColCount;i++){const r=this.table.scenegraph.getColGroup(i),n=this.table.isListTable()?"body":"rowHeader",{height:o}=_D(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,n);t=Math.max(t,o),this.table.scenegraph.rowHeaderGroup.setAttribute("height",t)}}if(this.table.rightFrozenColCount){let t=0;for(let i=this.table.colCount-this.table.rightFrozenColCount;i<this.table.colCount;i++){const r=this.table.scenegraph.getColGroup(i),n=this.table.isPivotChart()?"rowHeader":"body",{height:o}=_D(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,n);t=Math.max(t,o),this.table.scenegraph.rightFrozenGroup.setAttribute("height",t)}}let i=0;for(let t=this.bodyLeftCol;t<=this.bodyRightCol;t++){const r=this.table.scenegraph.getColGroup(t);if(!r)continue;const n=t<this.table.rowHeaderLevelCount?"rowHeader":"body",{height:o}=_D(r,t,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,n);i=Math.max(i,o)}this.table.scenegraph.bodyGroup.setAttribute("height",i),this.currentRow=e,this.rowUpdatePos=this.rowEnd,this.table.scenegraph.updateContainer(),this.table.scenegraph.updateBorderSizeAndPosition()}createColGroup(t){const e=Math.min(this.totalCol,this.currentCol+t);fD(this.table,this.currentCol+1,e),this.colEnd=e;for(let t=0;t<this.table.rowCount;t++){const e=this.highPerformanceGetCell(this.currentCol,t);"cell"===e.role&&at(e.mergeStartCol)&&e.mergeStartCol>this.currentCol&&this.table.scenegraph.updateCellContent(e.col,e.row)}if(this.table.columnHeaderLevelCount){const t=this.table.scenegraph.colHeaderGroup.lastChild instanceof GO?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;MD(this.table.scenegraph.colHeaderGroup,i,r,this.currentCol+1,e,0,this.table.columnHeaderLevelCount-1,"columnHeader",this.table)}if(this.table.bottomFrozenRowCount){const t=this.table.scenegraph.bottomFrozenGroup.lastChild instanceof GO?this.table.scenegraph.bottomFrozenGroup.lastChild:this.table.scenegraph.bottomFrozenGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;MD(this.table.scenegraph.bottomFrozenGroup,i,r,this.currentCol+1,e,this.table.rowCount-this.table.bottomFrozenRowCount,this.table.rowCount-1,"columnHeader",this.table)}let i=this.table.scenegraph.bodyGroup.lastChild&&(this.table.scenegraph.bodyGroup.lastChild instanceof GO?this.table.scenegraph.bodyGroup.lastChild:this.table.scenegraph.bodyGroup.lastChild._prev);i||(i=this.table.scenegraph.colHeaderGroup.lastChild&&(this.table.scenegraph.colHeaderGroup.lastChild instanceof GO?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev));const r=i.attribute.x+i.attribute.width,n=i.attribute.y;MD(this.table.scenegraph.bodyGroup,r,n,this.currentCol+1,e,this.rowStart,this.rowEnd,"body",this.table),this.currentCol=e,this.colUpdatePos=this.colEnd,this.table.scenegraph.updateContainer(),this.table.scenegraph.updateBorderSizeAndPosition()}async setY(t,e=!1){const i=this.table.getRowsHeight(this.bodyTopRow,this.bodyTopRow+(this.rowEnd-this.rowStart+1))/2,r=this.table.getAllRowsHeight()-i,n=this.table.getTargetRowAt(t+this.table.scenegraph.colHeaderGroup.attribute.height);n&&(this.screenTopRow=n.row),t<i&&this.rowStart===this.bodyTopRow||t>r&&this.rowEnd===this.bodyBottomRow?(this.updateDeltaY(t),this.updateBody(t-this.deltaY)):this.table.scenegraph.bodyGroup.firstChild&&0!==this.table.scenegraph.bodyGroup.firstChild.childrenCount||this.table.scenegraph.rowHeaderGroup.firstChild&&0!==this.table.scenegraph.rowHeaderGroup.firstChild.childrenCount?this.dynamicSetY(t,n,e):(this.updateDeltaY(t),this.updateBody(t-this.deltaY))}async setX(t,e=!1){const i=this.table.getColsWidth(this.bodyLeftCol,this.bodyLeftCol+(this.colEnd-this.colStart+1))/2,r=this.table.getAllColsWidth()-i,n=this.table.getTargetColAt(t+this.table.scenegraph.rowHeaderGroup.attribute.width);n&&(this.screenLeftCol=n.col),t<i&&this.colStart===this.bodyLeftCol||t>r&&this.colEnd===this.bodyRightCol||this.table.scenegraph.bodyGroup.firstChild&&0===this.table.scenegraph.bodyGroup.firstChild.childrenCount?(this.updateDeltaX(t),this.table.scenegraph.setBodyAndColHeaderX(-t+this.deltaX)):this.dynamicSetX(t,n,e)}async dynamicSetY(t,e,i=!1){DD(t,e,i,this)}async dynamicSetX(t,e,i=!1){kD(t,e,i,this)}updateBody(t){this.table.scenegraph.setBodyAndRowHeaderY(-t)}async updateRowCellGroupsAsync(){this.updateCellGroups(this.taskRowCount)}updateCellGroups(t){const e=Math.min(this.bodyBottomRow,this.rowUpdatePos+t);"autoHeight"===this.table.heightMode&&cz(this.table,this.rowUpdatePos,e,!1),GD(this.rowUpdatePos,e,this),"autoHeight"===this.table.heightMode&&(zD(this.bodyLeftCol,this.bodyRightCol,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),zD(0,this.table.frozenColCount-1,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),zD(this.table.colCount-this.table.rightFrozenColCount,this.table.colCount-1,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0)),this.rowUpdatePos=e+1}updateBottomFrozenCellGroups(){const t=this.table.rowCount-this.table.bottomFrozenRowCount,e=this.table.rowCount-1;"autoHeight"===this.table.heightMode&&cz(this.table,t,e,!1),GD(t,e,this),"autoHeight"===this.table.heightMode&&(zD(this.bodyLeftCol,this.bodyRightCol,t,e,this.table,this.rowUpdateDirection),zD(0,this.table.frozenColCount-1,t,e,this.table,this.rowUpdateDirection),zD(this.table.colCount-this.table.rightFrozenColCount,this.table.colCount-1,t,e,this.table,this.rowUpdateDirection))}updateRightFrozenCellGroups(){const t=this.table.colCount-this.table.rightFrozenColCount,e=this.table.colCount-1;"autoWidth"===this.table.widthMode&&fD(this.table,t,e,!1),FD(t,e,this),"autoHeight"===this.table.heightMode&&BD(t,e,this.table,this.colUpdateDirection)}async updateColCellGroupsAsync(){this.updateColGroups(this.taskRowCount)}updateColGroups(t){const e=Math.min(this.bodyRightCol,this.colUpdatePos+t);fD(this.table,this.colUpdatePos,e),FD(this.colUpdatePos,e,this),this.colUpdatePos=e+1}updateCellGroupPosition(t,e,i){t.row=e,t.mergeStartCol=void 0,t.mergeStartRow=void 0,t.mergeEndCol=void 0,t.mergeEndRow=void 0,t.setAttribute("y",i),t.needUpdate=!0,t.needUpdateForAutoRowHeight=!0}updateCellGroupContent(t){if(!t.needUpdate||"cell"!==t.role)return t;const e=this.table.scenegraph.updateCellContent(t.col,t.row);return t.needUpdate=!1,e||t}async sortCellVertical(){await async function(t){t.table.scenegraph.bodyGroup.forEachChildren(((t,e)=>{"group"===t.type&&(t.needUpdate=!0,t?.forEachChildren((t=>{t.needUpdate=!0})))}));for(let e=0;e<t.table.frozenColCount;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.rowStart;i<=t.rowEnd;i++)t.table.scenegraph.updateCellContent(e,i);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}for(let e=t.colStart;e<=t.colEnd;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}for(let e=t.table.colCount-t.table.rightFrozenColCount;e<t.table.colCount;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.rowStart;i<=t.rowEnd;i++)t.table.scenegraph.updateCellContent(e,i);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}let e,i;"autoHeight"===t.table.heightMode?(e=t.rowStart,i=t.rowEnd):(e=Math.max(t.bodyTopRow,t.screenTopRow-1*t.screenRowCount),i=Math.min(t.bodyBottomRow,t.screenTopRow+2*t.screenRowCount));const r=t.table.getAllRowsHeight();cz(t.table,e,i);const n=t.table.getAllRowsHeight();r!==n&&t.table.scenegraph.updateContainerHeight(t.table.frozenRowCount,n-r),GD(e,i,t),"autoHeight"===t.table.heightMode&&zD(t.bodyLeftCol,t.bodyRightCol,e,i,t.table,t.rowEnd>t.bodyBottomRow-(t.rowEnd-t.rowStart+1)?"down":"up"),t.rowUpdatePos=t.rowStart,t.rowUpdateDirection=t.rowEnd>t.bodyBottomRow-(t.rowEnd-t.rowStart+1)?"down":"up",t.table.scenegraph.updateNextFrame(),"autoHeight"!==t.table.heightMode&&await t.progress()}(this)}async sortCellHorizontal(){await async function(t){t.table.scenegraph.bodyGroup.forEachChildren(((t,e)=>{"group"===t.type&&(t.needUpdate=!0,t?.forEachChildren((t=>{t.needUpdate=!0})))}));for(let e=t.colStart;e<=t.colEnd;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}for(let e=t.table.colCount-t.table.rightFrozenColCount;e<t.table.colCount;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.rowStart;i<=t.rowEnd;i++)t.table.scenegraph.updateCellContent(e,i);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}const e=Math.max(t.bodyLeftCol,t.screenLeftCol-1*t.screenColCount),i=Math.min(t.bodyRightCol,t.screenLeftCol+2*t.screenColCount);fD(t.table,e,i),FD(e,i,t),t.colUpdatePos=t.colStart,t.colUpdateDirection=t.colEnd>t.bodyRightCol-(t.colEnd-t.colStart+1)?"right":"left",t.table.scenegraph.updateNextFrame(),await t.progress()}(this)}highPerformanceGetCell(t,e,i){if(e>=this.table.columnHeaderLevelCount&&e<this.table.rowCount-this.table.bottomFrozenRowCount&&(e<this.rowStart||e>this.rowEnd))return xD;if(t>=this.table.frozenColCount&&t<this.table.colCount-this.table.rightFrozenColCount&&(t<this.colStart||t>this.colEnd))return xD;if(this.cellCache.get(t)){const r=this.cellCache.get(t);if((r._next||r._prev)&&Math.abs(r.row-e)<e){let n=qD(r,e);return n&&(i||"shadow-cell"!==n.role)||(n=this.table.scenegraph.getCell(t,e,i)),n.row&&this.cellCache.set(t,n),n}const n=this.table.scenegraph.getCell(t,e,i);return n.col===t&&n.row&&this.cellCache.set(t,n),n}const r=this.table.scenegraph.getCell(t,e,i);return r.col===t&&r.row&&this.cellCache.set(t,r),r}updateDeltaY(t,e,i){if(this.rowStart===this.bodyTopRow){const t=this.table.scenegraph.highPerformanceGetCell(this.colStart,this.rowStart,!0);if("cell"===t.role){const e=t.attribute.y;this.deltaY=-e}}else if(this.rowEnd===this.bodyBottomRow){const t=this.table.scenegraph.highPerformanceGetCell(this.colStart,this.rowEnd,!0);if("cell"===t.role){const e=t.attribute.y+t.attribute.height-(this.table.getAllRowsHeight()-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight());this.deltaY=-e}}else if(Z(e)&&Z(i)){let r=this.table.scenegraph.highPerformanceGetCell(this.colStart,i,!0);"cell"!==r.role&&(r=this.table.scenegraph.highPerformanceGetCell(0,i,!0));const n=t-this.deltaY,o=e-n,s=r.attribute.y-n+this.table.getFrozenRowsHeight();this.deltaY=o-s}}updateDeltaX(t,e,i){if(this.colStart===this.bodyLeftCol){const t=this.table.scenegraph.getColGroup(this.colStart);if(t){const e=t.attribute.x;this.deltaX=-e}}else if(this.colEnd===this.bodyRightCol){const t=this.table.scenegraph.getColGroup(this.colEnd);if(t){const e=t.attribute.x+t.attribute.width-(this.table.getAllColsWidth()-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth());this.deltaX=-e}}else if(Z(e)&&Z(i)){const r=this.table.scenegraph.getColGroup(i)||this.table.scenegraph.getColGroup(i,!0),n=t-this.deltaX,o=e-n,s=r.attribute.x-n+this.table.getFrozenColsWidth();this.deltaX=o-s}}release(){this.isRelease=!0}}function qD(t,e){if(!t)return null;if(t.row===e)return t;const i=t._prev,r=t._next;return t.row>e&&i&&i.row===t.row-1?qD(i,e):t.row<e&&r&&r.row===t.row+1?qD(r,e):null}function ZD(t,e,i){const[r,n,o,s]=e.split("-"),a=parseInt(r,10),l=parseInt(n,10),h=parseInt(o,10),c=parseInt(s,10);let d,u=a,g=l,p=h,f=c;switch(t.role){case"rowHeader":d=i.table.getBodyVisibleRowRange(),d&&(g=Math.max(l,d.rowStart-1),f=Math.min(c,d.rowEnd+1));break;case"columnHeader":case"bottomFrozen":d=i.table.getBodyVisibleCellRange(),d&&(u=Math.max(a,d.colStart-1),p=Math.min(h,d.colEnd+1));break;case"cornerHeader":case"rightTopCorner":case"leftBottomCorner":case"rightBottomCorner":break;case"rightFrozen":d=i.table.getBodyVisibleCellRange(),d&&(g=Math.max(l,d.rowStart-1),f=Math.min(c,d.rowEnd+1));break;default:d=i.table.getBodyVisibleCellRange(),d&&(g=Math.max(l,d.rowStart-1),f=Math.min(c,d.rowEnd+1),u=Math.max(a,d.colStart-1),p=Math.min(h,d.colEnd+1))}const m=i.table.getColsWidth(u,p),b=i.table.getRowsHeight(g,f),y=i.highPerformanceGetCell(u,g).globalAABBBounds,v=i.highPerformanceGetCell(p,f).globalAABBBounds;t.rect.setAttributes({x:y.x1-i.tableGroup.attribute.x,y:y.y1-i.tableGroup.attribute.y,width:m,height:b,visible:!0}),t.fillhandle&&t.fillhandle.setAttributes({x:v.x2-i.tableGroup.attribute.x-3,y:v.y2-i.tableGroup.attribute.y-3,width:6,height:6,visible:!0});const C=!!i.table.frozenColCount&&a===i.table.frozenColCount,w=!!i.table.rightFrozenColCount&&(i.table.rightFrozenColCount>0&&h===i.table.colCount-i.table.rightFrozenColCount-1),x=!i.table.frozenRowCount||l===i.table.frozenRowCount,_=!!i.table.bottomFrozenRowCount&&c===i.table.rowCount-i.table.bottomFrozenRowCount-1;if(C&&t.rect.attribute.stroke[3]||w&&t.rect.attribute.stroke[1]||x&&t.rect.attribute.stroke[0]||_&&t.rect.attribute.stroke[2]){if(C&&t.rect.attribute.stroke[3]&&i.tableGroup.insertAfter(t.rect,"columnHeader"===t.role?i.cornerHeaderGroup:"bottomFrozen"===t.role?i.leftBottomCornerGroup:i.rowHeaderGroup),_&&t.rect.attribute.stroke[2]&&i.tableGroup.insertAfter(t.rect,"rowHeader"===t.role?i.leftBottomCornerGroup:"rightFrozen"===t.role?i.rightBottomCornerGroup:i.bottomFrozenGroup),x&&t.rect.attribute.stroke[0]&&i.tableGroup.insertAfter(t.rect,"rowHeader"===t.role?i.cornerHeaderGroup:"rightFrozen"===t.role?i.rightTopCornerGroup:i.colHeaderGroup),w&&t.rect.attribute.stroke[1]&&i.tableGroup.insertAfter(t.rect,"columnHeader"===t.role?i.rightTopCornerGroup:"bottomFrozen"===t.role?i.rightBottomCornerGroup:i.rightFrozenGroup),t.rect.attribute.x<i.table.getFrozenColsWidth()&&i.table.scrollLeft>0&&("body"===t.role||"columnHeader"===t.role||"bottomFrozen"===t.role)){const e=t.rect.attribute.width-(i.table.getFrozenColsWidth()-t.rect.attribute.x);t.rect.setAttributes({x:t.rect.attribute.x+(i.table.getFrozenColsWidth()-t.rect.attribute.x),width:e>0?e:0})}if(i.table.getRightFrozenColsWidth()>0&&i.rightFrozenGroup.attribute.height>0&&t.rect.attribute.x+t.rect.attribute.width>i.rightFrozenGroup.attribute.x&&("body"===t.role||"columnHeader"===t.role||"bottomFrozen"===t.role)){const e=i.rightFrozenGroup.attribute.x-t.rect.attribute.x;t.rect.setAttributes({x:t.rect.attribute.x,width:e>0?e:0})}if(t.rect.attribute.y<i.colHeaderGroup.attribute.height&&i.table.scrollTop>0&&("body"===t.role||"rowHeader"===t.role||"rightFrozen"===t.role)){const e=t.rect.attribute.height-(i.colHeaderGroup.attribute.height-t.rect.attribute.y);t.rect.setAttributes({y:t.rect.attribute.y+(i.colHeaderGroup.attribute.height-t.rect.attribute.y),height:e>0?e:0})}if(i.bottomFrozenGroup.attribute.width>0&&i.bottomFrozenGroup.attribute.height>0&&t.rect.attribute.y+t.rect.attribute.height>i.bottomFrozenGroup.attribute.y&&("body"===t.role||"rowHeader"===t.role||"rightFrozen"===t.role)){const e=i.bottomFrozenGroup.attribute.y-t.rect.attribute.y;t.rect.setAttributes({y:t.rect.attribute.y,height:e>0?e:0})}}else i.tableGroup.insertAfter(t.rect,"body"===t.role?i.bodyGroup:"columnHeader"===t.role?i.colHeaderGroup:"rowHeader"===t.role?i.rowHeaderGroup:"cornerHeader"===t.role?i.cornerHeaderGroup:"rightTopCorner"===t.role?i.rightTopCornerGroup:"rightFrozen"===t.role?i.rightFrozenGroup:"leftBottomCorner"===t.role?i.leftBottomCornerGroup:"bottomFrozen"===t.role?i.bottomFrozenGroup:i.rightBottomCornerGroup);let S=0;"number"==typeof t.rect.attribute.lineWidth&&(S=Math.ceil(t.rect.attribute.lineWidth/2)),h===i.table.colCount-1&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[1]??0)/2)),t.rect.setAttributes({width:t.rect.attribute.width-S})),0===a&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[3]??0)/2)),t.rect.setAttributes({x:t.rect.attribute.x+S,width:t.rect.attribute.width-S})),c===i.table.rowCount-1&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[2]??0)/2)),t.rect.setAttributes({height:t.rect.attribute.height-S})),0===l&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[0]??0)/2)),t.rect.setAttributes({y:t.rect.attribute.y+S,height:t.rect.attribute.height-S}))}function JD(t,e,i=!0){const r=e.start.col,n=e.start.row,o=e.end.col,s=e.end.row,a=e.skipBodyMerge;let l=Math.max(Math.min(o,r),0),h=Math.max(Math.min(s,n),0),c=Math.min(Math.max(o,r),t.table.colCount-1),d=Math.min(Math.max(s,n),t.table.rowCount-1);const u=()=>{let e=!1;for(let i=l;i<=c;i++){if(i===l)for(let r=h;r<=d;r++){if(!t.table.isHeader(i,r)&&a)continue;const n=bH(t.table,i,r);if(n&&n.start.col<l){l=n.start.col,e=!0;break}}if(!e&&i===c)for(let r=h;r<=d;r++){if(!t.table.isHeader(i,r)&&a)continue;const n=bH(t.table,i,r);if(n&&Math.min(n.end.col,t.table.colCount-1)>c){c=n.end.col,e=!0;break}}if(e)break}if(!e)for(let i=h;i<=d;i++){if(i===h)for(let r=l;r<=c;r++){if(!t.table.isHeader(r,i)&&a)continue;const n=bH(t.table,r,i);if(n&&n.start.row<h){h=n.start.row,e=!0;break}}if(!e&&i===d)for(let r=l;r<=c;r++){if(!t.table.isHeader(r,i)&&a)continue;const n=bH(t.table,r,i);if(n&&Math.min(n.end.row,t.table.rowCount-1)>d){d=n.end.row,e=!0;break}}if(e)break}e&&u()};i&&u(),t.selectingRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),t.selectingRangeComponents=new Map;let g=!1,p=!1,f=!1,m=!1,b=!1,y=!1,v=!1,C=!1,w=!1;if(l<=t.table.frozenColCount-1&&h<=t.table.frozenRowCount-1&&(y=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&h<=t.table.frozenRowCount-1&&(v=!0),l<=t.table.frozenColCount-1&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(w=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(C=!0),l<=t.table.frozenColCount-1&&d>=t.table.frozenRowCount&&h<=t.table.rowCount-t.table.bottomFrozenRowCount-1&&(g=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&d>=t.table.frozenRowCount&&h<=t.table.rowCount-t.table.bottomFrozenRowCount-1&&(p=!0),h<=t.table.frozenRowCount-1&&c>=t.table.frozenColCount&&l<=t.table.colCount-t.table.rightFrozenColCount-1&&(f=!0),d>=t.table.rowCount-t.table.bottomFrozenRowCount&&c>=t.table.frozenColCount&&l<=t.table.colCount-t.table.rightFrozenColCount-1&&(m=!0),l<=t.table.colCount-t.table.rightFrozenColCount-1&&c>=t.table.frozenColCount&&h<=t.table.rowCount-t.table.bottomFrozenRowCount-1&&d>=t.table.frozenRowCount&&(b=!0),y){const e=Math.min(c,t.table.frozenColCount-1),i=Math.min(d,t.table.frozenRowCount-1),r=[!0,!f,!g,!0];t.createCellSelectBorder(l,h,e,i,"cornerHeader",`${l}${h}${c}${d}`,r)}if(v){const e=Math.max(l,t.table.colCount-t.table.rightFrozenColCount),i=Math.min(d,t.table.frozenRowCount-1),r=[!0,!0,!p,!f];t.createCellSelectBorder(e,h,c,i,"rightTopCorner",`${l}${h}${c}${d}`,r)}if(w){const e=Math.min(c,t.table.frozenColCount-1),i=Math.max(h,t.table.rowCount-t.table.bottomFrozenRowCount),r=[!g,!m,!0,!0];t.createCellSelectBorder(l,i,e,d,"leftBottomCorner",`${l}${h}${c}${d}`,r)}if(C){const e=Math.max(l,t.table.colCount-t.table.rightFrozenColCount),i=Math.max(h,t.table.rowCount-t.table.bottomFrozenRowCount),r=[!p,!0,!0,!m];t.createCellSelectBorder(e,i,c,d,"rightBottomCorner",`${l}${h}${c}${d}`,r)}if(f){const e=Math.max(l,t.table.frozenColCount),i=Math.min(c,t.table.colCount-t.table.rightFrozenColCount-1),r=Math.min(d,t.table.frozenRowCount-1),n=[!0,!v,!b,!y];t.createCellSelectBorder(e,h,i,r,"columnHeader",`${l}${h}${c}${d}`,n)}if(m){const e=Math.max(l,t.table.frozenColCount),i=Math.min(c,t.table.colCount-t.table.rightFrozenColCount-1),r=Math.max(h,t.table.rowCount-t.table.bottomFrozenRowCount),n=[!b,!C,!0,!w];t.createCellSelectBorder(e,r,i,d,"bottomFrozen",`${l}${h}${c}${d}`,n)}if(g){const e=Math.max(h,t.table.frozenRowCount),i=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),r=Math.min(c,t.table.frozenColCount-1),n=[!y,!b,!w,!0];t.createCellSelectBorder(l,e,r,i,"rowHeader",`${l}${h}${c}${d}`,n)}if(p){const e=Math.max(h,t.table.frozenRowCount),i=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),r=Math.max(l,t.table.colCount-t.table.rightFrozenColCount),n=[!v,!0,!C,!b];t.createCellSelectBorder(r,e,c,i,"rightFrozen",`${l}${h}${c}${d}`,n)}if(b){const e=Math.max(l,t.table.frozenColCount),i=Math.max(h,t.table.frozenRowCount),r=Math.min(c,t.table.colCount-t.table.rightFrozenColCount-1),n=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),o=[!f,!p,!m,!g];t.createCellSelectBorder(e,i,r,n,"body",`${l}${h}${c}${d}`,o)}}function QD(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)}))}function tW(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)}))}function eW(t){t.selectingRangeComponents.forEach(((e,i)=>{t.selectedRangeComponents.get(i)&&(t.selectingRangeComponents.get(i).rect.delete(),t.selectingRangeComponents.get(i).fillhandle?.delete()),t.selectedRangeComponents.set(i,e)})),t.selectingRangeComponents=new Map,t.updateNextFrame()}function iW(t){t.selectedRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),t.selectedRangeComponents=new Map}function rW(t,e,i,r){const n=r.scenegraph,o=dL(t.map((t=>t.row))).sort(((t,e)=>e-t)),s=dL(e.map((t=>t.row))).sort(((t,e)=>t-e)),a=dL(i.map((t=>t.row))).sort(((t,e)=>t-e));let l;if(a.length){l=sW(a[0]-1,a[a.length-1]+1,n)}if(s.length){const t=sW(s[0]-1,s[s.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}if(o.length){const t=sW(o[0]-1,o[o.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}o.forEach((t=>{!function(t,e){const i=e.proxy;t>=i.rowStart&&t<=i.rowEnd&&(!function(t,e){for(let i=0;i<e.table.colCount;i++){const r=e.getColGroup(i,!1);if(!r)continue;let n;r.forEachChildren((e=>e.row===t&&(n=e,!0))),n&&(r.updateColumnHeight(-n.attribute.height),r.removeChild(n))}}(t,e),i.rowEnd--,i.currentRow--);i.bodyBottomRow--;const r=Math.min(i.rowLimit,i.bodyBottomRow-i.bodyTopRow+1);i.totalActualBodyRowCount=r,i.totalRow=i.rowStart+r-1}(t,n)}));const h=r.rowHeightsMap;if(o.forEach((t=>{h.delete(t)})),o.length){!function(t){function e(e,i){e.row=i;const r=bH(t.table,e.col,e.row);r?(e.mergeStartCol=r.start.col,e.mergeEndCol=r.end.col,e.mergeStartRow=r.start.row,e.mergeEndRow=r.end.row):(e.mergeStartCol=void 0,e.mergeEndCol=void 0,e.mergeStartRow=void 0,e.mergeEndRow=void 0)}t.bodyGroup.forEachChildren((i=>{let r=t.bodyRowStart;i?.forEachChildren((t=>{e(t,r),r++}))})),t.rowHeaderGroup.forEachChildren((i=>{let r=t.bodyRowStart;i?.forEachChildren((t=>{e(t,r),r++}))})),t.rightFrozenGroup.forEachChildren((i=>{let r=t.bodyRowStart;i?.forEachChildren((t=>{e(t,r),r++}))})),t.bottomFrozenGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount;i?.forEachChildren((t=>{e(t,r),r++}))})),t.leftBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount;i?.forEachChildren((t=>{e(t,r),r++}))})),t.rightBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount;i?.forEachChildren((t=>{e(t,r),r++}))}))}(n);const t=oW(o[o.length-1]-1,o[0]-o.length+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}let c;if(n.table._clearRowRangeHeightsMap(),s.forEach((t=>{const e=function(t,e){const i=e.proxy;i.bodyBottomRow++;const r=Math.min(i.rowLimit,i.bodyBottomRow-i.bodyTopRow+1);if(i.totalActualBodyRowCount=r,i.totalRow=i.rowStart+r-1,t<i.rowStart)return;if(t>i.rowEnd)return i.rowEnd-i.rowStart+1<i.rowLimit?(i.rowEnd++,i.currentRow++,nW(t,e),t):void 0;if(i.rowEnd-i.rowStart+1<i.rowLimit)return i.rowEnd++,i.currentRow++,nW(t,e),t;return t}(t,n);c=c??e,h.insert(t)})),function(t){function e(e,i,r){e.row=i,e.setAttribute("y",r);const n=bH(t.table,e.col,e.row);n?(e.mergeStartCol=n.start.col,e.mergeEndCol=n.end.col,e.mergeStartRow=n.start.row,e.mergeEndRow=n.end.row):(e.mergeStartCol=void 0,e.mergeEndCol=void 0,e.mergeStartRow=void 0,e.mergeEndRow=void 0)}t.bodyGroup.forEachChildren((i=>{let r=t.bodyRowStart,n=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.rowHeaderGroup.forEachChildren((i=>{let r=t.bodyRowStart,n=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.rightFrozenGroup.forEachChildren((i=>{let r=t.bodyRowStart,n=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.bottomFrozenGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,n=0;i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.leftBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,n=0;i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.rightBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,n=0;i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))}))}(n),s.length){const t=oW(s[0]-1,s[s.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}for(let t=0;t<r.colCount;t++)a.forEach((e=>{const i=bH(n.table,t,e);if(i)for(let t=i.start.col;t<=i.end.col;t++)for(let e=i.start.row;e<=i.end.row;e++)SF(t,e,n.table,!1);else SF(t,e,n.table,!1)}));if(a.length){const t=oW(a[0]-1,a[a.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}if(at(c)){for(let t=0;t<r.colCount;t++)for(let e=c;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}l=Z(l)?Z(c)?Math.min(l,c):l:c}if(at(l)&&(n.proxy.rowUpdatePos=Math.min(n.proxy.rowUpdatePos,l)),s.length){if(!at(c)){const t=Math.min(...s);n.proxy.rowUpdatePos=Math.min(t,n.proxy.rowUpdatePos)}n.proxy.rowUpdateDirection="up",n.proxy.updateCellGroups(2*n.proxy.screenRowCount),u()}else o.length&&(!function(t,e){if(e.table.isHasSeriesNumber())for(let i=t;i<=e.table.rowCount-1;i++)SF(0,i,e.table,!1)}(o[o.length-1],n),n.proxy.updateCellGroups(2*n.proxy.screenRowCount),u(),n.proxy.progress());n.proxy.progress();const d=r.getRowsHeight(r.frozenRowCount,r.rowCount-1-r.bottomFrozenRowCount);function u(){if(s?.[s?.length-1]>=r.rowCount-r.bottomFrozenRowCount||a?.[a?.length-1]>=r.rowCount-r.bottomFrozenRowCount||o?.[0]>=r.rowCount-r.bottomFrozenRowCount){for(let t=0;t<r.colCount;t++)for(let e=r.rowCount-r.bottomFrozenRowCount;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}n.proxy.updateBottomFrozenCellGroups()}}n.updateContainerHeight(n.table.frozenRowCount,d-n.bodyGroup.attribute.height)}function nW(t,e){for(let i=0;i<e.table.colCount;i++){const r=new GO({x:0,y:0,width:e.table.getColWidth(i),height:e.table.getRowHeight(t)});if(r.role="cell",r.col=i,r.row=t,r.needUpdate=!0,!r)continue;const n=e.getColGroup(i);if(n)if(n.firstChild&&t<n.firstChild.row)n.insertBefore(r,n.firstChild),n.firstChild.row=n.firstChild.row+1;else if(n.lastChild&&t>n.lastChild.row)n.appendChild(r);else{const o=e.highPerformanceGetCell(i,t,!0);o!==r&&(n.insertBefore(r,o),o&&(o.row=o.row+1),o!==n.lastChild&&n.lastChild&&(n.lastChild.row=n.lastChild.row+1))}}}function oW(t,e,i){let r;for(let n=0;n<i.table.colCount;n++){const o=i.table.getCellRange(n,t);let s;o.start.row<=t+1&&o.end.row>=t+1&&(aW(o,i),s=o.start.row);const a=i.table.getCellRange(n,e);a.start.row<=e+1&&a.end.row>=e+1&&(aW(a,i),s=a.start.row),Z(s)&&(r=Z(r)?Math.min(r,s):s)}return r}function sW(t,e,i){let r;for(let n=0;n<i.table.colCount;n++){let o;const s=i.highPerformanceGetCell(n,t);s.mergeStartRow&&s.mergeEndRow&&s.mergeEndRow>t&&(aW({start:{row:s.mergeStartRow,col:"autoHeight"===i.table.heightMode?0:s.mergeStartCol},end:{row:s.mergeEndRow,col:"autoHeight"===i.table.heightMode?i.table.colCount-1:s.mergeEndCol}},i),o=s.mergeStartRow);const a=i.highPerformanceGetCell(n,e);a.mergeStartRow&&a.mergeEndRow&&a.mergeStartRow<e&&(aW({start:{row:a.mergeStartRow,col:"autoHeight"===i.table.heightMode?0:a.mergeStartCol},end:{row:a.mergeEndRow,col:"autoHeight"===i.table.heightMode?i.table.colCount-1:a.mergeEndCol}},i),o=a.mergeStartRow),Z(o)&&(r=Z(r)?Math.min(r,o):o)}return r}function aW(t,e){const{start:i,end:r}=t;for(let t=i.col;t<=r.col;t++)for(let n=i.row;n<=r.row;n++){const i=e.highPerformanceGetCell(t,n,!0);i&&(i.needUpdate=!0)}}function lW(t){const e=t.bodyGroup.firstChild instanceof GO?t.bodyGroup.firstChild:null;e&&(t.rowHeaderGroup.appendChild(e),t.rowHeaderGroup.setAttribute("width",t.rowHeaderGroup.attribute.width+e.attribute.width),t.bodyGroup.setAttribute("width",t.bodyGroup.attribute.width-e.attribute.width))}function hW(t){const e=t.colHeaderGroup.firstChild instanceof GO?t.colHeaderGroup.firstChild:null;e&&(t.cornerHeaderGroup.appendChild(e),t.cornerHeaderGroup.setAttribute("width",t.cornerHeaderGroup.attribute.width+e.attribute.width),t.colHeaderGroup.setAttribute("width",t.colHeaderGroup.attribute.width-e.attribute.width))}function cW(t){const e=t.rowHeaderGroup.lastChild instanceof GO?t.rowHeaderGroup.lastChild:t.rowHeaderGroup.lastChild?._prev;e&&(pW(t.bodyGroup,e,t.bodyGroup.firstChild),t.bodyGroup.setAttribute("width",t.bodyGroup.attribute.width+e.attribute.width),t.rowHeaderGroup.setAttribute("width",t.rowHeaderGroup.attribute.width-e.attribute.width))}function dW(t){const e=t.cornerHeaderGroup.lastChild instanceof GO?t.cornerHeaderGroup.lastChild:t.cornerHeaderGroup.lastChild?._prev;e&&(pW(t.colHeaderGroup,e,t.colHeaderGroup.firstChild),t.colHeaderGroup.setAttribute("width",t.colHeaderGroup.attribute.width+e.attribute.width),t.cornerHeaderGroup.setAttribute("width",t.cornerHeaderGroup.attribute.width-e.attribute.width))}function uW(t){const e=t.bottomFrozenGroup.firstChild instanceof GO?t.bottomFrozenGroup.firstChild:null;e&&(t.leftBottomCornerGroup.appendChild(e),t.leftBottomCornerGroup.setAttribute("width",t.leftBottomCornerGroup.attribute.width+e.attribute.width),t.bottomFrozenGroup.setAttribute("width",t.bottomFrozenGroup.attribute.width-e.attribute.width),t.table.isPivotChart()&&e.forEachChildren((t=>{t.setAttributes({stroke:!1,fill:!1})})))}function gW(t){const e=t.leftBottomCornerGroup.lastChild instanceof GO?t.leftBottomCornerGroup.lastChild:t.leftBottomCornerGroup.lastChild?._prev;e&&(pW(t.bottomFrozenGroup,e,t.bottomFrozenGroup.firstChild),t.bottomFrozenGroup.setAttribute("width",t.bottomFrozenGroup.attribute.width+e.attribute.width),t.leftBottomCornerGroup.setAttribute("width",t.leftBottomCornerGroup.attribute.width-e.attribute.width),t.table.isPivotChart()&&e.forEachChildren((e=>{const i=t.table._getCellStyle(e.col,e.row),r=t.table.getCellRange(e.col,e.row),n=yO(i,t.table,r?r.start.col:e.col,r?r.start.row:e.row,UO).theme;e.setAttributes({fill:n?.group?.fill??void 0,stroke:n?.group?.stroke??void 0})})))}function pW(t,e,i){e&&t&&(i?t.insertBefore(e,i):t.appendChild(e))}function fW(t){for(let e=t.proxy.colStart;e<=t.proxy.colEnd;e++){const i=t.getColGroup(e);i?.getChildren()?.forEach((t=>{t.children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.addUpdateBoundTag())}))}))}}function mW(t,e){t.forEachChildren((t=>{"column"===t.role&&t.forEachChildren((t=>{if("cell"===t.role){let i=!1;if(t.forEachChildren((t=>"axis"===t.name&&(i=!0,!0))),i){const i=e.internalProps.layoutMap.getAxisConfigInPivotChart(t.col,t.row),r=II(UO("padding",e._getCellStyle(t.col,t.row),t.col,t.row,e)),n=new rI(i,t.attribute.width,t.attribute.height,r,e);t.clear(),t.appendChild(n.component),n.overlap()}}}))}))}function bW(t,e,i){return new GO({x:0,y:0,width:t,height:e,clip:i??!1,pickable:!1})}function yW(t,e){return t.forEachChildrenSkipChild(((t,i)=>{t.setAttribute("x",e),e+=t.attribute.width})),e}function vW(t,e,i,r,n){const o=t.name;xW(i,r,(t=>t.name===o),(t=>{gF(e,t),t.name=e.name}),n),n.updateNextFrame()}function CW(t,e,i,r,n,o,s,a){const l=a.table.internalProps.headerHelper.getSortIcon(r,a.table,t,e);if(i&&vW(i,l,t,e,a),!function(t,e,i,r,n){const o=n.getCellRange(t,e),s=n.getCellRange(i,r);return o.start.col===s.start.col&&o.start.row===s.start.row&&o.end.col===s.end.col&&o.end.row===s.end.row}(t,e,n,o,a.table)){const t=a.table.internalProps.headerHelper.getSortIcon("normal",a.table,n,o);s?vW(s,t,n,o,a):function(t,e,i,r){const n=r.getCell(t,e);if(Z(n.mergeStartCol)&&Z(n.mergeStartRow)&&Z(n.mergeEndCol)&&Z(n.mergeEndRow))for(let t=n.mergeStartCol;t<=n.mergeEndCol;t++)for(let e=n.mergeStartRow;e<=n.mergeEndRow;e++){let n;r.getCell(t,e).forEachChildren((t=>"sort"===t.attribute.funcType&&(n=t,!0))),n&&(gF(i,n),n.name=i.name)}else{let t;n.forEachChildren((e=>"sort"===e.attribute.funcType&&(t=e,!0))),t&&(gF(i,t),t.name=i.name)}}(n,o,t,a)}}function wW(t,e,i){t.forEachChildren((t=>{"group"===t.type?wW(t,e,i):e(t)&&i(t)}))}function xW(t,e,i,r,n){const o=n.getCell(t,e);if("cell"===o.role&&Z(o.mergeStartCol)&&Z(o.mergeStartRow)&&Z(o.mergeEndCol)&&Z(o.mergeEndRow)){const{colStart:t,colEnd:e,rowStart:s,rowEnd:a}=bz(o,n);for(let o=t;o<=e;o++)for(let t=s;t<=a;t++)wW(n.highPerformanceGetCell(o,t),i,r)}else wW(o,i,r)}function _W(t,e){const{bgColor:i,borderColor:r,borderLineWidth:n,borderLineDash:o}=e,s={x:0,y:0,width:0,height:0,visible:!1,pickable:!0,fill:i};return s.stroke=Ez(r,void 0),s.lineWidth=n,o&&(s.lineDash=o),s.lineCap="butt",Array.isArray(r)&&(s.strokeArrayColor=II(r)),Array.isArray(n)&&(s.strokeArrayWidth=II(n),s.lineWidth=1),t.setAttributes(s),t.role="corner-frozen",t}function SW(t,e,i,r){const n=r.scenegraph,o=AW(t.map((t=>t.col))).sort(((t,e)=>e-t)),s=AW(e.map((t=>t.col))).sort(((t,e)=>t-e)),a=AW(i.map((t=>t.col))).sort(((t,e)=>t-e));o.forEach((t=>{!function(t,e){const i=e.proxy;if(t>=e.table.rowHeaderLevelCount)if(t>=e.table.colCount-e.table.rightFrozenColCount);else{const i=e.getColGroup(t,!1);i&&i.parent===e.bodyGroup&&e.bodyGroup.removeChild(i);const r=e.getColGroupInBottom(t);r&&r.parent===e.bottomFrozenGroup&&e.bottomFrozenGroup.removeChild(r)}t>=i.colStart&&t<=i.colEnd&&(i.colEnd--,i.currentCol--);i.bodyRightCol--;const r=Math.min(i.colLimit,i.bodyRightCol-i.bodyLeftCol+1);i.totalActualBodyColCount=r,i.totalCol=i.colStart+r-1}(t,n)}));const l=r.colWidthsMap;let h;if(o.forEach((t=>{l.delAndReorder(t)})),o.length&&MW(n),n.table._clearColRangeWidthsMap(),s.forEach((t=>{const e=function(t,e){const i=e.proxy;i.bodyRightCol++;const r=Math.min(i.colLimit,i.bodyRightCol-i.bodyLeftCol+1);if(i.totalActualBodyColCount=r,i.totalCol=i.colStart+r-1,t<i.colStart)return;if(t>i.colEnd)return i.colEnd-i.colStart+1<i.colLimit?(i.colEnd++,i.currentCol++,TW(t,e),t):void 0;if(i.colEnd-i.colStart+1<i.colLimit)return i.colEnd++,i.currentCol++,TW(t,e),t;return t}(t,n);MW(n),h=h??e,l.addAndReorder(t)})),function(t){let e=t.bodyColStart,i=t.getCellGroupX(e);function r(i){i.col=e;const r=bH(t.table,i.col,i.row);r&&(i.mergeStartCol=r.start.col,i.mergeStartCol=r.start.col,i.mergeEndCol=r.end.col,i.mergeEndCol=r.end.col),i.role}t.bodyGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.bodyColStart,i=t.getCellGroupX(e),t.colHeaderGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.bodyColStart,i=t.getCellGroupX(e),t.bottomFrozenGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.table.colCount-t.table.rightFrozenColCount,i=0,t.rightFrozenGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.table.colCount-t.table.rightFrozenColCount,i=0,t.rightTopCornerGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.table.colCount-t.table.rightFrozenColCount,i=0,t.rightBottomCornerGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++}))}(n),a.forEach((t=>{for(let e=0;e<r.rowCount;e++){const i=bH(n.table,t,e);if(i)for(let t=i.start.col;t<=i.end.col;t++)for(let t=i.start.col;t<=i.end.col;t++)SF(t,e,n.table,!1);else SF(t,e,n.table,!1)}})),at(h)){for(let t=h;t<r.colCount;t++)for(let e=0;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}n.proxy.colUpdatePos=h}if(s.length){if(!at(h)){const t=Math.min(...s);n.proxy.colUpdatePos=t}n.proxy.colUpdateDirection="left",n.proxy.updateColGroups(2*n.proxy.screenColCount),d(),n.proxy.progress()}else o.length&&(n.proxy.updateColGroups(2*n.proxy.screenColCount),d(),n.proxy.progress());const c=r.getColsWidth(r.frozenColCount,r.colCount-1);function d(){if(s?.[s?.length-1]>=r.colCount-r.rightFrozenColCount||a?.[a?.length-1]>=r.colCount-r.rightFrozenColCount||o?.[0]>=r.colCount-r.rightFrozenColCount){for(let t=r.colCount-r.rightFrozenColCount;t<r.colCount;t++)for(let e=0;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}n.proxy.updateRightFrozenCellGroups()}}n.updateContainerWidth(n.table.frozenColCount,c-n.bodyGroup.attribute.width)}function AW(t){const e=[];for(let i=0;i<t.length;i++)-1===e.indexOf(t[i])&&e.push(t[i]);return e}function MW(t){let e=t.bodyColStart;function i(i){i.col=e;const r=bH(t.table,i.col,i.row);r&&(i.mergeStartCol=r.start.col,i.mergeStartCol=r.start.col,i.mergeEndCol=r.end.col,i.mergeEndCol=r.end.col),i.role}t.bodyGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{i(t)})),e++})),e=t.bodyColStart,t.colHeaderGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{i(t)})),e++})),e=t.bodyColStart,t.bottomFrozenGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{i(t)})),e++}))}function TW(t,e){if(e.colHeaderGroup&&e.table.columnHeaderLevelCount>0){const r=new GO({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const n=e.getColGroup(t,!0);n?e.colHeaderGroup.insertBefore(r,n):e.colHeaderGroup.appendChild(r),i(r,t,0,e.table.columnHeaderLevelCount-1)}if(e.bodyGroup){const r=new GO({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const n=e.getColGroup(t,!1);n?e.bodyGroup.insertBefore(r,n):e.bodyGroup.appendChild(r),i(r,t,e.bodyRowStart,e.bodyRowEnd)}if(e.bottomFrozenGroup&&e.table.bottomFrozenRowCount>0){const r=new GO({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const n=e.getColGroupInBottom(t);n?e.bottomFrozenGroup.insertBefore(r,n):e.bottomFrozenGroup.appendChild(r),i(r,t,e.table.rowCount-e.table.bottomFrozenRowCount,e.table.rowCount-1)}function i(t,i,r,n){for(let o=r;o<=n;o++){const r=new GO({x:0,y:0,width:e.table.getColWidth(i),height:e.table.getRowHeight(o)});r.role="cell",r.col=i,r.row=o,r.needUpdate=!0,t.appendChild(r)}}}pE(),LT(),xn.load(pD),xn.load(ez);class RW{proxy;tableGroup;colHeaderGroup;cornerHeaderGroup;rowHeaderGroup;bodyGroup;rightFrozenGroup;bottomFrozenGroup;rightTopCornerGroup;leftBottomCornerGroup;rightBottomCornerGroup;componentGroup;selectedRangeComponents;selectingRangeComponents;lastSelectId;component;stage;table;isPivot;hasFrozen;frozenColCount;frozenRowCount;clear;mergeMap;_dealAutoFillHeightOriginRowsHeight;_needUpdateContainer=!1;constructor(t){let e,i;this.table=t,this.hasFrozen=!1,this.clear=!0,this.mergeMap=new Map,_T(this.table.theme.textPopTipStyle),"node"===YE.mode?(pf.setEnv("node",t.options.modeParams),e=t.canvasWidth,i=t.canvasHeight):(pf.setEnv("browser"),e=t.canvas.width,i=t.canvas.height),this.stage=Nf({canvas:t.canvas,width:e,height:i,disableDirtyBounds:!1,background:t.theme.underlayBackgroundColor,dpr:t.internalProps.pixelRatio,enableLayout:!0,afterRender:()=>{this.table.fireListeners("after_render",null)},...t.options.renderOption}),this.stage.defaultLayer.setTheme({group:{boundsPadding:0,strokeBoundsBuffer:0,lineJoin:"round"},text:{ignoreBuf:!0}}),this.initSceneGraph(),this.stage.defaultLayer.add(this.tableGroup),this.stage.table=this.table,this.createComponent()}get width(){return this.tableGroup.attribute?.width??0}get height(){return this.tableGroup.attribute?.height??0}get x(){return this.tableGroup.attribute?.x??0}get y(){return this.tableGroup.attribute?.y??0}get bodyRowStart(){return this.proxy.rowStart??0}get bodyRowEnd(){return this.proxy.rowEnd??this.table.rowCount-1}get bodyColStart(){return this.proxy.colStart??0}get bodyColEnd(){return this.proxy.colEnd??this.table.colCount-1}initSceneGraph(){this.isPivot=this.table.isPivotTable(),function(t){const e=t.table.tableNoFrameWidth,i=t.table.tableNoFrameHeight;t.tableGroup=new GO({x:0,y:0,width:e,height:i,clip:!0,pickable:!1}),t.tableGroup.role="table";const r=bW(0,0,!0);r.role="col-header",t.colHeaderGroup=r;const n=bW(0,0,!0);n.role="corner-header",t.cornerHeaderGroup=n;const o=bW(0,0,!0);o.role="row-header",t.rowHeaderGroup=o;const s=bW(e,0,!0);s.role="body",t.bodyGroup=s;const a=bW(0,0,!0);a.role="right-frozen",t.rightFrozenGroup=a;const l=bW(0,0,!0);l.role="bottom-frozen",t.bottomFrozenGroup=l;const h=bW(0,0);h.role="component",t.componentGroup=h;const c=bW(0,0,!0);c.role="corner-right-top-header",t.rightTopCornerGroup=c;const d=bW(0,0,!0);d.role="corner-right-bottom-header",t.rightBottomCornerGroup=d;const u=bW(0,0,!0);u.role="corner-left-bottom-header",t.leftBottomCornerGroup=u,t.tableGroup.addChild(s),t.tableGroup.addChild(o),t.tableGroup.addChild(l),t.tableGroup.addChild(r),t.tableGroup.addChild(a),t.tableGroup.addChild(d),t.tableGroup.addChild(c),t.tableGroup.addChild(u),t.tableGroup.addChild(n),t.tableGroup.addChild(h)}(this)}clearCells(){(this.table.isPivotChart()||this.table._hasCustomRenderOrLayout())&&this.stage.pluginService.findPluginsByName("poptipForText").forEach((t=>{t.deactivate(this.stage.pluginService)})),this.clear=!0,this.hasFrozen=!1,this.mergeMap.clear(),this.colHeaderGroup.clear(),this.rowHeaderGroup.clear(),this.cornerHeaderGroup.clear(),this.bodyGroup.clear(),this.bottomFrozenGroup.clear(),this.rightFrozenGroup.clear(),this.rightTopCornerGroup.clear(),this.rightBottomCornerGroup.clear(),this.leftBottomCornerGroup.clear(),this.colHeaderGroup.setAttributes({x:0,y:0,width:0,height:0}),this.rowHeaderGroup.setAttributes({x:0,y:0,width:0,height:0}),this.cornerHeaderGroup.setAttributes({x:0,y:0,width:0,height:0}),this.bodyGroup.setAttributes({x:0,y:0,width:0,height:0}),this.rightFrozenGroup.setAttributes({x:0,y:0,width:0,height:0}),this.bottomFrozenGroup.setAttributes({x:0,y:0,width:0,height:0}),this.rightTopCornerGroup.setAttributes({x:0,y:0,width:0,height:0,visible:!1}),this.leftBottomCornerGroup.setAttributes({x:0,y:0,width:0,height:0,visible:!1}),this.rightBottomCornerGroup.setAttributes({x:0,y:0,width:0,height:0,visible:!1}),this.tableGroup.setAttributes({x:this.table.tableX,y:this.table.tableY,width:0,height:0}),this.tableGroup.border&&(this.tableGroup.parent.removeChild(this.tableGroup.border),delete this.tableGroup.border),this.proxy?.release()}updateStageBackground(){this.stage.background=this.table.theme.underlayBackgroundColor,this.stage.renderNextFrame()}createComponent(){this.component=new Bz(this.table),this.component.addToGroup(this.componentGroup),this.selectedRangeComponents=new Map,this.selectingRangeComponents=new Map}updateComponent(){this.component.updateStyle()}createSceneGraph(t=!1){t||this.table.rowHeightsMap.clear(),(this.table.isPivotChart()||this.table._hasCustomRenderOrLayout())&&this.stage.pluginService.autoEnablePlugins.getContributions().forEach((t=>{"poptipForText"===t.name&&this.stage.pluginService.register(t)})),this.clear=!1,this.frozenColCount=this.table.frozenColCount,this.frozenRowCount=this.table.columnHeaderLevelCount,this.proxy=new XD(this.table),Pz(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0,!0),this.table.isPivotChart()&&(_W(this.rightTopCornerGroup,this.table.theme.cornerRightTopCellStyle||this.table.theme.cornerHeaderStyle||{}),_W(this.leftBottomCornerGroup,this.table.theme.cornerLeftBottomCellStyle||this.table.theme.cornerHeaderStyle||{}),_W(this.rightBottomCornerGroup,this.table.theme.cornerRightBottomCellStyle||this.table.theme.cornerHeaderStyle||{})),this.proxy.createGroupForFirstScreen(this.cornerHeaderGroup,this.colHeaderGroup,this.rowHeaderGroup,this.rightFrozenGroup,this.bottomFrozenGroup,this.bodyGroup,0,0),this.afterScenegraphCreated()}renderSceneGraph(){this.stage.render()}getCell(t,e,i){let r;if(r=this.table.rightFrozenColCount>0&&t>=this.table.colCount-this.table.rightFrozenColCount&&e<this.table.frozenRowCount?this.rightTopCornerGroup.getColGroup(t)?.getRowGroup(e):this.table.bottomFrozenRowCount>0&&e>=this.table.rowCount-this.table.bottomFrozenRowCount&&t<this.table.frozenColCount?this.leftBottomCornerGroup.getColGroup(t)?.getRowGroup(e):this.table.rightFrozenColCount>0&&this.table.bottomFrozenRowCount>0&&t>=this.table.colCount-this.table.rightFrozenColCount&&e>=this.table.rowCount-this.table.bottomFrozenRowCount?this.rightBottomCornerGroup.getColGroup(t)?.getRowGroup(e):this.table.rightFrozenColCount>0&&t>this.table.colCount-1-this.table.rightFrozenColCount?this.rightFrozenGroup.getColGroup(t)?.getRowGroup(e):this.table.bottomFrozenRowCount>0&&e>this.table.rowCount-1-this.table.bottomFrozenRowCount?this.bottomFrozenGroup.getColGroup(t)?.getRowGroup(e):this.getColGroup(t,e<this.frozenRowCount)?.getRowGroup(e),r&&"shadow-cell"===r.role&&!i){const i=this.table.getCellRange(t,e);i.start.col===t&&i.start.row===e||(r=this.getCell(i.start.col,i.start.row))}return r||xD}highPerformanceGetCell(t,e,i){return this.proxy.highPerformanceGetCell(t,e,i)}getColGroup(t,e=!1){let i;return i=t<this.frozenColCount&&e?this.cornerHeaderGroup.getColGroup(t):t<this.frozenColCount?this.rowHeaderGroup.getColGroup(t):e&&this.table.rightFrozenColCount>0&&t>this.table.colCount-1-this.table.rightFrozenColCount?this.rightTopCornerGroup.getColGroup(t):!e&&this.table.rightFrozenColCount>0&&t>this.table.colCount-1-this.table.rightFrozenColCount?this.rightFrozenGroup.getColGroup(t):e?this.colHeaderGroup.getColGroup(t):this.bodyGroup.getColGroup(t),i||void 0}getColGroupInBottom(t){if(this.table.bottomFrozenRowCount>0)return this.bottomFrozenGroup.getColGroup(t)}getColGroupInLeftBottomCorner(t){if(this.table.bottomFrozenRowCount>0)return this.leftBottomCornerGroup.getColGroup(t)}getColGroupInRightTopCorner(t){if(this.table.rightFrozenColCount>0)return this.rightTopCornerGroup.getColGroup(t)}getColGroupInRightBottomCorner(t){if(this.table.rightFrozenColCount>0&&this.table.bottomFrozenRowCount>0)return this.rightBottomCornerGroup.getColGroup(t)}getCellSize(t,e){const i=this.getCell(t,e),r=bH(this.table,t,e);let n=i.attribute.width,o=i.attribute.height;return r&&(n/=r.end.col-r.start.col+1,o/=r.end.row-r.start.row+1),{width:n,height:o}}updateNextFrame(){this.updateContainerSync(),this.resetAllSelectComponent(),this.stage.renderNextFrame()}resetAllSelectComponent(){var t;this.table.stateManager.select?.ranges?.length>0&&((t=this).selectingRangeComponents.forEach(((e,i)=>{ZD(e,i,t)})),t.selectedRangeComponents.forEach(((e,i)=>{ZD(e,i,t)})))}hideHoverIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"mouseenter_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",0);const e=t.parent.getChildByName("icon-back");e&&e.setAttribute("visible",!1)}),i),i.updateNextFrame())}(t,e,this)}showHoverIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"mouseenter_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",1)}),i),i.updateNextFrame())}(t,e,this)}hideClickIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"click_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",0)}),i),i.updateNextFrame())}(t,e,this)}showClickIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"click_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",1)}),i),i.updateNextFrame())}(t,e,this)}getIcon(t,e,i,r){return function(t,e,i,r,n){let o;return n.getCell(t,e).forEachChildren((t=>{t.role&&t.role.startsWith("icon")&&t.containsPoint(i,r,Li.GLOBAL)&&(o=t)})),o}(t,e,i,r,this)}setIconHoverStyle(t,e,i,r){!function(t,e,i,r,n){if((t.attribute.backgroundColor||t.attribute.hoverImage)&&xW(e,i,(e=>e.name===t.name),(t=>{if(t.attribute.backgroundColor){let e=t.parent.getChildByName("icon-back");e?e.setAttributes({x:(t.attribute.x??0)+(t.AABBBounds.width()-t.backgroundWidth)/2,y:(t.attribute.y??0)+(t.AABBBounds.height()-t.backgroundHeight)/2,dx:t.attribute.dx??0,dy:t.attribute.dy??0,width:t.backgroundWidth,height:t.backgroundHeight,fill:t.attribute.backgroundColor,cornerRadius:5,visible:!0}):(e=kc({x:(t.attribute.x??0)+(t.AABBBounds.width()-t.backgroundWidth)/2,y:(t.attribute.y??0)+(t.AABBBounds.height()-t.backgroundHeight)/2,dx:t.attribute.dx??0,dy:t.attribute.dy??0,width:t.backgroundWidth,height:t.backgroundHeight,fill:t.attribute.backgroundColor,cornerRadius:5,pickable:!1,visible:!0}),e.name="icon-back"),t.parent.insertBefore(e,t)}t.attribute.hoverImage&&t.attribute.image!==t.attribute.hoverImage&&(t.image=t.attribute.hoverImage)}),n),t.tooltip){const{x1:r,x2:o,y1:s,y2:a}=t.globalAABBBounds,l={content:t.tooltip.title,referencePosition:{rect:{left:r,right:o,top:s,bottom:a,width:t.globalAABBBounds.width(),height:t.globalAABBBounds.height()},placement:t.tooltip.placement},disappearDelay:t.tooltip.disappearDelay,style:Object.assign({},n.table.internalProps.theme?.tooltipStyle,t.tooltip?.style)};n.table.internalProps.tooltipHandler.isBinded(l)||n.table.showTooltip(e,i,l)}}(t,e,i,0,this)}updateSortIcon(t,e,i,r,n,o,s){CW(t,e,i,r,n,o,s,this)}updateFrozenIcon(t,e){!function(t){for(let e=0;e<t.table.colCount;e++)for(let i=0;i<t.table.columnHeaderLevelCount;i++)xW(e,i,(t=>"frozen"===t.attribute.funcType),(r=>{const n=t.table.internalProps.headerHelper.getFrozenIcon(e,i);gF(n,r),r.name=n.name}),t)}(this)}updateHierarchyIcon(t,e){!function(t,e,i){let r;r=i.table.isHeader(t,e)?i.table.internalProps.headerHelper.getHierarchyIcon(t,e):i.table.internalProps.bodyHelper.getHierarchyIcon(t,e),xW(t,e,(t=>t.attribute.funcType===xE.collapse||t.attribute.funcType===xE.expand),(t=>{gF(r,t),t.name=r.name}),i)}(t,e,this)}setIconNormalStyle(t,e,i){!function(t,e,i,r){(t.attribute.backgroundColor||t.attribute.hoverImage)&&xW(e,i,(e=>e.name===t.name),(t=>{const e=t.parent.getChildByName("icon-back");e&&e.setAttribute("visible",!1),t.attribute.hoverImage&&t.attribute.image!==t.attribute.originImage&&(t.image=t.attribute.originImage)}),r)}(t,e,i,this)}residentHoverIcon(t,e){!function(t,e,i){xW(t,e,(t=>t.attribute.funcType===xE.dropDown),(t=>{t.oldVisibleTime=t.attribute.visibleTime,t.setAttribute("visibleTime","always"),t.setAttribute("opacity",1)}),i)}(t,e,this)}resetResidentHoverIcon(t,e){!function(t,e,i){xW(t,e,(t=>t.attribute.funcType===xE.dropDown),(t=>{t.oldVisibleTime&&t.setAttribute("visibleTime",t.oldVisibleTime),t.setAttribute("opacity","always"===t.attribute.visibleTime?1:0)}),i)}(t,e,this)}deactivateChart(t,e){if(-1===t||-1===e)return;const i=this.getCell(t,e);i?.firstChild?.deactivate?.()}activateChart(t,e){if(-1===t||-1===e)return;const i=this.getCell(t,e);i?.firstChild?.activate?.(this.table)}removeInteractionBorder(t,e){const i=this.getCell(t,e);i.setAttribute("highlightStroke",void 0),i.setAttribute("highlightStrokeArrayWidth",void 0),i.setAttribute("highlightStrokeArrayColor",void 0)}createCellSelectBorder(t,e,i,r,n,o,s){!function(t,e,i,r,n,o,s,a){let l=!!t.table.options.excelOptions?.fillHandle;if(t.table.stateManager.select.ranges?.length>1)l=!1,t.removeFillHandleFromSelectComponents();else if(1===t.table.stateManager.select.ranges?.length){const e=Math.max(t.table.stateManager.select.ranges[0].start.row,t.table.stateManager.select.ranges[0].end.row),i=Math.max(t.table.stateManager.select.ranges[0].start.col,t.table.stateManager.select.ranges[0].end.col);t.table.isHeader(i,e)&&(l=!1)}!Array.isArray(a)||!1!==a[1]&&!1!==a[2]||(l=!1);const h=Math.min(e,r),c=Math.min(i,n),d=Math.max(e,r),u=Math.max(i,n),g=t.highPerformanceGetCell(h,c).globalAABBBounds,p=t.highPerformanceGetCell(d,u).globalAABBBounds,f=t.table.theme,m=f.selectionStyle?.cellBorderColor,b=f.selectionStyle?.cellBorderLineWidth,y=kc({pickable:!1,fill:f.selectionStyle?.cellBgColor??"rgba(0, 0, 255,0.1)",lineWidth:b,stroke:a.map((t=>!!t&&m)),x:g.x1-t.tableGroup.attribute.x,y:g.y1-t.tableGroup.attribute.y,width:0,height:0,visible:!0});let v;l&&(v=kc({pickable:!1,fill:m,stroke:m,x:p.x2-3,y:p.y2-3,width:6,height:6,visible:!0})),t.lastSelectId=s,t.selectingRangeComponents.set(`${h}-${c}-${d}-${u}-${s}`,{rect:y,fillhandle:v,role:o}),t.tableGroup.insertAfter(y,"body"===o?t.bodyGroup:"columnHeader"===o?t.colHeaderGroup:"rowHeader"===o?t.rowHeaderGroup:"cornerHeader"===o?t.cornerHeaderGroup:"rightTopCorner"===o?t.rightTopCornerGroup:"rightFrozen"===o?t.rightFrozenGroup:"leftBottomCorner"===o?t.leftBottomCornerGroup:"bottomFrozen"===o?t.bottomFrozenGroup:t.rightBottomCornerGroup),l&&t.tableGroup.insertAfter(v,"body"===o?t.bodyGroup:"columnHeader"===o?t.colHeaderGroup:"rowHeader"===o?t.rowHeaderGroup:"cornerHeader"===o?t.cornerHeaderGroup:"rightTopCorner"===o?t.rightTopCornerGroup:"rightFrozen"===o?t.rightFrozenGroup:"leftBottomCorner"===o?t.leftBottomCornerGroup:"bottomFrozen"===o?t.bottomFrozenGroup:t.rightBottomCornerGroup)}(this,t,e,i,r,n,o,s)}moveSelectingRangeComponentsToSelectedRangeComponents(){eW(this)}deleteLastSelectedRangeComponents(){var t;(t=this).selectedRangeComponents.forEach(((e,i)=>{i.split("-")[4]===t.lastSelectId&&(e.rect.delete(),e.fillhandle?.delete(),t.selectedRangeComponents.delete(i))}))}deleteAllSelectBorder(){iW(this)}updateCellSelectBorder(t,e=!0){JD(this,t,e)}removeFillHandleFromSelectComponents(){this.selectedRangeComponents.forEach(((t,e)=>{t.fillhandle?.delete(),t.fillhandle=void 0}))}recreateAllSelectRangeComponents(){iW(this),this.table.stateManager.select.ranges.forEach((t=>{JD(this,t)})),eW(this)}updateColWidth(t,e,i,r){!function(t,e,i,r){r||t.table._setColWidth(e,t.table.getColWidth(e)+i,!0);const n=t.getColGroup(e,!0),o=t.getColGroupInRightTopCorner(e);n&&!o&&Cz(n,i,"col-corner",t),o&&Cz(o,i,"right-top",t);const s=t.getColGroup(e);s&&Cz(s,i,"row-body",t);const a=t.getColGroupInLeftBottomCorner(e);a&&Cz(a,i,"left-bottom",t);const l=t.getColGroupInBottom(e);l&&Cz(l,i,"bottom",t);const h=t.getColGroupInRightBottomCorner(e);h&&Cz(h,i,"right-bottom",t),e<t.frozenColCount?(t.cornerHeaderGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),t.rowHeaderGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)}))):(t.colHeaderGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),t.bodyGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)}))),a&&t.leftBottomCornerGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),l&&t.bottomFrozenGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),h&&t.rightBottomCornerGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)}))}(this,t,Math.round(e),r),i||this.updateContainer(!0)}updateChartSize(t){!function(t,e){for(let i=e;i<=t.proxy.colEnd;i++){const e=t.getColGroup(i);e?.getChildren()?.forEach((e=>{const i=t.table.getColWidth(e.col),r=t.table.getRowHeight(e.row);e.children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.setAttribute("width",Math.ceil(i-t.attribute.cellPadding[3]-t.attribute.cellPadding[1])),t.setAttribute("height",Math.ceil(r-t.attribute.cellPadding[0]-t.attribute.cellPadding[2])))}))}))}if(!t.table.isPivotChart()&&t.table.rightFrozenColCount>=1)for(let e=t.table.colCount-t.table.rightFrozenColCount;e<=t.table.colCount-1;e++){const i=t.getColGroup(e);i?.getChildren()?.forEach((e=>{const i=t.table.getColWidth(e.col),r=t.table.getRowHeight(e.row);e.children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.setAttribute("width",Math.ceil(i-t.attribute.cellPadding[3]-t.attribute.cellPadding[1])),t.setAttribute("height",Math.ceil(r-t.attribute.cellPadding[0]-t.attribute.cellPadding[2])))}))}))}}(this,t)}updateChartState(t){this.table.isPivotChart()&&function(t,e){const i=t.table;if(i.isPivotChart()){const r=i._selectedDataItemsInChart.length;if((null===e||0===e?.length||0===Object.keys(e).length)&&0===r)return;const n=[];if(Array.isArray(e))e.forEach((t=>{if(t&&0!==t.key&&Object.keys(t).length>0){const e={};for(const i in t)i.startsWith("VGRAMMAR_")||i.startsWith("__VCHART")||(e[i]=t[i]);n.push(e)}}));else if(e&&0!==e.key&&Object.keys(e).length>0){const t={};for(const i in e)i.startsWith("VGRAMMAR_")||i.startsWith("__VCHART")||(t[i]=e[i]);n.push(t)}Mt(i._selectedDataItemsInChart,n)||(i._selectedDataItemsInChart=n,i.internalProps.layoutMap.updateDataStateToChartInstance(),fW(t),i.scenegraph.updateNextFrame())}}(this,t)}updateCheckboxCellState(t,e,i){if(this.table.transpose)this.bodyGroup.children?.forEach((t=>{t.getChildAt(e).getChildren().forEach((t=>{"checkbox"===t.name&&t.setAttribute("checked",i)}))}));else{const e=this.getColGroup(t);e.children?.forEach((t=>{t.getChildren().find((t=>{"checkbox"===t.name&&t.setAttribute("checked",i)}))}))}}updateHeaderCheckboxCellState(t,e,i){if(this.table.transpose)this.rowHeaderGroup.children?.forEach((t=>{t.getChildAt(e).getChildren().forEach((t=>{"checkbox"===t.name&&("indeterminate"===i?(t.setAttribute("indeterminate",!0),t.setAttribute("checked",void 0)):(t.setAttribute("indeterminate",void 0),t.setAttribute("checked",i)))}))}));else{const e=this.getColGroup(t,!0);e.children?.forEach((t=>{t.getChildren().find((t=>{"checkbox"===t.name&&("indeterminate"===i?(t.setAttribute("indeterminate",!0),t.setAttribute("checked",void 0)):(t.setAttribute("indeterminate",void 0),t.setAttribute("checked",i)))}))}))}}updateAutoColWidth(t){this.table.internalProps._widthResizedColMap.delete(t);const e=this.table.getColWidth(t),i=mD(t,0,this.table.rowCount-1,this.table,!0);i!==e&&this.updateColWidth(t,i-e)}recalculateColWidths(){fD(this.table,0,this.table.colCount-1,!0)}recalculateRowHeights(){this.table.internalProps.useOneRowHeightFillAll=!1,cz(this.table,0,this.table.rowCount-1,!0,!0)}resize(){this.proxy.resize(),("adaptive"===this.table.widthMode||this.table.autoFillWidth)&&(0===this.table.internalProps._widthResizedColMap.size?this.recalculateColWidths():this.dealWidthMode()),"adaptive"===this.table.heightMode?0===this.table.internalProps._heightResizedRowMap.size?this.recalculateRowHeights():this.dealHeightMode():this.table.autoFillHeight&&this.dealHeightMode(),this.resetFrozen(),this.updateTableSize(),this.updateBorderSizeAndPosition(),this.component.updateScrollBar(),("adaptive"===this.table.widthMode||"adaptive"===this.table.heightMode||this.table.autoFillWidth||this.table.autoFillHeight)&&this.updateChartSize(this.table.rowHeaderLevelCount),this.proxy.progress(),this.updateNextFrame()}updateTableSize(){this.tableGroup.setAttributes({x:this.table.tableX,y:this.table.tableY,width:Math.min(this.table.tableNoFrameWidth,Math.max(this.colHeaderGroup.attribute.width,this.bodyGroup.attribute.width,this.bottomFrozenGroup.attribute.width,0)+Math.max(this.cornerHeaderGroup.attribute.width,this.rowHeaderGroup.attribute.width,this.leftBottomCornerGroup.attribute.width,0)+Math.max(this.rightTopCornerGroup.attribute.width,this.rightFrozenGroup.attribute.width,this.rightBottomCornerGroup.attribute.width,0)),height:Math.min(this.table.tableNoFrameHeight,Math.max(this.colHeaderGroup.attribute.height,this.cornerHeaderGroup.attribute.height,this.rightTopCornerGroup.attribute.height,0)+Math.max(this.rowHeaderGroup.attribute.height,this.bodyGroup.attribute.height,this.rightFrozenGroup.attribute.height,0)+Math.max(this.leftBottomCornerGroup.attribute.height,this.bottomFrozenGroup.attribute.height,this.rightBottomCornerGroup.attribute.height,0))}),this.tableGroup.border&&"rect"===this.tableGroup.border.type?this.table.theme.frameStyle?.innerBorder?this.tableGroup.border.setAttributes({x:this.table.tableX+this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY+this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width-this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height-this.tableGroup.border.attribute.lineWidth}):this.tableGroup.border.setAttributes({x:this.table.tableX-this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY-this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width+this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height+this.tableGroup.border.attribute.lineWidth}):this.tableGroup.border&&"group"===this.tableGroup.border.type&&(this.table.theme.frameStyle?.innerBorder?(this.tableGroup.border.setAttributes({x:this.table.tableX+this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY+this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width-this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height-this.tableGroup.border.attribute.lineWidth}),this.tableGroup.border.firstChild?.setAttributes({x:0,y:0,width:this.tableGroup.attribute.width-this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height-this.tableGroup.border.attribute.lineWidth})):(this.tableGroup.border.setAttributes({x:this.table.tableX-this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY-this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width+this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height+this.tableGroup.border.attribute.lineWidth}),this.tableGroup.border.firstChild?.setAttributes({x:this.tableGroup.border.attribute.lineWidth/2,y:this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width,height:this.tableGroup.attribute.height}))),this.table.bottomFrozenRowCount>0&&(this.bottomFrozenGroup.setAttribute("y",this.tableGroup.attribute.height-this.table.getBottomFrozenRowsHeight()),this.leftBottomCornerGroup.setAttributes({visible:!0,y:this.tableGroup.attribute.height-this.table.getBottomFrozenRowsHeight(),height:this.table.getBottomFrozenRowsHeight(),width:this.table.getFrozenColsWidth()}),this.rightBottomCornerGroup.setAttributes({visible:!0,y:this.tableGroup.attribute.height-this.table.getBottomFrozenRowsHeight(),height:this.table.getBottomFrozenRowsHeight()})),this.table.rightFrozenColCount>0&&(this.rightFrozenGroup.setAttribute("x",this.tableGroup.attribute.width-this.table.getRightFrozenColsWidth()),this.rightTopCornerGroup.setAttributes({visible:!0,x:this.tableGroup.attribute.width-this.table.getRightFrozenColsWidth(),width:this.table.getRightFrozenColsWidth(),height:this.table.getFrozenRowsHeight()}),this.rightBottomCornerGroup.setAttributes({visible:!0,x:this.tableGroup.attribute.width-this.table.getRightFrozenColsWidth(),width:this.table.getRightFrozenColsWidth()}))}updateRowHeight(t,e,i){yz(this,t,e=Math.round(e),i),this.updateContainerHeight(t,e)}updateRowsHeight(t,e,i){for(let r=0;r<t.length;r++){const n=t[r];if(n>=this.proxy.rowStart&&n<=this.proxy.rowEnd){const t=e[r];yz(this,n,Math.round(t),i),this._updateContainerHeight(n,t)}}this.updateTableSize(),this.component.updateScrollBar(),this.updateNextFrame()}updateContainerWidth(t,e){t<this.frozenColCount?(this.rowHeaderGroup.setDeltaWidth(e),this.cornerHeaderGroup.setDeltaWidth(e),this.colHeaderGroup.setDeltaX(e),this.bodyGroup.setDeltaX(e)):(this.colHeaderGroup.setDeltaWidth(e),this.bodyGroup.setDeltaWidth(e)),this.updateTableSize(),this.component.updateScrollBar(),this.updateNextFrame()}_updateContainerHeight(t,e){t<this.table.frozenRowCount?(this.colHeaderGroup.setDeltaHeight(e),this.cornerHeaderGroup.setDeltaHeight(e),this.rowHeaderGroup.setDeltaY(e),this.bodyGroup.setDeltaY(e),this.table.rightFrozenColCount&&this.rightFrozenGroup.setDeltaY(e)):t>=this.table.rowCount-this.table.bottomFrozenRowCount?(this.leftBottomCornerGroup.setDeltaHeight(e),this.bottomFrozenGroup.setDeltaHeight(e),this.table.rightFrozenColCount&&this.rightBottomCornerGroup.setDeltaHeight(e)):(this.rowHeaderGroup.setDeltaHeight(e),this.bodyGroup.setDeltaHeight(e),this.table.rightFrozenColCount&&this.rightFrozenGroup.setDeltaHeight(e))}updateContainerHeight(t,e){this._updateContainerHeight(t,e),this.updateTableSize(),this.component.updateScrollBar(),this.updateNextFrame()}setColWidth(t,e){const i=this.table.getColWidth(t);i!==e&&(this.updateColWidth(t,e-i),this.table._clearColRangeWidthsMap(t))}setRowHeight(t,e){const i=this.table.getRowHeight(t);i!==e&&((t>=this.proxy.rowStart&&t<=this.proxy.rowEnd||t>=this.table.rowCount-this.table.bottomFrozenRowCount&&t<=this.table.rowCount-1||t<this.table.frozenRowCount)&&this.updateRowHeight(t,e-i),this.table._clearRowRangeHeightsMap(t))}setX(t,e=!1){this.table.scenegraph.proxy.setX(-t,e)}setY(t,e=!1){this.table.scenegraph.proxy.setY(-t,e)}setBodyAndRowHeaderY(t){const e=this.bodyGroup.firstChild?.firstChild,i=this.bodyGroup.firstChild?.lastChild;0===t&&e&&e.row===this.table.frozenRowCount&&e.attribute.y+t<0?t=-e.attribute.y:i&&this.table.tableNoFrameHeight<this.table.getAllRowsHeight()&&i.row===this.table.rowCount-this.table.bottomFrozenRowCount-1&&i.attribute.y+i.attribute.height+t<this.table.tableNoFrameHeight-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight()&&(t=this.table.tableNoFrameHeight-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight()-i.attribute.y-i.attribute.height),this.colHeaderGroup.attribute.height+t!==this.bodyGroup.attribute.y&&(this.bodyGroup.setAttribute("y",this.colHeaderGroup.attribute.height+t),this.rowHeaderGroup.setAttribute("y",this.cornerHeaderGroup.attribute.height+t),this.table.rightFrozenColCount>0&&this.rightFrozenGroup.setAttribute("y",this.rightTopCornerGroup.attribute.height+t),this.updateNextFrame())}setBodyAndColHeaderX(t){const e=this.bodyGroup.firstChild,i=this.bodyGroup.lastChild;0===t&&e&&e.col===this.table.frozenColCount&&e.attribute.x+t<0?t=-e.attribute.x:i&&this.table.tableNoFrameWidth<this.table.getAllColsWidth()&&i.col===this.table.colCount-this.table.rightFrozenColCount-1&&i.attribute.x+i.attribute.width+t<this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()&&(t=this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()-i.attribute.x-i.attribute.width),this.table.getFrozenColsWidth()+t!==this.bodyGroup.attribute.x&&(this.bodyGroup.setAttribute("x",this.table.getFrozenColsWidth()+t),this.colHeaderGroup.setAttribute("x",this.table.getFrozenColsWidth()+t),this.table.bottomFrozenRowCount>0&&this.bottomFrozenGroup.setAttribute("x",this.table.getFrozenColsWidth()+t),this.updateNextFrame())}afterScenegraphCreated(){this.isPivot||this.table.transpose?this.table.options.frozenColCount?this.component.setFrozenColumnShadow(this.table.frozenColCount-1):this.table.options.rightFrozenColCount?this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount):this.component.setFrozenColumnShadow(-1):(this.component.setFrozenColumnShadow(this.table.frozenColCount-1),this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount)),this.table.stateManager.checkFrozen(),this.updateContainer(),this.createFrameBorder(),this.updateBorderSizeAndPosition(),this.component.updateScrollBar(),jD(this.table),this.table.options.animationAppear&&function(t){if(!t.options.animationAppear)return;let e,i,r,n;!0===t.options.animationAppear?(e=500,i=0,r="one-by-one",n="column"):(e=t.options.animationAppear.duration??500,i=t.options.animationAppear.delay??0,r=t.options.animationAppear.type??"one-by-one",n=t.options.animationAppear.direction??"row");const{scenegraph:o,frozenColCount:s,frozenRowCount:a}=t,{colStart:l,colEnd:h,rowStart:c,rowEnd:d}=o.proxy;for(let t=0;t<=h;t++)for(let s=0;s<=d;s++){const a=o.highPerformanceGetCell(t,s);a&&"cell"===a.role&&a.forEachChildren((o=>{o.setAttribute("opacity",0),o.animate().wait("one-by-one"===r?("row"===n?s:t)*(e-i):i).to({opacity:1},e,"linear")}))}}(this.table),this.updateNextFrame()}dealWidthMode(){const t=this.table;if("adaptive"===t.widthMode){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0;for(let e=0;e<t.colCount;e++)if(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount){i+=t.getColWidth(e)}wD(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,!1,[],t,!0)}else if(t.autoFillWidth){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,r=0;for(let e=0;e<t.colCount;e++){const n=t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=n),r+=n}if(r<e&&r>i){wD(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,!1,[],t,!0)}}let e=0;this.bodyGroup.forEachChildrenSkipChild((t=>{e+=t.attribute.width})),this.bodyGroup.setAttribute("width",e);let i=0;this.colHeaderGroup.forEachChildrenSkipChild((t=>{i+=t.attribute.width})),this.colHeaderGroup.setAttribute("width",i);let r=0;this.rowHeaderGroup.forEachChildrenSkipChild((t=>{r+=t.attribute.width})),this.rowHeaderGroup.setAttribute("width",r);let n=0;this.cornerHeaderGroup.forEachChildrenSkipChild((t=>{n+=t.attribute.width})),this.cornerHeaderGroup.setAttribute("width",n),this.colHeaderGroup.setAttribute("x",this.cornerHeaderGroup.attribute.width),this.rowHeaderGroup.setAttribute("y",this.cornerHeaderGroup.attribute.height),this.bodyGroup.setAttributes({x:this.rowHeaderGroup.attribute.width,y:this.colHeaderGroup.attribute.height})}dealHeightMode(){const t=this.table;if("adaptive"===t.heightMode){t._clearRowRangeHeightsMap();const e=t.getRowsHeight(0,t.columnHeaderLevelCount-1),i=t.isPivotChart()?t.getBottomFrozenRowsHeight():0,r=t.tableNoFrameHeight-e-i,n=t.columnHeaderLevelCount,o=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount;let s=0;for(let e=n;e<o;e++)s+=t.getRowHeight(e);const a=r/s;for(let e=n;e<o;e++){let i;i=e===o-1?r-t.getRowsHeight(n,o-2):Math.round(t.getRowHeight(e)*a),this.setRowHeight(e,i)}}else if(t.autoFillHeight){t._clearRowRangeHeightsMap();const e=t.tableNoFrameHeight;let i=0,r=0;for(let e=0;e<t.rowCount;e++){const n=t.getRowHeight(e);(e<t.columnHeaderLevelCount||t.isPivotChart()&&e>=t.rowCount-t.bottomFrozenRowCount)&&(r+=n),i+=n}if((this._dealAutoFillHeightOriginRowsHeight??i)<e&&i-r>0){const n=t.columnHeaderLevelCount,o=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount,s=(e-r)/(i-r);for(let i=n;i<o;i++){let a;a=i===o-1?e-r-t.getRowsHeight(n,o-2):Math.round(t.getRowHeight(i)*s),this.setRowHeight(i,a)}}}}dealFrozen(){!function(t){if(t.table.frozenColCount>t.table.rowHeaderLevelCount){t.rowHeaderGroup.setAttribute("height",t.bodyGroup.attribute.height),t.rowHeaderGroup.setAttribute("y",t.bodyGroup.attribute.y),t.cornerHeaderGroup.setAttribute("height",t.colHeaderGroup.attribute.height);for(let e=0;e<t.table.frozenColCount-t.table.rowHeaderLevelCount;e++)lW(t),hW(t),uW(t)}else if(t.table.frozenColCount<t.table.rowHeaderLevelCount){t.bodyGroup.setAttribute("height",t.rowHeaderGroup.attribute.height),t.bodyGroup.setAttribute("y",t.rowHeaderGroup.attribute.y),t.colHeaderGroup.setAttribute("height",t.cornerHeaderGroup.attribute.height);for(let e=0;e<t.table.rowHeaderLevelCount-t.table.frozenColCount;e++)cW(t),dW(t),gW(t)}t.bodyGroup.setAttribute("x",t.rowHeaderGroup.attribute.width),t.colHeaderGroup.setAttribute("x",t.cornerHeaderGroup.attribute.width),t.updateContainer(),t.updateBorderSizeAndPosition(),t.isPivot||t.table.transpose?t.table.options.frozenColCount?t.component.setFrozenColumnShadow(t.table.frozenColCount-1):t.table.options.frozenColCount&&t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount):(t.component.setFrozenColumnShadow(t.table.frozenColCount-1),t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount)),t.hasFrozen=!0,t.frozenColCount=t.table.frozenColCount,t.frozenRowCount=t.colHeaderGroup.firstChild?.childrenCount??0}(this)}resetFrozen(){!function(t){if(t.frozenColCount>t.table.frozenColCount){t.bodyGroup.setAttribute("height",t.rowHeaderGroup.attribute.height),t.bodyGroup.setAttribute("y",t.rowHeaderGroup.attribute.y),t.colHeaderGroup.setAttribute("height",t.cornerHeaderGroup.attribute.height);for(let e=0;e<t.frozenColCount-t.table.frozenColCount;e++)cW(t),dW(t),gW(t)}else if(t.frozenColCount<t.table.frozenColCount){t.rowHeaderGroup.setAttribute("height",t.bodyGroup.attribute.height),t.rowHeaderGroup.setAttribute("y",t.bodyGroup.attribute.y),t.cornerHeaderGroup.setAttribute("height",t.colHeaderGroup.attribute.height);for(let e=0;e<t.table.frozenColCount-t.frozenColCount;e++)lW(t),hW(t),uW(t)}t.deleteAllSelectBorder(),t.table.stateManager.select.ranges.forEach((e=>{t.updateCellSelectBorder(e)})),t.frozenColCount=t.table.frozenColCount,t.frozenRowCount=t.colHeaderGroup.firstChild?.childrenCount??0,t.proxy.colStart=t.table.frozenColCount,t.bodyGroup.setAttribute("x",t.rowHeaderGroup.attribute.width),t.colHeaderGroup.setAttribute("x",t.cornerHeaderGroup.attribute.width),t.updateContainer(),t.updateBorderSizeAndPosition(),t.isPivot||t.table.transpose?t.table.options.frozenColCount?t.component.setFrozenColumnShadow(t.table.frozenColCount-1):t.table.options.rightFrozenColCount&&t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount):(t.component.setFrozenColumnShadow(t.table.frozenColCount-1),t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount)),t.hasFrozen=!0}(this)}updateCellLayoutWidthCertainWidth(t,e,i){const r=t.attribute.width;let n=!1;return t.forEachChildren(((t,o)=>{o+=e;const s=bH(this.table,i,o);s?t=this.getCell(s.start.col,s.start.row):t.setAttribute("width",r);const a=II(UO("padding",this.table._getCellStyle(i,o),i,o,this.table)),l=t.getChildByName("text");let h=0,c=0;if(l)h=l.AABBBounds.height()+(a[0]+a[2]),l.setAttribute("maxLineWidth",r-(a[1]+a[3])),c=l.AABBBounds.height()+(a[0]+a[2]);else{const e=t.getChildAt(1);h=e.AABBBounds.height()+(a[0]+a[2]),e._cellWidth=r-(a[1]+a[3]),e.layout(),c=e.AABBBounds.height()+(a[0]+a[2])}const d=this.table.getRowHeight(o);t.attribute.height!==c&&(t.setAttribute("height",c),(d===h||c>d)&&(n=!0))})),n}updateHeaderPosition(t,e,i,r,n){!function(t,e,i,r,n,o){const s=o.scenegraph;for(let i=t;i<=e;i++){const t=o.getColWidth(i),e=o.scenegraph.getColGroup(i,!0),r=o.scenegraph.getColGroup(i),n=o.scenegraph.getColGroupInBottom(i),s=o.scenegraph.getColGroupInLeftBottomCorner(i),a=o.scenegraph.getColGroupInRightBottomCorner(i);e&&(e.setAttribute("width",t),e.forEachChildren((e=>{e.setAttribute("width",t)}))),r&&(r.setAttribute("width",t),r.forEachChildren((e=>{e.setAttribute("width",t)}))),n&&(n.setAttribute("width",t),n.forEachChildren((e=>{e.setAttribute("width",t)}))),a&&(a.setAttribute("width",t),a.forEachChildren((e=>{e.setAttribute("width",t)}))),s&&(s.setAttribute("width",t),s.forEachChildren((e=>{e.setAttribute("width",t)})))}if(s.updateContainer(),"column"===n)for(let i=t;i<=e;i++){const t=o.scenegraph.getColGroup(i);t?.setAttribute("chartInstance",void 0);for(let t=0;t<=o.frozenRowCount-1;t++)s.updateCellContent(i,t);for(let t=s.bodyRowStart;t<=s.bodyRowEnd;t++)s.updateCellContent(i,t);for(let t=o.rowCount-o.bottomFrozenRowCount;t<=o.rowCount-1;t++)s.updateCellContent(i,t)}else{for(let t=0;t<=o.frozenColCount-1;t++){const e=o.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}for(let t=s.bodyColStart;t<=s.bodyColEnd;t++){const e=o.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}for(let t=o.colCount-o.rightFrozenColCount;t<=o.colCount-1;t++){const e=o.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}}}(t,e,i,r,n,this.table)}updateContainerAttrWidthAndX(){const t=yW(this.cornerHeaderGroup,0),e=yW(this.rowHeaderGroup,0),i=this.colHeaderGroup.hasChildNodes()&&this.colHeaderGroup.firstChild?yW(this.colHeaderGroup,this.colHeaderGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.colHeaderGroup.firstChild.col-1):0):0,r=this.bodyGroup.hasChildNodes()&&this.bodyGroup.firstChild?yW(this.bodyGroup,this.bodyGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bodyGroup.firstChild.col-1):0):0,n=yW(this.rightFrozenGroup,0);this.bottomFrozenGroup.hasChildNodes()&&this.bottomFrozenGroup.firstChild&&yW(this.bottomFrozenGroup,this.bottomFrozenGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bottomFrozenGroup.firstChild.col-1):0),yW(this.leftBottomCornerGroup,0),yW(this.rightTopCornerGroup,0),yW(this.rightBottomCornerGroup,0),this.cornerHeaderGroup.setDeltaWidth(t-this.cornerHeaderGroup.attribute.width),this.leftBottomCornerGroup.setDeltaWidth(t-this.leftBottomCornerGroup.attribute.width),this.colHeaderGroup.setDeltaWidth(i-this.colHeaderGroup.attribute.width),this.rowHeaderGroup.setDeltaWidth(e-this.rowHeaderGroup.attribute.width),this.bottomFrozenGroup.setDeltaWidth(i-this.bottomFrozenGroup.attribute.width),this.rightFrozenGroup.setDeltaWidth(n-this.rightFrozenGroup.attribute.width),this.rightTopCornerGroup.setDeltaWidth(n-this.rightTopCornerGroup.attribute.width),this.rightBottomCornerGroup.setDeltaWidth(n-this.rightBottomCornerGroup.attribute.width),this.bodyGroup.setDeltaWidth(r-this.bodyGroup.attribute.width),this.colHeaderGroup.setAttribute("x",this.cornerHeaderGroup.attribute.width),this.bottomFrozenGroup.setAttribute("x",this.table.getFrozenColsWidth()),this.bodyGroup.setAttribute("x",this.rowHeaderGroup.attribute.width)}updateContainer(t=!1){t?this._needUpdateContainer||(this._needUpdateContainer=!0,setTimeout((()=>{this.updateContainerSync()}),0)):(this._needUpdateContainer=!0,this.updateContainerSync())}updateContainerSync(){this._needUpdateContainer&&(this._needUpdateContainer=!1,this.updateContainerAttrWidthAndX(),this.updateTableSize(),this.component.updateScrollBar(),this.updateDomContainer(),this.updateNextFrame())}updateCellContentWhileResize(t,e){const i=this.table.getBodyColumnType(t,e),r=this.getCell(t,e);"image"!==i&&"video"!==i||XO(r,t,e,this.table)}createFrameBorder(){this.updateTableSize();const t=!this.isPivot&&!this.table.internalProps.transpose;Pz(this.bodyGroup,this.table.theme.bodyStyle.frameStyle,this.bodyGroup.role,t?[!0,!0,!0,!1]:void 0),Pz(this.rowHeaderGroup,this.isPivot||this.table.internalProps.transpose?this.table.theme.rowHeaderStyle.frameStyle:this.table.theme.bodyStyle.frameStyle,this.rowHeaderGroup.role,t?[!0,!1,!0,!0]:void 0),Pz(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle,this.colHeaderGroup.role,t?[!0,!0,!0,!1]:void 0),Pz(this.cornerHeaderGroup,this.isPivot?this.table.theme.cornerHeaderStyle.frameStyle:this.table.theme.headerStyle.frameStyle,this.cornerHeaderGroup.role,t?[!0,!1,!0,!0]:void 0),Pz(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0)}getResizeColAt(t,e,i,r=8){let n;if(!i){const i=this.table.getDrawRange();return e>=i.top&&e<=i.bottom?(n=this.table.getCellAt(t-r,e),n):{col:-1,row:-1}}return t<i.globalAABBBounds.x1+r?n={col:i.col-1,row:i.row,x:i.globalAABBBounds.x1}:i.globalAABBBounds.x2-r<t&&(n={col:i.col,row:i.row,x:i.globalAABBBounds.x2}),n&&this.table.rightFrozenColCount>0&&n.col===this.table.colCount-this.table.rightFrozenColCount-1&&this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()+this.table.scrollLeft<this.bodyGroup.attribute.width&&(n.col=n.col+1,n.rightFrozen=!0),n||{col:-1,row:-1}}getResizeRowAt(t,e,i,r=8){if(i){let t;if(e<i.globalAABBBounds.y1+r?t={col:i.col,row:i.row-1,y:i.globalAABBBounds.y1}:i.globalAABBBounds.y2-r<e&&(t={col:i.col,row:i.row,y:i.globalAABBBounds.y2}),t&&this.table.bottomFrozenRowCount>0&&t.row===this.table.rowCount-this.table.bottomFrozenRowCount-1&&this.table.tableNoFrameHeight-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight()+this.table.scrollTop<this.bodyGroup.attribute.height&&(t.row=t.row+1,t.bottomFrozen=!0),t)return t}else;return{col:-1,row:-1}}updateFrozen(){this.clear||(this.resetFrozen(),this.component.updateScrollBar())}dealWidthRightFrozen(t){this.clear?this.table.internalProps.rightFrozenColCount=t:function(t,e){const{table:i,proxy:r,rightTopCornerGroup:n,rightFrozenGroup:o,rightBottomCornerGroup:s,bottomFrozenGroup:a,bodyGroup:l,colHeaderGroup:h}=e,c=e.table.rightFrozenColCount;if(t>c){for(let r=i.colCount-c-1;r>=i.colCount-t;r--)pW(o,e.getColGroup(r),o.firstChild),pW(n,e.getColGroup(r,!0),n.firstChild),pW(s,e.getColGroupInBottom(r),s.firstChild);let r=0;o.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,s.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width}))}else if(t<c){for(let r=i.colCount-c;r<i.colCount-t;r++){const t=e.getColGroup(r);t.setAttribute("x",l.lastChild.attribute.x+i.getColWidth(l.lastChild.col)),l.appendChild(t);const n=e.getColGroupInRightTopCorner(r);n.setAttribute("x",h.lastChild.attribute.x+i.getColWidth(h.lastChild.col)),h.appendChild(n);const o=e.getColGroupInRightBottomCorner(r);o.setAttribute("x",a.lastChild.attribute.x+i.getColWidth(a.lastChild.col)),a.appendChild(o)}let r=0;o.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,s.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width}))}o.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),n.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),s.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),i.internalProps.rightFrozenColCount=t,e.updateContainer(),e.component.updateScrollBar(),e.updateNextFrame()}(t,this)}dealWidthBottomFrozen(t){this.clear?this.table.internalProps.bottomFrozenRowCount=t:function(t,e){const{table:i,proxy:r,bottomFrozenGroup:n,leftBottomCornerGroup:o,rightBottomCornerGroup:s}=e;n.childrenCount||(r.table.isPivotChart()||(MD(o,0,0,0,i.frozenColCount-1,0,-1,"rowHeader",i),MD(s,0,0,i.colCount-i.rightFrozenColCount,i.colCount-1,0,-1,"body",i)),MD(n,0,0,r.colStart,r.colEnd,0,-1,"body",i));const a=e.table.bottomFrozenRowCount;if(t>a){for(let r=0;r<i.frozenColCount;r++){const n=e.getColGroupInLeftBottomCorner(r);for(let o=i.rowCount-a-1;o>=i.rowCount-t;o--)pW(n,e.getCell(r,o,!0),n.firstChild);let o=0;n.forEachChildren((t=>{t.setAttribute("y",o),o+=i.getRowHeight(t.row)}))}for(let n=r.colStart;n<=r.colEnd;n++){const r=e.getColGroupInBottom(n);for(let o=i.rowCount-a-1;o>=i.rowCount-t;o--)pW(r,e.getCell(n,o,!0),r.firstChild);let o=0;r.forEachChildren((t=>{t.setAttribute("y",o),o+=i.getRowHeight(t.row)}))}if(i.rightFrozenColCount>0)for(let r=i.colCount-i.rightFrozenColCount;r<i.colCount;r++){const n=e.getColGroupInRightBottomCorner(r);for(let o=i.rowCount-a-1;o>=i.rowCount-t;o--)pW(n,e.getCell(r,o,!0),n.firstChild);let o=0;n.forEachChildren((t=>{t.setAttribute("y",o),o+=i.getRowHeight(t.row)}))}}else if(t<a){for(let r=0;r<i.rowHeaderLevelCount;r++){const n=e.getColGroup(r);for(let o=i.rowCount-a;o<i.rowCount-t;o++){const t=e.getCell(r,o,!0);t.setAttribute("y",n.lastChild.attribute.y+i.getRowHeight(n.lastChild.row)),n.appendChild(t)}const o=e.getColGroupInLeftBottomCorner(r);let s=0;o.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}for(let n=r.colStart;n<=r.colEnd;n++){const r=e.getColGroup(n);for(let o=i.rowCount-a;o<i.rowCount-t;o++){const t=e.getCell(n,o,!0);t.setAttribute("y",r.lastChild.attribute.y+i.getRowHeight(r.lastChild.row)),r.appendChild(t)}const o=e.getColGroupInBottom(n);let s=0;o.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}if(i.rightFrozenColCount>0)for(let r=i.colCount-i.rightFrozenColCount;r<i.colCount;r++){const n=e.getColGroup(r);for(let o=i.rowCount-a;o<i.rowCount-t;o++){const t=e.getCell(r,o,!0);t.setAttribute("y",n.lastChild.attribute.y+i.getRowHeight(n.lastChild.row)),n.appendChild(t)}const o=e.getColGroupInRightBottomCorner(r);let s=0;o.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}}n.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),o.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),s.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),i.internalProps.bottomFrozenRowCount=t,e.updateContainer(),e.component.updateScrollBar(),e.updateNextFrame()}(t,this)}updateBorderSizeAndPosition(){this.bodyGroup.border&&(this.bodyGroup.appendChild(this.bodyGroup.border),Lz(this.bodyGroup),this.rowHeaderGroup.attribute.width,kz(this.bodyGroup,this.table.theme.bodyStyle.frameStyle)),this.colHeaderGroup.border&&(this.colHeaderGroup.appendChild(this.colHeaderGroup.border),Lz(this.colHeaderGroup),this.cornerHeaderGroup.attribute.width,kz(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle)),this.rowHeaderGroup.border&&(this.rowHeaderGroup.appendChild(this.rowHeaderGroup.border),Lz(this.rowHeaderGroup)),this.cornerHeaderGroup.border&&(this.cornerHeaderGroup.appendChild(this.cornerHeaderGroup.border),Lz(this.cornerHeaderGroup)),function(t){if(!t.theme.frameStyle.cornerRadius)return;const e=t.theme.frameStyle.cornerRadius,{cornerHeaderGroup:i,colHeaderGroup:r,rowHeaderGroup:n,bodyGroup:o,rightTopCornerGroup:s,leftBottomCornerGroup:a,rightBottomCornerGroup:l,rightFrozenGroup:h,bottomFrozenGroup:c}=t.scenegraph;i.setAttribute("cornerRadius",0),r.setAttribute("cornerRadius",0),n.setAttribute("cornerRadius",0),o.setAttribute("cornerRadius",0),s.setAttribute("cornerRadius",0),a.setAttribute("cornerRadius",0),l.setAttribute("cornerRadius",0),h.setAttribute("cornerRadius",0),c.setAttribute("cornerRadius",0),i.attribute.width>0&&i.attribute.height>0?Hz(i,[e,0,0,0]):r.attribute.height>0?Hz(r,[e,0,0,0]):n.attribute.width>0?Hz(n,[e,0,0,0]):Hz(o,[e,0,0,0]),a.attribute.width>0&&a.attribute.height>0?Hz(a,[0,0,0,e]):c.attribute.height>0?Hz(c,[0,0,0,e]):n.attribute.width>0?Hz(n,[0,0,0,e]):Hz(o,[0,0,0,e]),s.attribute.width>0&&s.attribute.height>0?Hz(s,[0,e,0,0]):r.attribute.height>0?Hz(r,[0,e,0,0]):h.attribute.width>0?Hz(h,[0,e,0,0]):Hz(o,[0,e,0,0]),l.attribute.width>0&&l.attribute.height>0?Hz(l,[0,0,e,0]):h.attribute.width>0?Hz(h,[0,0,e,0]):c.attribute.height>0?Hz(c,[0,0,e,0]):Hz(o,[0,0,e,0])}(this.table)}sortCell(){this.isPivot||(this.table.transpose?this.proxy.sortCellHorizontal():this.proxy.sortCellVertical())}getCellOverflowText(t,e){const i=this.getCell(t,e).getChildByName("text",!0);if(i&&"text"===i.type){if(i.attribute.moreThanMaxCharacters)return this.table.getCellValue(t,e);const r=nt(i.attribute.text)?i.attribute.text.join(""):i.attribute.text;let n="";if(rt(i.cache.clipedText)?n=i.cache.clipedText:i.cache.layoutData?.lines?.forEach((t=>{n+=t.str})),n!==r)return this.table.getCellValue(t,e)}else if(i&&"richtext"===i.type){const r=i;if(r.attribute.ellipsis&&r._frameCache&&r.attribute.height<r._frameCache.actualHeight)return r.attribute.textConfig.find((t=>t.text)),this.table.getCellValue(t,e)}return null}updateDrill(t,e,i,r,n){this.component.drillIcon.update(t,e,i,r,n,this)}updateCellContent(t,e){if(!this.clear)return SF(t,e,this.table)}setPixelRatio(t){this.stage.disableDirtyBounds(),this.stage.window.setDpr(t),this.stage.render(),this.stage.enableDirtyBounds()}updateRow(t,e,i=[]){this.table.internalProps.layoutMap.clearCellRangeMap(),this.table.internalProps.useOneRowHeightFillAll=!1;const r=dL(e.map((t=>t.row))).sort(((t,e)=>t-e)),n=dL(i.map((t=>t.row))).sort(((t,e)=>t-e)),o=this.table.getAllRowsHeight()-[...r,...n].reduce(((t,e)=>t+this.table.getRowHeight(e)),0)<=this.table.tableNoFrameHeight;if(rW(t,e,i,this.table),this.recalculateColWidths(),"adaptive"===this.table.heightMode||this.table.autoFillHeight&&(this.table.getAllRowsHeight()<=this.table.tableNoFrameHeight||o))this.table.scenegraph.recalculateRowHeights();else if("autoHeight"===this.table.heightMode)for(let t=0;t<n.length;t++){const e=n[t],i=this.table.getRowHeight(e),r=dz(e,0,this.table.colCount-1,this.table);(e>=this.proxy.rowStart&&e<=this.proxy.rowEnd||e>=this.table.rowCount-this.table.bottomFrozenRowCount&&e<=this.table.rowCount-1)&&this.table.scenegraph.updateRowHeight(e,r-i)}this.table.stateManager.checkFrozen(),this.isPivot||this.table.transpose?this.table.options.frozenColCount?this.component.setFrozenColumnShadow(this.table.frozenColCount-1):this.table.options.rightFrozenColCount&&this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount):(this.component.setFrozenColumnShadow(this.table.frozenColCount-1),this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount)),this.component.updateScrollBar(),this.updateNextFrame()}updateCol(t,e,i=[]){SW(t,e,i,this.table),this.recalculateColWidths(),this.recalculateRowHeights(),this.table.stateManager.checkFrozen(),this.isPivot||this.table.transpose?this.table.options.frozenColCount?this.component.setFrozenColumnShadow(this.table.frozenColCount-1):this.table.options.rightFrozenColCount&&this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount):(this.component.setFrozenColumnShadow(this.table.frozenColCount-1),this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount)),this.component.updateScrollBar(),this.updateNextFrame()}getColumnGroupX(t){return t<this.table.rowHeaderLevelCount?this.table.getColsWidth(0,t-1):t<this.table.colCount-this.table.rightFrozenColCount?this.table.getColsWidth(this.table.rowHeaderLevelCount,t-1):t<this.table.colCount?this.table.getColsWidth(this.table.colCount-this.table.bottomFrozenRowCount,t-1):0}getCellGroupY(t){return t<this.table.columnHeaderLevelCount?this.table.getRowsHeight(0,t-1):t<this.table.rowCount-this.table.bottomFrozenRowCount?this.table.getRowsHeight(this.table.columnHeaderLevelCount,t-1):t<this.table.rowCount?this.table.getRowsHeight(this.table.rowCount-this.table.bottomFrozenRowCount,t-1):0}getCellGroupX(t){return t<this.table.rowHeaderLevelCount?this.table.getColsWidth(0,t-1):t<this.table.colCount-this.table.rightFrozenColCount?this.table.getColsWidth(this.table.rowHeaderLevelCount,t-1):t<this.table.colCount?this.table.getColsWidth(this.table.colCount-this.table.rightFrozenColCount,t-1):0}updateDomContainer(){const{headerDomContainer:t,bodyDomContainer:e}=this.table.internalProps;t&&(t.style.width=`${t.parentElement?.offsetWidth??0}px`,t.style.height=`${this.table.getFrozenRowsHeight()}px`),e&&(e.style.width=`${e.parentElement?.offsetWidth??0}px`,e.style.height=`${e.parentElement?.offsetHeight??0-this.table.getFrozenRowsHeight()}px`,e.style.top=`${this.table.getFrozenRowsHeight()}px`)}}function BW(t,e,i){const r=t.highPerformanceGetCell(e,i);if("cell"===r.role&&Z(r.mergeStartCol)&&Z(r.mergeStartRow)&&Z(r.mergeEndCol)&&Z(r.mergeEndRow)){const{colStart:e,colEnd:i,rowStart:n,rowEnd:o}=bz(r,t);for(let r=e;r<=i;r++)for(let e=n;e<=o;e++){t.highPerformanceGetCell(r,e).addUpdateBoundTag()}}else r.addUpdateBoundTag()}function PW(t,e,i,r,n){const o=t.table;for(let i=0;i<o.columnHeaderLevelCount;i++)BW(t,e,i);const s=t.getColGroup(e);return s?.addUpdateBoundTag(),!0}function kW(t,e,i,r,n,o){const s=t.table;for(let i=0;i<s.columnHeaderLevelCount;i++)BW(t,e,i);const a=t.getColGroup(e);return a?.addUpdateBoundTag(),!0}function EW(t,e,i,r,n){const o=t.table;for(let e=0;e<o.colCount;e++)BW(t,e,i);return!0}function LW(t,e,i,r,n,o){const s=t.table;for(let e=0;e<s.colCount;e++)BW(t,e,i);return!0}function HW(t,e,i){const{table:r}=t,{scenegraph:n}=r,{highlightScope:o,singleStyle:s,disableHeader:a,cellPos:l,cellPosContainHeader:h}=t.hover,c=l.col,d=l.row;if(o===mE.none||a&&(h.col!==e||h.row!==i)){const t=h.col,r=h.row;n.hideHoverIcon(t,r),n.showHoverIcon(e,i),h.col=e,h.row=i}if((a&&r.isHeader(e,i)||o===mE.none)&&(e=-1,i=-1),c===e&&d===i)return;n.deactivateChart(c,d),n.activateChart(e,i);let u=!1;const{ranges:g,highlightScope:p}=t.select;if(-1!==c&&-1!==d&&(u=function(t,e,i,r,n,o,s){let a=!1;o===mE.single?a=!!function(t,e,i,r,n){return BW(t,e,i),!0}(t,e,i)||a:o===mE.row?a=!!EW(t,0,i)||a:o===mE.column?a=!!PW(t,e)||a:o===mE.cross&&(a=!!EW(t,0,i)||a,a=!!PW(t,e)||a);return a}(n,c,d,0,0,o),a||n.hideHoverIcon(c,d)),-1===e||-1===i)return l.col=-1,l.row=-1,void(!u||c===e&&d===i||t.table.scenegraph.updateNextFrame());o===mE.single?u=!!function(t,e,i,r,n){return BW(t,e,i),!0}(n,e,i)||u:o===mE.row?u=!!LW(n,0,i)||u:o===mE.column?u=!!kW(n,e)||u:o===mE.cross&&(u=!!LW(n,0,i)||u,u=!!kW(n,e)||u),o===mE.none||a||n.showHoverIcon(e,i),l.col=e,l.row=i,u&&t.table.scenegraph.updateNextFrame()}function IW(t,e,i,r){let n,o=null,s=!1;if(Array.isArray(i.sortState))for(let r=0;r<i.sortState.length&&(n=i.sortState[r],n&&(o=i._getHeaderCellBySortState(n)),o&&(s=OW(t,e,o.col,o.row,i)),!s);r++);else n=i.sortState,n&&(o=i._getHeaderCellBySortState(n)),o&&(s=OW(t,e,o.col,o.row,i));const a=i.getHeaderDefine(t,e);n&&s&&a?.sort?n.order="asc"===n.order?"desc":"desc"===n.order?"normal":"asc":a?.sort?n={field:i.getHeaderField(t,e),order:"asc"}:s&&a?.showSort||(n={field:i.getHeaderField(t,e),order:"normal"}),n.event=r;if(i.fireListeners(IL.SORT_CLICK,n).includes(!1))return;i.internalProps.sortState=n,i.stateManager.setSortState(n),a?.sort&&function(t,e,i){const r=e.internalProps.layoutMap.headerObjects.find((e=>e&&e.field===t.field));if(!r)return;const{field:n}=r;if(null===n)return;"function"==typeof i.sort?e.dataSource.sort(n,t.order||"asc",i.sort):e.dataSource.sort(n,t.order||"asc",hL)}(n,i,a),i.internalProps.useOneRowHeightFillAll=!1,i.internalProps.layoutMap.clearCellRangeMap(),i.scenegraph.sortCell();const l=!!i.stateManager.select.ranges?.length;i.stateManager.updateSelectPos(-1,-1),i.stateManager.endSelectCells(!0,l)}function OW(t,e,i,r,n){return n._getLayoutCellId(t,e)===n._getLayoutCellId(i,r)}const FW=wL(IL,{PIVOT_SORT_CLICK:"pivot_sort_click",DRILLMENU_CLICK:"drillmenu_click"}),zW=wL(IL,{VCHART_EVENT_TYPE:"vchart_event_type"});function DW(t,e,i,r,n){for(let i=t;i<=e;i++)n._clearColRangeWidthsMap(i);for(let t=i;t<=r;t++)n._clearRowRangeHeightsMap(t)}function WW(t){if(!t)return;const e=t.role?.startsWith("icon")?t:"richtext"===t.type?t._currentHoverIcon:void 0;return e?"richtext"===t.type?{icon:e,position:{left:t.globalAABBBounds.x1+e.globalAABBBounds.x1,right:t.globalAABBBounds.x1+e.globalAABBBounds.x2,top:t.globalAABBBounds.y1+e.globalAABBBounds.y1,bottom:t.globalAABBBounds.y1+e.globalAABBBounds.y2,width:e.globalAABBBounds.x2-e.globalAABBBounds.x1,height:e.globalAABBBounds.y2-e.globalAABBBounds.y1},type:"richtext-icon"}:{icon:e,position:{left:e.globalAABBBounds.x1,right:e.globalAABBBounds.x2,top:e.globalAABBBounds.y1,bottom:e.globalAABBBounds.y2,width:e.globalAABBBounds.x2-e.globalAABBBounds.x1,height:e.globalAABBBounds.y2-e.globalAABBBounds.y1},type:"icon"}:void 0}function NW(t,e){"adaptive"===e.table.widthMode&&e.columnResize.col<e.table.colCount-1?(e.table.scenegraph.updateColWidth(e.columnResize.col,t),e.table.scenegraph.updateColWidth(e.columnResize.col+1,-t),e.table.internalProps._widthResizedColMap.add(e.columnResize.col),e.table.internalProps._widthResizedColMap.add(e.columnResize.col+1)):(e.table.scenegraph.updateColWidth(e.columnResize.col,t),e.table.internalProps._widthResizedColMap.add(e.columnResize.col))}function GW(t,e){"adaptive"===e.table.heightMode&&e.rowResize.row<e.table.colCount-1?(e.table.scenegraph.updateRowHeight(e.rowResize.row,t),e.table.scenegraph.updateRowHeight(e.rowResize.row+1,-t),e.table.internalProps._heightResizedRowMap.add(e.rowResize.row),e.table.internalProps._heightResizedRowMap.add(e.rowResize.row+1)):(e.table.scenegraph.updateRowHeight(e.rowResize.row,t),e.table.internalProps._heightResizedRowMap.add(e.rowResize.row))}class jW{table;interactionState;select;fillHandle;hover;hoverIcon;residentHoverIcon;columnResize;rowResize;columnMove;menu;sort;frozen;scroll;tablePosition;drill;sparkLine;_clearVerticalScrollBar;_clearHorizontalScrollBar;fastScrolling=!1;checkedState=[];headerCheckedState={};_checkboxCellTypeFields=[];_headerCheckFuncs={};radioState={};resetInteractionState=FL((()=>{this.updateInteractionState(fE.default)}),100);constructor(t){this.table=t,this.initState(),this.updateVerticalScrollBar=this.updateVerticalScrollBar.bind(this),this.updateHorizontalScrollBar=this.updateHorizontalScrollBar.bind(this)}initState(){this._initState(),this.setHoverState(),this.setSelectState(),this.setFrozenState()}updateOptionSetState(){this._updateOptionSetState(),this.setHoverState(),this.setSelectState(),this.setFrozenState()}_updateOptionSetState(){this.interactionState=fE.default,this.hoverIcon={col:-1,row:-1,icon:null},this.columnResize={col:-1,x:0,resizing:!1},this.rowResize={row:-1,y:0,resizing:!1},this.columnMove={colSource:-1,colTarget:-1,rowSource:-1,rowTarget:-1,x:0,y:0,moving:!1},this.menu={x:-1,y:-1,isShow:!1,itemList:[],bounds:new Se,highlightIndex:-1,dropDownMenuHighlight:[]},this.sort={col:-1,row:-1,order:"normal"},this.frozen={col:-1},this.tablePosition={absoluteX:0,absoluteY:0},this.drill={col:-1,row:-1},this.sparkLine={col:-1,row:-1}}_initState(){this.interactionState=fE.default,this.select={highlightScope:mE.single,ranges:[],cellPos:{col:-1,row:-1},selecting:!1},this.fillHandle={isFilling:!1,startX:void 0,startY:void 0},this.hover={highlightScope:mE.single,cellPos:{col:-1,row:-1}},this.hoverIcon={col:-1,row:-1,icon:null},this.columnResize={col:-1,x:0,resizing:!1},this.rowResize={row:-1,y:0,resizing:!1},this.columnMove={colSource:-1,colTarget:-1,rowSource:-1,rowTarget:-1,x:0,y:0,moving:!1},this.menu={x:-1,y:-1,isShow:!1,itemList:[],bounds:new Se,highlightIndex:-1,dropDownMenuHighlight:[]},this.sort={col:-1,row:-1,order:"normal"},this.frozen={col:-1},this.scroll={horizontalBarPos:0,verticalBarPos:0},this.tablePosition={absoluteX:0,absoluteY:0},this.drill={col:-1,row:-1},this.sparkLine={col:-1,row:-1}}setHoverState(){const{highlightMode:t,disableHover:e,disableHeaderHover:i}=this.table.options.hover??{highlightMode:"cell"};e?this.hover.highlightScope=mE.none:"cross"===t?this.hover.highlightScope=mE.cross:"row"===t?this.hover.highlightScope=mE.row:"column"===t?this.hover.highlightScope=mE.column:"cell"===t&&(this.hover.highlightScope=mE.single),this.hover.singleStyle=!e,this.hover.disableHeader=i,(this.hover.highlightScope===mE.none||i)&&(this.hover.cellPosContainHeader={col:-1,row:-1})}setSelectState(){const{headerSelectMode:t,disableSelect:e,disableHeaderSelect:i,highlightMode:r}=Object.assign({},{headerSelectMode:"inline",disableSelect:!1,disableHeaderSelect:!1,highlightMode:"cell"},this.table.options.select);this.select.highlightScope=e?mE.none:"cross"===r?mE.cross:"row"===r?mE.row:"column"===r?mE.column:mE.single,this.select.singleStyle=!e,this.select.disableHeader=i,this.select.headerSelectMode=t}isSelected(t,e){let i=!1;return this.select.ranges.forEach((r=>{ML(r,t,e)&&(i=!0)})),i}setSortState(t){this.sort.field=t?.field,this.sort.order=t?.order}setFrozenState(){this.frozen.col=this.table.frozenColCount-1}updateInteractionState(t){if(this.interactionState===t)return;const e=this.interactionState;this.interactionState=t,e===fE.scrolling&&fE.default}updateHoverhighlightScope(t){this.hover.highlightScope!==t&&(this.hover.highlightScope=t)}updateHoverPos(t,e){HW(this,t,e)}updateSelectPos(t,e,i=!1,r=!1,n=!1,o=!1,s=!1){-1!==e&&-1!==e&&(this.select.selecting=!0),function(t,e,i,r,n,o,s=!1,a=!1){const{table:l,interactionState:h}=t,{scenegraph:c}=l,{highlightScope:d,disableHeader:u,cellPos:g}=t.select;if((u&&l.isHeader(e,i)||"none"===d)&&(e=-1,i=-1),-1!==e&&-1!==i&&!s)if(h===fE.grabing&&t.select.ranges.length>0){const r=t.select.ranges[t.select.ranges.length-1];e>r.start.col&&e>r.end.col&&l._makeVisibleCell(e+1,i),i>r.start.row&&i>r.end.row&&l._makeVisibleCell(e,i+1),e<r.start.col&&e<r.end.col&&l._makeVisibleCell(e-1,i),i<r.start.row&&i<r.end.row&&l._makeVisibleCell(e,i-1)}else l._makeVisibleCell(e,i);if(o){t.select.ranges=[],c.deleteAllSelectBorder();let e=0,i=0;const{disableHeaderSelect:r,disableRowSeriesNumberSelect:n}=l.options.keyboardOptions?.selectAllOnCtrlA||{};r&&(e=l.rowHeaderLevelCount,i=l.columnHeaderLevelCount),(n||r)&&l.options.rowSeriesNumber&&(e+=1),t.select.ranges.push({start:{col:e,row:i},end:{col:l.colCount-1,row:l.rowCount-1}});const o=t.select.ranges[t.select.ranges.length-1];c.updateCellSelectBorder(o,!1)}else if(-1===g.col||-1===g.row||-1!==e&&-1!==i)if(h!==fE.default||l.eventManager.isDraging||l.stateManager.isResizeCol()){if((h===fE.grabing||l.eventManager.isDraging)&&!l.stateManager.isResizeCol()){let r=!0;-1===g.col&&(g.col=e),-1===g.row&&(g.row=i),g.col=e,g.row=i;const n=t.select.ranges[t.select.ranges.length-1];if(n){if(l.internalProps.layoutMap.isSeriesNumberInBody(n.start.col,n.start.row))r=!1,n.end={col:l.colCount-1,row:i};else if(t.fillHandle.isFilling){if("top"===t.fillHandle.direction)if(i===t.fillHandle.beforeFillMinRow&&i===t.fillHandle.beforeFillMaxRow)n.start.row=n.end.row=i;else if(i<=t.fillHandle.beforeFillMinRow){if(n.start.row<n.end.row){const t=n.start.row;n.start.row=n.end.row,n.end.row=t}n.end.row=i}else i===t.fillHandle.beforeFillMaxRow&&(n.start.row>n.end.row?n.start.row=i:n.end.row=i);else if("bottom"===t.fillHandle.direction){if(i>=t.fillHandle.beforeFillMaxRow){if(n.start.row>n.end.row){const t=n.start.row;n.start.row=n.end.row,n.end.row=t}n.end.row=i}}else if("left"===t.fillHandle.direction)if(e===t.fillHandle.beforeFillMinCol&&e===t.fillHandle.beforeFillMaxCol)n.start.col=n.end.col=e;else if(e<=t.fillHandle.beforeFillMinCol){if(n.start.col<n.end.col){const t=n.start.col;n.start.col=n.end.col,n.end.col=t}n.end.col=e}else e===t.fillHandle.beforeFillMaxCol&&(n.start.col>n.end.col?n.start.col=e:n.end.col=e);else if("right"===t.fillHandle.direction&&e>=t.fillHandle.beforeFillMaxCol){if(n.start.col>n.end.col){const t=n.start.col;n.start.col=n.end.col,n.end.col=t}n.end.col=e}}else n.end={col:e,row:i},a&&(n.skipBodyMerge=!0);c.updateCellSelectBorder(n,r)}}}else{const o=t.select.ranges[t.select.ranges.length-1];if(r&&o){if(n||(g.col=e,g.row=i),"cell"!==t.select.headerSelectMode&&l.isColumnHeader(e,i)){const t=Math.min(o.start.col,o.end.col,e),r=Math.max(o.start.col,o.end.col,e),n=Math.min(o.start.row,o.end.row,i),s=l.rowCount-1;o.start={col:t,row:n},o.end={col:r,row:s}}else if("cell"!==t.select.headerSelectMode&&l.isRowHeader(e,i)){const t=Math.min(o.start.col,o.end.col,e),r=l.colCount-1,n=Math.min(o.start.row,o.end.row,i),s=Math.max(o.start.row,o.end.row,i);o.start={col:t,row:n},o.end={col:r,row:s}}else o.end={col:e,row:i};c.deleteLastSelectedRangeComponents(),c.updateCellSelectBorder(o)}else{let r=!0;if(-1===g.col||-1===g.row||n||(t.select.ranges=[],c.deleteAllSelectBorder()),"cell"!==t.select.headerSelectMode&&l.isColumnHeader(e,i)){const r=l.getCellRange(e,i);t.select.ranges.push({start:{col:r.start.col,row:i},end:{col:r.end.col,row:l.rowCount-1},skipBodyMerge:!0})}else if("cell"!==t.select.headerSelectMode&&l.isRowHeader(e,i)){const r=l.getCellRange(e,i);t.select.ranges.push({start:{col:e,row:r.start.row},end:{col:l.colCount-1,row:r.end.row},skipBodyMerge:!0})}else if(l.internalProps.layoutMap.isSeriesNumberInHeader(e,i))r=!1,t.select.ranges.push({start:{col:0,row:0},end:{col:l.colCount-1,row:l.rowCount-1},skipBodyMerge:!0});else if(l.internalProps.layoutMap.isSeriesNumberInBody(e,i))r=!1,t.select.ranges.push({start:{col:e,row:i},end:{col:l.colCount-1,row:i},skipBodyMerge:!0});else if(e>=0&&i>=0){const r=a?{start:{col:e,row:i},end:{col:e,row:i}}:l.getCellRange(e,i);t.select.ranges.push({start:{col:r.start.col,row:r.start.row},end:{col:r.end.col,row:r.end.row},skipBodyMerge:a||void 0})}g.col=e,g.row=i;const o=t.select.ranges?.[t.select.ranges.length-1];o&&c.updateCellSelectBorder(o,r)}}else g.col=-1,g.row=-1,t.select.ranges=[],c.deleteAllSelectBorder();c.updateNextFrame()}(this,t,e,i,r,n,o,s)}checkCellRangeInSelect(t,e){return function(t,e,i,r){for(let r=0;r<i.length;r++)if(RL(i[r],{start:t,end:e}))return!0;return!1}(t,e,this.select.ranges,this.select.highlightScope)}updateHoverIcon(t,e,i,r,n){if(this.residentHoverIcon?.icon&&i===this.residentHoverIcon?.icon)return;const o=WW(i);if(o)if("richtext-icon"===o.type){const i=o.icon;if(this.hoverIcon.icon&&this.hoverIcon.icon!==this.residentHoverIcon?.icon&&(this.table.scenegraph.setIconNormalStyle(this.hoverIcon.icon,this.hoverIcon.col,this.hoverIcon.row),this.hoverIcon.col=-1,this.hoverIcon.col=-1,this.hoverIcon.icon=null,this.table.scenegraph.updateNextFrame()),i.attribute.tooltip){const r={content:i.attribute.tooltip.title,referencePosition:{rect:o.position,placement:i.attribute.tooltip.placement},style:Object.assign({},this.table.internalProps.theme?.tooltipStyle,i.tooltip?.style,i.attribute?.tooltip?.style),disappearDelay:i.attribute.tooltip.disappearDelay};this.table.internalProps.tooltipHandler.isBinded(r)||this.table.showTooltip(t,e,r)}}else{const i=o.icon;i!==this.hoverIcon.icon&&(this.hoverIcon.icon&&this.hoverIcon.icon!==this.residentHoverIcon?.icon&&this.table.scenegraph.setIconNormalStyle(this.hoverIcon.icon,this.hoverIcon.col,this.hoverIcon.row),this.hoverIcon.col=t,this.hoverIcon.row=e,this.hoverIcon.icon=i,this.table.scenegraph.setIconHoverStyle(i,t,e,r),this.table.scenegraph.updateNextFrame())}else this.hoverIcon.icon&&this.hoverIcon.icon!==this.residentHoverIcon?.icon&&(this.table.scenegraph.setIconNormalStyle(this.hoverIcon.icon,this.hoverIcon.col,this.hoverIcon.row),this.hoverIcon.col=-1,this.hoverIcon.col=-1,this.hoverIcon.icon=null,this.table.scenegraph.updateNextFrame())}isResizeCol(){return this.columnResize.resizing}isResizeRow(){return this.rowResize.resizing}isFillHandle(){return this.fillHandle.isFilling}isSelecting(){return this.select.selecting}endSelectCells(t=!0,e=!0){if(this.select.selecting){if(this.select.selecting=!1,0===this.select.ranges.length)return;const e=this.select.ranges[this.select.ranges.length-1];let r=!1;for(let t=0;t<this.select.ranges.length-1;t++){const i=this.select.ranges[t];if(i&&i.start.col===e.start.col&&i.start.row===e.start.row&&i.end.col===e.end.col&&i.end.row===e.end.row){r=!0;break}}r?(this.select.ranges.pop(),(i=this.table.scenegraph).selectingRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),i.selectingRangeComponents=new Map,this.table.scenegraph.selectingRangeComponents.clear()):this.table.scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();const n=this.select.ranges[this.select.ranges.length-1].end.col,o=this.select.ranges[this.select.ranges.length-1].end.row;t&&this.table.fireListeners(IL.SELECTED_CELL,{ranges:this.select.ranges,col:n,row:o})}else e&&0===this.select.ranges.length&&this.table.fireListeners(IL.SELECTED_CLEAR,{});var i}endResizeCol(){setTimeout((()=>{this.columnResize.resizing=!1}),0),this.table.scenegraph.updateChartSize(this.columnResize.col),this.checkFrozen(),this.table.scenegraph.component.hideResizeCol(),this.table.scenegraph.updateNextFrame()}startResizeCol(t,e,i,r){this.columnResize.resizing=!0,this.columnResize.col=t,this.columnResize.x=e,this.columnResize.isRightFrozen=r,this.table.scenegraph.component.showResizeCol(t,i,r);const n=!!this.select.ranges?.length;this.updateSelectPos(-1,-1),this.endSelectCells(!0,n),this.table.scenegraph.updateNextFrame()}updateResizeCol(t,e){!function(t,e,i){t=Math.ceil(t),e=Math.ceil(e);let r=i.columnResize.isRightFrozen?i.columnResize.x-t:t-i.columnResize.x;if(Math.abs(r)<1)return;const n=i.table.getColWidth(i.columnResize.col);let o=n;o+=r;const s=i.table.getMinColWidth(i.columnResize.col),a=i.table.getMaxColWidth(i.columnResize.col);if(o<s||o>a){if(n===s||n===a)return;r=n-s>a-n?a-n:s-n}let l=i.table.getColWidth(i.columnResize.col)+r;if(l<i.table.internalProps.limitMinWidth&&(l=i.table.internalProps.limitMinWidth,r=l-i.table.getColWidth(i.columnResize.col)),"adaptive"===i.table.widthMode&&i.columnResize.col<i.table.colCount-1){const t=i.table.getColWidth(i.columnResize.col+1),e=i.table.getMinColWidth(i.columnResize.col+1),n=i.table.getMaxColWidth(i.columnResize.col+1);let o=t;if(o-=r,o<e||o>n){if(t===e||t===n)return;r=t-e>n-t?n-t:e-t}o-r<i.table.internalProps.limitMinWidth&&(r=o-i.table.internalProps.limitMinWidth)}r=Math.ceil(r),i.columnResize.col<i.table.rowHeaderLevelCount||i.columnResize.col>=i.table.colCount-i.table.rightFrozenColCount?NW(r,i):"indicator"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,n,o;if(i.indicatorsAsCol)r=i.getIndicatorKey(e.columnResize.col,e.table.columnHeaderLevelCount);else{const t=i.getCellHeaderPaths(e.columnResize.col,e.table.columnHeaderLevelCount-1),r=t.colHeaderPaths[t.colHeaderPaths.length-1];n=r.dimensionKey,o=r.value}for(let s=e.table.rowHeaderLevelCount;s<e.table.colCount-e.table.rightFrozenColCount;s++){const a=i.getIndicatorKey(s,e.table.columnHeaderLevelCount);if(i.indicatorsAsCol&&a===r)e.table.scenegraph.updateColWidth(s,t),e.table.internalProps._widthResizedColMap.add(s);else if(!i.indicatorsAsCol){const r=i.getCellHeaderPaths(s,e.table.columnHeaderLevelCount-1),a=r?.colHeaderPaths[r.colHeaderPaths.length-1];a&&n===a.dimensionKey&&o===a.value&&(e.table.scenegraph.updateColWidth(s,t),e.table.internalProps._widthResizedColMap.add(s))}}}(r,i):"indicatorGroup"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap,r=i.getCellHeaderPaths(e.columnResize.col,e.table.columnHeaderLevelCount),n=i.getHeadNodeByRowOrColDimensions(r.colHeaderPaths.slice(0,r.colHeaderPaths.length-1)),o=n.startInTotal+e.table.frozenColCount,s=n.startInTotal+e.table.frozenColCount+n.size-1,a=e.table.getColsWidth(o,s),l=t;for(let t=o;t<=s;t++){if(!(e.table.internalProps.transpose||e.table.isPivotTable()&&!i.indicatorsAsCol)){const r=i.getBody(t,e.table.columnHeaderLevelCount);if(r?.disableColumnResize)continue}let r=e.table.getColWidth(t)/a*l;r>0&&r<.5?r=.5:r<0&&r>=-.5&&(r=-.5),e.table.scenegraph.updateColWidth(t,r),e.table.internalProps._widthResizedColMap.add(t)}}(r,i):"all"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap;for(let r=e.table.frozenColCount;r<e.table.colCount-e.table.rightFrozenColCount;r++){if(!(e.table.internalProps.transpose||e.table.isPivotTable()&&!i.indicatorsAsCol)){const t=i.getBody(r,e.table.columnHeaderLevelCount);if(t?.disableColumnResize)continue}e.table.scenegraph.updateColWidth(r,t),e.table.internalProps._widthResizedColMap.add(r)}}(r,i):NW(r,i),i.columnResize.x=t,i.table.scenegraph.component.updateResizeCol(i.columnResize.col,e,i.columnResize.isRightFrozen),i.columnResize.col<i.table.frozenColCount&&!i.table.isPivotTable()&&!i.table.transpose?i.table.scenegraph.component.setFrozenColumnShadow(i.table.frozenColCount-1,i.columnResize.isRightFrozen):i.columnResize.col>=i.table.colCount-i.table.rightFrozenColCount&&!i.table.isPivotTable()&&!i.table.transpose?i.table.scenegraph.component.setRightFrozenColumnShadow(i.table.colCount-i.table.rightFrozenColCount):i.table.options.frozenColCount?i.table.scenegraph.component.setFrozenColumnShadow(i.table.frozenColCount-1):i.table.options.rightFrozenColCount&&i.table.scenegraph.component.setRightFrozenColumnShadow(i.table.colCount-i.table.rightFrozenColCount),i.table.scenegraph.updateNextFrame()}(t,e,this)}endResizeRow(){setTimeout((()=>{this.rowResize.resizing=!1}),0),this.table.scenegraph.updateChartSize(this.rowResize.row),this.table.scenegraph.component.hideResizeRow(),this.table.scenegraph.updateNextFrame()}startResizeRow(t,e,i,r){this.rowResize.resizing=!0,this.rowResize.row=t,this.rowResize.y=i,this.rowResize.isBottomFrozen=r,this.table.scenegraph.component.showResizeRow(t,e,r);const n=!!this.select.ranges?.length;this.updateSelectPos(-1,-1),this.endSelectCells(!0,n),this.table.scenegraph.updateNextFrame()}updateResizeRow(t,e){!function(t,e,i){t=Math.ceil(t),e=Math.ceil(e);let r=i.rowResize.isBottomFrozen?i.rowResize.y-e:e-i.rowResize.y;if(Math.abs(r)<1)return;i.table.getRowHeight(i.rowResize.row);let n=i.table.getRowHeight(i.rowResize.row)+r;if(n<i.table.internalProps.limitMinHeight&&(n=i.table.internalProps.limitMinHeight,r=n-i.table.getRowHeight(i.rowResize.row)),"adaptive"===i.table.heightMode&&i.rowResize.row<i.table.rowCount-1){let t=i.table.getRowHeight(i.rowResize.row+1);t-=r,t-r<i.table.internalProps.limitMinHeight&&(r=t-i.table.internalProps.limitMinHeight)}r=Math.ceil(r),i.rowResize.row<i.table.columnHeaderLevelCount||i.rowResize.row>=i.table.rowCount-i.table.bottomFrozenRowCount?GW(r,i):"indicator"===i.table.internalProps.rowResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,n,o;if(i.indicatorsAsCol){const t=i.getCellHeaderPaths(e.table.rowHeaderLevelCount-1,e.rowResize.row),r=t.rowHeaderPaths?.[t.rowHeaderPaths.length-1];n=r?.dimensionKey,o=r?.value}else r=i.getIndicatorKey(e.table.rowHeaderLevelCount,e.rowResize.row);for(let s=e.table.columnHeaderLevelCount;s<e.table.rowCount-e.table.bottomFrozenRowCount;s++){const a=i.getIndicatorKey(e.table.rowHeaderLevelCount,s);if(i.indicatorsAsCol||a!==r){if(i.indicatorsAsCol){const r=i.getCellHeaderPaths(e.table.rowHeaderLevelCount-1,s),a=r?.rowHeaderPaths?.[r.rowHeaderPaths.length-1];a&&n===a.dimensionKey&&o===a.value&&(e.table.scenegraph.updateRowHeight(s,t),e.table.internalProps._heightResizedRowMap.add(s))}}else e.table.scenegraph.updateRowHeight(s,t),e.table.internalProps._heightResizedRowMap.add(s)}}(r,i):"indicatorGroup"===i.table.internalProps.rowResizeType?function(t,e){const i=e.table.internalProps.layoutMap,r=i.getCellHeaderPaths(e.table.rowHeaderLevelCount,e.rowResize.row),n=i.getHeadNodeByRowOrColDimensions(r.rowHeaderPaths.slice(0,r.rowHeaderPaths.length-1)),o=n.startInTotal+e.table.frozenRowCount,s=n.startInTotal+e.table.frozenRowCount+n.size-1,a=e.table.getRowsHeight(o,s),l=t;for(let t=o;t<=s;t++){let i=e.table.getRowHeight(t)/a*l;i>0&&i<.5?i=.5:i<0&&i>=-.5&&(i=-.51),e.table.scenegraph.updateRowHeight(t,i),e.table.internalProps._heightResizedRowMap.add(t)}}(r,i):"all"===i.table.internalProps.rowResizeType?function(t,e){for(let i=e.table.frozenRowCount;i<e.table.rowCount-e.table.bottomFrozenRowCount;i++)e.table.scenegraph.updateRowHeight(i,t),e.table.internalProps._heightResizedRowMap.add(i)}(r,i):GW(r,i),i.rowResize.y=e,i.table.scenegraph.component.updateResizeRow(i.rowResize.row,t,i.rowResize.isBottomFrozen),i.table.scenegraph.updateNextFrame()}(t,e,this)}startFillSelect(t,e){this.fillHandle.isFilling=!0,this.fillHandle.startX=t,this.fillHandle.startY=e;const i=this.select.ranges[this.select.ranges.length-1];this.fillHandle.beforeFillMinCol=Math.min(i.start.col,i.end.col),this.fillHandle.beforeFillMinRow=Math.min(i.start.row,i.end.row),this.fillHandle.beforeFillMaxCol=Math.max(i.start.col,i.end.col),this.fillHandle.beforeFillMaxRow=Math.max(i.start.row,i.end.row),this.table.fireListeners(IL.MOUSEDOWN_FILL_HANDLE,{})}endFillSelect(){this.fillHandle.isFilling=!1,this.fillHandle.startX=void 0,this.fillHandle.startY=void 0,this.fillHandle.directionRow=void 0;const t=Math.min(this.select.ranges[0].start.col,this.select.ranges[0].end.col),e=Math.min(this.select.ranges[0].start.row,this.select.ranges[0].end.row),i=Math.max(this.select.ranges[0].start.col,this.select.ranges[0].end.col),r=Math.max(this.select.ranges[0].start.row,this.select.ranges[0].end.row);this.fillHandle.beforeFillMinCol===t&&this.fillHandle.beforeFillMinRow===e&&this.fillHandle.beforeFillMaxCol===i&&this.fillHandle.beforeFillMaxRow===r||this.table.eventManager.isDraging&&this.table.fireListeners(IL.DRAG_FILL_HANDLE_END,{direction:this.fillHandle.direction}),this.fillHandle.beforeFillMaxCol=void 0,this.fillHandle.beforeFillMaxRow=void 0,this.fillHandle.beforeFillMinCol=void 0,this.fillHandle.beforeFillMinRow=void 0}startMoveCol(t,e,i,r){!function(t,e,i,r,n){if(!("canMoveHeaderPosition"in n.table.internalProps.layoutMap))return;n.columnMove.moving=!0,n.columnMove.colSource=t,n.columnMove.rowSource=e,n.columnMove.x=i-n.table.tableX,n.columnMove.y=r-n.table.tableY;const o=n.table.getCellLocation(t,e),s="columnHeader"===o?n.columnMove.x:"rowHeader"===o||n.table.internalProps.layoutMap.isSeriesNumberInBody(t,e)?n.columnMove.y:0;n.table.scenegraph.component.showMoveCol(t,e,s);const a=!!n.select.ranges?.length;n.table.stateManager.updateSelectPos(-1,-1),n.table.stateManager.endSelectCells(!0,a),n.table.scenegraph.updateNextFrame()}(t,e,i,r,this)}updateMoveCol(t,e,i,r){!function(t,e,i,r,n){if(!("canMoveHeaderPosition"in n.table.internalProps.layoutMap))return;const o=function(t,e,i){const r=i.getCellRange(t.col,t.row);if(i.isColumnHeader(t.col,t.row)){const n=i.getCellRange(e.col,r.start.row);e.row>=i.columnHeaderLevelCount&&(e.row=i.columnHeaderLevelCount-1),e.col>=t.col?e.col=n.end.col:e.col=n.start.col}else if(i.isRowHeader(t.col,t.row)){const n=i.internalProps.layoutMap,o=i.getCellRange(r.start.col,e.row);if(e.col>=i.rowHeaderLevelCount+n.leftRowSeriesNumberColumnCount&&(e.col=i.rowHeaderLevelCount+n.leftRowSeriesNumberColumnCount-1),"tree"===n.rowHierarchyType){const r=n.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,o=n.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths;if(r.length<=o.length){const n=o[r.length-1];n&&(e.row>=t.row?e.row=n.startInTotal+n.size-1+i.columnHeaderLevelCount:e.row=n.startInTotal+i.columnHeaderLevelCount)}}else e.row>=t.row?e.row=o.end.row:e.row=o.start.row}return e}({col:n.columnMove.colSource,row:n.columnMove.rowSource},{col:t,row:e},n.table);let s,a,l,h;n.columnMove.x=i-n.table.tableX,n.columnMove.y=r-n.table.tableY,n.columnMove.colTarget=o.col,n.columnMove.rowTarget=o.row,n.table.internalProps.layoutMap.canMoveHeaderPosition({col:n.columnMove.colSource,row:n.columnMove.rowSource},{col:n.columnMove.colTarget,row:n.columnMove.rowTarget})?n.updateCursor("grabbing"):n.updateCursor("not-allowed");const c=n.table.getCellLocation(n.columnMove.colSource,n.columnMove.rowSource);"columnHeader"===c?(a=n.columnMove.x,s=n.table.isLeftFrozenColumn(t)?n.columnMove.colTarget>=n.columnMove.colSource?n.table.getColsWidth(0,n.columnMove.colTarget):n.table.getColsWidth(0,n.columnMove.colTarget-1):n.table.isRightFrozenColumn(t)?n.table.tableNoFrameWidth-n.table.getColsWidth(o.col+1,n.table.colCount-1):(n.columnMove.colTarget>=n.columnMove.colSource?n.table.getColsWidth(0,n.columnMove.colTarget):n.table.getColsWidth(0,n.columnMove.colTarget-1))-n.table.stateManager.scroll.horizontalBarPos):("rowHeader"===c||n.table.internalProps.layoutMap.isSeriesNumberInBody(t,e))&&(h=n.columnMove.y,l=n.table.isFrozenRow(e)?n.columnMove.rowTarget>=n.columnMove.rowSource?n.table.getRowsHeight(0,n.columnMove.rowTarget):n.table.getRowsHeight(0,n.columnMove.rowTarget-1):n.table.isBottomFrozenRow(e)?n.table.tableNoFrameHeight-n.table.getRowsHeight(o.row+1,n.table.rowCount-1):(n.columnMove.rowTarget>=n.columnMove.rowSource?n.table.getRowsHeight(0,n.columnMove.rowTarget):n.table.getRowsHeight(0,n.columnMove.rowTarget-1))-n.table.stateManager.scroll.verticalBarPos),n.table.scenegraph.component.updateMoveCol(a,s,h,l),n.table.scenegraph.updateNextFrame()}(t,e,i,r,this)}isMoveCol(){return this.columnMove.moving}endMoveCol(){!function(t){if("canMoveHeaderPosition"in t.table.internalProps.layoutMap&&t.columnMove.moving&&t.columnMove.colSource>=0&&t.columnMove.rowSource>=0&&t.columnMove.colTarget>=0&&t.columnMove.rowTarget>=0){const e=t.table.getCellRange(t.columnMove.colSource,t.columnMove.rowSource),i=t.table.getCellRange(t.columnMove.colTarget,t.columnMove.rowTarget),r=t.table._moveHeaderPosition({col:t.columnMove.colSource,row:t.columnMove.rowSource},{col:t.columnMove.colTarget,row:t.columnMove.rowTarget});if(r){t.table.internalProps.useOneRowHeightFillAll=!1,t.table.internalProps.layoutMap.clearCellRangeMap();const n=t.table.getCellRange(t.columnMove.colSource,t.columnMove.rowSource),o=t.table.getCellRange(t.columnMove.colTarget,t.columnMove.rowTarget),s=Math.min(n.start.col,o.start.col,e.start.col,i.start.col),a=Math.max(n.end.col,o.end.col,e.end.col,i.end.col),l=Math.min(n.start.row,o.start.row,e.start.row,i.start.row);let h=Math.max(n.end.row,o.end.row,e.end.row,i.end.row);"row"===r.moveType&&"tree"===t.table.internalProps.layoutMap.rowHierarchyType&&(h=r.targetIndex>r.sourceIndex?h+r.targetSize-1:h+r.sourceSize-1),!t.table.transpose&&t.table.internalProps.layoutMap.isSeriesNumberInBody(t.columnMove.colSource,t.columnMove.rowSource)&&(t.table.changeRecordOrder(r.sourceIndex,r.targetIndex),t.changeCheckboxAndRadioOrder(r.sourceIndex,r.targetIndex)),"column"===r.moveType?DW(s,a,0,-1,t.table):DW(0,-1,l,h,t.table),t.table.clearCellStyleCache(),t.table.internalProps.layoutMap.isSeriesNumberInBody(t.columnMove.colSource,t.columnMove.rowSource)?t.table.scenegraph.updateHeaderPosition(t.table.scenegraph.proxy.colStart,t.table.scenegraph.proxy.colEnd,t.table.scenegraph.proxy.rowStart,t.table.scenegraph.proxy.rowEnd,r.moveType):"column"===r.moveType?t.table.scenegraph.updateHeaderPosition(s,a,0,-1,r.moveType):t.table.scenegraph.updateHeaderPosition(0,-1,l,h,r.moveType),"adjustFrozenCount"===t.table.internalProps.frozenColDragHeaderMode&&t.table.isListTable()&&(t.table.isLeftFrozenColumn(t.columnMove.colTarget)&&!t.table.isLeftFrozenColumn(t.columnMove.colSource)?t.table.frozenColCount+=n.end.col-n.start.col+1:t.table.isLeftFrozenColumn(t.columnMove.colSource)&&!t.table.isLeftFrozenColumn(t.columnMove.colTarget)&&(t.table.frozenColCount-=n.end.col-n.start.col+1),t.table.isRightFrozenColumn(t.columnMove.colTarget)&&!t.table.isRightFrozenColumn(t.columnMove.colSource)?t.table.rightFrozenColCount+=n.end.col-n.start.col+1:t.table.isRightFrozenColumn(t.columnMove.colSource)&&!t.table.isRightFrozenColumn(t.columnMove.colTarget)&&(t.table.rightFrozenColCount-=n.end.col-n.start.col+1))}t.updateCursor()}setTimeout((()=>{t.columnMove.moving=!1,delete t.columnMove.colSource,delete t.columnMove.rowSource,delete t.columnMove.colTarget,delete t.columnMove.rowTarget}),0),t.table.scenegraph.component.hideMoveCol(),t.columnResize.col<t.table.frozenColCount&&!t.table.isPivotTable()&&!t.table.transpose?(t.table.scenegraph.component.setFrozenColumnShadow(t.table.frozenColCount-1,t.columnResize.isRightFrozen),t.table.scenegraph.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount)):t.columnResize.col>=t.table.colCount-t.table.rightFrozenColCount&&!t.table.isPivotTable()&&!t.table.transpose?t.table.scenegraph.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount):t.table.options.frozenColCount?t.table.scenegraph.component.setFrozenColumnShadow(t.table.frozenColCount-1):t.table.options.rightFrozenColCount&&t.table.scenegraph.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount),t.table.scenegraph.updateNextFrame()}(this)}checkFrozen(){let t=this.table.isListTable()&&!this.table.internalProps.transpose?this.table.options.frozenColCount:this.table.isPivotChart()?this.table.rowHeaderLevelCount??0:Math.max((this.table.rowHeaderLevelCount??0)+this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount,this.table.options.frozenColCount??0);if(t){if(t>this.table.colCount&&(t=this.table.colCount),this.table.tableNoFrameWidth-this.table.getColsWidth(0,t-1)<=120)return this.table._setFrozenColCount(0),this.setFrozenCol(-1),!1;if(this.table.frozenColCount!==t)return this.table._setFrozenColCount(t),this.setFrozenCol(t),!1}return!0}setFrozenCol(t){t!==this.frozen.col?(this.frozen.col=t,this.table.scenegraph.updateFrozen(),this.table.scenegraph.updateFrozenIcon(0,this.table.colCount-1)):this.table.scenegraph.updateFrozenIcon(0,this.table.colCount-1)}checkVerticalScrollBarEnd(){const t=this.table.getAllRowsHeight(),e=this.scroll.verticalBarPos,i=this.table.tableNoFrameHeight;e+i>=t&&this.table.fireListeners(IL.SCROLL_VERTICAL_END,{scrollTop:e,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:i,viewWidth:this.table.tableNoFrameWidth})}checkHorizontalScrollBarEnd(){const t=this.table.getAllColsWidth(),e=this.scroll.horizontalBarPos,i=this.table.tableNoFrameWidth;e+i>=t&&this.table.fireListeners(IL.SCROLL_HORIZONTAL_END,{scrollTop:this.scroll.verticalBarPos,scrollLeft:e,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:i})}updateVerticalScrollBar(t){const e=this.table.getAllRowsHeight(),i=this.scroll.verticalBarPos;this.scroll.verticalBarPos=Math.ceil(t*(e-this.table.scenegraph.height)),Z(this.scroll.verticalBarPos)&&!isNaN(this.scroll.verticalBarPos)||(this.scroll.verticalBarPos=0),this.table.scenegraph.setY(-this.scroll.verticalBarPos,1===t),this.scroll.verticalBarPos-=this.table.scenegraph.proxy.deltaY,this.table.scenegraph.proxy.deltaY=0,this.updateHoverPos(-1,-1),this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"vertical",scrollRatioY:t}),i!==this.scroll.verticalBarPos&&this.checkVerticalScrollBarEnd()}updateHorizontalScrollBar(t){const e=this.table.getAllColsWidth(),i=this.scroll.horizontalBarPos;this.scroll.horizontalBarPos=Math.ceil(t*(e-this.table.scenegraph.width)),Z(this.scroll.horizontalBarPos)&&!isNaN(this.scroll.horizontalBarPos)||(this.scroll.horizontalBarPos=0),this.table.scenegraph.setX(-this.scroll.horizontalBarPos,1===t),this.scroll.horizontalBarPos-=this.table.scenegraph.proxy.deltaX,this.table.scenegraph.proxy.deltaX=0,this.updateHoverPos(-1,-1),this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"horizontal",scrollRatioX:t}),i!==this.scroll.horizontalBarPos&&this.checkHorizontalScrollBarEnd()}setScrollTop(t){const e=this.table.getAllRowsHeight();t=Math.max(0,Math.min(t,e-this.table.scenegraph.height)),((t=Math.ceil(t))!==this.scroll.verticalBarPos||this.table.isPivotChart())&&this.updateHoverPos(-1,-1);const i=this.scroll.verticalBarPos;this.scroll.verticalBarPos=t,Z(this.scroll.verticalBarPos)&&!isNaN(this.scroll.verticalBarPos)||(this.scroll.verticalBarPos=0),this.table.scenegraph.setY(-t);const r=t/(e-this.table.scenegraph.height);this.table.scenegraph.component.updateVerticalScrollBarPos(r),i!==t&&(this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"vertical",scrollRatioY:r}),this.checkVerticalScrollBarEnd())}setScrollLeft(t){this.table.scrollLeft;const e=this.table.getAllColsWidth();this.table.getFrozenColsWidth(),t=Math.max(0,Math.min(t,e-this.table.scenegraph.width)),(t=Math.ceil(t))!==this.scroll.horizontalBarPos&&this.updateHoverPos(-1,-1);const i=this.scroll.horizontalBarPos;this.scroll.horizontalBarPos=t,Z(this.scroll.horizontalBarPos)&&!isNaN(this.scroll.horizontalBarPos)||(this.scroll.horizontalBarPos=0),this.table.scenegraph.setX(-t);const r=t/(e-this.table.scenegraph.width);this.table.scenegraph.component.updateHorizontalScrollBarPos(r),i!==t&&(this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"horizontal",scrollRatioX:r}),this.checkHorizontalScrollBarEnd())}hideVerticalScrollBar(){this.table.scenegraph.component.hideVerticalScrollBar()}showVerticalScrollBar(t){this.table.scenegraph.component.showVerticalScrollBar(),t&&(clearTimeout(this._clearVerticalScrollBar),this._clearVerticalScrollBar=setTimeout((()=>{this.table.scenegraph.component.hideVerticalScrollBar()}),1e3))}hideHorizontalScrollBar(){this.table.scenegraph.component.hideHorizontalScrollBar()}showHorizontalScrollBar(t){this.table.scenegraph.component.showHorizontalScrollBar(),t&&(clearTimeout(this._clearHorizontalScrollBar),this._clearHorizontalScrollBar=setTimeout((()=>{this.table.scenegraph.component.hideHorizontalScrollBar()}),1e3))}triggerContextMenu(t,e,i,r){this.menu.isShow&&this.menu.x===i&&this.menu.y===r?this.hideMenu():this.showContextMenu(t,e,i,r)}showContextMenu(t,e,i,r){this.table.internalProps.menu?.contextMenuItems&&("html"===this.table.internalProps.menu.renderMode?this.menu.isShow=!0:(this.menu.isShow=!0,this.menu.x=i,this.menu.y=r,this.table.scenegraph.component.menu.attach(i,r,t,e,xz.contextmenu)),this.table.fireListeners(IL.SHOW_MENU,{x:i,y:r,col:t,row:e,type:"contextmenu"}))}triggerDropDownMenu(t,e,i,r,n){this.table.fireListeners(IL.DROPDOWN_ICON_CLICK,{col:t,row:e,event:n}),this.menu.isShow?this.hideMenu():this.showDropDownMenu(t,e,i,r)}showDropDownMenu(t,e,i,r){"html"===this.table.internalProps.menu.renderMode?this.menu.isShow=!0:(this.menu.isShow=!0,this.table.scenegraph.component.menu.attach(i,r,t,e,xz.dropDown),this.menu.bounds=this.table.scenegraph.component.menu.bounds),this.table.fireListeners(IL.SHOW_MENU,{x:i,y:r,col:t,row:e,type:"dropDown"}),this.residentHoverIcon&&this.table.scenegraph.setIconNormalStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row);const n=this.table.scenegraph.getCell(t,e);let o;n.forEachChildren((t=>t.attribute.funcType===xE.dropDown&&(o=t,!0))),o&&(this.residentHoverIcon={col:t,row:e,icon:o},this.table.scenegraph.setIconHoverStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row,n),this.table.scenegraph.residentHoverIcon(t,e))}hideMenu(){this.menu.isShow&&(this.table.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),this.table.fireListeners(IL.HIDE_MENU,null),this.menu.isShow=!1,this.table.scenegraph.component.menu.detach(),this.residentHoverIcon&&(this.table.scenegraph.setIconNormalStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row),this.table.scenegraph.resetResidentHoverIcon(this.residentHoverIcon.col,this.residentHoverIcon.row),this.residentHoverIcon=null))}setDropDownMenuHighlight(t){this.menu.dropDownMenuHighlight=t;for(let e=0;e<t.length;e++){const{col:i,row:r}=t[e],n=this.table.getCellRange(i,r);if(n)for(let t=n.start.col;t<=n.end.col;t++)for(let e=n.start.row;e<=n.end.row;e++)this.table.scenegraph.updateCellContent(t,e)}}dropDownMenuIsHighlight(t,e,i){const r=this.menu.dropDownMenuHighlight;if(Array.isArray(r))for(let n=0;n<r.length;n++){const o=r[n];let{col:s,row:a}=o;const{field:l,menuKey:h}=o;if("number"!=typeof s||"number"!=typeof a)if(this.table.isPivotTable()&&(Array.isArray(l),1)){const t=this.table.internalProps.layoutMap.getPivotCellAdress(l);if(!t)continue;s=t.col,a=t.row}else{const t=this.table.internalProps.layoutMap.getHeaderCellAddressByField(l);if(!t)continue;s=t.col,a=t.row}if(Z(s)&&Z(a)&&this.table.isCellRangeEqual(t,e,s,a)){const r=this.table._getHeaderLayoutMap(s??t,a??e).dropDownMenu||this.table.globalDropDownMenu;if(r)for(let t=0;t<r.length;t++){const e=r[t];if(J(e)&&(e.menuKey||e.text)===(h||"")&&t===i)return!0;if(rt(e)&&e===h&&t===i)return!0}}}return!1}triggerSort(t,e,i,r){if(this.table.isPivotTable()){const i=this.table.getPivotSortState(t,e),n=i?i.toUpperCase():"DESC",o="ASC"===n?"DESC":"ASC";return this.table.sort(t,e,o),void this.table.fireListeners(FW.PIVOT_SORT_CLICK,{col:t,row:e,order:n||"normal",dimensionInfo:this.table.internalProps.layoutMap.getPivotDimensionInfo(t,e),cellLocation:this.table.getCellLocation(t,e),event:r})}const n=this.sort.col,o=this.sort.row;IW(t,e,this.table,r),this.sort.col=t,this.sort.row=e,this.table.scenegraph.updateSortIcon(this.sort.col,this.sort.row,i,this.sort.order,n,o,this.sort.icon),this.sort.icon=i}updateSortState(t){if(t.field===this.sort.field&&t.order===this.sort.order)return;const e=this.sort.col,i=this.sort.row,r="asc"===this.sort.order?"sort_downward":"desc"===this.sort.order?"sort_upward":"sort_normal";this.setSortState(t);const n=this.table.internalProps.layoutMap.getHeaderCellAddressByField(t.field);this.sort.col=n.col,this.sort.row=n.row;const o=this.table.scenegraph.getCell(this.sort.col,this.sort.row).getChildByName(r,!0);this.table.scenegraph.updateSortIcon(this.sort.col,this.sort.row,o,this.sort.order,e,i,this.sort.icon)}triggerFreeze(t,e,i){this.table.isPivotTable()||this.table.transpose||(!function(t,e,i){i.frozenColCount>0?t!==i.frozenColCount-1?i.setFrozenColCount(t+1):i.setFrozenColCount(0):i.setFrozenColCount(t+1)}(t,0,this.table),this.frozen.icon=i)}updateCursor(t="default"){this.table.getElement().style.cursor=t}updateDrillState(t,e,i,r,n,o){this.drill.dimensionKey=t,this.drill.title=e,this.drill.drillDown=i,this.drill.drillUp=r,this.drill.col=n,this.drill.row=o,function(t,e,i,r,n){const o=n.getCellLocation(t,e);let s=0,a=0,l=!1;"columnHeader"===o?(s=n.getColsWidth(0,n.rowHeaderLevelCount-1)-(0===n.frozenColCount?n.scrollLeft:0),a=n.getRowsHeight(0,e-1)+n.getRowHeight(e)/2,l=!0):"rowHeader"===o&&(a=n.getRowsHeight(0,n.columnHeaderLevelCount-1),s=n.getColsWidth(0,t-1)+n.getColWidth(t)/2,l=!0),n.scenegraph.updateDrill(l,s,a,i,r)}(n,o,i,r,this.table)}updateSparklineHoverPose(t,e,i,r){-1!==this.sparkLine.col&&-1!==this.sparkLine.row&&function(t,e,i){const r=i.scenegraph.getCell(t,e).getChildByName("sparkline"),n=r?.getChildByName("highlight-line"),o=r?.getChildByName("highlight-symbol");n&&n.setAttributes({visible:!1,pickable:!1}),o&&o.setAttributes({visible:!1,pickable:!1}),i.scenegraph.updateNextFrame()}(this.sparkLine.col,this.sparkLine.row,this.table);let n=!1;-1!==t&&-1!==e&&(n=function(t,e,i,r,n){const o=n.scenegraph.getCell(t,e).getChildByName("sparkline"),s=o?.getChildByName("sparkline-line"),a=o?.getChildByName("sparkline-symbol-group");if(!s)return!1;const l=s.bandwidth,h=s.min,c=s.max,d=s.attribute.points;let u;i-=o.globalAABBBounds.x1,o.globalAABBBounds.y1;for(let t=0;t<d.length;t++){const{x:e,y:r,defined:n,rawData:g}=d[t];if(Math.abs(i-e)<l/2&&(u={point:d[t],points:d,pointsBandWidth:l,pointData:g},n)){const t=o.getChildByName("highlight-line");if(t)t.setAttributes({points:[{x:e,y:c},{x:e,y:h}],visible:!0,pickable:!0});else{const t=Rc({points:[{x:e,y:c},{x:e,y:h}],lineWidth:s.hover?.strokeWidth,stroke:s.hover?.stroke});t.name="highlight-line",o.addChild(t)}const i=o.getChildByName("highlight-symbol");if(i)i.setAttributes({x:e,y:r,visible:!0,pickable:!0});else{const t=Ac({x:e,y:r,stroke:a.hover.stroke,lineWidth:a.hover.strokeWidth,fill:a.hover.fill,size:2*a.hover.size,symbolType:"circle"});t.name="highlight-symbol",o.addChild(t)}break}}if(n.scenegraph.updateNextFrame(),u){const i={col:t,row:e,field:n.getHeaderField(t,e),value:n.getCellValue(t,e),dataValue:n.getCellOriginValue(t,e),cellHeaderPaths:n.internalProps.layoutMap.getCellHeaderPaths(t,e),title:n.getBodyColumnDefine(t,e).title,cellRange:n.getCellRelativeRect(t,e),sparkline:{pointData:u.pointData},scaleRatio:n.canvas.getBoundingClientRect().width/n.canvas.offsetWidth};n.fireListeners(IL.MOUSEOVER_CHART_SYMBOL,i)}return!0}(t,e,i,0,this.table)),n?(this.sparkLine.col=t,this.sparkLine.row=e):(this.sparkLine.col=-1,this.sparkLine.row=-1)}setCheckedState(t,e,i,r){return function(t,e,i,r,n){const o=n.table.getRecordShowIndexByCell(t,e);if(o>=0){const t=n.table.dataSource.getIndexKey(o);n.checkedState[t]||(n.checkedState[t]={}),n.checkedState[t][i]=r}}(t,e,i,r,this)}setHeaderCheckedState(t,e){return function(t,e,i){i.headerCheckedState[t]=e,i.checkedState?.forEach((i=>{i[t]=e}))}(t,e,this)}syncCheckedState(t,e,i,r){return function(t,e,i,r,n){if(n.table.isHeader(t,e)){if(Z(n.headerCheckedState[i]))return n.headerCheckedState[i];if("function"==typeof r)return;if(Z(r))n.headerCheckedState[i]=r;else if(n.checkedState?.length>0)return n.updateHeaderCheckedState(i);return n.headerCheckedState[i]}const o=n.table.getRecordShowIndexByCell(t,e);if(o>=0){const t=n.table.dataSource.getIndexKey(o);if(Z(n.checkedState[t]?.[i]))return n.checkedState[t][i];n.checkedState[t]||(n.checkedState[t]={}),n.checkedState[t][i]=r}return r}(t,e,i,r,this)}initCheckedState(t){return function(t,e){e.checkedState=[],e.headerCheckedState={},e.radioState={};let i=!1;e._checkboxCellTypeFields=[],e._headerCheckFuncs={},e.table.internalProps.layoutMap.headerObjects.forEach(((t,r)=>{if("checkbox"===t.headerType){const r=t.define.checked;null==r||"function"==typeof r?(i=!0,"function"==typeof r&&(e._headerCheckFuncs[t.field]=r)):e.headerCheckedState[t.field]=r,"checkbox"!==t.define.cellType||t.fieldFormat||e._checkboxCellTypeFields.push(t.field)}})),i&&t.forEach(((t,i)=>{e._checkboxCellTypeFields.forEach((r=>{const n=t[r];let o;if(J(n)?o=n.checked:"boolean"==typeof n&&(o=n),null==o){const t=e._headerCheckFuncs[r];if(t){const s=e.table.getCellAddrByFieldRecord(r,i);o=SL(t,{col:s.col,row:s.row,table:e.table,context:null,value:n})}}e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][r]=o}))}))}(t,this)}updateHeaderCheckedState(t){return function(t,e){const i=e.checkedState.every((e=>!0===e[t]));return i?(e.headerCheckedState[t]=!0,i):e.checkedState.every((e=>!1===e[t]))?(e.headerCheckedState[t]=!1,!1):!!e.checkedState.find((e=>!0===e[t]))&&(e.headerCheckedState[t]="indeterminate","indeterminate")}(t,this)}initLeftRecordsCheckState(t){return function(t,e){for(let i=e.checkedState.length;i<t.length;i++){const r=t[i];e._checkboxCellTypeFields.forEach((t=>{const n=r[t];let o;J(n)?o=n.checked:"boolean"==typeof n&&(o=n),e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][t]=o}))}}(t,this)}setRadioState(t,e,i,r,n){!function(t,e,i,r,n,o){const s=o.table.getRecordShowIndexByCell(t,e);if(s>=0){const t=o.table.dataSource.getIndexKey(s);"column"===r?at(n)?(o.radioState[i]={},o.radioState[i][t]=n):o.radioState[i]=t:(o.radioState[i]||(o.radioState[i]={}),at(n)?o.radioState[i][t]=n:o.radioState[i][t]=!0)}}(t,e,i,r,n,this)}syncRadioState(t,e,i,r,n,o){return function(t,e,i,r,n,o,s){const a=s.table.getRecordShowIndexByCell(t,e);if(a>=0){const t=s.table.dataSource.getIndexKey(a);if("column"===r){if(!Z(s.radioState[i])&&o)return at(n)?(s.radioState[i]={},s.radioState[i][t]=n):s.radioState[i]=t,!0;if(at(s.radioState[i])&&!at(n))return s.radioState[i]===t;if(at(s.radioState[i])&&at(n))return!1;if(J(s.radioState[i])&&!at(n))return!1;if(J(s.radioState[i])&&at(n))return s.radioState[i][t]===n}else if("cell"===r){if(!Z(s.radioState[i])&&o)return s.radioState[i]={},at(n)?s.radioState[i][t]=n:s.radioState[i][t]=!0,!0;if(!Z(s.radioState[i]?.[t])&&o)return at(n)?s.radioState[i][t]=n:s.radioState[i][t]=!0,!0;if(Y(s.radioState[i]?.[t])&&!at(n))return s.radioState[i][t];if(Y(s.radioState[i]?.[t])&&at(n))return!1;if(at(s.radioState[i]?.[t])&&!at(n))return!1;if(at(s.radioState[i]?.[t])&&at(n))return s.radioState[i][t]===n}}return o}(t,e,i,r,n,o,this)}changeCheckboxAndRadioOrder(t,e){this.checkedState.length&&function(t,e,i){const{checkedState:r,table:n}=i;if(n.internalProps.transpose?(t=n.getRecordShowIndexByCell(t,0),e=n.getRecordShowIndexByCell(e,0)):(t=n.getRecordShowIndexByCell(0,t),e=n.getRecordShowIndexByCell(0,e)),t!==e){const i=r[t];r[t]=r[e],r[e]=i}}(t,e,this),this.radioState.length&&function(t,e,i){const{radioState:r,table:n}=i;if(n.internalProps.transpose?(t=n.getRecordShowIndexByCell(t,0),e=n.getRecordShowIndexByCell(e,0)):(t=n.getRecordShowIndexByCell(0,t),e=n.getRecordShowIndexByCell(0,e)),t!==e){const i=r[t];r[t]=r[e],r[e]=i}}(t,e,this)}}function VW(t){if(t.eventManager.bindSparklineHoverEvent)return;let e=!1;if(t.isPivotTable()){e=t.internalProps.layoutMap.indicatorsDefine.some((t=>"string"!=typeof t&&"sparkline"===t.cellType))}else{e=t.internalProps.layoutMap.columnObjects.some((t=>"sparkline"===t.cellType||"function"==typeof t.cellType))}e&&(t.eventManager.bindSparklineHoverEvent=!0,t.on(IL.MOUSEMOVE_CELL,(e=>{const{col:i,row:r,x:n,y:o}=e;"sparkline"!==t.getBodyColumnType(i,r)&&t.stateManager.updateSparklineHoverPose(-1,-1,0,0),t.stateManager.updateSparklineHoverPose(i,r,n,o)})),t.on(IL.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateSparklineHoverPose(-1,-1,0,0)})))}function UW(t){const e=t.table,i=e.stateManager;e.scenegraph.tableGroup.addEventListener("pointermove",(r=>{const n=e.eventManager.LastPointerXY?.x??r.x,o=e.eventManager.LastPointerXY?.y??r.y;e.eventManager.LastPointerXY={x:r.x,y:r.y},t.touchSetTimeout&&(clearTimeout(t.touchSetTimeout),t.touchSetTimeout=void 0);const s=AO(r);if(i.interactionState===fE.grabing&&!e.editorManager?.editingEditor)return void(Math.abs(n-r.x)+Math.abs(o-r.y)>=1&&(i.isResizeCol()||(i.isMoveCol()?t.dealColumnMover(s):i.isFillHandle()?t.dealFillSelect(s,!0):t.dealTableSelect(s,!0))));e.eventManager.isDraging&&i.isSelecting()&&!e.editorManager?.editingEditor&&t.dealTableSelect(s,!0);const a=r.path.find((t=>"cell"===t.role));if(e.hasListeners(IL.MOUSELEAVE_CELL)&&(-1===e.stateManager.hover.cellPos.col||-1===e.stateManager.hover.cellPos.row||a?.col===e.stateManager.hover.cellPos.col&&a?.row===e.stateManager.hover.cellPos.row||e.fireListeners(IL.MOUSELEAVE_CELL,{col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row,cellRange:e.getCellRangeRelativeRect({col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row}),scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,event:r.nativeEvent,target:s?.eventArgs?.target})),e.hasListeners(IL.MOUSEENTER_CELL)&&("cell"!==a?.role||!Z(a.col)||!Z(a.row)||a.col===e.stateManager.hover.cellPos.col&&a.row===e.stateManager.hover.cellPos.row||a.col===e.stateManager.hover.cellPosContainHeader?.col&&a.row===e.stateManager.hover.cellPosContainHeader?.row||e.fireListeners(IL.MOUSEENTER_CELL,{col:a.col,row:a.row,cellRange:e.getCellRangeRelativeRect({col:a.col,row:a.row}),scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,event:r.nativeEvent,target:s?.eventArgs?.target,mergeCellInfo:s.eventArgs?.mergeInfo})),t.dealIconHover(s),t.dealTableHover(s),s.eventArgs&&e.hasListeners(IL.MOUSEMOVE_CELL)){let t,i;if(s.eventArgs?.target){const e=WW(s.eventArgs?.target);e&&(t=e.icon,i=e.position)}e.fireListeners(IL.MOUSEMOVE_CELL,{col:s.eventArgs.col,row:s.eventArgs.row,x:s.abstractPos.x,y:s.abstractPos.y,event:r.nativeEvent,targetIcon:t?{name:t.name,position:i,funcType:t.attribute.funcType}:void 0,target:s?.eventArgs?.target,mergeCellInfo:s.eventArgs?.mergeInfo})}})),e.scenegraph.tableGroup.addEventListener("pointerout",(e=>{const i=AO(e),r=i?.eventArgs?.target;"table"===r?.role&&t.dealTableHover()})),e.scenegraph.tableGroup.addEventListener("pointerover",(t=>{const i=AO(t),r=i?.eventArgs?.target;if(r&&e.hasListeners(IL.MOUSEOVER_CHART_SYMBOL)&&"symbol"===r.type){const r=t.composedPath().find((t=>"cell"===t.roll));if(r){const{col:n,row:o}=r,s={col:n,row:o,field:e.getHeaderField(n,o),value:e.getCellValue(n,o),dataValue:e.getCellOriginValue(n,o),cellHeaderPaths:e.internalProps.layoutMap.getCellHeaderPaths(n,o),title:e.getBodyColumnDefine(n,o).title,cellRange:e.getCellRelativeRect(n,o),event:t.nativeEvent,sparkline:{pointData:void 0},scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:i?.eventArgs?.target};e.fireListeners(IL.MOUSEOVER_CHART_SYMBOL,s)}}})),e.scenegraph.tableGroup.addEventListener("pointerenter",(t=>{"focus"===e.theme.scrollStyle.visible&&(i.showHorizontalScrollBar(),i.showVerticalScrollBar()),e.hasListeners(IL.MOUSEENTER_TABLE)&&e.fireListeners(IL.MOUSEENTER_TABLE,{event:t.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerleave",(r=>{i.isResizeCol()||i.isMoveCol()||i.isSelecting()||(i.updateInteractionState(fE.default),i.updateCursor()),"focus"===e.theme.scrollStyle.visible&&(i.hideHorizontalScrollBar(),i.hideVerticalScrollBar()),e.hasListeners(IL.MOUSELEAVE_CELL)&&-1!==e.stateManager.hover.cellPos.col&&-1!==e.stateManager.hover.cellPos.row&&e.fireListeners(IL.MOUSELEAVE_CELL,{col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row,cellRange:e.getCellRangeRelativeRect({col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row}),scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,event:r.nativeEvent,target:void 0}),t.dealTableHover();const n=r.target;n&&!n.isDescendantsOf(e.scenegraph.tableGroup)&&e.fireListeners(IL.MOUSELEAVE_TABLE,{event:r.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerupoutside",(r=>{const n=AO(r);if(i.menu.isShow&&n.eventArgs?.target!==i.residentHoverIcon?.icon&&setTimeout((()=>{e.internalProps.menuHandler.pointInMenuElement(r.page.x,r.page.y)||i.menu.isShow&&i.hideMenu()}),0),i.isResizeCol())$W(e);else if(i.isResizeRow())YW(e);else if(i.isMoveCol())e.stateManager.endMoveCol(),-1!==e.stateManager.columnMove?.colSource&&-1!==e.stateManager.columnMove?.rowSource&&-1!==e.stateManager.columnMove?.colTarget&&-1!==e.stateManager.columnMove?.rowTarget&&e.hasListeners(IL.CHANGE_HEADER_POSITION)&&e.fireListeners(IL.CHANGE_HEADER_POSITION,{target:{col:e.stateManager.columnMove.colTarget,row:e.stateManager.columnMove.rowTarget},source:{col:e.stateManager.columnMove.colSource,row:e.stateManager.columnMove.rowSource}});else if(i.isSelecting()&&e.stateManager.select?.ranges?.length){const t=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].end.col,i=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].end.row;if(e.stateManager.endSelectCells(),e.hasListeners(IL.DRAG_SELECT_END)){const n={event:r.nativeEvent,cells:[],col:t,row:i,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:void 0};n.cells=e.getSelectedCellInfos(),e.fireListeners(IL.DRAG_SELECT_END,n)}}const o=e.editorManager?.completeEdit(r.nativeEvent);if(!1!==o&&(i.updateInteractionState(fE.default),t.dealTableHover(),e.options.select?.outsideClickDeselect)){const e=!!i.select.ranges?.length;t.dealTableSelect(),i.endSelectCells(!0,e)}})),e.scenegraph.tableGroup.addEventListener("pointerdown",(r=>{if(e.hasListeners(IL.MOUSEDOWN_TABLE)&&e.fireListeners(IL.MOUSEDOWN_TABLE,{event:r.nativeEvent}),e.eventManager.isDown=!0,e.eventManager.LastBodyPointerXY={x:r.x,y:r.y},e.eventManager.LastPointerXY={x:r.x,y:r.y},0!==r.button)return;const n=AO(r);if(t.downIcon=void 0,i.interactionState!==fE.default)return;e.isPivotChart()&&"chart"!==n?.eventArgs?.target.type&&e.scenegraph.updateChartState(null),n.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu();const o=e.editorManager?.completeEdit(r.nativeEvent);if(!1===o)return;const s=n?.eventArgs?.target?.role?.startsWith("icon")?n.eventArgs.target:r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=s,s&&!1!==s.attribute.interactive)s.attribute.funcType===xE.dragReorder&&(i.startMoveCol(n.eventArgs.col,n.eventArgs.row,n.abstractPos.x,n.abstractPos.y),i.updateInteractionState(fE.grabing));else if("touch"===r.pointerType)t.touchEnd=!1,t.touchSetTimeout=setTimeout((()=>{t.isTouchdown=!1,t.touchMove=!0,(t.touchEnd||!t.checkColumnResize(n,!0)&&!t.checkRowResize(n,!0))&&(t.touchEnd||!t.chechColumnMover(n))?t.dealTableSelect(n)&&!t.touchEnd&&i.updateInteractionState(fE.grabing):i.updateInteractionState(fE.grabing)}),500),t.dealTableHover(n);else{if(!t.checkCellFillhandle(n)&&(t.checkColumnResize(n,!0)||t.checkRowResize(n,!0)))return e.scenegraph.updateChartState(null),void i.updateInteractionState(fE.grabing);if(t.chechColumnMover(n))return void i.updateInteractionState(fE.grabing);if(t.checkCellFillhandle(n,!0)&&t.dealFillSelect(n))return void i.updateInteractionState(fE.grabing);t.dealTableSelect(n)&&i.updateInteractionState(fE.grabing)}if(e.hasListeners(IL.MOUSEDOWN_CELL)){const t=AO(r);t.eventArgs&&e.fireListeners(IL.MOUSEDOWN_CELL,{col:t.eventArgs.col,row:t.eventArgs.row,event:r.nativeEvent,target:t?.eventArgs?.target,mergeCellInfo:t.eventArgs.mergeInfo})}})),e.scenegraph.tableGroup.addEventListener("pointerup",(t=>{if(0===t.button){if("grabing"===i.interactionState){if(i.updateInteractionState(fE.default),i.isResizeCol())$W(e);else if(i.isResizeRow())YW(e);else if(i.isMoveCol()){const i=AO(t);e.stateManager.endMoveCol(),i.eventArgs&&e.hasListeners(IL.CHANGE_HEADER_POSITION)&&e.fireListeners(IL.CHANGE_HEADER_POSITION,{target:{col:i.eventArgs.col,row:i.eventArgs.row},source:{col:e.stateManager.columnMove.colSource,row:e.stateManager.columnMove.rowSource}})}else if(i.isSelecting()){e.stateManager.endSelectCells(),e.stateManager.isFillHandle()&&e.stateManager.endFillSelect();const i=AO(t);if(e.eventManager.isDraging&&i.eventArgs&&e.hasListeners(IL.DRAG_SELECT_END)){const r={event:t.nativeEvent,cells:[],col:i.eventArgs.target.col,row:i.eventArgs.target.row,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:i?.eventArgs?.target,mergeCellInfo:i.eventArgs?.mergeInfo};r.cells=e.getSelectedCellInfos(),e.fireListeners(IL.DRAG_SELECT_END,r)}}}else i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default);if(e.hasListeners(IL.MOUSEUP_CELL)){const i=AO(t);i.eventArgs&&e.fireListeners(IL.MOUSEUP_CELL,{col:i.eventArgs.col,row:i.eventArgs.row,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i.eventArgs?.mergeInfo})}}})),e.scenegraph.tableGroup.addEventListener("rightdown",(t=>{const r=AO(t);if(r.eventArgs){i.triggerContextMenu(r.eventArgs.col,r.eventArgs.row,r.abstractPos.x,r.abstractPos.y);const{col:n,row:o}=r.eventArgs;if(e.hasListeners(IL.CONTEXTMENU_CELL)){const i=e.getCellInfo(n,o);let s,a;if(r.eventArgs?.target){const t=WW(r.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...i,event:t.nativeEvent,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:r?.eventArgs?.target,mergeCellInfo:r.eventArgs?.mergeInfo};!function(t,e,i){for(let r=0;r<t.length;r++){const n=t[r],o=Math.min(n.start.col,n.end.col),s=Math.max(n.start.col,n.end.col),a=Math.min(n.start.row,n.end.row),l=Math.max(n.start.row,n.end.row);if(o<=e&&e<=s&&a<=i&&i<=l||s<=e&&e<=o&&l<=i&&i<=a)return!0}return!1}(e.stateManager.select.ranges,n,o)?l.cells=[[i]]:l.cells=e.getSelectedCellInfos(),e.fireListeners(IL.CONTEXTMENU_CELL,l)}}})),e.scenegraph.tableGroup.addEventListener("pointertap",(r=>{if(e.stateManager.columnResize.resizing||e.stateManager.columnMove.moving)return;const n=AO(r);if(t.dealIconClick(r,n),n?.eventArgs){if(t.touchSetTimeout&&"touch"===r.pointerType){const e=AO(r);if(t.touchSetTimeout){clearTimeout(t.touchSetTimeout);const r=!!i.select.ranges?.length;t.dealTableSelect(e),i.endSelectCells(!0,r),t.touchSetTimeout=void 0}}if(!t.touchMove&&0===r.button&&e.hasListeners(IL.CLICK_CELL)){const{col:t,row:i}=n.eventArgs,o=e.getCellInfo(t,i);let s,a;if(n.eventArgs?.target){const t=WW(n.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...o,event:r.nativeEvent,federatedEvent:r,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:n?.eventArgs?.target,mergeCellInfo:n.eventArgs?.mergeInfo};e.fireListeners(IL.CLICK_CELL,l)}}})),e.scenegraph.stage.addEventListener("pointerdown",(r=>{const n=AO(r);n.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu();const o=e.editorManager?.completeEdit(r.nativeEvent);if(!1===o)return;const s=r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=s,s||t.checkCellFillhandle(n)||i.columnResize.resizing||!t.checkColumnResize(n,!0));else{e.scenegraph.updateChartState(null),i.updateInteractionState(fE.grabing);const{eventArgs:t}=n;if(!t?.targetCell){e.getCellAt(n.abstractPos.x-8,n.abstractPos.y)&&e.hasListeners(IL.MOUSEDOWN_TABLE)&&e.fireListeners(IL.MOUSEDOWN_TABLE,{event:r.nativeEvent})}}})),e.scenegraph.stage.addEventListener("pointerup",(t=>{"grabing"===i.interactionState&&(i.updateInteractionState(fE.default),i.isResizeCol()&&$W(e))})),e.scenegraph.stage.addEventListener("pointertap",(r=>{const n=r.target;if(e.eventManager.isDraging||!n||!n.isDescendantsOf(e.scenegraph.stage)&&n.stage!==n||n.isDescendantsOf(e.scenegraph.tableGroup))e.eventManager.isDraging&&i.isSelecting()&&i.endSelectCells();else{i.updateInteractionState(fE.default),t.dealTableHover();const r=!!i.select.ranges?.length;(e.options.select?.blankAreaClickDeselect??1)&&t.dealTableSelect(),i.endSelectCells(!0,r),i.updateCursor(),e.scenegraph.updateChartState(null)}})),e.scenegraph.stage.addEventListener("pointermove",(r=>{const n=AO(r);i.isResizeCol()||t.checkColumnResize(n)?e.stateManager.select&&t.checkCellFillhandle(n)?i.updateCursor("crosshair"):i.updateCursor("col-resize"):i.isResizeRow()||t.checkRowResize(n)?e.stateManager.select&&t.checkCellFillhandle(n)?i.updateCursor("crosshair"):i.updateCursor("row-resize"):i.updateCursor()})),e.scenegraph.tableGroup.addEventListener("checkbox_state_change",(t=>{const i=AO(t),{col:r,row:n}=i.eventArgs,o=e.getCellInfo(r,n),s=bH(e,r,n);if(s)for(let i=s.start.col;i<=s.end.col;i++)for(let r=s.start.row;r<=s.end.row;r++){e.scenegraph.getCell(i,r).forEachChildren((e=>{"checkbox"===e.name&&e.setAttributes({checked:t.target.attribute.checked,indeterminate:t.target.attribute.indeterminate})}))}const a={...o,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,checked:t.detail.checked};if(e.isHeader(r,n)){e.stateManager.setHeaderCheckedState(o.field,t.detail.checked);"checkbox"===e.getCellType(r,n)&&e.scenegraph.updateCheckboxCellState(r,n,t.detail.checked)}else{e.stateManager.setCheckedState(r,n,o.field,t.detail.checked);if("checkbox"===e.getCellType(r,n)){const t=e.stateManager.headerCheckedState[o.field],i=e.stateManager.updateHeaderCheckedState(o.field);t!==i&&e.scenegraph.updateHeaderCheckboxCellState(r,n,i)}}e.fireListeners(IL.CHECKBOX_STATE_CHANGE,a),e.scenegraph.updateNextFrame()})),e.scenegraph.tableGroup.addEventListener("radio_checked",(t=>{const i=AO(t),{col:r,row:n,target:o}=i.eventArgs,s=e.getCellInfo(r,n),a=RO.exec(o.id)?.[1],l=bH(e,r,n);if(l)for(let t=l.start.col;t<=l.end.col;t++)for(let i=l.start.row;i<=l.end.row;i++){e.scenegraph.getCell(t,i).forEachChildren((t=>{"radio"===t.name&&t.id===o.id&&t.setAttributes({checked:!0})}))}const h=e.getBodyColumnDefine(r,n).radioCheckType||"column";if("cell"===h)if(l)for(let t=l.start.col;t<=l.end.col;t++)for(let i=l.start.row;i<=l.end.row;i++){e.scenegraph.getCell(t,i).forEachChildren((t=>{"radio"===t.name&&t.id!==o.id&&t.setAttributes({checked:!1})}))}else{e.scenegraph.getCell(r,n).forEachChildren((t=>{"radio"===t.name&&t.id!==o.id&&t.setAttributes({checked:!1})}))}else if("column"===h){e.scenegraph.getColGroup(r).forEachChildren((t=>{t.forEachChildren((t=>{"radio"===t.name&&t.id!==o.id&&t.setAttributes({checked:!1})}))}))}const c=a?Number(a):void 0;e.stateManager.setRadioState(r,n,s.field,h,c);const d={...s,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,radioIndexInCell:c};e.fireListeners(IL.RADIO_STATE_CHANGE,d),e.scenegraph.updateNextFrame()}))}function KW(t){const e=t.table;t.gesture=new tC(e.scenegraph.tableGroup,{tap:{interval:300}}),t.gesture.on("doubletap",(t=>{!function(t,e){const i=AO(t);let r=-1,n=-1;i.eventArgs&&(r=i.eventArgs.col,n=i.eventArgs.row);const o=e.getCellValue(r,n),s=i.eventArgs?.targetCell?.globalAABBBounds;if(s&&e.internalProps.focusControl.setFocusRect(new jL(s.x1+e.scrollLeft,s.y1+e.scrollTop,s.x2-s.x1,s.y2-s.y1),o),e.hasListeners(IL.DBLCLICK_CELL)){const o=e.getCellInfo(r,n);let s,a;if(i.eventArgs?.target){const t=WW(i.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...o,event:t.nativeEvent,federatedEvent:t,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo};e.fireListeners(IL.DBLCLICK_CELL,l)}}(t,e)}))}function $W(t){t.stateManager.endResizeCol();const e=[];for(let i=0;i<t.colCount;i++)e.push(t.getColWidth(i));t.fireListeners(IL.RESIZE_COLUMN_END,{col:t.stateManager.columnResize.col,colWidths:e})}function YW(t){t.stateManager.endResizeRow(),t.fireListeners(IL.RESIZE_ROW_END,{row:t.stateManager.rowResize.row,rowHeight:t.getRowHeight(t.stateManager.rowResize.row)})}function XW(t,e,i=!0){let{deltaX:r,deltaY:n}=t;t.shiftKey&&t.deltaY&&(r=n,n=0);const[o,s]=function(t,e,i){const r=2,n=Math.abs(t/e),o=n<=1/r?0:t,s=n>r?0:e;return[Math.ceil(o*(i.horizontal??0)),Math.ceil(s*(i.vertical??0))]}(r,n,{horizontal:1,vertical:1});(o||s)&&e.interactionState!==fE.scrolling&&e.updateInteractionState(fE.scrolling),o&&(e.setScrollLeft(e.scroll.horizontalBarPos+o),e.showHorizontalScrollBar(!0)),s&&(e.setScrollTop(e.scroll.verticalBarPos+s),e.showVerticalScrollBar(!0)),i&&e.resetInteractionState(),t.cancelable&&("none"===e.table.internalProps.overscrollBehavior||Math.abs(n)>=Math.abs(r)&&0!==n&&qW(n,e)||Math.abs(n)<=Math.abs(r)&&0!==r&&ZW(r,e))&&t.preventDefault()}function qW(t,e){return 0!=e.table.getAllRowsHeight()-e.table.scenegraph.height&&(!function(t,e){const i=e.table.getAllRowsHeight()-e.table.scenegraph.height;return 0!==i&&t<=0&&e.scroll.verticalBarPos<1}(t,e)&&!function(t,e){const i=e.table.getAllRowsHeight()-e.table.scenegraph.height;return 0!==i&&t>=0&&Math.abs(e.scroll.verticalBarPos-i)<1}(t,e))}function ZW(t,e){return 0!=e.table.getAllColsWidth()-e.table.scenegraph.width&&(!function(t,e){const i=e.table.getAllColsWidth()-e.table.scenegraph.width;return 0!==i&&t<=0&&e.scroll.horizontalBarPos<1}(t,e)&&!function(t,e){const i=e.table.getAllColsWidth()-e.table.scenegraph.width;return 0!==i&&t>=0&&Math.abs(e.scroll.horizontalBarPos-i)<1}(t,e))}class JW{friction;lastTime;speedX;speedY;stateManager;runingId;scrollHandle;constructor(t){this.stateManager=t}setScrollHandle(t){this.scrollHandle=t}startInertia(t,e,i){this.lastTime=Date.now(),this.speedX=t,this.speedY=e,this.friction=i,this.runingId||(this.runingId=requestAnimationFrame(this.inertia.bind(this)))}inertia(){const t=Date.now(),e=t-this.lastTime;let i=!0;const r=Math.pow(this.friction,e/16),n=r*this.speedX,o=r*this.speedY;let s=0,a=0;Math.abs(n)>.05&&(i=!1,s=(this.speedX+n)/2*e),Math.abs(o)>.05&&(i=!1,a=(this.speedY+o)/2*e),this.scrollHandle?.(s,a),i?this.runingId=null:(this.lastTime=t,this.speedX=n,this.speedY=o,this.runingId=requestAnimationFrame(this.inertia.bind(this)))}endInertia(){cancelAnimationFrame(this.runingId),this.runingId=null}isInertiaScrolling(){return!!this.runingId}}let QW,tN=1;function eN(){return uL?tN=1:(tN=Math.ceil(window.devicePixelRatio||1),tN>1&&tN%2!=0&&(tN+=1)),tN}function iN(t){return!!t.changedTouches}function rN(t,e,i){if(i.indicatorsAsCol){if(i.hasTwoIndicatorAxes&&e===i.columnHeaderLevelCount-1&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return"top";if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return"bottom";if(t===i.rowHeaderLevelCount-1&&e>=i.rowHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return"left"}else{if(t===i.rowHeaderLevelCount-1&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return"left";if(t===i.colCount-i.rightFrozenColCount&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return"right";if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return"bottom"}return"bottom"}eN();class nN{table;isTouchdown;touchMovePoints;touchSetTimeout;touchEnd;touchMove;gesture;handleTextStickBindId;LastPointerXY;LastBodyPointerXY;isDown=!1;isDraging=!1;scrollYSpeed;scrollXSpeed;downIcon;globalEventListeners=[];inertiaScroll;bindSparklineHoverEvent;constructor(t){this.table=t,this.handleTextStickBindId=[],this.inertiaScroll=new JW(t.stateManager),"node"!==YE.mode&&(this.bindOuterEvent(),setTimeout((()=>{this.bindSelfEvent()}),0))}bindOuterEvent(){UW(this),function(t){const e=t.table,i=e.stateManager,r=e.internalProps.handler;function n(t){if(e.hasListeners(IL.KEYDOWN)){const i={keyCode:t.keyCode??t.which,code:t.code,event:t,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth};e.fireListeners(IL.KEYDOWN,i)}}r.on(e.getElement(),"blur",(e=>{t.dealTableHover()})),r.on(e.getElement(),"wheel",(t=>{XW(t,i)})),r.on(e.getElement(),"keydown",(r=>{if("a"===r.key&&(r.ctrlKey||r.metaKey))e.keyboardOptions?.selectAllOnCtrlA&&(r.preventDefault(),t.deelTableSelectAll());else if(i.select.cellPos.col>=0&&i.select.cellPos.row>=0&&("ArrowUp"===r.key||"ArrowDown"===r.key||"ArrowLeft"===r.key||"ArrowRight"===r.key)){if(!e.options.keyboardOptions?.moveEditCellOnArrowKeys&&e.editorManager?.editingEditor)return;let t,n;r.preventDefault(),r.stopPropagation(),"ArrowUp"===r.key?r.ctrlKey||r.metaKey?(t=i.select.cellPos.col,n=0):(r.shiftKey,t=i.select.cellPos.col,n=Math.min(e.rowCount-1,Math.max(0,i.select.cellPos.row-1))):"ArrowDown"===r.key?r.ctrlKey||r.metaKey?(t=i.select.cellPos.col,n=e.rowCount-1):(r.shiftKey,t=i.select.cellPos.col,n=Math.min(e.rowCount-1,Math.max(0,i.select.cellPos.row+1))):"ArrowLeft"===r.key?r.ctrlKey||r.metaKey?(t=0,n=i.select.cellPos.row):(r.shiftKey,n=i.select.cellPos.row,t=Math.min(e.colCount-1,Math.max(0,i.select.cellPos.col-1))):"ArrowRight"===r.key&&(r.ctrlKey||r.metaKey?(t=e.colCount-1,n=i.select.cellPos.row):(r.shiftKey,n=i.select.cellPos.row,t=Math.min(e.colCount-1,Math.max(0,i.select.cellPos.col+1)))),e.selectCell(t,n,r.shiftKey),e.options.keyboardOptions?.moveEditCellOnArrowKeys&&e.editorManager?.editingEditor&&(e.editorManager.completeEdit(),e.getElement().focus(),e.getEditor(t,n)&&e.editorManager.startEditCell(t,n))}else if("Escape"===r.key)e.editorManager.cancelEdit();else if("Enter"===r.key){if(e.editorManager.editingEditor)return n(r),e.editorManager.completeEdit(),void e.getElement().focus();if((e.options.keyboardOptions?.editCellOnEnter??1)&&1===(e.stateManager.select.ranges?.length??0)){const t=e.stateManager.select.ranges[0].start.col,i=e.stateManager.select.ranges[0].start.row,r=e.stateManager.select.ranges[0].end.col,n=e.stateManager.select.ranges[0].end.row;t===r&&i===n&&e.getEditor(t,i)&&e.editorManager.startEditCell(t,i)}}else if("Tab"===r.key&&(e.options.keyboardOptions?.moveFocusCellOnTab??1)&&(r.preventDefault(),i.select.cellPos.col>=0&&i.select.cellPos.row>=0)){let t,r;i.select.cellPos.col===e.colCount-1?(r=Math.min(e.rowCount-1,i.select.cellPos.row+1),t=e.rowHeaderLevelCount):i.select.cellPos.row===e.rowCount-1?(r=e.rowCount-1,t=e.rowHeaderLevelCount):(r=i.select.cellPos.row,t=i.select.cellPos.col+1),e.selectCell(t,r),e.editorManager?.editingEditor&&(e.editorManager.completeEdit(),e.getElement().focus(),e.getEditor(t,r)&&e.editorManager.startEditCell(t,r))}n(r)})),r.on(e.getElement(),"copy",(t=>{if(e.keyboardOptions?.copySelected){const i=e.getCopyValue();if(Z(i)){if(t.preventDefault(),navigator.clipboard?.write){const t=t=>{const e=["<table>"],i=['<meta name="author" content="Visactor"/>','<style type="text/css">td{white-space:normal}br{mso-data-placement:same-cell}</style>'].join(""),r=t.split("\r\n");return r.forEach((function(t,i){const n=t.split("\t"),o=[];0===i&&e.push("<tbody>"),n.forEach((function(t,e){const i=t?t.toString().replace(/&/g,"&amp;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br>").replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g,"<br>\r\n").replace(/\x20{2,}/gi,(t=>`<span style="mso-spacerun: yes">${"&nbsp;".repeat(t.length-1)} </span>`)).replace(/\t/gi,"&#9;"):" ";o.push(`<td>${i}</td>`)})),e.push("<tr>",...o,"</tr>"),i===r.length-1&&e.push("</tbody>")})),e.push("</table>"),[i,e.join("")].join("")},e=t(i);navigator.clipboard.write([new ClipboardItem({"text/html":new Blob([e],{type:"text/html"}),"text/plain":new Blob([i],{type:"text/plain"})})])}else BL?window.clipboardData.setData("Text",i):t.clipboardData.setData("text/plain",i);e.fireListeners(IL.COPY_DATA,{cellRange:e.stateManager.select.ranges,copyData:i})}}})),r.on(e.getElement(),"paste",(t=>{if(e.keyboardOptions?.pasteValueToCell&&e.changeCellValues){if(e.editorManager?.editingEditor)return;if(e.stateManager.select.ranges?.length>0)if(navigator.clipboard?.read)navigator.clipboard.read().then((t=>{for(const e of t)e.types.includes("text/html")?a(e):1===e.types.length&&"text/plain"===e.types[0]&&h(e)}));else{const i=e.stateManager.select.ranges,r=Math.min(i[0].start.col,i[0].end.col),n=Math.min(i[0].start.row,i[0].end.row),o=(t.clipboardData||window.Clipboard).getData("text").split("\n"),s=[];o.forEach((function(t,e){const i=t.split("\t"),r=[];s.push(r),i.forEach((function(t,e){e===i.length-1&&(t=t.trim()),r.push(t)}))})),e.changeCellValues(r,n,s)}}})),r.on(e.getElement(),"contextmenu",(t=>{!1!==e.eventOptions?.preventDefaultContextMenu&&t.preventDefault()})),r.on(e.getContainer(),"resize",(t=>{0===t.width&&0===t.height||(Z(e.options.pixelRatio)||e.setPixelRatio(eN()),t.windowSizeNotChange||e.resize())}));const o=/<tr[^>]*>([\s\S]*?)<\/tr>/g,s=/<td[^>]*>([\s\S]*?)<\/td>/g;function a(t){const i=e.stateManager.select.ranges,r=i.length,n=Math.min(i[r-1].start.col,i[r-1].end.col),a=Math.min(i[r-1].start.row,i[r-1].end.row),h=Math.max(i[r-1].start.col,i[r-1].end.col),d=Math.max(i[r-1].start.row,i[r-1].end.row);let u=0,g=0,p=[];t.getType("text/html").then((t=>{t.text().then((t=>{if(t&&/(<table)|(<TABLE)/g.test(t)){const i=Array.from(t.matchAll(o));for(const t of i){const e=t[1],i=Array.from(e.matchAll(s)).map((t=>t[1].replace(/(<(?!br)([^>]+)>)/gi,"").replace(/<br(\s*|\/)>[\r\n]?/gim,"\n").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&#9;/gi,"\t").replace(/&nbsp;/g," ")));p.push(i),u=Math.max(u,i?.length??0)}g=p.length??0,p=c(p,g,u,d-a+1,h-n+1),e.changeCellValues(n,a,p,!0)}else navigator.clipboard.read().then((t=>{for(const e of t)e.types.includes("text/plain")&&e.getType("text/plain").then((t=>{t.text().then(l)}))}))}))}))}function l(t){const i=e.stateManager.select.ranges,r=i.length,n=Math.min(i[r-1].start.col,i[r-1].end.col),o=Math.min(i[r-1].start.row,i[r-1].end.row),s=Math.max(i[r-1].start.col,i[r-1].end.col),a=Math.max(i[r-1].start.row,i[r-1].end.row);let l=0,h=0,d=[];t.split("\n").forEach((function(t,e){const i=t.split("\t"),r=[];d.push(r),i.forEach((function(t,e){e===i.length-1&&(t=t.trim()),r.push(t)})),l=Math.max(l,r?.length??0)})),h=d.length??0,d=c(d,h,l,a-o+1,s-n+1),e.changeCellValues(n,o,d,!0)}function h(t){const i=e.stateManager.select.ranges,r=i.length,n=Math.min(i[r-1].start.col,i[r-1].end.col),o=Math.min(i[r-1].start.row,i[r-1].end.row),s=Math.max(i[r-1].start.col,i[r-1].end.col),a=Math.max(i[r-1].start.row,i[r-1].end.row);let l=0,h=0;t.getType("text/plain").then((t=>{t.text().then((t=>{const i=t.replace(/\r(?!\n)/g,"\r\n").split("\r\n");let r=[];i.length>1&&""===i[i.length-1]&&i.pop(),i.forEach((function(t,e){const i=t.split("\t"),n=[];r.push(n),i.forEach((function(t,e){t.includes("\n")&&(t=t.replace(/^"(.*)"$/,"$1").replace(/["]*/g,(t=>new Array(Math.floor(t.length/2)).fill('"').join("")))),n.push(t)})),l=Math.max(l,n?.length??0)})),h=r.length??0,r=c(r,h,l,a-o+1,s-n+1),e.changeCellValues(n,o,r,!0)}))}))}function c(t,e,i,r,n){if(n>i||r>e){if(n%i==0&&r%e==0){const o=[];for(let s=0;s<r;s++){const r=[];o.push(r);for(let o=0;o<n;o++){const n=s%e,a=o%i;r.push(t[n][a])}}return o}return t}return t}const d=t=>{e.eventManager.LastBodyPointerXY={x:t.x,y:t.y},e.eventManager.isDown=!0};t.globalEventListeners.push({name:"pointerdown",env:"body",callback:d}),document.body.addEventListener("pointerdown",d);const u=t=>{e.eventManager.LastBodyPointerXY=null,e.eventManager.isDown=!1,e.eventManager.isDraging=!1,e.eventManager.inertiaScroll.endInertia()};t.globalEventListeners.push({name:"pointerup",env:"document",callback:u}),document.addEventListener("pointerup",u);const g=r=>{if(e.eventManager.isDown&&e.eventManager.LastBodyPointerXY){const t=e.eventManager.LastBodyPointerXY?.x??r.x,i=e.eventManager.LastBodyPointerXY?.y??r.y;(Math.abs(t-r.x)>1||Math.abs(i-r.y)>1)&&(e.eventManager.isDraging=!0)}const{x:n,y:o}=e._getMouseAbstractPoint(r,!1);i.interactionState===fE.grabing&&(i.isResizeCol()?(t.dealColumnResize(n,o),e.hasListeners(IL.RESIZE_COLUMN)&&e.fireListeners(IL.RESIZE_COLUMN,{col:e.stateManager.columnResize.col,colWidth:e.getColWidth(e.stateManager.columnResize.col)})):i.isResizeRow()&&(t.dealRowResize(n,o),e.hasListeners(IL.RESIZE_ROW)&&e.fireListeners(IL.RESIZE_ROW,{row:e.stateManager.rowResize.row,rowHeight:e.getRowHeight(e.stateManager.rowResize.row)})));const s=e.stateManager.isSelecting();if(t.isDraging&&s&&e.stateManager.select.ranges?.length>0){const t=e.getDrawRange(),i=e.getFrozenRowsHeight(),r=e.getBottomFrozenRowsHeight(),s=e.getFrozenColsWidth(),a=e.getRightFrozenColsWidth(),l=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].start,h=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].end,c=(!1===e.isFrozenRow(l.row)||!1===e.isFrozenRow(h.row))&&e.getAllRowsHeight()>e.tableNoFrameHeight,d=(!1===e.isFrozenColumn(l.col)||!1===e.isFrozenColumn(h.col))&&e.getAllColsWidth()>e.tableNoFrameWidth;if((o>t.bottom-r||o<t.top+i)&&c||(n>t.right-a||n<t.left+s)&&d){e.eventManager.scrollXSpeed=0,e.eventManager.scrollYSpeed=0;let l=!1,h=!1,u=!1,g=!1;o>t.bottom-r&&c&&e.scrollTop+e.tableNoFrameWidth<e.getAllRowsHeight()?(l=!0,e.eventManager.scrollYSpeed=-(o-t.bottom+r)/50):o<t.top+i&&c&&e.scrollTop>0&&(h=!0,e.eventManager.scrollYSpeed=-(o-t.top-i)/50),n>t.right-a&&d&&e.scrollLeft+e.tableNoFrameWidth<e.getAllColsWidth()?(u=!0,e.eventManager.scrollXSpeed=-(n-t.right+a)/50):n<t.left+s&&d&&e.scrollLeft>0&&(g=!0,e.eventManager.scrollXSpeed=-(n-t.left-s)/50),e.eventManager.inertiaScroll.startInertia(e.eventManager.scrollXSpeed,e.eventManager.scrollYSpeed,1),e.eventManager.inertiaScroll.setScrollHandle(((c,d)=>{let p,f;XW({deltaX:-c,deltaY:-d},e.stateManager,!1),l?f=e.scrollTop+t.height-r-20:h&&(f=e.scrollTop+i+20),u?p=e.scrollLeft+t.width-a-20:g&&(p=e.scrollLeft+s+20);let m=!1,b=!1;u||g||(n>e.tableNoFrameWidth-e.getRightFrozenColsWidth()&&n<e.tableNoFrameWidth||n>0&&n<e.getFrozenColsWidth()?(p=n,b=!0):p=e.scrollLeft+n),l||h||(o>e.tableNoFrameHeight-e.getBottomFrozenRowsHeight()&&o<e.tableNoFrameHeight||o>0&&o<e.getFrozenRowsHeight()?(f=o,m=!0):f=e.scrollTop+o),e.stateManager.updateInteractionState(fE.grabing);const y=e.getTargetColAtConsiderRightFrozen(p,b),v=e.getTargetRowAtConsiderBottomFrozen(f,m);Z(y)&&Z(v)&&e.stateManager.updateSelectPos(y.col,v.row,!1,!1,!1,!0)}))}else e.eventManager.inertiaScroll.isInertiaScrolling()?e.eventManager.inertiaScroll.endInertia():e.eventManager.scrollYSpeed=0}};t.globalEventListeners.push({name:"pointermove",env:"body",callback:g}),document.body.addEventListener("pointermove",g)}(this),function(t){const e=t.table,i=e.stateManager,r=e.scenegraph;r.component.vScrollBar.addEventListener("pointerover",(t=>{i.showVerticalScrollBar()})),r.component.hScrollBar.addEventListener("pointerover",(t=>{i.showHorizontalScrollBar()})),r.component.vScrollBar.addEventListener("pointerout",(t=>{i.interactionState!==fE.scrolling&&i.hideVerticalScrollBar()})),r.component.hScrollBar.addEventListener("pointerout",(t=>{i.interactionState!==fE.scrolling&&i.hideHorizontalScrollBar()})),r.component.vScrollBar.addEventListener("pointermove",(t=>{r.table.stateManager.updateCursor("default"),t.stopPropagation()})),r.component.vScrollBar.addEventListener("pointerdown",(t=>{t.stopPropagation(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.vScrollBar.addEventListener("scrollDown",(t=>{r.table.eventManager.LastBodyPointerXY={x:t.x,y:t.y},r.table.eventManager.isDown=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.vScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.vScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.vScrollBar.addEventListener("scrollUp",(t=>{r.table.eventManager.isDraging=!1})),r.component.hScrollBar.addEventListener("pointermove",(t=>{r.table.stateManager.updateCursor("default"),t.stopPropagation()})),r.component.hScrollBar.addEventListener("pointerdown",(t=>{t.stopPropagation(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.hScrollBar.addEventListener("scrollDown",(t=>{r.table.eventManager.LastBodyPointerXY={x:t.x,y:t.y},r.table.eventManager.isDown=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.hScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.hScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.hScrollBar.addEventListener("scrollUp",(t=>{r.table.eventManager.isDraging=!1}));const n=nL(i.updateVerticalScrollBar,20),o=nL(i.updateHorizontalScrollBar,20);r.component.vScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);n(e,t)})),r.component.hScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);o(e)}))}(this),function(t){const e=t.table,i=e.stateManager,r=e.scenegraph;t.touchMovePoints=[],e.scenegraph.tableGroup.addEventListener("touchstart",(e=>{e.target.isChildOf(r.component.vScrollBar)||e.target.isChildOf(r.component.vScrollBar)||(t.isTouchdown=!0,t.touchMovePoints.push({x:e.page.x,y:e.page.y,timestamp:Date.now()}))}));const n=r=>{if(t.touchMove&&r.preventDefault(),t.isTouchdown&&iN(r))if(t.downIcon?.attribute?.funcType===xE.dragReorder)r.preventDefault();else{t.touchMovePoints.length>4&&t.touchMovePoints.shift(),t.touchMovePoints.push({x:r.changedTouches[0].pageX,y:r.changedTouches[0].pageY,timestamp:Date.now()});const n=-t.touchMovePoints[t.touchMovePoints.length-1].x+t.touchMovePoints[t.touchMovePoints.length-2].x,o=-t.touchMovePoints[t.touchMovePoints.length-1].y+t.touchMovePoints[t.touchMovePoints.length-2].y;XW({deltaX:n,deltaY:o},i),r.cancelable&&("none"===e.internalProps.overscrollBehavior||Math.abs(o)>=Math.abs(n)&&0!==o&&qW(o,i)||Math.abs(o)<=Math.abs(n)&&0!==n&&ZW(n,i))&&r.preventDefault()}};window.addEventListener("touchmove",n,{passive:!1}),t.globalEventListeners.push({name:"touchmove",env:"window",callback:n});const o=i=>{if(t.touchEnd=!0,t.touchMove=!1,t.isTouchdown&&iN(i)){if(t.downIcon?.attribute?.funcType===xE.dragReorder)i.preventDefault();else if(t.touchMovePoints?.length){t.touchMovePoints.length>4&&t.touchMovePoints.shift(),t.touchMovePoints.push({x:i.changedTouches[0].pageX,y:i.changedTouches[0].pageY,timestamp:Date.now()});const r=t.touchMovePoints[0],n=t.touchMovePoints[t.touchMovePoints?.length-1],o=(n.x-r.x)/(n.timestamp-r.timestamp),s=(n.y-r.y)/(n.timestamp-r.timestamp);t.inertiaScroll.startInertia(o,s,.95),e.eventManager.inertiaScroll.setScrollHandle(((t,i)=>{XW({deltaX:-t,deltaY:-i},e.stateManager)}))}t.isTouchdown=!1,t.touchMovePoints=[]}};window.addEventListener("touchend",o),t.globalEventListeners.push({name:"touchend",env:"window",callback:o});const s=e=>{t.touchEnd=!0,t.touchMove=!1,t.isTouchdown&&(t.isTouchdown=!1,t.touchMovePoints=[])};window.addEventListener("touchcancel",s),t.globalEventListeners.push({name:"touchcancel",env:"window",callback:s})}(this),KW(this)}updateEventBinder(){setTimeout((()=>{YD(this.table)&&0===this.handleTextStickBindId?.length?(this.handleTextStickBindId.push(this.table.on(IL.SCROLL,(t=>{jD(this.table)}))),this.handleTextStickBindId.push(this.table.on(IL.RESIZE_COLUMN_END,(t=>{jD(this.table)}))),this.handleTextStickBindId.push(this.table.on(IL.RESIZE_ROW_END,(t=>{jD(this.table)})))):!YD(this.table)&&this.handleTextStickBindId&&(this.handleTextStickBindId.forEach((t=>{this.table.off(t)})),this.handleTextStickBindId=[]),VW(this.table)}),0)}bindSelfEvent(){if(this.table.isReleased)return;const t=this.table.stateManager;var e;this.table.on(IL.ICON_CLICK,(e=>{const{col:i,row:r,x:n,y:o,funcType:s,icon:a,event:l}=e;if(s===xE.dropDown)t.triggerDropDownMenu(i,r,n,o,l);else if(s===xE.sort)t.triggerSort(i,r,a,l);else if(s===xE.frozen)t.triggerFreeze(i,r,a);else if(s===xE.drillDown)(h=this.table).fireListeners(FW.DRILLMENU_CLICK,h.stateManager.drill);else if(s===xE.collapse||s===xE.expand){const e=!!t.select.ranges?.length;t.updateSelectPos(-1,-1),t.endSelectCells(!0,e),this.table.toggleHierarchyState(i,r)}var h})),this.table.on(IL.DROPDOWN_MENU_CLICK,(()=>{t.hideMenu()})),this.updateEventBinder(),e=this.table,"browser"===YE.mode&&e.on(IL.CLICK_CELL,(t=>{const{col:i,row:r}=t;let n;n=e.internalProps.layoutMap.isHeader(i,r)?e.isPivotTable()?e._getHeaderLayoutMap(i,r).headerType:e.getHeaderDefine(i,r).headerType:e.getBodyColumnType(i,r);const o=e.isHeader(i,r)?e.getHeaderDefine(i,r):e.getBodyColumnDefine(i,r),s=e.getCellValue(i,r),a=e.getCellOriginValue(i,r);if("link"===n){if(!1===o.linkJump)return;const t=o.templateLink,n=!1!==o.linkDetect;let l;if(t){const n=e.getCellOriginRecord(i,r),o=Object.assign({__value:s,__dataValue:a},n),h=/\{\s*(\S+?)\s*\}/g;l=t.replace(h,((t,e)=>o[e]))}else if(n){if(!JL.test(s))return;l=s}else l=s;window.open(l)}else if("image"===n){const{clickToPreview:t}=o;if(!1===t)return;const e=document.createElement("div");e.style.width="100%",e.style.height="100%",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.backgroundColor="rgba(30, 30, 30, 0.4)",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.overflow="hidden",e.style.zIndex="9999",e.addEventListener("click",(t=>{t.target===e&&document.body.removeChild(e)}));const i=new Image;i.src=s,i.style.maxWidth="80%",i.style.maxHeight="80%",e.appendChild(i),document.body.appendChild(e)}else if("video"===n){const{clickToPreview:t}=o;if(!1===t)return;const e=document.createElement("div");e.style.width="100%",e.style.height="100%",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.backgroundColor="rgba(30, 30, 30, 0.4)",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.overflow="hidden",e.style.zIndex="9999",e.addEventListener("click",(t=>{t.target===e&&document.body.removeChild(e)}));const i=document.createElement("video");i.src=s,i.style.maxWidth="80%",i.style.maxHeight="80%",i.setAttribute("preload","auto"),i.setAttribute("controls","true"),e.appendChild(i),document.body.appendChild(e)}})),this.table.on(IL.DBLCLICK_CELL,(t=>{if(t.federatedEvent){const e=AO(t.federatedEvent),i=this.table.scenegraph.getResizeColAt(e.abstractPos.x,e.abstractPos.y,e.eventArgs?.targetCell);if(this.table.eventManager.checkCellFillhandle(e))this.table.fireListeners(IL.DBLCLICK_FILL_HANDLE,{});else if(this.table._canResizeColumn(i.col,i.row)&&i.col>=0){this.table.scenegraph.updateAutoColWidth(i.col),this.table.internalProps._widthResizedColMap.add(i.col),this.table.scenegraph.updateChartSize(i.col);const t=this.table.stateManager;t.columnResize.col<t.table.frozenColCount&&!t.table.isPivotTable()&&!t.table.transpose&&t.table.scenegraph.component.setFrozenColumnShadow(t.table.frozenColCount-1,t.columnResize.isRightFrozen);const e=[];for(let t=0;t<this.table.colCount;t++)e.push(this.table.getColWidth(t));this.table.fireListeners(IL.RESIZE_COLUMN_END,{col:i.col,colWidths:e})}}})),this.table.isPivotTable()&&function(t){const e=t.internalProps.layoutMap.rowsDefine,i=t.internalProps.layoutMap.columnsDefine;for(let t=0;t<e.length;t++){const i=e[t];if("string"!=typeof i&&(i.drillDown||i.drillUp))return!0}for(let t=0;t<i.length;t++){const e=i[t];if("string"!=typeof e&&(e.drillDown||e.drillUp))return!0}return!1}(this.table)&&function(t){t.on(IL.MOUSEENTER_CELL,(e=>{const{col:i,row:r}=e;if(-1===i||-1===r)return;const n=t.internalProps.layoutMap.getHeaderDimension(i,r);n?.drillDown||n?.drillUp?t.stateManager.updateDrillState(n.dimensionKey,n.title,n.drillDown,n.drillUp,i,r):t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)})),t.on(IL.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)}))}(this.table),VW(this.table),function(t){t.isPivotChart()&&t.scenegraph.tableGroup.addEventListener("click",(e=>{if(!t.stateManager.columnMove.moving&&!t.stateManager.columnResize.resizing)if("axis-label"===e.target.name){const i=AO(e),{col:r,row:n}=i.eventArgs,o=t.internalProps.layoutMap;let s,a;o.indicatorsAsCol?(s=o.getDimensionKeyInChartSpec(o.rowHeaderLevelCount,n),a=o.getCellHeaderPaths(o.rowHeaderLevelCount-2,n).rowHeaderPaths):(s=o.getDimensionKeyInChartSpec(r,o.columnHeaderLevelCount),a=o.getCellHeaderPaths(r,o.columnHeaderLevelCount-1).colHeaderPaths);const l=a.map((t=>({key:t.dimensionKey,value:t.value}))).filter((t=>t.key));if(l.push({key:s,value:e.target.attribute.text}),t._selectedDimensionInChart.length&&function(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(t[i].key!==e[i].key||t[i].value!==e[i].value)return!1;return!0}(t._selectedDimensionInChart,l))return;t._selectedDimensionInChart=l,o.updateDataStateToChartInstance(),fW(t.scenegraph),t.scenegraph.updateNextFrame()}else t._selectedDimensionInChart?.length&&(t._selectedDimensionInChart.length=0,t.internalProps.layoutMap.updateDataStateToChartInstance(),fW(t.scenegraph),t.scenegraph.updateNextFrame())}))}(this.table),function(t){t.isPivotChart()&&(t.on(IL.MOUSEENTER_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=rN(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(IL.MOUSEENTER_AXIS,e)}}))})),t.on(IL.MOUSELEAVE_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=rN(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(IL.MOUSELEAVE_AXIS,e)}}))})))}(this.table)}dealTableHover(t){if(!t)return void this.table.stateManager.updateHoverPos(-1,-1);const{eventArgs:e}=t;e?this.table.stateManager.updateHoverPos(e.col,e.row):this.table.stateManager.updateHoverPos(-1,-1)}dealIconHover(t){const{eventArgs:e}=t;e?this.table.stateManager.updateHoverIcon(e.col,e.row,e.target,e.targetCell,e.event):this.table.stateManager.updateHoverIcon(-1,-1,void 0,void 0)}dealMenuHover(t){}dealTableSelect(t,e){if(!t)return this.table.stateManager.updateSelectPos(-1,-1),!1;const{eventArgs:i}=t;if(i){if("checkbox"===i.target.name||"radio"===i.target.name)return!1;const r=this.table.getBodyColumnDefine(i.col,i.row);return this.table.isHeader(i.col,i.row)&&(r?.disableHeaderSelect||this.table.stateManager.select?.disableHeader)||!this.table.isHeader(i.col,i.row)&&r?.disableSelect?(e||this.table.stateManager.updateSelectPos(-1,-1),!1):!this.table.isPivotChart()||"axis-label"!==t?.eventArgs?.target.name&&"chart"!==t?.eventArgs?.target.type?(this.table.stateManager.updateSelectPos(i.col,i.row,i.event.shiftKey,i.event.ctrlKey||i.event.metaKey,!1,e),!0):(this.table.stateManager.updateSelectPos(-1,-1),!1)}return!1}dealFillSelect(t,e){const{eventArgs:i}=t;if(i){if(this.table.stateManager.select?.ranges?.length&&this.table.stateManager.isFillHandle()){let r,n;const o=this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1];e&&(Z(this.table.stateManager.fillHandle.directionRow)||(Math.abs(this.table.stateManager.fillHandle.startY-t.abstractPos.y)>=Math.abs(this.table.stateManager.fillHandle.startX-t.abstractPos.x)?this.table.stateManager.fillHandle.directionRow=!0:this.table.stateManager.fillHandle.directionRow=!1),Math.abs(this.table.stateManager.fillHandle.startY-t.abstractPos.y)>=Math.abs(this.table.stateManager.fillHandle.startX-t.abstractPos.x)?this.table.stateManager.fillHandle.startY-t.abstractPos.y>0?this.table.stateManager.fillHandle.direction="top":this.table.stateManager.fillHandle.direction="bottom":this.table.stateManager.fillHandle.startX-t.abstractPos.x>0?this.table.stateManager.fillHandle.direction="left":this.table.stateManager.fillHandle.direction="right",this.table.stateManager.fillHandle.directionRow?(r=i.row,n=o.end.col):(r=o.end.row,n=i.col)),this.table.stateManager.updateSelectPos(e?n:o.end.col,e?r:o.end.row,!0,i.event.ctrlKey||i.event.metaKey,!1,e)}else this.table.stateManager.updateSelectPos(i.col,i.row,i.event.shiftKey,i.event.ctrlKey||i.event.metaKey,!1,e);return!0}return!1}deelTableSelectAll(){this.table.stateManager.updateSelectPos(-1,-1,!1,!1,!0)}dealMenuSelect(t){}checkColumnResize(t,e){const{eventArgs:i}=t,r=this.table.scenegraph.getResizeColAt(t.abstractPos.x,t.abstractPos.y,i?.targetCell);return!!(this.table._canResizeColumn(r.col,r.row)&&r.col>=0)&&(e&&this.table.stateManager.startResizeCol(r.col,t.abstractPos.x,t.abstractPos.y,r.rightFrozen),!0)}checkRowResize(t,e){const{eventArgs:i}=t;if(i){const r=this.table.scenegraph.getResizeRowAt(t.abstractPos.x,t.abstractPos.y,i.targetCell);if(this.table._canResizeRow(r.col,r.row)&&r.row>=0)return e&&this.table.stateManager.startResizeRow(r.row,t.abstractPos.x,t.abstractPos.y,r.bottomFrozen),!0}return!1}checkCellFillhandle(t,e){if(this.table.options.excelOptions?.fillHandle){const{eventArgs:i}=t;if(i&&this.table.stateManager.select?.ranges?.length){const i=Math.max(this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].start.col,this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].end.col),r=Math.max(this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].start.row,this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].end.row),n=this.table.scenegraph.highPerformanceGetCell(i,r).globalAABBBounds,o=Math.abs(t.abstractPos.x-n.x2),s=Math.abs(t.abstractPos.y-n.y2),a=18;if(this.table.stateManager.fillHandle?.isFilling||o<=a/2&&s<=a/2)return e&&this.table.stateManager.startFillSelect(t.abstractPos.x,t.abstractPos.y),!0}}return!1}dealColumnResize(t,e){this.table.stateManager.updateResizeCol(t,e)}dealRowResize(t,e){this.table.stateManager.updateResizeRow(t,e)}chechColumnMover(t){const{eventArgs:e}=t;return!!(e&&this.table.isHeader(e.col,e.row)&&(function(t,e,i){for(let r=0;r<i.length;r++)if(ML(i[r],t,e))return!0;return!1}(e.col,e.row,this.table.stateManager.select.ranges)||this.table.options.select?.disableHeaderSelect||this.table.options.select?.disableSelect)&&this.table._canDragHeaderPosition(e.col,e.row))&&(this.table.stateManager.startMoveCol(e.col,e.row,t.abstractPos.x,t.abstractPos.y),!0)}dealColumnMover(t){const{eventArgs:e}=t;Z(e.col)&&Z(e.row)&&this.table.stateManager.updateMoveCol(e.col,e.row,t.abstractPos.x,t.abstractPos.y)}startColumnResize(t){}dealIconClick(t,e){const{eventArgs:i}=e,{target:r,event:n,col:o,row:s}=i||{target:t.target,event:t,col:-1,row:-1},a=r;if(a.role&&a.role.startsWith("icon-"))return this.table.fireListeners(IL.ICON_CLICK,{name:a.name,x:(a.globalAABBBounds.x1+a.globalAABBBounds.x2)/2,y:a.globalAABBBounds.y2,col:o,row:s,funcType:a.attribute.funcType,icon:a,event:n}),!0;if(r instanceof Kc){const t=r.pickIcon(n.global);if(t)return this.table.fireListeners(IL.ICON_CLICK,{name:t.attribute.id,x:t.globalX+t.globalAABBBounds.width()/2,y:t.globalY+t.AABBBounds.height(),col:o,row:s,funcType:t.attribute.funcType,icon:t,event:n}),!0}return!1}release(){this.gesture.release(),this.globalEventListeners.forEach((t=>{"document"===t.env?document.removeEventListener(t.name,t.callback):"body"===t.env?document.body.removeEventListener(t.name,t.callback):"window"===t.env&&window.removeEventListener(t.name,t.callback)})),this.globalEventListeners=[]}}const oN=t=>{const e=t.value;return Number(e)>80?"#20a8d8":Number(e)>50?"#4dbd74":Number(e)>20?"#ffc107":"#f86c6b"};class sN extends LE{_showBar;_barColor;_barBgColor;_barPositiveColor;_barNegativeColor;_barAxisColor;_barHeight;_barBottom;_barPadding;_showBarMark;_barMarkPositiveColor;_barMarkNegativeColor;_barMarkWidth;_barMarkPosition;_barRightToLeft;static get DEFAULT(){return QW||(QW=new sN)}constructor(t={},e={}){super(t,e),this._showBar=t.showBar??!0,this._barColor=t.barColor??oN,this._barPositiveColor=t.barPositiveColor??"#4dbd74",this._barNegativeColor=t.barNegativeColor??"#f86c6b",this._barAxisColor=t.barAxisColor??"black",this._barBgColor=t.barBgColor,this._barHeight=t.barHeight??3,this._barHeight=t.barHeight??3,this._barBottom=t.barBottom??0,this._barPadding=t.barPadding??[0,0,0,0],this._showBarMark=t.showBarMark??!1,this._barMarkPositiveColor=t.barMarkPositiveColor??"#4dbd74",this._barMarkNegativeColor=t.barMarkNegativeColor??"#f86c6b",this._barMarkWidth=t.barMarkWidth??2,this._barMarkPosition=t.barMarkPosition??"right",this._barRightToLeft=t.barRightToLeft??!1}get showBar(){return this._showBar}set showBar(t){this._showBar=t}get barColor(){return this._barColor}set barColor(t){this._barColor=t}get barBgColor(){return this._barBgColor}set barBgColor(t){this._barBgColor=t}get barHeight(){return this._barHeight}set barHeight(t){this._barHeight=t}get barBottom(){return this._barBottom}set barBottom(t){this._barBottom=t}get barPositiveColor(){return this._barPositiveColor}set barPositiveColor(t){this._barPositiveColor=t}get barNegativeColor(){return this._barNegativeColor}set barNegativeColor(t){this._barNegativeColor=t}get barAxisColor(){return this._barAxisColor}set barAxisColor(t){this._barAxisColor=t}get barPadding(){return this._barPadding}set barPadding(t){this._barPadding=t}get showBarMark(){return this._showBarMark}set showBarMark(t){this._showBarMark=t}get barMarkPositiveColor(){return this._barMarkPositiveColor}set barMarkPositiveColor(t){this._barMarkPositiveColor=t}get barMarkNegativeColor(){return this._barMarkNegativeColor}set barMarkNegativeColor(t){this._barMarkNegativeColor=t}get barMarkWidth(){return this._barMarkWidth}set barMarkWidth(t){this._barMarkWidth=t}get barMarkPosition(){return this._barMarkPosition}set barMarkPosition(t){this._barMarkPosition=t}get barRightToLeft(){return this._barRightToLeft}set barRightToLeft(t){this._barRightToLeft=t}clone(){return new sN(this,null)}}const aN=["type","content","font","color","width","height","marginRight","marginLeft","src","svg","name","path","positionType","tooltip","hover","cursor","shape","interactive"];class lN{expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=NO();this.expandIcon=e[_E.expandIconName],this.collapseIcon=e[_E.collapseIconName]}getIcons(t,e,i,r,n){const o=[],s=this.getHierarchyIcon(t,e);s&&o.push(s);const{icon:a}=this._table.getBodyColumnDefine(t,e);if(a){let n;if("function"==typeof a){n=a({col:t,row:e,value:i,dataValue:r,table:this._table})}else n=a;const s=NO(),l=t=>{let e;e="string"==typeof t?s[t]:t,e&&o.push(e)};Array.isArray(n)?n.forEach(((t,e)=>{l(t)})):l(n)}return n&&o.forEach(((i,r)=>{(i.content||i.src)&&(o[r]=this.getCellIconFromRecordValue(i,t,e))})),o}getStyleClass(t){switch(t){case"text":case"link":return IE;case"image":case"video":return HE;case"chart":case"sparkline":return LE;case"progressbar":return sN;case"checkbox":return zE;case"radio":return DE}return IE}getCellIconFromRecordValue(t,e,i){if(Array.isArray(t))return t.map((t=>this.getCellIconFromRecordValue(t,e,i)));if(!PL.isObject(t)||"function"==typeof t)return this._table.getFieldData(t,e,i);const r={},n=t;return aN.forEach((t=>{if(void 0!==n[t]){const o=this._table.getFieldData(n[t],e,i);null!=o?r[t]=o:this._table._hasField?.(n[t],e,i)||(r[t]=n[t])}})),r}getHierarchyIcon(t,e){const i=this._table.getHierarchyState(t,e);return i===yE.expand?this.expandIcon:i===yE.collapse?this.collapseIcon:void 0}getHierarchyIconWidth(){return this.expandIcon.width+(this.expandIcon.marginLeft??0)+(this.expandIcon.marginRight??0)}}function hN(t,e){const i=document.createElement(t);return e&&i.classList.add(...e),i}!function(){if("node"===YE.mode)return;const t=document.createElement("style");t.id="vtable-menu-styleSheet",t.textContent="\n@keyframes vtable__menu-element--shown-animation {\n\t0% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n.vtable__menu-element {\n\tposition: absolute;\n\tbox-sizing: border-box;\n\tborder-radius: 4px;\n\tbackground-color: #fff;\n\tpadding: 6px 0;\n\t/* pointer-events: none; */\n\tuser-select: none;\n\tcolor: #000;\n\tmax-width: 300px;\n\tz-index: 99999;\n\tborder: #CCC 0.5px solid;\n\tcursor: default;\n\twidth: max-content;\n\tbox-shadow: 0px 8px 16px rgba(27, 31, 35, 0.12);\n}\n.vtable__menu-element--hidden {\n\topacity: 0;\n\t/* transform: translate(-50%, -50%); */\n\ttransition: opacity 75ms linear;\n\tz-index: -9999;\n}\n.vtable__menu-element--shown {\n\topacity: 1;\n\t/* transform: translate(-50%, -50%); */\n\tanimation: vtable__menu-element--shown-animation 150ms ease-out;\n}\n.vtable__menu-element__content {\n\tfont-family: Roboto;\n\tfont-size: 12px;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\t/* height: 100%; */\n\tline-height: 30px;\n}\n.vtable__menu-element__item {\n\theight: 32px;\n\tpadding: 0px 12px;\n\tcursor: pointer;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-start;\n}\n.vtable__menu-element__item:hover {\n\tbackground-color: rgba(27, 31, 35, 0.06);\n}\n.vtable__menu-element__icon{\n\t/* vertical-align: top; */\n\tdisplay: flex;\n\t/* line-height: 30px; */\n\tmargin-right: 6px;\n}\n.vtable__menu-element__no-event {\n\tpointer-events: none;\n}\n.vtable__menu-element--select {\n\tcolor: #2E68CF;\n}.vtable__menu-element--normal {\n\tcolor: rgba(20, 20, 20, 0.9);;\n}\n.vtable__menu-element__split {\n\theight: 0px;\n\tborder: 1px solid rgb(209, 213, 218);\n\tmargin: 5px 0;\n}\n.vtable__menu-element__title {\n\tcolor: rgb(149, 149, 149);\n}\n.vtable__menu-element__arrow {\n\tposition: absolute;\n\tright: 3px;\n\tfont-weight: bold;\n\tmargin-top: 1px;\n}\n.vtable__menu-element__item-text {\n\tmargin-right: 15px;\n}\n",document.head.appendChild(t)}();const cN="vtable__menu-element",dN=`${cN}__item`,uN=`${cN}__content`,gN=`${cN}--hidden`,pN=`${cN}--shown`,fN=`${cN}--normal`,mN=`${cN}--select`,bN=`${cN}__icon`,yN=`${cN}__split`,vN=`${cN}__title`,CN=`${cN}__arrow`,wN=`${cN}__no-event`,xN=`${cN}__item-text`;function _N(){return hN("div",[cN,gN])}function SN(t,e,i,r,n,o){const s=t.getCellRange(r,n);for(let r=0;r<e.length;r++){const n=e[r];let{col:o,row:a}=n;const{field:l,menuKey:h}=n;if("number"!=typeof o||"number"!=typeof a)if(t.isPivotTable()&&(Array.isArray(l),1)){const e=t.internalProps.layoutMap.getPivotCellAdress(l);if(!e)continue;o=e.col,a=e.row}else{const e=t.internalProps.layoutMap.getHeaderCellAddressByField(l);if(!e)continue;o=e.col,a=e.row}if(Z(o)&&Z(a)&&ML(s,o,a)&&i===h)return!0}return!1}class AN{_handler;_rootElement;_secondElement;_menuInstanceInfo;_showChildrenIndex;_mouseEnterSecondElement;constructor(t){this._handler=new WL,this._rootElement=_N(),this._secondElement=_N(),this._secondElement.sub=!0,this._showChildrenIndex=-1,this._rootElement.addEventListener("wheel",(t=>{t.stopPropagation()})),this._rootElement?.addEventListener("mousedown",(t=>{t.stopPropagation(),t.preventDefault()})),this._rootElement?.addEventListener("touchend",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(gN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,n);t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(gN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,n);t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(e=>{if(this._rootElement.classList.contains(gN))return;e.stopPropagation();const{hasChildren:i,dropDownIndex:r,col:n,row:o,sub:s}=e.target;if(i){this._showChildrenIndex=r;const i=this._secondElement;i?.classList.remove(gN),i?.classList.add(pN),i.innerHTML="";const s=this._menuInstanceInfo.content[r]?.children;for(let e=0;e<s.length;e++){const r=s[e],a=MN(r,!!t.stateManager.menu.dropDownMenuHighlight&&SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof r?r?.menuKey||r?.text:r,n,o));a.col=n,a.row=o,a.dropDownIndex=e,"string"==typeof r?(a.text=r,a.menuKey=r):"object"==typeof r&&(a.text=r.text,a.menuKey=r.menuKey||r.text),a.sub=!0,a.sub=!0,i.appendChild(a)}const a=e.target.getBoundingClientRect();this._bindSecondElement(t,n,o,a.right,a.top)}else if(i&&this._showChildrenIndex===r){const t=this._secondElement;t?.classList.remove(gN),t?.classList.add(pN)}else!s&&this._secondElement?.classList.contains(pN)&&setTimeout((()=>{if(!0!==this._mouseEnterSecondElement){this._showChildrenIndex=-1;const t=this._secondElement;t?.classList.remove(pN),t?.classList.add(gN)}}),300)})),this._secondElement?.addEventListener("wheel",(t=>{t.stopPropagation()})),this._secondElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(gN)||t.stopPropagation()})),this._secondElement?.addEventListener("mouseenter",(t=>{this._mouseEnterSecondElement=!0})),this._secondElement?.addEventListener("mouseleave",(t=>{this._mouseEnterSecondElement=!1})),this._secondElement?.addEventListener("mousedown",(t=>{t.stopPropagation(),t.preventDefault()})),this._secondElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._secondElement.classList.contains(gN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r);let h=!1;this._menuInstanceInfo.content.forEach(((e,n)=>{if("object"==typeof e&&e.children&&e.children.length)for(let n=0;n<e.children.length;n++){const s=e.children[n];if(SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof s?s?.menuKey:s,i,r)&&o===("object"==typeof s?s?.menuKey:s))return void(h=!0)}})),t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,cellHeaderPaths:t.isPivotTable()?t.getCellHeaderPaths(i,r):void 0,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()}))}get rootElement(){return this._rootElement}release(){this.unbindFromCell();const t=this._rootElement;t?.parentElement&&t.parentElement.removeChild(t),this._handler.release(),delete this._rootElement}bindToCell(t,e,i,r){const n=this._rootElement,o=this._secondElement;if(this._menuInstanceInfo=r,n?.classList.remove(pN),n?.classList.add(gN),o?.classList.remove(pN),o?.classList.add(gN),this._canBindToCell(t,e,i)){if(n.innerHTML="",Array.isArray(r.content)){const o=r.content;for(let r=0;r<o?.length;r++){const s=o[r];let a=!!t.stateManager.menu.dropDownMenuHighlight&&SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof s?s?.menuKey||s?.text:s,e,i);if(t.stateManager.menu.dropDownMenuHighlight&&"object"==typeof s&&Array.isArray(s.children)&&s.children.length)for(let r=0;r<s.children.length;r++){const n=s.children[r];if(SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof n?n?.menuKey||n?.text:n,e,i)){a=!0;break}}const l=MN(s,a);l.col=e,l.row=i,l.dropDownIndex=r,"string"==typeof s?(l.text=s,l.menuKey=s):"object"==typeof s&&(l.text=s.text,l.menuKey=s.menuKey||s.text,s.children?.length&&(l.hasChildren=!0)),n.appendChild(l)}}if(this._bindToCell(t,e,i,r.position,r.referencePosition))return n?.classList.add(pN),n?.classList.remove(gN),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement,e=this._secondElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(pN),t.classList.add(gN)),e?.parentElement&&(e.classList.remove(pN),e.classList.add(gN))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),n=t.getElement(),{top:o,bottom:s,left:a,right:l}=r;if(t.isFrozenCell(e,i))return!0;if(s<t.getFrozenRowsHeight()||l<t.getFrozenColsWidth()||a>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||o>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=n;return!(h<o)&&!(c<a)}_bindToCell(t,e,i,r,n){const o=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(o){o.parentElement!==s&&s.appendChild(o),o.style.left="0px";const t=.8*a;o.style.maxWidth=`${t}px`;const e=o.clientWidth,i=o.clientHeight;let h,c;return r?(h=r.x,c=r.y):n&&(h=n.rect.right-e,c=n.rect.bottom),c+i>l&&(c=l-i),c<0&&(c/=2),o.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),o.style.left=`${h}px`,!0}return!1}_bindSecondElement(t,e,i,r,n){const o=this._secondElement,s=this._rootElement,a=t.getElement(),{width:l,left:h,top:c}=t.internalProps.element.getBoundingClientRect(),{x:d,y:u,width:g}=s.getBoundingClientRect();if(o){o.parentElement!==a&&a.appendChild(o),o.style.left="0px";const t=.8*l;o.style.maxWidth=`${t}px`;const e=o.clientWidth,i=n-4-c,s=r-h;o.style.top=`${i}px`;let d=s;return d+e>l?d=d-e-g:d+=4,o.style.left=`${d}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:n,width:o,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+o+5&&e>n-5&&e<n+s+5)return!0;if(this._secondElement){const{x:r,y:n,width:o,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+o+5&&e>n-5&&e<n+s+5)return!0}return!1}}function MN(t,e){const i=hN("div",[dN,e?mN:fN]);if("string"==typeof t){const e=hN("span",[uN,wN,xN]);e.innerHTML=t,i.appendChild(e)}else if("object"==typeof t){const r=t.type??"item";if("split"===r)return i?.classList.add(yN),i;if(t?.icon?.svg)if(JL.test(t.icon.svg)){const e=new Image;t.icon.width?e.style.width=t.icon.width.toString()+"px":e.style.width="16px",t.icon.height?e.style.height=t.icon.height.toString()+"px":e.style.height="16px",e.src=t.icon.svg,i.appendChild(e)}else{const r=hN("span",[bN,wN]);r.innerHTML=e&&t.selectedIcon&&t.selectedIcon.svg?t.selectedIcon.svg:t.icon.svg,t.icon.width&&r.children[0].setAttribute("width",t.icon.width.toString()),t.icon.height&&r.children[0].setAttribute("height",t.icon.height.toString()),i.appendChild(r)}const n=hN("span",[uN,wN,xN]);if(n.innerHTML=t.text,i.appendChild(n),"title"===r)i?.classList.add(wN,vN);else if(t?.children?.length){const t=hN("span",[uN,wN,CN]);t.innerHTML=e?'<svg width="8" height="12" viewBox="0 0 10 17" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align: baseline"><path d="M1.78186 16.7729L0.300378 15.2915L6.8189 8.77295L0.300377 2.25443L1.78186 0.77295L9.78186 8.77295L1.78186 16.7729Z" fill="#2E68CF" fill-opacity="0.65"></path></svg>':'<svg width="8" height="12" viewBox="0 0 10 17" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align: baseline"><path d="M1.78186 16.7729L0.300378 15.2915L6.8189 8.77295L0.300377 2.25443L1.78186 0.77295L9.78186 8.77295L1.78186 16.7729Z" fill="#141414" fill-opacity="0.65"></path></svg>',i.appendChild(t)}}return i}let TN;class RN extends GE{static get DEFAULT(){return TN||(TN=new RN)}constructor(t={},e={}){super(t,e),this.textAlign=(t.textAlign??e?.textAlign)||"center"}clone(){return new RN(this)}}class BN{normalIcon;upIcon;downIcon;freezeIcon;frozenIcon;frozenCurrentIcon;dropDownAbsoluteIcon;expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=NO();this.freezeIcon=e[_E.freezeIconName],this.frozenIcon=e[_E.frozenIconName],this.frozenCurrentIcon=e[_E.frozenCurrentIconName],this.normalIcon=e[_E.normalIconName],this.upIcon=e[_E.upwardIconName],this.downIcon=e[_E.downwardIconName],this.dropDownAbsoluteIcon=e[_E.dropdownIconName],this.expandIcon=e[_E.expandIconName],this.collapseIcon=e[_E.collapseIconName]}getIcons(t,e){const i=[];if(this._table.isPivotTable()){const{showSort:r,sort:n}=this._table.internalProps.layoutMap.getHeader(t,e);if(r){let r=this._table.getPivotSortState(t,e);r&&(r=r.toUpperCase());const n="ASC"===r?this.downIcon:"DESC"===r?this.upIcon:this.normalIcon;n&&i.push(n)}else if(n){const r=this.getSortIconForPivotTable(this._table.getPivotSortState(t,e),this._table,t,e);r&&i.push(r)}}else{const r=this._table.sortState;let n;n=void 0;const o=this._table.getCellRange(t,e);if(r)if(Array.isArray(r))for(let t=0;t<r.length;t++){const e=r[t],i=this._table._getHeaderCellBySortState(e);if(i&&ML(o,i.col,i.row)){({order:n}=e);break}}else{const t=this._table._getHeaderCellBySortState(r);t&&ML(o,t.col,t.row)&&({order:n}=r)}const s=this.getSortIcon(n,this._table,t,e);s&&i.push(s)}if(this._table.showFrozenIcon&&t<this._table.allowFrozenColCount){const r=this.getFrozenIcon(t,e);r&&i.push(r)}if(this.checkDropDownIcon(this._table,t,e)){const t=this.dropDownAbsoluteIcon;i.push(t)}const r=this.getDropDownStateIcons(this._table,t,e);r.length&&i.push(...r);const{headerIcon:n}=this._table._getHeaderLayoutMap(t,e),o=this.getHierarchyIcon(t,e);if(o&&i.push(o),n){let r;if("function"==typeof n){r=n({col:t,row:e,value:this._table.getCellValue(t,e),dataValue:this._table.getCellOriginValue(t,e),table:this._table})}else r=n;const o=NO(),s=t=>{let e;e="string"==typeof t?o[t]:t,e&&i.push(e)};Array.isArray(r)?r.forEach(((t,e)=>{s(t)})):s(r)}return i}getFrozenIcon(t,e){if(this._table.isPivotTable()||this._table.transpose)return null;if(this._table.rightFrozenColCount&&t>=this._table.colCount-this._table.rightFrozenColCount)return null;const i=this._table.getHeaderDefine(t,e);if(i.columns&&i.columns.length>0)return null;let r=this.freezeIcon;return this._table.options.frozenColCount-1>t?r=this.frozenIcon:this._table.options.frozenColCount-1===t&&(r=this.frozenCurrentIcon),r}getSortIcon(t,e,i,r){const n="asc"===t?this.downIcon:"desc"===t?this.upIcon:this.normalIcon,o=e.getHeaderDefine(i,r);return!o||!1===o.showSort||!Z(o.showSort)&&!o.sort||o.columns&&o.columns.length>0?null:n}getSortIconForPivotTable(t,e,i,r){const n=e.getHeaderDefine(i,r);if(!n||!1===n.showSort||!Z(n.showSort)&&!n.sort||n.columns&&n.columns.length>0)return null;return"ASC"===t?this.downIcon:"DESC"===t?this.upIcon:this.normalIcon}getDropDownStateIcons(t,e,i){const r=t.getHeaderDefine(e,i),n=t._getHeaderLayoutMap(e,i),{dropDownMenu:o}=n,s=[];if(Array.isArray(o)&&o.length||Array.isArray(t.globalDropDownMenu)&&t.globalDropDownMenu.length&&!r?.columns?.length){const r=o||t.globalDropDownMenu;let n=-1,a=-1;for(let o=0;o<r.length;o++){const s=r[o];if("object"==typeof s&&s.children&&s.children.length)for(let r=0;r<s.children.length;r++){const l=s.children[r];if(t.stateManager.menu?.dropDownMenuHighlight&&SN(t,t.stateManager.menu?.dropDownMenuHighlight,"object"==typeof l?l?.menuKey:l,e,i)){n=o,a=r;break}}if(t._dropDownMenuIsHighlight(e,i,o)){n=o;break}}if(-1!==n){let e;e=-1!==a?(o||t.globalDropDownMenu)[n].children[a]:(o||t.globalDropDownMenu)[n],e.stateIcon&&(e.stateIcon.svg?s.push({type:"svg",name:e.stateIcon.src||e.stateIcon.svg,width:e.stateIcon.width||22,height:e.stateIcon.height||22,svg:e.stateIcon.svg,positionType:wE.right,marginRight:0,funcType:xE.dropDownState,interactive:!1}):e.stateIcon.src&&s.push({type:"image",name:e.stateIcon.src||e.stateIcon.svg,width:e.stateIcon.width||22,height:e.stateIcon.height||22,src:e.stateIcon.src,positionType:wE.right,marginRight:0,funcType:xE.dropDownState,interactive:!1}))}}return s}getDropDownIconRect(t,e,i){const r=this.downIcon.hover?.width??this.downIcon?.width??0,n=this.downIcon.hover?.height??this.downIcon?.height??0,o=t.right-2-r,s=t.right-2;let a;a="middle"===i?t.top+t.height/2-r/2:"top"===i?t.top+e/2:"bottom"===i?t.bottom-2*e:t.top;return{left:o,right:s,top:a,bottom:n+a,width:r,height:n}}getHierarchyIcon(t,e){const{hierarchyState:i}=this._table._getHeaderLayoutMap(t,e);if(i){if(i===yE.expand)return this.expandIcon;if(i===yE.collapse)return this.collapseIcon}}getHierarchyIconWidth(){return this.expandIcon.width+(this.expandIcon.marginLeft??0)+(this.expandIcon.marginRight??0)}checkDropDownIcon(t,e,i){if(t.isPivotTable()){const r=t._getHeaderLayoutMap(e,i);if(Array.isArray(r.dropDownMenu)&&r.dropDownMenu.length)return!0}else{const r=t.getHeaderDefine(e,i);if(Array.isArray(r.dropDownMenu)&&r.dropDownMenu.length||(!Array.isArray(r.dropDownMenu)||0!==r.dropDownMenu.length)&&Array.isArray(t.globalDropDownMenu)&&t.globalDropDownMenu.length&&!r?.columns?.length)return!0}return!1}getStyleClass(t){switch(t){case"text":case"link":return UE;case"image":case"video":return RN;case"checkbox":return KE}}setTableColumnsEditor(){const t=(e,i)=>{e?.forEach(((e,r)=>{e.editor&&(i[r].editor=e.editor),e.columns&&t(e.columns,i[r].columns)}))};t(this._table.options.columns,this._table.internalProps.columns)}}class PN{_table;_tooltipElement;constructor(t){this._table=t}release(){this.unbindTooltipElement(),this._tooltipElement&&this._tooltipElement.release?.(),this._tooltipElement=void 0}_getTooltipElement(){return this._tooltipElement||(this._tooltipElement=this.createTooltipElementInternal()),this._tooltipElement}bindTooltipElement(t,e,i,r){return this._getTooltipElement().bindToCell(this._table,t,e,i,r)}moveTooltipElement(t,e,i,r){this._getTooltipElement().move(this._table,t,e,i,r)}unbindTooltipElement(){this._getTooltipElement().unbindFromCell()}locateTooltipElement(t,e,i,r,n){this._getTooltipElement()._locate(this._table,t,e,i,r,n)}}!function(){if("node"===YE.mode)return;const t=document.createElement("style");t.id="vtable-tooltip-styleSheet",t.textContent="\n@keyframes vtable__bubble-tooltip-element--shown-animation {\n\t0% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n.vtable__bubble-tooltip-element {\n\tposition: absolute;\n\t\n\t// pointer-events: none;\n\t//user-select: none;\n\tmax-width: 300px;\n\tz-index: 99999;\n\n\tbackground: #FFFFFF;\n border: 1px solid #E6E8ED;\n box-sizing: border-box;\n border-radius: 4px;\n box-shadow: 0px 2px 4px rgb(27 31 35 / 8%);\n color: #141414;\n font-size: 13px;\n}\n.vtable__bubble-tooltip-element--hidden {\n\topacity: 0;\n pointer-events: none;\n\tuser-select: none;\n\t/* transform: translate(-50%, -50%); */\n\ttransition: opacity 75ms linear;\n}\n.vtable__bubble-tooltip-element--shown {\n\topacity: 1;\n\t/* transform: translate(-50%, -50%); */\n\tanimation: vtable__bubble-tooltip-element--shown-animation 150ms ease-out;\n}\n.vtable__bubble-tooltip-element__content {\n\t/* font-size: .75rem; */\n\tpadding: 6px 8px;\n\tmin-height: 1em;\n\tline-height: 1.5;\n\twidth: 100%;\n\tdisplay: block;\n\twhite-space: pre-wrap;\n\tmargin: 0;\n\tbox-sizing: border-box;\n\toverflow: auto;\n\tword-wrap: break-word;\n\tposition: relative;\n\tbackground-color: #FFF;\n\tz-index: 2;\n\tborder-radius: 4px;\n}\n/* WebKit Microsoft Edge(新版): */\n.vtable__bubble-tooltip-element__content::-webkit-scrollbar {\n width: 0;\n height: 0;\n background-color: transparent;\n}\n/* Opera Firefox */\n.vtable__bubble-tooltip-element__content > scrollbar-track {\n width: 0;\n height: 0;\n background-color: transparent;\n}\n/* Internet Explorer 11 和 Microsoft Edge(旧版) */\n.vtable__bubble-tooltip-element__content > scrollbar {\n width: 0;\n height: 0;\n background-color: transparent;\n}\n.vtable__bubble-tooltip-element__triangle {\n\t/* font-size: .75rem; */\n\tposition: absolute;\n\twidth: 10px;\n\theight: 10px;\n\tdisplay: block;\n\ttransform: rotate(45deg);\n transform-origin: 50% 50% 0;\n\tz-index: 1;\n\tbackground-color: #FFF;\n\tborder: 1px solid #E6E8ED;\n}\n",document.head.appendChild(t)}();const kN="vtable__bubble-tooltip-element",EN=`${kN}__content`,LN=`${kN}__triangle`,HN=`${kN}--hidden`,IN=`${kN}--shown`;class ON{_handler;_rootElement;_messageElement;_triangleElement;_disappearDelay;_disappearDelayId;constructor(){this._handler=new WL;const t=this._rootElement=hN("div",[kN,HN]),e=hN("div",[EN]),i=hN("span",[LN]);t.appendChild(i),t.appendChild(e),this._messageElement=t.querySelector(`.${EN}`)||void 0,this._triangleElement=t.querySelector(`.${LN}`)||void 0,t.addEventListener("mousemove",(()=>{this._disappearDelayId&&clearTimeout(this._disappearDelayId)})),t.addEventListener("mouseleave",(()=>{this._disappearDelay=void 0,this.unbindFromCell()})),e.addEventListener("wheel",(t=>{t.stopPropagation()})),e.addEventListener("copy",(t=>{const i=function(t){const e=window.getSelection();if(e.rangeCount){const i=e.getRangeAt(0);return i.endOffset>i.startOffset&&t.contains(i.commonAncestorContainer)}return!1}(e);i&&t.stopPropagation()}))}bindToCell(t,e,i,r,n){this._disappearDelay=r?.disappearDelay,this._disappearDelayId&&clearTimeout(this._disappearDelayId);const o=this._rootElement,s=this._messageElement,a=this._triangleElement;if(o?.classList.remove(IN),o?.classList.add(HN),this._canBindToCell(t,e,i)){s.setAttribute("style",""),a.setAttribute("style",""),r?.className&&o.classList.add(r.className),r?.style?.bgColor&&(s.style.backgroundColor=r?.style?.bgColor),r?.style?.bgColor&&(a.style.backgroundColor=r?.style?.bgColor),a.style.display=!0===r?.style?.arrowMark?"block":"none",r?.style?.fontSize&&(s.style.fontSize=(r?.style?.fontSize??12)+"px"),r?.style?.fontFamily&&(s.style.fontFamily=r?.style?.fontFamily),r?.style?.color&&(s.style.color=r?.style?.color),r?.style?.padding&&(s.style.padding=`${r?.style?.padding.join("px ")}px`),r?.style?.maxHeight&&(s.style.maxHeight=`${r?.style?.maxHeight}px`),r?.style?.maxWidth&&(s.style.maxWidth=`${r?.style?.maxWidth}px`),s&&(s.textContent=r?.content);if(this._bindToCell(t,e,i,r?.position,r?.referencePosition,n,r?.style?.arrowMark))return o?.classList.add(IN),o?.classList.remove(HN),!0}else this.unbindFromCell();return!1}release(){this.unbindFromCell();const t=this._rootElement;t?.parentElement&&t.parentElement.removeChild(t),this._handler?.release?.(),delete this._rootElement,delete this._messageElement}move(t,e,i,r,n){const o=this._rootElement;this._canBindToCell(t,e,i)?(this._bindToCell(t,e,i,r?.position,r?.referencePosition,n),o?.classList.add(IN),o?.classList.remove(HN)):this.unbindFromCell()}unbindFromCell(){if(this._disappearDelay)this._disappearDelayId=setTimeout((()=>{const t=this._rootElement;t?.parentElement&&(t.classList.remove(IN),t.classList.add(HN))}),this._disappearDelay??0);else{const t=this._rootElement;t?.parentElement&&(t.classList.remove(IN),t.classList.add(HN))}}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),n=t.getElement(),{bottom:o,left:s,right:a,top:l}=r;if(t.isFrozenCell(e,i))return!0;if(o<t.getFrozenRowsHeight()||a<t.getFrozenColsWidth()||s>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||l>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=n;return!(l>h)&&!(s>c)}_bindToCell(t,e,i,r,n,o,s){const a=this._rootElement,l=t.getCellRangeRelativeRect({col:e,row:i}),h=t.getElement(),c=t.internalProps.element.offsetWidth,{width:d}=l;if(a){let l,u;a.parentElement!==h&&h.appendChild(a),a.style.left="0px";const g=Math.min(.8*c,4*d);a.style.maxWidth=`${g}px`;const p=a.clientWidth,f=a.clientHeight;if(!r&&!n)return!1;{const a=this.getComputedPosition(t,e,i,r,n,o,s);u=a.x,l=a.y}a.style.left=`${u}px`,a.style.top=`${l}px`,lL()&&(a.style.fontSize="11px");const{x1:m,x2:b,y1:y,y2:v}=t.stateManager.menu.bounds,C=u,w=C+p,x=l,_=C+f;return!(t.stateManager.menu.isShow&&m<w&&b>C&&v>x&&y<_)}return!1}getComputedPosition(t,e,i,r,n,o,s){const a=this._rootElement,l=t.getCellRangeRelativeRect({col:e,row:i}),{width:h,height:c}=t.internalProps.element.getBoundingClientRect(),{width:d}=l;let u,g;const p=Math.min(.8*h,4*d);a.style.maxWidth=`${p}px`;const f=a.clientWidth,m=a.clientHeight,b=s?6:0;if(r)g=r.x,u=r.y+b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.top="-5px";else if(n){let t=n.placement??bE.bottom;const e=n.rect.left+n.rect.width/2,i=n.rect.top+n.rect.height/2,r=n.rect.top,s=n.rect.bottom,a=n.rect.left,l=n.rect.right;let d=0;const p=()=>{d++,d>=4||(this.removeStyleFromTriangle(),t===bE.top?(g=e-f/2,u=r-m-b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.bottom="-5px",o&&u<0&&(t=bE.right,p())):t===bE.bottom?(g=e-f/2,u=s+b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.top="-5px",o&&u+m>c&&(t=bE.left,p())):t===bE.left?(u=i-m/2,g=a-f-b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.right="-5px",o&&g<0&&(t=bE.top,p())):t===bE.right&&(u=i-m/2,g=l+b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.left="-5px",o&&g+f>h&&(t=bE.bottom,p())))};p()}return o&&(g<0?g=0:g+a.offsetWidth>h&&(g=h-a.offsetWidth)),{x:g,y:u}}removeStyleFromTriangle(){this._triangleElement.style.left="",this._triangleElement.style.right="",this._triangleElement.style.top="",this._triangleElement.style.bottom="",this._triangleElement.style.marginLeft="",this._triangleElement.style.marginTop=""}_locate(t,e,i,r,n,o){const s=this.getComputedPosition(t,e,i,r,n,o),a=s.x,l=s.y;this._rootElement.style.left=`${a}px`,this._rootElement.style.top=`${l}px`}}class FN extends PN{createTooltipElementInternal(){return new ON}}const zN={"bubble-tooltip":function(t){return new FN(t)}};class DN{_table;_tooltipInstances;_attachInfo;confine;constructor(t,e){this._table=t,this._tooltipInstances={},this._bindTableEvent(t),this.confine=e}release(){const t=this._tooltipInstances;for(const e in t)t[e]?.release?.();delete this._tooltipInstances,this._attachInfo=null}_bindToCell(t,e,i){const r=this._attachInfo,n=this._getTooltipInstanceInfo(t,e);if(!r||n&&r.instance===n||(r.instance?.unbindTooltipElement(),this._attachInfo=null),!n)return;if(n&&n.bindTooltipElement(t,e,i,this.confine)){const r=this._table.getCellRange(t,e);this._attachInfo={range:r,instance:n,tooltipOptions:i}}}_move(t,e,i){const r=this._attachInfo;if(!r||!ML(r.range,t,e))return;const{instance:n}=r;n?.moveTooltipElement(t,e,i,this.confine)}moveToPosition(t,e,i,r){const n=this._attachInfo;if(!n||!ML(n.range,t,e))return;const{instance:o}=n;this._attachInfo.tooltipOptions.position=i,this._attachInfo.tooltipOptions.referencePosition=r,o?.locateTooltipElement(t,e,i,r,this.confine)}_unbindFromCell(){const t=this._attachInfo;if(!t)return;const{instance:e}=t;e?.unbindTooltipElement(),this._attachInfo=null}_isBindCell(t,e){const i=this._attachInfo;return!!i&&ML(i.range,t,e)}_bindTableEvent(t){t.on(IL.MOUSEENTER_CELL,(e=>{if(lL())return;const{x1:i,x2:r,y1:n,y2:o}=t.stateManager.menu.bounds;if(t.stateManager.menu.isShow&&"number"==typeof e.x&&"number"==typeof e.y&&e.x>i&&e.x<r&&e.y>n&&e.y<o)return;const{col:s,row:a}=e;this.showTooltip(s,a)})),t.on(IL.MOUSEMOVE_CELL,(e=>{if(!lL()){if(this._attachInfo?.tooltipOptions?.referencePosition){const i=this._attachInfo.tooltipOptions.referencePosition,{event:r}=e,{left:n,right:o,top:s,bottom:a}=i.rect,l=t._getMouseAbstractPoint(r,!1);l.inTable&&l.x>=n-5&&l.x<=o+5&&l.y>=s-5&&l.y<=a+5||this._unbindFromCell()}this._attachInfo&&t.stateManager.menu.isShow&&this._bindToCell(e.col,e.row)}})),t.on(IL.MOUSELEAVE_CELL,(t=>{this._unbindFromCell()})),t.on(IL.SELECTED_CELL,(t=>{this._isBindCell(t.col,t.row)&&this._unbindFromCell()})),t.on(IL.MOUSELEAVE_TABLE,(t=>{this._unbindFromCell()})),t.on(IL.SCROLL,(t=>{this._unbindFromCell()}))}showTooltip(t,e){let i;const r=this._table,n=r.getHeaderDescription(t,e);if(n){const o=r.getCellRangeRelativeRect({col:t,row:e});i={content:n,referencePosition:{placement:bE.bottom,rect:o},disappearDelay:r.internalProps.tooltip.overflowTextTooltipDisappearDelay??0,style:r.theme.tooltipStyle}}else if(r.internalProps.tooltip?.isShowOverflowTextTooltip){const o=r.getCellOverflowText(t,e),s=r.getCellRangeRelativeRect({col:t,row:e});o&&(i={content:n?`${n}\n ${o}`:o,referencePosition:{placement:bE.bottom,rect:s},disappearDelay:r.internalProps.tooltip.overflowTextTooltipDisappearDelay??0,style:r.theme.tooltipStyle})}i?this._bindToCell(t,e,i):this._unbindFromCell()}_getTooltipInstanceInfo(t,e){const i=this._table,r=this._tooltipInstances,n="bubble-tooltip";return r&&r[n]||r&&(r[n]=zN[n](i))}isBinded(t){return JSON.stringify(t)===JSON.stringify(this._attachInfo?.tooltipOptions)}}class WN{_table;_menuElement;constructor(t){this._table=t}release(){this.unbindMenuElement(),this._menuElement&&this._menuElement.release(),this._menuElement=void 0}_getMenuElement(){return this._menuElement||(this._menuElement=this.createMenuElementInternal()),this._menuElement}bindMenuElement(t,e,i){return this._getMenuElement().bindToCell(this._table,t,e,i)}unbindMenuElement(){this._getMenuElement().unbindFromCell()}pointInMenuElement(t,e){return this._getMenuElement().pointInMenuElement(t,e)}}const NN="vtable__menu-element",GN=`${NN}--hidden`,jN=`${NN}--shown`;class VN{_handler;_rootElement;_menuInstanceInfo;constructor(t){this._handler=new WL,this._rootElement=hN("div",[NN,GN]),this._rootElement.addEventListener("wheel",(t=>{t.stopPropagation()})),this._rootElement?.addEventListener("mousedown",(t=>{t.stopPropagation(),t.preventDefault()})),this._rootElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(GN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,n);t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(GN)||t.stopPropagation()}))}get rootElement(){return this._rootElement}release(){this.unbindFromCell();const t=this._rootElement;t?.parentElement&&t.parentElement.removeChild(t),this._handler.release(),delete this._rootElement}bindToCell(t,e,i,r){const n=this._rootElement;if(this._menuInstanceInfo=r,n?.classList.remove(jN),n?.classList.add(GN),this._canBindToCell(t,e,i)){n.innerHTML="",n.appendChild(r.content);if(this._bindCell(t,e,i,r.position,r.referencePosition))return n?.classList.add(jN),n?.classList.remove(GN),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(jN),t.classList.add(GN))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),n=t.getElement(),{top:o,bottom:s,left:a,right:l}=r;if(t.isFrozenCell(e,i))return!0;if(s<t.getFrozenRowsHeight()||l<t.getFrozenColsWidth()||a>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||o>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=n;return!(h<o)&&!(c<a)}_bindCell(t,e,i,r,n){const o=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(o){o.parentElement!==s&&s.appendChild(o),o.style.left="0px";const t=.8*a;o.style.maxWidth=`${t}px`;const e=o.clientWidth,i=o.clientHeight;let h,c;return r&&(h=r.x,c=r.y),n&&(h=n.rect.right-e,c=n.rect.bottom),c+i>l&&(c=l-i,h+=e-2),c<0&&(c/=2),o.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),o.style.left=`${h}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:n,width:o,height:s}=i.getBoundingClientRect();return t>r-5&&t<r+o+5&&e>n-5&&e<n+s+5}}class UN extends WN{createMenuElementInternal(){return new AN(this._table)}}let KN=class extends WN{createMenuElementInternal(){return new VN(this._table)}};const $N={"dropdown-menu":function(t){return new UN(t)},"context-menu":function(t){return new UN(t)},container:t=>new KN(t)};class YN{_table;_menuInstances;_attachInfo;constructor(t){this._table=t,this._menuInstances={},this._bindTableEvent(t)}release(){const t=this._menuInstances;for(const e in t)t[e].release();delete this._menuInstances,this._attachInfo=null}_bindToCell(t,e,i,r){const n=this._attachInfo,o=this._getMenuInstanceInfo(t,e,i,r);if(!n||o&&n.instance===o.instance||(n.instance?.unbindMenuElement(),this._attachInfo=null),!o)return;const{instance:s,info:a}=o;if(s&&s.bindMenuElement(t,e,a)){const i=this._table.getCellRange(t,e);this._attachInfo={range:i,instance:s}}}_unbindFromCell(){const t=this._attachInfo;if(!t)return;const{instance:e}=t;e?.unbindMenuElement(),this._attachInfo=null}_isBindToCell(t,e){const i=this._attachInfo;return!!i&&ML(i.range,t,e)}pointInMenuElement(t,e){if(!this._attachInfo)return!1;const i=this._attachInfo,{instance:r}=i;return r.pointInMenuElement(t,e)}_bindTableEvent(t){t.on(IL.DROPDOWN_ICON_CLICK,(t=>{this._attachInfo&&this._isBindToCell(t.col,t.row)?this._unbindFromCell():this._bindToCell(t.col,t.row,"dropdown-menu")})),t.on(IL.DROPDOWN_MENU_CLEAR,(t=>{this._unbindFromCell()})),t.on(IL.CONTEXTMENU_CELL,(e=>{if("html"===t.internalProps.menu?.renderMode){const i=t._getMouseAbstractPoint(e.event,!1);let r=null;i.inTable&&"function"==typeof t.internalProps.menu?.contextMenuItems?r=t.internalProps.menu.contextMenuItems(t.getHeaderField(e.col,e.row),e.row,e.col):i.inTable&&Array.isArray(t.internalProps.menu?.contextMenuItems)&&(r=t.internalProps.menu?.contextMenuItems),this._bindToCell(e.col,e.row,"context-menu",{content:r,position:{x:i.x,y:i.y}})}}))}_getMenuInstanceInfo(t,e,i,r){const n=this._table,o=this._menuInstances,s=function(t,e,i,r,n){const{lineHeight:o,textBaseline:s,textStick:a}=t._getCellStyle(e,i);let l=t.getCellRangeRelativeRect(t.getCellRange(e,i));a&&(l=t.getVisibleCellRangeRelativeRect({col:e,row:i}));let{left:h,right:c,bottom:d,top:u,width:g,height:p}=l;if(t.isHeader(e,i)&&({left:h,right:c,bottom:d,top:u,width:g,height:p}=t.internalProps.headerHelper.getDropDownIconRect(l,o,s||"middle")),n?.content)return{type:r,position:n.position,referencePosition:n.referencePosition??{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:n.content};if("dropdown-menu"===r){const{dropDownMenu:n=t.globalDropDownMenu,pivotInfo:o}=t._getHeaderLayoutMap(e,i);return{type:r,referencePosition:{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:n,pivotInfo:o}}return null}(n,t,e,i,r);if(!s)return null;return{instance:o&&o[i]||o&&(o[i]=$N[i](n)),type:i,info:s}}}class XN extends EventTarget{_table;_input;constructor(t,e){if(super(),this._table=t,"node"===YE.mode)return;const i=document.createElement("div");i.style.opacity="0",i.dataset.vtable="vtable",i.style.pointerEvents="none",i.classList.add("input-container");const r=this._input=document.createElement("input");i.appendChild(r),r.classList.add("table-focus-control"),r.dataset.vtable="vtable",r.readOnly=!0,e.appendChild(i)}focus(){this._input.focus({preventScroll:!0})}setFocusRect(t,e){const i=this._input;i.value=e,i.select();const r=t.top-this._table.scrollTop,n=t.left-this._table.scrollLeft;i.style.top=`${r.toFixed()}px`,i.style.left=`${n.toFixed()}px`,i.style.width=`${t.width.toFixed()}px`,i.style.height=`${t.height.toFixed()}px`}get input(){return this._input}release(){}}const qN={orient:"bottom",position:"middle",padding:30,title:{visible:!1,padding:0,textStyle:{fontSize:14,fill:"#000000",fontWeight:"normal"},space:12},item:{visible:!0,spaceCol:10,spaceRow:10,padding:2,background:{state:{selectedHover:{fill:"gray",fillOpacity:.7},unSelectedHover:{fill:"gray",fillOpacity:.2}}},shape:{space:4,state:{unSelected:{fillOpacity:.5}}},label:{space:4,style:{fill:"#89909D",fontSize:14},state:{unSelected:{fillOpacity:.5}}}},allowAllCanceled:!0,visible:!0};function ZN(t,e){const{title:i={},item:r={},pager:n={},background:o={},type:s,id:a,visible:l,orient:h,position:c,data:d,filter:u,regionId:g,regionIndex:p,seriesIndex:f,seriesId:m,padding:b,...y}=_t({},qN,t),v=y;return i.visible&&(v.title=yH(i)),ft(r.focusIconStyle)||vH(r.focusIconStyle),CH(r.shape),CH(r.label),CH(r.value),CH(r.background),gO(r.maxWidth)&&(r.maxWidth=Number(r.maxWidth.substring(0,r.maxWidth.length-1))*e.width/100),gO(r.width)&&(r.width=Number(r.width.substring(0,r.width.length-1))*e.width/100),gO(r.height)&&(r.height=Number(r.height.substring(0,r.height.length-1))*e.width/100),v.item=r,ft(n.textStyle)||vH(n.textStyle),CH(n.handler),v.pager=n,o.visible&&!ft(o.style)&&(_t(v,o.style),Z(o.padding)&&(v.padding=o.padding)),v}class JN{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=vt(t),this.orient=t.orient??"left",this.visible=t.visible??!0,this.position=t.position??"middle",this.selectedData=t.defaultSelected??null,this.createComponent(),this.initEvent()}createComponent(){const t=this.getLegendAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight}),e=new Tk(_t({},t,{defaultSelected:this.selectedData}));e.name="legend",this.legendComponent=e,this.table.scenegraph.stage.defaultLayer.appendChild(e),this.adjustTableSize(t)}resize(){this.legendComponent&&(this.legendComponent.setAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight}),this.adjustTableSize(this.legendComponent.attribute))}adjustTableSize(t){let e=isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,i=isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0;if(e<=0||i<=0)return;const r=this.table.tableNoFrameWidth,n=this.table.tableNoFrameHeight,o=II(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=o[3],a=0,e+=o[1]+o[3]):"top"===this.orient?(s=0,a=o[0],i+=o[0]+o[2]):"right"===this.orient?(s=r-e-o[1],a=0,e+=o[1]+o[3]):"bottom"===this.orient&&(s=0,a=n-i-o[2],i+=o[0]+o[2]);const l="bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",h=this.position;let c=0,d=0;"horizontal"===l?c="middle"===h?(r-e)/2:"end"===h?r-e-o[1]:o[3]:d="middle"===h?(n-i)/2:"end"===h?n-i-o[2]:o[0],this.legendComponent.setAttributes({dx:c,dy:d,x:s,y:a}),"left"===this.orient?(this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e),this.table.tableX+=Math.ceil(e)):"top"===this.orient?(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i),this.table.tableY+=Math.ceil(i)):"right"===this.orient?this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e):"bottom"===this.orient&&(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i))}getLegendAttributes(t){return{layout:"bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",items:this.getLegendItems(),maxWidth:t.width,maxHeight:t.height,...ZN(this.option,t)}}getLegendItems(){return this.option.data}initEvent(){this.legendComponent&&(this.legendComponent.addEventListener(Ck.legendItemClick,(t=>{const e=mt(t,"detail.currentSelected");this.table.fireListeners(IL.LEGEND_ITEM_CLICK,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(Ck.legendItemHover,(t=>{const e=mt(t,"detail");this.table.fireListeners(IL.LEGEND_ITEM_HOVER,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(Ck.legendItemUnHover,(t=>{const e=mt(t,"detail");this.table.fireListeners(IL.LEGEND_ITEM_UNHOVER,{model:this,value:e,event:t})})),this.legendComponent.addEventListener("legendItemAttributeUpdate",(t=>{this.table.scenegraph.updateNextFrame()})))}getLegendBounds(){return{width:isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,height:isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0}}release(){this.legendComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this.legendComponent),this.legendComponent=null}}const QN={orient:"right",position:"middle",padding:30,title:{visible:!1,padding:0,textStyle:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"titleFontColor"}},space:12},handler:{visible:!0},startText:{style:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"labelFontColor"}}},endText:{style:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"labelFontColor"}}},handlerText:{style:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"labelFontColor"}}}},tG={horizontal:{...QN,rail:{width:200,height:8,style:{fill:"rgba(0,0,0,0.04)"}}},vertical:{...QN,rail:{width:8,height:200,style:{fill:"rgba(0,0,0,0.04)"}}}},eG={horizontal:{sizeBackground:{fill:"#cdcdcd"},track:{style:{fill:"rgba(20,20,20,0.1)"}},rail:{width:200,height:4,style:{fill:"rgba(0,0,0,0.04)"}},...QN},vertical:{sizeBackground:{fill:"#cdcdcd"},track:{style:{fill:"rgba(20,20,20,0.1)"}},rail:{width:4,height:200,style:{fill:"rgba(0,0,0,0.04)"}},...QN}};function iG(t,e){const{title:i={},handler:r={},rail:n={},track:o={},startText:s,endText:a,handlerText:l,sizeBackground:h,background:c={},type:d,id:u,visible:g,orient:p,position:f,data:m,defaultSelected:b,field:y,filter:v,regionId:C,regionIndex:w,seriesIndex:x,seriesId:_,padding:S,...A}=_t({},("color"===t.type?tG:eG)["bottom"===t.orient||"top"===t.orient?"horizontal":"vertical"],t),M=A;return i.visible&&(M.title=yH(i)),M.showHandler=!1!==r.visible,ft(r.style)||(M.handlerStyle=vH(r.style)),Z(n.width)&&(M.railWidth=n.width),Z(n.height)&&(M.railHeight=n.height),ft(n.style)||(M.railStyle=vH(n.style)),ft(o.style)||(M.trackStyle=vH(o.style)),M.startText=CH(s),M.endText=CH(a),M.handlerText=CH(l),ft(h)||(M.sizeBackground=vH(h)),c.visible&&!ft(c.style)&&(_t(M,c.style),Z(c.padding)&&(M.padding=c.padding)),M}class rG{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=vt(t),this.orient=t.orient??"left",this.visible=t.visible??!0,this.position=t.position??"middle",this.selectedData=t.defaultSelected??null,this.createComponent(),this.initEvent()}createComponent(){const t=this.getLegendAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight});let e;e="color"===this.option.type?new Ek(_t({},t,{slidable:!0})):new Hk(_t({},t,{slidable:!0})),e.name="legend",this.legendComponent=e,this.table.scenegraph.stage.defaultLayer.appendChild(e),this.adjustTableSize(t)}resize(){this.legendComponent&&(this.legendComponent.setAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight}),this.adjustTableSize(this.legendComponent.attribute))}adjustTableSize(t){let e=isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,i=isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0;if(e<=0||i<=0)return;const r=this.table.tableNoFrameWidth,n=this.table.tableNoFrameHeight,o=II(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=o[3],a=0,e+=o[1]+o[3]):"top"===this.orient?(s=0,a=o[0],i+=o[0]+o[2]):"right"===this.orient?(s=r-e-o[1],a=0,e+=o[1]+o[3]):"bottom"===this.orient&&(s=0,a=n-i-o[2],i+=o[0]+o[2]);const l="bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",h=this.position;let c=0,d=0;"horizontal"===l?c="middle"===h?(r-e)/2:"end"===h?r-e-o[1]:o[3]:d="middle"===h?(n-i)/2:"end"===h?n-i-o[2]:o[0],this.legendComponent.setAttributes({dx:c,dy:d,x:s,y:a}),"left"===this.orient?(this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e),this.table.tableX+=Math.ceil(e)):"top"===this.orient?(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i),this.table.tableY+=Math.ceil(i)):"right"===this.orient?this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e):"bottom"===this.orient&&(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i))}getLegendAttributes(t){const e="bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",i="horizontal"===e?"bottom":this.orient;return{...iG(this.option),layout:e,align:i,min:this.option.min,max:this.option.max,value:this.option.value,["color"===this.option.type?"colors":"sizeRange"]:"color"===this.option.type?this.option.colors:this.option.sizeRange}}initEvent(){this.legendComponent&&this.legendComponent.addEventListener("change",(t=>{const e=mt(t,"detail.value");this.table.fireListeners(IL.LEGEND_CHANGE,{model:this,value:e,event:t}),this.table.scenegraph.updateNextFrame()}))}getLegendBounds(){return{width:isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,height:isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0}}release(){this.legendComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this.legendComponent),this.legendComponent=null}}function nG(t,e){return"color"===t.type||"size"===t.type?new rG(t,e):new JN(t,e)}class oG{data;cumulativeSum;difference;totalSum;table;isUpdate=!1;_keys=[];_sorted=!1;constructor(t){this.data=new Map,this._keys.length=0,this.cumulativeSum=new Map,this.difference=new Map,this.totalSum=0,this.table=t}get length(){return this.data.size}clear(){this._keys=[],this.data.clear(),this.cumulativeSum.clear(),this.difference.clear(),this.totalSum=0}clearRange(){this.cumulativeSum.clear(),this.difference.clear()}add(t,e){const i=this.table.getRowHeight(t);this.data.has(t)||(this._keys.push(t),this._sorted=!1),this.data.set(t,e),this.totalSum+=e,this.updateDifference(t,e-i)}remove(t){if(this.data.has(t)){const e=this.data.get(t);this.data.delete(t);const i=this._keys.indexOf(t);-1!==i&&this._keys.splice(i,1),this.totalSum-=e;const r=this.table.getRowHeight(t);this.updateDifference(t,r-e)}}put(t,e){if(this.data.has(t)){const i=this.data.get(t);if(i===e)return;this.data.set(t,e);const r=e-i;this.totalSum+=r,this.updateDifference(t,r)}else this.add(t,e)}get(t){return this.data.get(t)}has(t){return this.data.has(t)}_sort(){const{_keys:t}=this;this._sorted||(t.sort(((t,e)=>t<e?-1:t>e?1:0)),this._sorted=!0)}updateDifference(t,e){const i=this.difference.get(t)??0;this.difference.set(t,i+e),this.update()}getSumInRange(t,e){return this.calculatePrefixSum(e)-this.calculatePrefixSum(t-1)}updateCumulativeSum(t,e){for(const[i,r]of this.cumulativeSum)i>=t&&this.cumulativeSum.set(i,r+e)}calculatePrefixSum(t){if(t<0)return 0;if(this.cumulativeSum.has(t)){let e=this.cumulativeSum.get(t);for(const[i,r]of this.difference)i<=t&&(e+=r);return e}return this.dealDiffenence(),this.getCumulativeSum(t)}getCumulativeSum(t){let e=0;for(let i=t;i>=0;i--){if(this.cumulativeSum.has(i)){e+=this.cumulativeSum.get(i);break}e+=this.data.get(i)??this.table.getRowHeight(i)}return this.cumulativeSum.set(t,e),e}update(){this.isUpdate||(this.isUpdate=!0,setTimeout((()=>{this.dealDiffenence(),this.isUpdate=!1}),0))}dealDiffenence(){for(const[t]of this.cumulativeSum)for(const[e,i]of this.difference)if(t>=e){const e=this.cumulativeSum.get(t);this.cumulativeSum.set(t,e+i)}this.difference.clear()}insert(t,e){for(let e=t;e<=this.getLastIndex();e++)this.cumulativeSum.delete(e);const i=this.getLastIndex()+1;this.adjustOrder(t,t+1,i-t),Z(e)&&this.put(t,e)}getLastIndex(){return this._sort(),this._keys[this._keys.length-1]}delLast(){const t=this.getLastIndex();this.remove(t)}delete(t){if(!this.has(t))return;for(let e=t;e<=this.getLastIndex();e++)this.cumulativeSum.delete(e);const e=this.getLastIndex();this.adjustOrder(t+1,t,e-t),this.delLast()}adjustOrder(t,e,i){this.clearRange(),this._sort();const{_keys:r}=this;if(t>e){const n=[];for(let o=sG(r,t+i-1);o>=0;o--){const s=r[o];if(s>=t)n.push(this.get(s));else if(e<=s&&s<t)this.put(s+i,this.get(s));else if(s<e)break}for(let t=0;t<i;t++)this.put(e+t,n[i-1-t])}const{length:n}=r;if(t<e){const o=[];for(let s=sG(r,t);s<n;s++){const n=r[s];if(n>=t&&n<t+i)o.push(this.get(n));else if(t+i<=n&&n<=e)this.put(n-i,this.get(n));else if(n>e)break}for(let t=0;t<i;t++)this.put(e+t,o[t])}}exchangeOrder(t,e,i,r,n){const{_keys:o}=this;if(this._sorted||(o.sort(((t,e)=>t<e?-1:t>e?1:0)),this._sorted=!0),t>i){const r=[],s=[];for(let n=sG(o,i);n<t+e;n++){const i=o[n];i>=t&&i<t+e?s.push(this.get(i)):r.push(this.get(i))}for(let t=0;t<e;t++)this.put(n+t,s[t]);for(let t=0;t<r.length;t++)this.put(n+e+t,r[t])}else{const s=[],a=[];for(let n=sG(o,t);n<i+r;n++){const i=o[n];i>=t&&i<t+e?a.push(this.get(i)):s.push(this.get(i))}for(let t=0;t<e;t++)this.put(n+t,a[t]);for(let e=0;e<s.length;e++)this.put(t+e,s[e])}}}function sG(t,e){let i=0,r=t.length-1;for(;i<=r;){const n=Math.floor((i+r)/2);if(t[n]===e)return n;t[n]>e?r=n-1:i=n+1}return r<0?0:r}class aG{dragReorderIconName;_table;constructor(t){this._table=t;const e=NO();this.dragReorderIconName=e[_E.dragReorderIconName]}getIcons(t,e){return[this.dragReorderIconName]}}class lG{table;customCellStyle;customCellStyleArrangement;constructor(t,e,i){this.table=t,this.customCellStyle=e,this.customCellStyleArrangement=i}getCustomCellStyle(t,e){const i=this.getCustomCellStyleId(t,e);if(i){const t=this.getCustomCellStyleOption(i);return t?.style}}getCustomCellStyleId(t,e){let i;return this.customCellStyleArrangement.forEach((r=>{r.cellPosition.range?r.cellPosition.range.start.col<=t&&r.cellPosition.range.end.col>=t&&r.cellPosition.range.start.row<=e&&r.cellPosition.range.end.row>=e&&(i=r.customStyleId):r.cellPosition.col===t&&r.cellPosition.row===e&&(i=r.customStyleId)})),i}getCustomCellStyleOption(t){return this.customCellStyle.find((e=>e.id===t))}registerCustomCellStyle(t,e){const i=this.customCellStyle.findIndex((e=>e.id===t));-1===i?this.customCellStyle.push({id:t,style:e}):this.customCellStyle[i]={id:t,style:e},this.customCellStyleArrangement.forEach((e=>{const i=e.cellPosition;if(e.customStyleId===t)if(i.range)for(let t=i.range.start.col;t<=i.range.end.col;t++)for(let e=i.range.start.row;e<=i.range.end.row;e++)this.table.scenegraph.updateCellContent(t,e);else this.table.scenegraph.updateCellContent(i.col,i.row)})),this.table.scenegraph.updateNextFrame()}arrangeCustomCellStyle(t,e){const i=this.customCellStyleArrangement.findIndex((e=>e.cellPosition.range&&t.range?e.cellPosition.range.start.col===t.range.start.col&&e.cellPosition.range.start.row===t.range.start.row&&e.cellPosition.range.end.col===t.range.end.col&&e.cellPosition.range.end.row===t.range.end.row:e.cellPosition.col===t.col&&e.cellPosition.row===t.row));if(-1===i?this.customCellStyleArrangement.push({cellPosition:{col:t.col,row:t.row,range:t.range},customStyleId:e}):this.customCellStyleArrangement[i].customStyleId=e,t.range)for(let e=t.range.start.col;e<=t.range.end.col;e++)for(let i=t.range.start.row;i<=t.range.end.row;i++)this.table.scenegraph.updateCellContent(e,i);else this.table.scenegraph.updateCellContent(t.col,t.row);this.table.scenegraph.updateNextFrame()}updateCustomCell(t,e){this.customCellStyle.length=0,this.customCellStyleArrangement.length=0,t.forEach((t=>{this.registerCustomCellStyle(t.id,t.style)})),e.forEach((t=>{this.arrangeCustomCellStyle(t.cellPosition,t.customStyleId)}))}hasCustomCellStyle(t){return this.customCellStyle.some((e=>e.id===t))}}function hG(t,e){t=t.clone();for(const i in e){const r=e[i];r&&(t[`_${i}`]=r)}return t}class cG{sharedVar;sizeIncludeParent=!1;rowExpandLevel;hierarchyType;tree={id:0,dimensionKey:"",value:"",children:[],level:-1,levelSpan:1,startIndex:0,size:0,startInTotal:0,hierarchyState:void 0};totalLevel=0;dimensionKeys=new GL;dimensionKeysIncludeVirtual=new GL;cache=new Map;constructor(t,e,i="grid",r=void 0){this.sizeIncludeParent=null!=r,this.rowExpandLevel=r,this.hierarchyType=i,this.sharedVar=e,this.reset(t)}reset(t,e=!1){this.cache.clear(),this.dimensionKeys=new GL,this.dimensionKeysIncludeVirtual=new GL,this.tree.children=t,this.setTreeNode(this.tree,0,this.tree)}setTreeNode(t,e,i){t.startIndex=e,t.startInTotal=(i.startInTotal??0)+t.startIndex,(t.dimensionKey??t.indicatorKey)&&(t.virtual||this.dimensionKeys.contain(t.indicatorKey?QL:t.dimensionKey)||this.dimensionKeys.put(t.level,t.indicatorKey?QL:t.dimensionKey),this.dimensionKeysIncludeVirtual.contain(t.indicatorKey?QL:t.dimensionKey)||this.dimensionKeysIncludeVirtual.put(t.level,t.indicatorKey?QL:t.dimensionKey),t.id||(t.id=++this.sharedVar.seqId));let r=t.dimensionKey&&this.sizeIncludeParent?1:0;const n=t.children||t.columns;return"grid"===this.hierarchyType?n?.length>=1?n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)})):r=1:t.hierarchyState===yE.expand&&n?.length>=1?n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)})):t.hierarchyState===yE.collapse&&n?.length>=1?n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),this.setTreeNode(e,r,t)})):!t.hierarchyState&&t.level+1<this.rowExpandLevel&&(n?.length>=1||!0===n)?(t.hierarchyState=yE.expand,n?.length>=1&&n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)}))):n?.length>=1||!0===n?(t.hierarchyState=yE.collapse,n?.length>=1&&n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),this.setTreeNode(e,r,t)}))):(t.hierarchyState=yE.none,r=1),t.size=r,r}getTreePath(t,e=30){const i=[];return this.searchPath(t,this.tree,i,e),i.shift(),i}getTreePathByCellIds(t){const e=[];let i=this.tree.children;for(let r=0;r<t.length;r++){const n=t[r],o=this.findNodeById(i,n);if(!o)break;e.push(o),i=o.children}return e}findNodeById(t,e){return t.find((t=>t.id===e))}searchPath(t,e,i,r){if(!e)return;if(t<e.startIndex||t>=e.startIndex+e.size)return;if(i.push(e),!e.children||0===e.children.length||e.level>=r)return;const n=t-e.startIndex;if(this.cache.has(e.level+1)){const t=this.cache.get(e.level+1);if(n>=t.startIndex&&n<t.startIndex+t.size)return void this.searchPath(n,t,i,r)}let o=0,s=e.children.length-1;for(;o<=s;){const t=Math.floor((o+s)/2),a=e.children[t];if(n>=a.startIndex&&n<a.startIndex+a.size){this.cache.set(a.level,a);const t=[];this.cache.forEach(((e,i)=>{i>a.level&&t.push(i)})),t.forEach((t=>{this.cache.delete(t)})),this.searchPath(n,a,i,r);break}n<a.startIndex?s=t-1:o=t+1}}movePosition(t,e,i){let r,n,o;const s=(a,l)=>{if(void 0!==n&&void 0!==o)return;a.level===t&&(a.startInTotal===e&&(n=l),a.startInTotal<=i&&i<=a.startInTotal+a.size-1&&(o=l));const h=a.children||a.columns;if(h&&a.level<t){r=a;for(let t=0;t<h.length;t++)(e>=h[t].startInTotal&&e<=h[t].startInTotal+h[t].size||i>=h[t].startInTotal&&i<=h[t].startInTotal+h[t].size)&&s(h[t],t)}};s(this.tree,0);const a=r.children||r.columns,l=a.splice(n,1);l.unshift(o,0),Array.prototype.splice.apply(a,l)}getCopiedTree(){const t=vt(this.tree.children);return fG(t),t}}function dG(t,e){e?.forEach((e=>{const i={dimensionKey:e.dimensionKey,indicatorKey:e.indicatorKey,value:e.value,hierarchyState:e.hierarchyState,children:void 0,virtual:e.virtual??!1};t.push(i),e.children&&(i.children=[],dG(i.children,e.children))}))}function uG(t,e){let i=0;return t?.forEach((t=>{e?i++:t.children&&0!==t.children.length||i++,t.children&&(i+=uG(t.children,e))})),i}function gG(t,e,i,r,n,o){const s=t.id,a=o.rowsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey))??o.columnsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey)),l=o.indicatorsDefine?.find((e=>"string"!=typeof e&&(t.indicatorKey?e.indicatorKey===t.indicatorKey:e.title===t.value))),h={id:s,title:t.value??l?.title,field:t.dimensionKey,style:"function"==typeof(l??a)?.headerStyle?(l??a)?.headerStyle:Object.assign({},(l??a)?.headerStyle),headerType:l?.headerType??a?.headerType??"text",headerIcon:l?.headerIcon??a?.headerIcon,define:Object.assign({},t,l??Object.assign({},a,{sort:void 0})),fieldFormat:l?.headerFormat??a?.headerFormat,dropDownMenu:l?.dropDownMenu??a?.dropDownMenu,pivotInfo:{value:t.value,dimensionKey:t.dimensionKey,isPivotCorner:!1},width:a?.width,minWidth:a?.minWidth,maxWidth:a?.maxWidth,showSort:l?.showSort??a?.showSort,sort:l?.sort,description:a?.description};l?(l.customRender&&(t.customRender=l.customRender),Z(o._indicators?.find((t=>t.indicatorKey===l.indicatorKey)))||o._indicators?.push({id:++o.sharedVar.seqId,indicatorKey:l.indicatorKey,field:l.indicatorKey,fieldFormat:l?.format,cellType:l?.cellType??l?.columnType??"text",chartModule:"chartModule"in l?l.chartModule:null,chartSpec:"chartSpec"in l?l.chartSpec:null,sparklineSpec:"sparklineSpec"in l?l.sparklineSpec:null,style:l?.style,icon:l?.icon,define:Object.assign({},t,l,{dragHeader:a?.dragHeader}),width:l?.width,minWidth:l?.minWidth,maxWidth:l?.maxWidth,disableColumnResize:l?.disableColumnResize})):t.indicatorKey&&(Z(o._indicators?.find((e=>e.indicatorKey===t.indicatorKey)))||o._indicators?.push({id:++o.sharedVar.seqId,indicatorKey:t.indicatorKey,field:t.indicatorKey,cellType:"text",define:Object.assign({},t)})),i[s]=h,o._headerObjects[s]=h,e[n][o.colIndex]=s;for(let t=n-1;t>=0;t--)e[t][o.colIndex]=r[t];if(t.levelSpan>1)for(let i=1;i<t.levelSpan;i++)e[n+i]||(e[n+i]=[]),e[n+i][o.colIndex]=s;if(t.children?.length>=1)o._addHeaders(e,n+(t.levelSpan??1),t.children??[],[...r,...Array(t.levelSpan??1).fill(s)],i);else{for(let t=n+1;t<e.length;t++)e[t][o.colIndex]=s;o.colIndex++}}function pG(t,e,i,r,n,o,s,a,l){const h=t.id,c=a.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey)),d={id:h,title:t.value,field:t.dimensionKey,style:t.level+1===o||"function"==typeof c?.headerStyle?c?.headerStyle:Object.assign({},c?.headerStyle,{textAlign:"left"}),headerType:c?.headerType??"text",headerIcon:c?.headerIcon,define:Object.assign(t,{linkJump:c?.linkJump,linkDetect:c?.linkDetect,templateLink:c?.templateLink,keepAspectRatio:c?.keepAspectRatio??!1,imageAutoSizing:c?.imageAutoSizing,headerCustomRender:c?.headerCustomRender,headerCustomLayout:c?.headerCustomLayout,dragHeader:c?.dragHeader,disableHeaderHover:!!c?.disableHeaderHover,disableHeaderSelect:!!c?.disableHeaderSelect}),fieldFormat:c?.headerFormat,dropDownMenu:c?.dropDownMenu,pivotInfo:{value:t.value,dimensionKey:t.dimensionKey,isPivotCorner:!1},hierarchyLevel:t.level,dimensionTotalLevel:o,hierarchyState:t.hierarchyState,width:c?.width,minWidth:c?.minWidth,maxWidth:c?.maxWidth,parentCellId:r[r.length-1]};i[h]=d,l._headerObjects[h]=d,e[n][l.colIndex]=h;for(let t=n-1;t>=0;t--)e[t][l.colIndex]=r[t];if(t.hierarchyState===yE.expand&&t.children?.length>=1)s&&l.colIndex++,l._addHeadersForTreeMode(e,n,t.children??[],[...r,h],o,s&&t.hierarchyState===yE.expand,a,i);else{s&&l.colIndex++;for(let t=n+1;t<e.length;t++)e[t][l.colIndex]=h}}function fG(t){for(let e=0;e<t.length;e++){const i=t[e];delete i.level,delete i.startIndex,delete i.id,delete i.levelSpan,delete i.size,delete i.startInTotal;const r=i.children||i.columns;r&&fG(r)}}function mG(t,e){let i,r;e.columnTree&&(!1!==t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.columnTree=bG(t.internalProps.columnTree,e.indicators)),i=new cG(t.internalProps.columnTree??[],t.layoutNodeId)),e.rowTree&&(!1===t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.rowTree=bG(t.internalProps.rowTree,e.indicators)),r=new cG(t.internalProps.rowTree??[],t.layoutNodeId,t.options.rowHierarchyType,"tree"===t.options.rowHierarchyType?t.options.rowExpandLevel??1:void 0));const n=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],o=i?.dimensionKeys?.count?i.dimensionKeys.valueArr():e.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],s=e.indicators?.reduce(((e,i)=>("string"==typeof i?e.push(i):(e.push(i.indicatorKey),(i.chartSpec||i.sparklineSpec)&&(t.internalProps.dataConfig?.aggregationRules?t.internalProps.dataConfig.aggregationRules.find((t=>t.indicatorKey===i.indicatorKey))||t.internalProps.dataConfig.aggregationRules.push({field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:vE.NONE}):t.internalProps.dataConfig?t.internalProps.dataConfig.aggregationRules=[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:vE.NONE}]:t.internalProps.dataConfig={aggregationRules:[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:vE.NONE}]})),e)),[])??[];return"tree"===e.rowHierarchyType&&(e.extensionRows?.length??0)>=1&&e.extensionRows?.forEach((t=>{const e=[];t.rows.forEach((t=>{"string"==typeof t?e.push(t):e.push(t.dimensionKey)})),n.push(...e)})),{rowKeys:n,columnKeys:o,indicatorKeys:s,columnDimensionTree:i,rowDimensionTree:r}}function bG(t,e){const i=(t,r)=>{t.forEach((t=>{t.indicatorKey||r||t.children?.length&&t.children?t.children&&Array.isArray(t.children)&&i(t.children,r||!!t.indicatorKey):t.children=e?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey}))}))};return t?.length?i(t,!1):t=e?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey})),t}function yG(t,e){const i=function(t,e){if(!t.internalProps.frozenRowCount)return null;let{scrollTop:i}=t;const r=t.internalProps.frozenRowCount;for(let n=0;n<r;n++){const r=t.getRowHeight(n),o=i+r;if(o>e)return{top:i,row:n,bottom:o,height:r};i=o}return null}(e,t);if(i)return i;let r=wG(t,e);return r||(r={top:-1,row:-1,bottom:-1,height:-1}),r}function vG(t,e){const i=function(t,e){if(!t.internalProps.frozenColCount)return null;let{scrollLeft:i}=t;const r=t.internalProps.frozenColCount;for(let n=0;n<r;n++){const r=t.getColWidth(n),o=i+r;if(o>e)return{left:i,col:n,right:o,width:r};i=o}return null}(e,t);if(i)return i;let r=CG(t,e);return r||(r={left:-1,col:-1,right:-1,width:1}),r}function CG(t,e){if(0===t)return{left:0,col:0,right:0,width:0};const i=function(t,e){if(e._colRangeWidthsMap.get("$0$"+(e.colCount-1))){let i=0,r=e.colCount-1;for(;r-i>1;){const n=Math.floor((i+r)/2);if(t<e._colRangeWidthsMap.get(`$0$${n}`))r=n;else{if(!(t>e._colRangeWidthsMap.get(`$0$${n}`)))return n;i=n}}return r}return Math.min(Math.ceil(t/e.internalProps.defaultColWidth),e.colCount-1)}(t,e),r=e.getColsWidth(0,i);return t>=r?((i,r)=>{let n=r-e.getColWidth(i);const{colCount:o}=e.internalProps;for(let r=i;r<o;r++){const i=e.getColWidth(r),o=n+i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{left:n,col:r,right:o,width:i};n=o}return null})(i,r):((i,r)=>{let n=r;for(let r=i;r>=0;r--){const i=e.getColWidth(r),o=n-i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{left:o,col:r,right:n,width:i};n=o}return null})(i,r)}function wG(t,e){if(0===t)return{top:0,row:0,bottom:0,height:0};const i=function(t,e){let i=e.internalProps.defaultRowHeight;e._rowRangeHeightsMap.get("$0$"+(e.rowCount-1))&&(i=e._rowRangeHeightsMap.get("$0$"+(e.rowCount-1))/e.rowCount);return Math.min(Math.ceil(t/i),e.rowCount-1)}(t,e),r=e.getRowsHeight(0,i);return t>=r?((i,r)=>{let n=r-e.getRowHeight(i);const{rowCount:o}=e.internalProps;for(let r=i;r<o;r++){const i=e.getRowHeight(r),o=n+i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{top:n,row:r,bottom:o,height:i};n=o}return null})(i,r):((i,r)=>{let n=r;for(let r=i;r>=0;r--){const i=e.getRowHeight(r),o=n-i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{top:o,row:r,bottom:n,height:i};n=o}return null})(i,r)}function xG(t,e,i){if(0===t)return{left:0,col:0,right:0,width:0};if(e&&t>i.tableNoFrameWidth-i.getRightFrozenColsWidth()&&t<i.tableNoFrameWidth)for(let e=0;e<i.rightFrozenColCount;e++)if(t>i.tableNoFrameWidth-i.getColsWidth(i.colCount-e-1,i.colCount-1))return{col:i.colCount-e-1,left:void 0,right:void 0,width:void 0};return CG(t,i)}function _G(t,e,i){if(0===t)return{top:0,row:0,bottom:0,height:0};if(e&&t>i.tableNoFrameHeight-i.getBottomFrozenRowsHeight()&&t<i.tableNoFrameHeight)for(let e=0;e<i.rightFrozenColCount;e++)if(t>i.tableNoFrameHeight-i.getRowsHeight(i.rowCount-e-1,i.rowCount-1))return{row:i.rowCount-e-1,top:void 0,bottom:void 0,height:void 0};return wG(t,i)}const{toBoxArray:SG}=LL,{isTouchEvent:AG}=EL,MG=/^\$(\d+)\$(\d+)$/;!function(){if("node"===YE.mode)return;const t=document.createElement("style");t.id="vtable-style-styleSheet",t.textContent="\n.vtable .input-container {\n\tposition: absolute;\n\ttop:0px;\n}\n.vtable .table-scrollable {\n\tposition: absolute;\n\toverflow: scroll;\n}\n.vtable .table-scrollable::-webkit-scrollbar-button{\n\tbackground-color: transparent;\n}\n.vtable .table-scrollable::-webkit-scrollbar-track-piece{\n\tbackground-color: transparent;\n}\n.vtable .table-scrollable::-webkit-scrollbar-corner {\n\tbackground-color: transparent;\n}\n.vtable .table-scrollable::-webkit-scrollbar-thumb {\n\tborder-radius : 4px;\n\tbackground-color : rgba(100, 100, 100, .5);\n}\n\n.vtable .table-scroll-end-point {\n\topacity: 0;\n\tposition: relative;\n}\n.vtable {\n\t/* 设置overflow: auto 应该是为了滚动条的某个问题 但设置了auto之后 dom的下拉菜单只能显示在vtable节点中 超出会截断;现在去掉auto 暂时滚动条的问题没有发现 */\n\t/* overflow: auto; */\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n\ttext-align: left;\n -webkit-font-smoothing:auto;\n\n overflow: hidden; // for react-vtable dom custom element\n}\n.vtable .table-component-container {\n pointer-events: none;\n overflow: hidden;\n position: absolute;\n top: 0px;\n left: 0px;\n}\n.vtable > canvas {\n\tposition: absolute;\n\twidth: 0;\n\theight: 0;\n}\n.vtable .table-focus-control {\n\tposition: relative !important;\n\twidth: 1px;\n\theight: 1px;\n\topacity: 0;\n\tpadding: 0;\n\tmargin: 0;\n\tbox-sizing: border-box;\n\tpointer-events: none;\n\tmax-width: 500px;\n\tmax-height: 500px;\n\tfloat: none !important;\n}\n.vtable input.table-focus-control::-ms-clear {\n\tvisibility: hidden;\n}\n.vtable input.table-focus-control.composition {\n\topacity: 1;\n\tmax-width: none;\n\tmax-height: none;\n}\n",document.head.appendChild(t)}();const TG={};class RG extends RE{internalProps;showFrozenIcon=!0;padding;globalDropDownMenu;tableNoFrameWidth;tableNoFrameHeight;tableX;tableY;_widthMode;_heightMode;_autoFillWidth;_autoFillHeight;_widthAdaptiveMode;_heightAdaptiveMode;customRender;canvasWidth;canvasHeight;_vDataSet;scenegraph;stateManager;eventManager;_pixelRatio;static get EVENT_TYPE(){return IL}options;version="1.4.2-alpha.4";pagination;id=`VTable${Date.now()}`;headerStyleCache;bodyStyleCache;bodyBottomStyleCache;container;isReleased=!1;_chartEventMap={};customCellStylePlugin;columnWidthComputeMode;reactCustomLayout;_hasAutoImageColumn;constructor(t,e={}){if(super(),!t&&"node"!==e.mode)throw new Error("vtable's container is undefined");const{frozenColCount:i=0,defaultRowHeight:r=40,defaultHeaderRowHeight:n,defaultColWidth:o=80,defaultHeaderColWidth:s,widthMode:a="standard",heightMode:l="standard",autoFillWidth:h=!1,autoFillHeight:c=!1,widthAdaptiveMode:d="only-body",heightAdaptiveMode:u="only-body",keyboardOptions:g,eventOptions:p,rowSeriesNumber:f,columnResizeMode:m,rowResizeMode:b="none",dragHeaderMode:y,showFrozenIcon:v,allowFrozenColCount:C,padding:w,hover:x,menu:_,select:S,customRender:A,pixelRatio:M=tN,renderChartAsync:T,renderChartAsyncBatchCount:R,mode:B,modeParams:P,canvasWidth:k,canvasHeight:E,overscrollBehavior:L,limitMinWidth:H,limitMinHeight:I,clearDOM:O=!0}=e;this.container=t,this.options=e,this._widthMode=a,this._heightMode=l,this._widthAdaptiveMode=d,this._heightAdaptiveMode=u,this._autoFillWidth=h,this._autoFillHeight=c,this.customRender=A,this.padding={top:0,right:0,left:0,bottom:0},w&&("number"==typeof w?(this.padding.top=w,this.padding.left=w,this.padding.bottom=w,this.padding.right=w):(w.top&&(this.padding.top=w.top),w.bottom&&(this.padding.bottom=w.bottom),w.left&&(this.padding.left=w.left),w.right&&(this.padding.right=w.right))),this.tableNoFrameWidth=0,this.tableNoFrameHeight=0,this.canvasWidth=k,this.canvasHeight=E,this.columnWidthComputeMode=e.columnWidthComputeMode??"normal";const F=this.internalProps={};if(void 0!==v&&(this.showFrozenIcon=v),"number"==typeof C&&C<=0&&(this.showFrozenIcon=!1),"node"!==YE.mode&&(F.element=function(t){const e=document.createElement("div");e.setAttribute("tabindex","0"),e.classList.add("vtable"),e.style.outline="none",e.style.margin=`${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`;const i=(e.offsetWidth||e.parentElement?.offsetWidth||1)-1,r=(e.offsetHeight||e.parentElement?.offsetHeight||1)-1;return e.style.width=i&&i-t.left-t.right+"px"||"0px",e.style.height=r&&r-t.top-t.bottom+"px"||"0px",e}(this.padding),F.focusControl=new XN(this,F.element),F.canvas=document.createElement("canvas"),F.element.appendChild(F.canvas),F.context=F.canvas.getContext("2d"),e.customConfig?.createReactContainer&&(F.bodyDomContainer=document.createElement("div"),F.bodyDomContainer.classList.add("table-component-container"),F.element.appendChild(F.bodyDomContainer),F.headerDomContainer=document.createElement("div"),F.headerDomContainer.classList.add("table-component-container"),F.element.appendChild(F.headerDomContainer))),F.handler=new WL,at(this.options.resizeTime)&&(F.handler.resizeTime=this.options.resizeTime),F.pixelRatio=M,F.frozenColCount=i,F.defaultRowHeight=r,F.defaultHeaderRowHeight=n??r,F.defaultColWidth=o,F.defaultHeaderColWidth=s??o,F.keyboardOptions=g,F.eventOptions=p,F.rowSeriesNumber=f,F.columnResizeMode=m,F.rowResizeMode=b,F.dragHeaderMode=y??"none",F.renderChartAsync=T,Wz(R),F.overscrollBehavior=L??"auto",F._rowHeightsMap=new oG(this),F._rowRangeHeightsMap=new Map,F._colRangeWidthsMap=new Map,F._widthResizedColMap=new Set,F._heightResizedRowMap=new Set,this.colWidthsMap=new GL,this.colContentWidthsMap=new GL,this.colWidthsLimit={},F.calcWidthContext={_:F,get full(){return"node"===YE.mode?k/(M??1):this._.canvas.width/(this._.context.pixelRatio??window.devicePixelRatio)}},F.cellTextOverflows={},F.focusedTable=!1,F.theme=fH.of(e.theme??fH.DEFAULT),F.theme.isPivot=this.isPivotTable(),t?(O&&(t.innerHTML=""),t.appendChild(F.element),this._updateSize()):this._updateSize(),this.options=e,F.theme=fH.of(e.theme??fH.DEFAULT),F.theme.isPivot=this.isPivotTable(),F.bodyHelper=new lN(this),F.headerHelper=new BN(this),F.rowSeriesNumberHelper=new aG(this),F.autoWrapText=e.autoWrapText,F.enableLineBreak=e.enableLineBreak,F.allowFrozenColCount=e.allowFrozenColCount??0,F.limitMaxAutoWidth=e.limitMaxAutoWidth??450,F.limitMinWidth=null!=H?"number"==typeof H?H:H?10:0:10,F.limitMinHeight=null!=I?"number"==typeof I?I:I?10:0:10,this._vDataSet=new LH,this.scenegraph=new RW(this),this.stateManager=new jW(this),this.eventManager=new nN(this),e.legends)if(F.legends=[],Array.isArray(e.legends)){for(let t=0;t<e.legends.length;t++)F.legends.push(nG(e.legends[t],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else F.legends.push(nG(e.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});F.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},e.tooltip),"html"===F.tooltip.renderMode&&(F.tooltipHandler=new DN(this,F.tooltip.confine)),F.menu=Object.assign({renderMode:"html"},e.menu),Array.isArray(e.menu?.dropDownMenuHighlight)&&this.setDropDownMenuHighlight(e.menu?.dropDownMenuHighlight),Array.isArray(e.menu?.defaultHeaderMenuItems)&&(this.globalDropDownMenu=e.menu.defaultHeaderMenuItems),"html"===F.menu.renderMode&&(F.menuHandler=new YN(this)),this.headerStyleCache=new Map,this.bodyStyleCache=new Map,this.bodyBottomStyleCache=new Map,F.stick={changedCells:new Map},F.customMergeCell=e.customMergeCell,this.customCellStylePlugin=new lG(this,e.customCellStyle??[],e.customCellStyleArrangement??[])}throttleInvalidate=function(t,e){let i=null;return function(...r){i||(i=setTimeout((()=>{t.apply(this,r),i=null}),e))}}(this.render.bind(this),200);getContainer(){return this.container}getElement(){return this.internalProps.element}get canvas(){return this.internalProps.canvas}resize(){this._updateSize(),this.internalProps.legends?.forEach((t=>{t?.resize()})),this.internalProps.title&&this.internalProps.title.resize(),this.internalProps.emptyTip&&this.internalProps.emptyTip.resize(),this.scenegraph.resize()}get rowCount(){return this.internalProps.rowCount}set rowCount(t){this.internalProps.rowCount=t}get colCount(){return this.internalProps.colCount??0}set colCount(t){this.internalProps.colCount=t}get frozenColCount(){return this.internalProps?.layoutMap?.frozenColCount??this.internalProps?.frozenColCount??0}set frozenColCount(t){t>=this.colCount&&(t=0),this.internalProps.frozenColCount=t,this.options.frozenColCount=t,this.tableNoFrameWidth-this.getColsWidth(0,t-1)<=120&&(this.internalProps.frozenColCount=0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount)}setFrozenColCount(t){t>=this.colCount&&(t=0),this.internalProps.frozenColCount=t,this.options.frozenColCount=t,this.tableNoFrameWidth-this.getColsWidth(0,t-1)<=120&&(this.internalProps.frozenColCount=0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount)}_setFrozenColCount(t){t>=this.colCount&&(t=0),this.internalProps.frozenColCount=t}_resetFrozenColCount(){this.options.frozenColCount&&(this.tableNoFrameWidth-this.getColsWidth(0,this.options.frozenColCount-1)<=120?this._setFrozenColCount(0):this.frozenColCount!==this.options.frozenColCount&&this._setFrozenColCount(this.options.frozenColCount))}get frozenRowCount(){return this.internalProps?.layoutMap?.frozenRowCount??this.internalProps?.frozenRowCount??0}set frozenRowCount(t){this.internalProps.frozenRowCount=t}get rightFrozenColCount(){return this.internalProps?.layoutMap?.rightFrozenColCount??this.internalProps?.rightFrozenColCount??0}set rightFrozenColCount(t){this.scenegraph.dealWidthRightFrozen(t)}get bottomFrozenRowCount(){return this.internalProps?.layoutMap?.bottomFrozenRowCount??this.internalProps?.bottomFrozenRowCount??0}set bottomFrozenRowCount(t){this.scenegraph.dealWidthBottomFrozen(t)}get defaultRowHeight(){return this.internalProps.defaultRowHeight}set defaultRowHeight(t){this.internalProps.defaultRowHeight=t,this.options.defaultRowHeight=t}get defaultHeaderRowHeight(){return this.internalProps.defaultHeaderRowHeight}set defaultHeaderRowHeight(t){this.internalProps.defaultHeaderRowHeight=t,this.options.defaultHeaderRowHeight=t}get defaultColWidth(){return this.internalProps.defaultColWidth}set defaultColWidth(t){this.internalProps.defaultColWidth=t,this.options.defaultColWidth=t}get defaultHeaderColWidth(){return this.internalProps.defaultHeaderColWidth}set defaultHeaderColWidth(t){this.internalProps.defaultHeaderColWidth=t,this.options.defaultHeaderColWidth=t}get colWidthsMap(){return this.internalProps._colWidthsMap}set colWidthsMap(t){this.internalProps._colWidthsMap=t}get colContentWidthsMap(){return this.internalProps._colContentWidthsMap}set colContentWidthsMap(t){this.internalProps._colContentWidthsMap=t}get _colRangeWidthsMap(){return this.internalProps._colRangeWidthsMap}set _colRangeWidthsMap(t){this.internalProps._colRangeWidthsMap=t}get _rowRangeHeightsMap(){return this.internalProps._rowRangeHeightsMap}set _rowRangeHeightsMap(t){this.internalProps._rowRangeHeightsMap=t}get rowHeightsMap(){return this.internalProps._rowHeightsMap}set rowHeightsMap(t){this.internalProps._rowHeightsMap=t}get colWidthsLimit(){return this.internalProps._colWidthsLimit}set colWidthsLimit(t){this.internalProps._colWidthsLimit=t}get keyboardOptions(){return this.internalProps.keyboardOptions??null}set keyboardOptions(t){this.internalProps.keyboardOptions=t??void 0}get eventOptions(){return this.internalProps.eventOptions??null}set eventOptions(t){this.internalProps.eventOptions=t??void 0}get widthMode(){return this._widthMode}set widthMode(t){t!==this._widthMode&&(this._widthMode=t,this.options.widthMode=t)}get heightMode(){return this._heightMode}set heightMode(t){t!==this._heightMode&&(this._heightMode=t,this.options.heightMode=t)}get autoFillWidth(){return this._autoFillWidth}set autoFillWidth(t){t!==this._autoFillWidth&&(this._autoFillWidth=t)}get autoFillHeight(){return this._autoFillHeight}set autoFillHeight(t){t!==this._autoFillHeight&&(this._autoFillHeight=t)}get widthAdaptiveMode(){return this._widthAdaptiveMode}set widthAdaptiveMode(t){t!==this._widthAdaptiveMode&&(this._widthAdaptiveMode=t)}get heightAdaptiveMode(){return this._heightAdaptiveMode}set heightAdaptiveMode(t){t!==this._heightAdaptiveMode&&(this._heightAdaptiveMode=t)}_colWidthDefineToPxWidth(t){return"auto"===t?0:bO(this,t)}_getColWidthLimits(t){const e=this.colWidthsLimit[t];if(!e)return null;const i={};return e.min&&(i.min=bO(this,e.min),i.minDef=e.min),e.max&&(i.max=bO(this,e.max),i.maxDef=e.max),i}_adjustColWidth(t,e){const i=this._getColWidthLimits(t);return Math.max(function(t,e){return t?t.min&&t.min>e?t.min:t.max&&t.max<e?t.max:e:e}(i,e),0)}setPixelRatio(t){if(t!==this.internalProps.pixelRatio){this.internalProps.pixelRatio=t;const e=this.options.canvasWidth;this.internalProps.calcWidthContext={_:this.internalProps,get full(){return"node"===YE.mode?e/(t??1):this._.canvas.width/(this._.context.pixelRatio??window.devicePixelRatio)}},this.scenegraph.setPixelRatio(t)}}_updateSize(){const{padding:t}=this;let e=0,i=0;if("browser"===YE.mode){const r=this.getElement();let n=0,o=0;if(r.parentElement){const t=r.parentElement.style||window.getComputedStyle(r.parentElement);n=r.parentElement.offsetWidth-parseInt(t.paddingLeft||"0px",10)-parseInt(t.paddingRight||"0px",10),o=r.parentElement.offsetHeight-parseInt(t.paddingTop||"0px",10)-parseInt(t.paddingBottom||"0px",20)}const s=n??0,a=o??0;r.style.width=s&&s-t.left-t.right+"px"||"0px",r.style.height=a&&a-t.top-t.bottom+"px"||"0px";const{canvas:l}=this.internalProps;e=l.parentElement?.offsetWidth??0,i=l.parentElement?.offsetHeight??0,this?.scenegraph?.stage?this.scenegraph.stage.resize(e,i):(l.style.width="",l.style.height="",l.width=e,l.height=i,l.style.width=`${e}px`,l.style.height=`${i}px`),this.internalProps.bodyDomContainer&&(this.internalProps.bodyDomContainer.style.width=`${e}px`,this.internalProps.bodyDomContainer.style.height=`${i}px`),this.internalProps.headerDomContainer&&(this.internalProps.headerDomContainer.style.width=`${e}px`,this.internalProps.headerDomContainer.style.height=`${i}px`)}else"node"===YE.mode&&(e=this.canvasWidth-1,i=this.canvasHeight-1);const r=Math.floor(e-XE(this.getTheme().scrollStyle)),n=Math.floor(i-XE(this.getTheme().scrollStyle));if(this.internalProps.theme?.frameStyle){const t=SG(this.internalProps.theme.frameStyle?.borderLineWidth??[null]),e=SG(this.internalProps.theme.frameStyle?.shadowBlur??[0]);this.theme.frameStyle?.innerBorder?(this.tableX=0,this.tableY=0,this.tableNoFrameWidth=r-(e[1]??0),this.tableNoFrameHeight=n-(e[2]??0)):(this.tableX=(t[3]??0)+(e[3]??0),this.tableY=(t[0]??0)+(e[0]??0),this.tableNoFrameWidth=r-((t[1]??0)+(e[1]??0))-((t[3]??0)+(e[3]??0)),this.tableNoFrameHeight=n-((t[0]??0)+(e[0]??0))-((t[2]??0)+(e[2]??0)))}}get rowHierarchyType(){return"grid"}getColsWidth(t,e){if(t>e)return 0;t=Math.max(t,0),e=Math.min(e,(this.colCount??1/0)-1);const i=this._colRangeWidthsMap.get(`$${t}$${e}`);if(null!=i)return i;const r=this._colRangeWidthsMap.get(`$${t}$${e-1}`);if(null!=r){const i=r+this.getColWidth(e);return t>=0&&e>=0&&!Number.isNaN(i)&&this._colRangeWidthsMap.set(`$${t}$${e}`,Math.round(i)),Math.round(i)}let n=0;for(let i=t;i<=e;i++)n+=this.getColWidth(i);return t>=0&&e>=0&&this._colRangeWidthsMap.set(`$${t}$${e}`,Math.round(n)),Math.round(n)}getRowHeight(t){if(Z(this.rowHeightsMap.get(t))){if(this.options.customConfig?._disableColumnAndRowSizeRound){const e=this.rowHeightsMap.get(t);let i;return i=t<this.frozenRowCount?this.rowHeightsMap.getSumInRange(0,t):t>=this.rowCount-this.bottomFrozenRowCount?this.rowHeightsMap.getSumInRange(t,this.rowCount-1):this.rowHeightsMap.getSumInRange(this.frozenRowCount,t),i=Number(i.toFixed(2)),Number.isInteger(i)?Math.ceil(e):Math.floor(e)}return this.rowHeightsMap.get(t)}const e=this.getDefaultRowHeight(t);return at(e)?e:this.defaultRowHeight}getDefaultColumnWidth(t){return this.isRowHeader(t,0)||this.isCornerHeader(t,0)?Array.isArray(this.defaultHeaderColWidth)?this.defaultHeaderColWidth[t]??this.defaultColWidth:this.defaultHeaderColWidth:this.isRightFrozenColumn(t,this.columnHeaderLevelCount)&&this.isPivotTable()?Array.isArray(this.defaultHeaderColWidth)?this.defaultHeaderColWidth[this.rowHeaderLevelCount-this.rightFrozenColCount]??this.defaultColWidth:this.defaultHeaderColWidth:this.defaultColWidth}getDefaultRowHeight(t){return this.isColumnHeader(0,t)||this.isCornerHeader(0,t)||this.isSeriesNumberInHeader(0,t)?Array.isArray(this.defaultHeaderRowHeight)?this.defaultHeaderRowHeight[t]??this.internalProps.defaultRowHeight:this.defaultHeaderRowHeight:this.isBottomFrozenRow(t)?Array.isArray(this.defaultHeaderRowHeight)?this.defaultHeaderRowHeight[this.columnHeaderLevelCount>0?this.columnHeaderLevelCount-this.bottomFrozenRowCount:0]??this.internalProps.defaultRowHeight:this.defaultHeaderRowHeight:this.internalProps.defaultRowHeight}_setRowHeight(t,e,i){this.rowHeightsMap.put(t,this.options.customConfig?._disableColumnAndRowSizeRound?e:Math.round(e)),i&&this._clearRowRangeHeightsMap(t)}setRowHeight(t,e){this.scenegraph.setRowHeight(t,e),this.internalProps._heightResizedRowMap.add(t)}getRowsHeight(t,e){if(t>e||0===this.rowCount)return 0;t=Math.max(t,0),e=Math.min(e,(this.rowCount??1/0)-1);let i=0;if("standard"!==this.heightMode||this.autoFillHeight||!this.internalProps.layoutMap||this.hasAutoImageColumn()||0!==this.internalProps._heightResizedRowMap.size){if(this.options.customConfig?._disableColumnAndRowSizeRound){const i=this.rowHeightsMap.getSumInRange(t,e);let r;return r=e<this.frozenRowCount?this.rowHeightsMap.getSumInRange(0,e):e>=this.rowCount-this.bottomFrozenRowCount?this.rowHeightsMap.getSumInRange(e,this.rowCount-1):this.rowHeightsMap.getSumInRange(this.frozenRowCount,e),r=Number(r.toFixed(2)),Number.isInteger(r)?Math.ceil(i):Math.floor(i)}i=this.rowHeightsMap.getSumInRange(t,e)}else{for(let r=t;r<Math.min(e+1,this.columnHeaderLevelCount);r++)i+=this.getRowHeight(r);e>=this.columnHeaderLevelCount&&(i+=this.defaultRowHeight*(Math.min(e,this.rowCount-this.bottomFrozenRowCount-1)-Math.max(this.columnHeaderLevelCount,t)+1));for(let t=this.rowCount-this.bottomFrozenRowCount;t<e+1;t++)i+=this.getRowHeight(t)}return Math.round(i)}getColWidthDefined(t){const{layoutMap:e}=this.internalProps;if("autoWidth"===this.widthMode)return"auto";const{width:i}=e?.getColumnWidthDefined(t)??{};return"number"==typeof i&&i<=0?0:i||this.getDefaultColumnWidth(t)}getColWidthDefinedNumber(t){const e=this.getColWidthDefined(t);return this._adjustColWidth(t,this._colWidthDefineToPxWidth(e))}isAutoRowHeight(t){return"autoHeight"===this.heightMode||t>=0&&t<this.columnHeaderLevelCount&&"auto"===this.getDefaultRowHeight(t)}getColWidth(t){const e=this.colWidthsMap.get(t)??this.getDefaultColumnWidth(t);return"adaptive"===this.widthMode&&"number"==typeof e||this.transpose&&"number"==typeof e?this._colWidthDefineToPxWidth(e):this._adjustColWidth(t,this._colWidthDefineToPxWidth(e))}_setColWidth(t,e,i,r){this.colWidthsMap.put(t,"number"==typeof e?Math.round(e):e),i&&this._clearColRangeWidthsMap(t),r||this.stateManager.checkFrozen()}setColWidth(t,e){this.scenegraph.setColWidth(t,e),this.internalProps._widthResizedColMap.add(t)}_clearColRangeWidthsMap(t){if("number"!=typeof t)this._colRangeWidthsMap.clear();else{const e=this._colRangeWidthsMap.keys();for(const i of e){const e=MG.exec(i);if(e){const r=Number(e[1]),n=Number(e[2]);t>=r&&t<=n&&this._colRangeWidthsMap.delete(i)}}}}_clearRowRangeHeightsMap(t){this.rowHeightsMap.clearRange()}_getColContentWidth(t){return Number(this.colContentWidthsMap.get(t))}_setColContentWidth(t,e){this.colContentWidthsMap.put(t,e)}getAllRowsHeight(){if(this.internalProps.rowCount<=0)return 0;return this.getRowsHeight(0,this.internalProps.rowCount-1)}getAllColsWidth(){if(this.internalProps.colCount<=0)return 0;return this.getColsWidth(0,this.internalProps.colCount-1)}getMaxColWidth(t){const e=this.colWidthsLimit[t];let i=(e&&e.max)??1/0;return"string"==typeof i&&(i=bO(this,i)),i}setMaxColWidth(t,e){(this.colWidthsLimit[t]||(this.colWidthsLimit[t]={})).max=e}getMinColWidth(t){const e=this.colWidthsLimit[t];let i=(e&&e.min)??0;return"string"==typeof i&&(i=bO(this,i)),i}setMinColWidth(t,e){(this.colWidthsLimit[t]||(this.colWidthsLimit[t]={})).min=e}getCellRect(t,e){const i=this.isFrozenCell(t,e);let r;const n=this.getColWidth(t);let o;r=i&&i.col&&this.isRightFrozenColumn(t,e)?this.getAllColsWidth()<=this.tableNoFrameWidth?this.getColsWidth(0,t-1)||0:this.tableNoFrameWidth-(this.getColsWidth(t,this.colCount-1)??0):this.getColsWidth(0,t-1)||0;const s=this.getRowHeight(e);return o=i&&i.row&&this.isBottomFrozenRow(t,e)?this.getAllRowsHeight()<=this.tableNoFrameHeight?this.getRowsHeight(0,e-1):this.tableNoFrameHeight-(this.getRowsHeight(e,this.rowCount-1)??0):this.getRowsHeight(0,e-1),new jL(Math.round(r),Math.round(o),Math.round(n),Math.round(s))}getMergeCellRect(t,e){const i=this.getCellRange(t,e),r=this.getColsWidth(0,i.start.col-1)||0,n=this.getColsWidth(i.start.col,i.end.col),o=this.getRowsHeight(0,i.start.row-1)||0,s=this.getRowsHeight(i.start.row,i.end.row);return new jL(Math.round(r),Math.round(o),Math.round(n),Math.round(s))}getCellRelativeRect(t,e){const i=this.isFrozenCell(t,e);let r=!0,n=!0;i?.col&&i?.row?(r=!1,n=!1):i?.col?r=!1:i?.row&&(n=!1);const o=this.getCellRect(t,e);return this._toRelativeRect(o,r,n)}getCellRangeRelativeRect(t){if(t.start){const e=this.isFrozenCell(t.start.col,t.start.row);let i=!0,r=!0;return e?.col&&e?.row?(i=!1,r=!1):e?.col?i=!1:e?.row&&(r=!1),this._toRelativeRect(this.getCellsRect(t.start.col,t.start.row,t.end.col,t.end.row),i,r)}const e=this.getCellRange(t.col,t.row),i=this.isFrozenCell(t.col,t.row);let r=!0,n=!0;return i?.col&&i?.row?(r=!1,n=!1):i?.col?r=!1:i?.row&&(n=!1),this._toRelativeRect(this.getCellsRect(e.start.col,e.start.row,e.end.col,e.end.row),r,n)}getVisibleCellRangeRelativeRect(t){let e;return e=t.start?t:this.getCellRange(t.col,t.row),this._getVisiableRect(this.getCellRangeRelativeRect(t),e)}_getVisiableRect(t,e){const i=e.start.col>=this.frozenColCount?Math.max(t.left,this.frozenColCount>=1?this.getColsWidth(0,this.frozenColCount-1):0):t.left,r=Math.min(t.right,this.tableNoFrameWidth),n=t.copy();n.left=i,n.right=r;const o=e.start.row>=this.frozenRowCount?Math.max(t.top,this.frozenRowCount>=1?this.getRowsHeight(0,this.frozenRowCount-1):0):t.top,s=Math.min(t.bottom,this.tableNoFrameHeight);return n.top=o,n.bottom=s,n}getCellsRect(t,e,i,r){let n=this.getColsWidth(0,t-1)||0,o=this.getColsWidth(t,i);const s=this.scrollLeft;this.isLeftFrozenColumn(t)&&this.isRightFrozenColumn(i)?o=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-n:this.isLeftFrozenColumn(t)&&!this.isLeftFrozenColumn(i)?o=Math.max(o-s,this.getColsWidth(t,this.frozenColCount-1)):!this.isRightFrozenColumn(t)&&this.isRightFrozenColumn(i)?(n=Math.min(n-s,this.tableNoFrameWidth-this.getRightFrozenColsWidth()),o=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-n):this.isRightFrozenColumn(t)&&(n=this.tableNoFrameWidth-(this.getColsWidth(t,this.colCount-1)??0));let a=this.getRowsHeight(0,e-1),l=this.getRowsHeight(e,r);const h=this.scrollTop;return this.isTopFrozenRow(e)&&this.isBottomFrozenRow(r)?l=this.tableNoFrameHeight-(this.getRowsHeight(e+1,this.rowCount-1)??0)-a:this.isTopFrozenRow(e)&&!this.isTopFrozenRow(r)?l=Math.max(l-h,this.getRowsHeight(e,this.frozenRowCount-1)):!this.isBottomFrozenRow(e)&&this.isBottomFrozenRow(r)?(a=Math.min(a-h,this.tableNoFrameHeight-this.getBottomFrozenRowsHeight()),l=this.tableNoFrameHeight-(this.getRowsHeight(e+1,this.rowCount-1)??0)-a):this.isBottomFrozenRow(e)&&(a=this.tableNoFrameHeight-(this.getRowsHeight(e,this.rowCount-1)??0)),new jL(Math.round(n),Math.round(a),Math.round(o),Math.round(l))}getCellsRectWidth(t,e,i,r){const n=this.isFrozenCell(t,e),o=this.isFrozenCell(i,r);let s=this.getColsWidth(t,i);if(n&&n.col){const e=this.scrollLeft;o&&o.col||(s-=e,s=Math.max(s,this.getColsWidth(t,this.frozenColCount-1)))}return s}getCellRangeRect(t){if(t.start)return this.getCellsRect(t.start.col,t.start.row,t.end.col,t.end.row);const e=this.getCellRange(t.col,t.row);return this.getCellsRect(e.start.col,e.start.row,e.end.col,e.end.row)}getCellRangeRectWidth(t){if(t.start)return this.getCellsRectWidth(t.start.col,t.start.row,t.end.col,t.end.row);const e=this.getCellRange(t.col,t.row);return this.getCellsRectWidth(e.start.col,e.start.row,e.end.col,e.end.row)}isFrozenCell(t,e){const i=this.isFrozenRow(e),r=this.isFrozenColumn(t);return i||r?{row:i,col:r}:null}getRowAt(t){return yG(t,this)}getColAt(t){return vG(t,this)}getCellAt(t,e){return function(t,e,i){const r=yG(e,i),{row:n,top:o,bottom:s,height:a}=r,l=vG(t,i),{col:h,left:c,right:d,width:u}=l;return{row:n,col:h,rect:{left:c,right:d,top:o,bottom:s,width:u,height:a}}}(t,e,this)}getCellAtRelativePosition(t,e){return function(t,e,i){t-=i.tableX;let r=!1;(e-=i.tableY)>i.tableNoFrameHeight-i.getBottomFrozenRowsHeight()&&e<i.tableNoFrameHeight&&(r=!0);let n=!1;t>i.tableNoFrameWidth-i.getRightFrozenColsWidth()&&t<i.tableNoFrameWidth&&(n=!0);const o=xG(n?t:t+i.scrollLeft,n,i),s=_G(r?e:e+i.scrollTop,r,i),{row:a,top:l,bottom:h,height:c}=s,{col:d,left:u,right:g,width:p}=o;return{row:a,col:d,rect:{left:u,right:g,top:l,bottom:h,width:p,height:c}}}(t,e,this)}_checkRowCol(t,e){return t>=0&&t<this.colCount&&e>=0&&e<this.rowCount}_makeVisibleCell(t,e){if(this._checkRowCol(t,e)){const i=this.isFrozenCell(t,e);if(i&&i.col&&i.row)return;const r=this.getCellRect(t,e),n=function(t){let e=0,i=0;t.frozenColCount>0&&(e=t.getFrozenColsWidth()),t.rightFrozenColCount>0&&(i=t.getRightFrozenColsWidth());let r=0,n=0;return t.frozenRowCount>0&&(r=t.getFrozenRowsHeight()),t.bottomFrozenRowCount>0&&(n=t.getBottomFrozenRowsHeight()),new jL(t.scrollLeft+e,t.scrollTop+r,t.tableNoFrameWidth-e-i,t.tableNoFrameHeight-r-n)}(this);if(n.contains(r))return;i&&i.col||this.getColsWidth(0,this.frozenColCount-1)+r.width>this.canvas.width||(r.left<n.left?this.scrollLeft-=n.left-r.left:n.right<r.right&&(this.scrollLeft-=n.right-r.right)),i&&i.row||this.getRowsHeight(0,this.frozenRowCount-1)+r.height>this.canvas.height||(r.top<n.top?this.scrollTop-=n.top-r.top:n.bottom<r.bottom&&(this.scrollTop-=n.bottom-r.bottom))}}render(){this.scenegraph.renderSceneGraph()}renderAsync(){return this.scenegraph.updateNextFrame(),new Promise(((t,e)=>{setTimeout((()=>{t()}),0)}))}_toRelativeRect(t,e=!0,i=!0){const r=t.copy(),n=this.getVisibleRect();return r.offsetLeft(this.tableX-(e?n.left:0)),r.offsetTop(this.tableY-(i?n.top:0)),r}getVisibleRect(){const{scrollTop:t,scrollLeft:e}=this,i=this.tableNoFrameWidth,r=this.tableNoFrameHeight;return new jL(e,t,i,r)}get visibleRowCount(){const{frozenRowCount:t}=this,e=this.getVisibleRect(),i=t>0?e.top+this.getRowsHeight(0,t-1):e.top,r=this.getTargetRowAt(i);if(!r)return 0;const n=Math.max(r.top>=i?r.row:r.row+1,t);let o=this.getRowsHeight(0,n-1),s=0;const{rowCount:a}=this;for(let t=n;t<a;t++){const i=o+this.getRowHeight(t);if(e.bottom<i)break;s++,o=i}return s}getBodyVisibleCellRange(){const{scrollTop:t,scrollLeft:e}=this,i=this.getFrozenRowsHeight(),r=this.getFrozenColsWidth(),n=this.getBottomFrozenRowsHeight(),o=this.getRightFrozenColsWidth(),{row:s}=this.getRowAt(t+i+1),{col:a}=this.getColAt(e+r+1),l=this.getAllRowsHeight()>this.tableNoFrameHeight?this.getRowAt(t+this.tableNoFrameHeight-1-n).row:this.rowCount-1,h=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(e+this.tableNoFrameWidth-1-o).col:this.colCount-1;return h<0||l<0?null:{rowStart:s,colStart:a,rowEnd:l,colEnd:h}}getBodyVisibleRowRange(){const{scrollTop:t}=this,e=this.getFrozenRowsHeight(),i=this.getBottomFrozenRowsHeight(),{row:r}=this.getRowAt(t+e+1),n=this.getAllRowsHeight()>this.tableNoFrameHeight?this.getRowAt(t+this.tableNoFrameHeight-1-i).row:this.rowCount-1;return n<0?null:{rowStart:r,rowEnd:n}}getBodyVisibleColRange(){const{scrollLeft:t}=this,e=this.getFrozenColsWidth(),i=this.getRightFrozenColsWidth(),{col:r}=this.getColAt(t+e+1),n=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(t+this.tableNoFrameWidth-1-i).col:this.colCount-1;return n<0?null:{colStart:r,colEnd:n}}get visibleColCount(){const{frozenColCount:t}=this,e=this.getVisibleRect(),i=t>0?e.left+this.getColsWidth(0,t-1):e.left,r=this.getTargetColAt(i);if(!r)return 0;const n=Math.max(r.left>=i?r.col:r.col+1,t);let o=this.getColsWidth(0,n-1),s=0;const{colCount:a}=this;for(let t=n;t<a;t++){const i=o+this.getColWidth(t);if(e.right<i)break;s++,o=i}return s}get scrollTop(){return this.stateManager.scroll.verticalBarPos}set scrollTop(t){this.stateManager.setScrollTop(t)}get scrollLeft(){return this.stateManager.scroll.horizontalBarPos}set scrollLeft(t){this.stateManager.setScrollLeft(t)}getScrollLeft(){return this.scrollLeft}getScrollTop(){return this.scrollTop}setScrollLeft(t){this.scrollLeft=Math.ceil(t)}setScrollTop(t){this.scrollTop=Math.ceil(t)}getCellOverflowText(t,e){return this.scenegraph.getCellOverflowText(t,e)}addReleaseObj(t){if(!t||!t.release||"function"!=typeof t.release)throw new Error("not releaseObj!");(this.internalProps.releaseList=this.internalProps.releaseList||[]).push(t)}dispose(){this.release()}release(){const t=this.internalProps;t.tooltipHandler?.release?.(),t.menuHandler?.release?.(),DO.clearAll(),super.release?.(),t.handler?.release?.(),this.eventManager.release(),t.focusControl?.release?.(),t.legends?.forEach((t=>{t?.release()})),t.title?.release(),t.title=null,t.emptyTip?.release(),t.emptyTip=null,t.layoutMap.release(),t.releaseList&&(t.releaseList.forEach((t=>t?.release?.())),t.releaseList=null),this.scenegraph.stage.release(),this.scenegraph.proxy.release();const{parentElement:e}=t.element;e&&e.removeChild(t.element),this.editorManager?.editingEditor?.onEnd?.(),this.isReleased=!0,this.scenegraph=null,this.internalProps=null}fireListeners(t,e){return super.fireListeners(t,e)}updateOption(t){this.options=t,this._hasAutoImageColumn=void 0;const{frozenColCount:e=0,defaultRowHeight:i=40,defaultHeaderRowHeight:r,defaultColWidth:n=80,defaultHeaderColWidth:o=80,keyboardOptions:s,eventOptions:a,rowSeriesNumber:l,columnResizeMode:h,rowResizeMode:c="none",dragHeaderMode:d,showFrozenIcon:u,allowFrozenColCount:g,padding:p,hover:f,menu:m,select:b,pixelRatio:y,widthMode:v,heightMode:C,autoFillWidth:w,autoFillHeight:x,widthAdaptiveMode:_,heightAdaptiveMode:S,customRender:A,renderChartAsync:M,renderChartAsyncBatchCount:T,overscrollBehavior:R,limitMinWidth:B,limitMinHeight:P}=t;y&&y!==this.internalProps.pixelRatio&&(this.internalProps.pixelRatio=y),p&&("number"==typeof p?(this.padding.top=p,this.padding.left=p,this.padding.bottom=p,this.padding.right=p):(p.top&&(this.padding.top=p.top),p.bottom&&(this.padding.bottom=p.bottom),p.left&&(this.padding.left=p.left),p.right&&(this.padding.right=p.right))),this.showFrozenIcon="boolean"!=typeof u||u,"number"==typeof g&&g<=0&&(this.showFrozenIcon=!1),this.widthMode=v??"standard",this.heightMode=C??"standard",this._widthAdaptiveMode=_??"only-body",this._heightAdaptiveMode=S??"only-body",this.autoFillWidth=w??!1,this.autoFillHeight=x??!1,this.customRender=A;const k=this.internalProps;if("node"!==YE.mode&&function(t,e){t.style.margin=`${e.top}px ${e.right}px ${e.bottom}px ${e.left}px`;const i=(t.offsetWidth||t.parentElement?.offsetWidth||1)-1,r=(t.offsetHeight||t.parentElement?.offsetHeight||1)-1;t.style.width=i&&i-e.left-e.right+"px"||"0px",t.style.height=r&&r-e.top-e.bottom+"px"||"0px"}(k.element,this.padding),this.columnWidthComputeMode=t.columnWidthComputeMode??"normal",k.frozenColCount=e,k.defaultRowHeight=i,k.defaultHeaderRowHeight=r??i,k.defaultColWidth=n,k.defaultHeaderColWidth=o??n,k.keyboardOptions=s,k.eventOptions=a,k.rowSeriesNumber=l,k.columnResizeMode=h,k.rowResizeMode=c,k.dragHeaderMode=d??"none",k.renderChartAsync=M,Wz(T),k.overscrollBehavior=R??"auto",k.cellTextOverflows={},k._rowHeightsMap=new oG(this),k._rowRangeHeightsMap=new Map,k._colRangeWidthsMap=new Map,k._widthResizedColMap=new Set,k._heightResizedRowMap=new Set,this.colWidthsMap=new GL,this.colContentWidthsMap=new GL,this.colWidthsLimit={},k.stick.changedCells.clear(),k.theme=fH.of(t.theme??fH.DEFAULT),k.theme.isPivot=this.isPivotTable(),this.scenegraph.updateStageBackground(),k.autoWrapText=t.autoWrapText,k.enableLineBreak=t.enableLineBreak,k.allowFrozenColCount=t.allowFrozenColCount??0,k.limitMaxAutoWidth=t.limitMaxAutoWidth??450,k.limitMinWidth=null!=B?"number"==typeof B?B:B?10:0:10,k.limitMinHeight=null!=P?"number"==typeof P?P:P?10:0:10,this._vDataSet=new LH,k.legends?.forEach((t=>{t?.release()})),k.title?.release(),k.title=null,k.emptyTip?.release(),k.emptyTip=null,k.layoutMap.release(),this.scenegraph.clearCells(),this.scenegraph.updateComponent(),this.stateManager.updateOptionSetState(),this._updateSize(),this.eventManager.updateEventBinder(),t.legends)if(k.legends=[],Array.isArray(t.legends)){for(let e=0;e<t.legends.length;e++)k.legends.push(nG(t.legends[e],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else k.legends.push(nG(t.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});k.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},t.tooltip),"html"!==k.tooltip.renderMode||k.tooltipHandler||(k.tooltipHandler=new DN(this,k.tooltip.confine)),k.menu=Object.assign({renderMode:"html"},t.menu),Array.isArray(t.menu?.dropDownMenuHighlight)&&this.setDropDownMenuHighlight(t.menu?.dropDownMenuHighlight),Array.isArray(t.menu?.defaultHeaderMenuItems)&&(this.globalDropDownMenu=t.menu.defaultHeaderMenuItems),"html"!==k.menu.renderMode||k.menuHandler||(k.menuHandler=new YN(this)),this.clearCellStyleCache(),this.clearColWidthCache(),this.clearRowHeightCache(),k.customMergeCell=t.customMergeCell,this.customCellStylePlugin.updateCustomCell(t.customCellStyle??[],t.customCellStyleArrangement??[])}renderWithRecreateCells(){const t={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(t.col,t.row),this.render()}getFrozenRowsHeight(){return this.getRowsHeight(0,this.frozenRowCount-1)}getFrozenColsWidth(){return this.getColsWidth(0,this.frozenColCount-1)}getBottomFrozenRowsHeight(){if(this.bottomFrozenRowCount>0){let t=0;for(let e=this.rowCount-this.bottomFrozenRowCount;e<=this.rowCount-1;e++)t+=this.getRowHeight(e);return t}return 0}getRightFrozenColsWidth(){if(this.rightFrozenColCount>0){let t=0;for(let e=this.colCount-this.rightFrozenColCount;e<=this.colCount-1;e++)t+=this.getColWidth(e);return t}return 0}getDrawRange(){const t=Math.min(this.tableNoFrameWidth,this.getAllColsWidth()),e=Math.min(this.tableNoFrameHeight,this.getAllRowsHeight());return new jL(this.tableX,this.tableY,t,e)}_getMouseAbstractPoint(t,e=!0){const i=this;let r;if(!t)return{inTable:!1,x:void 0,y:void 0};r=AG(t)?t.changedTouches[0]:t;const n=r.clientX||r.pageX+window.scrollX,o=r.clientY||r.pageY+window.scrollY,s=i.internalProps.canvas.getBoundingClientRect();let a=!0;s.right<=n&&(a=!1),s.bottom<=o&&(a=!1);const l=s.width,h=l/(this.canvas.offsetWidth||l),c=s.height,d=c/(this.canvas.offsetHeight||c);return{x:(n-s.left)/h+(e?i.scrollLeft:0),y:(o-s.top)/d+(e?i.scrollTop:0),inTable:a}}getTheme(){return this.internalProps.theme}getTargetColAt(t){return CG(t,this)}getTargetRowAt(t){return wG(t,this)}getTargetColAtConsiderRightFrozen(t,e){return xG(t,e,this)}getTargetRowAtConsiderBottomFrozen(t,e){return _G(t,e,this)}clearSelected(){this.stateManager.updateSelectPos(-1,-1)}selectCell(t,e,i,r){const n=!!this.stateManager.select.ranges?.length;this.stateManager.updateSelectPos(t,e,i,r),this.stateManager.endSelectCells(!0,n)}selectCells(t){const{scrollLeft:e,scrollTop:i}=this;t.forEach(((t,e)=>{t.start.col===t.end.col&&t.start.row===t.end.row?this.stateManager.updateSelectPos(t.start.col,t.start.row,!1,e>=1,!1,!1,!0):(this.stateManager.updateSelectPos(t.start.col,t.start.row,!1,e>=1,!1,!1,!0),this.stateManager.updateInteractionState(fE.grabing),this.stateManager.updateSelectPos(t.end.col,t.end.row,!1,e>=1,!1,!1,!0)),this.stateManager.endSelectCells(!1,!1),this.stateManager.updateInteractionState(fE.default)})),this.setScrollTop(i),this.setScrollLeft(e)}get recordsCount(){return this.records?.length}get allowFrozenColCount(){return this.internalProps.allowFrozenColCount}get rowHeaderLevelCount(){return this.internalProps.layoutMap.rowHeaderLevelCount}get columnHeaderLevelCount(){return this.internalProps.layoutMap.columnHeaderLevelCount}get records(){return this.internalProps.records}get dataSource(){return this.internalProps.dataSource}set dataSource(t){this.scenegraph.clearCells(),mO(this,t),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.render()}get autoWrapText(){return this.internalProps.autoWrapText}set autoWrapText(t){this.internalProps.autoWrapText=t,this.options.autoWrapText=t}get enableLineBreak(){return this.internalProps.enableLineBreak}set enableLineBreak(t){this.internalProps.enableLineBreak=t,this.options.enableLineBreak=t}updateAutoWrapText(t){this.internalProps.autoWrapText!==t&&(this.internalProps.autoWrapText=t,this.options.autoWrapText=t,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.render())}get theme(){return this.internalProps.theme}set theme(t){this.internalProps.theme=fH.of(t??fH.DEFAULT),this.internalProps.theme.isPivot=this.isPivotTable(),this.options.theme=t}updateTheme(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.internalProps.theme=fH.of(t??fH.DEFAULT),this.internalProps.theme.isPivot=this.isPivotTable(),this.options.theme=t,this.scenegraph.updateComponent(),this.scenegraph.updateStageBackground(),this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.render()}getBodyField(t,e){return this.internalProps.layoutMap.getBody(t,e).field}getBodyColumnDefine(t,e){const i=this.internalProps.layoutMap.getBody(t,e);return i?.define}getBodyColumnType(t,e){return UO("cellType",{cellType:this.internalProps.layoutMap.getBody(t,e).cellType},t,e,this)}getCellType(t,e){let i;return this.isSeriesNumberInHeader(t,e)?this.internalProps.layoutMap.getSeriesNumberHeader(t,e).cellType:(i=this.isHeader(t,e)?this.internalProps.layoutMap.getHeader(t,e).headerType:this.internalProps.layoutMap.getBody(t,e).cellType,UO("cellType",{cellType:i},t,e,this))}getHeaderField(t,e){return this.internalProps.layoutMap.getHeaderField(t,e)}getHeaderDefine(t,e){const i=this.internalProps.layoutMap.getHeader(t,e);return i?.define}getCellLocation(t,e){return this.internalProps.layoutMap.getCellLocation(t,e)}getCellHeaderPaths(t,e){return this.internalProps.layoutMap.getCellHeaderPaths(t,e)}getHeadersDefine(t,e){const i=[];for(;;){const r=this.getHeaderDefine(t,e);if(!r||!r.field&&!r.columns)break;i.push(r),e++}return i}_getHeaderLayoutMap(t,e){return this.internalProps.layoutMap.getHeader(t,e)}_getBodyLayoutMap(t,e){return this.internalProps.layoutMap.getBody(t,e)}getContext(){return this.internalProps.context}getRecordByCell(t,e){if(!this.internalProps.layoutMap.isHeader(t,e))return this.getCellOriginRecord(t,e)}getRecordByRowCol(t,e){return this.getRecordByCell(t,e)}getRecordStartRowByRecordIndex(t){return this.internalProps.layoutMap.getRecordStartRowByRecordIndex(t)}_getHeaderCellBySortState(t){const{layoutMap:e}=this.internalProps,i=e.headerObjects.find((e=>e&&e.field===t.field));if(i){return e.getHeaderCellAdressById(i.id)}}getCellRange(t,e){if(this.internalProps.customMergeCell){const i=this.internalProps.customMergeCell(t,e,this);if(i&&i.range&&(i.text||i.customLayout||i.customRender))return i.range}return this.internalProps.layoutMap?.getCellRange(t,e)}hasCustomMerge(){return!!this.internalProps.customMergeCell}getCustomMerge(t,e){if(this.internalProps.customMergeCell){const i=this.internalProps.customMergeCell(t,e,this);if(i&&i.range&&(i.text||i.customLayout||this.customRender)){if(i.style){const r=this.internalProps.bodyHelper.getStyleClass("text"),n=WE(i.style,this.theme.bodyStyle,{col:t,row:e,table:this,value:i.text,dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},r,this.options.autoWrapText,this.theme);i.style=n}return i}}}isCellRangeEqual(t,e,i,r){return this.internalProps.layoutMap.isCellRangeEqual(t,e,i,r)}_getLayoutCellId(t,e){return this.internalProps.layoutMap.getCellId(t,e)}getHeaderDescription(t,e){const i=this._getHeaderLayoutMap(t,e),r=i?.define,n=r?.description??i?.description;if("function"==typeof n){return n({col:t,row:e,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e)})}return n}setDropDownMenuHighlight(t){this.stateManager.setDropDownMenuHighlight(t)}_dropDownMenuIsHighlight(t,e,i){return this.stateManager.dropDownMenuIsHighlight(t,e,i)}isSeriesNumberInBody(t,e){return this.internalProps.layoutMap&&this.internalProps.layoutMap.isSeriesNumberInBody(t,e)}isSeriesNumberInHeader(t,e){return this.internalProps.layoutMap&&this.internalProps.layoutMap.isSeriesNumberInHeader(t,e)}isHeader(t,e){return this.internalProps.layoutMap&&this.internalProps.layoutMap.isHeader(t,e)}isColumnHeader(t,e){return this.internalProps.layoutMap?.isColumnHeader(t,e)}isRowHeader(t,e){return this.internalProps.layoutMap?.isRowHeader(t,e)}isCornerHeader(t,e){return this.internalProps.layoutMap?.isCornerHeader(t,e)}isFrozenColumn(t,e){return this.isLeftFrozenColumn(t,e)||this.isRightFrozenColumn(t,e)}isLeftFrozenColumn(t,e){return this.internalProps.layoutMap?.isFrozenColumn(t,e)}isRightFrozenColumn(t,e){return this.internalProps.layoutMap?.isRightFrozenColumn(t,e)}isFrozenRow(t,e){return this.isTopFrozenRow(t,e)||this.isBottomFrozenRow(t,e)}isTopFrozenRow(t,e){return this.internalProps.layoutMap?.isFrozenRow(t,e)}isBottomFrozenRow(t,e){return this.internalProps.layoutMap?.isBottomFrozenRow(t,e)}getCellInfo(t,e){if(t>=0&&e>=0){const i=this.isHeader(t,e)?this.getHeaderDefine(t,e):this.getBodyColumnDefine(t,e);return{col:t,row:e,field:this.getHeaderField(t,e),cellHeaderPaths:this.internalProps.layoutMap.getCellHeaderPaths(t,e),title:i?.title,cellType:this.getCellType(t,e),originData:this.getCellOriginRecord(t,e),cellRange:this.getCellRangeRelativeRect({col:t,row:e}),value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellLocation:this.getCellLocation(t,e),scaleRatio:this.canvas.getBoundingClientRect().width/this.canvas.offsetWidth}}}_hasField(t,e,i){if(null==t)return!1;const r=this;if(r.internalProps.layoutMap.isHeader(e,i))return!1;const n=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource?.hasField(n,t)}_getCellStyle(t,e){const i=this.customCellStylePlugin.getCustomCellStyle(t,e),{layoutMap:r}=this.internalProps;if(r.isHeader(t,e)){let n;if(!this.isPivotTable()||this.isBottomFrozenRow(e)||this.isRightFrozenColumn(t))n=`${t}-${e}`;else{const i=this.getHeaderDefine(t,e),r=this.isCornerHeader(t,e);n=i?.dimensionKey?r?`dim-cor-${i.dimensionKey}`:`dim-${i.dimensionKey}`:i?.indicatorKey?`ind-${i.indicatorKey}`:`${t}-${e}`}let o=this.headerStyleCache.get(n);if(o)return i?hG(o,i):o;const s=r.getHeader(t,e);let a;if(this.isPivotChart()&&function(t,e,i){if(!i._table.isPivotChart())return!1;if(i.indicatorsAsCol){if(i.hasTwoIndicatorAxes&&e===i.columnHeaderLevelCount-1&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return!0;if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return!0}else if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return!0;return!1}(t,e,r)&&r.isAxisCell(t,e)){const e=r.getBody(t,this.rowHeaderLevelCount);a=e.style?.padding??this.theme.bodyStyle.padding}else if(this.isPivotChart()&&function(t,e,i){if(!i._table.isPivotChart())return!1;if(i.indicatorsAsCol){if(t===i.rowHeaderLevelCount-1&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return!0}else{if(t===i.rowHeaderLevelCount-1&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return!0;if(t===i.colCount-i.rightFrozenColCount&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return!0}return!1}(t,e,r)&&r.isAxisCell(t,e)){const t=r.getBody(this.columnHeaderLevelCount,e);a=t.style?.padding??this.theme.bodyStyle.padding}if((!s||s.isEmpty)&&(r.isLeftBottomCorner(t,e)||r.isRightBottomCorner(t,e)||r.isCornerHeader(t,e)||r.isRightTopCorner(t,e)))return TG;const l=this.internalProps.headerHelper.getStyleClass(s?.headerType||"text");if(r.isBottomFrozenRow(t,e)&&this.theme.bottomFrozenStyle)o=$E(a?{padding:a}:{},this.theme.bottomFrozenStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},l,this.options.autoWrapText,this.theme);else if(r.isRightFrozenColumn(t,e)&&this.theme.rightFrozenStyle)o=$E(a?{padding:a}:{},this.theme.rightFrozenStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},l,this.options.autoWrapText,this.theme);else{const i=s?.style||{};a&&(i.padding=a),o=$E(i,r.isColumnHeader(t,e)||r.isBottomFrozenRow(t,e)?this.theme.headerStyle:r.isRowHeader(t,e)||r.isRightFrozenColumn(t,e)?this.theme.rowHeaderStyle:this.theme.cornerHeaderStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},l,this.options.autoWrapText,this.theme)}return this.headerStyleCache.set(n,o),i?hG(o,i):o}let n,o;this.internalProps?.dataConfig?.mappingRules&&!this.isHeader(t,e)&&this.internalProps?.dataConfig?.mappingRules?.forEach(((i,r)=>{i.bgColor&&this.internalProps.layoutMap.getIndicatorKey(t,e)===i.bgColor.indicatorKey&&(n=i.bgColor.mapping)}));const s=this.getCellType(t,e);let a;if(o=this.isSeriesNumberInBody(t,e)?`${t}-series-`+s:this.isListTable()&&!this.transpose||this.isPivotTable()&&this.internalProps.layoutMap.indicatorsAsCol?t+s:e+s,a=r.isBottomFrozenRow(e)?this.bodyBottomStyleCache.get(o):this.bodyStyleCache.get(o),a)return i?hG(a,i):a;const l=r.getBody(t,e),h=this.internalProps.bodyHelper.getStyleClass(this.getCellType(t,e)),c=l?.style;return a=WE(c,r.isBottomFrozenRow(e)&&this.theme.bottomFrozenStyle?this.theme.bottomFrozenStyle:r.isRightFrozenColumn(t)&&this.theme.rightFrozenStyle?this.theme.rightFrozenStyle:this.theme.bodyStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},h,this.options.autoWrapText,this.theme),n&&(a=hG(a,{bgColor:n})),X(c)||(r.isBottomFrozenRow(e)?this.bodyBottomStyleCache.set(o,a):this.bodyStyleCache.set(o,a)),i?hG(a,i):a}clearCellStyleCache(){this.headerStyleCache.clear(),this.bodyStyleCache.clear(),this.bodyBottomStyleCache.clear()}clearRowHeightCache(){this.internalProps._rowHeightsMap.clear(),this._clearRowRangeHeightsMap()}clearColWidthCache(){this.internalProps._colWidthsMap.clear(),this._clearColRangeWidthsMap()}_canResizeColumn(t,e){if(!(t>=0&&e>=0))return!1;if(this.isCellRangeEqual(t,e,t+1,e))return!1;if("none"===this.internalProps.columnResizeMode)return!1;if("header"===this.internalProps.columnResizeMode){if(!this.isHeader(t,e))return!1}else if("body"===this.internalProps.columnResizeMode&&this.isHeader(t,e))return!1;const i=this.colWidthsLimit[t];return!(i&&i.min&&i.max)||i.max!==i.min}_canResizeRow(t,e){if(!(t>=0&&e>=0))return!1;if(this.isCellRangeEqual(t,e,t,e+1))return!1;if("none"===this.internalProps.rowResizeMode)return!1;if("header"===this.internalProps.rowResizeMode){if(!this.isHeader(t,e))return!1}else if("body"===this.internalProps.rowResizeMode&&this.isHeader(t,e))return!1;return!0}_canDragHeaderPosition(t,e){if(this.isHeader(t,e)&&(this.stateManager.isSelected(t,e)||this.options.select?.disableHeaderSelect||this.options.select?.disableSelect)){if("disabled"===this.internalProps.frozenColDragHeaderMode&&this.isFrozenColumn(t))return!1;if(this.stateManager.isSelected(t,e)){const i=this.stateManager.select.ranges[0];if(this.isColumnHeader(t,e)){if(i.end.row!==this.rowCount-1)return!1}else{if(!this.isRowHeader(t,e))return!1;if(i.end.col!==this.colCount-1)return!1}}const i=this.getHeaderDefine(t,e);if(!i)return!1;if(void 0===i.dragHeader){if("all"===this.internalProps.dragHeaderMode)return!0;if("column"===this.internalProps.dragHeaderMode){if(this.isColumnHeader(t,e))return!0}else if("row"===this.internalProps.dragHeaderMode&&this.isRowHeader(t,e))return!0;return!1}return i.dragHeader}return!1}getCellIcons(t,e){let i;if(this.isHeader(t,e))i=this.internalProps.headerHelper.getIcons(t,e);else if(this.internalProps.layoutMap.isSeriesNumber(t,e)){const r=this.internalProps.layoutMap.getSeriesNumberBody(t,e)?.define?.dragOrder;r&&(i=this.internalProps.rowSeriesNumberHelper.getIcons(t,e));const n=this.getCellValue(t,e),o=this.getCellOriginValue(t,e),s=this.internalProps.context,a=this.internalProps.bodyHelper.getIcons(t,e,n,o,s);i?.length>0?i=i.concat():a?.length>0&&(i=a)}else{const r=this.getCellValue(t,e),n=this.getCellOriginValue(t,e),o=this.internalProps.context;i=this.internalProps.bodyHelper.getIcons(t,e,r,n,o)}return i}showDropDownMenu(t,e,i){let r="dropdown-menu";i&&(r=Array.isArray(i.content)?"dropdown-menu":"container"),"html"===this.internalProps.menu.renderMode&&(this.stateManager.menu.isShow=!0,this.internalProps.menuHandler._bindToCell(t,e,r,i))}showTooltip(t,e,i){"html"===this.internalProps.tooltip.renderMode&&this.internalProps.tooltipHandler._bindToCell(t,e,i)}getCellStyle(t,e){const i=this._getCellStyle(t,e),r=yO(i,this,t,e,UO).theme,{autoWrapText:n,lineClamp:o,textOverflow:s}=i;return{textAlign:r.text.textAlign,textBaseline:r.text.textBaseline,bgColor:Y(r.group.fill)?UO("bgColor",i,t,e,this):r.group.fill,color:Y(r.text.fill)?UO("color",i,t,e,this):r.text.fill,strokeColor:Y(r.text.stroke)?UO("strokeColor",i,t,e,this):r.text.stroke,fontFamily:r.text.fontFamily,fontSize:r.text.fontSize,fontWeight:r.text.fontWeight,fontVariant:r.text.fontVariant,fontStyle:r.text.fontStyle,lineHeight:r.text.lineHeight,autoWrapText:n??!1,lineClamp:o??"auto",textOverflow:s,borderColor:Y(r.group.stroke)?UO("borderColor",i,t,e,this):r.group.stroke,borderLineWidth:r.group.lineWidth,borderLineDash:r.group.lineDash,underline:!!r.text.underline,underlineDash:r.text.underlineDash,underlineOffset:r.text.underlineOffset,lineThrough:!!r.text.lineThrough,padding:r._vtable.padding,underlineWidth:r.text.underline,lineThroughLineWidth:r.text.lineThrough,_strokeArrayWidth:r.group.strokeArrayWidth,_strokeArrayColor:r.group.strokeArrayColor,_linkColor:UO("linkColor",i,t,e,this)}}getAllBodyCells(t,e){const i=this.rowHeaderLevelCount,r=this.columnHeaderLevelCount,n=this.colCount-1,o=this.rowCount-1;return Array(Math.min(e??2e3,o-r+1,this.rowCount)).fill(0).map(((e,o)=>Array(Math.min(t??2e3,n-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,o+r)))))}getAllCells(t,e){const i=0,r=0,n=this.colCount-1,o=this.rowCount-1;return Array(Math.min(e??2e3,o-r+1,this.rowCount)).fill(0).map(((e,o)=>Array(Math.min(t??2e3,n-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,o+r)))))}getAllColumnHeaderCells(){const t=this.rowHeaderLevelCount,e=0,i=this.colCount-1,r=this.columnHeaderLevelCount-1;return Array(r-e+1).fill(0).map(((r,n)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,n+e)))))}getAllRowHeaderCells(){const t=0,e=this.columnHeaderLevelCount,i=this.rowHeaderLevelCount-1,r=this.rowCount-1;return Array(r-e+1).fill(0).map(((r,n)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,n+e)))))}scrollToCell(t){const e=this.getDrawRange();if(Z(t.col)&&t.col>=this.frozenColCount){const i=this.getFrozenColsWidth(),r=this.getColsWidth(0,t.col-1);this.scrollLeft=Math.min(r-i,this.getAllColsWidth()-e.width)}if(Z(t.row)&&t.row>=this.frozenRowCount){const i=this.getFrozenRowsHeight(),r=this.getRowsHeight(0,t.row-1);this.scrollTop=Math.min(r-i,this.getAllRowsHeight()-e.height)}this.render()}getCopyValue(){if(this.stateManager.select?.ranges?.length>0){const t=this.stateManager.select.ranges;let e=Math.min(t[0].start.col,t[0].end.col),i=Math.max(t[0].start.col,t[0].end.col),r=Math.min(t[0].start.row,t[0].end.row),n=Math.max(t[0].start.row,t[0].end.row);t.forEach((t=>{e=Math.min(e,t.start.col,t.end.col),i=Math.max(i,t.start.col,t.end.col),r=Math.min(r,t.start.row,t.end.row),n=Math.max(n,t.start.row,t.end.row)}));const o=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),n=Math.max(t.start.row,t.end.row);r<=e&&n>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),n=Math.max(t.start.col,t.end.col);r<=e&&n>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const n=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row),s=Math.min(t.start.col,t.end.col),a=Math.max(t.start.col,t.end.col);s<=e&&a>=e&&n<=i&&o>=i&&(r=t)})),r},l=(t,e,i)=>{const r=this.getCellRange(t,e);let n=r.start.col,o=r.start.row;if(i){const t=Math.min(i.start.col,i.end.col),e=Math.min(i.start.row,i.end.row);n=Math.max(t,r.start.col),o=Math.max(e,r.start.row)}if(n!==t||o!==e)return"";return this.getCellValue(t,e)};let h="";for(let t=r;t<=n;t++){if(o(t)){for(let r=e;r<=i;r++){if(s(r)){const e=a(r,t);if(e){const n=l(r,t,e);if("undefined"!=typeof Promise&&n instanceof Promise);else{const t=Z(n)?`${n}`:"";/^\[object .*\]$/.exec(t)||(h+=t)}(r<e.end.col||r<i)&&(h+="\t")}else h+="\t"}}t<n&&(h+="\r\n")}}return h}return""}getSelectedCellInfos(){if(!this.stateManager.select?.ranges)return null;const t=this.stateManager.select.ranges;if(!t.length)return[];let e=Math.min(t[0].start.col,t[0].end.col),i=Math.max(t[0].start.col,t[0].end.col),r=Math.min(t[0].start.row,t[0].end.row),n=Math.max(t[0].start.row,t[0].end.row);t.forEach((t=>{e=Math.min(e,t.start.col,t.end.col),i=Math.max(i,t.start.col,t.end.col),r=Math.min(r,t.start.row,t.end.row),n=Math.max(n,t.start.row,t.end.row)}));const o=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),n=Math.max(t.start.row,t.end.row);r<=e&&n>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),n=Math.max(t.start.col,t.end.col);r<=e&&n>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const n=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row),s=Math.min(t.start.col,t.end.col),a=Math.max(t.start.col,t.end.col);s<=e&&a>=e&&n<=i&&o>=i&&(r=t)})),r},l=[];for(let t=r;t<=n;t++){if(o(t)){const r=[];for(let n=e;n<=i;n++){if(s(n)){if(a(n,t)){const e=this.getCellInfo(n,t);r.push(e)}}}l.push(r)}}return l}getSelectedCellRanges(){const t=this.stateManager.select.ranges;return t.length?vt(t):[]}measureText(t,e){return sz.measureText(t,e)}measureTextBounds(t){return lz(t)}getCustomRender(t,e){let i;if("body"!==this.getCellLocation(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerCustomRender}else{const r=this.getBodyColumnDefine(t,e);i=r?.customRender||this.customRender}return i}getCustomLayout(t,e){let i;if("body"!==this.getCellLocation(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerCustomLayout}else{const r=this.getBodyColumnDefine(t,e);i=r?.customLayout}return i}hasAutoImageColumn(){return void 0===this._hasAutoImageColumn&&(this._hasAutoImageColumn=function(t){const{columns:e,rows:i,indicators:r}=t.options;if(t.isPivotTable()){if(nt(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!rt(i)&&("image"===i.headerType||"video"===i.headerType||"function"==typeof i.headerType)&&i.imageAutoSizing)return!0}if(nt(i)&&i.length>0)for(let t=0;t<i.length;t++){const e=i[t];if(!rt(e)&&("image"===e.headerType||"video"===e.headerType||"function"==typeof e.headerType)&&e.imageAutoSizing)return!0}if(nt(r)&&r.length>0)for(let t=0;t<r.length;t++){const e=r[t];if(!rt(e)&&(("image"===e.cellType||"video"===e.cellType||"function"==typeof e.cellType)&&e.imageAutoSizing||("image"===e.headerType||"video"===e.headerType||"function"==typeof e.headerType)&&e.imageAutoSizing))return!0}}else if(nt(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(("image"===i.cellType||"video"===i.cellType||"function"==typeof i.cellType)&&i.imageAutoSizing||("image"===i.headerType||"video"===i.headerType||"function"==typeof i.headerType)&&i.imageAutoSizing)return!0}return!1}(this)),this._hasAutoImageColumn}_getActiveChartInstance(){const t=this.scenegraph.getCell(this.stateManager.hover?.cellPos?.col,this.stateManager.hover?.cellPos?.row);return"chart"===t?.getChildren()?.[0]?.type?t.getChildren()[0].activeChartInstance:null}cellIsInVisualView(t,e){const i=this.getDrawRange(),r=this.getCellRelativeRect(t,e);if(t<this.frozenColCount&&e<this.frozenRowCount)return!0;let n,o,s,a;if(this.frozenRowCount>=1&&(n=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.colCount-1,row:this.frozenRowCount-1}})),this.frozenColCount>=1&&(o=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.frozenColCount-1,row:this.rowCount-1}})),this.bottomFrozenRowCount>=1&&(s=this.getCellRangeRelativeRect({start:{col:0,row:this.rowCount-this.bottomFrozenRowCount},end:{col:this.colCount-1,row:this.rowCount-1}})),this.rightFrozenColCount>=1&&(a=this.getCellRangeRelativeRect({start:{col:this.colCount-this.rightFrozenColCount,row:0},end:{col:this.colCount-1,row:this.rowCount-1}})),r.top>=i.top&&r.bottom<=i.bottom&&r.left>=i.left&&r.right<=i.right){if(this.isFrozenCell(t,e))return!0;if(r.top>=(n?.bottom??r.top)&&r.left>=(o?.right??r.left)&&r.bottom<=(s?.top??r.bottom)&&r.right<=(a?.left??r.right))return!0}return!1}getCustomMergeValue(t,e){if(this.internalProps.customMergeCell){const i=this.getCustomMerge(t,e);if(i){const{text:t}=i;return t}}}exportImg(){return this.scenegraph.stage.toCanvas().toDataURL()}exportCellImg(t,e,i){const r=this.cellIsInVisualView(t,e),{scrollTop:n,scrollLeft:o}=this;r||this.scrollToCell({col:t,row:e});const s=this.getCellRelativeRect(t,e);this.stateManager.select?.ranges?.length>0&&QD(this.scenegraph);const{col:a,row:l}=this.stateManager.hover.cellPos;let h,c;if(this.stateManager.updateHoverPos(-1,-1),this.scenegraph.component.hideVerticalScrollBar(),this.scenegraph.component.hideHorizontalScrollBar(),this.scenegraph.tableGroup.border.setAttribute("visible",!1),i?.disableBackground){const i=this.scenegraph.getCell(t,e);h=i.attribute.fill,i.setAttribute("fill","transparent")}if(i?.disableBorder){const i=this.scenegraph.getCell(t,e);c=i.attribute.stroke,i.setAttribute("stroke",!1)}this.scenegraph.renderSceneGraph();let d=0;"bottom-right"===this.theme.cellBorderClipDirection&&(d=1);const u=this.scenegraph.stage.toCanvas(!1,(new Ae).set(s.left+this.tableX+1,s.top+this.tableY+1,s.right+this.tableX-d,s.bottom+this.tableY-d));if(r||(this.setScrollTop(n),this.setScrollLeft(o)),this.scenegraph.tableGroup.border.setAttribute("visible",!0),h){this.scenegraph.getCell(t,e).setAttribute("fill",h)}if(c){this.scenegraph.getCell(t,e).setAttribute("stroke",c)}return this.stateManager.select?.ranges?.length>0&&tW(this.scenegraph),this.stateManager.updateHoverPos(a,l),this.scenegraph.updateNextFrame(),u.toDataURL()}exportCellRangeImg(t){const{scrollTop:e,scrollLeft:i}=this,r=Math.min(t.start.col,t.end.col),n=Math.min(t.start.row,t.end.row),o=Math.max(t.start.col,t.end.col),s=Math.max(t.start.row,t.end.row),a=this.cellIsInVisualView(r,n),l=this.cellIsInVisualView(o,s);a&&l||this.scrollToCell({col:r,row:n});const h=this.getCellRangeRelativeRect({start:{col:r,row:n},end:{col:o,row:s}});this.stateManager.select?.ranges?.length>0&&QD(this.scenegraph);const{col:c,row:d}=this.stateManager.hover.cellPos;this.stateManager.updateHoverPos(-1,-1),this.scenegraph.component.hideVerticalScrollBar(),this.scenegraph.component.hideHorizontalScrollBar(),this.scenegraph.renderSceneGraph();const u=this.scenegraph.stage.toCanvas(!1,(new Ae).set(h.left+this.tableX+1,h.top+this.tableY+1,h.right+this.tableX,h.bottom+this.tableY)).toDataURL();return a&&l||(this.setScrollTop(e),this.setScrollLeft(i)),this.stateManager.select?.ranges?.length>0&&tW(this.scenegraph),this.stateManager.updateHoverPos(c,d),u}exportCanvas(){return this.scenegraph.stage.toCanvas()}getImageBuffer(t="image/png"){if("node"!==this.options.mode)return;this.render();const e=this.scenegraph.stage;if(e){const i=this.tableX+this.getAllColsWidth(),r=this.tableY+this.getAllRowsHeight();if(i>=this.canvasWidth&&r>=this.canvasHeight){e.render();return e.window.getImageBuffer(t)}return this.scenegraph.stage.toCanvas(!1,(new Ae).set(0,0,Math.min(this.canvasWidth,i),Math.min(this.canvasHeight,r))).toBuffer(t)}return null}getBodyIndexByTableIndex(t,e){return{col:t-this.rowHeaderLevelCount,row:e-this.columnHeaderLevelCount}}getTableIndexByBodyIndex(t,e){return{col:t+this.rowHeaderLevelCount,row:e+this.columnHeaderLevelCount}}onVChartEvent(t,e,i){this._chartEventMap[t]||(this._chartEventMap[t]=[]),"function"==typeof e?this._chartEventMap[t].push({callback:e}):this._chartEventMap[t].push({callback:i,query:e})}offVChartEvent(t,e){this._chartEventMap[t]&&(this._chartEventMap[t]=e?this._chartEventMap[t].filter((t=>t.callback!==e)):[])}_bindChartEvent(t){if(t)for(const e in this._chartEventMap)(this._chartEventMap[e]||[]).forEach((i=>{i.query?t.on(e,i.query,i.callback):t.on(e,i.callback)}))}changeRecordOrder(t,e){}hasCustomCellStyle(t){return this.customCellStylePlugin.hasCustomCellStyle(t)}registerCustomCellStyle(t,e){this.customCellStylePlugin.registerCustomCellStyle(t,e)}arrangeCustomCellStyle(t,e){this.customCellStylePlugin.arrangeCustomCellStyle(t,e)}isSeriesNumber(t,e){return this.internalProps.layoutMap.isSeriesNumber(t,e)}isHasSeriesNumber(){return this.internalProps.layoutMap?.leftRowSeriesNumberColumnCount>0}get leftRowSeriesNumberCount(){return this.internalProps.layoutMap?.leftRowSeriesNumberColumnCount??0}setMinMaxLimitWidth(t=!1){const e=this.internalProps;for(let i=0;i<e.layoutMap.columnWidths.length;i++){const{width:r,minWidth:n,maxWidth:o}=e.layoutMap.columnWidths?.[i]??{};t&&r&&("string"==typeof r&&"auto"!==r||"number"==typeof r&&r>0)&&this._setColWidth(i,r),n&&("number"==typeof n&&n>0||"string"==typeof n)&&this.setMinColWidth(i,n),o&&("number"==typeof o&&o>0||"string"==typeof o)&&this.setMaxColWidth(i,o)}}setSortedIndexMap(t,e){this.dataSource?.setSortedIndexMap(t,e)}checkReactCustomLayout(){this.reactCustomLayout||(this.reactCustomLayout=new SO(this))}get bodyDomContainer(){return this.internalProps.bodyDomContainer}get headerDomContainer(){return this.internalProps.headerDomContainer}showMoverLine(t,e){this.scenegraph.component.showMoveCol(t,e,0),this.scenegraph.renderSceneGraph()}hideMoverLine(t,e){this.scenegraph.component.hideMoveCol(),this.scenegraph.renderSceneGraph()}}var BG=Object.freeze({__proto__:null,BaseTable:RG});const PG={};function kG(t){if(PG[t])return PG[t]}function EG(t,e,i){const r=t[e];return t[e]=i,r}function LG(t){for(const e in t)delete t[e]}function HG(){LG(XL),LG(zO),LG(aF)}var IG=Object.freeze({__proto__:null,chartModule:function(t,e){return null!=e?EG(aF,t,e):aF[t]},clearAll:HG,editor:function(t,e){return null!=e?EG(PG,t,e):PG[t]},icon:function(t,e){return null!=e?EG(zO,t,e):zO[t]},theme:function(t,e){return null!=e?EG(XL,t,e):XL[t]}});var OG=Object.freeze({__proto__:null,dateFormat:function(t,e,i,r,n){null==i&&(i=!1),null==r&&(r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==n&&(n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);const o=i?"UTC":"",s=function(t){return`0${t}`.substring(0,2)};return function(i){const a=new Date(Date.parse(i[t]));return e.replace(/%(.)/g,(function(t,e){switch(e){case"y":return a[`get${o}FullYear`]();case"m":return s(a[`get${o}Month`]()+1);case"n":return r[a[`get${o}Month`]()];case"d":return s(a[`get${o}Date`]());case"w":return n[a[`get${o}Day`]()];case"x":return a[`get${o}Day`]();case"H":return s(a[`get${o}Hours`]());case"M":return s(a[`get${o}Minutes`]());case"S":return s(a[`get${o}Seconds`]());default:return`%${e}`}}))}},numberFormat:function(t){return t=Object.assign({},{digitsAfterDecimal:2,scaler:1,thousandsSep:",",decimalSep:".",prefix:"",suffix:""},t),function(e){if(isNaN(e)||!isFinite(e))return"";const i=function(t,e,i){const r=(t+="").split(".");let n=r[0];const o=r.length>1?i+r[1]:"";return n=function(t,e){const i=t.replace(/\d+/,(function(t){return t.replace(/(\d)(?=(\d{3})+$)/g,(function(t){return`${t}${e}`}))}));return i}(n,e),n+o}((t.scaler*e).toFixed(t.digitsAfterDecimal),t.thousandsSep,t.decimalSep);return`${t.prefix}${i}${t.suffix}`}}});const FG="NO_AXISID_FRO_VTABLE";function zG(t){let e=!1;for(let i=0;i<t.length;i++){const r=t[i];if(r.chartSpec&&"wordCloud"!==r.chartSpec.type&&"radar"!==r.chartSpec.type&&"gauge"!==r.chartSpec.type&&"pie"!==r.chartSpec.type&&"funnel"!==r.chartSpec.type&&"rose"!==r.chartSpec.type){e=!0;break}}return e}function DG(t,e,i,r){let n=!1;if(r.indicatorsAsCol&&"row"===i||!r.indicatorsAsCol&&"col"===i)for(let t=0;t<r.indicatorsDefine.length;t++){const e=r.indicatorsDefine[t];if(e.chartSpec&&"pie"!==e.chartSpec.type&&"wordCloud"!==e.chartSpec.type&&"radar"!==e.chartSpec.type&&"gauge"!==e.chartSpec.type&&"funnel"!==e.chartSpec.type&&"rose"!==e.chartSpec.type){n=!0;break}}else{const i=r.getRawChartSpec(t,e);i?"pie"!==i.type&&"radar"!==i.type&&"gauge"!==i.type&&"wordCloud"!==i.type&&"funnel"!==i.type&&"rose"!==i.type&&(n=!0):n=!1}return n}function WG(t,e,i){const r=i.getRawChartSpec(t,e);if(r?.series){const t={};return r.data?.id&&(t[r.data.id]=void 0),r?.series.forEach((e=>{if(!e.data?.fromDataId)if(e.data?.transforms)t[e.data?.id??r.data?.id??"data"]=void 0;else{const i="horizontal"===e.direction?e.xField:e.yField;t[e.data?.id??r.data?.id??"data"]=e.data?.id?i:void 0}})),t}return r.data.id}function NG(t,e,i,r,n,o,s){const{axisOption:a,isPercent:l,isZeroAlign:h,seriesIndice:c}=WF(t,e,r,s),d=GF(s.dataset.collectedValues,n,h,o,c??i);if(l&&(d.min=d.min<0?-1:0,d.max=d.max>0?1:0),(a?.zero||d.min===d.max)&&(d.min=Math.min(d.min,0),d.max=Math.max(d.max,0)),a?.nice){const{range:e}=kF(d.min,d.max,a,0,s._table.getColWidth(t));d.min=e[0],d.max=e[1]}return at(a?.min)&&(d.min=a.min),at(a?.max)&&(d.max=a.max),{range:d,isZeroAlign:h,axisOption:a}}function GG(t){let e=!1;for(let i=0;i<t.columnObjects.length;i++){if(t.columnObjects[i].chartSpec){e=!0;break}}return e}class jG{seqId=0;_headerObjects;_headerObjectMap;_headerObjectsIncludeHided;_headerCellIds;_columns;_columnsIncludeHided;rowSeriesNumberColumn;leftRowSeriesNumberColumn;rightRowSeriesNumberColumn;leftRowSeriesNumberColumnCount=0;rightRowSeriesNumberColumnCount=0;columnTree;bodyRowSpanCount=1;hierarchyIndent;hierarchyTextStartAlignment;_transpose=!1;_showHeader=!0;_recordsCount=0;_table;_hasAggregation=!1;_hasAggregationOnTopCount=0;_hasAggregationOnBottomCount=0;rowHierarchyType;_cellRangeMap;constructor(t,e,i,r){this._cellRangeMap=new Map,this._showHeader=i,this._table=t,this._columns=[],this._columnsIncludeHided=[],this._headerCellIds=[],this.hierarchyIndent=r??20,this.hierarchyTextStartAlignment=t.options.hierarchyTextStartAlignment,this.columnTree=new cG(e,{seqId:0}),this._headerObjectsIncludeHided=this._addHeaders(0,e,[]),this._headerObjects=this._headerObjectsIncludeHided.filter((t=>!0!==t.define.hide)),this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this.rowHierarchyType=function(t){const{columns:e}=t._table.options;if(nt(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!rt(i)&&i.tree)return!0}return!1}(this)?"tree":"grid",this._hasAggregation=function(t){const e=t.columnObjects;for(let t=0;t<e.length;t++){const i=e[t];if(i?.aggregation)return!0}return!1}(this),this._hasAggregationOnBottomCount=function(t){const e=t.columnObjects;let i=0;for(let t=0;t<e.length;t++){const r=e[t];r?.aggregation&&(Array.isArray(r?.aggregation)?i=Math.max(i,r.aggregation.filter((t=>!1===t.showOnTop)).length):!1===r.aggregation.showOnTop&&(i=Math.max(i,1)))}return i}(this),this._hasAggregationOnTopCount=function(t){const e=t.columnObjects;let i=0;for(let t=0;t<e.length;t++){const r=e[t];r?.aggregation&&(Array.isArray(r?.aggregation)?i=Math.max(i,r.aggregation.filter((t=>!0===t.showOnTop)).length):!0===r.aggregation.showOnTop&&(i=Math.max(i,1)))}return i}(this),this.handleRowSeriesNumber(t.internalProps.rowSeriesNumber)}handleRowSeriesNumber(t){t&&(Array.isArray(t)?this.rowSeriesNumberColumn=t.map((t=>({id:this.seqId++,title:t.title,define:t,cellType:t.cellType??"text",style:t.style,width:t.width,format:t.format,field:t.field,icon:t.icon,headerIcon:t.headerIcon,isChildNode:!1}))):this.rowSeriesNumberColumn=[{id:this.seqId++,title:t.title,define:t,cellType:t.cellType??"text",style:t.style,width:t.width,format:t.format,field:"",icon:t.icon,headerIcon:t.headerIcon,isChildNode:!1}],this.leftRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!0)),this.rightRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!1)),this.leftRowSeriesNumberColumnCount=this.leftRowSeriesNumberColumn.length,this.rightRowSeriesNumberColumnCount=this.rightRowSeriesNumberColumn.length)}get transpose(){return this._transpose}set transpose(t){this._transpose=t}get showHeader(){return this._showHeader}set showHeader(t){this._showHeader=t}isSeriesNumberInHeader(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return!1;if(e<this.headerLevelCount)return!0}if(this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount){if(this.transpose)return!1;if(e<this.headerLevelCount)return!0}return!1}isSeriesNumberInBody(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return!0;if(e>=this.headerLevelCount)return!0}if(this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount){if(this.transpose)return!0;if(e>=this.headerLevelCount)return!0}return!1}isSeriesNumber(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount||this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount}getSeriesNumberHeader(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return;if(e<this.headerLevelCount)return Object.assign({},this.leftRowSeriesNumberColumn[t],{style:this._table.internalProps.rowSeriesNumber.headerStyle})}if(this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e<this.headerLevelCount){if(this.transpose)return;if(e<this.headerLevelCount)return this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]}}getSeriesNumberBody(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return this.leftRowSeriesNumberColumn[t];if(e>=this.headerLevelCount)return this.leftRowSeriesNumberColumn[t]}if(this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount){if(this.transpose)return this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)];if(e>=this.headerLevelCount)return this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]}}isHeader(t,e){return!!(this.transpose&&t>=this.leftRowSeriesNumberColumnCount&&t<this.headerLevelCount+this.leftRowSeriesNumberColumnCount)||!this.transpose&&e>=0&&e<this.headerLevelCount}isAggregation(t,e){if(this.hasAggregation){if(this.hasAggregationOnBottomCount)if(this.transpose){if(t>=this.colCount-this.hasAggregationOnBottomCount)return!0}else if(e>=this.rowCount-this.hasAggregationOnBottomCount)return!0;if(this.hasAggregationOnTopCount)if(this.transpose){if(t>=this.rowHeaderLevelCount&&t<this.rowHeaderLevelCount+this.hasAggregationOnTopCount)return!0}else if(e>=this.columnHeaderLevelCount&&e<this.columnHeaderLevelCount+this.hasAggregationOnTopCount)return!0}return!1}isTopAggregation(t,e){if(this.hasAggregationOnTopCount)if(this.transpose){if(t>=this.rowHeaderLevelCount&&t<this.rowHeaderLevelCount+this.hasAggregationOnTopCount)return!0}else if(e>=this.columnHeaderLevelCount&&e<this.columnHeaderLevelCount+this.hasAggregationOnTopCount)return!0;return!1}isBottomAggregation(t,e){if(this.hasAggregationOnBottomCount)if(this.transpose){if(t>=this.colCount-this.hasAggregationOnBottomCount)return!0}else if(e>=this.rowCount-this.hasAggregationOnBottomCount)return!0;return!1}get hasAggregation(){return this._hasAggregation}get hasAggregationOnTopCount(){return this._hasAggregationOnTopCount}get hasAggregationOnBottomCount(){return this._hasAggregationOnBottomCount}getAggregatorsByCell(t,e){return this.getBody(t,e).aggregator}getAggregatorsByCellRange(t,e,i,r){let n=[];if(!this.transpose){for(let r=t;r<=i;r++){const t=this.getBody(r,e);t.aggregator&&(n=n.concat(Array.isArray(t.aggregator)?t.aggregator:[t.aggregator]))}return n}for(let i=e;i<=r;i++){const e=this.getBody(t,i);e.aggregator&&(n=n.concat(Array.isArray(e.aggregator)?e.aggregator:[e.aggregator]))}return[]}getAggregatorOnTop(t,e){const i=this.getBody(t,e),r=i.aggregator,n=i.aggregation;if(Array.isArray(n)){const i=n.reduce(((t,e,i)=>(e.showOnTop&&t.push(i),t)),[]),o=i.map((t=>r[t]));return this.transpose?o[t-this.rowHeaderLevelCount]:o[e-this.columnHeaderLevelCount]}return this.transpose&&t-this.rowHeaderLevelCount==0?n?.showOnTop?r:null:this.transpose||e-this.columnHeaderLevelCount!=0?null:n?.showOnTop?r:null}getAggregatorOnBottom(t,e){const i=this.getBody(t,e),r=i.aggregator,n=i.aggregation;if(Array.isArray(n)){const i=n.reduce(((t,e,i)=>(!1===e.showOnTop&&t.push(i),t)),[]),o=i.map((t=>r[t]));return this.transpose?o[t-(this.colCount-this.hasAggregationOnBottomCount)]:o[e-(this.rowCount-this.hasAggregationOnBottomCount)]}return this.transpose&&t-(this.colCount-this.hasAggregationOnBottomCount)==0?!1===n?.showOnTop?r:null:this.transpose||e-(this.rowCount-this.hasAggregationOnBottomCount)!=0?null:!1===n?.showOnTop?r:null}getAggregatorCellAddress(t,e,i,r){const n=[],o=this.hasAggregationOnTopCount,s=this.hasAggregationOnBottomCount;if(this.transpose)for(let i=e;i<=r;i++){if(this.getBody(t,i).aggregator){for(let t=0;t<o;t++)n.push({col:this.headerLevelCount+t,row:i});for(let t=0;t<s;t++)n.push({col:this.rowCount-s+t,row:i})}}else for(let r=t;r<=i;r++){if(this.getBody(r,e).aggregator){for(let t=0;t<o;t++)n.push({col:r,row:this.headerLevelCount+t});for(let t=0;t<s;t++)n.push({col:r,row:this.rowCount-s+t})}}return n}getCellLocation(t,e){return this.isHeader(t,e)?this.transpose?"rowHeader":"columnHeader":"body"}isRowHeader(t,e){return!!(this.transpose&&t>=this.leftRowSeriesNumberColumnCount&&t<this.headerLevelCount+this.leftRowSeriesNumberColumnCount)}isColumnHeader(t,e){return!this.transpose&&e>=0&&e<=this.headerLevelCount-1&&t>=this.leftRowSeriesNumberColumnCount&&t<this.colCount-this.rightRowSeriesNumberColumnCount}isFrozenColumn(t,e){if(Z(e)){if(t>=0&&t<this.frozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.frozenColCount>0&&t>=0&&t<this.frozenColCount)return!0;return!1}isRightFrozenColumn(t,e){if(Z(e)){if(t>=this.colCount-this.rightFrozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.rightFrozenColCount>0&&t>=this.colCount-this.rightFrozenColCount)return!0;return!1}isFrozenRow(t,e){if(Z(e)){if(e>=0&&e<this.frozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.frozenRowCount>0&&e>=0&&e<this.frozenRowCount)return!0;return!1}isBottomFrozenRow(t,e){if(Z(e)){if(e>=this.rowCount-this.bottomFrozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.bottomFrozenRowCount>0&&e>=this.rowCount-this.bottomFrozenRowCount)return!0;return!1}isLeftBottomCorner(t,e){return t>=0&&t<this.rowHeaderLevelCount&&e>=this.rowCount-this.bottomFrozenRowCount}isRightTopCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=0&&e<this.columnHeaderLevelCount}isRightBottomCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=this.rowCount-this.bottomFrozenRowCount}isCornerHeader(t,e){return!1}getColumnHeaderRange(){return this.transpose?{start:{col:0,row:0},end:{col:this._headerCellIds.length-1,row:(this.rowCount??0)-1}}:{start:{col:0,row:0},end:{col:(this.colCount??0)-1,row:this._headerCellIds.length-1}}}getRowHeaderRange(){return this.transpose?{start:{col:0,row:0},end:{col:this._headerCellIds.length-1,row:(this.rowCount??0)-1}}:{start:{col:0,row:0},end:{col:(this.colCount??0)-1,row:this._headerCellIds.length-1}}}getCornerHeaderRange(){}getBodyRange(){return this.transpose?{start:{col:this.headerLevelCount,row:0},end:{col:(this.colCount??0)-1,row:(this.rowCount??0)-1}}:{start:{col:0,row:this.headerLevelCount},end:{col:(this.colCount??0)-1,row:(this.rowCount??0)-1}}}get headerLevelCount(){return this.showHeader?this._headerCellIds.length:0}get columnHeaderLevelCount(){return this.transpose?0:this.headerLevelCount}get rowHeaderLevelCount(){return this.transpose?this.headerLevelCount:0}get frozenColCount(){return this._table.internalProps.frozenColCount?this.colCount>this._table.internalProps.frozenColCount?this._table.internalProps.frozenColCount:this.colCount:0}get frozenRowCount(){return this._table.internalProps.frozenRowCount?this.rowCount>=this._table.internalProps.frozenRowCount?this._table.internalProps.frozenRowCount:this.rowCount:0}get bottomFrozenRowCount(){return this._table.internalProps.bottomFrozenRowCount?this.rowCount-this.headerLevelCount>=this._table.internalProps.bottomFrozenRowCount?this._table.internalProps.bottomFrozenRowCount:this.rowCount-this.headerLevelCount:0}get rightFrozenColCount(){return this._table.internalProps.rightFrozenColCount?this.colCount-this.frozenColCount>=this._table.internalProps.rightFrozenColCount?this._table.internalProps.rightFrozenColCount:Math.max(0,this.colCount-this.frozenColCount):0}get colCount(){return this.transpose?this.headerLevelCount+this.recordsCount+this.leftRowSeriesNumberColumnCount+this.rightRowSeriesNumberColumnCount:this._columns.length+this.leftRowSeriesNumberColumnCount+this.rightRowSeriesNumberColumnCount}get rowCount(){return this.transpose?this._columns.length:this.headerLevelCount+this.recordsCount}get bodyRowCount(){return this.transpose?this._columns.length:this.rowCount-this.bottomFrozenRowCount-this.headerLevelCount}get bodyColCount(){return this.transpose?this.colCount-this.rightFrozenColCount-this.rowHeaderLevelCount:this._columns.length}get recordsCount(){return this._recordsCount}set recordsCount(t){this._recordsCount=t}get headerObjects(){return this._headerObjects}get columnObjects(){return this._columns}get headerObjectsIncludeHided(){return this._headerObjectsIncludeHided}get columnWidths(){if(this.leftRowSeriesNumberColumnCount){const t=this.leftRowSeriesNumberColumn.map((t=>({width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth})));return t.push(...this._columns.map((t=>({width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth})))),t}return this._columns.map((t=>({width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth})))}getColumnWidthDefined(t){if(t>=0){if(t<this.leftRowSeriesNumberColumnCount)return this.leftRowSeriesNumberColumn[t];if(this.transpose){let e,i,r=0;if(t>=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount){let t;return this.columnObjects.forEach(((n,o)=>{"number"==typeof n.width?r=Math.max(n.width,r):"auto"===n.width&&(t=!0),"number"==typeof n.minWidth&&(i=Math.max(n.minWidth,i)),"number"==typeof n.maxWidth&&(e=Math.max(n.maxWidth,e))})),r=r>0?r:t?"auto":void 0,{width:r,minWidth:i,maxWidth:e}}if(this.isRowHeader(t,0)){const e=Array.isArray(this._table.defaultHeaderColWidth)?this._table.defaultHeaderColWidth[t]??this._table.defaultColWidth:this._table.defaultHeaderColWidth;return"auto"===e?{width:"auto"}:{width:e}}}return this._columns[t-this.leftRowSeriesNumberColumnCount]}}getCellId(t,e){return this.transpose?t>=this.headerLevelCount+this.leftRowSeriesNumberColumnCount?this._columns[e]?.id:this.isSeriesNumber(t,e)?e+"_series_number":this._headerCellIds[t-this.leftRowSeriesNumberColumnCount]?.[e]:this.isSeriesNumber(t,e)?this.rowSeriesNumberColumn[t].id:this.headerLevelCount<=e?this._columns[t-this.leftRowSeriesNumberColumnCount]?.id:this._headerCellIds[e]?.[t-this.leftRowSeriesNumberColumnCount]}getHeader(t,e){if(this.isSeriesNumberInHeader(t,e))return this.getSeriesNumberHeader(t,e);const i=this.getCellId(t,e);return this._headerObjectMap[i]}getHeaderField(t,e){const i=this.getCellId(t,e);return this._headerObjectMap[i]?.field||(this.transpose?this._columns[e]&&this._columns[e].field:this._columns[t-this.leftRowSeriesNumberColumnCount]&&this._columns[t-this.leftRowSeriesNumberColumnCount].field)}getHeaderCellAdressById(t){for(let e=0;e<this._headerCellIds.length;e++){const i=this._headerCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return this.transpose?{col:e,row:r}:{col:r+this.leftRowSeriesNumberColumnCount,row:e}}}getHeaderCellAddressByField(t){const e=this.headerObjects.find((e=>e&&e.field===t));return this.getHeaderCellAdressById(e.id)}getBody(t,e){return this.isSeriesNumber(t,e)?this.getSeriesNumberBody(t,e):this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount]}getBodyLayoutRangeById(t){if(this.transpose){for(let e=0;e<(this.rowCount??0);e++)if(t===this._columns[e].id)return{start:{col:0,row:e},end:{col:0,row:e}}}else for(let e=0;e<(this.colCount??0);e++)if(t===this._columns[e-this.leftRowSeriesNumberColumnCount].id)return{start:{col:e,row:0},end:{col:e,row:0}};throw new Error(`can not found body layout @id=${t}`)}getCellRange(t,e){if(-1===t||-1===e)return{start:{col:t,row:e},end:{col:t,row:e}};if(this._cellRangeMap.has(`$${t}$${e}`))return this._cellRangeMap.get(`$${t}$${e}`);let i={start:{col:t,row:e},end:{col:t,row:e}};if(this.transpose)i=this.getCellRangeTranspose(t,e);else if(this.headerLevelCount<=e){if(this.headerLevelCount<=e&&this.columnObjects[t-this.leftRowSeriesNumberColumnCount]?.define?.mergeCell){const r=this._table.getCellValue(t,e);for(let n=e-1;n>=this.headerLevelCount;n--){const e=this._table.getCellValue(t,n);if("boolean"==typeof this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell){if(r!==e)break}else if(!this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell(r,e))break;i.start.row=n}for(let n=e+1;n<this.rowCount;n++){const e=this._table.getCellValue(t,n);if("boolean"==typeof this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell){if(r!==e)break}else if(!this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell(r,e))break;i.end.row=n}}}else{const r=this.getCellId(t,e);for(let n=t-1;n>=0&&r===this.getCellId(n,e);n--)i.start.col=n;for(let n=t+1;n<(this.colCount??0)&&r===this.getCellId(n,e);n++)i.end.col=n;for(let n=e-1;n>=0&&r===this.getCellId(t,n);n--)i.start.row=n;for(let n=e+1;n<this.headerLevelCount&&r===this.getCellId(t,n);n++)i.end.row=n}return this._cellRangeMap.set(`$${t}$${e}`,i),i}getCellRangeTranspose(t,e){const i={start:{col:t,row:e},end:{col:t,row:e}};if(this.headerLevelCount+this.leftRowSeriesNumberColumnCount<=t||-1===t&&-1===e){if(this.headerLevelCount+this.leftRowSeriesNumberColumnCount<=t&&this.columnObjects[e]?.define?.mergeCell){const r=this._table.getCellValue(t,e);for(let n=t-1;n>=this.headerLevelCount+this.leftRowSeriesNumberColumnCount;n--){const t=this._table.getCellValue(n,e);if("boolean"==typeof this.columnObjects[e].define.mergeCell){if(r!==t)break}else if(!this.columnObjects[e].define.mergeCell(r,t))break;i.start.col=n}for(let n=t+1;n<(this.colCount??0);n++){const t=this._table.getCellValue(n,e);if("boolean"==typeof this.columnObjects[e].define.mergeCell){if(r!==t)break}else if(!this.columnObjects[e].define.mergeCell(r,t))break;i.end.col=n}}return i}const r=this.getCellId(t,e);for(let n=e-1;n>=0&&r===this.getCellId(t,n);n--)i.start.row=n;for(let n=e+1;n<(this.rowCount??0)&&r===this.getCellId(t,n);n++)i.end.row=n;for(let n=t-1;n>=0&&r===this.getCellId(n,e);n--)i.start.col=n;for(let n=t+1;n<this.headerLevelCount+this.leftRowSeriesNumberColumnCount&&r===this.getCellId(n,e);n++)i.end.col=n;return i}isCellRangeEqual(t,e,i,r){const n=this.getCellRange(t,e),o=this.getCellRange(i,r);return n.start.col===o.start.col&&n.end.col===o.end.col&&n.start.row===o.start.row&&n.end.row===o.end.row}getRecordShowIndexByCell(t,e){const i=this.hasAggregationOnTopCount?this.headerLevelCount+1:this.headerLevelCount;return this.transpose?t<i?-1:t-i:e<i?-1:e-i}getRecordStartRowByRecordIndex(t){return(this.hasAggregationOnTopCount?this.headerLevelCount+1:this.headerLevelCount)+t}_addHeaders(t,e,i,r){const n=[],o=this._newRow(t,r);return e.forEach((e=>{const s=this._columns.length,a=this.seqId++,l={id:a,title:e.title??e.caption,headerIcon:e.headerIcon,field:e.field,style:e.headerStyle,headerType:e.headerType??"text",dropDownMenu:e.dropDownMenu,define:e,columnWidthComputeMode:e.columnWidthComputeMode};n[a]=l;for(let e=t-1;e>=0;e--)this._headerCellIds[e]&&(this._headerCellIds[e][s]=i[e]);if(r?this._headerCellIds[t-1]&&(o[s]=this._headerCellIds[t-1][s]):o[s]=a,e.columns)this._addHeaders(t+1,e.columns,[...i,a],e.hideColumnsSubHeader||r).forEach((t=>n.push(t)));else{const i={id:this.seqId++,field:e.field,fieldFormat:e.fieldFormat,width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth,icon:e.icon,cellType:e.cellType??e.columnType??"text",chartModule:"chartModule"in e?e.chartModule:null,chartSpec:"chartSpec"in e?e.chartSpec:null,sparklineSpec:"sparklineSpec"in e?e.sparklineSpec:tH,style:e.style,define:e,columnWidthComputeMode:e.columnWidthComputeMode,disableColumnResize:e?.disableColumnResize,aggregation:this._getAggregationForColumn(e,s),isChildNode:t>=1};if(this._columnsIncludeHided.push(i),!0!==e.hide){this._columns.push(i);for(let e=t+1;e<this._headerCellIds.length;e++)this._headerCellIds[e][s]=a}}})),n}_getAggregationForColumn(t,e){let i;return t.aggregation?i=t.aggregation:this._table.options.aggregation&&(i="function"==typeof this._table.options.aggregation?this._table.options.aggregation({col:e,field:t.field}):this._table.options.aggregation),i?Array.isArray(i)?i.map((t=>(Z(t.showOnTop)||(t.showOnTop=!1),t))):Object.assign({showOnTop:!1},i):null}_newRow(t,e=!1){if(this._headerCellIds[t]){const e=this._headerCellIds[t-1];if(e.length>this._headerCellIds[t].length)for(let i=this._headerCellIds[t].length;i<e.length;i++)this._headerCellIds[t][i]=e[i];return this._headerCellIds[t]}if(e)return[];const i=this._headerCellIds[t]=[];if(!this._columns.length)return i;const r=this._headerCellIds[t-1];for(let t=0;t<r.length;t++)i[t]=r[t];return i}getCellHeaderPaths(t,e){if(this.isSeriesNumber(t,e))return;let i=[],r=[];return this.transpose?r=[{field:this._columns[e].field}]:i=[{field:this._columns[t-this.leftRowSeriesNumberColumnCount].field}],{colHeaderPaths:i,rowHeaderPaths:r,cellLocation:this.getCellLocation(t,e)}}getParentCellId(t,e){if(0!==e){if(this.isColumnHeader(t,e))return this.getCellId(t,e-1);if(this.isRowHeader(t,e)){if(this.isSeriesNumberInBody(t-1,e))return;return this.getCellId(t-1,e)}}}canMoveHeaderPosition(t,e){if(this.isSeriesNumberInHeader(e.col,e.row)||this.isSeriesNumberInHeader(t.col,t.row))return!1;if(!this.transpose&&this.isSeriesNumberInBody(e.col,e.row)&&this.isSeriesNumberInBody(t.col,t.row))return!0;if(this.transpose&&this.isSeriesNumberInBody(e.col,e.row)&&this.isSeriesNumberInBody(t.col,t.row)&&(this._getColumnDefine(t.col+this.leftRowSeriesNumberColumnCount,t.row).isChildNode&&this._getColumnDefine(e.col+this.leftRowSeriesNumberColumnCount,e.row).isChildNode?(t.col=t.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1,e.col=e.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1):(t.col=t.col+this.leftRowSeriesNumberColumnCount,e.col=e.col+this.leftRowSeriesNumberColumnCount)),t.col<0||t.row<0||e.col<0||e.row<0)return!1;if("disabled"===this._table.internalProps.frozenColDragHeaderMode&&this._table.isFrozenColumn(e.col))return!1;const i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){return this.getParentCellId(t.col,i.start.row)===this.getParentCellId(e.col,i.start.row)}if(this.isRowHeader(t.col,t.row)){return this.getParentCellId(i.start.col,t.row)===this.getParentCellId(i.start.col,e.row)}return!1}moveHeaderPosition(t,e){if(this.canMoveHeaderPosition(t,e)){let i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){const r=i.end.col-i.start.col+1;let n;const o=this.getCellRange(e.col,i.start.row);if(n=e.col>=t.col?o.end.col-r+1:o.start.col,n===i.start.col)return null;for(let t=0;t<this._headerCellIds.length;t++){const e=this._headerCellIds[t].splice(i.start.col-this.leftRowSeriesNumberColumnCount,r);e.unshift(n-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._headerCellIds[t],e)}const s=this._columns.splice(i.start.col-this.leftRowSeriesNumberColumnCount,r);return s.unshift(n-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.row,i.start.col-this.leftRowSeriesNumberColumnCount,n-this.leftRowSeriesNumberColumnCount),this.columnTree.reset(this.columnTree.tree.children,!0),this._cellRangeMap=new Map,{sourceIndex:i.start.col,targetIndex:n,sourceSize:r,targetSize:o.end.col-o.start.col+1,moveType:"column"}}if(this.isRowHeader(t.col,t.row)||this.isSeriesNumberInBody(t.col,t.row)&&this.transpose){this.isSeriesNumberInBody(t.col,t.row)&&(i=this.getCellRange(t.col+this.leftRowSeriesNumberColumnCount,t.row));const r=i.end.row-i.start.row+1;let n;const o=this.getCellRange(i.start.col,e.row);if(n=e.row>=t.row?o.end.row-r+1:o.start.row,n===i.start.row)return null;for(let t=0;t<this._headerCellIds.length;t++){const e=this._headerCellIds[t].splice(i.start.row,r);e.unshift(n,0),Array.prototype.splice.apply(this._headerCellIds[t],e)}const s=this._columns.splice(i.start.row,r);return s.unshift(n,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.col-this.leftRowSeriesNumberColumnCount,i.start.row,n+(e.row>t.row?i.end.row-i.start.row:0)),this.columnTree.reset(this.columnTree.tree.children,!0),this._cellRangeMap=new Map,{sourceIndex:i.start.row,targetIndex:n,sourceSize:r,targetSize:o.end.row-o.start.row+1,moveType:"row"}}if(this.isSeriesNumberInBody(t.col,t.row))return{sourceIndex:t.row,targetIndex:e.row,sourceSize:1,targetSize:1,moveType:"row"}}return null}toggleHierarchyState(t){const e=t.add.map((t=>({col:0,row:this._table.frozenRowCount+t}))),i=t.remove.map((t=>({col:0,row:this._table.frozenRowCount+t})));return{addCellPositions:e,removeCellPositions:i}}setChartInstance(t,e,i){const r=this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount];"function"!=typeof r.chartSpec&&(r.chartInstance=i)}getChartInstance(t,e){return(this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount]).chartInstance}checkHasChart(){return GG(this)}getAxisConfigInPivotChart(t,e){}isEmpty(t,e){return!1}isAxisCell(t,e){return!1}getChartAxes(t,e){return[]}isShareChartSpec(t,e){const i=this.getBody(t,e),r=i?.chartSpec;return"function"!=typeof r}getChartSpec(t,e){return this.getRawChartSpec(t,e)}getRawChartSpec(t,e){const i=this.getBody(t,e),r=i?.chartSpec;if("function"==typeof r){return r({col:t,row:e,dataValue:this._table.getCellOriginValue(t,e)||"",value:this._table.getCellValue(t,e)||"",rect:this._table.getCellRangeRelativeRect(this._table.getCellRange(t,e)),table:this._table})}return r}getChartDataId(t,e){return WG(t,e,this)}release(){const t=this._table._getActiveChartInstance();t?.release(),this.columnObjects.forEach((t=>{t.chartInstance?.release()}))}clearCellRangeMap(){this._cellRangeMap.clear()}updateColumnTitle(t,e,i){const r=this._table.internalProps.layoutMap.getHeader(t,e);r.title=i,r.define.title=i}getColumnByField(t){const e=this.columnObjects?.reduce(((e,i,r)=>(i.field===t&&e.push({col:r,columnDefine:i}),e)),[]);return e}_getColumnDefine(t,e){if(t>=0)return t<this.leftRowSeriesNumberColumnCount?this.leftRowSeriesNumberColumn[t]:this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount]}}class VG{table;_titleOption;isReleased=!1;_titleComponent;_cacheAttrs;constructor(t,e){this.table=e,this._titleOption=t,!1!==t.visible&&(this._titleComponent=this._createOrUpdateTitleComponent(this._getTitleAttrs()))}_createOrUpdateTitleComponent(t){if(this._titleComponent)Mt(t,this._cacheAttrs)||this._titleComponent.setAttributes(t);else{const e=new Ik(t);e.name="title",this.table.scenegraph.stage.defaultLayer.appendChild(e),this._titleComponent=e}return this._adjustTableSize(this._titleComponent.attribute),this._titleComponent}resize(){if(!this._titleComponent)return;const t=II(this._titleOption.padding??10),e=this._titleOption.width??Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width)-t[1]-t[3],i=this._titleOption.height??Math.min(this.table.tableNoFrameHeight,this.table.getDrawRange().height)-t[0]-t[2];this._titleComponent.setAttributes({x:this._titleOption.x??"right"===this._titleOption.orient?this.table.tableX+Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width):this.table.tableX,y:this._titleOption.y??"bottom"===this._titleOption.orient?this.table.tableY+this.table.tableNoFrameHeight:this.table.tableY,width:"top"===this._titleOption.orient||"bottom"===this._titleOption.orient?e:this._titleOption.width,height:"left"===this._titleOption.orient||"right"===this._titleOption.orient?i:this._titleOption.height,textStyle:{width:e,...this._titleOption.textStyle},subtextStyle:{width:e,...this._titleOption.subtextStyle}}),this._adjustTableSize(this._titleComponent.attribute)}_adjustTableSize(t){const e=isFinite(this._titleComponent?.AABBBounds.width())?this._titleComponent.AABBBounds.width():0,i=isFinite(this._titleComponent?.AABBBounds.height())?this._titleComponent.AABBBounds.height():0;"left"===this._titleOption.orient?(this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e),this.table.tableX+=Math.ceil(e)):"top"===this._titleOption.orient?(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i),this.table.tableY+=Math.ceil(i)):"right"===this._titleOption.orient?this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e):"bottom"===this._titleOption.orient&&(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i)),this._cacheAttrs=t,"right"!==this._titleOption.orient&&"bottom"!==this._titleOption.orient||this._titleComponent.setAttributes({x:this._titleOption.x??"right"===this._titleOption.orient?this.table.tableX+this.table.tableNoFrameWidth:this.table.tableX,y:this._titleOption.y??"bottom"===this._titleOption.orient?this.table.tableY+this.table.tableNoFrameHeight:this.table.tableY})}release(){this._titleComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this._titleComponent),this._titleComponent=null,this.isReleased=!0}_getTitleAttrs(){const t=this._titleOption.text||this._titleOption.subtext?10:0,e=II(this._titleOption.padding??t),i=this._titleOption.width??Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width)-e[1]-e[3],r=this._titleOption.height??Math.min(this.table.tableNoFrameHeight,this.table.getDrawRange().height)-e[0]-e[2];return{text:this._titleOption.text??"",subtext:this._titleOption.subtext??"",x:this._titleOption.x??"right"===this._titleOption.orient?this.table.tableX+Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width):this.table.tableX,y:this._titleOption.y??"bottom"===this._titleOption.orient?this.table.tableY+this.table.tableNoFrameHeight:this.table.tableY,width:"top"===this._titleOption.orient||"bottom"===this._titleOption.orient?i:this._titleOption.width,height:"left"===this._titleOption.orient||"right"===this._titleOption.orient?r:this._titleOption.height,minWidth:this._titleOption.minWidth,maxWidth:this._titleOption.maxWidth,minHeight:this._titleOption.minHeight,maxHeight:this._titleOption.maxHeight,padding:this._titleOption.padding,align:this._titleOption.align??"left",verticalAlign:this._titleOption.verticalAlign??"top",textStyle:{width:i,...this._titleOption.textStyle},subtextStyle:{width:i,...this._titleOption.subtextStyle},dx:this._titleOption.dx??0,dy:this._titleOption.dy??0}}}class UG{table;editingEditor;editCell;constructor(t){this.table=t,this.bindEvent()}bindEvent(){const t=this.table.internalProps.handler;this.table.on(IL.DBLCLICK_CELL,(t=>{if(!this.table.options.editCellTrigger||"doubleclick"===this.table.options.editCellTrigger){const{col:e,row:i}=t,r=AO(t.federatedEvent),n=this.table.scenegraph.getResizeColAt(r.abstractPos.x,r.abstractPos.y,r.eventArgs?.targetCell);if(this.table._canResizeColumn(n.col,n.row)&&n.col>=0)return;this.startEditCell(e,i)}})),this.table.on(IL.CLICK_CELL,(t=>{if("click"===this.table.options.editCellTrigger){const{col:e,row:i}=t;this.startEditCell(e,i)}})),t.on(this.table.getElement(),"wheel",(t=>{this.completeEdit()})),t.on(this.table.getElement(),"resize",(t=>{(this.table.autoFillWidth||this.table.autoFillHeight)&&this.completeEdit()}))}startEditCell(t,e){const i=this.table.getEditor(t,e);if(i){if(this.table.internalProps.layoutMap?.isAggregation?.(t,e))return;this.editingEditor||(this.editCell={col:t,row:e}),this.editingEditor=i;const r=this.table.getCellOriginValue(t,e),n=this.table.getCellRangeRelativeRect(this.table.getCellRange(t,e)),o={rect:{left:n.left,top:n.top,width:n.width,height:n.height}};i.beginEditing,i.beginEditing?.(this.table.getElement(),o,r),i.bindSuccessCallback,i.bindSuccessCallback?.((()=>{this.completeEdit()})),i.onStart?.({value:r,endEdit:()=>{this.completeEdit()},referencePosition:o,container:this.table.getElement(),col:t,row:e})}}completeEdit(t){if(!this.editingEditor)return!0;const e=t?.target,{editingEditor:i}=this;if(e)if(i.targetIsOnEditor){if(i.targetIsOnEditor(e))return!1}else if(!i.isEditorElement||i.isEditorElement(e))return!1;if(this.editingEditor.getValue,!this.editingEditor.validateValue||this.editingEditor.validateValue?.()){const t=this.editingEditor.getValue?.(),e=this.table.getCellRange(this.editCell.col,this.editCell.row),i=[];for(let r=e.start.row;r<=e.end.row;r++){const r=[];for(let i=e.start.col;i<=e.end.col;i++)r.push(t);i.push(r)}return this.table.changeCellValues(e.start.col,e.start.row,i),this.editingEditor.exit,this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null,!0}return!1}cancelEdit(){this.editingEditor&&(this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null)}}class KG{table;_emptyTipOption={spaceBetweenTextAndIcon:20,text:"no data",textStyle:{fontSize:14,color:"#000"},icon:{image:'<svg t="1716726614852" class="icon" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2621" width="200" height="200"><path d="M1038.694079 367.237067c13.265507 23.342857-16.633865-40.004445-63.05621-40.004446H219.018794c-26.558738 0-46.46393 13.334815-63.05621 40.004446S0.006238 607.277601 0.006238 650.608819V940.647979a82.351494 82.351494 0 0 0 82.961402 83.349526H1111.702885a82.337632 82.337632 0 0 0 82.975264-83.349526V650.608819c0-43.331218-155.970208-283.371753-155.970208-283.371752zM730.066575 667.284269a136.328386 136.328386 0 0 1-132.738243 133.33429 133.417459 133.417459 0 0 1-132.738243-133.33429v-6.681269a40.6698 40.6698 0 0 0-36.497473-26.66963H73.015044l119.458874-220.02445s23.231965-40.004445 53.103614-40.004446h713.481918c26.544876 0 29.871649 10.008042 46.436207 40.004446L1128.33675 633.947231H769.904682c-26.184476 0-39.838107 7.623855-39.838107 33.337038zM338.505391 210.559919l-89.601086-86.69016a22.178487 22.178487 0 0 1 0-33.26773 21.984425 21.984425 0 0 1 33.170699 0l89.601087 86.676299a22.317102 22.317102 0 0 1 0 33.26773 24.950798 24.950798 0 0 1-33.1707 0z m252.197118-40.059891a25.532983 25.532983 0 0 1-6.639685-16.633865l-3.326773-126.694606A28.263709 28.263709 0 0 1 603.995739 0.515788c13.251646-3.326773 23.204242 10.021904 26.544877 23.342858V153.866163a28.249847 28.249847 0 0 1-23.259688 26.66963c-6.611961-3.312911-13.279369-3.312911-16.578419-10.035765z m235.646421 33.337038a22.372548 22.372548 0 0 1 0-33.337038l86.288175-90.030795a22.039871 22.039871 0 0 1 33.170699 0 22.289379 22.289379 0 0 1 0 33.364761l-82.961401 90.003072a25.962691 25.962691 0 0 1-36.483611 0z" fill="#8a8a8a" p-id="2622"></path></svg>',width:100,height:100}};isReleased=!1;_emptyTipComponent;_cacheAttrs;constructor(t,e){this.table=e,this._emptyTipOption=Object.assign(this._emptyTipOption,!0===t?{}:t),this._emptyTipComponent=this._createOrUpdateEmptyTipComponent(this._getEmptyTipAttrs())}_createOrUpdateEmptyTipComponent(t){if(this._emptyTipComponent)Mt(t,this._cacheAttrs)||this._emptyTipComponent.setAttributes(t);else{const e=new uE(t);e.name="emptyTip",this.table.scenegraph.stage.defaultLayer.appendChild(e),this._emptyTipComponent=e}return this._emptyTipComponent}resize(){if(!this._emptyTipComponent)return;const t=this.table.transpose||!1===this.table.options.indicatorsAsCol?this.table.getFrozenColsWidth():0,e=!this.table.transpose||this.table.options.indicatorsAsCol?this.table.getFrozenRowsHeight():0,i=(this.table.columnHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().height:this.table.tableNoFrameHeight)-e;this._emptyTipComponent.setAttributes({spaceBetweenTextAndIcon:this._emptyTipOption.spaceBetweenTextAndIcon,x:this.table.tableX+t,y:this.table.tableY+e,width:i,height:r,text:{text:this._emptyTipOption.text,...this._emptyTipOption.textStyle,fill:this._emptyTipOption.textStyle?.color},icon:{...this._emptyTipOption.icon}})}release(){this._emptyTipComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this._emptyTipComponent),this._emptyTipComponent=null,this.isReleased=!0}resetVisible(){(this.table.recordsCount&&0!==this.table.recordsCount||this.table.internalProps.layoutMap.rowCount!==this.table.internalProps.layoutMap.columnHeaderLevelCount)&&this.table.internalProps.layoutMap.colCount!==this.table.internalProps.layoutMap.rowHeaderLevelCount?this.table.scenegraph.stage.defaultLayer.children.includes(this._emptyTipComponent)&&this.table.scenegraph.stage.defaultLayer.removeChild(this._emptyTipComponent):this.table.scenegraph.stage.defaultLayer.children.includes(this._emptyTipComponent)||this.table.scenegraph.stage.defaultLayer.appendChild(this._emptyTipComponent)}_getEmptyTipAttrs(){const t=this.table.transpose||!1===this.table.options.indicatorsAsCol?this.table.getFrozenColsWidth():0,e=!this.table.transpose||this.table.options.indicatorsAsCol?this.table.getFrozenRowsHeight():0,i=(this.table.columnHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().height:this.table.tableNoFrameHeight)-e;return{spaceBetweenTextAndIcon:this._emptyTipOption.spaceBetweenTextAndIcon,x:this.table.tableX+t,y:this.table.tableY+e,width:i,height:r,text:{text:this._emptyTipOption.text,...this._emptyTipOption.textStyle,fill:this._emptyTipOption.textStyle?.color},icon:{...this._emptyTipOption.icon}}}}const $G={startInTotal:0,level:0};class YG{sharedVar;colIndex=0;_showHeader=!0;rowDimensionTree;columnDimensionTree;rowTree;columnTree;cornerHeaderObjs;columnHeaderObjs=[];rowHeaderObjs=[];_cornerHeaderCellFullPathIds=[];_columnHeaderCellFullPathIds=[];_rowHeaderCellFullPathIds=[];_rowHeaderCellFullPathIds_FULL=[];_cornerHeaderCellIds=[];_columnHeaderCellIds=[];_rowHeaderCellIds=[];_rowHeaderCellIds_FULL=[];_columnWidths=[];_columnHeaderLevelCount;_rowHeaderLevelCount;rowsDefine;columnsDefine;indicatorsDefine;columnPaths=[];_headerObjects=[];_headerObjectMap={};_indicators=[];indicatorTitle;indicatorsAsCol=!0;hideIndicatorName=!1;_showRowHeader=!0;_showColumnHeader=!0;_rowHeaderTitle;_columnHeaderTitle;cornerSetting;_indicatorShowType="column";rowHierarchyType;rowExpandLevel;rowHierarchyIndent;rowHierarchyTextStartAlignment=!1;rowDimensionKeys=[];colDimensionKeys=[];indicatorKeys=[];indicatorDimensionKey=QL;_largeCellRangeCache;_CellHeaderPathMap;_table;extensionRows;_rowHeaderExtensionTree={};_extensionRowDimensionKeys=[];fullRowDimensionKeys=[];dataset;pagination;currentPageStartIndex;currentPageEndIndex;hasTwoIndicatorAxes;_chartItemSpanSize;_chartPaddingInner;_chartPaddingOuter;_chartItemBandSize;_chartPadding;_lastCellCol;_lastCellRow;_lastCellHeaderPath;rowSeriesNumberColumn;leftRowSeriesNumberColumn;leftRowSeriesNumberColumnCount=0;rightRowSeriesNumberColumn;rightRowSeriesNumberColumnCount=0;constructor(t,e,i,r){this.sharedVar=t.layoutNodeId,this._table=t,"tree"===t.options.rowHierarchyType&&(this.extensionRows=t.options.extensionRows),this.dataset=e,this._largeCellRangeCache=[],this._CellHeaderPathMap=new Map,this.rowTree=t.internalProps.rowTree,this.columnTree=t.internalProps.columnTree,this.rowsDefine=t.internalProps.rows??[],this.columnsDefine=t.internalProps.columns??[],this.indicatorsDefine=t.internalProps.indicators??[],this.indicatorTitle=t.options.indicatorTitle,this.indicatorsAsCol=t.options.indicatorsAsCol??!0,this.hideIndicatorName=t.options.hideIndicatorName??!1,this.showRowHeader=t.options.showRowHeader??!0,this.showColumnHeader=t.options.showColumnHeader??!0,this.rowHeaderTitle=t.options.rowHeaderTitle,this.columnHeaderTitle=t.options.columnHeaderTitle,this.rowHierarchyType=t.options.rowHierarchyType??"grid",this.rowExpandLevel=t.options.rowExpandLevel??1,this.rowHierarchyIndent=t.options.rowHierarchyIndent??20,this.rowHierarchyTextStartAlignment=t.options.rowHierarchyTextStartAlignment,this.cornerSetting=t.options.corner??{titleOnDimension:"column"},e&&(this.rowTree=e.rowHeaderTree,this.columnTree=e.colHeaderTree),this.indicatorsDefine?.forEach((t=>{"string"==typeof t?this.indicatorKeys.push(t):this.indicatorKeys.push(t.indicatorKey)})),this.columnDimensionTree=i,this.rowDimensionTree=r,this.colDimensionKeys=this.columnDimensionTree.dimensionKeys.valueArr(),this.rowDimensionKeys=this.rowDimensionTree.dimensionKeys.valueArr(),this.fullRowDimensionKeys=this.fullRowDimensionKeys.concat(this.rowDimensionKeys),this.resetRowHeaderLevelCount(),this._table.isPivotChart()&&(this.hasTwoIndicatorAxes=this.indicatorsDefine.some((t=>{if(t.chartSpec&&t.chartSpec.series&&t.chartSpec.series.length>1){const e=t.chartSpec.axes??this._table.pivotChartAxes??[];if(!e.length||e.every((t=>t.orient!==(this.indicatorsAsCol?"top":"right")||!1!==t.visible)))return!0}return!1}))),this.resetColumnHeaderLevelCount(),this._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this._rowHeaderCellFullPathIds_FULL=rL(this._rowHeaderCellFullPathIds_FULL),"tree"===t.options.rowHierarchyType&&this.extensionRows?.length>=1&&(this.generateExtensionRowTree(),this.extensionRows.forEach((t=>{const e=[];t.rows.forEach((t=>{"string"==typeof t?e.push(t):e.push(t.dimensionKey)})),this._extensionRowDimensionKeys.push(e),this.fullRowDimensionKeys=this.fullRowDimensionKeys.concat(e)}))),this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);let n,o=this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||(o=this.columnsDefine.map((t=>"string"==typeof t?t:t.dimensionKey)),this.indicatorsAsCol&&o.push(this.indicatorDimensionKey)),o=this.columnHeaderTitle?[""].concat(o):o;let s=[];if("tree"===this.rowHierarchyType&&this.extensionRows?.length>=1){const t=[];t.push(this.rowDimensionKeys[0]),this._extensionRowDimensionKeys.forEach((e=>{t.push(e[0])})),s=this.extensionRows.reduce(((t,e)=>t.concat(e.rows)),[]),n=this.rowHeaderTitle?[""].concat(t):t}else n=this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr(),!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||(n=this.rowsDefine.map((t=>"string"==typeof t?t:t.dimensionKey)),this.indicatorsAsCol||n.push(this.indicatorDimensionKey)),n=this.rowHeaderTitle?[""].concat(n):n;this.cornerHeaderObjs=this._addCornerHeaders(o,n,this.columnsDefine.concat(...this.rowsDefine,...s)),this.colIndex=0,this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this.indicatorsAsCol&&!this.hideIndicatorName?this._indicatorShowType="column":this.indicatorsAsCol||this.hideIndicatorName?this._indicatorShowType="none":this._indicatorShowType="row",this.generateCellIdsConsiderHideHeader(),this.setPagination(t.options.pagination),this._table.isPivotChart()&&(this._chartItemSpanSize=0,this._chartItemBandSize=0,this._indicators.find((t=>{t?.style?.padding&&(this._chartPadding=t.style.padding),t.chartSpec?.barWidth&&"number"==typeof t.chartSpec.barWidth&&(this._chartItemSpanSize=t.chartSpec?.barWidth);const e=t.chartSpec?.axes?.find((t=>"band"===t.type));return e?.bandSize&&(this._chartItemBandSize=e?.bandSize,this._chartPaddingInner=(nt(e.paddingInner)?e.paddingInner[0]:e.paddingInner)??0,this._chartPaddingOuter=(nt(e.paddingOuter)?e.paddingOuter[0]:e.paddingOuter)??0),this._chartItemSpanSize>0||(t.chartSpec.series?.find((t=>(t.barWidth&&"number"==typeof t.barWidth&&(this._chartItemSpanSize=t.barWidth),this._chartItemSpanSize>0))),!1)}))),this.handleRowSeriesNumber(t.internalProps.rowSeriesNumber),this.setColumnWidths()}handleRowSeriesNumber(t){t&&(Array.isArray(t)?this.rowSeriesNumberColumn=t.map((t=>({id:"",title:t.title,define:t,cellType:t.cellType??"text",width:t.width,style:t.style,format:t.format,field:t.field,icon:t.icon}))):this.rowSeriesNumberColumn=[{id:"",title:t.title,define:t,cellType:t.cellType??"text",style:t.style,width:t.width,format:t.format,field:"",icon:t.icon,isChildNode:!1}],this.leftRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!0)),this.rightRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!1)),this.leftRowSeriesNumberColumnCount=this.leftRowSeriesNumberColumn.length,this.rightRowSeriesNumberColumnCount=this.rightRowSeriesNumberColumn.length)}_generateColHeaderIds(){if(this.columnDimensionTree.tree.children?.length>=1){let t=0;if(this.dataset&&0===(this.dataset.records?.length??0)&&!this.dataset.customColTree&&!this.dataset.customRowTree&&this.indicatorsAsCol&&this.columnDimensionTree.totalLevel<this.columnHeaderLevelCount){t=this.columnHeaderLevelCount-this.columnDimensionTree.totalLevel;for(let e=0;e<t;e++)this._columnHeaderCellFullPathIds.unshift([])}this._addHeaders(this._columnHeaderCellFullPathIds,t,this.columnDimensionTree.tree.children,[],this.columnHeaderObjs)}if(this.columnHeaderTitle){this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);const t=++this.sharedVar.seqId,e=Array(this.colCount-this.rowHeaderLevelCount-this.rightFrozenColCount).fill(t);this._columnHeaderCellFullPathIds.unshift(e);const i={id:t,title:"string"==typeof this.columnHeaderTitle.title?this.columnHeaderTitle.title:this.columnsDefine.reduce(((t,e)=>"string"==typeof e?t:t+(t?`/${e.title}`:`${e.title}`)),""),field:void 0,headerType:this.columnHeaderTitle?.headerType??"text",style:this.columnHeaderTitle?.headerStyle,define:{id:t,disableHeaderHover:!!this.columnHeaderTitle?.disableHeaderHover,disableHeaderSelect:!!this.columnHeaderTitle?.disableHeaderSelect}};this.columnHeaderObjs.push(i),this._headerObjects[t]=i}}_generateRowHeaderIds(){if(this.rowDimensionTree.tree.children?.length>=1)if("tree"===this.rowHierarchyType)this._addHeadersForTreeMode(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowDimensionTree.totalLevel,!0,this.rowsDefine,this.rowHeaderObjs);else{let t=0;if(this.dataset&&0===(this.dataset.records?.length??0)&&!this.dataset.customColTree&&!this.dataset.customRowTree&&!this.indicatorsAsCol&&this.rowDimensionTree.totalLevel<this.rowHeaderLevelCount){t=this.rowHeaderLevelCount-this.rowDimensionTree.totalLevel;for(let e=0;e<t;e++)this._rowHeaderCellFullPathIds_FULL.unshift([])}this._addHeaders(this._rowHeaderCellFullPathIds_FULL,t,this.rowDimensionTree.tree.children,[],this.rowHeaderObjs)}if(this.rowHeaderTitle){this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);const t=++this.sharedVar.seqId,e=Array(this._rowHeaderCellFullPathIds_FULL[0]?.length??this.rowDimensionTree.tree.size).fill(t);this._rowHeaderCellFullPathIds_FULL.unshift(e);const i={id:t,title:"string"==typeof this.rowHeaderTitle.title?this.rowHeaderTitle.title:this.rowsDefine.reduce(((t,e)=>"string"==typeof e?t:t+(t?`/${e.title}`:`${e.title}`)),""),field:void 0,headerType:this.rowHeaderTitle?.headerType??"text",style:this.rowHeaderTitle?.headerStyle,define:{id:t,disableHeaderHover:!!this.rowHeaderTitle?.disableHeaderHover,disableHeaderSelect:!!this.rowHeaderTitle?.disableHeaderSelect}};this.rowHeaderObjs.push(i),this._headerObjects[t]=i}}_addHeaders(t,e,i,r,n){const o=this;t[e]||function(e){const i=t[e]=[];if(0===o.colIndex)return i;const r=t[e-1];for(let t=0;t<r?.length;t++)i[t]=r[t]}(e);for(let o=0;o<i.length;o++){gG(i[o],t,n,r,e,this)}}_addHeadersForTreeMode(t,e,i,r,n,o,s,a){const l=this;t[e]||function(e){const i=t[e]=[];if(0===l.colIndex)return i;const r=t[e-1];for(let t=0;t<r?.length;t++)i[t]=r[t]}(e);for(let l=0;l<i.length;l++){pG(i[l],t,a,r,e,n,o,s,this)}}_addCornerHeaders(t,e,i){const r=[];if("all"===this.cornerSetting.titleOnDimension)if(this.indicatorsAsCol){let n=-1;t&&t.forEach(((t,e)=>{t===this.indicatorDimensionKey&&(n=e);const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a,this._cornerHeaderCellFullPathIds[e]||(this._cornerHeaderCellFullPathIds[e]=[]);for(let t=0;t<this.rowHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[e][t]=o})),e&&e.forEach(((t,e)=>{const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a,this._cornerHeaderCellFullPathIds[n]||(this._cornerHeaderCellFullPathIds[n]=[]),this._cornerHeaderCellFullPathIds[n][e]=o}))}else{let n=-1;e&&e.forEach(((t,e)=>{t===this.indicatorDimensionKey&&(n=e);const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a;for(let t=0;t<this.columnHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[t]||(this._cornerHeaderCellFullPathIds[t]=[]),this._cornerHeaderCellFullPathIds[t][e]=o})),t&&t.forEach(((t,e)=>{const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a,this._cornerHeaderCellFullPathIds[e][n]=o}))}else if("row"===this.cornerSetting.titleOnDimension||"column"===this.cornerSetting.titleOnDimension){const n="row"===this.cornerSetting?.titleOnDimension?e:t;n&&n.forEach(((t,e)=>{const n=++this.sharedVar.seqId,o=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),s={id:n,title:t===this.indicatorDimensionKey?this.indicatorTitle:o?o.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:o?.showSortInCorner,sort:o?.sort,define:{showSort:o?.showSortInCorner,sort:o?.sort,dimensionKey:t,id:n,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:o?.cornerDropDownMenu,pivotInfo:{value:o?.title??"",dimensionKey:t,isPivotCorner:!0},description:o?.cornerDescription};if(r[n]=s,this._headerObjects[n]=s,"column"===this.cornerSetting.titleOnDimension){this._cornerHeaderCellFullPathIds[e]||(this._cornerHeaderCellFullPathIds[e]=[]);for(let t=0;t<this.rowHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[e][t]=n}else if("row"===this.cornerSetting.titleOnDimension)for(let t=0;t<this.columnHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[t]||(this._cornerHeaderCellFullPathIds[t]=[]),this._cornerHeaderCellFullPathIds[t][e]=n}))}else{const t=++this.sharedVar.seqId,e={id:t,title:"",field:"维度名称",style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",define:{dimensionKey:"维度名称",id:t,value:"",disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect}};r[t]=e,this._headerObjects[t]=e;for(let e=0;e<this.columnHeaderLevelCount;e++)for(let i=0;i<this.rowHeaderLevelCount;i++)this._cornerHeaderCellFullPathIds[e]||(this._cornerHeaderCellFullPathIds[e]=[]),this._cornerHeaderCellFullPathIds[e][i]=t}return r}generateExtensionRowTree(){this.extensionRows.forEach(((t,e)=>{const i=this._rowHeaderCellFullPathIds_FULL;this._rowHeaderCellFullPathIds_FULL=[],i.forEach(((e,i)=>{const r=e[e.length-1];let n,o;if(this.colIndex=0,"function"==typeof t.rowTree){const i=this.findFullCellIds(e);n=t.rowTree(i.map((t=>({dimensionKey:this._headerObjects[t].field,value:this._headerObjects[t].title}))))}else n=vt(t.rowTree);this._rowHeaderExtensionTree[r]?(this._rowHeaderExtensionTree[r].reset(this._rowHeaderExtensionTree[r].tree.children,!0),o=this._rowHeaderExtensionTree[r]):(o=new cG(n??[],this.sharedVar,this.rowHierarchyType,void 0),this._rowHeaderExtensionTree[r]=o);const s=[];this._addHeadersForTreeMode(s,0,o.tree.children,[],o.totalLevel,!0,t.rows,this.rowHeaderObjs);for(let t=0;t<s[0].length;t++)this._rowHeaderCellFullPathIds_FULL.push(e.concat(s[0][t]))}))}))}setColumnWidths(){const t=new Array(this.colCount).fill(void 0);if(this.leftRowSeriesNumberColumnCount&&(t[0]=this.leftRowSeriesNumberColumn[0]),this.showHeader&&this.showRowHeader)if(this.rowHeaderTitle&&(t[0+this.leftRowSeriesNumberColumnCount]={}),"tree"===this.rowHierarchyType){const e=this.rowDimensionKeys[0];if(e){const i=this.rowsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===e));i&&(t[0+(this.rowHeaderTitle?1:0)+this.leftRowSeriesNumberColumnCount]={width:i.width,minWidth:i.minWidth,maxWidth:i.maxWidth})}this._extensionRowDimensionKeys?.forEach(((e,i)=>{const r=e[0];if(r){const e=this.extensionRows[i].rows?.find((t=>"string"!=typeof t&&t.dimensionKey===r));e&&(t[i+1+(this.rowHeaderTitle?1:0)+this.leftRowSeriesNumberColumnCount]={width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth})}}))}else this.rowDimensionKeys.forEach(((e,i)=>{const r=this.rowsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===e));r&&(t[i+(this.rowHeaderTitle?1:0)+this.leftRowSeriesNumberColumnCount]={width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth})}));if(this.indicatorsAsCol)for(let e=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;e<this.colCount;e++){const i=this.getBody(e,this.columnHeaderLevelCount);t[e]={width:i?.width,minWidth:i?.minWidth,maxWidth:i?.maxWidth}}else{let e,i,r,n=0;this._indicators?.forEach(((t,o)=>{"number"==typeof t.width?n=Math.max(t.width,n):"auto"===t.width&&(r=!0),"number"==typeof t.minWidth&&(i=Math.max(t.minWidth,i??0)),"number"==typeof t.maxWidth&&(e=Math.min(t.maxWidth,e??Number.MAX_VALUE))})),n=n>0?n:r?"auto":void 0,t.fill({width:n,minWidth:i,maxWidth:e},this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount,this.colCount-this.rightFrozenColCount)}this._columnWidths=t}get columnWidths(){return this._columnWidths}getColumnWidthDefined(t){return this._columnWidths[t]}get showHeader(){return this._showHeader}set showHeader(t){this._showHeader=t}get showColumnHeader(){return this._showColumnHeader}set showColumnHeader(t){this._showColumnHeader=t}get showRowHeader(){return this._showRowHeader}set showRowHeader(t){this._showRowHeader=t}get columnHeaderTitle(){return this._columnHeaderTitle}set columnHeaderTitle(t){this._columnHeaderTitle=t}get rowHeaderTitle(){return this._rowHeaderTitle}set rowHeaderTitle(t){this._rowHeaderTitle=t}getHeaderFieldKey(t,e){}getCellLocation(t,e){return this.isCornerHeader(t,e)?"cornerHeader":this.isColumnHeader(t,e)?"columnHeader":this.isRowHeader(t,e)?"rowHeader":"body"}isHeader(t,e){return t>=this.leftRowSeriesNumberColumnCount&&t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount||(e>=0&&e<this.columnHeaderLevelCount||(t>=this.colCount-this.rightHeaderColCount||e>=this.rowCount-this.bottomHeaderRowCount))}isCornerHeader(t,e){return t>=0&&t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount&&e>=0&&e<this.columnHeaderLevelCount}isColumnHeader(t,e){return t>=this.rowHeaderLevelCount&&e>=0&&e<this.columnHeaderLevelCount}isRowHeader(t,e){return t>=this.leftRowSeriesNumberColumnCount&&t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount&&e>=this.columnHeaderLevelCount}isFrozen(t,e){return this.isFrozenColumn(t)||this.isRightFrozenColumn(t)||this.isBottomFrozenRow(e)||this.isFrozenRow(e)||this.isSeriesNumberInBody(t,e)||this.isSeriesNumberInHeader(t,e)}isFrozenColumn(t,e){if(Z(e)){if(t>=0&&t<this.frozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.frozenColCount>0&&t>=0&&t<this.frozenColCount)return!0;return!1}isRightFrozenColumn(t,e){if(Z(e)){if(t>=this.colCount-this.rightFrozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.rightFrozenColCount>0&&t>=this.colCount-this.rightFrozenColCount)return!0;return!1}isFrozenRow(t,e){if(Z(e)){if(e>=0&&e<this.frozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.frozenRowCount>0&&e>=0&&e<this.frozenRowCount)return!0;return!1}isBottomFrozenRow(t,e){if(Z(e)){if(e>=this.rowCount-this.bottomFrozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.bottomFrozenRowCount>0&&e>=this.rowCount-this.bottomFrozenRowCount)return!0;return!1}isLeftBottomCorner(t,e){return t>=0&&t<this.rowHeaderLevelCount&&e>=this.rowCount-this.bottomFrozenRowCount}isRightTopCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=0&&e<this.columnHeaderLevelCount}isRightBottomCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=this.rowCount-this.bottomFrozenRowCount}getColumnHeaderRange(){return{start:{col:this.rowHeaderLevelCount,row:0},end:{col:this.colCount-1,row:this.columnHeaderLevelCount-1}}}getRowHeaderRange(){return{start:{col:0,row:this.columnHeaderLevelCount},end:{col:this.rowHeaderLevelCount-1,row:this.rowCount-1}}}getCornerHeaderRange(){return{start:{col:0,row:0},end:{col:this.rowHeaderLevelCount-1,row:this.columnHeaderLevelCount-1}}}getBodyRange(){return{start:{col:this.rowHeaderLevelCount,row:this.columnHeaderLevelCount},end:{col:this.colCount-1,row:this.rowCount-1}}}resetCellIds(){}get frozenColCount(){return this._table.internalProps.frozenColCount?this.colCount>this._table.internalProps.frozenColCount?this._table.internalProps.frozenColCount:this.colCount:0}get frozenRowCount(){return this._table.internalProps.frozenRowCount?this.rowCount>=this._table.internalProps.frozenRowCount?this._table.internalProps.frozenRowCount:this.rowCount:0}get headerLevelCount(){return this.columnHeaderLevelCount}resetColumnHeaderLevelCount(){if(this.showHeader&&this.showColumnHeader){if(this._table.isPivotChart()&&this.indicatorsAsCol&&!this.dataset?.colKeys?.length&&0===this.columnDimensionTree?.tree?.level&&!this.hasTwoIndicatorAxes)return void(this.columnHeaderLevelCount=0);let t=this.indicatorsAsCol&&this.hideIndicatorName&&this.colDimensionKeys[this.colDimensionKeys.length-1]===this.indicatorDimensionKey?this.columnDimensionTree.totalLevel-1:this.columnDimensionTree.totalLevel;return this.columnHeaderTitle&&(t+=1),this._table.isPivotChart()&&this.indicatorsAsCol&&!this.hasTwoIndicatorAxes&&zG(this.indicatorsDefine)&&(t-=1),0!==t||!this.dataset||this.dataset.customColTree||this.dataset.customRowTree?!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||"column"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(t=this.columnsDefine.length??0,!this.hideIndicatorName&&this.indicatorsAsCol&&t++):"row"===this.cornerSetting.titleOnDimension?t=1:0!==(this.dataset.records?.length??0)||"column"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(t=this.columnsDefine.length??0),void(this.columnHeaderLevelCount=t)}this.columnHeaderLevelCount=this.indicatorsAsCol?this.hideIndicatorName?0:1:0}resetRowHeaderLevelCount(){if(this.showHeader&&this.showRowHeader){if("tree"===this.rowHierarchyType){const t=this.extensionRows?.length??0;return this.rowHeaderTitle?void(this.rowHeaderLevelCount=2+t):void(this.rowHeaderLevelCount=1+t)}const t=this.rowDimensionTree.totalLevel;let e=t;return this.indicatorsAsCol||this.hideIndicatorName&&this.rowDimensionKeys[this.rowDimensionKeys.length-1]===this.indicatorDimensionKey&&(e=t-1),this.rowHeaderTitle&&(e+=1),0!==e||!this.dataset||this.dataset.customColTree||this.dataset.customRowTree?!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||"row"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(e=this.rowsDefine.length,this.hideIndicatorName||this.indicatorsAsCol||e++):"column"===this.cornerSetting.titleOnDimension?e=1:0!==(this.dataset.records?.length??0)||"row"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(e=this.rowsDefine.length??0),void(this.rowHeaderLevelCount=e)}this.rowHeaderLevelCount=this.indicatorsAsCol||this.hideIndicatorName?0:1}get columnHeaderLevelCount(){return this._columnHeaderLevelCount}set columnHeaderLevelCount(t){this._columnHeaderLevelCount=t}get rowHeaderLevelCount(){return this._rowHeaderLevelCount}set rowHeaderLevelCount(t){this._rowHeaderLevelCount=t}get colCount(){return(this.columnDimensionTree.totalLevel>0||this._table.isPivotChart()||this.dataset.records?.length>0||this.dataset.records&&!Array.isArray(this.dataset.records)?this.columnDimensionTree.tree.size:0)+this.rowHeaderLevelCount+this.rightHeaderColCount+this.leftRowSeriesNumberColumnCount}get rowCount(){return((this._table.records||this.dataset.records)&&(!Array.isArray(this._table.records)||this._table.records.length>0)&&this._indicators?.length>0&&!this._rowHeaderCellIds?.length?1:this._rowHeaderCellIds?.length??0)+this.columnHeaderLevelCount+this.bottomHeaderRowCount}get bodyRowSpanCount(){return this.rowDimensionTree.tree.size}get bottomFrozenRowCount(){if(!this._table.isPivotChart())return this._table.internalProps.bottomFrozenRowCount?this.rowCount-this.headerLevelCount>=this._table.internalProps.bottomFrozenRowCount?this._table.internalProps.bottomFrozenRowCount:this.rowCount-this.headerLevelCount:0;if(this.indicatorKeys.length>=1&&zG(this.indicatorsDefine)){const t=this._table.pivotChartAxes.find((t=>"bottom"===t.orient));return!1===t?.visible?0:(this.indicatorsAsCol,1)}return 0}get rightFrozenColCount(){if(!this._table.isPivotChart())return this._table.internalProps.rightFrozenColCount?this.colCount-this.rowHeaderLevelCount>=this._table.internalProps.rightFrozenColCount?this._table.internalProps.rightFrozenColCount:this.colCount-this.rowHeaderLevelCount:0;const t=this._table.pivotChartAxes.find((t=>"right"===t.orient));return!1===t?.visible||this.indicatorsAsCol?0:this.hasTwoIndicatorAxes?1:0}get bodyRowCount(){return this.rowCount-this.bottomFrozenRowCount-this.headerLevelCount}get bodyColCount(){return this.colCount-this.rightFrozenColCount-this.rowHeaderLevelCount}get headerObjects(){return this._headerObjects}get columnObjects(){return this._indicators}getCellId(t,e){if(e>=0&&t>=0){if(this.isSeriesNumber(t,e))return"";if(this.isCornerHeader(t,e))return this._cornerHeaderCellIds[e]?.[t-this.leftRowSeriesNumberColumnCount];if(this.isColumnHeader(t,e))return this._columnHeaderCellIds[e]?.[t-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount];if(this.isRowHeader(t,e))return this._rowHeaderCellIds[e-this.columnHeaderLevelCount]?.[t-this.leftRowSeriesNumberColumnCount];if(this.isRightFrozenColumn(t,e))return this._rowHeaderCellIds[e-this.columnHeaderLevelCount]?.[this.rowHeaderLevelCount-1];if(this.isBottomFrozenRow(t,e))return this._columnHeaderCellIds[this.columnHeaderLevelCount-1]?.[t-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount]}}getHeader(t,e){if(this.isSeriesNumberInHeader(t,e))return this.getSeriesNumberHeader(t,e);const i=this.getCellId(t,e);return this._headerObjectMap[i]??{id:void 0,field:"",headerType:"text",define:void 0}}getHeaderField(t,e){const i=this.getCellId(t,e);return this._headerObjectMap[i]?.field||this.getBody(t,e)?.field}getHeaderCellAdressById(t){for(let e=0;e<this._columnHeaderCellIds.length;e++){const i=this._columnHeaderCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return{col:r+this._table.frozenColCount,row:e}}for(let e=0;e<this._rowHeaderCellIds.length;e++){const i=this._rowHeaderCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return{col:r,row:e+this._table.frozenRowCount}}for(let e=0;e<this._cornerHeaderCellIds.length;e++){const i=this._cornerHeaderCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return{col:r,row:e}}}getHeaderCellAddressByField(t){const e=this.headerObjects.find((e=>e&&e.field===t));return this.getHeaderCellAdressById(e.id)}getBody(t,e){if(this.isSeriesNumber(t,e))return this.getSeriesNumberBody(t,e);const i=this.getCellHeaderPaths(t,e);if(this.indicatorsAsCol){const t=i.colHeaderPaths?.find((t=>t.indicatorKey))?.indicatorKey;return Z(t)?this._indicators?.find((e=>e.indicatorKey===t))??this._indicators[0]??{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}:{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}}const r=i.rowHeaderPaths?.find((t=>t.indicatorKey))?.indicatorKey;return Z(r)?this._indicators?.find((t=>t.indicatorKey===r))??this._indicators[0]??{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}:{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}}getCellRange(t,e){const i={start:{col:t,row:e},end:{col:t,row:e}};if(!this.isHeader(t,e)||-1===t||-1===e)return i;if(this.isRightFrozenColumn(t,e)||this.isBottomFrozenRow(t,e))return i;if(this._table.isPivotChart()){if(this.isLeftBottomCorner(t,e))return{start:{col:0,row:this.rowCount-this.bottomFrozenRowCount},end:{col:this.frozenColCount-1,row:this.rowCount-1}};if(this.isRightTopCorner(t,e))return{start:{col:this.colCount-this.rightFrozenColCount,row:0},end:{col:this.colCount-1,row:this.frozenRowCount-1}};if(this.isRightBottomCorner(t,e))return{start:{col:this.colCount-this.rightFrozenColCount,row:this.rowCount-this.bottomFrozenRowCount},end:{col:this.colCount-1,row:this.rowCount-1}}}for(let i=0;i<this._largeCellRangeCache.length;i++){const r=this._largeCellRangeCache[i];if(t>=r.start.col&&t<=r.end.col&&e>=r.start.row&&e<=r.end.row)return r}if(this.isHeader(t,e)&&-1!==t&&-1!==e){const r=this.getCellId(t,e);for(let n=t-1;n>=0&&r===this.getCellId(n,e);n--)i.start.col=n;for(let n=t+1;n<(this.colCount??0)&&r===this.getCellId(n,e);n++)i.end.col=n;for(let n=e-1;n>=0&&r===this.getCellId(t,n);n--)i.start.row=n;for(let n=e+1;n<(this.rowCount??0)&&!(r!==this.getCellId(t,n)||this.isSeriesNumberInHeader(t,e)&&n>=this.columnHeaderLevelCount);n++)i.end.row=n}return(i.end.col-i.start.col>100||i.end.row-i.start.row>100)&&this._largeCellRangeCache.push(i),i}isCellRangeEqual(t,e,i,r){const n=this.getCellRange(t,e),o=this.getCellRange(i,r);return n.start.col===o.start.col&&n.end.col===o.end.col&&n.start.row===o.start.row&&n.end.row===o.end.row}getBodyIndexByRow(t){return t<this.columnHeaderLevelCount||t>=this.rowCount-this.bottomHeaderRowCount?-1:t-this.columnHeaderLevelCount}get bottomHeaderRowCount(){return this._table.isPivotChart()?this.bottomFrozenRowCount:0}get rightHeaderColCount(){return this._table.isPivotChart()?this.rightFrozenColCount:0}getBodyIndexByCol(t){return t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount||t>=this.colCount-this.rightHeaderColCount?-1:t-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount}getRecordStartRowByRecordIndex(t){return this.columnHeaderLevelCount+t}getRecordShowIndexByCell(t,e){}getCellHeaderPathsWithTreeNode(t,e){if(t===this._lastCellCol&&e===this._lastCellRow)return this._lastCellHeaderPath;for(let i=0;i<this._largeCellRangeCache.length;i++){const r=this._largeCellRangeCache[i];if(t>=r.start.col&&t<=r.end.col&&e>=r.start.row&&e<=r.end.row)break}const i=this.getBodyIndexByCol(t),r=this.getBodyIndexByRow(e)+this.currentPageStartIndex;let n=[],o=[];if(e>=0&&i>=0&&(n=this.columnDimensionTree.getTreePath(i,this.showHeader&&this.showColumnHeader?e-(this.columnHeaderTitle?1:0):this.columnDimensionTree.totalLevel)),t>=0&&r>=0)if("tree"===this.rowHierarchyType){const t=this._rowHeaderCellFullPathIds[r];let e=this.rowDimensionTree,i=0;for(;e;){const r=[];let n=t[i];for(r.push(n);;){const t=this._headerObjectMap[n];if(!t?.parentCellId)break;r.unshift(t.parentCellId),n=t.parentCellId}const s=e.getTreePathByCellIds(r);o=o.concat(s),e=this._rowHeaderExtensionTree[t[i]],i++}}else o=this.rowDimensionTree.getTreePath(r,this.showHeader&&this.showRowHeader?t-(this.rowHeaderTitle?1:0)-this.leftRowSeriesNumberColumnCount:this.rowDimensionTree.totalLevel);const s={colHeaderPaths:n,rowHeaderPaths:o,cellLocation:this.getCellLocation(t,e)};return this._lastCellHeaderPath=s,this._lastCellCol=t,this._lastCellRow=e,s}getCellHeaderPaths(t,e){const i=this.getCellHeaderPathsWithTreeNode(t,e),r={colHeaderPaths:[],rowHeaderPaths:[],cellLocation:i.cellLocation};return i.colHeaderPaths?.forEach((t=>{const e={};e.dimensionKey=t.dimensionKey,e.indicatorKey=t.indicatorKey,e.value=t.value??this.getIndicatorInfoByIndicatorKey(t.indicatorKey)?.title??"",e.virtual=t.virtual,r.colHeaderPaths.push(e)})),i.rowHeaderPaths?.forEach((t=>{if("axis"!==t.dimensionKey){const e={};e.dimensionKey=t.dimensionKey,e.indicatorKey=t.indicatorKey,e.value=t.value??this.getIndicatorInfoByIndicatorKey(t.indicatorKey)?.title??"",e.virtual=t.virtual,r.rowHeaderPaths.push(e)}})),r}getIndicatorInfoByIndicatorKey(t){const e=this.indicatorsDefine?.find((e=>"string"!=typeof e&&(!!t&&e.indicatorKey===t)));return e}findFullCellIds(t){const e=[];for(let i=0;i<t.length;i++){let r=t[i];for(e.push(r);;){const t=this._headerObjectMap[r];if(!t?.parentCellId)break;e.unshift(t.parentCellId),r=t.parentCellId}}return e}getHeaderDimension(t,e){if(this.isHeader(t,e)){const i=this.getHeader(t,e);return this.rowsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===i.field))??this.columnsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===i.field))}}isColumnIndicatorHeader(t,e){return"column"===this._indicatorShowType&&e===this.columnHeaderLevelCount-1&&t>=this.rowHeaderLevelCount}isRowIndicatorHeader(t,e){return"row"===this._indicatorShowType&&t===this.rowHeaderLevelCount-1&&e>=this.columnHeaderLevelCount}isIndicatorHeader(t,e){return this.isColumnIndicatorHeader(t,e)||this.isRowIndicatorHeader(t,e)}toggleHierarchyState(t,e){const i=this._rowHeaderCellFullPathIds_FULL.slice(0),r=i.map(((e,i)=>({col:t,row:i+this.columnHeaderLevelCount}))),n=this.getHeader(t,e);if(n.define.hierarchyState=n.define.hierarchyState===yE.collapse?yE.expand:yE.collapse,this.rowDimensionTree.reset(this.rowDimensionTree.tree.children,!0),this._rowHeaderCellFullPathIds_FULL=[],this.rowDimensionKeys=this.rowDimensionTree.dimensionKeys.valueArr(),this.fullRowDimensionKeys=[],this.fullRowDimensionKeys=this.fullRowDimensionKeys.concat(this.rowDimensionKeys),this._addHeadersForTreeMode(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowDimensionTree.totalLevel,!0,this.rowsDefine,this.rowHeaderObjs),this.rowHeaderTitle){const t=++this.sharedVar.seqId,e=Array(this.rowCount-this.columnHeaderLevelCount).fill(t);this._rowHeaderCellFullPathIds_FULL.unshift(e);const i={id:t,title:"string"==typeof this.rowHeaderTitle.title?this.rowHeaderTitle.title:this.rowsDefine.reduce(((t,e)=>"string"==typeof e?t:t+(t?`/${e.title}`:`${e.title}`)),""),field:void 0,headerType:this.rowHeaderTitle?.headerType??"text",style:this.rowHeaderTitle?.headerStyle,define:{field:"",headerType:"text",cellType:"text",disableHeaderHover:!!this.rowHeaderTitle?.disableHeaderHover,disableHeaderSelect:!!this.rowHeaderTitle?.disableHeaderSelect}};this.rowHeaderObjs.push(i),this._headerObjects[t]=i}this._rowHeaderCellFullPathIds_FULL=rL(this._rowHeaderCellFullPathIds_FULL),"tree"===this.rowHierarchyType&&this.extensionRows?.length>=1&&this.generateExtensionRowTree(),this.colIndex=0,this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0;const o=function(t,e,i,r,n,o){const s=o.columnHeaderLevelCount,a=[],l=[];for(let t=0;t<i.length;t++)r.includes(i[t])||l.push(n[t]);for(let e=0;e<r.length;e++)if(!i.includes(r[e])){const i={col:t,row:s+e};a.push(i)}let h=o.getParentCellId(t,e),c=o.getRowHeaderCellAddressByCellId(h);const d=[];for(c&&d.push(c);h;)h=o.getParentCellId(c.col,c.row),h&&(c=o.getRowHeaderCellAddressByCellId(h),d.push(c));return{addCellPositions:a,removeCellPositions:l,updateCellPositions:d}}(t,e,i.map((e=>e[t-this.leftRowSeriesNumberColumnCount])),this._rowHeaderCellFullPathIds_FULL.map((e=>e[t-this.leftRowSeriesNumberColumnCount])),r,this);return this.generateCellIdsConsiderHideHeader(),this.setPagination(this.pagination),o}isHeaderForColWidth(t,e){return this.isHeader(t,e)}getHeaderForColWidth(t,e){return this.getHeader(t,e)}getPivotCellAdress(t){if(!Array.isArray(t))return;let e,i,r=this.rowTree,n=this.columnTree;for(let o=0;o<t.length;o++){const s=t[o];if((s.isPivotCorner||!s.value)&&o===t.length-1){if("row"===this?.cornerSetting?.titleOnDimension){let t=0;return"grid"===this.rowHierarchyType&&(t=this.rowDimensionKeys.indexOf(s.dimensionKey)),-1===t?void 0:{col:(this.rowHeaderTitle?t+1:t)+this.leftRowSeriesNumberColumnCount,row:0}}const t=this.colDimensionKeys.indexOf(s.dimensionKey);return-1===t?void 0:{col:0+this.leftRowSeriesNumberColumnCount,row:this.columnHeaderTitle?t+1:t}}let a=!1;for(let t=0;t<n.length;t++){const e=n[t];if((Z(s.dimensionKey)&&e.dimensionKey===s.dimensionKey||Z(s.indicatorKey)&&e.indicatorKey===s.indicatorKey)&&e.value===s.value){n=e.children,i=e,a=!0;break}}if(!a)for(let t=0;t<r.length;t++){const i=r[t];if((Z(s.dimensionKey)&&i.dimensionKey===s.dimensionKey||Z(s.indicatorKey)&&i.indicatorKey===s.indicatorKey)&&i.value===s.value){r=i.children,e=i;break}}}let o=0,s=0;if(e){s=this.columnHeaderLevelCount;const{startInTotal:t,level:i}=e;return s+=t,o="grid"===this.rowHierarchyType?(this.rowHeaderTitle?i+1:i)+this.leftRowSeriesNumberColumnCount:0+this.leftRowSeriesNumberColumnCount,{col:o,row:s}}if(i){o=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=i;return o+=t,s=this.columnHeaderTitle?e+1:e,{col:o,row:s}}}getPivotDimensionInfo(t,e){const{colHeaderPaths:i,rowHeaderPaths:r}=this.getCellHeaderPaths(t,e),n=[];return i.length?i.forEach(((t,e)=>{n.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):r.length?r.forEach(((t,e)=>{n.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):this.isCornerHeader(t,e)&&("row"===this?.cornerSetting?.titleOnDimension?n.push({dimensionKey:this.rowDimensionKeys[(this.rowHeaderTitle?t-1:t)-this.leftRowSeriesNumberColumnCount],isPivotCorner:!0}):n.push({dimensionKey:this.colDimensionKeys[this.columnHeaderTitle?e-1:e],isPivotCorner:!0})),n}getIndicatorKey(t,e){return this.getBody(t,e)?.indicatorKey}getParentCellId(t,e){if(0!==e)return this.isColumnHeader(t,e)?this.getCellId(t,e-1):this.isRowHeader(t,e)?this.getCellId(t-1,e):void 0}getRowHeaderCellAddressByCellId(t){let e,i;if(this._rowHeaderCellIds.find(((r,n)=>!!r.find(((i,r)=>i===t&&(e=r,!0)))&&(i=n,!0))),Z(e)&&Z(i))return{col:e,row:i+this.columnHeaderLevelCount}}canMoveHeaderPosition(t,e){if(this.isSeriesNumberInHeader(e.col,e.row)||this.isSeriesNumberInHeader(t.col,t.row))return!1;if(t.col<0||t.row<0||e.col<0||e.row<0)return!1;this.isSeriesNumberInBody(e.col,e.row)&&this.isSeriesNumberInBody(t.col,t.row)&&(t.col=t.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1,e.col=e.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1);const i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){return this.getParentCellId(t.col,i.start.row)===this.getParentCellId(e.col,i.start.row)}if(this.isRowHeader(t.col,t.row)){if("tree"!==this.rowHierarchyType){return this.getParentCellId(i.start.col,t.row)===this.getParentCellId(i.start.col,e.row)}{const i=vt(this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths),r=vt(this.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths);if(i.pop(),r.pop(),i.length<=r.length){if(i.length===r.length)return!i.find(((t,e)=>t.dimensionKey!==r[e].dimensionKey||t.value!==r[e].value));if(i.length>0)for(let t=0;t<i.length;t++)if(i[t].startInTotal!==r[t].startInTotal)return!1;return!0}}}return!1}moveHeaderPosition(t,e){if(this.canMoveHeaderPosition(t,e)&&!this.isCellRangeEqual(t.col,t.row,e.col,e.row)){const i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){const r=i.end.col-i.start.col+1;let n;const o=this.getCellRange(e.col,i.start.row);if(n=e.col>=t.col?o.end.col-r+1:o.start.col,n===i.start.col)return null;for(let t=0;t<this._columnHeaderCellFullPathIds.length;t++){const e=this._columnHeaderCellFullPathIds[t].splice(i.start.col-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount,r);e.unshift(n-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columnHeaderCellFullPathIds[t],e)}const s=this._columnWidths.splice(i.start.col-this.leftRowSeriesNumberColumnCount,r);return s.unshift(n-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columnWidths,s),this.columnDimensionTree.movePosition(this.getCellHeaderPathsWithTreeNode(t.col,t.row).colHeaderPaths.length-1,i.start.col-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount,o.start.col-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount),this.columnDimensionTree.reset(this.columnDimensionTree.tree.children,!0),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0,{sourceIndex:i.start.col,targetIndex:n,sourceSize:r,targetSize:o.end.col-o.start.col+1,moveType:"column"}}if(this.isRowHeader(t.col,t.row)){let r;const n=this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,o=this.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths,s=n[n.length-1],a=o[n.length-1],l=s.size;if(r=e.row>=t.row?a.startInTotal+a.size-l:a.startInTotal,r===i.start.row-this.columnHeaderLevelCount)return null;const h=this._rowHeaderCellIds.splice(i.start.row-this.columnHeaderLevelCount,l);h.unshift(r-this.currentPageStartIndex,0),Array.prototype.splice.apply(this._rowHeaderCellIds,h);const c=this._rowHeaderCellFullPathIds.splice(i.start.row-this.columnHeaderLevelCount,l);c.unshift(r-this.currentPageStartIndex,0),Array.prototype.splice.apply(this._rowHeaderCellFullPathIds,c);const d=this._rowHeaderCellIds_FULL.splice(i.start.row-this.columnHeaderLevelCount+this.currentPageStartIndex,l);d.unshift(r,0),Array.prototype.splice.apply(this._rowHeaderCellIds_FULL,d);const u=this._rowHeaderCellFullPathIds_FULL.splice(i.start.row-this.columnHeaderLevelCount+this.currentPageStartIndex,l);return u.unshift(r,0),Array.prototype.splice.apply(this._rowHeaderCellFullPathIds_FULL,u),this.rowDimensionTree.movePosition(n.length-1,i.start.row-this.columnHeaderLevelCount,r+(e.row>t.row?s.size-1:0)),this.rowDimensionTree.reset(this.rowDimensionTree.tree.children,!0),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0,{sourceIndex:i.start.row,targetIndex:r+this.columnHeaderLevelCount,sourceSize:l,targetSize:a.size,moveType:"row"}}}return null}getCellAdressByHeaderPath(t){let e,i,r=!1,n=!1;if(Array.isArray(t)){if(t.length>this.rowDimensionKeys.length+this.colDimensionKeys.length)return;e=t.filter((t=>this.colDimensionKeys.indexOf(t.dimensionKey)>=0||this.colDimensionKeys.indexOf(this.indicatorDimensionKey)>=0&&t.indicatorKey)),i=t.filter((t=>this.rowDimensionKeys.indexOf(t.dimensionKey)>=0||this.rowDimensionKeys.indexOf(this.indicatorDimensionKey)>=0&&t.indicatorKey))}else e=t.colHeaderPaths,i=t.rowHeaderPaths,"body"===t?.cellLocation&&this._table.isPivotTable()&&(n=!0);if(!Array.isArray(e)&&!Array.isArray(i))return;if(e?.sort(((t,e)=>this.colDimensionKeys.indexOf(t.dimensionKey??this.indicatorDimensionKey)-this.colDimensionKeys.indexOf(e.dimensionKey??this.indicatorDimensionKey))),i?.sort(((t,e)=>this.fullRowDimensionKeys.indexOf(t.dimensionKey??this.indicatorDimensionKey)-this.fullRowDimensionKeys.indexOf(e.dimensionKey??this.indicatorDimensionKey))),e?.forEach((t=>{t.isPivotCorner&&(r=!0)})),i?.forEach((t=>{t.isPivotCorner&&(r=!0)})),r)if("row"===this.cornerSetting.titleOnDimension){for(let t=0;t<this.rowDimensionKeys.length;t++)if(i[0].dimensionKey===this.rowDimensionKeys[t])return{col:t+this.leftRowSeriesNumberColumnCount,row:0}}else for(let t=0;t<this.colDimensionKeys.length;t++)if(e[0].dimensionKey===this.colDimensionKeys[t])return{col:0,row:t};let o,s,a,l,h=!1;e?.length>=1&&i?.length>=1&&(h=!0);let c,d,u=this.rowTree,g=this.columnTree;if(e)for(let t=0;t<e.length;t++){const i=e[t];for(let t=0;t<g.length;t++){const e=g[t];if(!Z(i.indicatorKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Z(i.indicatorKey)&&e.indicatorKey===i.indicatorKey){g=e.children,h&&!g?d=e:h||(d=e);break}}}if(i?.length>=1)if("tree"===this.rowHierarchyType){const t=i[i.length-1],e=this.headerObjects.filter((e=>(e?.field===t.dimensionKey||e?.field===t.indicatorKey)&&e?.title===t.value)).map((t=>t.id)),r=this._rowHeaderCellIds.filter((t=>e.indexOf(t[t.length-1])>=0)).find((t=>{const e=this.findFullCellIds(t);return e.length===i.length&&e.every((t=>{const e=this._headerObjectMap[t];return i.find((t=>t.dimensionKey===e.field&&t.value===e.title))}))}));s=this._rowHeaderCellIds.indexOf(r)+this.columnHeaderLevelCount}else for(let t=0;t<i.length;t++){const e=i[t];for(let t=0;t<u.length;t++){const i=u[t];if(!Z(e.indicatorKey)&&i.dimensionKey===e.dimensionKey&&i.value===e.value||Z(e.indicatorKey)&&i.indicatorKey===e.indicatorKey&&(!e.value||i.value===e.value)){u=i.children,(!h||u&&!u.some((t=>"axis"===t.dimensionKey)))&&h||(c=i);break}}}if(n||!h||(c||Z(s))&&d){if(c||n){s=this.columnHeaderLevelCount;const{startInTotal:t,level:e}=c??$G;s+=t??0,a="grid"===this.rowHierarchyType?(this.rowHeaderTitle?e+1:e)+this.leftRowSeriesNumberColumnCount:0}if(d||n){o=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=d??$G;o+=t??0,l=this.columnHeaderTitle?e+1:e}return Z(o)||Z(s)?{col:o??a,row:s??l}:void 0}}setChartInstance(t,e,i){const r=this.getCellHeaderPaths(t,e);let n;if(this.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=this._indicators?.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=this._indicators?.find((e=>e.indicatorKey===t))}"function"!=typeof n?.chartSpec&&n&&(n.chartInstance=i)}getChartInstance(t,e){const i=this.getCellHeaderPaths(t,e);let r;if(this.indicatorsAsCol){const t=i.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;r=this._indicators?.find((e=>e.indicatorKey===t))}else{const t=i.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;r=this._indicators?.find((e=>e.indicatorKey===t))}return r?.chartInstance}checkHasChart(){return GG(this)}getDimension(t,e){return"column"===e?this.columnsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t)):"row"===e?this.rowsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t)):void 0}getAxisConfigInPivotChart(t,e){if((this.isFrozenColumn(t,e)||this.isRightFrozenColumn(t,e))&&DG(t,e,"row",this)||(this.isFrozenRow(t,e)||this.isBottomFrozenRow(t,e))&&DG(t,e,"col",this))return DF(t,e,this)}isEmpty(t,e){return!!this._table.isPivotChart()&&(!!this.isLeftBottomCorner(t,e)||(!!this.isRightBottomCorner(t,e)||!!this.isRightTopCorner(t,e)))}isAxisCell(t,e){if(!this._table.isPivotChart())return!1;if(this.indicatorKeys.length>=1&&zG(this.indicatorsDefine)){if(this.isBottomFrozenRow(t,e)&&DG(t,e,"col",this)||this.isRightFrozenColumn(t,e)&&DG(t,e,"row",this))return!0;if(this.isRowHeader(t,e)&&t===this.rowHeaderLevelCount-1&&DG(t,e,"row",this))return!0;if(this.hasTwoIndicatorAxes&&this.indicatorsAsCol&&e===this.columnHeaderLevelCount-1&&DG(t,e,"col",this))return!0}return!1}getChartAxes(t,e){if(function(t,e,i){let r=!0;const n=i.getRawChartSpec(t,e);return n&&"pie"!==n.type&&"radar"!==n.type&&"gauge"!==n.type&&"wordCloud"!==n.type&&"funnel"!==n.type&&"rose"!==n.type||(r=!1),r}(t,e,this)||this.isAxisCell(t,e))return function(t,e,i){const r=[];if(i.indicatorsAsCol){const n=i.getIndicatorKeyInChartSpec(t,e),o=i.getColKeysPath(t,e);n.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=NG(t,e,a,0===a?"bottom":"top",n,o,i);if(h){const r=NG(t,e,n.length-1-a,0===a?"top":"bottom",n,o,i);if(r){const{range:t}=r,e=zF(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}at(c?.min)&&(l.min=c.min),at(c?.max)&&(l.max=c.max),r.push(_t({range:l},c,{type:c?.type||"linear",orient:0===a?"bottom":"top",label:{visible:!1},title:{visible:!1},domainLine:{visible:!1},seriesIndex:a,sync:{axisId:FG}}))}));let s=i.getDimensionKeyInChartSpec(i.rowHeaderLevelCount,e);nt(s)&&(s=s[0]);const a=(i.dataset.cacheCollectedValues[s]||i.dataset.collectedValues[s]||[])[i.getRowKeysPath(t,e)??""],{axisOption:l,isPercent:h,chartType:c}=WF(t,e,"left",i);r.push(_t({domain:"scatter"!==c||Array.isArray(a)?Array.from(a??[]):void 0,range:"scatter"!==c||Array.isArray(a)?void 0:a},l,{type:"scatter"!==c||Array.isArray(a)?"band":l?.type??"linear",orient:"left",label:{visible:!1},domainLine:{visible:!1},tick:{visible:!1},subTick:{visible:!1},title:{visible:!1}}))}else{const n=i.getIndicatorKeyInChartSpec(t,e),o=i.getRowKeysPath(t,e);n.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=NG(t,e,a,0===a?"left":"right",n,o,i);if(h){const r=NG(t,e,n.length-1-a,0===a?"right":"left",n,o,i);if(r){const{range:t}=r,e=zF(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}at(c?.min)&&(l.min=c.min),at(c?.max)&&(l.max=c.max),r.push(_t({range:l},c,{type:c?.type||"linear",orient:0===a?"left":"right",label:{visible:!1},title:{visible:!1},domainLine:{visible:!1},seriesIndex:a,sync:{axisId:FG}}))}));let s=i.getDimensionKeyInChartSpec(t,i.columnHeaderLevelCount);nt(s)&&(s=s[0]);const a=i.dataset.cacheCollectedValues[s]||i.dataset.collectedValues[s]||[],l=i.getColKeysPath(t,e),h=a?.[l??""]??[],{axisOption:c,isPercent:d,chartType:u}=WF(t,e,"bottom",i);r.push(_t({domain:"scatter"!==u||Array.isArray(h)?Array.from(h??[]):void 0,range:"scatter"!==u||Array.isArray(h)?void 0:h},c,{type:"scatter"!==u||Array.isArray(h)?"band":c?.type??"linear",orient:"bottom",visible:!0,label:{visible:!1},domainLine:{visible:!1},tick:{visible:!1},subTick:{visible:!1},title:{visible:!1}}))}return r}(t,e,this)}getRawChartSpec(t,e){return function(t,e,i){const r=i.getCellHeaderPaths(t,e);let n;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}const o=n?.chartSpec;if("function"==typeof o)return o({col:t,row:e,dataValue:i._table.getCellOriginValue(t,e)||"",value:i._table.getCellValue(t,e)||"",rect:i._table.getCellRangeRelativeRect(i._table.getCellRange(t,e)),table:i._table});return o}(t,e,this)}getChartSpec(t,e){return function(t,e,i){let r=i.getRawChartSpec(t,e);return r?i._table.isPivotChart()?(r=qH(r),r.sortDataByAxis=!0,nt(r.series)&&r.series.forEach((t=>{t.sortDataByAxis=!0})),"gauge"!==r.type&&"rose"!==r.type&&"radar"!==r.type&&(r.axes=i.getChartAxes(t,e)),r.padding=0,r.dataZoom=[],r):r:null}(t,e,this)}isShareChartSpec(t,e){return function(t,e,i){const r=i.getCellHeaderPaths(t,e);let n;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}const o=n?.chartSpec;return"function"!=typeof o}(t,e,this)}getChartDataId(t,e){return WG(t,e,this)}setPagination(t){if(this.clearCellRangeMap(),this._table.internalProps.useOneRowHeightFillAll=!1,this.pagination=t,"grid"===this.rowHierarchyType&&Z(this.pagination?.perPageCount)&&Z(this.pagination?.currentPage)){!1===this.indicatorsAsCol&&(this.pagination.perPageCount=Math.ceil(this.pagination.perPageCount/this.indicatorKeys.length)*this.indicatorKeys.length);const{perPageCount:t,currentPage:e}=this.pagination;this.currentPageStartIndex=t*(e||0),this.currentPageEndIndex=this.currentPageStartIndex+t,this._rowHeaderCellIds=this._rowHeaderCellIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex),this._rowHeaderCellFullPathIds=this._rowHeaderCellFullPathIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex)}else this.currentPageStartIndex=0,this.currentPageEndIndex=this._rowHeaderCellIds_FULL.length,this._rowHeaderCellIds=this._rowHeaderCellIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex),this._rowHeaderCellFullPathIds=this._rowHeaderCellFullPathIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex);this.pagination&&(this.pagination.totalCount=this._rowHeaderCellIds_FULL?.length)}release(){const t=this._table._getActiveChartInstance();t?.release(),this._indicators?.forEach((t=>{t.chartInstance?.release()}))}getHeadNode(t,e){let i;const r=this.getCellHeaderPaths(t,e);return r.rowHeaderPaths&&(r.rowHeaderPaths?.length??0)>0?i=r.rowHeaderPaths?.slice(0,r.rowHeaderPaths.length):r.colHeaderPaths&&r.colHeaderPaths.length>0&&(i=r.colHeaderPaths.slice(0,r.colHeaderPaths.length)),this.getHeadNodeByRowOrColDimensions(i,t,e)}getHeadNodeByRowOrColDimensions(t,e,i){if(!Array.isArray(t))return;let r,n,o=this.rowTree,s=this.columnTree;if(Z(i)&&Z(e)&&"tree"===this.rowHierarchyType&&this.extensionRows&&e>=1+this.leftRowSeriesNumberColumnCount){const t=this.getCellId(e-1,i);o=this._rowHeaderExtensionTree[t].tree.children}for(let e=0;e<t.length;e++){const i=t[e];if((i.isPivotCorner||!i.value)&&e===t.length-1)return;let a=!1;for(let t=0;t<s.length;t++){const e=s[t];if(Z(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Z(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Z(i.value)||!Z(e.value))){s=e.children,n=e,a=!0;break}}if(!a)for(let t=0;t<o?.length;t++){const e=o[t];if(Z(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Z(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Z(i.value)||!Z(e.value))){o=e.children,r=e;break}}}return r||(n||void 0)}clearCellRangeMap(){this._largeCellRangeCache.length=0,this._CellHeaderPathMap=new Map}getDimensionKeyInChartSpec(t,e){let i;if(!1===this.indicatorsAsCol)for(let t=0;t<this.indicatorsDefine.length;t++){const e=this.indicatorsDefine[t].chartSpec;if(e&&(i=e.xField??e?.series?.[0]?.xField,i))return i}else for(let t=0;t<this.indicatorsDefine.length;t++){const e=this.indicatorsDefine[t].chartSpec;if(e&&(i=e.yField??e?.series?.[0]?.yField,i))return i}return null}_generateChartState(){return{vtable_selected:{filter:t=>{if(this._table._selectedDataItemsInChart.length>=1){return!!this._table._selectedDataItemsInChart.find((e=>{for(const i in e)if(e[i]!==t[i])return!1;return!0}))}if(this._table._selectedDimensionInChart?.length){return!!this._table._selectedDimensionInChart.every((e=>t[e.key]===e.value))}return!1}},vtable_selected_reverse:{filter:t=>{if(this._table._selectedDataItemsInChart.length>=1){return!this._table._selectedDataItemsInChart.find((e=>{for(const i in e)if(e[i]!==t[i])return!1;return!0}))}if(this._table._selectedDimensionInChart?.length){return!this._table._selectedDimensionInChart.every((e=>t[e.key]===e.value))}return!1}}}}updateDataStateToChartInstance(t){t||(t=this._table._getActiveChartInstance());const e=this._generateChartState();this._indicators.forEach((t=>{t.chartInstance.updateState(e)})),t?.updateState(e)}updateDataStateToActiveChartInstance(t){t||(t=this._table._getActiveChartInstance());const e=this._generateChartState();t?.updateState(e)}getIndicatorKeyInChartSpec(t,e){const i=this.getRawChartSpec(t,e),r=[];if(i){if(i.series||i.xField||i.yField)return!1===this.indicatorsAsCol?i.series?i.series.forEach((t=>{const e=t.yField;r.push(e)})):r.push(i.yField):i.series?i.series.forEach((t=>{const e=t.xField;r.push(e)})):r.push(i.xField),r;if(i.valueField&&r.push(i.valueField),r.length>=1)return r}return null}getOptimunHeightForChart(t){const e=this.getCellHeaderPaths(this.rowHeaderLevelCount,t).rowHeaderPaths;let i,r;for(const t in this.dataset.collectValuesBy)if("yField"===this.dataset.collectValuesBy[t].type&&!this.dataset.collectValuesBy[t].range){i=this.dataset.collectedValues[t]?.[e.map((t=>t.value)).join(this.dataset.stringJoinChar)];break}if(this._chartItemBandSize)r=XG(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const n=II(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+n[0]+n[2]}getOptimunWidthForChart(t){const e=this.getCellHeaderPaths(t,this.columnHeaderLevelCount).colHeaderPaths;let i,r;for(const t in this.dataset.collectValuesBy)if("xField"===this.dataset.collectValuesBy[t].type&&!this.dataset.collectValuesBy[t].range){i=this.dataset.collectedValues[t]?.[e.map((t=>t.value)).join(this.dataset.stringJoinChar)];break}if(this._chartItemBandSize)r=XG(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const n=II(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+n[1]+n[3]}get leftAxesCount(){if(!this._table.isPivotChart())return 0;const t=this._table.pivotChartAxes.find((t=>"left"===t.orient));return!1===t?.visible?0:(this.indicatorsAsCol,1)}get topAxesCount(){if(!this._table.isPivotChart())return 0;const t=this._table.pivotChartAxes.find((t=>"top"===t.orient));return!1===t?.visible?0:this.indicatorsAsCol&&this.hasTwoIndicatorAxes?1:0}get rightAxesCount(){return this.rightFrozenColCount}get bottomAxesCount(){return this.bottomFrozenRowCount}getColKeysPath(t,e){const i=this.getCellHeaderPaths(t,e),r=[];return i.colHeaderPaths.length&&i.colHeaderPaths.forEach((t=>{t.dimensionKey&&r.push(t.value)})),r?.join(this.dataset.stringJoinChar)}getRowKeysPath(t,e){const i=this.getCellHeaderPaths(t,e),r=[];return i.rowHeaderPaths.length&&i.rowHeaderPaths.forEach((t=>{t.dimensionKey&&r.push(t.value)})),r?.join(this.dataset.stringJoinChar)}getIndicatorInfo(t,e=""){const i=this.indicatorsDefine?.find((i=>"string"!=typeof i&&(t?i.indicatorKey===t:!!e&&i.title===e)));return i}getLayoutColumnTree(){const t=[];return dG(t,this.columnDimensionTree.tree.children),t}getLayoutRowTree(){const t=[];return dG(t,this.rowDimensionTree.tree.children),t}getLayoutColumnTreeCount(){return uG(this.columnDimensionTree.tree.children,"tree"===this.rowHierarchyType)}getLayoutRowTreeCount(){let t=uG(this.rowDimensionTree.tree.children,"tree"===this.rowHierarchyType);return this.extensionRows?.forEach((e=>{if("function"!=typeof e.rowTree){const i=uG(e.rowTree,!0);t*=i}})),t}resetHeaderTree(){this.colIndex=0,this._rowHeaderCellFullPathIds_FULL=[],this._columnHeaderCellFullPathIds=[],this._columnHeaderCellIds=[];const t=this.dataset;this.rowTree=t.rowHeaderTree,this.columnTree=t.colHeaderTree,this.columnDimensionTree=new cG(this.columnTree??[],this.sharedVar),this.rowDimensionTree=new cG(this.rowTree??[],this.sharedVar,this.rowHierarchyType,"tree"===this.rowHierarchyType?this.rowExpandLevel:void 0),this.resetColumnHeaderLevelCount(),this._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this._rowHeaderCellFullPathIds_FULL=rL(this._rowHeaderCellFullPathIds_FULL),this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0,this.generateCellIdsConsiderHideHeader(),this.setPagination(this.pagination)}isSeriesNumberInHeader(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount&&e<this.headerLevelCount||this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e<this.headerLevelCount}isSeriesNumberInBody(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount&&e>=this.headerLevelCount||this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e>=this.headerLevelCount}isSeriesNumber(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount||this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount}getSeriesNumberHeader(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount&&e<this.headerLevelCount?Object.assign({},this.leftRowSeriesNumberColumn[t],{style:this._table.internalProps.rowSeriesNumber.headerStyle}):this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e<this.headerLevelCount&&e<this.headerLevelCount?this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]:void 0}getSeriesNumberBody(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount&&e>=this.headerLevelCount?this.leftRowSeriesNumberColumn[t]:this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e>=this.headerLevelCount?this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]:void 0}changeTreeNodeTitle(t,e,i){this.getHeadNode(t,e).value=i;const r=this.getCellId(t,e);this._headerObjectMap[r].title=i}changeCornerTitle(t,e,i){if(this.isCornerHeader(t,e)){const r=this.getCellId(t,e);this._headerObjectMap[r].title=i}}generateCellIdsConsiderHideHeader(){if(this._columnHeaderCellIds=this._columnHeaderCellFullPathIds.slice(),!this.showColumnHeader)if(this.indicatorsAsCol&&!this.hideIndicatorName){const t=this.colDimensionKeys.indexOf(QL),e=this._columnHeaderCellIds.splice(t,1);this._columnHeaderCellIds.splice(0,this._columnHeaderCellIds.length),this._columnHeaderCellIds.push(e[0])}else this._columnHeaderCellIds.splice(0,this._columnHeaderCellIds.length);if(this._rowHeaderCellIds_FULL=this._rowHeaderCellFullPathIds_FULL.slice(),!this.showRowHeader)if(this.indicatorsAsCol||this.hideIndicatorName)this._rowHeaderCellIds_FULL.forEach(((t,e)=>{const i=t.slice();i.splice(0,i.length),this._rowHeaderCellIds_FULL[e]=i}));else{const t=this.rowDimensionKeys.indexOf(QL);this._rowHeaderCellIds_FULL.forEach(((e,i)=>{const r=e.slice(),n=r.splice(t,1);r.splice(0,r.length),r.push(n[0]),this._rowHeaderCellIds_FULL[i]=r}))}if(this._rowHeaderCellIds=this._rowHeaderCellIds_FULL.slice(),this._cornerHeaderCellIds=this._cornerHeaderCellFullPathIds.slice(),0===this.rowHeaderLevelCount||0===this.columnHeaderLevelCount)this._cornerHeaderCellIds=[];else if("row"!==this.cornerSetting.titleOnDimension||this.showRowHeader){if("column"===this.cornerSetting.titleOnDimension&&!this.showColumnHeader)if(this.indicatorsAsCol&&!this.hideIndicatorName){const t=this.colDimensionKeys.indexOf(QL),e=this._cornerHeaderCellIds.splice(t,1);this._cornerHeaderCellIds.splice(0,this._cornerHeaderCellIds.length),this._cornerHeaderCellIds.push(e[0])}else this._cornerHeaderCellIds.splice(0,this._cornerHeaderCellIds.length)}else if(this.indicatorsAsCol||this.hideIndicatorName)this._cornerHeaderCellIds.forEach(((t,e)=>{const i=t.slice();i.splice(0,i.length),this._cornerHeaderCellIds[e]=i}));else{const t=this.rowDimensionKeys.indexOf(QL);this._cornerHeaderCellIds.forEach(((e,i)=>{const r=e.slice(),n=r.splice(t,1);r.splice(0,r.length),r.push(n[0]),this._cornerHeaderCellIds[i]=r}))}}}function XG(t,e,i,r){1===i&&(i=0);const n=function(t,e,i){let r;r=1===t?t+2*i:t-e+2*i;return t?r>0?r:1:0}(t,i,r),o=e/(1-i);return Math.ceil(n*o)}class qG{dataConfig;records;tree={};beforeChangedTree={};colFlatKeys={};rowFlatKeys={};stringJoinChar=String.fromCharCode(0);rowsIsTotal=[];colsIsTotal=[];colGrandTotalLabel;colSubTotalLabel;rowGrandTotalLabel;rowSubTotalLabel;constructor(t,e){this.dataConfig=t,e&&(this.records=e,"undefined"!=typeof window&&window.performance.now(),this.setRecords(e),"undefined"!=typeof window&&window.performance.now())}changeDataConfig(t){this.dataConfig=t}setRecords(t){this.processRecords()}processRecords(){for(let t=0,e=this.records.length;t<e;t++){const e=this.records[t];this.processRecord(e)}}processRecord(t){const e=[],i=[];for(let e=0,r=this.dataConfig.rows.length;e<r;e++){const r=this.dataConfig.rows[e];void 0!==t[r]&&r!==this.dataConfig.indicatorDimensionKey&&i.push(t[r])}for(let i=0,r=this.dataConfig.columns.length;i<r;i++){const r=this.dataConfig.columns[i];void 0!==t[r]&&r!==this.dataConfig.indicatorDimensionKey&&e.push(t[r])}this.dataConfig.indicators?.forEach((r=>{const n=t[r];void 0!==n&&(this.dataConfig.indicatorsAsCol?e.push(r):i.push(r));const o=i.join(this.stringJoinChar),s=e.join(this.stringJoinChar);0!==i.length&&(this.rowFlatKeys[o]||(this.rowFlatKeys[o]=1)),0!==e.length&&(this.colFlatKeys[s]||(this.colFlatKeys[s]=1)),0===e.length&&0===i.length||(this.tree[o]||(this.tree[o]={}),void 0!==n&&(this.tree[o][s]={value:n,record:t},this.dataConfig.indicatorsAsCol?e.pop():i.pop()))}))}getTreeNode(t=[],e=[],i,r=!0){let n,o;if("string"==typeof t)n=t;else{let e=!1;t.map(((r,n)=>{r===i&&(t.splice(n,1),e=!0)})),e&&t.push(i),n=t.join(this.stringJoinChar)}if("string"==typeof e)o=e;else{let t=!1;e.map(((r,n)=>{r===i&&(e.splice(n,1),t=!0)})),t&&e.push(i),o=e.join(this.stringJoinChar)}return r?this.tree?.[n]?.[o]??void 0:Z(this.beforeChangedTree[n]?.[o])?{value:this.beforeChangedTree[n][o].value,record:this.beforeChangedTree[n][o].record}:void 0}changeTreeNodeValue(t=[],e=[],i,r){let n,o;if("string"==typeof t)n=t;else{let e=!1;t.map(((r,n)=>{r===i&&(t.splice(n,1),e=!0)})),e&&t.push(i),n=t.join(this.stringJoinChar)}if("string"==typeof e)o=e;else{let t=!1;e.map(((r,n)=>{r===i&&(e.splice(n,1),t=!0)})),t&&e.push(i),o=e.join(this.stringJoinChar)}const s=this.tree[n]?.[o]?.value,a=Object.assign({},this.tree[n]?.[o]?.record);this.tree[n]?.[o]?.record?(this.tree[n][o].record[i]=r,this.tree[n][o].value=r):(this.tree[n]||(this.tree[n]={}),this.tree[n][o]={record:this._buildRecord(t,e,i,r),value:r}),this.beforeChangedTree[n]?.[o]||(this.beforeChangedTree[n]={},this.beforeChangedTree[n][o]={record:void 0,value:void 0},this.beforeChangedTree[n][o].record=a,this.beforeChangedTree[n][o].value=s)}_buildRecord(t=[],e=[],i,r){const n={},o=this.dataConfig.rows,s=this.dataConfig.columns;return o.forEach(((e,i)=>{e!==this.dataConfig.indicatorDimensionKey&&(n[e]=t[i])})),s.forEach(((t,i)=>{t!==this.dataConfig.indicatorDimensionKey&&(n[t]=e[i])})),n[i]=r,this.records.push(n),n}addRecords(t){for(let e=0,i=t.length;e<i;e++){const i=t[e];this.processRecord(i)}this.records.push(t)}changeRecordFieldValue(t,e,i){let r=!1;for(let e=0;e<this.dataConfig.indicators.length;e++)this.dataConfig.indicators[e]===t&&(r=!0);if(!r){for(let r=0,n=this.records.length;r<n;r++){const n=this.records[r];n[t]===e&&(n[t]=i)}this.rowFlatKeys={},this.colFlatKeys={},this.tree={},this.processRecords()}}}class ZG{dataConfig;records;tree={};changedTree={};colFlatKeys={};rowFlatKeys={};colKeys=[];rowKeys=[];rowOrder="key_a_to_z";colOrder="key_a_to_z";sorted=!1;sortRules;filterRules;aggregationRules;derivedFieldRules;mappingRules;calculatedFieldRules;calculatedFiledKeys;calculatedFieldDependIndicatorKeys;totals;indicatorStatistics=[];aggregators={};stringJoinChar=String.fromCharCode(0);rowsIsTotal=[];colsIsTotal=[];colGrandTotalLabel;colSubTotalLabel;rowGrandTotalLabel;rowSubTotalLabel;needSplitPositiveAndNegative;collectValuesBy;collectedValues={};cacheCollectedValues={};rows;rowsHasValue;columns;columnsHasValue;indicatorKeys;indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;customRowTree;customColTree;colHeaderTree;rowHeaderTree;rowHierarchyType;indicators;indicatorsAsCol;totalRecordsTree={};constructor(t,e,i,r,n,o,s,a,l,h,c){this.registerAggregators(),this.dataConfig=t,this.rowHierarchyType=a??"grid",this.sortRules=this.dataConfig?.sortRules,this.aggregationRules=this.dataConfig?.aggregationRules,this.derivedFieldRules=this.dataConfig?.derivedFieldRules,this.mappingRules=this.dataConfig?.mappingRules,this.calculatedFieldRules=this.dataConfig?.calculatedFieldRules,this.calculatedFiledKeys=this.calculatedFieldRules?.map((t=>t.key))??[],this.calculatedFieldDependIndicatorKeys=this.calculatedFieldRules?.reduce(((t,e)=>{for(let i=0;i<e.dependIndicatorKeys.length;i++)-1===t.indexOf(e.dependIndicatorKeys[i])&&t.push(e.dependIndicatorKeys[i]);return t}),[])??[],this.totals=this.dataConfig?.totals,this.rows=e,this.columns=i,this.indicatorKeys=r,this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys=[...r];for(let t=0;t<this.calculatedFieldDependIndicatorKeys.length;t++)-1===this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys.indexOf(this.calculatedFieldDependIndicatorKeys[t])&&this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys.push(this.calculatedFieldDependIndicatorKeys[t]);if(this.indicatorsAsCol=o,this.indicators=n,this.customColTree=l,this.customRowTree=h,this.colGrandTotalLabel=this.totals?.column?.grandTotalLabel??"总计",this.colSubTotalLabel=this.totals?.column?.subTotalLabel??"小计",this.rowGrandTotalLabel=this.totals?.row?.grandTotalLabel??"总计",this.rowSubTotalLabel=this.totals?.row?.subTotalLabel??"小计",this.collectValuesBy=this.dataConfig?.collectValuesBy,this.needSplitPositiveAndNegative=c??!1,this.rowsIsTotal=new Array(this.rows?.length??0).fill(!1),this.colsIsTotal=new Array(this.columns?.length??0).fill(!1),this.totals?.row&&!1!==this.totals.row.showSubTotals&&this.totals.row.subTotalsDimensions)for(let t=0,e=this.totals?.row?.subTotalsDimensions?.length??0;t<e;t++){const e=this.totals.row.subTotalsDimensions[t],i=this.rows.indexOf(e);this.rowsIsTotal[i]=!0}if(this.totals?.column&&!1!==this.totals.column.showSubTotals&&this.totals.column.subTotalsDimensions)for(let t=0,e=this.totals?.column?.subTotalsDimensions?.length??0;t<e;t++){const e=this.totals.column.subTotalsDimensions[t],i=this.columns.indexOf(e);this.colsIsTotal[i]=!0}this.setRecords(s)}setRecords(t){this.records=t,this.collectedValues={},this.cacheCollectedValues={},this.totalRecordsTree={},this.tree={},this.colFlatKeys={},this.rowFlatKeys={},this.colKeys=[],this.rowKeys=[],this.rowsHasValue=[],this.columnsHasValue=[],t&&(this.records=t,"undefined"!=typeof window&&window.performance.now(),this.processRecords(),this.processCollectedValuesWithSumBy(),this.generateCollectedValuesSortRule(),this.processCollectedValuesWithSortBy(),"undefined"!=typeof window&&window.performance.now(),"undefined"!=typeof window&&window.performance.now(),this.totalStatistics(),"undefined"!=typeof window&&window.performance.now(),"undefined"!=typeof window&&window.performance.now(),this.sortKeys(),"undefined"!=typeof window&&window.performance.now(),"undefined"!=typeof window&&window.performance.now(),this.customRowTree?this.rowHeaderTree=this.customRowTree:"tree"===this.rowHierarchyType?this.rowHeaderTree=this.ArrToTree1(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.totals?.row?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel):this.rowHeaderTree=this.ArrToTree(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.rowsIsTotal,this.totals?.row?.showGrandTotals||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel,this.rowSubTotalLabel,this.totals?.row?.showGrandTotalsOnTop??!1,this.totals?.row?.showSubTotalsOnTop??!1),this.customColTree?this.colHeaderTree=this.customColTree:this.colHeaderTree=this.ArrToTree(this.colKeys,this.columns.filter(((t,e)=>this.columnsHasValue[e])),this.indicatorsAsCol?this.indicators:void 0,this.colsIsTotal,this.totals?.column?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length,this.colGrandTotalLabel,this.colSubTotalLabel,this.totals?.column?.showGrandTotalsOnLeft??!1,this.totals?.column?.showSubTotalsOnLeft??!1),"undefined"!=typeof window&&window.performance.now(),this.dataConfig?.isPivotChart&&this.cacheDeminsionCollectedValues())}registerAggregator(t,e){this.aggregators[t]=e}registerAggregators(){this.registerAggregator(vE.RECORD,sI),this.registerAggregator(vE.SUM,cI),this.registerAggregator(vE.COUNT,dI),this.registerAggregator(vE.MAX,gI),this.registerAggregator(vE.MIN,pI),this.registerAggregator(vE.AVG,uI),this.registerAggregator(vE.NONE,aI),this.registerAggregator(vE.RECALCULATE,hI)}processCollectedValuesWithSumBy(){for(const t in this.collectedValues)if(this.collectValuesBy?.[t]?.sumBy)for(const e in this.collectedValues[t]){let i;"sum"===this.collectValuesBy[t]?.extendRange?(i=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>t+e.value()),0),i+=Math.round(i/20)):(i=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.value()>t?e.value():t),Number.MIN_SAFE_INTEGER),"max"===this.collectValuesBy[t]?.extendRange?i+=Math.round(i/20):"number"==typeof this.collectValuesBy[t]?.extendRange&&(i=Math.max(i,this.collectValuesBy[t]?.extendRange)));const r=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.value()<t?e.value():t),Number.MAX_SAFE_INTEGER);let n,o;this.needSplitPositiveAndNegative&&(n=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.positiveValue()>t?e.positiveValue():t),Number.MIN_SAFE_INTEGER),o=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.negativeValue()<t?e.negativeValue():t),Number.MAX_SAFE_INTEGER)),this.collectedValues[t][e]={},this.collectedValues[t][e].max=i,this.collectedValues[t][e].min=r,this.needSplitPositiveAndNegative&&(this.collectedValues[t][e].positiveMax=n,this.collectedValues[t][e].negativeMin=o)}}processCollectedValuesWithSortBy(){const t=this;for(const e in this.collectedValues)if(this.collectValuesBy?.[e]?.sortBy)for(const i in this.collectedValues[e])this.collectedValues[e][i]=this.collectedValues[e][i].sort(((i,r)=>(t.collectValuesBy[e].sortBy?.indexOf(i)??-1)-(t.collectValuesBy[e].sortBy?.indexOf(r)??-1)))}generateCollectedValuesSortRule(){for(const t in this.collectedValues)if(this.collectValuesBy&&this.collectValuesBy[t]&&!this.collectValuesBy[t].sortBy){let e=[];for(const i in this.collectedValues[t])Array.isArray(this.collectedValues[t][i])&&(e.push(...this.collectedValues[t][i]),e=Array.from(new Set(e)));e.length>0&&(this.collectValuesBy[t].sortBy=e)}}processRecords(){let t=!1;if((this.dataConfig?.filterRules?.length??0)>=1&&(t=!0),Array.isArray(this.records))for(let e=0,i=this.records.length;e<i;e++){const i=this.records[e];t&&!this.filterRecord(i)||this.processRecord(i)}else for(const e in this.records)for(let i=0,r=this.records[e].length;i<r;i++){const r=this.records[e][i];t&&!this.filterRecord(r)||this.processRecord(r,e)}this.rowFlatKeys={},this.colFlatKeys={}}filterRecord(t){let e=!0;if(this.dataConfig?.filterRules)for(let i=0;i<this.dataConfig.filterRules.length;i++){const r=this.dataConfig?.filterRules[i];if(r.filterKey){const i=t[r.filterKey];if(-1===r.filteredValues?.indexOf(i)){e=!1;break}}else if(!r.filterFunc?.(t)){e=!1;break}}return e}processRecord(t,e){this.derivedFieldRules?.forEach(((e,i)=>{e.fieldName&&e.derivedFunc&&(t[e.fieldName]=e.derivedFunc(t))}));for(const e in this.collectValuesBy)if(Z(t[e])){this.collectedValues[e]||(this.collectedValues[e]={});const i=this.collectValuesBy[e].by.map((e=>t[e])).join(this.stringJoinChar);if(this.collectedValues[e][i]||(this.collectValuesBy[e].sumBy?this.collectedValues[e][i]={}:this.collectValuesBy[e].range?this.collectedValues[e][i]={min:Number.MAX_SAFE_INTEGER,max:Number.MIN_SAFE_INTEGER}:this.collectedValues[e][i]=[]),this.collectValuesBy[e].sumBy){const r=this.collectValuesBy[e].sumBy.map((e=>t[e])).join(this.stringJoinChar);this.collectedValues[e][i][r]||(this.collectedValues[e][i][r]=new this.aggregators[vE.SUM]({key:e,dimension:e,isRecord:void 0,needSplitPositiveAndNegative:this.needSplitPositiveAndNegative})),this.collectedValues[e][i][r].push(t)}else if(this.collectValuesBy[e].range){const r=this.collectedValues[e][i],n=Math.max(t[e],r.max),o=Math.min(t[e],r.min);isNaN(n)||(r.max=n,r.min=o)}else{const r=this.collectedValues[e][i];-1===r.indexOf(t[e])&&r.push(t[e])}}const i=[],r=[];let n=!1;for(let e=0,i=this.rows.length;e<i;e++){const i=this.rows[e];if(i in t)this.rowsHasValue[e]=!0,r.push(t[i]);else if(i!==QL){if(this.dataConfig?.totals?.row?.showGrandTotals&&0===e&&!this.rows.find((e=>e in t))){r.push(this.rowGrandTotalLabel),n=!0;break}if(this.dataConfig?.totals?.row?.subTotalsDimensions&&this.dataConfig?.totals?.row?.subTotalsDimensions.indexOf(this.rows[e-1])>=0){"grid"===this.rowHierarchyType&&r.push(this.rowSubTotalLabel),n=!0;break}}}for(let e=0,r=this.columns.length;e<r;e++){const r=this.columns[e];if(r in t)this.columnsHasValue[e]=!0,i.push(t[r]);else if(r!==QL){if(this.dataConfig?.totals?.column?.showGrandTotals&&0===e&&!this.columns.find((e=>e in t))){i.push(this.colGrandTotalLabel),n=!0;break}if(this.dataConfig?.totals?.column?.subTotalsDimensions&&this.dataConfig?.totals?.column?.subTotalsDimensions.indexOf(this.columns[e-1])>=0){i.push(this.colSubTotalLabel),n=!0;break}}}const o=r.join(this.stringJoinChar),s=i.join(this.stringJoinChar);if(n){this.totalRecordsTree[o]||(this.totalRecordsTree[o]={}),this.totalRecordsTree[o][s]||(this.totalRecordsTree[o][s]=[]);const e=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let i=0;i<e.length;i++)if(this.calculatedFiledKeys.indexOf(e[i])>=0){const r=this.calculatedFieldRules?.find((t=>t.key===e[i]));this.totalRecordsTree[o]?.[s]?.[i]||(this.totalRecordsTree[o][s][i]=new this.aggregators[vE.RECALCULATE]({key:e[i],dimension:e[i],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===e[i]))?.format,calculateFun:r?.calculateFun,dependAggregators:this.totalRecordsTree[o][s],dependIndicatorKeys:r?.dependIndicatorKeys})),e[i]in t&&this.totalRecordsTree[o]?.[s]?.[i].push(t)}else{const r=this.getAggregatorRule(e[i]);this.totalRecordsTree[o]?.[s]?.[i]||(this.totalRecordsTree[o][s][i]=new this.aggregators[r?.aggregationType??vE.SUM]({key:e[i],dimension:r?.field??e[i],formatFun:r?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===e[i]))?.format})),e[i]in t&&this.totalRecordsTree[o]?.[s]?.[i].push(t)}return}0!==r.length&&(this.rowFlatKeys[o]||(this.rowKeys.push(r),this.rowFlatKeys[o]=1)),0!==i.length&&(this.colFlatKeys[s]||(this.colKeys.push(i),this.colFlatKeys[s]=1)),this.tree[o]||(this.tree[o]={}),this.tree[o]?.[s]||(this.tree[o][s]=[]);const a=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let i=0;i<a.length;i++)if(this.calculatedFiledKeys.indexOf(a[i])>=0){const e=this.calculatedFieldRules?.find((t=>t.key===a[i]));this.tree[o]?.[s]?.[i]||(this.tree[o][s][i]=new this.aggregators[vE.RECALCULATE]({key:a[i],dimension:a[i],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[i]))?.format,calculateFun:e?.calculateFun,dependAggregators:this.tree[o][s],dependIndicatorKeys:e?.dependIndicatorKeys})),this.tree[o]?.[s]?.[i].push(t)}else{const r=this.getAggregatorRule(a[i]);let n=!1;if(e)a[i]===e&&(n=!0);else if(r?.field)if("string"==typeof r?.field)r?.field in t&&(n=!0);else{const e=r?.field.find((e=>e in t));e&&(n=!0)}else a[i]in t&&(n=!0);!this.tree[o]?.[s]?.[i]&&n&&(this.tree[o][s][i]=new this.aggregators[r?.aggregationType??vE.SUM]({key:a[i],dimension:r?.field??a[i],formatFun:r?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[i]))?.format})),n&&this.tree[o]?.[s]?.[i].push(t)}if(this.mappingRules)for(let e=0;e<this.indicatorKeys.length;e++){if(!this.indicatorStatistics[e]){const t=this.getAggregatorRule(this.indicatorKeys[e]);this.indicatorStatistics[e]={max:new this.aggregators[vE.MAX]({key:this.indicatorKeys[e],dimension:this.indicatorKeys[e]}),min:new this.aggregators[vE.MIN]({key:this.indicatorKeys[e],dimension:this.indicatorKeys[e]}),total:new this.aggregators[t?.aggregationType??vE.SUM]({key:this.indicatorKeys[e],dimension:t?.field??this.indicatorKeys[e],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format})}}this.indicatorStatistics[e].max.push(this.tree[o]?.[s]?.[e].value()),this.indicatorStatistics[e].min.push(this.tree[o]?.[s]?.[e].value()),this.indicatorStatistics[e].total.push(t)}}updateSortRules(t){this.sorted=!1,this.sortRules=t,this.sortKeys(),this.customRowTree||("tree"===this.rowHierarchyType?this.rowHeaderTree=this.ArrToTree1(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.totals?.row?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel):this.rowHeaderTree=this.ArrToTree(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.rowsIsTotal,this.totals?.row?.showGrandTotals||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel,this.rowSubTotalLabel,this.totals?.row?.showGrandTotalsOnTop??!1,this.totals?.row?.showSubTotalsOnTop??!1)),this.customColTree||(this.colHeaderTree=this.ArrToTree(this.colKeys,this.columns.filter(((t,e)=>this.columnsHasValue[e])),this.indicatorsAsCol?this.indicators:void 0,this.colsIsTotal,this.totals?.column?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length,this.colGrandTotalLabel,this.colSubTotalLabel,this.totals?.column?.showGrandTotalsOnLeft??!1,this.totals?.column?.showSubTotalsOnLeft??!1))}updateFilterRules(t,e=!1){if(this.filterRules=t,e)this.tree={};else for(const t in this.tree)for(const e in this.tree[t])for(let i=0;i<this.tree[t][e].length;i++)this.tree[t][e][i].reset();this.collectedValues={},this.processRecords(),this.processCollectedValuesWithSumBy(),this.processCollectedValuesWithSortBy(),this.dataConfig?.isPivotChart&&this.cacheDeminsionCollectedValues()}getAggregatorRule(t){return this.aggregationRules?.find(((e,i)=>t===e.indicatorKey))}getAggregator(t=[],e=[],i,r=!0,n){const o=this.indicatorKeys.indexOf(i);let s,a;"string"==typeof t?s=t:(n&&"row"!==n.position||t.map(((e,r)=>{e!==i||Z(n?.index)&&r!==n.index||t.splice(r,1)})),s=t.join(this.stringJoinChar)),"string"==typeof e?a=e:(n&&"col"!==n.position||e.map(((t,r)=>{t!==i||Z(n?.index)&&r!==n.index||e.splice(r,1)})),a=e.join(this.stringJoinChar));const l=this.tree[s]?.[a]?.[o];if(r&&Z(this.changedTree[s]?.[a]?.[o])){const t=this.changedTree[s][a][o];return l?{value:()=>t,formatValue:l.formatValue,formatFun:l.formatFun,records:l.records,className:"",recalculate(){},push(){},clearCacheValue(){},reset(){}}:{value:()=>t,className:"",push(){},recalculate(){},formatValue:()=>t,clearCacheValue(){},reset(){}}}return l||{className:"",push(){},recalculate(){},value:()=>null,clearCacheValue(){},reset(){}}}sortKeys(){const t=this;if(!this.sorted){this.sorted=!0;const e=function(e,i){return t.getAggregator(e,i,"").value()};switch(this.rowOrder){case"value_a_to_z":this.rowKeys.sort((function(t,i){return mI(e(t,[]),e(i,[]))}));break;case"value_z_to_a":this.rowKeys.sort((function(t,i){return-mI(e(t,[]),e(i,[]))}));break;default:this.rowKeys.sort(this.arrSort(this.rows,!0))}switch(this.colOrder){case"value_a_to_z":this.colKeys.sort((function(t,i){return mI(e([],t),e([],i))}));break;case"value_z_to_a":this.colKeys.sort((function(t,i){return-mI(e([],t),e([],i))}));break;default:const t=this.arrSort(this.columns,!1);this.colKeys.sort(t)}}}arrSort(t,e){let i;const r=this,n=function(n){const o=[];for(let n=0,s=t.length;n<s;n++)if(i=t[n],r.sortRules)for(let t=0,s=r.sortRules.length;t<s;t++)r.sortRules[t].sortField===i&&o.push({field:i,fieldIndex:n,sortRule:r.sortRules[t],func:r.getSort(r.sortRules[t],e)});return o}.call(this);return function(i,o){let s,a;for(let l=0;l<n.length;l++){if(a=n[l],a.sortRule?.sortByIndicator){let n=i,l=o;a.fieldIndex<t.length-1&&(n=i.slice(0,a.fieldIndex+1),n.push(e?r.rowSubTotalLabel:r.colSubTotalLabel),l=o.slice(0,a.fieldIndex+1),l.push(e?r.rowSubTotalLabel:r.colSubTotalLabel)),s=a.func(n,l)}else s=a.func?.(i[a.fieldIndex],o[a.fieldIndex]);if(0!==s)return s*(a.sortRule?.sortType===CE.DESC?-1:1)}return 0}}getSort(t,e){const i=this;return t.sortByIndicator?(r,n)=>{const o=function(e,r){return e.length<i.rows.length&&e[e.length-1]!==i.rowSubTotalLabel&&e[e.length-1]!==i.rowGrandTotalLabel&&e.push(i.rowSubTotalLabel),r.length<i.columns.length&&r[r.length-1]!==i.colSubTotalLabel&&r[r.length-1]!==i.colGrandTotalLabel&&r.push(i.colSubTotalLabel),i.getAggregator(e,r,t.sortByIndicator).value()};return e?mI(o(r,t.query),o(n,t.query)):mI(o(t.query,r),o(t.query,n))}:t.sortBy?function(t){let e;const i={},r={};for(let n=0;n<t.length;n++)e=t[n],i[e]=n,"string"==typeof e&&(r[e.toLowerCase()]=n);return function(t,e){return null!==i[t]&&void 0!==i[t]&&null!==i[e]&&void 0!==i[e]?i[t]-i[e]:null!==i[t]&&void 0!==i[t]?-1:null!==i[e]&&void 0!==i[e]?1:null!==r[t]&&void 0!==i[t]&&null!==r[e]&&void 0!==i[e]?r[t]-r[e]:null===r[t]||void 0===i[t]||null===r[e]||void 0===i[e]?0:null!==r[t]&&void 0!==i[t]?-1:null!==r[e]&&void 0!==i[e]?1:mI(t,e)}}(t.sortBy):t.sortType?fI:t.sortFunc?t.sortFunc:mI}totalStatistics(){const t=this;if(t?.totals?.column?.subTotalsDimensions&&t?.totals?.column?.subTotalsDimensions?.length>=1||t?.totals?.row?.subTotalsDimensions&&t?.totals?.row?.subTotalsDimensions?.length>=1||t?.totals?.column?.showGrandTotals||t?.totals?.row?.showGrandTotals){const e=[],i=(e,i)=>{if(this.totalRecordsTree?.[e]?.[i])return void(this.tree[e][i]=this.totalRecordsTree?.[e]?.[i]);const r=i.split(this.stringJoinChar);if(t.totals?.column?.subTotalsDimensions&&t.totals?.column?.subTotalsDimensions?.length>0&&!1!==t.totals.column.showSubTotals)for(let n=0,o=t.totals?.column?.subTotalsDimensions?.length;n<o;n++){const o=t.totals.column.subTotalsDimensions[n],s=t.columns.indexOf(o);if(s>=0){const n=r.slice(0,s+1);n.push(t.colSubTotalLabel);const o=n.join(this.stringJoinChar);if(this.totalRecordsTree?.[e]?.[o])return void(this.tree[e][o]=this.totalRecordsTree?.[e]?.[o]);this.tree[e][o]||(this.tree[e][o]=[]);const a=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let r=0;r<a.length;r++)if(this.calculatedFiledKeys.indexOf(a[r])>=0){const n=this.calculatedFieldRules?.find((t=>t.key===a[r]));this.tree[e]?.[o]?.[r]||(this.tree[e][o][r]=new this.aggregators[vE.RECALCULATE]({key:a[r],dimension:a[r],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[r]))?.format,calculateFun:n?.calculateFun,dependAggregators:this.tree[e][o],dependIndicatorKeys:n?.dependIndicatorKeys})),this.tree[e][o][r].push(t.tree[e]?.[i]?.[r])}else{if(!this.tree[e][o][r]){const t=this.getAggregatorRule(a[r]);this.tree[e][o][r]=new this.aggregators[t?.aggregationType??vE.SUM]({key:a[r],dimension:t?.field??a[r],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[r]))?.format})}this.tree[e][o][r].push(t.tree[e]?.[i]?.[r])}}}if(t.totals?.column?.showGrandTotals||0===this.rows.length){const r=t.colGrandTotalLabel;if(this.totalRecordsTree?.[e]?.[r])return void(this.tree[e][r]=this.totalRecordsTree?.[e]?.[r]);this.tree[e][r]||(this.tree[e][r]=[]);const n=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let o=0;o<n.length;o++)if(this.calculatedFiledKeys.indexOf(n[o])>=0){const s=this.calculatedFieldRules?.find((t=>t.key===n[o]));this.tree[e]?.[r]?.[o]||(this.tree[e][r][o]=new this.aggregators[vE.RECALCULATE]({key:n[o],dimension:n[o],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[o]))?.format,calculateFun:s?.calculateFun,dependAggregators:this.tree[e][r],dependIndicatorKeys:s?.dependIndicatorKeys})),this.tree[e][r][o].push(t.tree[e]?.[i]?.[o])}else{if(!this.tree[e][r][o]){const t=this.getAggregatorRule(n[o]);this.tree[e][r][o]=new this.aggregators[t?.aggregationType??vE.SUM]({key:n[o],dimension:t?.field??n[o],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[o]))?.format})}this.tree[e][r][o].push(t.tree[e]?.[i]?.[o])}}};Object.keys(t.tree).forEach((r=>{const n=r.split(this.stringJoinChar);Object.keys(t.tree[r]).forEach((o=>{if(t.totals?.row?.subTotalsDimensions&&t.totals?.row?.subTotalsDimensions?.length>0&&!1!==t.totals.row.showSubTotals)for(let i=0,s=t.totals?.row?.subTotalsDimensions?.length;i<s;i++){const s=t.totals.row.subTotalsDimensions[i],a=t.rows.indexOf(s);if(a>=0&&a<t.rows.length-1){const i=n.slice(0,a+1);"grid"===this.rowHierarchyType&&i.push(t.rowSubTotalLabel);const s=i.join(this.stringJoinChar);this.tree[s]||(this.tree[s]={},e.push(s)),this.tree[s][o]||(this.tree[s][o]=[]);const l=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let e=0;e<l.length;e++){if(!this.tree[s][o][e])if(this.calculatedFiledKeys.indexOf(l[e])>=0){const t=this.calculatedFieldRules?.find((t=>t.key===l[e]));this.tree[s][o][e]=new this.aggregators[vE.RECALCULATE]({key:l[e],dimension:l[e],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===l[e]))?.format,calculateFun:t?.calculateFun,dependAggregators:this.tree[s][o],dependIndicatorKeys:t?.dependIndicatorKeys})}else{const t=this.getAggregatorRule(l[e]);this.tree[s][o][e]=new this.aggregators[t?.aggregationType??vE.SUM]({key:l[e],dimension:t?.field??l[e],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===l[e]))?.format})}this.tree[s][o][e].push(t.tree[r]?.[o]?.[e])}}}if(t.totals?.row?.showGrandTotals||0===this.columns.length){const i=t.rowGrandTotalLabel;this.tree[i]||(this.tree[i]={},e.push(i)),this.tree[i][o]||(this.tree[i][o]=[]);const n=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let e=0;e<n.length;e++){if(!this.tree[i][o][e])if(this.calculatedFiledKeys.indexOf(n[e])>=0){const t=this.calculatedFieldRules?.find((t=>t.key===n[e]));this.tree[i][o][e]=new this.aggregators[vE.RECALCULATE]({key:n[e],dimension:n[e],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[e]))?.format,calculateFun:t?.calculateFun,dependAggregators:this.tree[i][o],dependIndicatorKeys:t?.dependIndicatorKeys})}else{const t=this.getAggregatorRule(n[e]);this.tree[i][o][e]=new this.aggregators[t?.aggregationType??vE.SUM]({key:n[e],dimension:t?.field??n[e],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[e]))?.format})}this.tree[i][o][e].push(t.tree[r]?.[o]?.[e])}}i(r,o)}))})),e.forEach((e=>{Object.keys(t.tree[e]).forEach((t=>{i(e,t)}))}))}}ArrToTree1(t,e,i,r,n){const o=[],s=this.stringJoinChar,a=new Map;function l(t){const r=[];let n;t.forEach(((l,h)=>{r.push(l);const c=r.join(s);let d=a.get(c);d||(d={value:l,dimensionKey:e[h],children:h===t.length-1&&(i?.length??0)>=1?i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title})):[]},a.set(c,d),n?n.children.push(d):o.push(d)),n=d}))}return t.forEach((t=>l(t))),r&&l([n]),o}ArrToTree(t,e,i,r,n,o,s,a,l){let h=[];const c=this.stringJoinChar,d=new Map;if(t?.length?t.forEach((t=>function(t){const n=[];let o;t.forEach(((a,u)=>{n.push(a);const g=n.join(c);let p=d.get(g);if(!p){if(p={value:a,dimensionKey:e[u],children:u===t.length-1&&(i?.length??0)>=1?i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title})):[]},r[u]){let t=p.children??[];const n={value:s,dimensionKey:e[u+1],levelSpan:r.length-u-1,children:(i?.length??0)>=1?i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title})):[]};t.push(n),t=n.children??[]}d.set(g,p),o?r[u-1]&&!l?o.children.splice(o.children.length-1,0,p):o.children.push(p):h.push(p)}o=p}))}(t))):i&&(h=i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey}))),n&&t?.length){const t={value:o,dimensionKey:e[0],levelSpan:r.length,children:i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title}))??[]};a?h.unshift(t):h.push(t)}return h}TreeToArr(t){const e=[];function i(t,r){r.push(t.id),t.children.length>0?t.children?.forEach((t=>i(t,[...r]))):e.push(r)}return t.forEach((t=>i(t,[]))),e}cacheDeminsionCollectedValues(){for(const t in this.collectValuesBy)"xField"!==this.collectValuesBy[t].type&&"yField"!==this.collectValuesBy[t].type||(this.dataConfig.dimensionSortArray?this.cacheCollectedValues[t]=JG(this.collectedValues[t],this.dataConfig.dimensionSortArray):this.cacheCollectedValues[t]=this.collectedValues[t])}changeTreeNodeValue(t=[],e=[],i,r){const n=this.indicatorKeys.indexOf(i);let o,s;o="string"==typeof t?t:t.join(this.stringJoinChar),s="string"==typeof e?e:e.join(this.stringJoinChar),this.changedTree[o]?.[s]?this.changedTree[o][s][n]=r:this.changedTree[o]?(this.changedTree[o][s]=[],this.changedTree[o][s][n]=r):(this.changedTree[o]={},this.changedTree[o][s]=[],this.changedTree[o][s][n]=r)}changeRecordFieldValue(t,e,i){let r=!1;for(let e=0;e<this.indicatorKeys.length;e++)this.indicatorKeys[e]===t&&(r=!0);if(!r){if(Array.isArray(this.records))for(let r=0,n=this.records.length;r<n;r++){const n=this.records[r];n[t]===e&&(n[t]=i)}else for(const r in this.records)for(let n=0,o=this.records[r].length;n<o;n++){const o=this.records[r][n];o[t]===e&&(o[t]=i)}this.rowFlatKeys={},this.colFlatKeys={},this.tree={},this.processRecords()}}changeDataConfig(t){this.rows=t.rows,this.columns=t.columns}addRecords(t){for(let e=0,i=t.length;e<i;e++){const i=t[e];this.processRecord(i)}Array.isArray(this.records)&&this.records.push(t)}}function JG(t,e){return t.sort(((t,i)=>{const r=e.indexOf(t),n=e.indexOf(i);return r<n?-1:r>n?1:0}))}class QG extends yl{constructor(t){t.direction&&(t.flexDirection=t.direction),!t.justifyContent||"start"!==t.justifyContent&&"end"!==t.justifyContent||(t.justifyContent="flex-"+t.justifyContent),!t.alignItems||"start"!==t.alignItems&&"end"!==t.alignItems||(t.alignItems="flex-"+t.alignItems),!t.alignContent||"start"!==t.alignContent&&"end"!==t.alignContent||(t.alignContent="flex-"+t.alignContent),t.display="flex",t.flexDirection||(t.flexDirection="row"),t.clip=!0,t.fill=t?.background?.fill,t.stroke=t?.background?.stroke,t.lineWidth=t?.background?.lineWidth,t.cornerRadius=t?.background?.cornerRadius;const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}}var tj=Object.freeze({__proto__:null,Arc:class extends ed{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},CheckBox:cE,Circle:class extends sh{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},Container:QG,Group:class extends yl{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},GroupElement:class extends QG{constructor(t){t.flexWrap="nowrap",super(t)}},Icon:class extends Wc{svg;iconName;cache;constructor(t){let e;if(rt(t.iconName)){e=NO()[t.iconName],e&&(t.width=t.width??e.width,t.height=t.height??e.height,t.svg=e.svg,t.cursor=e.cursor)}t.svg&&(t.image=t.svg);const i=nt(t.boundsPadding),r=[t.marginTop??(i?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(i?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(i?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(i?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=r,super(t),this.cache=e}},Image:class extends Wc{constructor(t){t.src&&(t.image=t.src),"circle"===t.shape&&(t.cornerRadius=t.width/2);const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},Line:Tc,Radio:dE,Rect:class extends Pc{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},Tag:class extends CT{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}getSize(t){this.AABBBounds.width()}},Text:class extends fh{constructor(t){t.textBaseline||(t.textBaseline="top");const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,t.fill=t.fill??"#000",super(t)}getSize(t){this.AABBBounds.width()}},percentCalc:function(t,e=0){return{percent:t,delta:e}}});function ej(t){const e={seqId:0},i={isPivotChart:!0};let r,n,o,s;t.columnTree&&(!1!==t.indicatorsAsCol&&(o=bG(t.columnTree,t.indicators)),r=new cG(t.columnTree??[],e)),t.rowTree&&(!1===t.indicatorsAsCol&&(s=bG(t.rowTree,t.indicators)),n=new cG(t.rowTree??[],e));const a=n.dimensionKeys?.count?n.dimensionKeys.valueArr():t.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],l=r.dimensionKeys?.count?r.dimensionKeys.valueArr():t.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],h=t.indicators?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.indicatorKey),t)),[])??[];i.collectValuesBy=function(t,e,i){const r={};for(let n=0,o=t.indicators?.length;n<o;n++)if("string"!=typeof t.indicators[n]&&t.indicators[n].chartSpec)if(!1===t.indicatorsAsCol){const o=t.indicators[n];if(r[o.indicatorKey]={by:i,range:!0,sumBy:!1!==o.chartSpec?.stack&&e.concat(o.chartSpec?.xField)},o.chartSpec.series)o.chartSpec.series.forEach((t=>{const n="string"==typeof t.xField?t.xField:t.xField[0];r[n]={by:e,type:"horizontal"!==t.direction?"xField":void 0,range:"horizontal"===t.direction,sortBy:"horizontal"!==t.direction?t?.data?.fields?.[n]?.domain??o.chartSpec?.data?.fields?.[n]?.domain:void 0};const s=t.yField;r[s]={by:i,range:"horizontal"!==t.direction,sumBy:!1!==t.stack&&e.concat(t?.xField),sortBy:"horizontal"===t.direction?t?.data?.fields?.[s]?.domain??o.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof o.chartSpec.xField?o.chartSpec.xField:o.chartSpec.xField[0];r[s]={by:e,type:"horizontal"!==o.chartSpec.direction?"xField":void 0,range:"horizontal"===o.chartSpec.direction,sortBy:"horizontal"!==o.chartSpec.direction?o.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=o.chartSpec.yField;r[a]={by:i,range:"horizontal"!==t.indicators[n].chartSpec.direction,sumBy:!1!==o.chartSpec.stack&&e.concat(o.chartSpec?.xField),sortBy:"horizontal"===o.chartSpec.direction?o.chartSpec?.data?.fields?.[a]?.domain:void 0}}}else{const o=t.indicators[n];if(r[o.indicatorKey]={by:e,range:!0,sumBy:!1!==o.chartSpec?.stack&&i.concat(o.chartSpec?.yField)},o.chartSpec.series)o.chartSpec.series.forEach((t=>{const n="string"==typeof t.yField?t.yField:t.yField[0];r[n]={by:i,type:"horizontal"===t.direction?"yField":void 0,range:"horizontal"!==t.direction,sortBy:"horizontal"===t.direction?t?.data?.fields?.[n]?.domain??o.chartSpec?.data?.fields?.[n]?.domain:void 0};const s=t.xField;r[s]={by:e,range:"horizontal"===t.direction,sumBy:!1!==t.stack&&i.concat(t?.yField),sortBy:"horizontal"!==t.direction?t?.data?.fields?.[s]?.domain??o.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof o.chartSpec.yField?o.chartSpec.yField:o.chartSpec.yField[0];r[s]={by:i,type:"horizontal"===o.chartSpec.direction?"yField":void 0,range:"horizontal"!==o.chartSpec.direction,sortBy:"horizontal"===o.chartSpec.direction?o.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=o.chartSpec.xField;r[a]={by:e,range:"horizontal"===t.indicators[n].chartSpec.direction,sumBy:!1!==o.chartSpec.stack&&i.concat(o.chartSpec?.yField),sortBy:"horizontal"!==o.chartSpec.direction?o.chartSpec?.data?.fields?.[a]?.domain:void 0}}}return r}(t,l,a),i.aggregationRules=function(t){const e=[];return t.indicators?.forEach((i=>{if("string"==typeof i)e.push({indicatorKey:i,field:i,aggregationType:vE.RECORD});else if(i.chartSpec?.series){const r=[];i.chartSpec?.series.forEach((e=>{const i=!1===t.indicatorsAsCol?e.yField:e.xField;-1===r.indexOf(i)&&r.push(i)})),e.push({indicatorKey:i.indicatorKey,field:r,aggregationType:vE.RECORD})}else{const r=!1===t.indicatorsAsCol?i.chartSpec.yField:i.chartSpec.xField;e.push({indicatorKey:i.indicatorKey,field:r??i.indicatorKey,aggregationType:vE.RECORD})}})),e}(t);return{dataset:new ZG(i,a,l,h,t.indicators,t.indicatorsAsCol??!0,t.records,void 0,o||t.columnTree,s||t.rowTree,!0),columnDimensionTree:r,rowDimensionTree:n,layoutNodeId:e}}function ij(t,e,i,r,n,o){if(nt(t))for(let s=0;s<t.length;s++)if(o?o(t[s],e):rj(t[s],e))return n.getCellHeaderPaths(i,r)}function rj(t,e){return JSON.stringify(t)===JSON.stringify(e)}pE();t.CustomLayout=tj,t.DataStatistics=OG,t.ListTable=class extends RG{showHeader=!0;editorManager;constructor(t,e){"node"===YE.mode?(e=t,t=null):t instanceof HTMLElement||(e=t,t=t.container?t.container:null),super(t,e);const i=this.internalProps;i.frozenColDragHeaderMode=e.frozenColDragHeaderMode,this.pagination=e.pagination,i.sortState=e.sortState,i.dataConfig={},i.columns=e.columns?qH(e.columns,["children"]):e.header?qH(e.header,["children"]):[],this.internalProps.headerHelper.setTableColumnsEditor(),this.showHeader=e.showHeader??!0,this.transpose=e.transpose??!1,"node"!==YE.mode&&(this.editorManager=new UG(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.dataSource?mO(this,e.dataSource):e.records?this.setRecords(e.records,{sortState:i.sortState}):this.setRecords([]),e.title&&(i.title=new VG(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(IL.INITIALIZED,null)}),0)}isListTable(){return!0}isPivotTable(){return!1}isPivotChart(){return!1}get sortState(){return this.internalProps.sortState}get records(){return this.dataSource?.records}get recordsCount(){return this.dataSource.records.length}updateColumns(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.internalProps.columns=qH(t,["children"]),this.options.columns=t,this.internalProps.headerHelper.setTableColumnsEditor(),this._hasAutoImageColumn=void 0,this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.headerStyleCache=new Map,this.bodyStyleCache=new Map,this.bodyBottomStyleCache=new Map,this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.renderAsync(),this.eventManager.updateEventBinder()}get columns(){return this.internalProps.layoutMap.columnTree.getCopiedTree()}get header(){return this.internalProps.columns}set header(t){this.internalProps.columns=t,this.options.header=t,this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.renderAsync()}get transpose(){return this.internalProps.transpose??!1}set transpose(t){this.internalProps.transpose!==t&&(this.internalProps.transpose=t,this.internalProps.layoutMap&&(this.internalProps.layoutMap.transpose=t,this.refreshRowColCount(),this._resetFrozenColCount(),this.renderAsync()))}getCellValue(t,e,i){if(-1===t||-1===e)return null;if(!i){const i=this.getCustomMergeValue(t,e);if(i)return i}const r=this;if(r.internalProps.layoutMap.isSeriesNumber(t,e)){if(r.internalProps.layoutMap.isSeriesNumberInHeader(t,e)){const{title:i}=r.internalProps.layoutMap.getSeriesNumberHeader(t,e);return i}const{format:i}=r.internalProps.layoutMap.getSeriesNumberBody(t,e);return"function"==typeof i?i(t,e,this):e-this.columnHeaderLevelCount+1}if(r.internalProps.layoutMap.isHeader(t,e)){const{title:i}=r.internalProps.layoutMap.getHeader(t,e);return"function"==typeof i?i():i}if(r.internalProps.layoutMap.isAggregation(t,e)){if(r.internalProps.layoutMap.isTopAggregation(t,e)){const i=r.internalProps.layoutMap.getAggregatorOnTop(t,e);return i?.formatValue?i.formatValue(t,e,this):""}if(r.internalProps.layoutMap.isBottomAggregation(t,e)){const i=r.internalProps.layoutMap.getAggregatorOnBottom(t,e);return i?.formatValue?i.formatValue(t,e,this):""}}const{field:n,fieldFormat:o}=r.internalProps.layoutMap.getBody(t,e);return r.getFieldData(o||n,t,e)}getCellOriginValue(t,e){if(-1===t||-1===e)return null;const i=this;if(i.internalProps.layoutMap.isSeriesNumber(t,e)){if(i.internalProps.layoutMap.isSeriesNumberInHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getSeriesNumberHeader(t,e);return r}const{format:r}=i.internalProps.layoutMap.getSeriesNumberBody(t,e);return"function"==typeof r?r(t,e,this):e-this.columnHeaderLevelCount}if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(i.internalProps.layoutMap.isAggregation(t,e)){if(i.internalProps.layoutMap.isTopAggregation(t,e)){const r=i.internalProps.layoutMap.getAggregatorOnTop(t,e);return r?.value()}if(i.internalProps.layoutMap.isBottomAggregation(t,e)){const r=i.internalProps.layoutMap.getAggregatorOnBottom(t,e);return r?.value()}}const{field:r}=i.internalProps.layoutMap.getBody(t,e);return i.getFieldData(r,t,e)}getCellRawValue(t,e){if(-1===t||-1===e)return null;const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}const{field:r}=i.internalProps.layoutMap.getBody(t,e);return i.getRawFieldData(r,t,e)}getRecordShowIndexByCell(t,e){const{layoutMap:i}=this.internalProps;return i.getRecordShowIndexByCell(t,e)}getRecordIndexByCell(t,e){const{layoutMap:i}=this.internalProps,r=i.getRecordShowIndexByCell(t,e);return this.dataSource.currentPagerIndexedData[r]}getTableIndexByRecordIndex(t){return this.transpose?this.dataSource.getTableIndex(t)+this.rowHeaderLevelCount:this.dataSource.getTableIndex(t)+this.columnHeaderLevelCount}getTableIndexByField(t){const e=this.internalProps.layoutMap.columnObjects.find((e=>e.field===t)),i=this.internalProps.layoutMap.getBodyLayoutRangeById(e.id);return this.transpose?i.start.row:i.start.col}getCellAddrByFieldRecord(t,e){return this.transpose?{col:this.getTableIndexByRecordIndex(e),row:this.getTableIndexByField(t)}:{col:this.getTableIndexByField(t),row:this.getTableIndexByRecordIndex(e)}}getCellOriginRecord(t,e){const i=this,r=i.getRecordShowIndexByCell(t,e);if(r>-1)return i.dataSource.get(r)}getCellRawRecord(t,e){const i=this,r=i.getRecordShowIndexByCell(t,e);if(r>-1)return i.dataSource.getRaw(r)}_canResizeColumn(t,e){const i=super._canResizeColumn(t,e);if(i&&!this.transpose){const i=this.internalProps.layoutMap.getBody(t,this.columnHeaderLevelCount),r=this.internalProps.layoutMap.isSeriesNumber(t,e);if(i?.disableColumnResize)return!1;if(r&&!0===this.internalProps.rowSeriesNumber.disableColumnResize)return!1}return i}updateOption(t){const e=this.internalProps;return super.updateOption(t),e.frozenColDragHeaderMode=t.frozenColDragHeaderMode,this.pagination=t.pagination,e.sortState=t.sortState,e.dataConfig={},this.showHeader=t.showHeader??!0,e.columns=t.columns?qH(t.columns,["children"]):t.header?qH(t.header,["children"]):[],this.internalProps.headerHelper.setTableColumnsEditor(),this.transpose=t.transpose??!1,this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.releaseList&&(e.releaseList.forEach((t=>t?.release?.())),e.releaseList=null),t.dataSource?mO(this,t.dataSource):t.records?this.setRecords(t.records,{sortState:t.sortState}):(this._resetFrozenColCount(),this.scenegraph.createSceneGraph(),this.render()),t.title&&(e.title=new VG(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),new Promise((t=>{setTimeout(t,0)}))}updatePagination(t){this.pagination&&("number"==typeof t.currentPage&&t.currentPage>=0&&(this.pagination.currentPage=t.currentPage),t.perPageCount&&(this.pagination.perPageCount=t.perPageCount||this.pagination.perPageCount),this.internalProps.layoutMap.clearCellRangeMap(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.dataSource.updatePagination(this.pagination),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.renderAsync())}refreshHeader(){const t=this,e=t.internalProps,i=t.transpose,r=t.showHeader;(e.layoutMap=new jG(this,e.columns??[],r,t.options.hierarchyIndent)).transpose=i,i||this.setMinMaxLimitWidth(!0),this.refreshRowColCount()}refreshRowColCount(){const t=this,{layoutMap:e}=t.internalProps;if(!e)return;const i=t.internalProps.dataSource?.length??0;e.recordsCount=i+(i>0?e.hasAggregationOnTopCount+e.hasAggregationOnBottomCount:0),t.transpose?(t.rowCount=e.rowCount??0,t.colCount=e.colCount??0,t.frozenRowCount=0,this.internalProps.frozenColCount=Math.max((e.headerLevelCount??0)+e.leftRowSeriesNumberColumnCount,this.options.frozenColCount??0),t.bottomFrozenRowCount!==(this.options.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=this.options.bottomFrozenRowCount??0),t.rightFrozenColCount!==(this.options.rightFrozenColCount??0)&&(t.rightFrozenColCount=this.options.rightFrozenColCount??0)):(t.colCount=e.colCount??0,t.rowCount=e.recordsCount*e.bodyRowSpanCount+e.headerLevelCount,this.internalProps.frozenColCount=this.options.frozenColCount??0,t.frozenRowCount=e.headerLevelCount,t.bottomFrozenRowCount!==(this.options.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=this.options.bottomFrozenRowCount??0),t.rightFrozenColCount!==(this.options.rightFrozenColCount??0)&&(t.rightFrozenColCount=this.options.rightFrozenColCount??0)),this.stateManager.setFrozenCol(this.internalProps.frozenColCount)}getFieldData(t,e,i){if(null===t)return null;const r=this;if(r.internalProps.layoutMap.isHeader(e,i))return null;const n=r.getRecordShowIndexByCell(r.transpose?e-r.internalProps.layoutMap.leftRowSeriesNumberColumnCount:e,i);return r.internalProps.dataSource.getField(n,t,e,i,this)}getRawFieldData(t,e,i){if(null===t)return null;const r=this;if(r.internalProps.layoutMap.isHeader(e,i))return null;const n=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource.getRawField(n,t,e,i,this)}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),n=this.internalProps.layoutMap.moveHeaderPosition(t,e);return n?("column"===n.moveType?(this.colWidthsMap.exchangeOrder(i.start.col,i.end.col-i.start.col+1,r.start.col,r.end.col-r.start.col+1,n.targetIndex),this.transpose||(this.colWidthsLimit={},this.setMinMaxLimitWidth())):n.targetIndex>n.sourceIndex?this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex+n.sourceSize-n.targetSize,n.targetSize,n.targetIndex):this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex,n.targetSize,n.targetIndex),n):null}changeRecordOrder(t,e){this.transpose?(t=this.getRecordShowIndexByCell(t,0),e=this.getRecordShowIndexByCell(e,0)):(t=this.getRecordShowIndexByCell(0,t),e=this.getRecordShowIndexByCell(0,e)),this.dataSource.reorderRecord(t,e)}getCellAddress(t,e){let i;for(let e=0;e<this.internalProps.records.length;e++){const r=this.internalProps.records[e];if("function"==typeof t)t(r)&&(i=e);else{let n=!0;for(const e in t)if(r[e]!==t[e]){n=!1;break}n&&(i=e)}if(Z(i))break}const r=this.getCellRangeByField(e,i);if(r)return{row:r.start.row,col:r.start.col}}getCellRangeByField(t,e){const{layoutMap:i}=this.internalProps,r=i.columnObjects.find((e=>e.field===t));if(r){const t=i.getBodyLayoutRangeById(r.id);let n;return Z(e)&&(n=i.getRecordStartRowByRecordIndex(e)),this.transpose?{start:{row:t.start.row,col:Z(n)?n+t.start.col:void 0},end:{row:t.end.row,col:Z(n)?n+t.end.col:void 0}}:{start:{col:t.start.col,row:Z(n)?n+t.start.row:void 0},end:{col:t.end.col,row:Z(n)?n+t.end.row:void 0}}}return null}getHierarchyState(t,e){if(!this.getBodyColumnDefine(t,e).tree)return yE.none;const i=this.getRecordShowIndexByCell(t,e);return this.dataSource.getHierarchyState(i)}toggleHierarchyState(t,e){this.stateManager.updateHoverIcon(t,e,void 0,void 0);const i=this.getHierarchyState(t,e);if(i===yE.expand)this._refreshHierarchyState(t,e),this.fireListeners(IL.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.collapse});else if(i===yE.collapse){const i=this.getCellOriginRecord(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(IL.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.expand,originData:i})}}_refreshHierarchyState(t,e){let i=!1,r=!1;const n=this.internalProps.layoutMap.checkHasChart();n&&(this.autoFillWidth&&(i=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(r=this.getAllRowsHeight()<=this.tableNoFrameHeight));const o=this.getRecordShowIndexByCell(t,e),s=this.dataSource.toggleHierarchyState(o,this.scenegraph.proxy.rowStart-this.columnHeaderLevelCount,Math.max(this.scenegraph.proxy.rowEnd-this.columnHeaderLevelCount,this.scenegraph.proxy.rowStart-this.columnHeaderLevelCount+this.scenegraph.proxy.rowLimit-1)),a=this.internalProps.layoutMap.toggleHierarchyState(s);this.refreshRowColCount(),this.clearCellStyleCache(),this.internalProps.layoutMap.clearCellRangeMap(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.updateHierarchyIcon(t,e),this.scenegraph.updateRow(a.removeCellPositions,a.addCellPositions),n&&(this.autoFillWidth&&!i&&(i=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&!r&&(r=this.getAllRowsHeight()<=this.tableNoFrameHeight),("adaptive"===this.widthMode||i||"adaptive"===this.heightMode||r)&&this.scenegraph.updateChartSize(0))}_hasHierarchyTreeHeader(){return(this.options.columns??this.options.header)?.some(((t,e)=>t.tree))}getMenuInfo(t,e,i){return{field:this.getHeaderField(t,e),value:this.getCellValue(t,e),cellLocation:this.getCellLocation(t,e),event:void 0}}_getSortFuncFromHeaderOption(t,e,i){if(t||(t=this.internalProps.columns),e&&t&&t.length>0)for(let r=0;r<t.length;r++){const n=t[r];if((i&&i===n.fieldKey||!i&&n.field===e)&&n.sort&&"function"==typeof n.sort)return n.sort;if(n.columns){const t=this._getSortFuncFromHeaderOption(n.columns,e,i);if(t)return t}}}updateSortState(t,e=!0){let i,r;if(t?this.internalProps.sortState=t:this.internalProps.sortState&&(Array.isArray(this.internalProps.sortState)?(t=this.internalProps.sortState?.[0],t&&(t.order="normal")):(this.internalProps.sortState.order="normal",t=this.internalProps.sortState)),Array.isArray(this.internalProps.sortState)?this.internalProps.sortState?.[0]&&({order:i,field:r}=this.internalProps.sortState?.[0]):this.internalProps.sortState&&({order:i,field:r}=this.internalProps.sortState),r&&e){const t=this._getSortFuncFromHeaderOption(this.internalProps.columns,r),e=this.internalProps.layoutMap.headerObjects.find((t=>t&&t.field===r));!1!==e.define.sort&&(this.dataSource.sort(e.field,i,t),this.internalProps.layoutMap.clearCellRangeMap(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.sortCell())}t&&this.stateManager.updateSortState(t)}updateFilterRules(t){this.scenegraph.clearCells(),this.sortState?(this.dataSource.updateFilterRulesForSorted(t),vO(this)):this.dataSource.updateFilterRules(t),this.refreshRowColCount(),this.scenegraph.createSceneGraph()}getCheckboxState(t){return this.stateManager.checkedState.length<this.rowCount-this.columnHeaderLevelCount&&this.stateManager.initLeftRecordsCheckState(this.records),Z(t)?this.stateManager.checkedState.map((e=>e[t])):this.stateManager.checkedState}getCellCheckboxState(t,e){const i=this.getBodyColumnDefine(t,e),r=i?.field,n=this.getCellType(t,e);if(Z(r)&&"checkbox"===n){const i=this.dataSource.getIndexKey(this.getRecordShowIndexByCell(t,e));return this.stateManager.checkedState[i]?.[r]}}getRadioState(t){return Z(t)?this.stateManager.radioState[t]:this.stateManager.radioState}getCellRadioState(t,e){return function(t,e,i){const r=i.getBodyColumnDefine(t,e),n=r?.field,o=i.getCellType(t,e);if(Z(n)&&"checkbox"===o){const r=i.dataSource.getIndexKey(i.getRecordShowIndexByCell(t,e)),o=i.stateManager.radioState?.[n];if(at(o)){if(o===r)return!0}else if(J(o)){const t=o[r];if(at(t))return t}}return!1}(t,e,this)}setCellCheckboxState(t,e,i){!function(t,e,i,r){const n=r.scenegraph.getCell(t,e),o=n?.getChildByName("checkbox");if(!o)return;const{checked:s,indeterminate:a}=o.attribute;a?(i||o._handlePointerUp(),o._handlePointerUp()):s?i||o._handlePointerUp():i&&o._handlePointerUp()}(t,e,i,this)}setCellRadioState(t,e,i){!function(t,e,i,r){const n=r.scenegraph.getCell(t,e);if(n)if(at(i)){const t=n.getChildAt(i);t?._handlePointerUp()}else{const t=n.getChildByName("radio");t?._handlePointerUp()}}(t,e,i,this)}setRecords(t,e){let i;this.internalProps.dataSource?.release(),this.internalProps.releaseList=this.internalProps.releaseList?.filter((t=>!t.dataSourceObj)),this.internalProps.dataSource=null,Array.isArray(e)||e?.order?i=e:e?i=e.sortState:null===e&&(i=null),"undefined"!=typeof window&&window.performance.now();const r={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};if(this.scenegraph.clearCells(),void 0!==i&&(this.internalProps.sortState=i,this.stateManager.setSortState(this.sortState)),t){if(fO(this,t),this.sortState){let t,e;if(Array.isArray(this.sortState)?0!==this.sortState.length&&({order:t,field:e}=this.sortState?.[0]):({order:t,field:e}=this.sortState),t&&e&&"normal"!==t){const i=this._getSortFuncFromHeaderOption(void 0,e),r=this.internalProps.layoutMap.headerObjectsIncludeHided.find((t=>t&&t.field===e));!1!==r.define.sort&&this.dataSource.sort(r.field,t,i??hL)}}this.refreshRowColCount()}else fO(this,t);this.stateManager.initCheckedState(t),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(r.col,r.row),this.internalProps.title&&!this.internalProps.title.isReleased&&(this._updateSize(),this.internalProps.title.resize(),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),this.render(),Z(r.col)&&Z(r.row)&&r.col>=0&&r.row>=0&&setTimeout((()=>{this.internalProps.tooltipHandler.showTooltip(r.col,r.row)}),0)}setRecordChildren(t,e,i){const r=this.getCellOriginRecord(e,i);r.children=t;const n=this.getRecordShowIndexByCell(e,i);this.dataSource.setRecord(r,n),this._refreshHierarchyState(e,i)}startEditCell(t,e){if(Z(t)&&Z(e))this.eventManager.isDraging=!1,this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Z(t)&&Z(e)&&this.editorManager.startEditCell(t,e)}}completeEditCell(){this.editorManager.completeEdit()}getEditor(t,e){const i=this.getBodyColumnDefine(t,e);let r=this.isHeader(t,e)?i?.headerEditor??this.options.headerEditor:i?.editor??this.options.editor;if("function"==typeof r){r=r({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return"string"==typeof r?kG(r):r}isHasEditorDefine(t,e){const i=this.getBodyColumnDefine(t,e);let r=this.isHeader(t,e)?i?.headerEditor??this.options.headerEditor:i?.editor??this.options.editor;if("function"==typeof r){r=r({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return Z(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){const r=this.getRecordShowIndexByCell(t,e),{field:n}=this.internalProps.layoutMap.getBody(t,e),o=this.getCellRawValue(t,e),s=this.getCellOriginValue(t,e);this.isHeader(t,e)?this.internalProps.layoutMap.updateColumnTitle(t,e,i):this.dataSource.changeFieldValue(i,r,n,t,e,this);const a=this.getCellRange(t,e),l=this.internalProps.layoutMap.getAggregatorsByCell(t,e);if(l){if(Array.isArray(l))for(let t=0;t<l?.length;t++)l[t].recalculate();else l.recalculate();const t=this.internalProps.layoutMap.getAggregatorCellAddress(a.start.col,a.start.row,a.end.col,a.end.row);for(let e=0;e<t.length;e++){const i=this.getCellRange(t[e].col,t[e].row);for(let t=i.start.col;t<=i.end.col;t++)for(let e=i.start.row;e<=i.end.row;e++)this.scenegraph.updateCellContent(t,e)}}for(let t=a.start.col;t<=a.end.col;t++)for(let e=a.start.row;e<=a.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else if(!this.internalProps._widthResizedColMap.has(t)){const e=this.getColWidth(t),i=mD(t,0,this.rowCount-1,this,!1);i!==e&&this.scenegraph.updateColWidth(t,i-e)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)0===this.internalProps._heightResizedRowMap.size&&this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode&&!this.internalProps._heightResizedRowMap.has(e)){const t=this.getRowHeight(e),i=dz(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:o,currentValue:s,changedValue:this.getCellOriginValue(t,e)}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let n=t,o=e;const s=[],a=[];for(let r=0;r<i.length&&!(e+r>this.rowCount-1);r++){const n=i[r],o=[],l=[];s.push(o),a.push(l);for(let i=0;i<n.length&&!(t+i>this.colCount-1);i++){const n=this.getCellRawValue(t+i,e+r);o.push(n);const s=this.getCellOriginValue(t+i,e+r);l.push(s)}}for(let l=0;l<i.length&&!(e+l>this.rowCount-1);l++){o=e+l;const h=i[l];let c=t;for(let i=0;i<h.length&&!(t+i>this.colCount-1);i++)if(c=t+i,r&&this.isHasEditorDefine(t+i,e+l)||!1===r){const r=h[i],n=this.getRecordShowIndexByCell(t+i,e+l),{field:o}=this.internalProps.layoutMap.getBody(t+i,e+l),c=s[l][i],d=a[l][i];this.isHeader(t+i,e+l)?this.internalProps.layoutMap.updateColumnTitle(t+i,e+l,r):this.dataSource.changeFieldValue(r,n,o,t+i,e+l,this),this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t+i,row:e+l,rawValue:c,currentValue:d,changedValue:this.getCellOriginValue(t+i,e+l)})}n=Math.max(n,c)}const l=this.getCellRange(t,e),h=this.getCellRange(n,o),c=this.internalProps.layoutMap.getAggregatorsByCellRange(l.start.col,l.start.row,h.end.col,h.end.row);if(c){for(let t=0;t<c?.length;t++)c[t].recalculate();const t=this.internalProps.layoutMap.getAggregatorCellAddress(l.start.col,l.start.row,h.end.col,h.end.row);for(let e=0;e<t.length;e++){const i=this.getCellRange(t[e].col,t[e].row);for(let t=i.start.col;t<=i.end.col;t++)for(let e=i.start.row;e<=i.end.row;e++)this.scenegraph.updateCellContent(t,e)}}for(let t=l.start.col;t<=h.end.col;t++)for(let e=l.start.row;e<=h.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else for(let e=t;e<=h.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=mD(e,0,this.rowCount-1,this,!1);i!==t&&this.scenegraph.updateColWidth(e,i-t)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode){const t=[],i=[];for(let r=e;r<=h.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),n=dz(r,0,this.colCount-1,this);t.push(r),i.push(n-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}addRecord(t,e){if(this.sortState)this.dataSource.addRecordForSorted(t),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{(void 0===e||e>this.dataSource.sourceLength)&&(e=this.dataSource.sourceLength);const i=this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount;this.dataSource.addRecord(t,e);const r=this.rowCount;if(this.refreshRowColCount(),0===this.scenegraph.proxy.totalActualBodyRowCount)return this.scenegraph.clearCells(),void this.scenegraph.createSceneGraph();const n=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:t,currentPage:o}=this.pagination,s=t*(o||0)+t;if(e<s)if(e<s-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const o=e-(s-t)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=o;e<n;e++)this.transpose?t.push({col:e,row:0}):t.push({col:0,row:e});this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}else{const t=[];for(let e=o;e<Math.min(n,o+1);e++)this.transpose?t.push({col:e,row:0}):t.push({col:0,row:e});this.transpose?this.scenegraph.updateCol([],t,[]):this.scenegraph.updateRow([],t,[])}}}else{const t=[];for(let r=e+i;r<e+i+1;r++)this.transpose?t.push({col:r,row:0}):t.push({col:0,row:r});this.transpose?this.scenegraph.updateCol([],t,[]):this.scenegraph.updateRow([],t,[])}}}addRecords(t,e){if(this.sortState)this.dataSource.addRecordsForSorted(t),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{void 0===e||e>this.dataSource.sourceLength?e=this.dataSource.sourceLength:e<0&&(e=0);const i=this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount;this.dataSource.addRecords(t,e);const r=this.transpose?this.colCount:this.rowCount;if(this.refreshRowColCount(),0===this.scenegraph.proxy.totalActualBodyRowCount)return this.scenegraph.clearCells(),void this.scenegraph.createSceneGraph();const n=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:o,currentPage:s}=this.pagination,a=o*(s||0)+o;if(e<a)if(e<a-o)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const s=e-(a-o)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=s;e<n;e++)this.transpose?t.push({col:e,row:0}):t.push({col:0,row:e});this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}else{const e=[];for(let i=s;i<Math.min(n,s+(Array.isArray(t)?t.length:1));i++)this.transpose?e.push({col:i,row:0}):e.push({col:0,row:i});this.transpose?this.scenegraph.updateCol([],e,[]):this.scenegraph.updateRow([],e,[])}}}else{const r=[];for(let n=e+i;n<e+i+(Array.isArray(t)?t.length:1);n++)this.transpose?r.push({col:n,row:0}):r.push({col:0,row:n});this.transpose?this.scenegraph.updateCol([],r,[]):this.scenegraph.updateRow([],r,[])}}}deleteRecords(t){if(t?.length>0)if(this.sortState)this.dataSource.deleteRecordsForSorted(t),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const e=this.dataSource.deleteRecords(t);if(0===e.length)return;const i=this.transpose?this.colCount:this.rowCount;this.refreshRowColCount();const r=this.transpose?this.colCount:this.rowCount,n=e.sort(((t,e)=>t-e)),o=n[0];if(this.pagination){const{perPageCount:t,currentPage:e}=this.pagination,n=t*(e||0)+t;if(o<n)if(o<n-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const e=[],s=[];for(let i=o-(n-t)+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);i<r;i++)this.transpose?e.push({col:i,row:0}):e.push({col:0,row:i});if(r<i)for(let t=r;t<i;t++)this.transpose?s.push({col:t,row:0}):s.push({col:0,row:t});this.transpose?this.scenegraph.updateCol(s,[],e):this.scenegraph.updateRow(s,[],e)}}else{const t=[];for(let e=0;e<n.length;e++){const i=n[e]+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);this.transpose?t.push({col:i,row:0}):t.push({col:0,row:i})}this.transpose?this.scenegraph.updateCol(t,[],[]):this.scenegraph.updateRow(t,[],[])}}}updateRecords(t,e){if(e?.length>0)if(this.sortState)this.dataSource.updateRecordsForSorted(t,e),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const i=this.dataSource.updateRecords(t,e);if(0===i.length)return;const r=i.sort(((t,e)=>t-e));if(this.pagination){const{perPageCount:t,currentPage:e}=this.pagination,i=t*(e||0)+t,n=[];for(let e=0;e<r.length;e++){const o=r[e];if(o<i&&o>=i-t){const e=o-(i-t)+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);n.push(e)}}if(n.length>=1){const t=[];for(let e=0;e<n.length;e++){const i=n[e];this.transpose?t.push({col:i,row:0}):t.push({col:0,row:i})}this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}}else{const t=[];for(let e=0;e<r.length;e++){const i=r[e]+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);this.transpose?t.push({col:i,row:0}):t.push({col:0,row:i})}this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}}}_hasCustomRenderOrLayout(){const{headerObjects:t}=this.internalProps.layoutMap;if(this.options.customRender)return!0;for(let e=0;e<t.length;e++){const i=t[e];if(i?.define?.customLayout||i?.define?.headerCustomLayout||i?.define?.customRender||i?.define?.headerCustomRender)return!0}return!1}getAggregateValuesByField(t){const e=this.internalProps.layoutMap.getColumnByField(t),i=[];for(let t=0;t<e.length;t++){const r=e[t].columnDefine.aggregator;if(delete e[t].columnDefine,r){const n={col:e[t].col,aggregateValue:null};if(n.aggregateValue=[],Array.isArray(r))for(let t=0;t<r.length;t++)n.aggregateValue.push({aggregationType:r[t].type,value:r[t].value()});else n.aggregateValue.push({aggregationType:r.type,value:r.value()});i.push(n)}}return i}isAggregation(t,e){return this.internalProps.layoutMap.isAggregation(t,e)}},t.PivotChart=class extends RG{layoutNodeId={seqId:0};pivotSortState;dataset;_selectedDataItemsInChart=[];_selectedDimensionInChart=[];_chartEventMap={};_axes;constructor(t,e){let i,r;"node"===YE.mode?(e=t,t=null):t instanceof HTMLElement||(e=t,t=t.container?t.container:null),super(t,e),e.layout&&Object.assign(e,e.layout),this.internalProps.columns=vt(e.columns),this.internalProps.rows=vt(e.rows),this.internalProps.indicators=qH(e.indicators),this.internalProps.columnTree=!e.indicatorsAsCol||e.columns?.length||e.columnTree?vt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?vt(e.rowTree):[],this.internalProps.records=e.records,this.setCustomStateNameToSpec(),this.internalProps.columnResizeType=e.columnResizeType??"column",this.internalProps.rowResizeType=e.rowResizeType??"row",this.internalProps.dataConfig={isPivotChart:!0},this._axes=nt(e.axes)?e.axes:[],e.columnTree&&(!1!==e.indicatorsAsCol&&(this.internalProps.columnTree=bG(this.internalProps.columnTree,e.indicators)),i=new cG(this.internalProps.columnTree??[],this.layoutNodeId)),e.rowTree&&(!1===e.indicatorsAsCol&&(this.internalProps.rowTree=bG(this.internalProps.rowTree,e.indicators)),r=new cG(this.internalProps.rowTree??[],this.layoutNodeId));const n=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],o=i?.dimensionKeys?.count?i.dimensionKeys.valueArr():e.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],s=e.indicators?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.indicatorKey),t)),[])??[];if(this.internalProps.dataConfig.collectValuesBy=this._generateCollectValuesConfig(o,n),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new ZG(this.internalProps.dataConfig,n,o,s,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&zG(this.internalProps.indicators)){const t=e=>{e.forEach((e=>{e.children?.length?t(e.children):e.children=[{dimensionKey:"axis",value:""}]}))};this.dataset.rowHeaderTree?.length?t(this.dataset.rowHeaderTree):this.dataset.rowHeaderTree=[{dimensionKey:"axis",value:""}]}e.columnTree||!1!==e.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,e.indicators)),e.rowTree||!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,e.indicators)),i=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId),this.internalProps.layoutMap=new YG(this,this.dataset,i,r),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new VG(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(IL.INITIALIZED,null)}),0)}static get EVENT_TYPE(){return zW}get pivotChartAxes(){return this._axes}get recordsCount(){return this.records?.length}isListTable(){return!1}isPivotTable(){return!0}isPivotChart(){return!0}_canResizeColumn(t,e){const i=super._canResizeColumn(t,e);if(i&&!this.internalProps.layoutMap.indicatorsAsCol){const e=this.internalProps.layoutMap.getBody(t,this.columnHeaderLevelCount);if(e?.disableColumnResize)return!1}return i}updateOption(t){const e=this.internalProps;let i,r;super.updateOption(t),this.layoutNodeId={seqId:0},this.internalProps.columns=vt(t.columns),this.internalProps.rows=vt(t.rows),this.internalProps.indicators=t.indicators?.length?qH(t.indicators):[],this.internalProps.columnTree=!t.indicatorsAsCol||t.columns?.length||t.columnTree?vt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?vt(t.rowTree):[],t.records&&(this.internalProps.records=t.records),this.setCustomStateNameToSpec(),this._selectedDataItemsInChart=[],e.columnResizeType=t.columnResizeType??"column",e.rowResizeType=t.rowResizeType??"row",e.dataConfig={isPivotChart:!0},this._axes=nt(t.axes)?t.axes:[],t.columnTree&&(!1!==t.indicatorsAsCol&&(this.internalProps.columnTree=bG(this.internalProps.columnTree,t.indicators)),i=new cG(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(!1===t.indicatorsAsCol&&(this.internalProps.rowTree=bG(this.internalProps.rowTree,t.indicators)),r=new cG(this.internalProps.rowTree??[],this.layoutNodeId));const n=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():t.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],o=i?.dimensionKeys?.count?i.dimensionKeys.valueArr():t.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],s=t.indicators?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.indicatorKey),t)),[])??[];if(this.internalProps.dataConfig.collectValuesBy=this._generateCollectValuesConfig(o,n),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new ZG(this.internalProps.dataConfig,n,o,s,this.internalProps.indicators,t.indicatorsAsCol??!0,t.records??this.internalProps.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&zG(this.internalProps.indicators)){const t=e=>{e.forEach((e=>{e.children?.length?t(e.children):e.children=[{dimensionKey:"axis",value:""}]}))};this.dataset.rowHeaderTree?.length?t(this.dataset.rowHeaderTree):this.dataset.rowHeaderTree=[{dimensionKey:"axis",value:""}]}return t.columnTree||!1!==t.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,t.indicators)),t.rowTree||!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,t.indicators)),i=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId),e.layoutMap=new YG(this,this.dataset,i,r),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.releaseList&&(e.releaseList.forEach((t=>t?.release?.())),e.releaseList=null),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph(),t.title&&(this.internalProps.title=new VG(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),new Promise((t=>{setTimeout(t,0)}))}updatePagination(){}refreshHeader(){this.setMinMaxLimitWidth(!0),this.refreshRowColCount()}refreshRowColCount(){const t=this,{layoutMap:e}=t.internalProps;e&&(t.colCount=e.colCount??0,t.rowCount=e.rowCount??0,t.internalProps.frozenColCount=e.rowHeaderLevelCount??0,t.frozenRowCount=e.headerLevelCount,t.bottomFrozenRowCount!==(e?.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=e?.bottomFrozenRowCount??0),t.rightFrozenColCount!==(e?.rightFrozenColCount??0)&&(t.rightFrozenColCount=e?.rightFrozenColCount??0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount))}_getSortFuncFromHeaderOption(t,e,i){}syncHierarchyState(t,e){t.value===e.value&&t.dimensionKey===e.dimensionKey&&(e.hierarchyState=e.hierarchyState??(e?.children?t.hierarchyState:void 0),e?.children?.forEach(((e,i)=>{t?.children?.[i]&&e&&this.syncHierarchyState(t.children[i],e)})))}getRecordShowIndexByCell(t,e){}getTableIndexByRecordIndex(t){}getTableIndexByField(t){}getCellAddrByFieldRecord(t,e){}getBodyIndexByRow(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByRow(t)}getBodyIndexByCol(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByCol(t)}getCellValue(t,e,i){if(!i){const i=this.getCustomMergeValue(t,e);if(i)return i}if(this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.layoutMap.isBottomFrozenRow(t,e)||this.internalProps.layoutMap.isRightFrozenColumn(t,e)){const i=this.internalProps.layoutMap.getIndicatorKeyInChartSpec(t,e);let r;return i?.forEach((t=>{const e=this.internalProps.layoutMap.getIndicatorInfo(t);e&&(r=e)})),r?.title??r?.indicatorKey??""}const{title:i,fieldFormat:r}=this.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r(i,t,e,this):i}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const{fieldFormat:r}=this.internalProps.layoutMap.getBody(t,e),n=this.getBodyIndexByRow(e),o=this.getBodyIndexByCol(t),s=this.records[n]?.[o];if("function"==typeof r){return r(s,t,e,this)}return s}getCellOriginValue(t,e){const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.layoutMap.isBottomFrozenRow(t,e)||this.internalProps.layoutMap.isRightFrozenColumn(t,e)){const i=this.internalProps.layoutMap.getIndicatorKeyInChartSpec(t,e);let r;return i?.forEach((t=>{const e=this.internalProps.layoutMap.getIndicatorInfo(t);e&&(r=e)})),r?.title??r?.indicatorKey??""}const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const r=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t),o=this.records[r]?.[n];return o}getCellRawValue(t,e){return this.getCellOriginValue(t,e)}getCellOriginRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)&&this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i).records}}getCellRawRecord(t,e){return this.getCellOriginRecord(t,e)}getPivotSortState(t,e){if(!this.pivotSortState)return;const i=this.getCellRange(t,e);for(let t=0;t<this.pivotSortState.length;t++){const{col:e,row:r,order:n}=this.pivotSortState[t];if(ML(i,e,r))return n}}_moveHeaderPosition(t,e){const i=this.internalProps.layoutMap.moveHeaderPosition(t,e);if(i){if("column"===i.moveType){if(this.options.records?.[0]?.constructor===Array)for(let t=0;t<this.internalProps.records.length;t++){const e=this.internalProps.records[t].splice(i.sourceIndex-this.rowHeaderLevelCount,i.sourceSize);e.unshift(i.targetIndex-this.rowHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records[t],e)}this.colWidthsMap.adjustOrder(i.sourceIndex,i.targetIndex,i.sourceSize),this.setMinMaxLimitWidth()}else if("row"===i.moveType){if(this.options.records?.[0]?.constructor===Array){const t=this.internalProps.records.splice(i.sourceIndex-this.columnHeaderLevelCount,i.sourceSize);t.unshift(i.targetIndex-this.columnHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records,t)}this.rowHeightsMap.adjustOrder(i.sourceIndex,i.targetIndex,i.sourceSize)}return i}return null}toggleHierarchyState(t,e){}getHeaderCellAddressByPath(t){return this.internalProps.layoutMap.getPivotCellAdress(t)}getCellAddressByHeaderPaths(t){return this.internalProps.layoutMap.getCellAdressByHeaderPath(t)}getHeaderPathByXY(t){let e;e=t?this.getCellAt(t.x+this.getFrozenColsWidth()+this.scrollLeft+1,t.y+this.getFrozenRowsHeight()+this.scrollTop+1):this.getCellAt(this.getFrozenColsWidth()+this.scrollLeft+1,this.getFrozenRowsHeight()+this.scrollTop+1);return this.internalProps.layoutMap.getCellHeaderPaths(e.col,e.row)}getHierarchyState(t,e){return this._getHeaderLayoutMap(t,e)?.hierarchyState}_hasHierarchyTreeHeader(){return"tree"===this.internalProps.layoutMap.rowHierarchyType}getMenuInfo(t,e,i){const r=this.internalProps.layoutMap.getPivotDimensionInfo(t,e);return{dimensionKey:r[r.length-1].dimensionKey,value:this.getCellValue(t,e),cellLocation:this.getCellLocation(t,e),isPivotCorner:this.isCornerHeader(t,e),event:void 0}}_generateCollectValuesConfig(t,e){t=t.filter((t=>t!==QL)),e=e.filter((t=>t!==QL));const i=this.internalProps.indicators,r={};for(let n=0,o=i?.length;n<o;n++)if("string"!=typeof i[n]&&i[n].chartSpec){if("pie"===i[n].chartSpec?.type||"rose"===i[n].chartSpec?.type||"radar"===i[n].chartSpec?.type||"gauge"===i[n].chartSpec?.type||"wordCloud"===i[n].chartSpec?.type)continue;const o=i[n],s=o.chartSpec;if(!1===this.options.indicatorsAsCol)if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[o.indicatorKey]={by:e,range:!0,sumBy:s?.stack&&t.concat(s?.xField)},s.series)s.series.forEach((i=>{const n="string"==typeof i.xField?i.xField:i.xField[0];r[n]={by:t,type:"horizontal"!==i.direction?"xField":void 0,range:"scatter"===i.type||"horizontal"===i.direction,sortBy:"horizontal"!==i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0};const o=i.yField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[o]={by:e,range:"scatter"===i.type||"horizontal"!==i.direction,sumBy:i.stack&&t.concat(i?.xField),sortBy:"horizontal"===i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0,extendRange:wO(s.markLine)}}));else{const i="string"==typeof s.xField?s.xField:s.xField[0];r[i]={by:t,type:"horizontal"!==s.direction?"xField":void 0,range:"scatter"===s.type||"horizontal"===s.direction,sortBy:"horizontal"!==s.direction?s?.data?.fields?.[i]?.domain:void 0},!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0);const n=s.yField;r[n]={by:e,range:"horizontal"!==s.direction,sumBy:s.stack&&t.concat(s?.xField),sortBy:"horizontal"===s.direction?s?.data?.fields?.[n]?.domain:void 0,extendRange:wO(s.markLine)}}else{const o=i[n];if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[o.indicatorKey]={by:t,range:!0,sumBy:s?.stack&&e.concat(s?.yField)},s.series)s.series.forEach((i=>{const n="string"==typeof i.yField?i.yField:i.yField[0];r[n]={by:e,type:"horizontal"===i.direction?"yField":void 0,range:"scatter"===i.type||"horizontal"!==i.direction,sortBy:"horizontal"===i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0};const o=i.xField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[o]={by:t,range:"scatter"===i.type||"horizontal"===i.direction,sumBy:i.stack&&e.concat(i?.yField),sortBy:"horizontal"!==i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0,extendRange:wO(s.markLine)}}));else{const i="string"==typeof s.yField?s.yField:s.yField[0];r[i]={by:e,type:"horizontal"===s.direction?"yField":void 0,range:"scatter"===s.type||"horizontal"!==s.direction,sortBy:"horizontal"===s.direction?s?.data?.fields?.[i]?.domain:void 0},!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0);const n=s.xField;r[n]={by:t,range:"scatter"===s.type||"horizontal"===s.direction,sumBy:s.stack&&e.concat(s?.yField),sortBy:"horizontal"!==s.direction?s?.data?.fields?.[n]?.domain:void 0,extendRange:wO(s.markLine)}}}}return r}_generateAggregationRules(){const t=[];return this.internalProps.indicators?.forEach((e=>{if("string"==typeof e)t.push({indicatorKey:e,field:e,aggregationType:vE.RECORD});else if(e.chartSpec?.series){const i=[];e.chartSpec?.series.forEach((t=>{const e=!1===this.options.indicatorsAsCol?t.yField:t.xField;-1===i.indexOf(e)&&i.push(e)})),t.push({indicatorKey:e.indicatorKey,field:i,aggregationType:vE.RECORD})}else{const i=!1===this.options.indicatorsAsCol?e.chartSpec.yField:e.chartSpec.xField;t.push({indicatorKey:e.indicatorKey,field:i??e.indicatorKey,aggregationType:vE.RECORD})}})),t}setCustomStateNameToSpec(){const t=t=>{t.bar?.state?.selected&&(t.bar.state.vtable_selected=t.bar.state.selected,t.bar.state.vtable_selected_reverse=t.bar.state.selected_reverse,delete t.bar.state.selected,delete t.bar.state.selected_reverse),t.point?.state?.selected&&(t.point.state.vtable_selected=t.point.state.selected,t.point.state.vtable_selected_reverse=t.point.state.selected_reverse,delete t.point.state.selected,delete t.point.state.selected_reverse),t.line?.state?.selected&&(t.line.state.vtable_selected=t.line.state.selected,t.line.state.vtable_selected_reverse=t.line.state.selected_reverse,delete t.line.state.selected,delete t.line.state.selected_reverse),t.area?.state?.selected&&(t.area.state.vtable_selected=t.area.state.selected,t.area.state.vtable_selected_reverse=t.area.state.selected_reverse,delete t.area.state.selected,delete t.area.state.selected_reverse)};this.internalProps.indicators?.forEach((e=>{if(e.chartSpec){const i=e.chartSpec;i.series?i.series.forEach((e=>{t(e)})):t(i)}}))}updateFilterRules(t){this.internalProps.dataConfig.filterRules=t,this.dataset.updateFilterRules(t),fW(this.scenegraph),function(t){const e=t.table;for(let i=t.proxy.colStart;i<=t.proxy.colEnd;i++){const r=t.getColGroup(i);r?.getChildren()?.forEach((t=>{const i=t.col,r=t.row;t.children.forEach((t=>{if("chart"===t.type){t.updateData(e.getCellValue(i,r));const n=e.internalProps.layoutMap.getChartAxes(i,r);t.setAttribute("axes",n);const o=t.attribute.spec;o.axes=n,t.setAttribute("spec",o)}}))}))}mW(t.rowHeaderGroup,t.table),mW(t.colHeaderGroup,t.table),mW(t.rightFrozenGroup,t.table),mW(t.bottomFrozenGroup,t.table)}(this.scenegraph),this.render()}getLegendSelected(){const t=[];return this.internalProps.legends?.forEach((e=>{const i=e.legendComponent._getSelectedLegends().map((t=>t.label));t.push(...i)})),t}setLegendSelected(t){this.internalProps.legends?.forEach((e=>{e.legendComponent.setSelected(t)}))}getChartDatumPosition(t,e){const{chartInstance:i,bounds:r}=this.getChartInstance(e);if(i){const e=i.convertDatumToPosition(t);return e?{x:Math.round(e.x+r.x1),y:Math.round(e.y+r.y1)}:null}return null}getCellAddressByRecord(t){const e=[],i=[],r={},n=[];this.dataset.dataConfig.aggregationRules.forEach((t=>{if("string"==typeof t.field)r[t.field]=t.indicatorKey,n.push(t.field);else for(let e=0;e<t.field.length;e++)r[t.field[e]]=t.indicatorKey,n.push(t.field[e])}));for(const o in t)this.dataset.rows.indexOf(o)>=0&&e.push({dimensionKey:o,value:t[o]}),this.dataset.columns.indexOf(o)>=0&&i.push({dimensionKey:o,value:t[o]}),n.indexOf(o)>=0&&(this.dataset.indicatorsAsCol?i.push({indicatorKey:r[o]}):e.push({indicatorKey:r[o]}));return this.getCellAddressByHeaderPaths({rowHeaderPaths:e,colHeaderPaths:i,cellLocation:"body"})}getChartInstance(t){const e=this.getCellAddressByHeaderPaths(t);if(e){const t=this.getCellRelativeRect(e.col,e.row),i=this.scenegraph.getCell(e.col,e.row);let r;const n=i?.getChildren()?.[0];if(n.attribute.chartInstance){r=n.attribute.chartInstance;const{dataId:t,data:e,axes:i,spec:o}=n.attribute,s=n.getViewBox();if(i?.forEach(((t,e)=>{"linear"===t.type?r.updateModelSpecSync({type:"axes",index:e},{min:t.range?.min??0,max:t.range?.max??0},!0):"band"===t.type&&r.updateModelSpec({type:"axes",index:e},{domain:t.domain.slice(0)},!0)})),r.updateViewBox({x1:s.x1-n.getRootNode().table.scrollLeft,x2:s.x2-n.getRootNode().table.scrollLeft,y1:s.y1-n.getRootNode().table.scrollTop,y2:s.y2-n.getRootNode().table.scrollTop},!1,!1),"string"==typeof t)r.updateDataSync(t,e??[]);else{const i=[];for(const n in t){const s=t[n],a=o.series.find((t=>t?.data?.id===n));i.push({id:n,values:s?e?.filter((t=>t.hasOwnProperty(s)))??[]:e??[],fields:a?.data?.fields}),r.updateFullDataSync||r.updateDataSync(n,s?e?.filter((t=>t.hasOwnProperty(s)))??[]:e??[])}r.updateFullDataSync?.(i)}this.renderAsync()}return{chartInstance:r,bounds:t.bounds}}return{}}_getDimensionSortArray(){if(this.options?.axes?.length){const t=this.options.indicatorsAsCol?"left":"bottom",e=this.options.axes.find((e=>e.orient===t));if(e&&nt(e.domain))return e.domain}}setRecords(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.options.records=this.internalProps.records=t;const i=this.options,r=this.internalProps;let n,o;this.dataset.setRecords(t),n=i.columnTree?r.layoutMap.columnDimensionTree:new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),o=i.rowTree?r.layoutMap.rowDimensionTree:new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId),r.layoutMap=new YG(this,this.dataset,n,o),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.internalProps.title&&!this.internalProps.title.isReleased&&(this._updateSize(),this.internalProps.title.resize(),this.scenegraph.resize()),this.eventManager.updateEventBinder()}_hasCustomRenderOrLayout(){if(this.options.customRender)return!0;const{columnsDefine:t,rowsDefine:e,indicatorsDefine:i}=this.internalProps.layoutMap;for(let e=0;e<t.length;e++){const i=t[e];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<e.length;t++){const i=e[t];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<i.length;t++){const e=i[t];if("string"!=typeof e&&(e.customLayout||e.headerCustomLayout||e.customRender||e.headerCustomRender))return!0}return!1}changeRecordOrder(t,e){}getLayoutColumnTree(){return this.internalProps.layoutMap.getLayoutColumnTree()}getLayoutColumnTreeCount(){return this.internalProps.layoutMap.getLayoutColumnTreeCount()}getLayoutRowTree(){return this.internalProps.layoutMap.getLayoutRowTree()}getLayoutRowTreeCount(){return this.internalProps.layoutMap.getLayoutRowTreeCount()}getCellHeaderTreeNodes(t,e){return this.internalProps.layoutMap.getCellHeaderPathsWithTreeNode(t,e)}},t.PivotTable=class extends RG{layoutNodeId={seqId:0};pivotSortState;editorManager;dataset;flatDataToObjects;constructor(t,e){if("node"===YE.mode?(e=t,t=null):t instanceof HTMLElement||(e=t,t=t.container?t.container:null),super(t,e),e){e.layout&&Object.assign(e,e.layout),this.internalProps.columns=vt(e.columns),this.internalProps.rows=vt(e.rows),this.internalProps.indicators=qH(e.indicators),e.indicators?.forEach(((t,e)=>{"object"==typeof t&&t?.editor&&(this.internalProps.indicators[e].editor=t.editor)})),this.internalProps.columnTree=!e.indicatorsAsCol||e.columns?.length||e.columnTree?vt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?vt(e.rowTree):[],this.internalProps.records=e.records,this.pagination=e.pagination,this.internalProps.columnResizeType=e.columnResizeType??"column",this.internalProps.rowResizeType=e.rowResizeType??"row",this.internalProps.dataConfig=vt(e.dataConfig);const t=this.internalProps.records;if(this.internalProps.recordsIsTwoDimensionalArray=!1,t?.[0]?.constructor===Array&&(this.internalProps.recordsIsTwoDimensionalArray=!0),!1===e.customConfig?.enableDataAnalysis){const e=new cG(this.internalProps.columnTree??[],this.layoutNodeId),i=new cG(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0);this.internalProps.layoutMap=new YG(this,null,e,i),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new qG({rows:this.internalProps.layoutMap.fullRowDimensionKeys,columns:this.internalProps.layoutMap.colDimensionKeys,indicators:this.internalProps.layoutMap.indicatorKeys,indicatorsAsCol:this.internalProps.layoutMap.indicatorsAsCol,indicatorDimensionKey:this.internalProps.layoutMap.indicatorDimensionKey},t))}else{const t=mG(this,e),{rowKeys:i,columnKeys:r,indicatorKeys:n}=t;let{columnDimensionTree:o,rowDimensionTree:s}=t;this.dataset=new ZG(this.internalProps.dataConfig,i,r,n,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,e.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),e.columnTree||(!1!==e.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,e.indicators)),o=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId)),e.rowTree||(!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,e.indicators)),s=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),this.internalProps.layoutMap=new YG(this,this.dataset,o,s)}this._changePivotSortStateBySortRules(),(e.pivotSortState?.length??0)>0&&(this.pivotSortState=[],this.pivotSortState=e.pivotSortState),"node"!==YE.mode&&(this.editorManager=new UG(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.stateManager.initCheckedState(t),this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new VG(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(IL.INITIALIZED,null)}),0)}}static get EVENT_TYPE(){return FW}isListTable(){return!1}isPivotTable(){return!0}isPivotChart(){return!1}get recordsCount(){return this.records?.length}_canResizeColumn(t,e){const i=super._canResizeColumn(t,e);if(i){if(this.internalProps.layoutMap.isSeriesNumber(t,e)&&!0===this.internalProps.rowSeriesNumber.disableColumnResize)return!1;if(!this.internalProps.layoutMap.indicatorsAsCol){const e=this.internalProps.layoutMap.getBody(t,this.columnHeaderLevelCount);if(e?.disableColumnResize)return!1}}return i}updateOption(t){const e=this.internalProps;if(super.updateOption(t),this.layoutNodeId={seqId:0},this.internalProps.columns=vt(t.columns),this.internalProps.rows=vt(t.rows),this.internalProps.indicators=t.indicators?.length?qH(t.indicators):[],t.indicators?.forEach(((t,e)=>{"object"==typeof t&&t?.editor&&(this.internalProps.indicators[e].editor=t.editor)})),this.internalProps.columnTree=!t.indicatorsAsCol||t.columns?.length||t.columnTree?vt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?vt(t.rowTree):[],t.records&&(this.internalProps.records=t.records),this.stateManager.initCheckedState(this.internalProps.records),this.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1),this.pagination=t.pagination,e.columnResizeType=t.columnResizeType??"column",e.rowResizeType=t.rowResizeType??"row",e.dataConfig=vt(t.dataConfig),"tree"===t?.rowHierarchyType&&"tree"===this.internalProps.layoutMap.rowHierarchyType&&this.internalProps.layoutMap.rowExpandLevel===t?.rowExpandLevel){const t=this.internalProps.layoutMap.rowDimensionTree.tree.children;this.internalProps.rowTree?.forEach(((e,i)=>{const r=t.find((t=>t.dimensionKey===e.dimensionKey&&t.value===e.value));r&&this.syncHierarchyState(r,e)}))}const i=this.internalProps.records;if(this.internalProps.recordsIsTwoDimensionalArray=!1,i?.[0]?.constructor===Array&&(this.internalProps.recordsIsTwoDimensionalArray=!0),!1===t.customConfig?.enableDataAnalysis){let r,n;t.columnTree&&(r=new cG(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(n=new cG(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new YG(this,null,r,n),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new qG({rows:e.layoutMap.fullRowDimensionKeys,columns:e.layoutMap.colDimensionKeys,indicators:e.layoutMap.indicatorKeys,indicatorsAsCol:e.layoutMap.indicatorsAsCol,indicatorDimensionKey:e.layoutMap.indicatorDimensionKey},i))}else{const r=mG(this,t),{rowKeys:n,columnKeys:o,indicatorKeys:s}=r;let{columnDimensionTree:a,rowDimensionTree:l}=r;this.dataset=new ZG(e.dataConfig,n,o,s,this.internalProps.indicators,t.indicatorsAsCol??!0,i,t.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),t.columnTree||(!1!==t.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,t.indicators)),a=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId)),t.rowTree||(!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,t.indicators)),l=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new YG(this,this.dataset,a,l)}return this._changePivotSortStateBySortRules(),(t.pivotSortState?.length??0)>0&&(this.pivotSortState=[],this.pivotSortState=t.pivotSortState),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.releaseList&&(e.releaseList.forEach((t=>t?.release?.())),e.releaseList=null),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph(),t.title&&(this.internalProps.title=new VG(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),new Promise((t=>{setTimeout(t,0)}))}updatePagination(t){t?(this.pagination||(this.pagination={currentPage:0,perPageCount:0}),"number"==typeof t.currentPage&&t.currentPage>=0&&(this.pagination.currentPage=t.currentPage),t.perPageCount&&(this.pagination.perPageCount=t.perPageCount||this.pagination.perPageCount),this.scenegraph.clearCells(),this.internalProps.layoutMap.setPagination(this.pagination),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.render()):this.pagination&&(this.pagination=void 0,this.scenegraph.clearCells(),this.internalProps.layoutMap.setPagination(void 0),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.render())}refreshHeader(){this.setMinMaxLimitWidth(!0),this.refreshRowColCount()}refreshRowColCount(){const t=this,{layoutMap:e}=t.internalProps;e&&(t.colCount=e.colCount??0,t.rowCount=e.rowCount??0,this.internalProps.frozenColCount=Math.max((e.rowHeaderLevelCount??0)+e.leftRowSeriesNumberColumnCount,this.options.frozenColCount??0),t.frozenRowCount=e.headerLevelCount,t.bottomFrozenRowCount!==(this.options.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=this.options.bottomFrozenRowCount??0),t.rightFrozenColCount!==(this.options.rightFrozenColCount??0)&&(t.rightFrozenColCount=this.options.rightFrozenColCount??0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount))}_getSortFuncFromHeaderOption(t,e,i){}get rowHierarchyType(){return this.internalProps.layoutMap.rowHierarchyType}syncHierarchyState(t,e){t.value===e.value&&t.dimensionKey===e.dimensionKey&&(e.hierarchyState=e.hierarchyState??(e?.children?t.hierarchyState:void 0),e?.children?.forEach(((e,i)=>{if(t?.children?.[i]&&e){const i=t.children.find((t=>t.dimensionKey===e.dimensionKey&&t.value===e.value));i&&this.syncHierarchyState(i,e)}})))}getRecordShowIndexByCell(t,e){}getTableIndexByRecordIndex(t){}getTableIndexByField(t){}getCellAddrByFieldRecord(t,e){}getBodyIndexByRow(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByRow(t)}getBodyIndexByCol(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByCol(t)}getFieldData(t,e,i){if(!this.internalProps.layoutMap.isHeader(e,i)){if(this.internalProps.recordsIsTwoDimensionalArray){const t=this.getBodyIndexByRow(i),r=this.getBodyIndexByCol(e);return this.records[t]?.[r]}if(this.dataset){const r=this.internalProps.layoutMap.getCellHeaderPaths(e,i);if(r){let n;const o=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(n={position:"col",index:e}),t.indicatorKey??t.value))),s=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(n={position:"row",index:e}),t.indicatorKey??t.value))),a=this.dataset.getAggregator(s,o,this.internalProps.layoutMap.getIndicatorKey(e,i),!0,n);if(a.records&&a.records.length>=1)return a.records[0][t]}}else if(this.flatDataToObjects){const r=this.internalProps.layoutMap.getCellHeaderPaths(e,i),n=r.colHeaderPaths.map((t=>t.indicatorKey??t.value)),o=r.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),s=this.flatDataToObjects.getTreeNode(o,n,this.internalProps.layoutMap.getBody(e,i).indicatorKey,!1);if(s?.record)return s?.record[t]}}}getCellValue(t,e,i){if(!i){const i=this.getCustomMergeValue(t,e);if(i)return i}if(this.internalProps.layoutMap.isSeriesNumber(t,e)){if(this.internalProps.layoutMap.isSeriesNumberInHeader(t,e)){const{title:i}=this.internalProps.layoutMap.getSeriesNumberHeader(t,e);return i}const{format:i}=this.internalProps.layoutMap.getSeriesNumberBody(t,e);return"function"==typeof i?i(t,e,this):e-this.columnHeaderLevelCount+1}if(this.internalProps.layoutMap.isHeader(t,e)){const{title:i,fieldFormat:r}=this.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r(i,t,e,this):i}if(this.internalProps.recordsIsTwoDimensionalArray){const{fieldFormat:i}=this.internalProps.layoutMap.getBody(t,e),r=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t),o=this.records[r]?.[n];if("function"==typeof i){return i(o,t,e,this)}return o}if(this.dataset){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e);let r;const n=i.colHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"col",index:e}),t.indicatorKey??t.value))),o=i.rowHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,r),{fieldFormat:a}=this.internalProps.layoutMap.getBody(t,e);return s.formatValue?s.formatValue(t,e,this):"function"==typeof a?a(s?.value(),t,e,this):s?.value()??""}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey),{fieldFormat:s}=this.internalProps.layoutMap.getBody(t,e);return"function"==typeof s?s(o?.value,t,e,this):o?.value??""}}getCellOriginValue(t,e){const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return o?.value}}getCellRawValue(t,e){const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!1,i);return s.value?s.value():void 0}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return o?.value}}getCellOriginRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i).records}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return o?.record}}}getCellRawRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!1,i).records}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return o?.record}}}updateSortRules(t,e,i){this.internalProps.dataConfig?this.internalProps.dataConfig.sortRules=t:this.internalProps.dataConfig={sortRules:t},this.dataset.updateSortRules(t),this._changePivotSortStateBySortRules();const{layoutMap:r}=this.internalProps;r.resetHeaderTree(),this.scenegraph.clearCells(),at(e)&&at(i)?(this.isRowHeader(e,i)?(this.setMinMaxLimitWidth(!0),this.internalProps._widthResizedColMap.clear()):this.isCornerHeader(e,i)?"column"===r.cornerSetting.titleOnDimension?(this.setMinMaxLimitWidth(!0),this.internalProps._widthResizedColMap.clear()):"row"===r.cornerSetting.titleOnDimension&&this.internalProps._heightResizedRowMap.clear():this.isColumnHeader(e,i)&&this.internalProps._heightResizedRowMap.clear(),this.refreshRowColCount()):this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(!0),this.render()}_changePivotSortStateBySortRules(){this.pivotSortState=[];const t=this.internalProps.dataConfig?.sortRules??[];for(let e=0;e<t.length;e++){const i=t[e];if(i.sortType){const t=[];if(i.sortByIndicator){if(i.sortField===(this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1])){for(let e=0;e<i.query.length;e++)t.push({dimensionKey:this.dataset.indicatorsAsCol?this.dataset.columns[e]:this.dataset.rows[e],value:i.query[e]});t.push({indicatorKey:i.sortByIndicator,value:this.internalProps.layoutMap.getIndicatorInfo(i.sortByIndicator)?.title??i.sortByIndicator})}}else t.push({dimensionKey:i.sortField,isPivotCorner:!0,value:i.sortField});this.pivotSortState.push({dimensions:t,order:i.sortType})}}}updatePivotSortState(t){this.pivotSortState=t}sort(t,e,i){let r;if(this.isCornerHeader(t,e)){const i=this.getHeaderDefine(t,e);r=[];const n={isPivotCorner:!0,dimensionKey:i.value,value:i.value};r.push(n)}else r=this.isColumnHeader(t,e)?this.getCellHeaderPaths(t,e).colHeaderPaths:this.getCellHeaderPaths(t,e).rowHeaderPaths;const n=r[r.length-1].indicatorKey,o=this.getHeaderDefine(t,e);if(o.sort){if(this.dataset.sortRules){for(let t=this.dataset.sortRules.length-1;t>=0;t--){const e=this.dataset.sortRules[t];(o.dimensionKey&&e.sortField===o.dimensionKey||n&&e.sortField===(this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1]))&&this.dataset.sortRules.splice(t,1)}n?this.dataset.sortRules.push({sortField:this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1],sortType:CE[i],sortByIndicator:n,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}):this.dataset.sortRules.push({sortField:o.dimensionKey,sortType:CE[i]})}else this.dataset.sortRules=n?[{sortField:this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1],sortType:CE[i],sortByIndicator:n,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}]:[{sortField:o.dimensionKey,sortType:CE[i]}];this.updateSortRules(this.dataset.sortRules,t,e)}}getPivotSortState(t,e){if(!this.pivotSortState)return;const i=this.getCellRange(t,e);for(let t=0;t<this.pivotSortState.length;t++){const e=this.pivotSortState[t],r=e.dimensions,n=this.getCellAddressByHeaderPaths(r),o=e.order;if(n&&ML(i,n.col,n.row))return o}}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),n=this.internalProps.layoutMap.moveHeaderPosition(t,e);if(n){if("column"===n.moveType){if(this.internalProps.recordsIsTwoDimensionalArray)for(let t=0;t<this.internalProps.records.length;t++){const e=this.internalProps.records[t].splice(n.sourceIndex-this.rowHeaderLevelCount,n.sourceSize);e.unshift(n.targetIndex-this.rowHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records[t],e)}this.colWidthsMap.exchangeOrder(i.start.col,i.end.col-i.start.col+1,r.start.col,r.end.col-r.start.col+1,n.targetIndex),this.setMinMaxLimitWidth()}else if("row"===n.moveType){if(this.internalProps.recordsIsTwoDimensionalArray){const t=this.internalProps.records.splice(n.sourceIndex-this.columnHeaderLevelCount,n.sourceSize);t.unshift(n.targetIndex-this.columnHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records,t)}n.targetIndex>n.sourceIndex?this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex+n.sourceSize-n.targetSize,n.targetSize,n.targetIndex):this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex,n.targetSize,n.targetIndex)}return n}return null}toggleHierarchyState(t,e){const i=this.getHierarchyState(t,e);if(i===yE.expand)this._refreshHierarchyState(t,e),this.fireListeners(FW.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.collapse});else if(i===yE.collapse){const i=this.internalProps.layoutMap.getHeadNode(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(FW.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.expand,originData:i})}}_refreshHierarchyState(t,e,i){let r=!1,n=!1;this.stateManager.updateHoverIcon(t,e,void 0,void 0);const o=this.internalProps.layoutMap.checkHasChart();o&&(this.autoFillWidth&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(n=this.getAllRowsHeight()<=this.tableNoFrameHeight));const s=this.internalProps.layoutMap.toggleHierarchyState(t,e);i&&i(),this.refreshRowColCount(),this.clearCellStyleCache(),this.scenegraph.updateHierarchyIcon(t,e),this.scenegraph.updateRow(s.removeCellPositions,s.addCellPositions,s.updateCellPositions),o&&(this.autoFillWidth&&!r&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&!n&&(n=this.getAllRowsHeight()<=this.tableNoFrameHeight),("adaptive"===this.widthMode||r||"adaptive"===this.heightMode||n)&&this.scenegraph.updateChartSize(0))}getHeaderCellAddressByPath(t){return this.internalProps.layoutMap.getPivotCellAdress(t)}getCellAddressByHeaderPaths(t){return this.internalProps.layoutMap.getCellAdressByHeaderPath(t)}getHeaderPathByXY(t){let e;e=t?this.getCellAt(t.x+this.getFrozenColsWidth()+this.scrollLeft+1,t.y+this.getFrozenRowsHeight()+this.scrollTop+1):this.getCellAt(this.getFrozenColsWidth()+this.scrollLeft+1,this.getFrozenRowsHeight()+this.scrollTop+1);return this.internalProps.layoutMap.getCellHeaderPaths(e.col,e.row)}getHierarchyState(t,e){return this._getHeaderLayoutMap(t,e)?.hierarchyState}getLayoutColumnTree(){return this.internalProps.layoutMap.getLayoutColumnTree()}getLayoutColumnTreeCount(){return this.internalProps.layoutMap.getLayoutColumnTreeCount()}getLayoutRowTree(){return this.internalProps.layoutMap.getLayoutRowTree()}getLayoutRowTreeCount(){return this.internalProps.layoutMap.getLayoutRowTreeCount()}getCellHeaderTreeNodes(t,e){return this.internalProps.layoutMap.getCellHeaderPathsWithTreeNode(t,e)}_hasHierarchyTreeHeader(){return"tree"===this.internalProps.layoutMap.rowHierarchyType}getMenuInfo(t,e,i){const r=this.internalProps.layoutMap.getPivotDimensionInfo(t,e);return{dimensionKey:r[r.length-1].dimensionKey,value:this.getCellValue(t,e),cellLocation:this.getCellLocation(t,e),isPivotCorner:this.isCornerHeader(t,e),event:void 0}}setRecords(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.options.records=this.internalProps.records=t,this.internalProps.recordsIsTwoDimensionalArray=!1,t?.[0]?.constructor===Array&&(this.internalProps.recordsIsTwoDimensionalArray=!0);const i=this.options,r=this.internalProps;if(!1===this.options.customConfig?.enableDataAnalysis)!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new qG({rows:r.layoutMap.fullRowDimensionKeys,columns:r.layoutMap.colDimensionKeys,indicators:r.layoutMap.indicatorKeys,indicatorsAsCol:r.layoutMap.indicatorsAsCol,indicatorDimensionKey:r.layoutMap.indicatorDimensionKey},t));else{let e,n;this.dataset.setRecords(t),e=i.columnTree?r.layoutMap.columnDimensionTree:new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),n=i.rowTree?r.layoutMap.rowDimensionTree:new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0),r.layoutMap=new YG(this,this.dataset,e,n),this.pivotSortState=[],i.pivotSortState&&(this.pivotSortState=i.pivotSortState)}this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.internalProps.title&&!this.internalProps.title.isReleased&&(this._updateSize(),this.internalProps.title.resize(),this.scenegraph.resize()),this.eventManager.updateEventBinder(),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible())}startEditCell(t,e){if(Z(t)&&Z(e))this.eventManager.isDraging=!1,this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Z(t)&&Z(e)&&this.editorManager.startEditCell(t,e)}}completeEditCell(){this.editorManager.completeEdit()}getEditor(t,e){let i;if(this.isCornerHeader(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerEditor??this.options.headerEditor}else if(this.isHeader(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerEditor??this.options.headerEditor}else{const r=this.getBodyColumnDefine(t,e);i=r?.editor??this.options.editor}if("function"==typeof i){i=i({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return"string"==typeof i?kG(i):i}isHasEditorDefine(t,e){const i=this.getBodyColumnDefine(t,e);let r=i?.editor??this.options.editor;if("function"==typeof r){r=r({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return Z(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){let r=i;const n=this.getCellOriginValue(t,e),o=this.getCellRawValue(t,e);"number"==typeof o&&cL(i)&&(r=parseFloat(i)),this._changeCellValueToDataSet(t,e,n,r);const s=this.getCellRange(t,e);for(let t=s.start.col;t<=s.end.col;t++)for(let e=s.start.row;e<=s.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else if(!this.internalProps._widthResizedColMap.has(t)){const e=this.getColWidth(t),i=mD(t,0,this.rowCount-1,this,!1);i!==e&&this.scenegraph.updateColWidth(t,i-e)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)0===this.internalProps._heightResizedRowMap.size&&this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode&&!this.internalProps._heightResizedRowMap.has(e)){const t=this.getRowHeight(e),i=dz(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:o,currentValue:n,changedValue:r}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let n=t,o=e;const s=[],a=[];for(let r=0;r<i.length&&!(e+r>this.rowCount-1);r++){const n=i[r],o=[],l=[];s.push(o),a.push(l);for(let i=0;i<n.length&&!(t+i>this.colCount-1);i++){const n=this.getCellRawValue(t+i,e+r);o.push(n);const s=this.getCellOriginValue(t+i,e+r);l.push(s)}}for(let l=0;l<i.length&&!(e+l>this.rowCount-1);l++){o=e+l;const h=i[l];let c=t;for(let i=0;i<h.length&&!(t+i>this.colCount-1);i++)if(c=t+i,r&&this.isHasEditorDefine(t+i,e+l)||!1===r){const r=h[i];let n=r;const o=a[l][i],c=s[l][i];"number"==typeof c&&cL(r)&&(n=parseFloat(r)),this._changeCellValueToDataSet(t+i,e+l,o,n),this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t+i,row:e+l,rawValue:c,currentValue:o,changedValue:this.getCellOriginValue(t+i,e+l)})}n=Math.max(n,c)}const l=this.getCellRange(t,e),h=this.getCellRange(n,o);for(let t=l.start.col;t<=h.end.col;t++)for(let e=l.start.row;e<=h.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else for(let e=t;e<=h.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=mD(e,0,this.rowCount-1,this,!1);i!==t&&this.scenegraph.updateColWidth(e,i-t)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode){const t=[],i=[];for(let r=e;r<=h.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),n=dz(r,0,this.colCount-1,this);t.push(r),i.push(n-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}_changeCellValueToDataSet(t,e,i,r){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t);this.records[i][n]=r}else if(this.dataset){const n=this.internalProps.layoutMap.getCellHeaderPaths(t,e);if(this.isCornerHeader(t,e))this.internalProps.layoutMap.changeCornerTitle(t,e,r);else if(this.isHeader(t,e))this.internalProps.layoutMap.changeTreeNodeTitle(t,e,r),!this.isCornerHeader(t,e)&&this.dataset.changeRecordFieldValue(n.colHeaderPaths?.length?n.colHeaderPaths[n.colHeaderPaths.length-1].indicatorKey??n.colHeaderPaths[n.colHeaderPaths.length-1].dimensionKey:n.rowHeaderPaths[n.rowHeaderPaths.length-1].indicatorKey??n.rowHeaderPaths[n.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=n.colHeaderPaths?.filter((t=>!t.virtual)).map((t=>t.indicatorKey??t.value)),o=n.rowHeaderPaths?.filter((t=>!t.virtual)).map((t=>t.indicatorKey??t.value));this.dataset.changeTreeNodeValue(this.internalProps.layoutMap.indicatorsAsCol?o:o.slice(0,-1),this.internalProps.layoutMap.indicatorsAsCol?i.slice(0,-1):i,this.internalProps.layoutMap.getIndicatorKey(t,e),r)}}else if(this.flatDataToObjects){const n=this.internalProps.layoutMap.getCellHeaderPaths(t,e);if(this.isHeader(t,e))this.internalProps.layoutMap.changeTreeNodeTitle(t,e,r),!this.isCornerHeader(t,e)&&this.flatDataToObjects.changeRecordFieldValue(n.colHeaderPaths?.length?n.colHeaderPaths[n.colHeaderPaths.length-1].indicatorKey??n.colHeaderPaths[n.colHeaderPaths.length-1].dimensionKey:n.rowHeaderPaths[n.rowHeaderPaths.length-1].indicatorKey??n.rowHeaderPaths[n.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=n.colHeaderPaths.map((t=>t.indicatorKey??t.value)),o=n.rowHeaderPaths.map((t=>t.indicatorKey??t.value));this.flatDataToObjects.changeTreeNodeValue(o,i,this.internalProps.layoutMap.getBody(t,e).indicatorKey,r)}}}_hasCustomRenderOrLayout(){if(this.options.customRender)return!0;const{columnsDefine:t,rowsDefine:e,indicatorsDefine:i}=this.internalProps.layoutMap;for(let e=0;e<t.length;e++){const i=t[e];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<e.length;t++){const i=e[t];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<i.length;t++){const e=i[t];if("string"!=typeof e&&(e.customLayout||e.headerCustomLayout||e.customRender||e.headerCustomRender))return!0}return!1}changeRecordOrder(t,e){}setTreeNodeChildren(t,e,i,r){if(this.flatDataToObjects){this.internalProps.layoutMap.getHeadNode(i,r).children=t,this._refreshHierarchyState(i,r,(()=>{this.flatDataToObjects.changeDataConfig({rows:this.internalProps.layoutMap.fullRowDimensionKeys,columns:this.internalProps.layoutMap.colDimensionKeys,indicators:this.internalProps.layoutMap.indicatorKeys,indicatorsAsCol:this.internalProps.layoutMap.indicatorsAsCol,indicatorDimensionKey:this.internalProps.layoutMap.indicatorDimensionKey}),this.flatDataToObjects.addRecords(e)}))}else{this.internalProps.layoutMap.getHeadNode(i,r).children=t,this._refreshHierarchyState(i,r,(()=>{this.dataset.changeDataConfig({rows:this.internalProps.layoutMap.fullRowDimensionKeys,columns:this.internalProps.layoutMap.colDimensionKeys}),this.dataset.addRecords(e)}))}}},t.TYPES=AE,t.VArc=Lv,t.VArea=Hv,t.VCheckBox=function(t){return new cE(t?t.attribute:{})},t.VCircle=Iv,t.VGlyph=Fv,t.VGroup=Ov,t.VImage=zv,t.VLine=Dv,t.VPath=Wv,t.VPolygon=Nv,t.VRadio=function(t){return new dE(t?t.attribute:{})},t.VRect=Gv,t.VRender=SE,t.VSymbol=jv,t.VTag=function(t){return new CT(t?t.attribute:{})},t.VText=Vv,t.clearGlobal=function(){HG()},t.core=BG,t.data=SI,t.getDataCellPath=function(t,e,i){const r=ej(t);let n=r.columnDimensionTree,o=r.rowDimensionTree,s=!1,a=!1;t.columnTree&&t.indicatorsAsCol&&!n.dimensionKeys.contain(QL)&&(s=!0),t.rowTree&&(t.indicatorsAsCol||o.dimensionKeys.contain(QL)||(a=!0));const{dataset:l,layoutNodeId:h}=r,c={options:t,layoutNodeId:h,internalProps:t,isPivotChart:()=>!0,pivotChartAxes:[],_selectedDataItemsInChart:[],_getActiveChartInstance:()=>({updateState:()=>{}})};t.columnTree&&!s||(n=new cG(l.colHeaderTree??[],h)),t.rowTree&&!a||(o=new cG(l.rowHeaderTree??[],h));const d=new YG(c,l,n,o);for(let t=0;t<d.colCount;t++)for(let r=0;r<d.rowCount;r++){if(d.isHeader(t,r))continue;const n=d.getCellHeaderPaths(t,r),o=n.colHeaderPaths.map((t=>t.indicatorKey??t.value)),s=n.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),a=l.getAggregator(d.indicatorsAsCol?s:s.slice(0,-1),d.indicatorsAsCol?o.slice(0,-1):o,d.getIndicatorKey(t,r)),h=ij(a.value?a.value():void 0,e,t,r,d,i);if(h)return h}},t.getIcons=function(){return NO()},t.getTargetCell=MO,t.graphicUtil=ff,t.jsx=Yv,t.register=IG,t.renderChart=Nz,t.restoreMeasureText=function(){tz="canvas",xn.load(iz)},t.setCustomAlphabetCharSet=function(t){QF=t,rz.clear()},t.themes=mH,t.updateCell=SF,t.version="1.4.2-alpha.4"}));
15
+ ***************************************************************************** */function Iz(t,e,i,r){var n,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,r);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(o<3?n(s):o>3?n(e,i,s):n(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s}const Oz=[],Fz=[];let zz=5,Dz=!1;function Wz(t){Z(t)&&(zz=t)}function Nz(t){const{axes:e,dataId:i,data:r,spec:n}=t.attribute,{chartInstance:o}=t,s=t.getViewBox();s.x2<=s.x1&&(s.x2=s.x1+1),s.y2<=s.y1&&(s.y2=s.y1+1),e?.forEach(((t,e)=>{"band"===t.type?o.updateModelSpec({type:"axes",index:e},{domain:t.domain.slice(0)},!0):o.updateModelSpecSync({type:"axes",index:e},{min:t.range?.min??0,max:t.range?.max??0},!0)})),o.updateViewBox({x1:s.x1-t.getRootNode().table.scrollLeft,x2:s.x2-t.getRootNode().table.scrollLeft,y1:s.y1-t.getRootNode().table.scrollTop,y2:s.y2-t.getRootNode().table.scrollTop},!1,!1);const a=t.getRootNode().table;if(a.internalProps.layoutMap?.updateDataStateToActiveChartInstance?.(o),"string"==typeof i)o.updateDataSync(i,r??[]);else{const t=[];for(const e in i){const s=i[e],a=n.series.find((t=>t?.data?.id===e));t.push({id:e,values:s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[],fields:a?.data?.fields}),o.updateFullDataSync||o.updateDataSync(e,s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[])}o.updateFullDataSync?.(t)}!function(t,e){const{viewWidth:i,viewHeight:r}=t;if(i<jz&&r<jz)return e.cacheCanvas=t.toCanvas(),void(e.isShareChartSpec||(e.chartInstance?.release(),e.chartInstance=null,e.setAttribute("chartInstance",null)));const n=Math.ceil(r/jz),o=Math.ceil(i/jz),s=[];for(let e=0;e<n;e++)for(let n=0;n<o;n++){const o=n*jz,a=e*jz,l=o+jz>i?i:o+jz,h=a+jz>r?r:a+jz,c=l-o,d=h-a,u=new Se;u.setValue(o,a,l,h);const g=t.toCanvas(!1,u);s.push({canvas:g,x:o,y:a,width:c,height:d})}e.cacheCanvas=s}(o.getStage(),t)}function Gz(t){Dz=!0,Fz.length>0?requestAnimationFrame((()=>{const e=Fz.splice(0,zz);Oz.splice(0,zz),e.forEach((t=>{Nz(t),t.addUpdateBoundTag()})),t.render(),Gz(t)})):Dz=!1}const jz=2e3;const Vz=Symbol.for("ChartRender");let Uz=class{type;numberType=oF;drawShape(t,e,i,r,n,o,s,a){const l=_o(t,o?.theme).group,{dataId:h,data:c,spec:d}=t.attribute;t.getViewBox();const{width:u=l.width,height:g=l.height}=t.attribute,{active:p,cacheCanvas:f,activeChartInstance:m}=t;if(!p&&f)nt(f)?f.forEach((t=>{const{x:i,y:r,width:n,height:o,canvas:s}=t;e.drawImage(s,i,r,n,o)})):e.drawImage(f,i,r,u,g);else if(m)if("string"==typeof h)m.updateDataSync(h,c??[]);else{const t=[];for(const e in h){const i=h[e],r=d.series.find((t=>t?.data?.id===e));t.push({id:e,values:i?c?.filter((t=>t.hasOwnProperty(i)))??[]:c??[],fields:r?.data?.fields}),m.updateFullDataSync||m.updateDataSync(e,i?c?.filter((t=>t.hasOwnProperty(i)))??[]:c??[])}m.updateFullDataSync?.(t)}else t.getRootNode().table.internalProps.renderChartAsync?(-1===Oz.indexOf(`${t.parent.col}+${t.parent.row}`)&&(Oz.push(`${t.parent.col}+${t.parent.row}`),Fz.push(t)),Dz||Gz(t.getRootNode().table)):Nz(t)}draw(t,e,i,r){const{context:n}=i;if(!n)return;const{clip:o}=t.attribute;o?n.save():n.highPerformanceSave(),n.transformFromMatrix(t.transMatrix,!0),n.beginPath(),r.skipDraw?this.drawShape(t,n,0,0,i,r,(()=>!1),(()=>!1)):this.drawShape(t,n,0,0,i),o?n.restore():n.highPerformanceRestore()}};Uz=Iz([f()],Uz);let Kz=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{shape:g}=t.attribute;if("circle"===g){const{width:n=l.width,height:o=l.height}=t.attribute;e.beginPath(),e.arc(i+n/2,r+o/2,Math.min(n,o)/2,0,2*Math.PI),e.closePath(),e.save(),e.clip()}}};Kz=Iz([f()],Kz);let $z=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{shape:g}=t.attribute;"circle"===g&&e.restore()}};function Yz(t,e,i,r){const{highlightScope:n,disableHeader:o,cellPos:s}=t.hover,a=t.table,l=a.isHeader(e,i);if(l&&o)return;let h;if(n===mE.single&&s.col===e&&s.row===i?h="cellBgColor":n===mE.column&&s.col===e?h=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":n===mE.row&&s.row===i?h=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":n===mE.cross&&(s.col===e&&s.row===i?h="cellBgColor":s.col===e?h="inlineColumnBgColor":s.row===i&&(h="inlineRowBgColor")),h){let t;if(l){const n=a.getHeaderDefine(e,i);t=n?.disableHeaderHover,r.firstChild&&"axis"===r.firstChild.name&&a.options.hover?.disableAxisHover&&(t=!0)}else{const r=a.getBodyColumnDefine(e,i);t=r?.disableHover}t&&(h=void 0)}return h}function Xz(t,e,i,r){const{highlightScope:n,disableHeader:o,cellPos:s,ranges:a}=t.select;let l;if(1===a?.length&&a[0].end.col===a[0].start.col&&a[0].end.row===a[0].start.row){const r=t.table,a=r.isHeader(e,i);if(a&&o)return;if(n===mE.single&&s.col===e&&s.row===i?l="cellBgColor":n===mE.column&&s.col===e?l=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":n===mE.row&&s.row===i?l=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":n===mE.cross&&(s.col===e&&s.row===i?l="cellBgColor":s.col===e?l="inlineColumnBgColor":s.row===i&&(l="inlineRowBgColor")),l){let t;if(a){const n=r.getHeaderDefine(e,i);t=n?.disableHeaderSelect}else{const n=r.getBodyColumnDefine(e,i);t=n?.disableSelect}t&&(l=void 0)}}return l}$z=Iz([f()],$z);let qz=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{stroke:g=l.stroke,strokeArrayWidth:p=l.strokeArrayWidth,strokeArrayColor:f=l.strokeArrayColor}=t.attribute;g&&(Array.isArray(p)||Array.isArray(f))&&(u.doStroke=!1)}};qz=Iz([f()],qz);let Zz=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{stroke:u=l.stroke,strokeArrayColor:g=l.strokeArrayColor,strokeArrayWidth:p=l.strokeArrayWidth,lineWidth:f=l.lineWidth,strokeColor:m=l.stroke}=t.attribute;let b,y,{width:v=l.width,height:C=l.height}=t.attribute;if(u&&(Array.isArray(p)||0!==f)&&(Array.isArray(g)||Array.isArray(p))){if("number"==typeof f&&1&f||Array.isArray(p)&&p.some((t=>1&t))){const e=t.stage.table;if(!e)return;const n="bottom-right"===e?.theme.cellBorderClipDirection;n?(i=Math.floor(i)-.5,r=Math.floor(r)-.5):(i=Math.floor(i)+.5,r=Math.floor(r)+.5),e.options.customConfig?._disableColumnAndRowSizeRound&&(v=Math.round(v),C=Math.round(C));const{width:o,height:s}=aD(t,Math.ceil(v),Math.ceil(C),n);b=o,y=s}else b=Math.ceil(v),y=Math.ceil(C);Jz(t,e,i,r,l,u,p||f,g||m,b,y)}}};function Jz(t,e,i,r,n,o,s,a,l,h,c,d){const u=function(t){if(!Array.isArray(t))return{isSplitDraw:!1,width:t};let e;for(let i=0;i<t.length;i++){const r=t[i];if(r)if(e){if(r!==e)return{isSplitDraw:!0}}else e=r}return{isSplitDraw:!1,width:e}}(s),g=!Array.isArray(s),p=!Array.isArray(o),f=Array.isArray(d),m=Array.isArray(a)||u.isSplitDraw;e.setStrokeStyle(t,t.attribute,i,r,n);const{lineDash:b=n.lineDash}=t.attribute;let y=!1;b.length&&b.some((t=>Array.isArray(t)))&&(y=!0),e.beginPath(),e.moveTo(i,r);const v=(p||o[0])&&(g||s[0]),C=(p||o[1])&&(g||s[1]),w=(p||o[2])&&(g||s[2]),x=(p||o[3])&&(g||s[3]);if(v){const t=(g?u.width:s[0])/2,n=(g?u.width:s[0])/2;f&&Array.isArray(d[0])?(e.moveTo(i-t+(l+t+n)*d[0][0],r),e.lineTo(i-t+(l+t+n)*(d[0][1]-d[0][0]),r),e.moveTo(i+l+n,r)):(e.moveTo(i-t,r),e.lineTo(i+l+n,r)),(m||y)&&(a&&a[0]?e.strokeStyle=a[0]:e.strokeStyle="transparent",g||(e.lineWidth=s[0]),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,y&&e.setLineDash(b[0]??[]),e.stroke(),e.beginPath(),e.moveTo(i+l,r))}else e.moveTo(i+l,r);if(C){const t=(g?u.width:s[1])/2,n=(g?u.width:s[1])/2;f&&Array.isArray(d[1])?(e.moveTo(i+l,r-t+h*d[1][0]),e.lineTo(i+l,r-t+(h+t+n)*(d[1][1]-d[1][0])),e.moveTo(i+l,r+h+n)):(e.moveTo(i+l,r-t),e.lineTo(i+l,r+h+n)),(m||y)&&(a&&a[1]?e.strokeStyle=a[1]:e.strokeStyle="transparent",g||(e.lineWidth=s[1]),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,y&&e.setLineDash(b[1]??[]),e.stroke(),e.beginPath(),e.moveTo(i+l,r+h))}else e.moveTo(i+l,r+h);if(w){const t=(g?u.width:s[2])/2,n=(g?u.width:s[2])/2;f&&Array.isArray(d[2])?(e.moveTo(i-t+(l+t+n)*d[2][0],r+h),e.lineTo(i-t+(l+t+n)*(d[2][1]-d[2][0]),r+h),e.moveTo(i-t,r+h)):(e.moveTo(i-t,r+h),e.lineTo(i+l+n,r+h)),(m||y)&&(a&&a[2]?e.strokeStyle=a[2]:e.strokeStyle="transparent",g||(e.lineWidth=s[2]),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,y&&e.setLineDash(b[2]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r+h))}else e.moveTo(i,r+h);if(x){const t=(g?u.width:s[3])/2,n=(g?u.width:s[3])/2;f&&Array.isArray(d[3])?(e.moveTo(i,r-t+(h+t+n)*d[3][0]),e.lineTo(i,r-t+(h+t+n)*(d[3][1]-d[3][0])),e.moveTo(i,r-t)):(e.moveTo(i,r-t),e.lineTo(i,r+h+n)),(m||y)&&(a&&a[3]?e.strokeStyle=a[3]:e.strokeStyle="transparent",g||(e.lineWidth=s[3]),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,y&&e.setLineDash(b[3]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r))}else e.moveTo(i,r);m||y||(!g&&u.width&&(e.lineWidth=u.width),e.stroke()),e.lineDashOffset=0,e.setLineDash([])}Zz=Iz([f()],Zz);let Qz=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{lineDash:g=l.lineDash,stroke:p=l.stroke,strokeArrayColor:f=l.strokeArrayColor,strokeArrayWidth:m=l.strokeArrayWidth}=t.attribute;p&&Array.isArray(g)&&g.length&&g[0]?.length&&!Array.isArray(f)&&!Array.isArray(m)&&(u.doStroke=!1)}};Qz=Iz([f()],Qz);let tD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{lineDash:u=l.lineDash,stroke:g=l.stroke,strokeArrayColor:p=l.strokeArrayColor,strokeArrayWidth:f=l.strokeArrayWidth,lineWidth:m=l.lineWidth}=t.attribute;if(!g||!(Array.isArray(u)&&u.length&&u[0]?.length)||Array.isArray(p)||Array.isArray(f))return;const b=t.stage.table;if(!b)return;const y=nt(u[0])?function(t){if(1===t.length)return[t[0],t[0],t[0],t[0]];if(2===t.length)return[t[0],t[1],t[0],t[1]];return t}(u):[u,u,u,u];let v,C,{width:w=l.width,height:x=l.height}=t.attribute;if(b.options.customConfig?._disableColumnAndRowSizeRound?(w=Math.round(w),x=Math.round(x)):(w=Math.ceil(w),x=Math.ceil(x)),1&m){const e="bottom-right"===b.theme.cellBorderClipDirection,n=0,o=0;e?(i=Math.floor(i)-.5,r=Math.floor(r)-.5):(i=Math.floor(i)+.5,r=Math.floor(r)+.5);const{width:s,height:a}=aD(t,Math.ceil(w+n),Math.ceil(x+o),e);v=s,C=a}else v=Math.ceil(w),C=Math.ceil(x);e.setStrokeStyle(t,t.attribute,i,r,l),e.beginPath(),e.moveTo(i,r),e.lineTo(i+v,r),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[0]??[]),e.stroke(),e.beginPath(),e.moveTo(i+v,r),e.lineTo(i+v,r+C),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[1]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r+C),e.lineTo(i+v,r+C),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[2]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r),e.lineTo(i,r+C),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[3]??[]),e.stroke(),e.lineDashOffset=0,e.setLineDash([])}};tD=Iz([f()],tD);let eD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{lineWidth:g=l.lineWidth,stroke:p=l.stroke,lineDash:f=l.lineDash,strokeArrayWidth:m=l.strokeArrayWidth,strokeArrayColor:b=l.strokeArrayColor,notAdjustPos:y}=t.attribute;!0!==y&&p&&Array.isArray(f)&&!f.length&&!Array.isArray(b)&&!Array.isArray(m)&&1&g&&(u.doStroke=!1)}};eD=Iz([f()],eD);let iD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{lineWidth:u=l.lineWidth,stroke:g=l.stroke,lineDash:p=l.lineDash,strokeArrayWidth:f=l.strokeArrayWidth,strokeArrayColor:m=l.strokeArrayColor,notAdjustPos:b,cornerRadius:y=l.cornerRadius}=t.attribute;let{width:v=l.width,height:C=l.height}=t.attribute;if(!0!==b&&g&&Array.isArray(p)&&!p.length&&!Array.isArray(m)&&!Array.isArray(f)&&1&u){const n=t.stage.table;if(!n)return;n.options.customConfig?._disableColumnAndRowSizeRound&&(v=Math.round(v),C=Math.round(C)),e.beginPath();const o="bottom-right"===n?.theme.cellBorderClipDirection,s=0,a=0;o?(i=Math.floor(i)-.5,r=Math.floor(r)-.5):(i=Math.floor(i)+.5,r=Math.floor(r)+.5);const{width:h,height:c}=aD(t,Math.ceil(v),Math.ceil(C),o);y?au(e,i,r,h+s,c+a,y):e.rect(i,r,h,c),e.setStrokeStyle(t,t.attribute,i,r,l),e.stroke()}}};iD=Iz([f()],iD);let rD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){if("cell"===t.role){const e=t.stage.table;if(e&&e.stateManager.interactionState!==fE.scrolling){const i=function(t,e){let i,r;if("cell"===t.role&&Z(t.mergeStartCol)&&Z(t.mergeStartRow)&&Z(t.mergeEndCol)&&Z(t.mergeEndRow)){const{colStart:r,colEnd:n,rowStart:o,rowEnd:s}=bz(t,e.scenegraph);for(let t=r;t<=n;t++)for(let r=o;r<=s;r++){const n=Xz(e.stateManager,t,r);!n||i&&"cellBgColor"!==n||(i=n)}}else"cell"===t.role&&(i=Xz(e.stateManager,t.col,t.row));if(!i)return;const n=e.internalProps.layoutMap;return n.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.select||e.theme.headerStyle?.select:n.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.select:n.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.select:n.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.select||(e.isListTable()?e.theme.bodyStyle?.select:e.theme.headerStyle?.select):n.isRightFrozenColumn(t.col,t.row)?r=e.theme.rightFrozenStyle?.select||(e.isListTable()?e.theme.bodyStyle?.select:e.theme.rowHeaderStyle?.select):e.isHeader(t.col,t.row)||(r=e.theme.bodyStyle?.select),UO(i,r,t.col,t.row,e)}(t,e);if(i)t.attribute._vtableHightLightFill=i;else{const i=function(t,e){let i,r;if("cell"===t.role&&Z(t.mergeStartCol)&&Z(t.mergeStartRow)&&Z(t.mergeEndCol)&&Z(t.mergeEndRow)){const{colStart:r,colEnd:n,rowStart:o,rowEnd:s}=bz(t,e.scenegraph);for(let a=r;a<=n;a++)for(let r=o;r<=s;r++){const n=Yz(e.stateManager,a,r,t);!n||i&&"cellBgColor"!==n||(i=n)}}else"cell"===t.role&&(i=Yz(e.stateManager,t.col,t.row,t));if(!i)return;const n=e.internalProps.layoutMap;return n.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.hover||e.theme.headerStyle?.hover:n.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.hover:n.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.hover:n.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.hover||(e.isListTable()?e.theme.bodyStyle?.hover:e.theme.headerStyle?.hover):n.isRightFrozenColumn(t.col,t.row)?r=e.theme.rightFrozenStyle?.hover||(e.isListTable()?e.theme.bodyStyle?.hover:e.theme.rowHeaderStyle?.hover):e.isHeader(t.col,t.row)||(r=e.theme.bodyStyle?.hover),UO(i,r,t.col,t.row,e)}(t,e);i&&(t.attribute._vtableHightLightFill=i)}}}}};rD=Iz([f()],rD);let nD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){if(t.attribute._vtableHightLightFill)if(c);else if(s){const n=t.attribute.fill;t.attribute.fill=t.attribute._vtableHightLightFill,e.setCommonStyle(t,t.attribute,i,r,l),e.fill(),t.attribute.fill=n,t.attribute._vtableHightLightFill=void 0}}};nD=Iz([f()],nD);let oD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const g=t.stage.table;if(g)if("body"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),n=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),o=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("row-header"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),n=g.getFrozenColsWidth(),o=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("col-header"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,n=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),o=g.getFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("right-frozen"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),n=g.getRightFrozenColsWidth(),o=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("bottom-frozen"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,n=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),o=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,n,o)}else if("corner-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),n=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}else if("corner-right-top-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),n=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}else if("corner-right-bottom-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),n=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}else if("corner-left-bottom-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),n=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,n)}}};oD=Iz([f()],oD);let sD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){t.role}};function aD(t,e,i,r){const n=t.stage.table;if("cell"===t.role){let o=t.col,s=t.row;const a=bH(n,o,s);a&&(o=a.end.col,s=a.end.row),(n&&o===n.colCount-1&&!r||n&&o===n.frozenColCount-1&&n.scrollLeft&&!r)&&(e-=1),(n&&s===n.rowCount-1&&!r||n&&s===n.frozenRowCount-1&&n.scrollTop&&!r)&&(i-=1)}else"corner-frozen"===t.role&&(n&&n.scrollLeft&&!r&&(e-=1),n&&n.scrollTop&&!r&&(i-=1));return{width:e,height:i}}sD=Iz([f()],sD);let lD=class{time=Wi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{stroke:g=l.stroke,strokeArrayWidth:p=l.strokeArrayWidth,strokeArrayColor:f=l.strokeArrayColor}=t.attribute;g&&(Array.isArray(g)||Array.isArray(p)||Array.isArray(f))&&(u.doStroke=!1)}};lD=Iz([f()],lD);let hD,cD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d){const{width:u=l.width,height:g=l.height,stroke:p=l.stroke,strokeArrayColor:f=l.strokeArrayColor,strokeArrayWidth:m=l.strokeArrayWidth,lineWidth:b=l.lineWidth,strokeColor:y=l.stroke}=t.attribute;if(p&&(Array.isArray(m)||0!==b)&&(Array.isArray(p)||Array.isArray(f)||Array.isArray(m))){const n=0,o=0;"border-rect"!==t.name&&"table-border-rect"!==t.name&&("number"==typeof b&&1&b||Array.isArray(m)&&m.some((t=>1&t)))&&(i=Math.floor(i)+.5,r=Math.floor(r)+.5),Jz(t,e,i,r,l,p,m||b,f||y,Math.ceil(u+n),Math.ceil(g+o))}}};cD=Iz([f()],cD);let dD=class{order=1;interceptors;constructor(){this.interceptors=[new uD]}afterDrawItem(t,e,i,r,n){for(let o=0;o<this.interceptors.length;o++)if(this.interceptors[o].afterDrawItem&&this.interceptors[o].afterDrawItem(t,e,i,r,n))return!0;return!1}beforeDrawItem(t,e,i,r,n){if((!t.in3dMode||i.in3dInterceptor)&&!t.shadowRoot&&!(t.baseGraphic||t.attribute.globalZIndex||t.interactiveGraphic))return!1;for(let o=0;o<this.interceptors.length;o++)if(this.interceptors[o].beforeDrawItem&&this.interceptors[o].beforeDrawItem(t,e,i,r,n))return!0;return!1}};dD=Iz([f()],dD);class uD{order=1;afterDrawItem(t,e,i,r,n){return"image"===t.type&&this.drawItem(t,e,i,r,n),!1}drawItem(t,e,i,r,n){const{image:o}=t.attribute;if(!o||!t.resources)return!1;if("loading"!==t.resources.get(o).state)return!1;if(!hD){const t=NO(),e=t.loading_pic.svg,i=t.loading_pic.width,r=t.loading_pic.height;hD=Nc({width:i,height:r,image:e})}const{image:s}=hD.attribute;if(!o||!hD.resources)return!1;const a=hD.resources.get(s);if("success"!==a.state)return!1;const{context:l}=i;l.highPerformanceSave(),t.parent&&l.setTransformFromMatrix(t.parent.globalTransMatrix,!0),t.glyphHost&&t.glyphHost.parent&&l.setTransformFromMatrix(t.glyphHost.parent.globalTransMatrix,!0);const h=t.AABBBounds,{width:c,height:d}=jO(a.data.width,a.data.height,h.width(),h.height());return l.drawImage(a.data,h.x1+(h.width()-c)/2,h.y1+(h.height()-d)/2,c,d),l.highPerformanceRestore(),!0}}let gD=class{time=Wi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,n,o,s,a,l,h,c,d,u){const{text:g,underline:p=l.underline,lineThrough:f=l.lineThrough,direction:m=l.direction,whiteSpace:b=l.whiteSpace,fontSize:y=l.fontSize,verticalMode:v=l.verticalMode,ellipsis:C=l.ellipsis,textAlign:w=l.textAlign,textBaseline:x=l.textBaseline,x:_=l.x,y:S=l.y}=t.attribute;let A=!1;if(Array.isArray(t)){const e=t.cache?.layoutData;C&&e&&e.lines.every((t=>""===t.str))&&(A=!0)}else{const{cache:e}=t;C&&e&&""===e.clipedText&&0===e.clipedWidth&&(A=!0)}if(!A)return;const M=rt(C)?C:"...",T=fs(t.attribute.lineHeight,y)??y;let R=0;T!==y&&("top"===x?R=(T-y)/2:"middle"===x||"bottom"===x&&(R=-(T-y)/2)),o&&(d?d(e,t.attribute,l):a&&(e.setStrokeStyle(t,t.attribute,_-i,S-r,l),e.strokeText(M,_,S+R))),n&&(c?c(e,t.attribute,l):s&&(e.setCommonStyle(t,t.attribute,_-i,S-r,l),e.fillText(M,_,S+R),this.drawUnderLine(p,f,t,_,S+R,0,l,e,M)))}drawUnderLine(t,e,i,r,n,o,s,a,l){if(e+t<=0)return;const{textAlign:h=s.textAlign,textBaseline:c=s.textBaseline,fontSize:d=s.fontSize,fontFamily:u=s.fontFamily,fontWeight:g=s.fontWeight,fontStyle:p=s.fontStyle,fill:f=s.fill,opacity:m=s.opacity,underlineOffset:b=s.underlineOffset,underlineDash:y=s.underlineDash,fillOpacity:v=s.fillOpacity}=i.attribute;if(!t&&!e)return;const C=sz.measureTextWidth(l,{fontSize:d,fontFamily:u,fontWeight:g,fontStyle:p}),w=ch(h,C),x=dh(c,d,d),_={lineWidth:0,stroke:f,opacity:m,strokeOpacity:v};if(t){_.lineWidth=t,a.setStrokeStyle(i,_,r,n,s),a.setLineDash(y),a.beginPath();const e=n+x+d+b;a.moveTo(r+w,e,o),a.lineTo(r+w+C,e,o),a.stroke()}if(e){_.lineWidth=e,a.setStrokeStyle(i,_,r,n,s),a.beginPath();const t=n+x+d/2;a.moveTo(r+w,t,o),a.lineTo(r+w+C,t,o),a.stroke()}}};gD=Iz([f()],gD);var pD=new i(((t,e,i,r)=>{i(cu)?r(cu).to(lD).inSingletonScope():(t(lD).toSelf().inSingletonScope(),t(th).toService(lD)),i(du)?r(du).to(cD).inSingletonScope():(t(cD).toSelf().inSingletonScope(),t(th).toService(cD)),t(Uz).toSelf().inSingletonScope(),t(Vz).to(Uz),t(Ig).to(Uz),t(Kz).toSelf().inSingletonScope(),t(Zl).toService(Kz),t($z).toSelf().inSingletonScope(),t(Zl).toService($z),t(rD).toSelf().inSingletonScope(),t(ql).toService(rD),t(nD).toSelf().inSingletonScope(),t(ql).toService(nD),t(Zz).toSelf().inSingletonScope(),t(ql).toService(Zz),t(qz).toSelf().inSingletonScope(),t(ql).toService(qz),t(Qz).toSelf().inSingletonScope(),t(ql).toService(Qz),t(tD).toSelf().inSingletonScope(),t(ql).toService(tD),t(eD).toSelf().inSingletonScope(),t(ql).toService(eD),t(iD).toSelf().inSingletonScope(),t(ql).toService(iD),t(oD).toSelf().inSingletonScope(),t(ql).toService(oD),t(sD).toSelf().inSingletonScope(),t(ql).toService(sD),t(dD).toSelf().inSingletonScope(),t(Jg).toService(dD),t(gD).toSelf().inSingletonScope(),t(ih).toService(gD)}));function fD(t,e,i,r){"undefined"!=typeof window&&window.performance.now(),e=e??0,i=i??t.colCount-1,0===e&&i===t.colCount-1&&t._clearColRangeWidthsMap();const n=[],o=[];if(r)for(let e=0;e<t.colCount;e++)n[e]=t.getColWidth(e);for(let n=e;n<=i;n++){let e;if(t.internalProps.transpose||"only-header"!==t.internalProps.layoutMap.columnObjects?.[n]?.columnWidthComputeMode&&"only-header"!==t.columnWidthComputeMode||!("showHeader"in t.internalProps.layoutMap))e=t.internalProps.transpose||"only-body"!==t.internalProps.layoutMap.columnObjects?.[n]?.columnWidthComputeMode&&"only-body"!==t.columnWidthComputeMode?mD(n,0,t.rowCount-1,t):mD(n,t.internalProps.layoutMap.getBodyRange().start.row,t.internalProps.layoutMap.getBodyRange().end.row,t);else{const i=t.internalProps.layoutMap.showHeader;t.internalProps.layoutMap.showHeader=!0,e=mD(n,0,t.internalProps.layoutMap.headerLevelCount-1,t),t.internalProps.layoutMap.showHeader=i}t._setColContentWidth(n,e);t.getColWidth(n)!==e&&t._clearColRangeWidthsMap(n),r?o[n]=Math.round(t._adjustColWidth(n,e)):t._setColWidth(n,t._adjustColWidth(n,e),!1,!0)}if("adaptive"===t.widthMode){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,n=0,s=t.colCount;if("only-body"===t.widthAdaptiveMode){for(let e=0;e<t.colCount;e++){const n=r?o[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=n)}n=t.rowHeaderLevelCount,s=t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount}wD(e-i,n,s,r,o,t)}else if(t.autoFillWidth){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,n=0;for(let e=0;e<t.colCount;e++){const s=r?o[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=s),n+=s}if(n<e&&n>i){wD(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,r,o,t)}}if(r){for(let e=0;e<t.colCount;e++){const i=o[e]??t.getColWidth(e);i!==n[e]&&t._setColWidth(e,i,!1,!0)}t.stateManager.checkFrozen();for(let e=0;e<t.colCount;e++){const i=t.getColWidth(e);i!==n[e]&&t.scenegraph.updateColWidth(e,i-n[e],!0,!0)}t.scenegraph.updateContainer(!0)}}function mD(t,e,i,r,n=!1){let o=function(t,e){const i=e.getColWidthDefined(t);if(e.internalProps._widthResizedColMap.has(t))return e.getColWidth(t);return i}(t,r);return r.internalProps.transpose&&"auto"===o&&("only-header"===r.columnWidthComputeMode&&t>=r.rowHeaderLevelCount||"only-body"===r.columnWidthComputeMode&&t<r.rowHeaderLevelCount)&&(o=r.getDefaultColumnWidth(t)),n&&!r.internalProps.transpose?bD(o,t,e,i,n,r):"number"==typeof o?o:"auto"!==o&&"string"==typeof o?r._adjustColWidth(t,r._colWidthDefineToPxWidth(o)):bD(o,t,e,i,n,r)}function bD(t,e,i,r,n,o){let s=0,a=1,l=1;if(r-i>5e3&&(l=Math.ceil((r-i)/5e3)),o.isPivotChart()&&e>=o.rowHeaderLevelCount&&e<o.colCount-o.rightFrozenColCount){if(o.internalProps.layoutMap.indicatorsAsCol)return o.defaultColWidth;{const t=o.internalProps.layoutMap.getOptimunWidthForChart(e);if(t>0)return t}}for(let h=i;h<=r;h+=a){if(o.isPivotChart()){const t=o.internalProps.layoutMap,i=DF(e,h,t);if(i){const t=KF(i,o);if("number"==typeof t){s=Math.max(t,s);continue}}else if(t.isLeftBottomCorner(e,h)||t.isRightTopCorner(e,h)||t.isRightBottomCorner(e,h))continue}const i=yD(e,h,o);if(i&&(s=Math.max(i.width,s),!i.renderDefault))continue;const r=t;if("number"==typeof r&&"standard"===o.widthMode&&!n){s=Math.max(r,s);continue}const c=o.isHeader(e,h)?o._getHeaderLayoutMap(e,h)?.headerType:o.getBodyColumnType(e,h);if(Z(c)&&"text"!==c&&"link"!==c&&"progressbar"!==c&&"checkbox"!==c&&"radio"!==c){s=Math.max(s,o.getColWidthDefinedNumber(e)||0);continue}let d=0;const u=o.internalProps.layoutMap;if(u.isHeader(e,h)){const t=u.getHeader(e,h);if("only-body"===t?.define?.columnWidthComputeMode)continue;Z(t?.hierarchyLevel)&&(d=(t.hierarchyLevel??0)*(u.rowHierarchyIndent??0),u.rowHierarchyTextStartAlignment&&!o.internalProps.headerHelper.getHierarchyIcon(e,h)&&(d+=o.internalProps.headerHelper.getHierarchyIconWidth()))}else{a=l;const t=o.getBodyColumnDefine(e,h);if(t?.tree){const t=o.dataSource.getIndexKey(o.getRecordShowIndexByCell(e,h));d=Array.isArray(t)&&o.getHierarchyState(e,h)!==yE.none?(t.length-1)*(u.hierarchyIndent??0):0,u.hierarchyTextStartAlignment&&!o.internalProps.bodyHelper.getHierarchyIcon(e,h)&&(d+=o.internalProps.headerHelper.getHierarchyIconWidth())}}const g=vD(e,h,c,o);s=Math.max(g+d,s),a>1&&o.bottomFrozenRowCount>0&&h<o.rowCount-o.bottomFrozenRowCount&&h+a>=o.rowCount-o.bottomFrozenRowCount&&(h=o.rowCount-o.bottomFrozenRowCount-a,a=1,l=1)}const h=o.getMinColWidth(e),c=o.getMaxColWidth(e);return s<h?h:s>c?c:(s<=0&&(s=o.defaultColWidth),s)}function yD(t,e,i){const r=i.getCustomRender(t,e),n=i.getCustomLayout(t,e);if(r||n){let o=1,s=0,a=!1,l=!1;if(i.isHeader(t,e)||i.getBodyColumnDefine(t,e)?.mergeCell||i.hasCustomMerge()){const r=i.getCellRange(t,e);o=r.end.col-r.start.col+1}const h={col:t,row:e,dataValue:i.getCellOriginValue(t,e),value:i.getCellValue(t,e)||"",rect:CD(t,e,i),table:i};if(X(n)){const t=n(h);if(t.rootContainer instanceof yl){t.rootContainer=IO(t.rootContainer),HO(t.rootContainer,0,i.getRowHeight(e));const r=t.rootContainer.attribute.width;t.rootContainer.setStage(i.scenegraph.stage),s=r>0?r:t.rootContainer.AABBBounds.width()??0,a=t.renderDefault,l=t.enableCellPadding}else s=0,a=t.renderDefault,l=t.enableCellPadding}else if("function"==typeof r){const t=r(h);s=t?.expectedWidth??0,a=t?.renderDefault}else s=r?.expectedWidth??0,a=r?.renderDefault;if(s=Math.ceil(s),l){const r=II(UO("padding",i._getCellStyle(t,e),t,e,i));s+=r[1]+r[3]}return{width:s/o,renderDefault:a}}}function vD(t,e,i,r){let n=0;const o=r.getCellValue(t,e),s=r._getCellStyle(t,e);let a=0,l=!1;if("body"!==r.getCellLocation(t,e))l=!0;else{const i=r.getBodyColumnDefine(t,e);l=!!i?.icon||!!i?.tree||i?.dragOrder}if(l){const i=r.getCellIcons(t,e);i?.forEach((t=>{t.positionType!==wE.absoluteRight&&(a+=(t.width??0)+(t.marginLeft??0)+(t.marginRight??0))}))}let h=1;if(r.isHeader(t,e)||r.getBodyColumnDefine(t,e)?.mergeCell||r.hasCustomMerge()){const i=r.getCellRange(t,e);h=i.end.col-i.start.col+1}const c=II(UO("padding",s,t,e,r)),d=c[1]+c[3],u=UO("fontSize",s,t,e,r),g=UO("fontFamily",s,t,e,r),p=UO("fontWeight",s,t,e,r);let f;if("checkbox"===i)f=J(o)?o.text:o;else if("radio"===i)if(nt(o)){f="";const i=r.getBodyColumnDefine(t,e),n=i?.radioDirectionInCell??"vertical";"vertical"===n?o.forEach((t=>{f+=(J(t)?t.text:t).toString()+"\n"})):"horizontal"===n&&o.forEach((t=>{f+=(J(t)?t.text:t).toString()}))}else f=J(o)?o.text:o;else f=o;const m=uF(f,r).text;if(m.length>=1?m.forEach((t=>{const e=r.measureText(t,{fontSize:u,fontFamily:g,fontWeight:p}).width;n=Math.max((e+d+4+a)/h,n)})):n=Math.max((d+4+a)/h,n),!1!==r.internalProps.limitMaxAutoWidth&&(n=Math.min("number"==typeof r.internalProps.limitMaxAutoWidth?r.internalProps.limitMaxAutoWidth:450,n)),"checkbox"===i){const i=UO("size",s,t,e,r);if(n+=i,f){const i=UO("spaceBetweenTextAndIcon",s,t,e,r);n+=i}}else if("radio"===i){const i=UO("size",s,t,e,r),a=UO("outerRadius",s,t,e,r),l=at(a)?2*a:i,h=UO("spaceBetweenTextAndIcon",s,t,e,r);if(nt(o)){const i=r.getBodyColumnDefine(t,e),a=UO("spaceBetweenRadio",s,t,e,r),c=i?.radioDirectionInCell??"vertical";"vertical"===c?(n+=l,n+=h):"horizontal"===c&&(n+=(l+h)*o.length,n+=a*(o.length-1))}else n+=l,f&&(n+=h)}return n}function CD(t,e,i){return{left:0,top:0,right:i.getColWidth(t),bottom:i.getRowHeight(e),width:null,height:null}}function wD(t,e,i,r,n,o,s){let a=0;const l=[],h=[];let c=0;for(let s=e;s<i;s++){const e=r?n[s]:o.getColWidth(s),i=o.getMaxColWidth(s),d=o.getMinColWidth(s);if(e!==i&&e!==d?(a+=e,l.push(s)):t-=e,o.options.customConfig?.shrinkSparklineFirst){"sparkline"===o.getBodyColumnType(s,0)&&(h.push({col:s,width:e}),c+=e-o.defaultColWidth)}}const d=t/a;if(o.options.customConfig?.shrinkSparklineFirst&&d<1&&a-t<c)for(let e=0;e<h.length;e++){const{col:i,width:l}=h[e],c=(a-t)/h.length,d=Math.floor(l-c);r?n[i]=o._adjustColWidth(i,d):s?o.scenegraph.setColWidth(i,o._adjustColWidth(i,d)):o._setColWidth(i,o._adjustColWidth(i,d),!1,!0)}else for(let e=0;e<l.length;e++){const i=l[e];let a;a=e===l.length-1?t-l.reduce(((t,e,s)=>e!==i?t+(r?n[e]:o.getColWidth(e)):t),0):Math.round((r?n[i]:o.getColWidth(i))*d),r?n[i]=o._adjustColWidth(i,a):s?o.scenegraph.setColWidth(i,o._adjustColWidth(i,a)):o._setColWidth(i,o._adjustColWidth(i,a),!1,!0)}}const xD=new GO({});function _D(t,e,i,r,n,o,s,a,l,h){let c,d,u,g=0;t.lastChild&&t.lastChild.row===r-1?g=t.lastChild.attribute.y+t.lastChild.attribute.height:t.colHeight&&(g=t.colHeight);for(let p=r;p<=n;p++){const n=p;let f,m,b,y,v=a.getCellValue(e,n),C=i,w=a.getRowHeight(n);if(a.internalProps.customMergeCell){const t=a.getCustomMerge(e,n);if(t){const{range:e,text:i,style:s,customLayout:l,customRender:h}=t;if(f=e,m=f.start.col!==f.end.col||f.start.row!==f.end.row,m){const t=SD(f,o,a,r>f.start.row);C=t.cellWidth,w=t.cellHeight}v=i,b=s,(l||h)&&(y=EO(l,h,e.start.col,e.start.row,a.getColsWidth(e.start.col,e.end.col),a.getRowsHeight(e.start.row,e.end.row),!1,a.isAutoRowHeight(n),[0,0,0,0],f,a))}}let x=e,_=n;f&&(x=f.start.col,_=f.start.row);const S="body"!==l?a.getHeaderDefine(x,_):a.getBodyColumnDefine(x,_),A="body"!==l||(S?.dragOrder||!!S?.icon||!!S?.tree);if(!f&&("body"!==l||S?.mergeCell)&&(f=a.getCellRange(e,n),m=f.start.col!==f.end.col||f.start.row!==f.end.row,m)){const t=SD(f,o,a,r>f.start.row);C=t.cellWidth,w=t.cellHeight}const M=yO(b||a._getCellStyle(e,n),a,f?f.start.col:e,f?f.start.row:n,UO).theme;M.group.cornerRadius=CO(e,n,a),M.group.width=i,M.group.height=Array.isArray(s)?s[n]:s,M._vtable.padding&&(c=M._vtable.padding),M.text.textAlign&&(d=M.text.textAlign),M.text.textBaseline&&(u=M.text.textBaseline),"body"===l||M.group.fill||(M.group.fill="#fff");const T=(a.isHeader(e,n)?a._getHeaderLayoutMap(e,n).headerType:a.getBodyColumnType(e,n))||"text";if(AL(v)){AD(e,n,0,g,C,w,t),vF(v,a,_F.bind(null,T,v,S,a,e,n,i,C,w,t,g,c,d,u,A,M,f,y)),t.updateColumnRowNumber(n);const r=a.getRowHeight(n);t.updateColumnHeight(r),g+=r}else{const r=_F(T,v,S,a,e,n,i,C,w,t,g,c,d,u,A,M,f,y);if(t.updateColumnRowNumber(n),m){const i=a.getRowHeight(n);a.getColWidth(e);const{width:o}=r.attribute,{height:s}=r.attribute;r.contentWidth=o,r.contentHeight=s,MF(f,o,s,c,d,u,a),t.updateColumnHeight(i),g+=i}else t.updateColumnHeight(w),g+=w}if(h&&n>h)break}return t.setAttribute("width",i),{width:i,height:g}}function SD(t,e,i,r){let n=0,o=0;const s=e.get(`${t.start.col},${t.start.row};${t.end.col},${t.end.row}`);if(!s||r){for(let e=t.start.col;e<=t.end.col;e++)n+=i.getColWidth(e);for(let e=t.start.row;e<=t.end.row;e++)o+=i.getRowHeight(e);e.set(`${t.start.col},${t.start.row};${t.end.col},${t.end.row}`,{cellWidth:n,cellHeight:o})}else n=s.cellWidth,o=s.cellHeight;return{cellWidth:n,cellHeight:o}}function AD(t,e,i,r,n,o,s){const a=new GO({x:i,y:r,width:n,height:o});a.role="cell",a.col=t,a.row=e,s.addChild(a)}function MD(t,e,i,r,n,o,s,a,l,h){if(r>n||o>s)return;const{layoutMap:c,defaultRowHeight:d,defaultHeaderRowHeight:u,defaultColWidth:g}=l.internalProps;let p=0,f=0;for(let c=r;c<=n;c++){const r=c,n=l.getColWidth(r),g=new GO({x:e+p,y:i,width:n,height:0,clip:!1,pickable:!1});g.role="column",g.col=c,t.addChild(g);const{width:m,height:b}=_D(g,r,n,o,s,l.scenegraph.mergeMap,"columnHeader"===a&&at(u)?u:d,l,a,h);p+=m,f=Math.max(f,b)}t.setAttribute("width",p),t.setAttribute("height",f)}function TD(t){let e=t.firstChild;for(;"group"!==e.type;)e=e._next;return e}function RD(t){let e=t.lastChild;for(;"group"!==e.type;)e=e._prev;return e}function BD(t,e,i,r="left"){for(let n=t;n<=e;n++){const t=i.scenegraph.getColGroup(n);t&&PD(t,i,r);const e=i.scenegraph.getColGroup(n,!0);e&&PD(e,i,r);const o=i.scenegraph.getColGroupInBottom(n);o&&PD(o,i,r)}const n=Math.min(i.scenegraph.proxy.colLimit,i.scenegraph.proxy.bodyRightCol-i.scenegraph.proxy.bodyLeftCol+1),o=i.getColsWidth(i.frozenColCount,i.frozenColCount+n),s=i.getColsWidth(i.frozenColCount,i.colCount-1);i.scenegraph.proxy.xLimitLeft=o/2,i.scenegraph.proxy.xLimitRight=s-o/2}function PD(t,e,i="left"){if("left"===i){let i;const r=function(t){let e=t._prev;for(;e&&"group"!==e.type;)e=e._prev;return e}(t);i=r?r.attribute.x+e.getColWidth(t._prev.col):e.getColsWidth(e.frozenColCount,t.col-1),t.setAttribute("x",i)}else{let i;const r=function(t){let e=t._next;for(;e&&"group"!==e.type;)e=e._next;return e}(t);i=r?r.attribute.x-e.getColWidth(t.col):e.getColsWidth(e.frozenColCount,t.col-1),t.setAttribute("x",i)}}async function kD(t,e,i,r){if(!e)return;const n=e.col,o=e.left;let s;if(s=i?r.bodyRightCol-r.colEnd:r.screenLeftCol-r.referenceCol,function(t,e,i,r,n){t>0?(ED(t,"left",n.screenLeftCol,i,r,n),n.updateDeltaX(r,i,e),n.table.scenegraph.setBodyAndColHeaderX(-r+n.deltaX)):t<0?(ED(-t,"right",n.screenLeftCol,i,r,n),n.updateDeltaX(r,i,e),n.table.scenegraph.setBodyAndColHeaderX(-r+n.deltaX)):(n.updateDeltaX(r,i,e),n.table.scenegraph.setBodyAndColHeaderX(-r+n.deltaX))}(s,n,o,t,r),i){const e=r.table.scenegraph.getColGroup(r.colEnd);if(e){const i=e.attribute.x+e.attribute.width-(r.table.tableNoFrameWidth-r.table.getFrozenColsWidth()-r.table.getRightFrozenColsWidth())-t;r.deltaX=-i,r.table.scenegraph.setBodyAndColHeaderX(-t+r.deltaX)}}r.table.scenegraph.updateNextFrame()}async function ED(t,e,i,r,n,o){if("left"===e&&o.colEnd+t>o.bodyRightCol?t=o.bodyRightCol-o.colEnd:"right"===e&&o.colStart-t<o.bodyLeftCol&&(t=o.colStart-o.bodyLeftCol),0!==t)if(t<0&&(e="left"===e?"right":"left",t=-t),t<o.colEnd-o.colStart){const n="left"===e?o.colStart:o.colEnd-t+1,s="left"===e?o.colStart+t-1:o.colEnd,a="left"===e?o.colEnd+1:o.colStart-t,l="left"===e?o.colEnd+t:o.colStart-1;fD(o.table,a,l),function(t,e,i,r){for(let n=t;n<=e;n++)r.table.scenegraph.bodyGroup.childrenCount>0&&"group"===r.table.scenegraph.bodyGroup.firstChild.type&&OD(r.table.scenegraph.bodyGroup,i,r),r.table.scenegraph.colHeaderGroup.childrenCount>0&&"group"===r.table.scenegraph.colHeaderGroup.firstChild.type&&OD(r.table.scenegraph.colHeaderGroup,i,r),r.table.scenegraph.bottomFrozenGroup.childrenCount>0&&"group"===r.table.scenegraph.bottomFrozenGroup.firstChild.type&&OD(r.table.scenegraph.bottomFrozenGroup,i,r)}(n,s,e,o);const h=a,c=l;o.colStart="left"===e?o.colStart+t:o.colStart-t,o.colEnd="left"===e?o.colEnd+t:o.colEnd-t,FD(h,c,o),BD(h,c,o.table,e);const d=r-((o.table.scenegraph.getColGroup(i)||o.table.scenegraph.getColGroup(i,!0)).attribute.x+o.table.getFrozenColsWidth()+o.table.scenegraph.proxy.deltaX);o.table.scenegraph.proxy.deltaX+=d,o.currentCol="left"===e?o.currentCol+t:o.currentCol-t,o.totalCol=Math.max(0,Math.min(o.table.colCount-1,"left"===e?o.totalCol+t:o.totalCol-t)),o.referenceCol=o.colStart+Math.floor((o.colEnd-o.colStart)/2),o.colUpdatePos=a,o.colUpdateDirection=e,o.table.scenegraph.updateNextFrame()}else{const i="left"===e?o.colStart+t:o.colStart-t,r="left"===e?o.colEnd+t:o.colEnd-t;fD(o.table,i,r);!function(t,e,i,r){r.table.scenegraph.colHeaderGroup.forEachChildren(((n,o)=>{"group"===n.type&&LD(n,"left"===i?n.col+e:n.col-e,0===o?t:n._prev.attribute.x+r.table.getColWidth(n._prev.col))})),r.table.scenegraph.bottomFrozenGroup.forEachChildren(((n,o)=>{"group"===n.type&&LD(n,"left"===i?n.col+e:n.col-e,0===o?t:n._prev.attribute.x+r.table.getColWidth(n._prev.col))})),r.table.scenegraph.bodyGroup.forEachChildren(((n,o)=>{"group"===n.type&&LD(n,"left"===i?n.col+e:n.col-e,0===o?t:n._prev.attribute.x+r.table.getColWidth(n._prev.col))}))}(o.table.getColsWidth(o.bodyLeftCol,i-1),t,e,o);const n=i,s=r;o.colStart=i,o.colEnd=r,FD(n,s,o),BD(n,s,o.table,r>o.bodyRightCol-(o.colEnd-o.colStart+1)?"right":"left"),o.currentCol="left"===e?o.currentCol+t:o.currentCol-t,o.totalCol=Math.max(0,Math.min(o.table.colCount-1,"left"===e?o.totalCol+t:o.totalCol-t)),o.referenceCol=o.colStart+Math.floor((o.colEnd-o.colStart)/2),o.colUpdatePos=o.colStart,o.colUpdateDirection=r>o.bodyRightCol-(o.colEnd-o.colStart+1)?"right":"left",o.table.scenegraph.updateNextFrame()}}function LD(t,e,i){t.col=e,t.forEachChildren((t=>{t.col=e,t.needUpdate=!0})),t.setAttribute("x",i),t.needUpdate=!0}function HD(t,e){if(!t)return;let i=t.firstChild;for(;i;){i=e.updateCellGroupContent(i)._next}t.needUpdate=!1,t.setAttribute("width",e.table.getColWidth(t.col))}function ID(t,e){if(!t)return;const i=e.screenTopRow,r=Math.max(e.bodyTopRow,i-1*e.screenRowCount),n=Math.min(e.bodyBottomRow,i+2*e.screenRowCount);for(let i=r;i<=n;i++){const r=e.highPerformanceGetCell(t.col,i,!0);e.updateCellGroupContent(r)}e.rowUpdatePos=e.rowStart,t.needUpdate=!1,t.setAttribute("width",e.table.getColWidth(t.col))}function OD(t,e,i){if("left"===e){const e=TD(t),r=RD(t);LD(e,r.col+1,r.attribute.x+i.table.getColWidth(r.col)),t.appendChild(e),t.border&&t.appendChild(t.border)}else{const e=RD(t),r=TD(t);LD(e,r.col-1,r.attribute.x-i.table.getColWidth(r.col-1)),t.insertBefore(e,t.firstChild)}}function FD(t,e,i){for(let r=t;r<=e;r++){const t=i.table.scenegraph.getColGroup(r,!0);t&&HD(t,i);const e=i.table.scenegraph.getColGroupInBottom(r);e&&HD(e,i);const n=i.table.scenegraph.getColGroupInRightTopCorner(r);n&&HD(n,i);const o=i.table.scenegraph.getColGroupInRightBottomCorner(r);o&&HD(o,i);const s=i.table.scenegraph.getColGroup(r);s&&ID(s,i)}i.progress()}function zD(t,e,i,r,n,o="up",s){if("up"===o)for(let o=t;o<=e;o++)for(let t=i;t<=r;t++){const e=n.scenegraph.highPerformanceGetCell(o,t,!0);if("cell"!==e.role||!e.row)continue;let i;if(e._prev)i=e._prev?.attribute.y+n.getRowHeight(e._prev.row);else if(s){if(i=n.scenegraph.highPerformanceGetCell(o,r+1,!0).attribute.y,Z(i))for(let e=t;e<=r;e++)i-=n.getRowHeight(e)}else i=n.getRowsHeight(n.columnHeaderLevelCount,e.row-1);Z(i)&&e.setAttribute("y",i)}else for(let o=t;o<=e;o++)for(let t=r;t>=i;t--){const e=n.scenegraph.highPerformanceGetCell(o,t,!0);if("cell"!==e.role||!e.row)continue;let r;if(e._next)r=e._next?.attribute.y-n.getRowHeight(e.row);else if(s){r=n.scenegraph.highPerformanceGetCell(o,i-1,!0).attribute.y;for(let e=i-1;e<t;e++){r+=n.getRowHeight(e)}}else r=n.getRowsHeight(n.columnHeaderLevelCount,e.row-1);Z(r)&&e.setAttribute("y",r)}const a=Math.min(n.scenegraph.proxy.rowLimit,n.scenegraph.proxy.bodyBottomRow-n.scenegraph.proxy.bodyTopRow+1),l=n.getRowsHeight(n.columnHeaderLevelCount,n.columnHeaderLevelCount+a),h=n.getRowsHeight(n.columnHeaderLevelCount,n.rowCount-1);n.scenegraph.proxy.yLimitTop=l/2,n.scenegraph.proxy.yLimitBottom=h-l/2}async function DD(t,e,i,r){if(!e)return;const n=e.row,o=e.top;let s;if(s=i?r.bodyBottomRow-r.rowEnd:n-r.referenceRow,function(t,e,i,r,n){t>0?(WD(t,"up",e,i,r,n),n.updateDeltaY(r,i,e),n.updateBody(r-n.deltaY)):t<0?(WD(-t,"down",e,i,r,n),n.updateDeltaY(r,i,e),n.updateBody(r-n.deltaY)):(n.updateDeltaY(r,i,e),n.updateBody(r-n.deltaY))}(s,n,o,t,r),i){const e=r.table.scenegraph.highPerformanceGetCell(r.colStart,r.rowEnd,!0);if("cell"===e.role){const i=e.attribute.y+e.attribute.height-(r.table.tableNoFrameHeight-r.table.getFrozenRowsHeight()-r.table.getBottomFrozenRowsHeight())-t;r.deltaY=-i,r.updateBody(t-r.deltaY)}}}async function WD(t,e,i,r,n,o){if("up"===e&&o.rowEnd+t>o.bodyBottomRow?t=o.bodyBottomRow-o.rowEnd:"down"===e&&o.rowStart-t<o.bodyTopRow&&(t=o.rowStart-o.bodyTopRow),0!==t)if(t<0&&(e="up"===e?"down":"up",t=-t),t<o.rowEnd-o.rowStart){const r="up"===e?o.rowStart:o.rowEnd-t+1,n="up"===e?o.rowStart+t-1:o.rowEnd,s="up"===e?o.rowEnd+1:o.rowStart-t,a="up"===e?o.rowEnd+t:o.rowStart-1;let l,h;if("autoHeight"===o.table.heightMode)l=s,h=a;else{l=Math.max(o.bodyTopRow,i-1*o.screenRowCount),h=Math.min(o.bodyBottomRow,i+2*o.screenRowCount)}cz(o.table,l,h,!1),function(t,e,i,r){for(let n=0;n<r.table.frozenColCount;n++){const o=r.table.scenegraph.getColGroup(n);if(o)for(let n=t;n<=e;n++)ND(o,i,r)}for(let n=r.table.colCount-r.table.rightFrozenColCount;n<r.table.colCount;n++){const o=r.table.scenegraph.getColGroup(n);if(o)for(let n=t;n<=e;n++)ND(o,i,r)}for(let n=r.bodyLeftCol;n<=r.bodyRightCol;n++){const o=r.table.scenegraph.getColGroup(n);if(o)for(let n=t;n<=e;n++)ND(o,i,r)}}(r,n,e,o),o.rowStart="up"===e?o.rowStart+t:o.rowStart-t,o.rowEnd="up"===e?o.rowEnd+t:o.rowEnd-t;const c=GD(l,h,o,!0);"autoHeight"===o.table.heightMode&&(zD(o.bodyLeftCol,o.bodyRightCol,l,h,o.table,a>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",!0),zD(0,o.table.frozenColCount-1,l,h,o.table,a>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",!0),zD(o.table.colCount-o.table.rightFrozenColCount,o.table.colCount-1,l,h,o.table,a>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",!0)),o.currentRow="up"===e?o.currentRow+t:o.currentRow-t,o.totalRow=Math.max(0,Math.min(o.bodyBottomRow,"up"===e?o.totalRow+t:o.totalRow-t)),o.referenceRow=o.rowStart+Math.floor((o.rowEnd-o.rowStart)/2),"autoHeight"===o.table.heightMode&&c?o.rowUpdatePos=Math.min(o.rowUpdatePos,o.rowEnd+1):o.rowUpdatePos=Math.min(o.rowUpdatePos,s),o.rowUpdateDirection=e,o.table.scenegraph.updateNextFrame(),await o.progress()}else{const r="up"===e?o.rowStart+t:o.rowStart-t,n="up"===e?o.rowEnd+t:o.rowEnd-t,s=o.table.getRowsHeight(o.bodyTopRow,r-1);let a,l;"autoHeight"===o.table.heightMode?(a=r,l=n):(a=Math.max(o.bodyTopRow,i-1*o.screenRowCount),l=Math.min(o.bodyBottomRow,i+2*o.screenRowCount)),cz(o.table,a,l,!1),function(t,e,i,r){for(let n=0;n<r.table.frozenColCount;n++){const o=r.table.scenegraph.getColGroup(n);o?.forEachChildren(((n,o)=>{r.updateCellGroupPosition(n,"up"===i?n.row+e:n.row-e,0===o?t:n._prev.attribute.y+r.table.getRowHeight(n._prev.row))}))}for(let n=r.table.colCount-r.table.rightFrozenColCount;n<r.table.colCount;n++){const o=r.table.scenegraph.getColGroup(n);o?.forEachChildren(((n,o)=>{r.updateCellGroupPosition(n,"up"===i?n.row+e:n.row-e,0===o?t:n._prev.attribute.y+r.table.getRowHeight(n._prev.row))}))}for(let n=r.bodyLeftCol;n<=r.bodyRightCol;n++){const o=r.table.scenegraph.getColGroup(n);o?.forEachChildren(((n,o)=>{r.updateCellGroupPosition(n,"up"===i?n.row+e:n.row-e,0===o?t:n._prev.attribute.y+r.table.getRowHeight(n._prev.row))}))}}(s,t,e,o),o.rowStart=r,o.rowEnd=n;const h=GD(a,l,o,!0);"autoHeight"===o.table.heightMode&&(zD(o.bodyLeftCol,o.bodyRightCol,a,l,o.table,n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up"),zD(0,o.table.frozenColCount-1,a,l,o.table,n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up"),zD(o.table.colCount-o.table.rightFrozenColCount,o.table.colCount-1,a,l,o.table,n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up")),o.currentRow="up"===e?o.currentRow+t:o.currentRow-t,o.totalRow=Math.max(0,Math.min(o.bodyBottomRow,"up"===e?o.totalRow+t:o.totalRow-t)),o.referenceRow=o.rowStart+Math.floor((o.rowEnd-o.rowStart)/2),"autoHeight"===o.table.heightMode&&h?o.rowUpdatePos=o.rowEnd+1:o.rowUpdatePos=o.rowStart,o.rowUpdateDirection=n>o.bodyBottomRow-(o.rowEnd-o.rowStart+1)?"down":"up",o.table.scenegraph.updateNextFrame(),await o.progress()}}function ND(t,e,i){if(t.childrenCount>=1)if("up"===e){const e=t.firstChild;i.updateCellGroupPosition(e,t.lastChild.row+1,t.lastChild.attribute.y+i.table.getRowHeight(t.lastChild.row)),t.appendChild(e)}else{const e=t.lastChild;i.updateCellGroupPosition(e,t.firstChild.row-1,t.firstChild.attribute.y-i.table.getRowHeight(e.row)),t.insertBefore(e,t.firstChild)}}function GD(t,e,i,r=!1){for(let r=0;r<i.table.frozenColCount;r++)for(let n=t;n<=e;n++){const t=i.highPerformanceGetCell(r,n,!0);i.updateCellGroupContent(t)}for(let r=i.table.colCount-i.table.rightFrozenColCount;r<i.table.colCount;r++)for(let n=t;n<=e;n++){const t=i.highPerformanceGetCell(r,n);i.updateCellGroupContent(t)}let n=i.bodyLeftCol,o=i.bodyRightCol,s=!0;if(r){const t=i.screenLeftCol;n=Math.max(i.bodyLeftCol,t-1*i.screenColCount),o=Math.min(i.bodyRightCol,t+2*i.screenColCount),n===i.bodyLeftCol&&o===i.bodyRightCol||(s=!1)}for(let r=n;r<=o;r++)for(let n=t;n<=e;n++){const t=i.highPerformanceGetCell(r,n);i.updateCellGroupContent(t)}return i.table.scenegraph.updateNextFrame(),s}function jD(t){const{changedCells:e}=t.internalProps.stick;e.forEach((e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((t=>{t.setAttributes({dx:e.dx,dy:e.dy})}))})),e.clear();const{scrollTop:i,scrollLeft:r,frozenRowCount:n,frozenColCount:o}=t,s=t.getFrozenRowsHeight(),a=t.getFrozenColsWidth(),{row:l}=t.getRowAt(i+s+1),{col:h}=t.getColAt(r+a+1),c=Math.max(l,t.frozenRowCount),d=Math.max(h,t.frozenColCount),u=t.getAllRowsHeight()>t.tableNoFrameHeight?t.getRowAt(i+t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()-1).row:t.rowCount-t.bottomFrozenRowCount-1,g=t.getAllColsWidth()>t.tableNoFrameWidth?t.getColAt(r+t.tableNoFrameWidth-t.getRightFrozenColsWidth()-1).col:t.colCount-t.rightFrozenColCount-1;if(!(g<0||u<0)){for(let i=0;i<n&&!(g<d);i++)[d,g].forEach((r=>{const n=t._getCellStyle(r,i);if(n?.textStick){KD(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,n?.textStickBaseOnAlign,t)}}));for(let i=0;i<o&&!(u<c);i++)[c,u].forEach((r=>{const n=t._getCellStyle(i,r);if(n?.textStick&&"tree"!==t.internalProps.layoutMap.rowHierarchyType){VD(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,n?.textStickBaseOnAlign,t)}}));for(let i=d;i<=g&&!(u<c);i++)[c,u].forEach((r=>{const n=t._getCellStyle(i,r);if(n?.textStick){VD(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,n?.textStickBaseOnAlign,t)}}));for(let i=c;i<u&&!(g<d);i++)[d,g].forEach((r=>{const n=t._getCellStyle(r,i);if(t._getCellStyle(r,i)?.textStick){KD(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,n?.textStickBaseOnAlign,t)}}))}}function VD(t,e,i,r,n,o){if(at(t.mergeStartCol)&&at(t.mergeStartRow)&&at(t.mergeEndCol)&&at(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=bz(t,o.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){UD(o.scenegraph.getCell(t,s),e,i,r,n)}}else UD(t,e,i,r,n)}function UD(t,e,i,r,n){const o=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!o)return;if("image"===o.type){const{image:t}=o.attribute;if(!t||!o.resources)return;if("success"!==o.resources.get(t).state)return}const s=o.textBaseline??"top";o.AABBBounds.width();const a=o.globalAABBBounds.y1,l=o.globalAABBBounds.y2;if("middle"===s&&n){const n=t.globalAABBBounds.y1+(t.firstChild?.attribute.dy??0),s=n+(t.contentHeight??t.attribute.height??0);if(n<e||s>i){const a=Math.max(n,e),l=Math.min(s,i),h=o.globalTransMatrix.f-(l+a)/2+o.AABBBounds.height()/2;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dy",(t.attribute.dy??0)-h+2)}))}}else if(a<e){const i=a-e;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dy",(t.attribute.dy??0)-i+2)}))}else if(l>i){const e=l-i;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dy",(t.attribute.dy??0)-e)}))}}function KD(t,e,i,r,n,o){if(at(t.mergeStartCol)&&at(t.mergeStartRow)&&at(t.mergeEndCol)&&at(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=bz(t,o.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){$D(o.scenegraph.getCell(t,s),e,i,r,n)}}else $D(t,e,i,r,n)}function $D(t,e,i,r,n){const o=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!o)return;if("image"===o.type){const{image:t}=o.attribute;if(!t||!o.resources)return;if("success"!==o.resources.get(t).state)return}const s=o.attribute.textAlign??o.textAlign??"left";o.AABBBounds.width();const a=o.globalAABBBounds.x1,l=o.globalAABBBounds.x2;if("center"===s&&n){const n=t.globalAABBBounds.x1+(t.firstChild?.attribute.dx??0),s=n+(t.contentWidth??t.attribute.width??0);if(n<e||s>i){const a=Math.max(n,e),l=Math.min(s,i),h=o.globalTransMatrix.e-(l+a)/2;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dx",(t.attribute.dx??0)-h+2)}))}}else if(a<e){const i=a-e;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dx",(t.attribute.dx??0)-i+2)}))}else if(l>i){const e=l-i;!r.has(`${t.col}-${t.row}`)&&r.set(`${t.col}-${t.row}`,{col:t.col,row:t.row,dx:t.firstChild?.attribute.dx??0,dy:t.firstChild?.attribute.dy??0}),t.forEachChildren((t=>{t.setAttribute("dx",(t.attribute.dx??0)-e)}))}}function YD(t){const e=t.internalProps.layoutMap.headerObjects,i=t.internalProps.layoutMap.columnObjects;for(let t=0;t<e.length;t++){const i=e[t];if(i&&i.style?.textStick)return!0}for(let t=0;t<i.length;t++){const e=i[t];if(e&&e.style?.textStick)return!0}return!!(t.theme.headerStyle.textStick||t.theme.rowHeaderStyle.textStick||t.theme.bodyStyle.textStick)}xD.role="empty";class XD{table;isRelease=!1;mode="column";isProgressing;rowLimit=200;currentRow=0;totalRow;yLimitTop;yLimitBottom;rowStart=0;rowEnd=0;referenceRow=0;bodyTopRow;bodyBottomRow;screenRowCount;firstScreenRowLimit;taskRowCount;rowUpdatePos;rowUpdateDirection;screenTopRow=0;totalActualBodyRowCount;deltaY=0;deltaHeight=0;colLimit=100;bodyRightCol;totalCol;colStart;colEnd;taskColCount;xLimitLeft;xLimitRight;screenColCount;firstScreenColLimit;colUpdatePos;currentCol;referenceCol;screenLeftCol=0;colUpdateDirection;totalActualBodyColCount;deltaX=0;deltaWidth=0;cellCache=new Map;constructor(t){this.table=t,this.table.isPivotChart()?(this.rowLimit=Math.max(100,Math.ceil(2*t.tableNoFrameHeight/t.defaultRowHeight)),this.colLimit=Math.max(100,Math.ceil(2*t.tableNoFrameWidth/t.defaultColWidth))):"autoHeight"===this.table.heightMode?this.rowLimit=Math.max(100,Math.ceil(2*t.tableNoFrameHeight/t.defaultRowHeight)):("autoWidth"===this.table.widthMode||(this.rowLimit=Math.max(200,Math.ceil(2*t.tableNoFrameHeight/t.defaultRowHeight))),this.colLimit=Math.max(100,Math.ceil(2*t.tableNoFrameWidth/t.defaultColWidth))),this.table.internalProps.transpose?this.mode="row":this.table.isPivotTable()&&(this.mode="pivot"),this.table.options.maintainedDataCount&&(this.rowLimit=this.table.options.maintainedDataCount)}get bodyLeftCol(){return this.table.frozenColCount}setParamsForColumn(){this.bodyRightCol=this.table.colCount-1-this.table.rightFrozenColCount;const t=Math.min(this.colLimit,this.bodyRightCol-this.bodyLeftCol+1);this.totalActualBodyColCount=t,this.totalCol=this.bodyLeftCol+t-1,this.colStart=this.bodyLeftCol,this.colEnd=this.totalCol;const e=this.table.defaultColWidth;this.taskColCount=1*Math.ceil(this.table.tableNoFrameWidth/e);const i=e*t,r=e*(this.bodyRightCol-this.bodyLeftCol+1);this.xLimitLeft=i/2,this.xLimitRight=r-i/2;const n=5*this.table.tableNoFrameWidth;this.screenColCount=Math.ceil(this.table.tableNoFrameWidth/e),this.firstScreenColLimit=Math.max(15,this.bodyLeftCol+Math.min(this.colLimit,Math.ceil(n/e))),this.colUpdatePos=this.bodyRightCol}setParamsForRow(){this.bodyTopRow=this.table.columnHeaderLevelCount,this.bodyBottomRow=this.table.rowCount-1-this.table.bottomFrozenRowCount;const t=Math.min(this.rowLimit,this.bodyBottomRow-this.bodyTopRow+1);this.totalActualBodyRowCount=t,this.totalRow=this.bodyTopRow+t-1,this.rowStart=this.bodyTopRow,this.rowEnd=this.totalRow;const e=this.table.defaultRowHeight;this.taskRowCount=1*Math.ceil(this.table.tableNoFrameHeight/e);const i=e*t,r=e*(this.bodyBottomRow-this.bodyTopRow+1);this.yLimitTop=i/2,this.yLimitBottom=r-i/2;const n=5*this.table.tableNoFrameHeight;this.screenRowCount=Math.ceil(this.table.tableNoFrameHeight/e),this.firstScreenRowLimit=Math.max(30,this.bodyTopRow+Math.min(this.rowLimit,Math.ceil(n/e))),this.rowUpdatePos=this.bodyBottomRow}resize(){const t=this.table.defaultColWidth;this.taskColCount=1*Math.ceil(this.table.tableNoFrameWidth/t);const e=5*this.table.tableNoFrameWidth;this.screenColCount=Math.ceil(this.table.tableNoFrameWidth/t),this.firstScreenColLimit=this.bodyLeftCol+Math.min(this.colLimit,Math.ceil(e/t));const i=this.table.defaultRowHeight;this.taskRowCount=1*Math.ceil(this.table.tableNoFrameHeight/i);const r=5*this.table.tableNoFrameHeight;this.screenRowCount=Math.ceil(this.table.tableNoFrameHeight/i),this.firstScreenRowLimit=this.bodyTopRow+Math.min(this.rowLimit,Math.ceil(r/i))}createGroupForFirstScreen(t,e,i,r,n,o,s,a){!function(t,e,i,r,n,o,s,a,l){const{table:h}=l,{leftBottomCornerGroup:c,rightTopCornerGroup:d,rightBottomCornerGroup:u}=h.scenegraph;let g,p;l.setParamsForRow(),l.setParamsForColumn(),g="adaptive"===h.widthMode||h.options.autoWrapText&&("adaptive"===h.heightMode||"autoHeight"===h.heightMode)?h.colCount-1:Math.min(l.firstScreenColLimit,h.colCount-1),p="adaptive"===h.heightMode?h.rowCount-1:Math.min(l.firstScreenRowLimit,h.rowCount-1),0===h.internalProps._widthResizedColMap.size&&fD(h,0,g),0===h.internalProps._heightResizedRowMap.size&&cz(h,0,p),g<h.colCount-h.rightFrozenColCount&&fD(h,h.colCount-h.rightFrozenColCount,h.colCount-1),p<h.rowCount-h.bottomFrozenRowCount&&cz(h,h.rowCount-h.bottomFrozenRowCount,h.rowCount-1),h.scenegraph.colHeaderGroup.setAttribute("x",h.getFrozenColsWidth()),h.scenegraph.rowHeaderGroup.setAttribute("y",h.getFrozenRowsHeight()),h.scenegraph.bottomFrozenGroup.setAttribute("x",h.getFrozenColsWidth()),h.scenegraph.rightFrozenGroup.setAttribute("y",h.getFrozenRowsHeight()),h.scenegraph.bodyGroup.setAttributes({x:h.getFrozenColsWidth(),y:h.getFrozenRowsHeight()}),MD(t,s,a,0,h.frozenColCount-1,0,h.columnHeaderLevelCount-1,h.isListTable()?"columnHeader":"cornerHeader",h),g-h.rightFrozenColCount>=h.frozenColCount&&MD(e,s,a,h.frozenColCount,g-h.rightFrozenColCount,0,h.columnHeaderLevelCount-1,"columnHeader",h),h.frozenColCount>0&&(h.leftRowSeriesNumberCount>0&&MD(i,s,a,0,h.leftRowSeriesNumberCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.rowHeaderLevelCount>0&&MD(i,s,a,h.leftRowSeriesNumberCount,h.leftRowSeriesNumberCount+h.rowHeaderLevelCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.frozenColCount>h.rowHeaderLevelCount+h.leftRowSeriesNumberCount&&MD(i,s,a,h.rowHeaderLevelCount+h.leftRowSeriesNumberCount,h.frozenColCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"body",h)),h.bottomFrozenRowCount>0&&(h.frozenColCount>0&&(h.leftRowSeriesNumberCount>0&&MD(c,s,a,0,h.leftRowSeriesNumberCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"rowHeader",h),h.rowHeaderLevelCount>0&&MD(c,s,a,h.leftRowSeriesNumberCount,h.leftRowSeriesNumberCount+h.rowHeaderLevelCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"rowHeader",h),h.frozenColCount>h.rowHeaderLevelCount+h.leftRowSeriesNumberCount&&MD(c,s,a,h.rowHeaderLevelCount+h.leftRowSeriesNumberCount,h.frozenColCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"body",h)),g-h.rightFrozenColCount>=h.frozenColCount&&MD(n,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,h.isPivotChart()?"rowHeader":"body",h)),h.rightFrozenColCount>0&&(MD(d,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,0,h.columnHeaderLevelCount-1,"columnHeader",h),MD(r,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,h.isPivotChart()?"rowHeader":"body",h)),h.bottomFrozenRowCount>0&&h.rightFrozenColCount>0&&MD(u,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"body",h),g-h.rightFrozenColCount>=h.frozenColCount&&MD(o,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"body",h),o.firstChild||e.firstChild||t.firstChild||i.firstChild?(l.currentRow=o.firstChild?.rowNumber??i.firstChild?.rowNumber??l.totalRow,l.rowEnd=l.currentRow,l.rowUpdatePos=l.rowEnd+1,l.referenceRow=l.rowStart+Math.floor((l.rowEnd-l.rowStart)/2),l.currentCol=o.lastChild?.col??e.lastChild?.col??i.lastChild?.col??t.lastChild?.col??l.totalCol,l.colEnd=l.currentCol,l.colUpdatePos=l.colEnd+1,l.referenceCol=l.colStart+Math.floor((l.colEnd-l.colStart)/2),l.progress()):(l.currentRow=l.totalRow,l.rowEnd=l.currentRow,l.rowUpdatePos=l.rowEnd+1,l.referenceRow=l.rowStart+Math.floor((l.rowEnd-l.rowStart)/2),l.currentCol=l.totalCol,l.colEnd=l.currentCol,l.colUpdatePos=l.colEnd+1,l.referenceCol=l.colStart+Math.floor((l.colEnd-l.colStart)/2))}(t,e,i,r,n,o,s,a,this)}async progress(){if(!this.isProgressing)return this.isProgressing=!0,new Promise(((t,e)=>{setTimeout((async()=>{this.isProgressing=!1,this.isRelease||(this.colUpdatePos<=this.colEnd?(await this.updateColCellGroupsAsync(),await this.progress()):this.rowUpdatePos<=this.rowEnd?(await this.updateRowCellGroupsAsync(),await this.progress()):this.currentCol<this.totalCol?(await this.createCol(),await this.progress()):this.currentRow<this.totalRow&&(await this.createRow(),await this.progress()),jD(this.table),this.table.scenegraph.updateNextFrame(),t())}),16)}))}async createRow(){this.taskRowCount&&this.createRowCellGroup(this.taskRowCount)}async createCol(){this.taskColCount&&this.createColGroup(this.taskRowCount)}createRowCellGroup(t){const e=Math.min(this.totalRow,this.currentRow+t);if(cz(this.table,this.currentRow+1,e,!1),this.rowEnd=e,this.table.frozenColCount){let t=0;for(let i=0;i<this.table.frozenColCount;i++){const r=this.table.scenegraph.getColGroup(i),n=this.table.isListTable()?"body":"rowHeader",{height:o}=_D(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,n);t=Math.max(t,o),this.table.scenegraph.rowHeaderGroup.setAttribute("height",t)}}if(this.table.rightFrozenColCount){let t=0;for(let i=this.table.colCount-this.table.rightFrozenColCount;i<this.table.colCount;i++){const r=this.table.scenegraph.getColGroup(i),n=this.table.isPivotChart()?"rowHeader":"body",{height:o}=_D(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,n);t=Math.max(t,o),this.table.scenegraph.rightFrozenGroup.setAttribute("height",t)}}let i=0;for(let t=this.bodyLeftCol;t<=this.bodyRightCol;t++){const r=this.table.scenegraph.getColGroup(t);if(!r)continue;const n=t<this.table.rowHeaderLevelCount?"rowHeader":"body",{height:o}=_D(r,t,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,n);i=Math.max(i,o)}this.table.scenegraph.bodyGroup.setAttribute("height",i),this.currentRow=e,this.rowUpdatePos=this.rowEnd,this.table.scenegraph.updateContainer(),this.table.scenegraph.updateBorderSizeAndPosition()}createColGroup(t){const e=Math.min(this.totalCol,this.currentCol+t);fD(this.table,this.currentCol+1,e),this.colEnd=e;for(let t=0;t<this.table.rowCount;t++){const e=this.highPerformanceGetCell(this.currentCol,t);"cell"===e.role&&at(e.mergeStartCol)&&e.mergeStartCol>this.currentCol&&this.table.scenegraph.updateCellContent(e.col,e.row)}if(this.table.columnHeaderLevelCount){const t=this.table.scenegraph.colHeaderGroup.lastChild instanceof GO?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;MD(this.table.scenegraph.colHeaderGroup,i,r,this.currentCol+1,e,0,this.table.columnHeaderLevelCount-1,"columnHeader",this.table)}if(this.table.bottomFrozenRowCount){const t=this.table.scenegraph.bottomFrozenGroup.lastChild instanceof GO?this.table.scenegraph.bottomFrozenGroup.lastChild:this.table.scenegraph.bottomFrozenGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;MD(this.table.scenegraph.bottomFrozenGroup,i,r,this.currentCol+1,e,this.table.rowCount-this.table.bottomFrozenRowCount,this.table.rowCount-1,"columnHeader",this.table)}let i=this.table.scenegraph.bodyGroup.lastChild&&(this.table.scenegraph.bodyGroup.lastChild instanceof GO?this.table.scenegraph.bodyGroup.lastChild:this.table.scenegraph.bodyGroup.lastChild._prev);i||(i=this.table.scenegraph.colHeaderGroup.lastChild&&(this.table.scenegraph.colHeaderGroup.lastChild instanceof GO?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev));const r=i.attribute.x+i.attribute.width,n=i.attribute.y;MD(this.table.scenegraph.bodyGroup,r,n,this.currentCol+1,e,this.rowStart,this.rowEnd,"body",this.table),this.currentCol=e,this.colUpdatePos=this.colEnd,this.table.scenegraph.updateContainer(),this.table.scenegraph.updateBorderSizeAndPosition()}async setY(t,e=!1){const i=this.table.getRowsHeight(this.bodyTopRow,this.bodyTopRow+(this.rowEnd-this.rowStart+1))/2,r=this.table.getAllRowsHeight()-i,n=this.table.getTargetRowAt(t+this.table.scenegraph.colHeaderGroup.attribute.height);n&&(this.screenTopRow=n.row),t<i&&this.rowStart===this.bodyTopRow||t>r&&this.rowEnd===this.bodyBottomRow?(this.updateDeltaY(t),this.updateBody(t-this.deltaY)):this.table.scenegraph.bodyGroup.firstChild&&0!==this.table.scenegraph.bodyGroup.firstChild.childrenCount||this.table.scenegraph.rowHeaderGroup.firstChild&&0!==this.table.scenegraph.rowHeaderGroup.firstChild.childrenCount?this.dynamicSetY(t,n,e):(this.updateDeltaY(t),this.updateBody(t-this.deltaY))}async setX(t,e=!1){const i=this.table.getColsWidth(this.bodyLeftCol,this.bodyLeftCol+(this.colEnd-this.colStart+1))/2,r=this.table.getAllColsWidth()-i,n=this.table.getTargetColAt(t+this.table.scenegraph.rowHeaderGroup.attribute.width);n&&(this.screenLeftCol=n.col),t<i&&this.colStart===this.bodyLeftCol||t>r&&this.colEnd===this.bodyRightCol||this.table.scenegraph.bodyGroup.firstChild&&0===this.table.scenegraph.bodyGroup.firstChild.childrenCount?(this.updateDeltaX(t),this.table.scenegraph.setBodyAndColHeaderX(-t+this.deltaX)):this.dynamicSetX(t,n,e)}async dynamicSetY(t,e,i=!1){DD(t,e,i,this)}async dynamicSetX(t,e,i=!1){kD(t,e,i,this)}updateBody(t){this.table.scenegraph.setBodyAndRowHeaderY(-t)}async updateRowCellGroupsAsync(){this.updateCellGroups(this.taskRowCount)}updateCellGroups(t){const e=Math.min(this.bodyBottomRow,this.rowUpdatePos+t);"autoHeight"===this.table.heightMode&&cz(this.table,this.rowUpdatePos,e,!1),GD(this.rowUpdatePos,e,this),"autoHeight"===this.table.heightMode&&(zD(this.bodyLeftCol,this.bodyRightCol,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),zD(0,this.table.frozenColCount-1,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),zD(this.table.colCount-this.table.rightFrozenColCount,this.table.colCount-1,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0)),this.rowUpdatePos=e+1}updateBottomFrozenCellGroups(){const t=this.table.rowCount-this.table.bottomFrozenRowCount,e=this.table.rowCount-1;"autoHeight"===this.table.heightMode&&cz(this.table,t,e,!1),GD(t,e,this),"autoHeight"===this.table.heightMode&&(zD(this.bodyLeftCol,this.bodyRightCol,t,e,this.table,this.rowUpdateDirection),zD(0,this.table.frozenColCount-1,t,e,this.table,this.rowUpdateDirection),zD(this.table.colCount-this.table.rightFrozenColCount,this.table.colCount-1,t,e,this.table,this.rowUpdateDirection))}updateRightFrozenCellGroups(){const t=this.table.colCount-this.table.rightFrozenColCount,e=this.table.colCount-1;"autoWidth"===this.table.widthMode&&fD(this.table,t,e,!1),FD(t,e,this),"autoHeight"===this.table.heightMode&&BD(t,e,this.table,this.colUpdateDirection)}async updateColCellGroupsAsync(){this.updateColGroups(this.taskRowCount)}updateColGroups(t){const e=Math.min(this.bodyRightCol,this.colUpdatePos+t);fD(this.table,this.colUpdatePos,e),FD(this.colUpdatePos,e,this),this.colUpdatePos=e+1}updateCellGroupPosition(t,e,i){t.row=e,t.mergeStartCol=void 0,t.mergeStartRow=void 0,t.mergeEndCol=void 0,t.mergeEndRow=void 0,t.setAttribute("y",i),t.needUpdate=!0,t.needUpdateForAutoRowHeight=!0}updateCellGroupContent(t){if(!t.needUpdate||"cell"!==t.role)return t;const e=this.table.scenegraph.updateCellContent(t.col,t.row);return t.needUpdate=!1,e||t}async sortCellVertical(){await async function(t){t.table.scenegraph.bodyGroup.forEachChildren(((t,e)=>{"group"===t.type&&(t.needUpdate=!0,t?.forEachChildren((t=>{t.needUpdate=!0})))}));for(let e=0;e<t.table.frozenColCount;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.rowStart;i<=t.rowEnd;i++)t.table.scenegraph.updateCellContent(e,i);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}for(let e=t.colStart;e<=t.colEnd;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}for(let e=t.table.colCount-t.table.rightFrozenColCount;e<t.table.colCount;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.rowStart;i<=t.rowEnd;i++)t.table.scenegraph.updateCellContent(e,i);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}let e,i;"autoHeight"===t.table.heightMode?(e=t.rowStart,i=t.rowEnd):(e=Math.max(t.bodyTopRow,t.screenTopRow-1*t.screenRowCount),i=Math.min(t.bodyBottomRow,t.screenTopRow+2*t.screenRowCount));const r=t.table.getAllRowsHeight();cz(t.table,e,i);const n=t.table.getAllRowsHeight();r!==n&&t.table.scenegraph.updateContainerHeight(t.table.frozenRowCount,n-r),GD(e,i,t),"autoHeight"===t.table.heightMode&&zD(t.bodyLeftCol,t.bodyRightCol,e,i,t.table,t.rowEnd>t.bodyBottomRow-(t.rowEnd-t.rowStart+1)?"down":"up"),t.rowUpdatePos=t.rowStart,t.rowUpdateDirection=t.rowEnd>t.bodyBottomRow-(t.rowEnd-t.rowStart+1)?"down":"up",t.table.scenegraph.updateNextFrame(),"autoHeight"!==t.table.heightMode&&await t.progress()}(this)}async sortCellHorizontal(){await async function(t){t.table.scenegraph.bodyGroup.forEachChildren(((t,e)=>{"group"===t.type&&(t.needUpdate=!0,t?.forEachChildren((t=>{t.needUpdate=!0})))}));for(let e=t.colStart;e<=t.colEnd;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}for(let e=t.table.colCount-t.table.rightFrozenColCount;e<t.table.colCount;e++){const i=t.table.scenegraph.getColGroup(e);i?.setAttribute("chartInstance",void 0);for(let i=t.rowStart;i<=t.rowEnd;i++)t.table.scenegraph.updateCellContent(e,i);for(let i=t.table.rowCount-t.table.bottomFrozenRowCount;i<t.table.rowCount;i++)t.table.scenegraph.updateCellContent(e,i)}const e=Math.max(t.bodyLeftCol,t.screenLeftCol-1*t.screenColCount),i=Math.min(t.bodyRightCol,t.screenLeftCol+2*t.screenColCount);fD(t.table,e,i),FD(e,i,t),t.colUpdatePos=t.colStart,t.colUpdateDirection=t.colEnd>t.bodyRightCol-(t.colEnd-t.colStart+1)?"right":"left",t.table.scenegraph.updateNextFrame(),await t.progress()}(this)}highPerformanceGetCell(t,e,i){if(e>=this.table.columnHeaderLevelCount&&e<this.table.rowCount-this.table.bottomFrozenRowCount&&(e<this.rowStart||e>this.rowEnd))return xD;if(t>=this.table.frozenColCount&&t<this.table.colCount-this.table.rightFrozenColCount&&(t<this.colStart||t>this.colEnd))return xD;if(this.cellCache.get(t)){const r=this.cellCache.get(t);if((r._next||r._prev)&&Math.abs(r.row-e)<e){let n=qD(r,e);return n&&(i||"shadow-cell"!==n.role)||(n=this.table.scenegraph.getCell(t,e,i)),n.row&&this.cellCache.set(t,n),n}const n=this.table.scenegraph.getCell(t,e,i);return n.col===t&&n.row&&this.cellCache.set(t,n),n}const r=this.table.scenegraph.getCell(t,e,i);return r.col===t&&r.row&&this.cellCache.set(t,r),r}updateDeltaY(t,e,i){if(this.rowStart===this.bodyTopRow){const t=this.table.scenegraph.highPerformanceGetCell(this.colStart,this.rowStart,!0);if("cell"===t.role){const e=t.attribute.y;this.deltaY=-e}}else if(this.rowEnd===this.bodyBottomRow){const t=this.table.scenegraph.highPerformanceGetCell(this.colStart,this.rowEnd,!0);if("cell"===t.role){const e=t.attribute.y+t.attribute.height-(this.table.getAllRowsHeight()-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight());this.deltaY=-e}}else if(Z(e)&&Z(i)){let r=this.table.scenegraph.highPerformanceGetCell(this.colStart,i,!0);"cell"!==r.role&&(r=this.table.scenegraph.highPerformanceGetCell(0,i,!0));const n=t-this.deltaY,o=e-n,s=r.attribute.y-n+this.table.getFrozenRowsHeight();this.deltaY=o-s}}updateDeltaX(t,e,i){if(this.colStart===this.bodyLeftCol){const t=this.table.scenegraph.getColGroup(this.colStart);if(t){const e=t.attribute.x;this.deltaX=-e}}else if(this.colEnd===this.bodyRightCol){const t=this.table.scenegraph.getColGroup(this.colEnd);if(t){const e=t.attribute.x+t.attribute.width-(this.table.getAllColsWidth()-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth());this.deltaX=-e}}else if(Z(e)&&Z(i)){const r=this.table.scenegraph.getColGroup(i)||this.table.scenegraph.getColGroup(i,!0),n=t-this.deltaX,o=e-n,s=r.attribute.x-n+this.table.getFrozenColsWidth();this.deltaX=o-s}}release(){this.isRelease=!0}}function qD(t,e){if(!t)return null;if(t.row===e)return t;const i=t._prev,r=t._next;return t.row>e&&i&&i.row===t.row-1?qD(i,e):t.row<e&&r&&r.row===t.row+1?qD(r,e):null}function ZD(t,e,i){const[r,n,o,s]=e.split("-"),a=parseInt(r,10),l=parseInt(n,10),h=parseInt(o,10),c=parseInt(s,10);let d,u=a,g=l,p=h,f=c;switch(t.role){case"rowHeader":d=i.table.getBodyVisibleRowRange(),d&&(g=Math.max(l,d.rowStart-1),f=Math.min(c,d.rowEnd+1));break;case"columnHeader":case"bottomFrozen":d=i.table.getBodyVisibleCellRange(),d&&(u=Math.max(a,d.colStart-1),p=Math.min(h,d.colEnd+1));break;case"cornerHeader":case"rightTopCorner":case"leftBottomCorner":case"rightBottomCorner":break;case"rightFrozen":d=i.table.getBodyVisibleCellRange(),d&&(g=Math.max(l,d.rowStart-1),f=Math.min(c,d.rowEnd+1));break;default:d=i.table.getBodyVisibleCellRange(),d&&(g=Math.max(l,d.rowStart-1),f=Math.min(c,d.rowEnd+1),u=Math.max(a,d.colStart-1),p=Math.min(h,d.colEnd+1))}const m=i.table.getColsWidth(u,p),b=i.table.getRowsHeight(g,f),y=i.highPerformanceGetCell(u,g).globalAABBBounds,v=i.highPerformanceGetCell(p,f).globalAABBBounds;t.rect.setAttributes({x:y.x1-i.tableGroup.attribute.x,y:y.y1-i.tableGroup.attribute.y,width:m,height:b,visible:!0}),t.fillhandle&&t.fillhandle.setAttributes({x:v.x2-i.tableGroup.attribute.x-3,y:v.y2-i.tableGroup.attribute.y-3,width:6,height:6,visible:!0});const C=!!i.table.frozenColCount&&a===i.table.frozenColCount,w=!!i.table.rightFrozenColCount&&(i.table.rightFrozenColCount>0&&h===i.table.colCount-i.table.rightFrozenColCount-1),x=!i.table.frozenRowCount||l===i.table.frozenRowCount,_=!!i.table.bottomFrozenRowCount&&c===i.table.rowCount-i.table.bottomFrozenRowCount-1;if(C&&t.rect.attribute.stroke[3]||w&&t.rect.attribute.stroke[1]||x&&t.rect.attribute.stroke[0]||_&&t.rect.attribute.stroke[2]){if(C&&t.rect.attribute.stroke[3]&&i.tableGroup.insertAfter(t.rect,"columnHeader"===t.role?i.cornerHeaderGroup:"bottomFrozen"===t.role?i.leftBottomCornerGroup:i.rowHeaderGroup),_&&t.rect.attribute.stroke[2]&&i.tableGroup.insertAfter(t.rect,"rowHeader"===t.role?i.leftBottomCornerGroup:"rightFrozen"===t.role?i.rightBottomCornerGroup:i.bottomFrozenGroup),x&&t.rect.attribute.stroke[0]&&i.tableGroup.insertAfter(t.rect,"rowHeader"===t.role?i.cornerHeaderGroup:"rightFrozen"===t.role?i.rightTopCornerGroup:i.colHeaderGroup),w&&t.rect.attribute.stroke[1]&&i.tableGroup.insertAfter(t.rect,"columnHeader"===t.role?i.rightTopCornerGroup:"bottomFrozen"===t.role?i.rightBottomCornerGroup:i.rightFrozenGroup),t.rect.attribute.x<i.table.getFrozenColsWidth()&&i.table.scrollLeft>0&&("body"===t.role||"columnHeader"===t.role||"bottomFrozen"===t.role)){const e=t.rect.attribute.width-(i.table.getFrozenColsWidth()-t.rect.attribute.x);t.rect.setAttributes({x:t.rect.attribute.x+(i.table.getFrozenColsWidth()-t.rect.attribute.x),width:e>0?e:0})}if(i.table.getRightFrozenColsWidth()>0&&i.rightFrozenGroup.attribute.height>0&&t.rect.attribute.x+t.rect.attribute.width>i.rightFrozenGroup.attribute.x&&("body"===t.role||"columnHeader"===t.role||"bottomFrozen"===t.role)){const e=i.rightFrozenGroup.attribute.x-t.rect.attribute.x;t.rect.setAttributes({x:t.rect.attribute.x,width:e>0?e:0})}if(t.rect.attribute.y<i.colHeaderGroup.attribute.height&&i.table.scrollTop>0&&("body"===t.role||"rowHeader"===t.role||"rightFrozen"===t.role)){const e=t.rect.attribute.height-(i.colHeaderGroup.attribute.height-t.rect.attribute.y);t.rect.setAttributes({y:t.rect.attribute.y+(i.colHeaderGroup.attribute.height-t.rect.attribute.y),height:e>0?e:0})}if(i.bottomFrozenGroup.attribute.width>0&&i.bottomFrozenGroup.attribute.height>0&&t.rect.attribute.y+t.rect.attribute.height>i.bottomFrozenGroup.attribute.y&&("body"===t.role||"rowHeader"===t.role||"rightFrozen"===t.role)){const e=i.bottomFrozenGroup.attribute.y-t.rect.attribute.y;t.rect.setAttributes({y:t.rect.attribute.y,height:e>0?e:0})}}else i.tableGroup.insertAfter(t.rect,"body"===t.role?i.bodyGroup:"columnHeader"===t.role?i.colHeaderGroup:"rowHeader"===t.role?i.rowHeaderGroup:"cornerHeader"===t.role?i.cornerHeaderGroup:"rightTopCorner"===t.role?i.rightTopCornerGroup:"rightFrozen"===t.role?i.rightFrozenGroup:"leftBottomCorner"===t.role?i.leftBottomCornerGroup:"bottomFrozen"===t.role?i.bottomFrozenGroup:i.rightBottomCornerGroup);let S=0;"number"==typeof t.rect.attribute.lineWidth&&(S=Math.ceil(t.rect.attribute.lineWidth/2)),h===i.table.colCount-1&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[1]??0)/2)),t.rect.setAttributes({width:t.rect.attribute.width-S})),0===a&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[3]??0)/2)),t.rect.setAttributes({x:t.rect.attribute.x+S,width:t.rect.attribute.width-S})),c===i.table.rowCount-1&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[2]??0)/2)),t.rect.setAttributes({height:t.rect.attribute.height-S})),0===l&&(Array.isArray(t.rect.attribute.lineWidth)&&(S=Math.ceil((t.rect.attribute.lineWidth[0]??0)/2)),t.rect.setAttributes({y:t.rect.attribute.y+S,height:t.rect.attribute.height-S}))}function JD(t,e,i=!0){const r=e.start.col,n=e.start.row,o=e.end.col,s=e.end.row,a=e.skipBodyMerge;let l=Math.max(Math.min(o,r),0),h=Math.max(Math.min(s,n),0),c=Math.min(Math.max(o,r),t.table.colCount-1),d=Math.min(Math.max(s,n),t.table.rowCount-1);const u=()=>{let e=!1;for(let i=l;i<=c;i++){if(i===l)for(let r=h;r<=d;r++){if(!t.table.isHeader(i,r)&&a)continue;const n=bH(t.table,i,r);if(n&&n.start.col<l){l=n.start.col,e=!0;break}}if(!e&&i===c)for(let r=h;r<=d;r++){if(!t.table.isHeader(i,r)&&a)continue;const n=bH(t.table,i,r);if(n&&Math.min(n.end.col,t.table.colCount-1)>c){c=n.end.col,e=!0;break}}if(e)break}if(!e)for(let i=h;i<=d;i++){if(i===h)for(let r=l;r<=c;r++){if(!t.table.isHeader(r,i)&&a)continue;const n=bH(t.table,r,i);if(n&&n.start.row<h){h=n.start.row,e=!0;break}}if(!e&&i===d)for(let r=l;r<=c;r++){if(!t.table.isHeader(r,i)&&a)continue;const n=bH(t.table,r,i);if(n&&Math.min(n.end.row,t.table.rowCount-1)>d){d=n.end.row,e=!0;break}}if(e)break}e&&u()};i&&u(),t.selectingRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),t.selectingRangeComponents=new Map;let g=!1,p=!1,f=!1,m=!1,b=!1,y=!1,v=!1,C=!1,w=!1;if(l<=t.table.frozenColCount-1&&h<=t.table.frozenRowCount-1&&(y=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&h<=t.table.frozenRowCount-1&&(v=!0),l<=t.table.frozenColCount-1&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(w=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(C=!0),l<=t.table.frozenColCount-1&&d>=t.table.frozenRowCount&&h<=t.table.rowCount-t.table.bottomFrozenRowCount-1&&(g=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&d>=t.table.frozenRowCount&&h<=t.table.rowCount-t.table.bottomFrozenRowCount-1&&(p=!0),h<=t.table.frozenRowCount-1&&c>=t.table.frozenColCount&&l<=t.table.colCount-t.table.rightFrozenColCount-1&&(f=!0),d>=t.table.rowCount-t.table.bottomFrozenRowCount&&c>=t.table.frozenColCount&&l<=t.table.colCount-t.table.rightFrozenColCount-1&&(m=!0),l<=t.table.colCount-t.table.rightFrozenColCount-1&&c>=t.table.frozenColCount&&h<=t.table.rowCount-t.table.bottomFrozenRowCount-1&&d>=t.table.frozenRowCount&&(b=!0),y){const e=Math.min(c,t.table.frozenColCount-1),i=Math.min(d,t.table.frozenRowCount-1),r=[!0,!f,!g,!0];t.createCellSelectBorder(l,h,e,i,"cornerHeader",`${l}${h}${c}${d}`,r)}if(v){const e=Math.max(l,t.table.colCount-t.table.rightFrozenColCount),i=Math.min(d,t.table.frozenRowCount-1),r=[!0,!0,!p,!f];t.createCellSelectBorder(e,h,c,i,"rightTopCorner",`${l}${h}${c}${d}`,r)}if(w){const e=Math.min(c,t.table.frozenColCount-1),i=Math.max(h,t.table.rowCount-t.table.bottomFrozenRowCount),r=[!g,!m,!0,!0];t.createCellSelectBorder(l,i,e,d,"leftBottomCorner",`${l}${h}${c}${d}`,r)}if(C){const e=Math.max(l,t.table.colCount-t.table.rightFrozenColCount),i=Math.max(h,t.table.rowCount-t.table.bottomFrozenRowCount),r=[!p,!0,!0,!m];t.createCellSelectBorder(e,i,c,d,"rightBottomCorner",`${l}${h}${c}${d}`,r)}if(f){const e=Math.max(l,t.table.frozenColCount),i=Math.min(c,t.table.colCount-t.table.rightFrozenColCount-1),r=Math.min(d,t.table.frozenRowCount-1),n=[!0,!v,!b,!y];t.createCellSelectBorder(e,h,i,r,"columnHeader",`${l}${h}${c}${d}`,n)}if(m){const e=Math.max(l,t.table.frozenColCount),i=Math.min(c,t.table.colCount-t.table.rightFrozenColCount-1),r=Math.max(h,t.table.rowCount-t.table.bottomFrozenRowCount),n=[!b,!C,!0,!w];t.createCellSelectBorder(e,r,i,d,"bottomFrozen",`${l}${h}${c}${d}`,n)}if(g){const e=Math.max(h,t.table.frozenRowCount),i=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),r=Math.min(c,t.table.frozenColCount-1),n=[!y,!b,!w,!0];t.createCellSelectBorder(l,e,r,i,"rowHeader",`${l}${h}${c}${d}`,n)}if(p){const e=Math.max(h,t.table.frozenRowCount),i=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),r=Math.max(l,t.table.colCount-t.table.rightFrozenColCount),n=[!v,!0,!C,!b];t.createCellSelectBorder(r,e,c,i,"rightFrozen",`${l}${h}${c}${d}`,n)}if(b){const e=Math.max(l,t.table.frozenColCount),i=Math.max(h,t.table.frozenRowCount),r=Math.min(c,t.table.colCount-t.table.rightFrozenColCount-1),n=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),o=[!f,!p,!m,!g];t.createCellSelectBorder(e,i,r,n,"body",`${l}${h}${c}${d}`,o)}}function QD(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)}))}function tW(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)}))}function eW(t){t.selectingRangeComponents.forEach(((e,i)=>{t.selectedRangeComponents.get(i)&&(t.selectingRangeComponents.get(i).rect.delete(),t.selectingRangeComponents.get(i).fillhandle?.delete()),t.selectedRangeComponents.set(i,e)})),t.selectingRangeComponents=new Map,t.updateNextFrame()}function iW(t){t.selectedRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),t.selectedRangeComponents=new Map}function rW(t,e,i,r){const n=r.scenegraph,o=dL(t.map((t=>t.row))).sort(((t,e)=>e-t)),s=dL(e.map((t=>t.row))).sort(((t,e)=>t-e)),a=dL(i.map((t=>t.row))).sort(((t,e)=>t-e));let l;if(a.length){l=sW(a[0]-1,a[a.length-1]+1,n)}if(s.length){const t=sW(s[0]-1,s[s.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}if(o.length){const t=sW(o[0]-1,o[o.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}o.forEach((t=>{!function(t,e){const i=e.proxy;t>=i.rowStart&&t<=i.rowEnd&&(!function(t,e){for(let i=0;i<e.table.colCount;i++){const r=e.getColGroup(i,!1);if(!r)continue;let n;r.forEachChildren((e=>e.row===t&&(n=e,!0))),n&&(r.updateColumnHeight(-n.attribute.height),r.removeChild(n))}}(t,e),i.rowEnd--,i.currentRow--);i.bodyBottomRow--;const r=Math.min(i.rowLimit,i.bodyBottomRow-i.bodyTopRow+1);i.totalActualBodyRowCount=r,i.totalRow=i.rowStart+r-1}(t,n)}));const h=r.rowHeightsMap;if(o.forEach((t=>{h.delete(t)})),o.length){!function(t){function e(e,i){e.row=i;const r=bH(t.table,e.col,e.row);r?(e.mergeStartCol=r.start.col,e.mergeEndCol=r.end.col,e.mergeStartRow=r.start.row,e.mergeEndRow=r.end.row):(e.mergeStartCol=void 0,e.mergeEndCol=void 0,e.mergeStartRow=void 0,e.mergeEndRow=void 0)}t.bodyGroup.forEachChildren((i=>{let r=t.bodyRowStart;i?.forEachChildren((t=>{e(t,r),r++}))})),t.rowHeaderGroup.forEachChildren((i=>{let r=t.bodyRowStart;i?.forEachChildren((t=>{e(t,r),r++}))})),t.rightFrozenGroup.forEachChildren((i=>{let r=t.bodyRowStart;i?.forEachChildren((t=>{e(t,r),r++}))})),t.bottomFrozenGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount;i?.forEachChildren((t=>{e(t,r),r++}))})),t.leftBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount;i?.forEachChildren((t=>{e(t,r),r++}))})),t.rightBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount;i?.forEachChildren((t=>{e(t,r),r++}))}))}(n);const t=oW(o[o.length-1]-1,o[0]-o.length+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}let c;if(n.table._clearRowRangeHeightsMap(),s.forEach((t=>{const e=function(t,e){const i=e.proxy;i.bodyBottomRow++;const r=Math.min(i.rowLimit,i.bodyBottomRow-i.bodyTopRow+1);if(i.totalActualBodyRowCount=r,i.totalRow=i.rowStart+r-1,t<i.rowStart)return;if(t>i.rowEnd)return i.rowEnd-i.rowStart+1<i.rowLimit?(i.rowEnd++,i.currentRow++,nW(t,e),t):void 0;if(i.rowEnd-i.rowStart+1<i.rowLimit)return i.rowEnd++,i.currentRow++,nW(t,e),t;return t}(t,n);c=c??e,h.insert(t)})),function(t){function e(e,i,r){e.row=i,e.setAttribute("y",r);const n=bH(t.table,e.col,e.row);n?(e.mergeStartCol=n.start.col,e.mergeEndCol=n.end.col,e.mergeStartRow=n.start.row,e.mergeEndRow=n.end.row):(e.mergeStartCol=void 0,e.mergeEndCol=void 0,e.mergeStartRow=void 0,e.mergeEndRow=void 0)}t.bodyGroup.forEachChildren((i=>{let r=t.bodyRowStart,n=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.rowHeaderGroup.forEachChildren((i=>{let r=t.bodyRowStart,n=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.rightFrozenGroup.forEachChildren((i=>{let r=t.bodyRowStart,n=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.bottomFrozenGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,n=0;i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.leftBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,n=0;i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))})),t.rightBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,n=0;i?.forEachChildren((t=>{e(t,r,n),r++,n+=t.attribute.height}))}))}(n),s.length){const t=oW(s[0]-1,s[s.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}for(let t=0;t<r.colCount;t++)a.forEach((e=>{const i=bH(n.table,t,e);if(i)for(let t=i.start.col;t<=i.end.col;t++)for(let e=i.start.row;e<=i.end.row;e++)SF(t,e,n.table,!1);else SF(t,e,n.table,!1)}));if(a.length){const t=oW(a[0]-1,a[a.length-1]+1,n);l=Z(l)?Z(t)?Math.min(l,t):l:t}if(at(c)){for(let t=0;t<r.colCount;t++)for(let e=c;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}l=Z(l)?Z(c)?Math.min(l,c):l:c}if(at(l)&&(n.proxy.rowUpdatePos=Math.min(n.proxy.rowUpdatePos,l)),s.length){if(!at(c)){const t=Math.min(...s);n.proxy.rowUpdatePos=Math.min(t,n.proxy.rowUpdatePos)}n.proxy.rowUpdateDirection="up",n.proxy.updateCellGroups(2*n.proxy.screenRowCount),u()}else o.length&&(!function(t,e){if(e.table.isHasSeriesNumber())for(let i=t;i<=e.table.rowCount-1;i++)SF(0,i,e.table,!1)}(o[o.length-1],n),n.proxy.updateCellGroups(2*n.proxy.screenRowCount),u(),n.proxy.progress());n.proxy.progress();const d=r.getRowsHeight(r.frozenRowCount,r.rowCount-1-r.bottomFrozenRowCount);function u(){if(s?.[s?.length-1]>=r.rowCount-r.bottomFrozenRowCount||a?.[a?.length-1]>=r.rowCount-r.bottomFrozenRowCount||o?.[0]>=r.rowCount-r.bottomFrozenRowCount){for(let t=0;t<r.colCount;t++)for(let e=r.rowCount-r.bottomFrozenRowCount;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}n.proxy.updateBottomFrozenCellGroups()}}n.updateContainerHeight(n.table.frozenRowCount,d-n.bodyGroup.attribute.height)}function nW(t,e){for(let i=0;i<e.table.colCount;i++){const r=new GO({x:0,y:0,width:e.table.getColWidth(i),height:e.table.getRowHeight(t)});if(r.role="cell",r.col=i,r.row=t,r.needUpdate=!0,!r)continue;const n=e.getColGroup(i);if(n)if(n.firstChild&&t<n.firstChild.row)n.insertBefore(r,n.firstChild),n.firstChild.row=n.firstChild.row+1;else if(n.lastChild&&t>n.lastChild.row)n.appendChild(r);else{const o=e.highPerformanceGetCell(i,t,!0);o!==r&&(n.insertBefore(r,o),o&&(o.row=o.row+1),o!==n.lastChild&&n.lastChild&&(n.lastChild.row=n.lastChild.row+1))}}}function oW(t,e,i){let r;for(let n=0;n<i.table.colCount;n++){const o=i.table.getCellRange(n,t);let s;o.start.row<=t+1&&o.end.row>=t+1&&(aW(o,i),s=o.start.row);const a=i.table.getCellRange(n,e);a.start.row<=e+1&&a.end.row>=e+1&&(aW(a,i),s=a.start.row),Z(s)&&(r=Z(r)?Math.min(r,s):s)}return r}function sW(t,e,i){let r;for(let n=0;n<i.table.colCount;n++){let o;const s=i.highPerformanceGetCell(n,t);s.mergeStartRow&&s.mergeEndRow&&s.mergeEndRow>t&&(aW({start:{row:s.mergeStartRow,col:"autoHeight"===i.table.heightMode?0:s.mergeStartCol},end:{row:s.mergeEndRow,col:"autoHeight"===i.table.heightMode?i.table.colCount-1:s.mergeEndCol}},i),o=s.mergeStartRow);const a=i.highPerformanceGetCell(n,e);a.mergeStartRow&&a.mergeEndRow&&a.mergeStartRow<e&&(aW({start:{row:a.mergeStartRow,col:"autoHeight"===i.table.heightMode?0:a.mergeStartCol},end:{row:a.mergeEndRow,col:"autoHeight"===i.table.heightMode?i.table.colCount-1:a.mergeEndCol}},i),o=a.mergeStartRow),Z(o)&&(r=Z(r)?Math.min(r,o):o)}return r}function aW(t,e){const{start:i,end:r}=t;for(let t=i.col;t<=r.col;t++)for(let n=i.row;n<=r.row;n++){const i=e.highPerformanceGetCell(t,n,!0);i&&(i.needUpdate=!0)}}function lW(t){const e=t.bodyGroup.firstChild instanceof GO?t.bodyGroup.firstChild:null;e&&(t.rowHeaderGroup.appendChild(e),t.rowHeaderGroup.setAttribute("width",t.rowHeaderGroup.attribute.width+e.attribute.width),t.bodyGroup.setAttribute("width",t.bodyGroup.attribute.width-e.attribute.width))}function hW(t){const e=t.colHeaderGroup.firstChild instanceof GO?t.colHeaderGroup.firstChild:null;e&&(t.cornerHeaderGroup.appendChild(e),t.cornerHeaderGroup.setAttribute("width",t.cornerHeaderGroup.attribute.width+e.attribute.width),t.colHeaderGroup.setAttribute("width",t.colHeaderGroup.attribute.width-e.attribute.width))}function cW(t){const e=t.rowHeaderGroup.lastChild instanceof GO?t.rowHeaderGroup.lastChild:t.rowHeaderGroup.lastChild?._prev;e&&(pW(t.bodyGroup,e,t.bodyGroup.firstChild),t.bodyGroup.setAttribute("width",t.bodyGroup.attribute.width+e.attribute.width),t.rowHeaderGroup.setAttribute("width",t.rowHeaderGroup.attribute.width-e.attribute.width))}function dW(t){const e=t.cornerHeaderGroup.lastChild instanceof GO?t.cornerHeaderGroup.lastChild:t.cornerHeaderGroup.lastChild?._prev;e&&(pW(t.colHeaderGroup,e,t.colHeaderGroup.firstChild),t.colHeaderGroup.setAttribute("width",t.colHeaderGroup.attribute.width+e.attribute.width),t.cornerHeaderGroup.setAttribute("width",t.cornerHeaderGroup.attribute.width-e.attribute.width))}function uW(t){const e=t.bottomFrozenGroup.firstChild instanceof GO?t.bottomFrozenGroup.firstChild:null;e&&(t.leftBottomCornerGroup.appendChild(e),t.leftBottomCornerGroup.setAttribute("width",t.leftBottomCornerGroup.attribute.width+e.attribute.width),t.bottomFrozenGroup.setAttribute("width",t.bottomFrozenGroup.attribute.width-e.attribute.width),t.table.isPivotChart()&&e.forEachChildren((t=>{t.setAttributes({stroke:!1,fill:!1})})))}function gW(t){const e=t.leftBottomCornerGroup.lastChild instanceof GO?t.leftBottomCornerGroup.lastChild:t.leftBottomCornerGroup.lastChild?._prev;e&&(pW(t.bottomFrozenGroup,e,t.bottomFrozenGroup.firstChild),t.bottomFrozenGroup.setAttribute("width",t.bottomFrozenGroup.attribute.width+e.attribute.width),t.leftBottomCornerGroup.setAttribute("width",t.leftBottomCornerGroup.attribute.width-e.attribute.width),t.table.isPivotChart()&&e.forEachChildren((e=>{const i=t.table._getCellStyle(e.col,e.row),r=t.table.getCellRange(e.col,e.row),n=yO(i,t.table,r?r.start.col:e.col,r?r.start.row:e.row,UO).theme;e.setAttributes({fill:n?.group?.fill??void 0,stroke:n?.group?.stroke??void 0})})))}function pW(t,e,i){e&&t&&(i?t.insertBefore(e,i):t.appendChild(e))}function fW(t){for(let e=t.proxy.colStart;e<=t.proxy.colEnd;e++){const i=t.getColGroup(e);i?.getChildren()?.forEach((t=>{t.children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.addUpdateBoundTag())}))}))}}function mW(t,e){t.forEachChildren((t=>{"column"===t.role&&t.forEachChildren((t=>{if("cell"===t.role){let i=!1;if(t.forEachChildren((t=>"axis"===t.name&&(i=!0,!0))),i){const i=e.internalProps.layoutMap.getAxisConfigInPivotChart(t.col,t.row),r=II(UO("padding",e._getCellStyle(t.col,t.row),t.col,t.row,e)),n=new rI(i,t.attribute.width,t.attribute.height,r,e);t.clear(),t.appendChild(n.component),n.overlap()}}}))}))}function bW(t,e,i){return new GO({x:0,y:0,width:t,height:e,clip:i??!1,pickable:!1})}function yW(t,e){return t.forEachChildrenSkipChild(((t,i)=>{t.setAttribute("x",e),e+=t.attribute.width})),e}function vW(t,e,i,r,n){const o=t.name;xW(i,r,(t=>t.name===o),(t=>{gF(e,t),t.name=e.name}),n),n.updateNextFrame()}function CW(t,e,i,r,n,o,s,a){const l=a.table.internalProps.headerHelper.getSortIcon(r,a.table,t,e);if(i&&vW(i,l,t,e,a),!function(t,e,i,r,n){const o=n.getCellRange(t,e),s=n.getCellRange(i,r);return o.start.col===s.start.col&&o.start.row===s.start.row&&o.end.col===s.end.col&&o.end.row===s.end.row}(t,e,n,o,a.table)){const t=a.table.internalProps.headerHelper.getSortIcon("normal",a.table,n,o);s?vW(s,t,n,o,a):function(t,e,i,r){const n=r.getCell(t,e);if(Z(n.mergeStartCol)&&Z(n.mergeStartRow)&&Z(n.mergeEndCol)&&Z(n.mergeEndRow))for(let t=n.mergeStartCol;t<=n.mergeEndCol;t++)for(let e=n.mergeStartRow;e<=n.mergeEndRow;e++){let n;r.getCell(t,e).forEachChildren((t=>"sort"===t.attribute.funcType&&(n=t,!0))),n&&(gF(i,n),n.name=i.name)}else{let t;n.forEachChildren((e=>"sort"===e.attribute.funcType&&(t=e,!0))),t&&(gF(i,t),t.name=i.name)}}(n,o,t,a)}}function wW(t,e,i){t.forEachChildren((t=>{"group"===t.type?wW(t,e,i):e(t)&&i(t)}))}function xW(t,e,i,r,n){const o=n.getCell(t,e);if("cell"===o.role&&Z(o.mergeStartCol)&&Z(o.mergeStartRow)&&Z(o.mergeEndCol)&&Z(o.mergeEndRow)){const{colStart:t,colEnd:e,rowStart:s,rowEnd:a}=bz(o,n);for(let o=t;o<=e;o++)for(let t=s;t<=a;t++)wW(n.highPerformanceGetCell(o,t),i,r)}else wW(o,i,r)}function _W(t,e){const{bgColor:i,borderColor:r,borderLineWidth:n,borderLineDash:o}=e,s={x:0,y:0,width:0,height:0,visible:!1,pickable:!0,fill:i};return s.stroke=Ez(r,void 0),s.lineWidth=n,o&&(s.lineDash=o),s.lineCap="butt",Array.isArray(r)&&(s.strokeArrayColor=II(r)),Array.isArray(n)&&(s.strokeArrayWidth=II(n),s.lineWidth=1),t.setAttributes(s),t.role="corner-frozen",t}function SW(t,e,i,r){const n=r.scenegraph,o=AW(t.map((t=>t.col))).sort(((t,e)=>e-t)),s=AW(e.map((t=>t.col))).sort(((t,e)=>t-e)),a=AW(i.map((t=>t.col))).sort(((t,e)=>t-e));o.forEach((t=>{!function(t,e){const i=e.proxy;if(t>=e.table.rowHeaderLevelCount)if(t>=e.table.colCount-e.table.rightFrozenColCount);else{const i=e.getColGroup(t,!1);i&&i.parent===e.bodyGroup&&e.bodyGroup.removeChild(i);const r=e.getColGroupInBottom(t);r&&r.parent===e.bottomFrozenGroup&&e.bottomFrozenGroup.removeChild(r)}t>=i.colStart&&t<=i.colEnd&&(i.colEnd--,i.currentCol--);i.bodyRightCol--;const r=Math.min(i.colLimit,i.bodyRightCol-i.bodyLeftCol+1);i.totalActualBodyColCount=r,i.totalCol=i.colStart+r-1}(t,n)}));const l=r.colWidthsMap;let h;if(o.forEach((t=>{l.delAndReorder(t)})),o.length&&MW(n),n.table._clearColRangeWidthsMap(),s.forEach((t=>{const e=function(t,e){const i=e.proxy;i.bodyRightCol++;const r=Math.min(i.colLimit,i.bodyRightCol-i.bodyLeftCol+1);if(i.totalActualBodyColCount=r,i.totalCol=i.colStart+r-1,t<i.colStart)return;if(t>i.colEnd)return i.colEnd-i.colStart+1<i.colLimit?(i.colEnd++,i.currentCol++,TW(t,e),t):void 0;if(i.colEnd-i.colStart+1<i.colLimit)return i.colEnd++,i.currentCol++,TW(t,e),t;return t}(t,n);MW(n),h=h??e,l.addAndReorder(t)})),function(t){let e=t.bodyColStart,i=t.getCellGroupX(e);function r(i){i.col=e;const r=bH(t.table,i.col,i.row);r&&(i.mergeStartCol=r.start.col,i.mergeStartCol=r.start.col,i.mergeEndCol=r.end.col,i.mergeEndCol=r.end.col),i.role}t.bodyGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.bodyColStart,i=t.getCellGroupX(e),t.colHeaderGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.bodyColStart,i=t.getCellGroupX(e),t.bottomFrozenGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.table.colCount-t.table.rightFrozenColCount,i=0,t.rightFrozenGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.table.colCount-t.table.rightFrozenColCount,i=0,t.rightTopCornerGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++})),e=t.table.colCount-t.table.rightFrozenColCount,i=0,t.rightBottomCornerGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{r(t)})),t.setAttribute("x",i),i+=t.attribute.width,e++}))}(n),a.forEach((t=>{for(let e=0;e<r.rowCount;e++){const i=bH(n.table,t,e);if(i)for(let t=i.start.col;t<=i.end.col;t++)for(let t=i.start.col;t<=i.end.col;t++)SF(t,e,n.table,!1);else SF(t,e,n.table,!1)}})),at(h)){for(let t=h;t<r.colCount;t++)for(let e=0;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}n.proxy.colUpdatePos=h}if(s.length){if(!at(h)){const t=Math.min(...s);n.proxy.colUpdatePos=t}n.proxy.colUpdateDirection="left",n.proxy.updateColGroups(2*n.proxy.screenColCount),d(),n.proxy.progress()}else o.length&&(n.proxy.updateColGroups(2*n.proxy.screenColCount),d(),n.proxy.progress());const c=r.getColsWidth(r.frozenColCount,r.colCount-1);function d(){if(s?.[s?.length-1]>=r.colCount-r.rightFrozenColCount||a?.[a?.length-1]>=r.colCount-r.rightFrozenColCount||o?.[0]>=r.colCount-r.rightFrozenColCount){for(let t=r.colCount-r.rightFrozenColCount;t<r.colCount;t++)for(let e=0;e<r.rowCount;e++){const i=n.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}n.proxy.updateRightFrozenCellGroups()}}n.updateContainerWidth(n.table.frozenColCount,c-n.bodyGroup.attribute.width)}function AW(t){const e=[];for(let i=0;i<t.length;i++)-1===e.indexOf(t[i])&&e.push(t[i]);return e}function MW(t){let e=t.bodyColStart;function i(i){i.col=e;const r=bH(t.table,i.col,i.row);r&&(i.mergeStartCol=r.start.col,i.mergeStartCol=r.start.col,i.mergeEndCol=r.end.col,i.mergeEndCol=r.end.col),i.role}t.bodyGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{i(t)})),e++})),e=t.bodyColStart,t.colHeaderGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{i(t)})),e++})),e=t.bodyColStart,t.bottomFrozenGroup.forEachChildren((t=>{t.col=e,t?.forEachChildren((t=>{i(t)})),e++}))}function TW(t,e){if(e.colHeaderGroup&&e.table.columnHeaderLevelCount>0){const r=new GO({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const n=e.getColGroup(t,!0);n?e.colHeaderGroup.insertBefore(r,n):e.colHeaderGroup.appendChild(r),i(r,t,0,e.table.columnHeaderLevelCount-1)}if(e.bodyGroup){const r=new GO({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const n=e.getColGroup(t,!1);n?e.bodyGroup.insertBefore(r,n):e.bodyGroup.appendChild(r),i(r,t,e.bodyRowStart,e.bodyRowEnd)}if(e.bottomFrozenGroup&&e.table.bottomFrozenRowCount>0){const r=new GO({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const n=e.getColGroupInBottom(t);n?e.bottomFrozenGroup.insertBefore(r,n):e.bottomFrozenGroup.appendChild(r),i(r,t,e.table.rowCount-e.table.bottomFrozenRowCount,e.table.rowCount-1)}function i(t,i,r,n){for(let o=r;o<=n;o++){const r=new GO({x:0,y:0,width:e.table.getColWidth(i),height:e.table.getRowHeight(o)});r.role="cell",r.col=i,r.row=o,r.needUpdate=!0,t.appendChild(r)}}}pE(),LT(),xn.load(pD),xn.load(ez);class RW{proxy;tableGroup;colHeaderGroup;cornerHeaderGroup;rowHeaderGroup;bodyGroup;rightFrozenGroup;bottomFrozenGroup;rightTopCornerGroup;leftBottomCornerGroup;rightBottomCornerGroup;componentGroup;selectedRangeComponents;selectingRangeComponents;lastSelectId;component;stage;table;isPivot;hasFrozen;frozenColCount;frozenRowCount;clear;mergeMap;_dealAutoFillHeightOriginRowsHeight;_needUpdateContainer=!1;constructor(t){let e,i;this.table=t,this.hasFrozen=!1,this.clear=!0,this.mergeMap=new Map,_T(this.table.theme.textPopTipStyle),"node"===YE.mode?(pf.setEnv("node",t.options.modeParams),e=t.canvasWidth,i=t.canvasHeight):(pf.setEnv("browser"),e=t.canvas.width,i=t.canvas.height),this.stage=Nf({canvas:t.canvas,width:e,height:i,disableDirtyBounds:!1,background:t.theme.underlayBackgroundColor,dpr:t.internalProps.pixelRatio,enableLayout:!0,afterRender:()=>{this.table.fireListeners("after_render",null)},...t.options.renderOption}),this.stage.defaultLayer.setTheme({group:{boundsPadding:0,strokeBoundsBuffer:0,lineJoin:"round"},text:{ignoreBuf:!0}}),this.initSceneGraph(),this.stage.defaultLayer.add(this.tableGroup),this.stage.table=this.table,this.createComponent()}get width(){return this.tableGroup.attribute?.width??0}get height(){return this.tableGroup.attribute?.height??0}get x(){return this.tableGroup.attribute?.x??0}get y(){return this.tableGroup.attribute?.y??0}get bodyRowStart(){return this.proxy.rowStart??0}get bodyRowEnd(){return this.proxy.rowEnd??this.table.rowCount-1}get bodyColStart(){return this.proxy.colStart??0}get bodyColEnd(){return this.proxy.colEnd??this.table.colCount-1}initSceneGraph(){this.isPivot=this.table.isPivotTable(),function(t){const e=t.table.tableNoFrameWidth,i=t.table.tableNoFrameHeight;t.tableGroup=new GO({x:0,y:0,width:e,height:i,clip:!0,pickable:!1}),t.tableGroup.role="table";const r=bW(0,0,!0);r.role="col-header",t.colHeaderGroup=r;const n=bW(0,0,!0);n.role="corner-header",t.cornerHeaderGroup=n;const o=bW(0,0,!0);o.role="row-header",t.rowHeaderGroup=o;const s=bW(e,0,!0);s.role="body",t.bodyGroup=s;const a=bW(0,0,!0);a.role="right-frozen",t.rightFrozenGroup=a;const l=bW(0,0,!0);l.role="bottom-frozen",t.bottomFrozenGroup=l;const h=bW(0,0);h.role="component",t.componentGroup=h;const c=bW(0,0,!0);c.role="corner-right-top-header",t.rightTopCornerGroup=c;const d=bW(0,0,!0);d.role="corner-right-bottom-header",t.rightBottomCornerGroup=d;const u=bW(0,0,!0);u.role="corner-left-bottom-header",t.leftBottomCornerGroup=u,t.tableGroup.addChild(s),t.tableGroup.addChild(o),t.tableGroup.addChild(l),t.tableGroup.addChild(r),t.tableGroup.addChild(a),t.tableGroup.addChild(d),t.tableGroup.addChild(c),t.tableGroup.addChild(u),t.tableGroup.addChild(n),t.tableGroup.addChild(h)}(this)}clearCells(){(this.table.isPivotChart()||this.table._hasCustomRenderOrLayout())&&this.stage.pluginService.findPluginsByName("poptipForText").forEach((t=>{t.deactivate(this.stage.pluginService)})),this.clear=!0,this.hasFrozen=!1,this.mergeMap.clear(),this.colHeaderGroup.clear(),this.rowHeaderGroup.clear(),this.cornerHeaderGroup.clear(),this.bodyGroup.clear(),this.bottomFrozenGroup.clear(),this.rightFrozenGroup.clear(),this.rightTopCornerGroup.clear(),this.rightBottomCornerGroup.clear(),this.leftBottomCornerGroup.clear(),this.colHeaderGroup.setAttributes({x:0,y:0,width:0,height:0}),this.rowHeaderGroup.setAttributes({x:0,y:0,width:0,height:0}),this.cornerHeaderGroup.setAttributes({x:0,y:0,width:0,height:0}),this.bodyGroup.setAttributes({x:0,y:0,width:0,height:0}),this.rightFrozenGroup.setAttributes({x:0,y:0,width:0,height:0}),this.bottomFrozenGroup.setAttributes({x:0,y:0,width:0,height:0}),this.rightTopCornerGroup.setAttributes({x:0,y:0,width:0,height:0,visible:!1}),this.leftBottomCornerGroup.setAttributes({x:0,y:0,width:0,height:0,visible:!1}),this.rightBottomCornerGroup.setAttributes({x:0,y:0,width:0,height:0,visible:!1}),this.tableGroup.setAttributes({x:this.table.tableX,y:this.table.tableY,width:0,height:0}),this.tableGroup.border&&(this.tableGroup.parent.removeChild(this.tableGroup.border),delete this.tableGroup.border),this.proxy?.release()}updateStageBackground(){this.stage.background=this.table.theme.underlayBackgroundColor,this.stage.renderNextFrame()}createComponent(){this.component=new Bz(this.table),this.component.addToGroup(this.componentGroup),this.selectedRangeComponents=new Map,this.selectingRangeComponents=new Map}updateComponent(){this.component.updateStyle()}createSceneGraph(t=!1){t||this.table.rowHeightsMap.clear(),(this.table.isPivotChart()||this.table._hasCustomRenderOrLayout())&&this.stage.pluginService.autoEnablePlugins.getContributions().forEach((t=>{"poptipForText"===t.name&&this.stage.pluginService.register(t)})),this.clear=!1,this.frozenColCount=this.table.frozenColCount,this.frozenRowCount=this.table.columnHeaderLevelCount,this.proxy=new XD(this.table),Pz(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0,!0),this.table.isPivotChart()&&(_W(this.rightTopCornerGroup,this.table.theme.cornerRightTopCellStyle||this.table.theme.cornerHeaderStyle||{}),_W(this.leftBottomCornerGroup,this.table.theme.cornerLeftBottomCellStyle||this.table.theme.cornerHeaderStyle||{}),_W(this.rightBottomCornerGroup,this.table.theme.cornerRightBottomCellStyle||this.table.theme.cornerHeaderStyle||{})),this.proxy.createGroupForFirstScreen(this.cornerHeaderGroup,this.colHeaderGroup,this.rowHeaderGroup,this.rightFrozenGroup,this.bottomFrozenGroup,this.bodyGroup,0,0),this.afterScenegraphCreated()}renderSceneGraph(){this.stage.render()}getCell(t,e,i){let r;if(r=this.table.rightFrozenColCount>0&&t>=this.table.colCount-this.table.rightFrozenColCount&&e<this.table.frozenRowCount?this.rightTopCornerGroup.getColGroup(t)?.getRowGroup(e):this.table.bottomFrozenRowCount>0&&e>=this.table.rowCount-this.table.bottomFrozenRowCount&&t<this.table.frozenColCount?this.leftBottomCornerGroup.getColGroup(t)?.getRowGroup(e):this.table.rightFrozenColCount>0&&this.table.bottomFrozenRowCount>0&&t>=this.table.colCount-this.table.rightFrozenColCount&&e>=this.table.rowCount-this.table.bottomFrozenRowCount?this.rightBottomCornerGroup.getColGroup(t)?.getRowGroup(e):this.table.rightFrozenColCount>0&&t>this.table.colCount-1-this.table.rightFrozenColCount?this.rightFrozenGroup.getColGroup(t)?.getRowGroup(e):this.table.bottomFrozenRowCount>0&&e>this.table.rowCount-1-this.table.bottomFrozenRowCount?this.bottomFrozenGroup.getColGroup(t)?.getRowGroup(e):this.getColGroup(t,e<this.frozenRowCount)?.getRowGroup(e),r&&"shadow-cell"===r.role&&!i){const i=this.table.getCellRange(t,e);i.start.col===t&&i.start.row===e||(r=this.getCell(i.start.col,i.start.row))}return r||xD}highPerformanceGetCell(t,e,i){return this.proxy.highPerformanceGetCell(t,e,i)}getColGroup(t,e=!1){let i;return i=t<this.frozenColCount&&e?this.cornerHeaderGroup.getColGroup(t):t<this.frozenColCount?this.rowHeaderGroup.getColGroup(t):e&&this.table.rightFrozenColCount>0&&t>this.table.colCount-1-this.table.rightFrozenColCount?this.rightTopCornerGroup.getColGroup(t):!e&&this.table.rightFrozenColCount>0&&t>this.table.colCount-1-this.table.rightFrozenColCount?this.rightFrozenGroup.getColGroup(t):e?this.colHeaderGroup.getColGroup(t):this.bodyGroup.getColGroup(t),i||void 0}getColGroupInBottom(t){if(this.table.bottomFrozenRowCount>0)return this.bottomFrozenGroup.getColGroup(t)}getColGroupInLeftBottomCorner(t){if(this.table.bottomFrozenRowCount>0)return this.leftBottomCornerGroup.getColGroup(t)}getColGroupInRightTopCorner(t){if(this.table.rightFrozenColCount>0)return this.rightTopCornerGroup.getColGroup(t)}getColGroupInRightBottomCorner(t){if(this.table.rightFrozenColCount>0&&this.table.bottomFrozenRowCount>0)return this.rightBottomCornerGroup.getColGroup(t)}getCellSize(t,e){const i=this.getCell(t,e),r=bH(this.table,t,e);let n=i.attribute.width,o=i.attribute.height;return r&&(n/=r.end.col-r.start.col+1,o/=r.end.row-r.start.row+1),{width:n,height:o}}updateNextFrame(){this.updateContainerSync(),this.resetAllSelectComponent(),this.stage.renderNextFrame()}resetAllSelectComponent(){var t;this.table.stateManager.select?.ranges?.length>0&&((t=this).selectingRangeComponents.forEach(((e,i)=>{ZD(e,i,t)})),t.selectedRangeComponents.forEach(((e,i)=>{ZD(e,i,t)})))}hideHoverIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"mouseenter_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",0);const e=t.parent.getChildByName("icon-back");e&&e.setAttribute("visible",!1)}),i),i.updateNextFrame())}(t,e,this)}showHoverIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"mouseenter_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",1)}),i),i.updateNextFrame())}(t,e,this)}hideClickIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"click_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",0)}),i),i.updateNextFrame())}(t,e,this)}showClickIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(xW(t,e,(t=>"click_cell"===t.attribute.visibleTime),(t=>{t.setAttribute("opacity",1)}),i),i.updateNextFrame())}(t,e,this)}getIcon(t,e,i,r){return function(t,e,i,r,n){let o;return n.getCell(t,e).forEachChildren((t=>{t.role&&t.role.startsWith("icon")&&t.containsPoint(i,r,Li.GLOBAL)&&(o=t)})),o}(t,e,i,r,this)}setIconHoverStyle(t,e,i,r){!function(t,e,i,r,n){if((t.attribute.backgroundColor||t.attribute.hoverImage)&&xW(e,i,(e=>e.name===t.name),(t=>{if(t.attribute.backgroundColor){let e=t.parent.getChildByName("icon-back");e?e.setAttributes({x:(t.attribute.x??0)+(t.AABBBounds.width()-t.backgroundWidth)/2,y:(t.attribute.y??0)+(t.AABBBounds.height()-t.backgroundHeight)/2,dx:t.attribute.dx??0,dy:t.attribute.dy??0,width:t.backgroundWidth,height:t.backgroundHeight,fill:t.attribute.backgroundColor,cornerRadius:5,visible:!0}):(e=kc({x:(t.attribute.x??0)+(t.AABBBounds.width()-t.backgroundWidth)/2,y:(t.attribute.y??0)+(t.AABBBounds.height()-t.backgroundHeight)/2,dx:t.attribute.dx??0,dy:t.attribute.dy??0,width:t.backgroundWidth,height:t.backgroundHeight,fill:t.attribute.backgroundColor,cornerRadius:5,pickable:!1,visible:!0}),e.name="icon-back"),t.parent.insertBefore(e,t)}t.attribute.hoverImage&&t.attribute.image!==t.attribute.hoverImage&&(t.image=t.attribute.hoverImage)}),n),t.tooltip){const{x1:r,x2:o,y1:s,y2:a}=t.globalAABBBounds,l={content:t.tooltip.title,referencePosition:{rect:{left:r,right:o,top:s,bottom:a,width:t.globalAABBBounds.width(),height:t.globalAABBBounds.height()},placement:t.tooltip.placement},disappearDelay:t.tooltip.disappearDelay,style:Object.assign({},n.table.internalProps.theme?.tooltipStyle,t.tooltip?.style)};n.table.internalProps.tooltipHandler.isBinded(l)||n.table.showTooltip(e,i,l)}}(t,e,i,0,this)}updateSortIcon(t,e,i,r,n,o,s){CW(t,e,i,r,n,o,s,this)}updateFrozenIcon(t,e){!function(t){for(let e=0;e<t.table.colCount;e++)for(let i=0;i<t.table.columnHeaderLevelCount;i++)xW(e,i,(t=>"frozen"===t.attribute.funcType),(r=>{const n=t.table.internalProps.headerHelper.getFrozenIcon(e,i);gF(n,r),r.name=n.name}),t)}(this)}updateHierarchyIcon(t,e){!function(t,e,i){let r;r=i.table.isHeader(t,e)?i.table.internalProps.headerHelper.getHierarchyIcon(t,e):i.table.internalProps.bodyHelper.getHierarchyIcon(t,e),xW(t,e,(t=>t.attribute.funcType===xE.collapse||t.attribute.funcType===xE.expand),(t=>{gF(r,t),t.name=r.name}),i)}(t,e,this)}setIconNormalStyle(t,e,i){!function(t,e,i,r){(t.attribute.backgroundColor||t.attribute.hoverImage)&&xW(e,i,(e=>e.name===t.name),(t=>{const e=t.parent.getChildByName("icon-back");e&&e.setAttribute("visible",!1),t.attribute.hoverImage&&t.attribute.image!==t.attribute.originImage&&(t.image=t.attribute.originImage)}),r)}(t,e,i,this)}residentHoverIcon(t,e){!function(t,e,i){xW(t,e,(t=>t.attribute.funcType===xE.dropDown),(t=>{t.oldVisibleTime=t.attribute.visibleTime,t.setAttribute("visibleTime","always"),t.setAttribute("opacity",1)}),i)}(t,e,this)}resetResidentHoverIcon(t,e){!function(t,e,i){xW(t,e,(t=>t.attribute.funcType===xE.dropDown),(t=>{t.oldVisibleTime&&t.setAttribute("visibleTime",t.oldVisibleTime),t.setAttribute("opacity","always"===t.attribute.visibleTime?1:0)}),i)}(t,e,this)}deactivateChart(t,e){if(-1===t||-1===e)return;const i=this.getCell(t,e);i?.firstChild?.deactivate?.()}activateChart(t,e){if(-1===t||-1===e)return;const i=this.getCell(t,e);i?.firstChild?.activate?.(this.table)}removeInteractionBorder(t,e){const i=this.getCell(t,e);i.setAttribute("highlightStroke",void 0),i.setAttribute("highlightStrokeArrayWidth",void 0),i.setAttribute("highlightStrokeArrayColor",void 0)}createCellSelectBorder(t,e,i,r,n,o,s){!function(t,e,i,r,n,o,s,a){let l=!!t.table.options.excelOptions?.fillHandle;if(t.table.stateManager.select.ranges?.length>1)l=!1,t.removeFillHandleFromSelectComponents();else if(1===t.table.stateManager.select.ranges?.length){const e=Math.max(t.table.stateManager.select.ranges[0].start.row,t.table.stateManager.select.ranges[0].end.row),i=Math.max(t.table.stateManager.select.ranges[0].start.col,t.table.stateManager.select.ranges[0].end.col);t.table.isHeader(i,e)&&(l=!1)}!Array.isArray(a)||!1!==a[1]&&!1!==a[2]||(l=!1);const h=Math.min(e,r),c=Math.min(i,n),d=Math.max(e,r),u=Math.max(i,n),g=t.highPerformanceGetCell(h,c).globalAABBBounds,p=t.highPerformanceGetCell(d,u).globalAABBBounds,f=t.table.theme,m=f.selectionStyle?.cellBorderColor,b=f.selectionStyle?.cellBorderLineWidth,y=kc({pickable:!1,fill:f.selectionStyle?.cellBgColor??"rgba(0, 0, 255,0.1)",lineWidth:b,stroke:a.map((t=>!!t&&m)),x:g.x1-t.tableGroup.attribute.x,y:g.y1-t.tableGroup.attribute.y,width:0,height:0,visible:!0});let v;l&&(v=kc({pickable:!1,fill:m,stroke:m,x:p.x2-3,y:p.y2-3,width:6,height:6,visible:!0})),t.lastSelectId=s,t.selectingRangeComponents.set(`${h}-${c}-${d}-${u}-${s}`,{rect:y,fillhandle:v,role:o}),t.tableGroup.insertAfter(y,"body"===o?t.bodyGroup:"columnHeader"===o?t.colHeaderGroup:"rowHeader"===o?t.rowHeaderGroup:"cornerHeader"===o?t.cornerHeaderGroup:"rightTopCorner"===o?t.rightTopCornerGroup:"rightFrozen"===o?t.rightFrozenGroup:"leftBottomCorner"===o?t.leftBottomCornerGroup:"bottomFrozen"===o?t.bottomFrozenGroup:t.rightBottomCornerGroup),l&&t.tableGroup.insertAfter(v,"body"===o?t.bodyGroup:"columnHeader"===o?t.colHeaderGroup:"rowHeader"===o?t.rowHeaderGroup:"cornerHeader"===o?t.cornerHeaderGroup:"rightTopCorner"===o?t.rightTopCornerGroup:"rightFrozen"===o?t.rightFrozenGroup:"leftBottomCorner"===o?t.leftBottomCornerGroup:"bottomFrozen"===o?t.bottomFrozenGroup:t.rightBottomCornerGroup)}(this,t,e,i,r,n,o,s)}moveSelectingRangeComponentsToSelectedRangeComponents(){eW(this)}deleteLastSelectedRangeComponents(){var t;(t=this).selectedRangeComponents.forEach(((e,i)=>{i.split("-")[4]===t.lastSelectId&&(e.rect.delete(),e.fillhandle?.delete(),t.selectedRangeComponents.delete(i))}))}deleteAllSelectBorder(){iW(this)}updateCellSelectBorder(t,e=!0){JD(this,t,e)}removeFillHandleFromSelectComponents(){this.selectedRangeComponents.forEach(((t,e)=>{t.fillhandle?.delete(),t.fillhandle=void 0}))}recreateAllSelectRangeComponents(){iW(this),this.table.stateManager.select.ranges.forEach((t=>{JD(this,t)})),eW(this)}updateColWidth(t,e,i,r){!function(t,e,i,r){r||t.table._setColWidth(e,t.table.getColWidth(e)+i,!0);const n=t.getColGroup(e,!0),o=t.getColGroupInRightTopCorner(e);n&&!o&&Cz(n,i,"col-corner",t),o&&Cz(o,i,"right-top",t);const s=t.getColGroup(e);s&&Cz(s,i,"row-body",t);const a=t.getColGroupInLeftBottomCorner(e);a&&Cz(a,i,"left-bottom",t);const l=t.getColGroupInBottom(e);l&&Cz(l,i,"bottom",t);const h=t.getColGroupInRightBottomCorner(e);h&&Cz(h,i,"right-bottom",t),e<t.frozenColCount?(t.cornerHeaderGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),t.rowHeaderGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)}))):(t.colHeaderGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),t.bodyGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)}))),a&&t.leftBottomCornerGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),l&&t.bottomFrozenGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)})),h&&t.rightBottomCornerGroup.forEachChildrenSkipChild(((t,r)=>{t.col>e&&t.setAttribute("x",t.attribute.x+i)}))}(this,t,Math.round(e),r),i||this.updateContainer(!0)}updateChartSize(t){!function(t,e){for(let i=e;i<=t.proxy.colEnd;i++){const e=t.getColGroup(i);e?.getChildren()?.forEach((e=>{const i=t.table.getColWidth(e.col),r=t.table.getRowHeight(e.row);e.children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.setAttribute("width",Math.ceil(i-t.attribute.cellPadding[3]-t.attribute.cellPadding[1])),t.setAttribute("height",Math.ceil(r-t.attribute.cellPadding[0]-t.attribute.cellPadding[2])))}))}))}if(!t.table.isPivotChart()&&t.table.rightFrozenColCount>=1)for(let e=t.table.colCount-t.table.rightFrozenColCount;e<=t.table.colCount-1;e++){const i=t.getColGroup(e);i?.getChildren()?.forEach((e=>{const i=t.table.getColWidth(e.col),r=t.table.getRowHeight(e.row);e.children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.setAttribute("width",Math.ceil(i-t.attribute.cellPadding[3]-t.attribute.cellPadding[1])),t.setAttribute("height",Math.ceil(r-t.attribute.cellPadding[0]-t.attribute.cellPadding[2])))}))}))}}(this,t)}updateChartState(t){this.table.isPivotChart()&&function(t,e){const i=t.table;if(i.isPivotChart()){const r=i._selectedDataItemsInChart.length;if((null===e||0===e?.length||0===Object.keys(e).length)&&0===r)return;const n=[];if(Array.isArray(e))e.forEach((t=>{if(t&&0!==t.key&&Object.keys(t).length>0){const e={};for(const i in t)i.startsWith("VGRAMMAR_")||i.startsWith("__VCHART")||(e[i]=t[i]);n.push(e)}}));else if(e&&0!==e.key&&Object.keys(e).length>0){const t={};for(const i in e)i.startsWith("VGRAMMAR_")||i.startsWith("__VCHART")||(t[i]=e[i]);n.push(t)}Mt(i._selectedDataItemsInChart,n)||(i._selectedDataItemsInChart=n,i.internalProps.layoutMap.updateDataStateToChartInstance(),fW(t),i.scenegraph.updateNextFrame())}}(this,t)}updateCheckboxCellState(t,e,i){if(this.table.transpose)this.bodyGroup.children?.forEach((t=>{t.getChildAt(e).getChildren().forEach((t=>{"checkbox"===t.name&&t.setAttribute("checked",i)}))}));else{const e=this.getColGroup(t);e.children?.forEach((t=>{t.getChildren().find((t=>{"checkbox"===t.name&&t.setAttribute("checked",i)}))}))}}updateHeaderCheckboxCellState(t,e,i){if(this.table.transpose)this.rowHeaderGroup.children?.forEach((t=>{t.getChildAt(e).getChildren().forEach((t=>{"checkbox"===t.name&&("indeterminate"===i?(t.setAttribute("indeterminate",!0),t.setAttribute("checked",void 0)):(t.setAttribute("indeterminate",void 0),t.setAttribute("checked",i)))}))}));else{const e=this.getColGroup(t,!0);e.children?.forEach((t=>{t.getChildren().find((t=>{"checkbox"===t.name&&("indeterminate"===i?(t.setAttribute("indeterminate",!0),t.setAttribute("checked",void 0)):(t.setAttribute("indeterminate",void 0),t.setAttribute("checked",i)))}))}))}}updateAutoColWidth(t){this.table.internalProps._widthResizedColMap.delete(t);const e=this.table.getColWidth(t),i=mD(t,0,this.table.rowCount-1,this.table,!0);i!==e&&this.updateColWidth(t,i-e)}recalculateColWidths(){fD(this.table,0,this.table.colCount-1,!0)}recalculateRowHeights(){this.table.internalProps.useOneRowHeightFillAll=!1,cz(this.table,0,this.table.rowCount-1,!0,!0)}resize(){this.proxy.resize(),("adaptive"===this.table.widthMode||this.table.autoFillWidth)&&(0===this.table.internalProps._widthResizedColMap.size?this.recalculateColWidths():this.dealWidthMode()),"adaptive"===this.table.heightMode?0===this.table.internalProps._heightResizedRowMap.size?this.recalculateRowHeights():this.dealHeightMode():this.table.autoFillHeight&&this.dealHeightMode(),this.resetFrozen(),this.updateTableSize(),this.updateBorderSizeAndPosition(),this.component.updateScrollBar(),("adaptive"===this.table.widthMode||"adaptive"===this.table.heightMode||this.table.autoFillWidth||this.table.autoFillHeight)&&this.updateChartSize(this.table.rowHeaderLevelCount),this.proxy.progress(),this.updateNextFrame()}updateTableSize(){this.tableGroup.setAttributes({x:this.table.tableX,y:this.table.tableY,width:Math.min(this.table.tableNoFrameWidth,Math.max(this.colHeaderGroup.attribute.width,this.bodyGroup.attribute.width,this.bottomFrozenGroup.attribute.width,0)+Math.max(this.cornerHeaderGroup.attribute.width,this.rowHeaderGroup.attribute.width,this.leftBottomCornerGroup.attribute.width,0)+Math.max(this.rightTopCornerGroup.attribute.width,this.rightFrozenGroup.attribute.width,this.rightBottomCornerGroup.attribute.width,0)),height:Math.min(this.table.tableNoFrameHeight,Math.max(this.colHeaderGroup.attribute.height,this.cornerHeaderGroup.attribute.height,this.rightTopCornerGroup.attribute.height,0)+Math.max(this.rowHeaderGroup.attribute.height,this.bodyGroup.attribute.height,this.rightFrozenGroup.attribute.height,0)+Math.max(this.leftBottomCornerGroup.attribute.height,this.bottomFrozenGroup.attribute.height,this.rightBottomCornerGroup.attribute.height,0))}),this.tableGroup.border&&"rect"===this.tableGroup.border.type?this.table.theme.frameStyle?.innerBorder?this.tableGroup.border.setAttributes({x:this.table.tableX+this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY+this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width-this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height-this.tableGroup.border.attribute.lineWidth}):this.tableGroup.border.setAttributes({x:this.table.tableX-this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY-this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width+this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height+this.tableGroup.border.attribute.lineWidth}):this.tableGroup.border&&"group"===this.tableGroup.border.type&&(this.table.theme.frameStyle?.innerBorder?(this.tableGroup.border.setAttributes({x:this.table.tableX+this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY+this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width-this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height-this.tableGroup.border.attribute.lineWidth}),this.tableGroup.border.firstChild?.setAttributes({x:0,y:0,width:this.tableGroup.attribute.width-this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height-this.tableGroup.border.attribute.lineWidth})):(this.tableGroup.border.setAttributes({x:this.table.tableX-this.tableGroup.border.attribute.lineWidth/2,y:this.table.tableY-this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width+this.tableGroup.border.attribute.lineWidth,height:this.tableGroup.attribute.height+this.tableGroup.border.attribute.lineWidth}),this.tableGroup.border.firstChild?.setAttributes({x:this.tableGroup.border.attribute.lineWidth/2,y:this.tableGroup.border.attribute.lineWidth/2,width:this.tableGroup.attribute.width,height:this.tableGroup.attribute.height}))),this.table.bottomFrozenRowCount>0&&(this.bottomFrozenGroup.setAttribute("y",this.tableGroup.attribute.height-this.table.getBottomFrozenRowsHeight()),this.leftBottomCornerGroup.setAttributes({visible:!0,y:this.tableGroup.attribute.height-this.table.getBottomFrozenRowsHeight(),height:this.table.getBottomFrozenRowsHeight(),width:this.table.getFrozenColsWidth()}),this.rightBottomCornerGroup.setAttributes({visible:!0,y:this.tableGroup.attribute.height-this.table.getBottomFrozenRowsHeight(),height:this.table.getBottomFrozenRowsHeight()})),this.table.rightFrozenColCount>0&&(this.rightFrozenGroup.setAttribute("x",this.tableGroup.attribute.width-this.table.getRightFrozenColsWidth()),this.rightTopCornerGroup.setAttributes({visible:!0,x:this.tableGroup.attribute.width-this.table.getRightFrozenColsWidth(),width:this.table.getRightFrozenColsWidth(),height:this.table.getFrozenRowsHeight()}),this.rightBottomCornerGroup.setAttributes({visible:!0,x:this.tableGroup.attribute.width-this.table.getRightFrozenColsWidth(),width:this.table.getRightFrozenColsWidth()}))}updateRowHeight(t,e,i){yz(this,t,e=Math.round(e),i),this.updateContainerHeight(t,e)}updateRowsHeight(t,e,i){for(let r=0;r<t.length;r++){const n=t[r];if(n>=this.proxy.rowStart&&n<=this.proxy.rowEnd){const t=e[r];yz(this,n,Math.round(t),i),this._updateContainerHeight(n,t)}}this.updateTableSize(),this.component.updateScrollBar(),this.updateNextFrame()}updateContainerWidth(t,e){t<this.frozenColCount?(this.rowHeaderGroup.setDeltaWidth(e),this.cornerHeaderGroup.setDeltaWidth(e),this.colHeaderGroup.setDeltaX(e),this.bodyGroup.setDeltaX(e)):(this.colHeaderGroup.setDeltaWidth(e),this.bodyGroup.setDeltaWidth(e)),this.updateTableSize(),this.component.updateScrollBar(),this.updateNextFrame()}_updateContainerHeight(t,e){t<this.table.frozenRowCount?(this.colHeaderGroup.setDeltaHeight(e),this.cornerHeaderGroup.setDeltaHeight(e),this.rowHeaderGroup.setDeltaY(e),this.bodyGroup.setDeltaY(e),this.table.rightFrozenColCount&&this.rightFrozenGroup.setDeltaY(e)):t>=this.table.rowCount-this.table.bottomFrozenRowCount?(this.leftBottomCornerGroup.setDeltaHeight(e),this.bottomFrozenGroup.setDeltaHeight(e),this.table.rightFrozenColCount&&this.rightBottomCornerGroup.setDeltaHeight(e)):(this.rowHeaderGroup.setDeltaHeight(e),this.bodyGroup.setDeltaHeight(e),this.table.rightFrozenColCount&&this.rightFrozenGroup.setDeltaHeight(e))}updateContainerHeight(t,e){this._updateContainerHeight(t,e),this.updateTableSize(),this.component.updateScrollBar(),this.updateNextFrame()}setColWidth(t,e){const i=this.table.getColWidth(t);i!==e&&(this.updateColWidth(t,e-i),this.table._clearColRangeWidthsMap(t))}setRowHeight(t,e){const i=this.table.getRowHeight(t);i!==e&&((t>=this.proxy.rowStart&&t<=this.proxy.rowEnd||t>=this.table.rowCount-this.table.bottomFrozenRowCount&&t<=this.table.rowCount-1||t<this.table.frozenRowCount)&&this.updateRowHeight(t,e-i),this.table._clearRowRangeHeightsMap(t))}setX(t,e=!1){this.table.scenegraph.proxy.setX(-t,e)}setY(t,e=!1){this.table.scenegraph.proxy.setY(-t,e)}setBodyAndRowHeaderY(t){const e=this.bodyGroup.firstChild?.firstChild,i=this.bodyGroup.firstChild?.lastChild;0===t&&e&&e.row===this.table.frozenRowCount&&e.attribute.y+t<0?t=-e.attribute.y:i&&this.table.tableNoFrameHeight<this.table.getAllRowsHeight()&&i.row===this.table.rowCount-this.table.bottomFrozenRowCount-1&&i.attribute.y+i.attribute.height+t<this.table.tableNoFrameHeight-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight()&&(t=this.table.tableNoFrameHeight-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight()-i.attribute.y-i.attribute.height),this.colHeaderGroup.attribute.height+t!==this.bodyGroup.attribute.y&&(this.bodyGroup.setAttribute("y",this.colHeaderGroup.attribute.height+t),this.rowHeaderGroup.setAttribute("y",this.cornerHeaderGroup.attribute.height+t),this.table.rightFrozenColCount>0&&this.rightFrozenGroup.setAttribute("y",this.rightTopCornerGroup.attribute.height+t),this.updateNextFrame())}setBodyAndColHeaderX(t){const e=this.bodyGroup.firstChild,i=this.bodyGroup.lastChild;0===t&&e&&e.col===this.table.frozenColCount&&e.attribute.x+t<0?t=-e.attribute.x:i&&this.table.tableNoFrameWidth<this.table.getAllColsWidth()&&i.col===this.table.colCount-this.table.rightFrozenColCount-1&&i.attribute.x+i.attribute.width+t<this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()&&(t=this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()-i.attribute.x-i.attribute.width),this.table.getFrozenColsWidth()+t!==this.bodyGroup.attribute.x&&(this.bodyGroup.setAttribute("x",this.table.getFrozenColsWidth()+t),this.colHeaderGroup.setAttribute("x",this.table.getFrozenColsWidth()+t),this.table.bottomFrozenRowCount>0&&this.bottomFrozenGroup.setAttribute("x",this.table.getFrozenColsWidth()+t),this.updateNextFrame())}afterScenegraphCreated(){this.isPivot||this.table.transpose?this.table.options.frozenColCount?this.component.setFrozenColumnShadow(this.table.frozenColCount-1):this.table.options.rightFrozenColCount?this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount):this.component.setFrozenColumnShadow(-1):(this.component.setFrozenColumnShadow(this.table.frozenColCount-1),this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount)),this.table.stateManager.checkFrozen(),this.updateContainer(),this.createFrameBorder(),this.updateBorderSizeAndPosition(),this.component.updateScrollBar(),jD(this.table),this.table.options.animationAppear&&function(t){if(!t.options.animationAppear)return;let e,i,r,n;!0===t.options.animationAppear?(e=500,i=0,r="one-by-one",n="column"):(e=t.options.animationAppear.duration??500,i=t.options.animationAppear.delay??0,r=t.options.animationAppear.type??"one-by-one",n=t.options.animationAppear.direction??"row");const{scenegraph:o,frozenColCount:s,frozenRowCount:a}=t,{colStart:l,colEnd:h,rowStart:c,rowEnd:d}=o.proxy;for(let t=0;t<=h;t++)for(let s=0;s<=d;s++){const a=o.highPerformanceGetCell(t,s);a&&"cell"===a.role&&a.forEachChildren((o=>{o.setAttribute("opacity",0),o.animate().wait("one-by-one"===r?("row"===n?s:t)*(e-i):i).to({opacity:1},e,"linear")}))}}(this.table),this.updateNextFrame()}dealWidthMode(){const t=this.table;if("adaptive"===t.widthMode){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0;for(let e=0;e<t.colCount;e++)if(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount){i+=t.getColWidth(e)}wD(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,!1,[],t,!0)}else if(t.autoFillWidth){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,r=0;for(let e=0;e<t.colCount;e++){const n=t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=n),r+=n}if(r<e&&r>i){wD(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,!1,[],t,!0)}}let e=0;this.bodyGroup.forEachChildrenSkipChild((t=>{e+=t.attribute.width})),this.bodyGroup.setAttribute("width",e);let i=0;this.colHeaderGroup.forEachChildrenSkipChild((t=>{i+=t.attribute.width})),this.colHeaderGroup.setAttribute("width",i);let r=0;this.rowHeaderGroup.forEachChildrenSkipChild((t=>{r+=t.attribute.width})),this.rowHeaderGroup.setAttribute("width",r);let n=0;this.cornerHeaderGroup.forEachChildrenSkipChild((t=>{n+=t.attribute.width})),this.cornerHeaderGroup.setAttribute("width",n),this.colHeaderGroup.setAttribute("x",this.cornerHeaderGroup.attribute.width),this.rowHeaderGroup.setAttribute("y",this.cornerHeaderGroup.attribute.height),this.bodyGroup.setAttributes({x:this.rowHeaderGroup.attribute.width,y:this.colHeaderGroup.attribute.height})}dealHeightMode(){const t=this.table;if("adaptive"===t.heightMode){t._clearRowRangeHeightsMap();const e=t.getRowsHeight(0,t.columnHeaderLevelCount-1),i=t.isPivotChart()?t.getBottomFrozenRowsHeight():0,r=t.tableNoFrameHeight-e-i,n=t.columnHeaderLevelCount,o=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount;let s=0;for(let e=n;e<o;e++)s+=t.getRowHeight(e);const a=r/s;for(let e=n;e<o;e++){let i;i=e===o-1?r-t.getRowsHeight(n,o-2):Math.round(t.getRowHeight(e)*a),this.setRowHeight(e,i)}}else if(t.autoFillHeight){t._clearRowRangeHeightsMap();const e=t.tableNoFrameHeight;let i=0,r=0;for(let e=0;e<t.rowCount;e++){const n=t.getRowHeight(e);(e<t.columnHeaderLevelCount||t.isPivotChart()&&e>=t.rowCount-t.bottomFrozenRowCount)&&(r+=n),i+=n}if((this._dealAutoFillHeightOriginRowsHeight??i)<e&&i-r>0){const n=t.columnHeaderLevelCount,o=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount,s=(e-r)/(i-r);for(let i=n;i<o;i++){let a;a=i===o-1?e-r-t.getRowsHeight(n,o-2):Math.round(t.getRowHeight(i)*s),this.setRowHeight(i,a)}}}}dealFrozen(){!function(t){if(t.table.frozenColCount>t.table.rowHeaderLevelCount){t.rowHeaderGroup.setAttribute("height",t.bodyGroup.attribute.height),t.rowHeaderGroup.setAttribute("y",t.bodyGroup.attribute.y),t.cornerHeaderGroup.setAttribute("height",t.colHeaderGroup.attribute.height);for(let e=0;e<t.table.frozenColCount-t.table.rowHeaderLevelCount;e++)lW(t),hW(t),uW(t)}else if(t.table.frozenColCount<t.table.rowHeaderLevelCount){t.bodyGroup.setAttribute("height",t.rowHeaderGroup.attribute.height),t.bodyGroup.setAttribute("y",t.rowHeaderGroup.attribute.y),t.colHeaderGroup.setAttribute("height",t.cornerHeaderGroup.attribute.height);for(let e=0;e<t.table.rowHeaderLevelCount-t.table.frozenColCount;e++)cW(t),dW(t),gW(t)}t.bodyGroup.setAttribute("x",t.rowHeaderGroup.attribute.width),t.colHeaderGroup.setAttribute("x",t.cornerHeaderGroup.attribute.width),t.updateContainer(),t.updateBorderSizeAndPosition(),t.isPivot||t.table.transpose?t.table.options.frozenColCount?t.component.setFrozenColumnShadow(t.table.frozenColCount-1):t.table.options.frozenColCount&&t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount):(t.component.setFrozenColumnShadow(t.table.frozenColCount-1),t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount)),t.hasFrozen=!0,t.frozenColCount=t.table.frozenColCount,t.frozenRowCount=t.colHeaderGroup.firstChild?.childrenCount??0}(this)}resetFrozen(){!function(t){if(t.frozenColCount>t.table.frozenColCount){t.bodyGroup.setAttribute("height",t.rowHeaderGroup.attribute.height),t.bodyGroup.setAttribute("y",t.rowHeaderGroup.attribute.y),t.colHeaderGroup.setAttribute("height",t.cornerHeaderGroup.attribute.height);for(let e=0;e<t.frozenColCount-t.table.frozenColCount;e++)cW(t),dW(t),gW(t)}else if(t.frozenColCount<t.table.frozenColCount){t.rowHeaderGroup.setAttribute("height",t.bodyGroup.attribute.height),t.rowHeaderGroup.setAttribute("y",t.bodyGroup.attribute.y),t.cornerHeaderGroup.setAttribute("height",t.colHeaderGroup.attribute.height);for(let e=0;e<t.table.frozenColCount-t.frozenColCount;e++)lW(t),hW(t),uW(t)}t.deleteAllSelectBorder(),t.table.stateManager.select.ranges.forEach((e=>{t.updateCellSelectBorder(e)})),t.frozenColCount=t.table.frozenColCount,t.frozenRowCount=t.colHeaderGroup.firstChild?.childrenCount??0,t.proxy.colStart=t.table.frozenColCount,t.bodyGroup.setAttribute("x",t.rowHeaderGroup.attribute.width),t.colHeaderGroup.setAttribute("x",t.cornerHeaderGroup.attribute.width),t.updateContainer(),t.updateBorderSizeAndPosition(),t.isPivot||t.table.transpose?t.table.options.frozenColCount?t.component.setFrozenColumnShadow(t.table.frozenColCount-1):t.table.options.rightFrozenColCount&&t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount):(t.component.setFrozenColumnShadow(t.table.frozenColCount-1),t.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount)),t.hasFrozen=!0}(this)}updateCellLayoutWidthCertainWidth(t,e,i){const r=t.attribute.width;let n=!1;return t.forEachChildren(((t,o)=>{o+=e;const s=bH(this.table,i,o);s?t=this.getCell(s.start.col,s.start.row):t.setAttribute("width",r);const a=II(UO("padding",this.table._getCellStyle(i,o),i,o,this.table)),l=t.getChildByName("text");let h=0,c=0;if(l)h=l.AABBBounds.height()+(a[0]+a[2]),l.setAttribute("maxLineWidth",r-(a[1]+a[3])),c=l.AABBBounds.height()+(a[0]+a[2]);else{const e=t.getChildAt(1);h=e.AABBBounds.height()+(a[0]+a[2]),e._cellWidth=r-(a[1]+a[3]),e.layout(),c=e.AABBBounds.height()+(a[0]+a[2])}const d=this.table.getRowHeight(o);t.attribute.height!==c&&(t.setAttribute("height",c),(d===h||c>d)&&(n=!0))})),n}updateHeaderPosition(t,e,i,r,n){!function(t,e,i,r,n,o){const s=o.scenegraph;for(let i=t;i<=e;i++){const t=o.getColWidth(i),e=o.scenegraph.getColGroup(i,!0),r=o.scenegraph.getColGroup(i),n=o.scenegraph.getColGroupInBottom(i),s=o.scenegraph.getColGroupInLeftBottomCorner(i),a=o.scenegraph.getColGroupInRightBottomCorner(i);e&&(e.setAttribute("width",t),e.forEachChildren((e=>{e.setAttribute("width",t)}))),r&&(r.setAttribute("width",t),r.forEachChildren((e=>{e.setAttribute("width",t)}))),n&&(n.setAttribute("width",t),n.forEachChildren((e=>{e.setAttribute("width",t)}))),a&&(a.setAttribute("width",t),a.forEachChildren((e=>{e.setAttribute("width",t)}))),s&&(s.setAttribute("width",t),s.forEachChildren((e=>{e.setAttribute("width",t)})))}if(s.updateContainer(),"column"===n)for(let i=t;i<=e;i++){const t=o.scenegraph.getColGroup(i);t?.setAttribute("chartInstance",void 0);for(let t=0;t<=o.frozenRowCount-1;t++)s.updateCellContent(i,t);for(let t=s.bodyRowStart;t<=s.bodyRowEnd;t++)s.updateCellContent(i,t);for(let t=o.rowCount-o.bottomFrozenRowCount;t<=o.rowCount-1;t++)s.updateCellContent(i,t)}else{for(let t=0;t<=o.frozenColCount-1;t++){const e=o.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}for(let t=s.bodyColStart;t<=s.bodyColEnd;t++){const e=o.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}for(let t=o.colCount-o.rightFrozenColCount;t<=o.colCount-1;t++){const e=o.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}}}(t,e,i,r,n,this.table)}updateContainerAttrWidthAndX(){const t=yW(this.cornerHeaderGroup,0),e=yW(this.rowHeaderGroup,0),i=this.colHeaderGroup.hasChildNodes()&&this.colHeaderGroup.firstChild?yW(this.colHeaderGroup,this.colHeaderGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.colHeaderGroup.firstChild.col-1):0):0,r=this.bodyGroup.hasChildNodes()&&this.bodyGroup.firstChild?yW(this.bodyGroup,this.bodyGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bodyGroup.firstChild.col-1):0):0,n=yW(this.rightFrozenGroup,0);this.bottomFrozenGroup.hasChildNodes()&&this.bottomFrozenGroup.firstChild&&yW(this.bottomFrozenGroup,this.bottomFrozenGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bottomFrozenGroup.firstChild.col-1):0),yW(this.leftBottomCornerGroup,0),yW(this.rightTopCornerGroup,0),yW(this.rightBottomCornerGroup,0),this.cornerHeaderGroup.setDeltaWidth(t-this.cornerHeaderGroup.attribute.width),this.leftBottomCornerGroup.setDeltaWidth(t-this.leftBottomCornerGroup.attribute.width),this.colHeaderGroup.setDeltaWidth(i-this.colHeaderGroup.attribute.width),this.rowHeaderGroup.setDeltaWidth(e-this.rowHeaderGroup.attribute.width),this.bottomFrozenGroup.setDeltaWidth(i-this.bottomFrozenGroup.attribute.width),this.rightFrozenGroup.setDeltaWidth(n-this.rightFrozenGroup.attribute.width),this.rightTopCornerGroup.setDeltaWidth(n-this.rightTopCornerGroup.attribute.width),this.rightBottomCornerGroup.setDeltaWidth(n-this.rightBottomCornerGroup.attribute.width),this.bodyGroup.setDeltaWidth(r-this.bodyGroup.attribute.width),this.colHeaderGroup.setAttribute("x",this.cornerHeaderGroup.attribute.width),this.bottomFrozenGroup.setAttribute("x",this.table.getFrozenColsWidth()),this.bodyGroup.setAttribute("x",this.rowHeaderGroup.attribute.width)}updateContainer(t=!1){t?this._needUpdateContainer||(this._needUpdateContainer=!0,setTimeout((()=>{this.updateContainerSync()}),0)):(this._needUpdateContainer=!0,this.updateContainerSync())}updateContainerSync(){this._needUpdateContainer&&(this._needUpdateContainer=!1,this.updateContainerAttrWidthAndX(),this.updateTableSize(),this.component.updateScrollBar(),this.updateDomContainer(),this.updateNextFrame())}updateCellContentWhileResize(t,e){const i=this.table.getBodyColumnType(t,e),r=this.getCell(t,e);"image"!==i&&"video"!==i||XO(r,t,e,this.table)}createFrameBorder(){this.updateTableSize();const t=!this.isPivot&&!this.table.internalProps.transpose;Pz(this.bodyGroup,this.table.theme.bodyStyle.frameStyle,this.bodyGroup.role,t?[!0,!0,!0,!1]:void 0),Pz(this.rowHeaderGroup,this.isPivot||this.table.internalProps.transpose?this.table.theme.rowHeaderStyle.frameStyle:this.table.theme.bodyStyle.frameStyle,this.rowHeaderGroup.role,t?[!0,!1,!0,!0]:void 0),Pz(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle,this.colHeaderGroup.role,t?[!0,!0,!0,!1]:void 0),Pz(this.cornerHeaderGroup,this.isPivot?this.table.theme.cornerHeaderStyle.frameStyle:this.table.theme.headerStyle.frameStyle,this.cornerHeaderGroup.role,t?[!0,!1,!0,!0]:void 0),Pz(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0)}getResizeColAt(t,e,i,r=8){let n;if(!i){const i=this.table.getDrawRange();return e>=i.top&&e<=i.bottom?(n=this.table.getCellAt(t-r,e),n):{col:-1,row:-1}}return t<i.globalAABBBounds.x1+r?n={col:i.col-1,row:i.row,x:i.globalAABBBounds.x1}:i.globalAABBBounds.x2-r<t&&(n={col:i.col,row:i.row,x:i.globalAABBBounds.x2}),n&&this.table.rightFrozenColCount>0&&n.col===this.table.colCount-this.table.rightFrozenColCount-1&&this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()+this.table.scrollLeft<this.bodyGroup.attribute.width&&(n.col=n.col+1,n.rightFrozen=!0),n||{col:-1,row:-1}}getResizeRowAt(t,e,i,r=8){if(i){let t;if(e<i.globalAABBBounds.y1+r?t={col:i.col,row:i.row-1,y:i.globalAABBBounds.y1}:i.globalAABBBounds.y2-r<e&&(t={col:i.col,row:i.row,y:i.globalAABBBounds.y2}),t&&this.table.bottomFrozenRowCount>0&&t.row===this.table.rowCount-this.table.bottomFrozenRowCount-1&&this.table.tableNoFrameHeight-this.table.getFrozenRowsHeight()-this.table.getBottomFrozenRowsHeight()+this.table.scrollTop<this.bodyGroup.attribute.height&&(t.row=t.row+1,t.bottomFrozen=!0),t)return t}else;return{col:-1,row:-1}}updateFrozen(){this.clear||(this.resetFrozen(),this.component.updateScrollBar())}dealWidthRightFrozen(t){this.clear?this.table.internalProps.rightFrozenColCount=t:function(t,e){const{table:i,proxy:r,rightTopCornerGroup:n,rightFrozenGroup:o,rightBottomCornerGroup:s,bottomFrozenGroup:a,bodyGroup:l,colHeaderGroup:h}=e,c=e.table.rightFrozenColCount;if(t>c){for(let r=i.colCount-c-1;r>=i.colCount-t;r--)pW(o,e.getColGroup(r),o.firstChild),pW(n,e.getColGroup(r,!0),n.firstChild),pW(s,e.getColGroupInBottom(r),s.firstChild);let r=0;o.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,s.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width}))}else if(t<c){for(let r=i.colCount-c;r<i.colCount-t;r++){const t=e.getColGroup(r);t.setAttribute("x",l.lastChild.attribute.x+i.getColWidth(l.lastChild.col)),l.appendChild(t);const n=e.getColGroupInRightTopCorner(r);n.setAttribute("x",h.lastChild.attribute.x+i.getColWidth(h.lastChild.col)),h.appendChild(n);const o=e.getColGroupInRightBottomCorner(r);o.setAttribute("x",a.lastChild.attribute.x+i.getColWidth(a.lastChild.col)),a.appendChild(o)}let r=0;o.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,s.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width}))}o.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),n.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),s.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),i.internalProps.rightFrozenColCount=t,e.updateContainer(),e.component.updateScrollBar(),e.updateNextFrame()}(t,this)}dealWidthBottomFrozen(t){this.clear?this.table.internalProps.bottomFrozenRowCount=t:function(t,e){const{table:i,proxy:r,bottomFrozenGroup:n,leftBottomCornerGroup:o,rightBottomCornerGroup:s}=e;n.childrenCount||(r.table.isPivotChart()||(MD(o,0,0,0,i.frozenColCount-1,0,-1,"rowHeader",i),MD(s,0,0,i.colCount-i.rightFrozenColCount,i.colCount-1,0,-1,"body",i)),MD(n,0,0,r.colStart,r.colEnd,0,-1,"body",i));const a=e.table.bottomFrozenRowCount;if(t>a){for(let r=0;r<i.frozenColCount;r++){const n=e.getColGroupInLeftBottomCorner(r);for(let o=i.rowCount-a-1;o>=i.rowCount-t;o--)pW(n,e.getCell(r,o,!0),n.firstChild);let o=0;n.forEachChildren((t=>{t.setAttribute("y",o),o+=i.getRowHeight(t.row)}))}for(let n=r.colStart;n<=r.colEnd;n++){const r=e.getColGroupInBottom(n);for(let o=i.rowCount-a-1;o>=i.rowCount-t;o--)pW(r,e.getCell(n,o,!0),r.firstChild);let o=0;r.forEachChildren((t=>{t.setAttribute("y",o),o+=i.getRowHeight(t.row)}))}if(i.rightFrozenColCount>0)for(let r=i.colCount-i.rightFrozenColCount;r<i.colCount;r++){const n=e.getColGroupInRightBottomCorner(r);for(let o=i.rowCount-a-1;o>=i.rowCount-t;o--)pW(n,e.getCell(r,o,!0),n.firstChild);let o=0;n.forEachChildren((t=>{t.setAttribute("y",o),o+=i.getRowHeight(t.row)}))}}else if(t<a){for(let r=0;r<i.rowHeaderLevelCount;r++){const n=e.getColGroup(r);for(let o=i.rowCount-a;o<i.rowCount-t;o++){const t=e.getCell(r,o,!0);t.setAttribute("y",n.lastChild.attribute.y+i.getRowHeight(n.lastChild.row)),n.appendChild(t)}const o=e.getColGroupInLeftBottomCorner(r);let s=0;o.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}for(let n=r.colStart;n<=r.colEnd;n++){const r=e.getColGroup(n);for(let o=i.rowCount-a;o<i.rowCount-t;o++){const t=e.getCell(n,o,!0);t.setAttribute("y",r.lastChild.attribute.y+i.getRowHeight(r.lastChild.row)),r.appendChild(t)}const o=e.getColGroupInBottom(n);let s=0;o.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}if(i.rightFrozenColCount>0)for(let r=i.colCount-i.rightFrozenColCount;r<i.colCount;r++){const n=e.getColGroup(r);for(let o=i.rowCount-a;o<i.rowCount-t;o++){const t=e.getCell(r,o,!0);t.setAttribute("y",n.lastChild.attribute.y+i.getRowHeight(n.lastChild.row)),n.appendChild(t)}const o=e.getColGroupInRightBottomCorner(r);let s=0;o.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}}n.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),o.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),s.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),i.internalProps.bottomFrozenRowCount=t,e.updateContainer(),e.component.updateScrollBar(),e.updateNextFrame()}(t,this)}updateBorderSizeAndPosition(){this.bodyGroup.border&&(this.bodyGroup.appendChild(this.bodyGroup.border),Lz(this.bodyGroup),this.rowHeaderGroup.attribute.width,kz(this.bodyGroup,this.table.theme.bodyStyle.frameStyle)),this.colHeaderGroup.border&&(this.colHeaderGroup.appendChild(this.colHeaderGroup.border),Lz(this.colHeaderGroup),this.cornerHeaderGroup.attribute.width,kz(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle)),this.rowHeaderGroup.border&&(this.rowHeaderGroup.appendChild(this.rowHeaderGroup.border),Lz(this.rowHeaderGroup)),this.cornerHeaderGroup.border&&(this.cornerHeaderGroup.appendChild(this.cornerHeaderGroup.border),Lz(this.cornerHeaderGroup)),function(t){if(!t.theme.frameStyle.cornerRadius)return;const e=t.theme.frameStyle.cornerRadius,{cornerHeaderGroup:i,colHeaderGroup:r,rowHeaderGroup:n,bodyGroup:o,rightTopCornerGroup:s,leftBottomCornerGroup:a,rightBottomCornerGroup:l,rightFrozenGroup:h,bottomFrozenGroup:c}=t.scenegraph;i.setAttribute("cornerRadius",0),r.setAttribute("cornerRadius",0),n.setAttribute("cornerRadius",0),o.setAttribute("cornerRadius",0),s.setAttribute("cornerRadius",0),a.setAttribute("cornerRadius",0),l.setAttribute("cornerRadius",0),h.setAttribute("cornerRadius",0),c.setAttribute("cornerRadius",0),i.attribute.width>0&&i.attribute.height>0?Hz(i,[e,0,0,0]):r.attribute.height>0?Hz(r,[e,0,0,0]):n.attribute.width>0?Hz(n,[e,0,0,0]):Hz(o,[e,0,0,0]),a.attribute.width>0&&a.attribute.height>0?Hz(a,[0,0,0,e]):c.attribute.height>0?Hz(c,[0,0,0,e]):n.attribute.width>0?Hz(n,[0,0,0,e]):Hz(o,[0,0,0,e]),s.attribute.width>0&&s.attribute.height>0?Hz(s,[0,e,0,0]):r.attribute.height>0?Hz(r,[0,e,0,0]):h.attribute.width>0?Hz(h,[0,e,0,0]):Hz(o,[0,e,0,0]),l.attribute.width>0&&l.attribute.height>0?Hz(l,[0,0,e,0]):h.attribute.width>0?Hz(h,[0,0,e,0]):c.attribute.height>0?Hz(c,[0,0,e,0]):Hz(o,[0,0,e,0])}(this.table)}sortCell(){this.isPivot||(this.table.transpose?this.proxy.sortCellHorizontal():this.proxy.sortCellVertical())}getCellOverflowText(t,e){const i=this.getCell(t,e).getChildByName("text",!0);if(i&&"text"===i.type){if(i.attribute.moreThanMaxCharacters)return this.table.getCellValue(t,e);const r=nt(i.attribute.text)?i.attribute.text.join(""):i.attribute.text;let n="";if(rt(i.cache.clipedText)?n=i.cache.clipedText:i.cache.layoutData?.lines?.forEach((t=>{n+=t.str})),n!==r)return this.table.getCellValue(t,e)}else if(i&&"richtext"===i.type){const r=i;if(r.attribute.ellipsis&&r._frameCache&&r.attribute.height<r._frameCache.actualHeight)return r.attribute.textConfig.find((t=>t.text)),this.table.getCellValue(t,e)}return null}updateDrill(t,e,i,r,n){this.component.drillIcon.update(t,e,i,r,n,this)}updateCellContent(t,e){if(!this.clear)return SF(t,e,this.table)}setPixelRatio(t){this.stage.disableDirtyBounds(),this.stage.window.setDpr(t),this.stage.render(),this.stage.enableDirtyBounds()}updateRow(t,e,i=[]){this.table.internalProps.layoutMap.clearCellRangeMap(),this.table.internalProps.useOneRowHeightFillAll=!1;const r=dL(e.map((t=>t.row))).sort(((t,e)=>t-e)),n=dL(i.map((t=>t.row))).sort(((t,e)=>t-e)),o=this.table.getAllRowsHeight()-[...r,...n].reduce(((t,e)=>t+this.table.getRowHeight(e)),0)<=this.table.tableNoFrameHeight;if(rW(t,e,i,this.table),this.recalculateColWidths(),"adaptive"===this.table.heightMode||this.table.autoFillHeight&&(this.table.getAllRowsHeight()<=this.table.tableNoFrameHeight||o))this.table.scenegraph.recalculateRowHeights();else if("autoHeight"===this.table.heightMode)for(let t=0;t<n.length;t++){const e=n[t],i=this.table.getRowHeight(e),r=dz(e,0,this.table.colCount-1,this.table);(e>=this.proxy.rowStart&&e<=this.proxy.rowEnd||e>=this.table.rowCount-this.table.bottomFrozenRowCount&&e<=this.table.rowCount-1)&&this.table.scenegraph.updateRowHeight(e,r-i)}this.table.stateManager.checkFrozen(),this.isPivot||this.table.transpose?this.table.options.frozenColCount?this.component.setFrozenColumnShadow(this.table.frozenColCount-1):this.table.options.rightFrozenColCount&&this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount):(this.component.setFrozenColumnShadow(this.table.frozenColCount-1),this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount)),this.component.updateScrollBar(),this.updateNextFrame()}updateCol(t,e,i=[]){SW(t,e,i,this.table),this.recalculateColWidths(),this.recalculateRowHeights(),this.table.stateManager.checkFrozen(),this.isPivot||this.table.transpose?this.table.options.frozenColCount?this.component.setFrozenColumnShadow(this.table.frozenColCount-1):this.table.options.rightFrozenColCount&&this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount):(this.component.setFrozenColumnShadow(this.table.frozenColCount-1),this.component.setRightFrozenColumnShadow(this.table.colCount-this.table.rightFrozenColCount)),this.component.updateScrollBar(),this.updateNextFrame()}getColumnGroupX(t){return t<this.table.rowHeaderLevelCount?this.table.getColsWidth(0,t-1):t<this.table.colCount-this.table.rightFrozenColCount?this.table.getColsWidth(this.table.rowHeaderLevelCount,t-1):t<this.table.colCount?this.table.getColsWidth(this.table.colCount-this.table.bottomFrozenRowCount,t-1):0}getCellGroupY(t){return t<this.table.columnHeaderLevelCount?this.table.getRowsHeight(0,t-1):t<this.table.rowCount-this.table.bottomFrozenRowCount?this.table.getRowsHeight(this.table.columnHeaderLevelCount,t-1):t<this.table.rowCount?this.table.getRowsHeight(this.table.rowCount-this.table.bottomFrozenRowCount,t-1):0}getCellGroupX(t){return t<this.table.rowHeaderLevelCount?this.table.getColsWidth(0,t-1):t<this.table.colCount-this.table.rightFrozenColCount?this.table.getColsWidth(this.table.rowHeaderLevelCount,t-1):t<this.table.colCount?this.table.getColsWidth(this.table.colCount-this.table.rightFrozenColCount,t-1):0}updateDomContainer(){const{headerDomContainer:t,bodyDomContainer:e}=this.table.internalProps;t&&(t.style.width=`${t.parentElement?.offsetWidth??0}px`,t.style.height=`${this.table.getFrozenRowsHeight()}px`),e&&(e.style.width=`${e.parentElement?.offsetWidth??0}px`,e.style.height=`${e.parentElement?.offsetHeight??0-this.table.getFrozenRowsHeight()}px`,e.style.top=`${this.table.getFrozenRowsHeight()}px`)}}function BW(t,e,i){const r=t.highPerformanceGetCell(e,i);if("cell"===r.role&&Z(r.mergeStartCol)&&Z(r.mergeStartRow)&&Z(r.mergeEndCol)&&Z(r.mergeEndRow)){const{colStart:e,colEnd:i,rowStart:n,rowEnd:o}=bz(r,t);for(let r=e;r<=i;r++)for(let e=n;e<=o;e++){t.highPerformanceGetCell(r,e).addUpdateBoundTag()}}else r.addUpdateBoundTag()}function PW(t,e,i,r,n){const o=t.table;for(let i=0;i<o.columnHeaderLevelCount;i++)BW(t,e,i);const s=t.getColGroup(e);return s?.addUpdateBoundTag(),!0}function kW(t,e,i,r,n,o){const s=t.table;for(let i=0;i<s.columnHeaderLevelCount;i++)BW(t,e,i);const a=t.getColGroup(e);return a?.addUpdateBoundTag(),!0}function EW(t,e,i,r,n){const o=t.table;for(let e=0;e<o.colCount;e++)BW(t,e,i);return!0}function LW(t,e,i,r,n,o){const s=t.table;for(let e=0;e<s.colCount;e++)BW(t,e,i);return!0}function HW(t,e,i){const{table:r}=t,{scenegraph:n}=r,{highlightScope:o,singleStyle:s,disableHeader:a,cellPos:l,cellPosContainHeader:h}=t.hover,c=l.col,d=l.row;if(o===mE.none||a&&(h.col!==e||h.row!==i)){const t=h.col,r=h.row;n.hideHoverIcon(t,r),n.showHoverIcon(e,i),h.col=e,h.row=i}if((a&&r.isHeader(e,i)||o===mE.none)&&(e=-1,i=-1),c===e&&d===i)return;n.deactivateChart(c,d),n.activateChart(e,i);let u=!1;const{ranges:g,highlightScope:p}=t.select;if(-1!==c&&-1!==d&&(u=function(t,e,i,r,n,o,s){let a=!1;o===mE.single?a=!!function(t,e,i,r,n){return BW(t,e,i),!0}(t,e,i)||a:o===mE.row?a=!!EW(t,0,i)||a:o===mE.column?a=!!PW(t,e)||a:o===mE.cross&&(a=!!EW(t,0,i)||a,a=!!PW(t,e)||a);return a}(n,c,d,0,0,o),a||n.hideHoverIcon(c,d)),-1===e||-1===i)return l.col=-1,l.row=-1,void(!u||c===e&&d===i||t.table.scenegraph.updateNextFrame());o===mE.single?u=!!function(t,e,i,r,n){return BW(t,e,i),!0}(n,e,i)||u:o===mE.row?u=!!LW(n,0,i)||u:o===mE.column?u=!!kW(n,e)||u:o===mE.cross&&(u=!!LW(n,0,i)||u,u=!!kW(n,e)||u),o===mE.none||a||n.showHoverIcon(e,i),l.col=e,l.row=i,u&&t.table.scenegraph.updateNextFrame()}function IW(t,e,i,r){let n,o=null,s=!1;if(Array.isArray(i.sortState))for(let r=0;r<i.sortState.length&&(n=i.sortState[r],n&&(o=i._getHeaderCellBySortState(n)),o&&(s=OW(t,e,o.col,o.row,i)),!s);r++);else n=i.sortState,n&&(o=i._getHeaderCellBySortState(n)),o&&(s=OW(t,e,o.col,o.row,i));const a=i.getHeaderDefine(t,e);n&&s&&a?.sort?n.order="asc"===n.order?"desc":"desc"===n.order?"normal":"asc":a?.sort?n={field:i.getHeaderField(t,e),order:"asc"}:s&&a?.showSort||(n={field:i.getHeaderField(t,e),order:"normal"}),n.event=r;if(i.fireListeners(IL.SORT_CLICK,n).includes(!1))return;i.internalProps.sortState=n,i.stateManager.setSortState(n),a?.sort&&function(t,e,i){const r=e.internalProps.layoutMap.headerObjects.find((e=>e&&e.field===t.field));if(!r)return;const{field:n}=r;if(null===n)return;"function"==typeof i.sort?e.dataSource.sort(n,t.order||"asc",i.sort):e.dataSource.sort(n,t.order||"asc",hL)}(n,i,a),i.internalProps.useOneRowHeightFillAll=!1,i.internalProps.layoutMap.clearCellRangeMap(),i.scenegraph.sortCell();const l=!!i.stateManager.select.ranges?.length;i.stateManager.updateSelectPos(-1,-1),i.stateManager.endSelectCells(!0,l)}function OW(t,e,i,r,n){return n._getLayoutCellId(t,e)===n._getLayoutCellId(i,r)}const FW=wL(IL,{PIVOT_SORT_CLICK:"pivot_sort_click",DRILLMENU_CLICK:"drillmenu_click"}),zW=wL(IL,{VCHART_EVENT_TYPE:"vchart_event_type"});function DW(t,e,i,r,n){for(let i=t;i<=e;i++)n._clearColRangeWidthsMap(i);for(let t=i;t<=r;t++)n._clearRowRangeHeightsMap(t)}function WW(t){if(!t)return;const e=t.role?.startsWith("icon")?t:"richtext"===t.type?t._currentHoverIcon:void 0;return e?"richtext"===t.type?{icon:e,position:{left:t.globalAABBBounds.x1+e.globalAABBBounds.x1,right:t.globalAABBBounds.x1+e.globalAABBBounds.x2,top:t.globalAABBBounds.y1+e.globalAABBBounds.y1,bottom:t.globalAABBBounds.y1+e.globalAABBBounds.y2,width:e.globalAABBBounds.x2-e.globalAABBBounds.x1,height:e.globalAABBBounds.y2-e.globalAABBBounds.y1},type:"richtext-icon"}:{icon:e,position:{left:e.globalAABBBounds.x1,right:e.globalAABBBounds.x2,top:e.globalAABBBounds.y1,bottom:e.globalAABBBounds.y2,width:e.globalAABBBounds.x2-e.globalAABBBounds.x1,height:e.globalAABBBounds.y2-e.globalAABBBounds.y1},type:"icon"}:void 0}function NW(t,e){"adaptive"===e.table.widthMode&&e.columnResize.col<e.table.colCount-1?(e.table.scenegraph.updateColWidth(e.columnResize.col,t),e.table.scenegraph.updateColWidth(e.columnResize.col+1,-t),e.table.internalProps._widthResizedColMap.add(e.columnResize.col),e.table.internalProps._widthResizedColMap.add(e.columnResize.col+1)):(e.table.scenegraph.updateColWidth(e.columnResize.col,t),e.table.internalProps._widthResizedColMap.add(e.columnResize.col))}function GW(t,e){"adaptive"===e.table.heightMode&&e.rowResize.row<e.table.colCount-1?(e.table.scenegraph.updateRowHeight(e.rowResize.row,t),e.table.scenegraph.updateRowHeight(e.rowResize.row+1,-t),e.table.internalProps._heightResizedRowMap.add(e.rowResize.row),e.table.internalProps._heightResizedRowMap.add(e.rowResize.row+1)):(e.table.scenegraph.updateRowHeight(e.rowResize.row,t),e.table.internalProps._heightResizedRowMap.add(e.rowResize.row))}class jW{table;interactionState;select;fillHandle;hover;hoverIcon;residentHoverIcon;columnResize;rowResize;columnMove;menu;sort;frozen;scroll;tablePosition;drill;sparkLine;_clearVerticalScrollBar;_clearHorizontalScrollBar;fastScrolling=!1;checkedState=[];headerCheckedState={};_checkboxCellTypeFields=[];_headerCheckFuncs={};radioState={};resetInteractionState=FL((()=>{this.updateInteractionState(fE.default)}),100);constructor(t){this.table=t,this.initState(),this.updateVerticalScrollBar=this.updateVerticalScrollBar.bind(this),this.updateHorizontalScrollBar=this.updateHorizontalScrollBar.bind(this)}initState(){this._initState(),this.setHoverState(),this.setSelectState(),this.setFrozenState()}updateOptionSetState(){this._updateOptionSetState(),this.setHoverState(),this.setSelectState(),this.setFrozenState()}_updateOptionSetState(){this.interactionState=fE.default,this.hoverIcon={col:-1,row:-1,icon:null},this.columnResize={col:-1,x:0,resizing:!1},this.rowResize={row:-1,y:0,resizing:!1},this.columnMove={colSource:-1,colTarget:-1,rowSource:-1,rowTarget:-1,x:0,y:0,moving:!1},this.menu={x:-1,y:-1,isShow:!1,itemList:[],bounds:new Se,highlightIndex:-1,dropDownMenuHighlight:[]},this.sort={col:-1,row:-1,order:"normal"},this.frozen={col:-1},this.tablePosition={absoluteX:0,absoluteY:0},this.drill={col:-1,row:-1},this.sparkLine={col:-1,row:-1}}_initState(){this.interactionState=fE.default,this.select={highlightScope:mE.single,ranges:[],cellPos:{col:-1,row:-1},selecting:!1},this.fillHandle={isFilling:!1,startX:void 0,startY:void 0},this.hover={highlightScope:mE.single,cellPos:{col:-1,row:-1}},this.hoverIcon={col:-1,row:-1,icon:null},this.columnResize={col:-1,x:0,resizing:!1},this.rowResize={row:-1,y:0,resizing:!1},this.columnMove={colSource:-1,colTarget:-1,rowSource:-1,rowTarget:-1,x:0,y:0,moving:!1},this.menu={x:-1,y:-1,isShow:!1,itemList:[],bounds:new Se,highlightIndex:-1,dropDownMenuHighlight:[]},this.sort={col:-1,row:-1,order:"normal"},this.frozen={col:-1},this.scroll={horizontalBarPos:0,verticalBarPos:0},this.tablePosition={absoluteX:0,absoluteY:0},this.drill={col:-1,row:-1},this.sparkLine={col:-1,row:-1}}setHoverState(){const{highlightMode:t,disableHover:e,disableHeaderHover:i}=this.table.options.hover??{highlightMode:"cell"};e?this.hover.highlightScope=mE.none:"cross"===t?this.hover.highlightScope=mE.cross:"row"===t?this.hover.highlightScope=mE.row:"column"===t?this.hover.highlightScope=mE.column:"cell"===t&&(this.hover.highlightScope=mE.single),this.hover.singleStyle=!e,this.hover.disableHeader=i,(this.hover.highlightScope===mE.none||i)&&(this.hover.cellPosContainHeader={col:-1,row:-1})}setSelectState(){const{headerSelectMode:t,disableSelect:e,disableHeaderSelect:i,highlightMode:r}=Object.assign({},{headerSelectMode:"inline",disableSelect:!1,disableHeaderSelect:!1,highlightMode:"cell"},this.table.options.select);this.select.highlightScope=e?mE.none:"cross"===r?mE.cross:"row"===r?mE.row:"column"===r?mE.column:mE.single,this.select.singleStyle=!e,this.select.disableHeader=i,this.select.headerSelectMode=t}isSelected(t,e){let i=!1;return this.select.ranges.forEach((r=>{ML(r,t,e)&&(i=!0)})),i}setSortState(t){this.sort.field=t?.field,this.sort.order=t?.order}setFrozenState(){this.frozen.col=this.table.frozenColCount-1}updateInteractionState(t){if(this.interactionState===t)return;const e=this.interactionState;this.interactionState=t,e===fE.scrolling&&fE.default}updateHoverhighlightScope(t){this.hover.highlightScope!==t&&(this.hover.highlightScope=t)}updateHoverPos(t,e){HW(this,t,e)}updateSelectPos(t,e,i=!1,r=!1,n=!1,o=!1,s=!1){-1!==e&&-1!==e&&(this.select.selecting=!0),function(t,e,i,r,n,o,s=!1,a=!1){const{table:l,interactionState:h}=t,{scenegraph:c}=l,{highlightScope:d,disableHeader:u,cellPos:g}=t.select;if((u&&l.isHeader(e,i)||"none"===d)&&(e=-1,i=-1),-1!==e&&-1!==i&&!s)if(h===fE.grabing&&t.select.ranges.length>0){const r=t.select.ranges[t.select.ranges.length-1];e>r.start.col&&e>r.end.col&&l._makeVisibleCell(e+1,i),i>r.start.row&&i>r.end.row&&l._makeVisibleCell(e,i+1),e<r.start.col&&e<r.end.col&&l._makeVisibleCell(e-1,i),i<r.start.row&&i<r.end.row&&l._makeVisibleCell(e,i-1)}else l._makeVisibleCell(e,i);if(o){t.select.ranges=[],c.deleteAllSelectBorder();let e=0,i=0;const{disableHeaderSelect:r,disableRowSeriesNumberSelect:n}=l.options.keyboardOptions?.selectAllOnCtrlA||{};r&&(e=l.rowHeaderLevelCount,i=l.columnHeaderLevelCount),(n||r)&&l.options.rowSeriesNumber&&(e+=1),t.select.ranges.push({start:{col:e,row:i},end:{col:l.colCount-1,row:l.rowCount-1}});const o=t.select.ranges[t.select.ranges.length-1];c.updateCellSelectBorder(o,!1)}else if(-1===g.col||-1===g.row||-1!==e&&-1!==i)if(h!==fE.default||l.eventManager.isDraging||l.stateManager.isResizeCol()){if((h===fE.grabing||l.eventManager.isDraging)&&!l.stateManager.isResizeCol()){let r=!0;-1===g.col&&(g.col=e),-1===g.row&&(g.row=i),g.col=e,g.row=i;const n=t.select.ranges[t.select.ranges.length-1];if(n){if(l.internalProps.layoutMap.isSeriesNumberInBody(n.start.col,n.start.row))r=!1,n.end={col:l.colCount-1,row:i};else if(t.fillHandle.isFilling){if("top"===t.fillHandle.direction)if(i===t.fillHandle.beforeFillMinRow&&i===t.fillHandle.beforeFillMaxRow)n.start.row=n.end.row=i;else if(i<=t.fillHandle.beforeFillMinRow){if(n.start.row<n.end.row){const t=n.start.row;n.start.row=n.end.row,n.end.row=t}n.end.row=i}else i===t.fillHandle.beforeFillMaxRow&&(n.start.row>n.end.row?n.start.row=i:n.end.row=i);else if("bottom"===t.fillHandle.direction){if(i>=t.fillHandle.beforeFillMaxRow){if(n.start.row>n.end.row){const t=n.start.row;n.start.row=n.end.row,n.end.row=t}n.end.row=i}}else if("left"===t.fillHandle.direction)if(e===t.fillHandle.beforeFillMinCol&&e===t.fillHandle.beforeFillMaxCol)n.start.col=n.end.col=e;else if(e<=t.fillHandle.beforeFillMinCol){if(n.start.col<n.end.col){const t=n.start.col;n.start.col=n.end.col,n.end.col=t}n.end.col=e}else e===t.fillHandle.beforeFillMaxCol&&(n.start.col>n.end.col?n.start.col=e:n.end.col=e);else if("right"===t.fillHandle.direction&&e>=t.fillHandle.beforeFillMaxCol){if(n.start.col>n.end.col){const t=n.start.col;n.start.col=n.end.col,n.end.col=t}n.end.col=e}}else n.end={col:e,row:i},a&&(n.skipBodyMerge=!0);c.updateCellSelectBorder(n,r)}}}else{const o=t.select.ranges[t.select.ranges.length-1];if(r&&o){if(n||(g.col=e,g.row=i),"cell"!==t.select.headerSelectMode&&l.isColumnHeader(e,i)){const t=Math.min(o.start.col,o.end.col,e),r=Math.max(o.start.col,o.end.col,e),n=Math.min(o.start.row,o.end.row,i),s=l.rowCount-1;o.start={col:t,row:n},o.end={col:r,row:s}}else if("cell"!==t.select.headerSelectMode&&l.isRowHeader(e,i)){const t=Math.min(o.start.col,o.end.col,e),r=l.colCount-1,n=Math.min(o.start.row,o.end.row,i),s=Math.max(o.start.row,o.end.row,i);o.start={col:t,row:n},o.end={col:r,row:s}}else o.end={col:e,row:i};c.deleteLastSelectedRangeComponents(),c.updateCellSelectBorder(o)}else{let r=!0;if(-1===g.col||-1===g.row||n||(t.select.ranges=[],c.deleteAllSelectBorder()),"cell"!==t.select.headerSelectMode&&l.isColumnHeader(e,i)){const r=l.getCellRange(e,i);t.select.ranges.push({start:{col:r.start.col,row:i},end:{col:r.end.col,row:l.rowCount-1},skipBodyMerge:!0})}else if("cell"!==t.select.headerSelectMode&&l.isRowHeader(e,i)){const r=l.getCellRange(e,i);t.select.ranges.push({start:{col:e,row:r.start.row},end:{col:l.colCount-1,row:r.end.row},skipBodyMerge:!0})}else if(l.internalProps.layoutMap.isSeriesNumberInHeader(e,i))r=!1,t.select.ranges.push({start:{col:0,row:0},end:{col:l.colCount-1,row:l.rowCount-1},skipBodyMerge:!0});else if(l.internalProps.layoutMap.isSeriesNumberInBody(e,i))r=!1,t.select.ranges.push({start:{col:e,row:i},end:{col:l.colCount-1,row:i},skipBodyMerge:!0});else if(e>=0&&i>=0){const r=a?{start:{col:e,row:i},end:{col:e,row:i}}:l.getCellRange(e,i);t.select.ranges.push({start:{col:r.start.col,row:r.start.row},end:{col:r.end.col,row:r.end.row},skipBodyMerge:a||void 0})}g.col=e,g.row=i;const o=t.select.ranges?.[t.select.ranges.length-1];o&&c.updateCellSelectBorder(o,r)}}else g.col=-1,g.row=-1,t.select.ranges=[],c.deleteAllSelectBorder();c.updateNextFrame()}(this,t,e,i,r,n,o,s)}checkCellRangeInSelect(t,e){return function(t,e,i,r){for(let r=0;r<i.length;r++)if(RL(i[r],{start:t,end:e}))return!0;return!1}(t,e,this.select.ranges,this.select.highlightScope)}updateHoverIcon(t,e,i,r,n){if(this.residentHoverIcon?.icon&&i===this.residentHoverIcon?.icon)return;const o=WW(i);if(o)if("richtext-icon"===o.type){const i=o.icon;if(this.hoverIcon.icon&&this.hoverIcon.icon!==this.residentHoverIcon?.icon&&(this.table.scenegraph.setIconNormalStyle(this.hoverIcon.icon,this.hoverIcon.col,this.hoverIcon.row),this.hoverIcon.col=-1,this.hoverIcon.col=-1,this.hoverIcon.icon=null,this.table.scenegraph.updateNextFrame()),i.attribute.tooltip){const r={content:i.attribute.tooltip.title,referencePosition:{rect:o.position,placement:i.attribute.tooltip.placement},style:Object.assign({},this.table.internalProps.theme?.tooltipStyle,i.tooltip?.style,i.attribute?.tooltip?.style),disappearDelay:i.attribute.tooltip.disappearDelay};this.table.internalProps.tooltipHandler.isBinded(r)||this.table.showTooltip(t,e,r)}}else{const i=o.icon;i!==this.hoverIcon.icon&&(this.hoverIcon.icon&&this.hoverIcon.icon!==this.residentHoverIcon?.icon&&this.table.scenegraph.setIconNormalStyle(this.hoverIcon.icon,this.hoverIcon.col,this.hoverIcon.row),this.hoverIcon.col=t,this.hoverIcon.row=e,this.hoverIcon.icon=i,this.table.scenegraph.setIconHoverStyle(i,t,e,r),this.table.scenegraph.updateNextFrame())}else this.hoverIcon.icon&&this.hoverIcon.icon!==this.residentHoverIcon?.icon&&(this.table.scenegraph.setIconNormalStyle(this.hoverIcon.icon,this.hoverIcon.col,this.hoverIcon.row),this.hoverIcon.col=-1,this.hoverIcon.col=-1,this.hoverIcon.icon=null,this.table.scenegraph.updateNextFrame())}isResizeCol(){return this.columnResize.resizing}isResizeRow(){return this.rowResize.resizing}isFillHandle(){return this.fillHandle.isFilling}isSelecting(){return this.select.selecting}endSelectCells(t=!0,e=!0){if(this.select.selecting){if(this.select.selecting=!1,0===this.select.ranges.length)return;const e=this.select.ranges[this.select.ranges.length-1];let r=!1;for(let t=0;t<this.select.ranges.length-1;t++){const i=this.select.ranges[t];if(i&&i.start.col===e.start.col&&i.start.row===e.start.row&&i.end.col===e.end.col&&i.end.row===e.end.row){r=!0;break}}r?(this.select.ranges.pop(),(i=this.table.scenegraph).selectingRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),i.selectingRangeComponents=new Map,this.table.scenegraph.selectingRangeComponents.clear()):this.table.scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();const n=this.select.ranges[this.select.ranges.length-1].end.col,o=this.select.ranges[this.select.ranges.length-1].end.row;t&&this.table.fireListeners(IL.SELECTED_CELL,{ranges:this.select.ranges,col:n,row:o})}else e&&0===this.select.ranges.length&&this.table.fireListeners(IL.SELECTED_CLEAR,{});var i}endResizeCol(){setTimeout((()=>{this.columnResize.resizing=!1}),0),this.table.scenegraph.updateChartSize(this.columnResize.col),this.checkFrozen(),this.table.scenegraph.component.hideResizeCol(),this.table.scenegraph.updateNextFrame()}startResizeCol(t,e,i,r){this.columnResize.resizing=!0,this.columnResize.col=t,this.columnResize.x=e,this.columnResize.isRightFrozen=r,this.table.scenegraph.component.showResizeCol(t,i,r);const n=!!this.select.ranges?.length;this.updateSelectPos(-1,-1),this.endSelectCells(!0,n),this.table.scenegraph.updateNextFrame()}updateResizeCol(t,e){!function(t,e,i){t=Math.ceil(t),e=Math.ceil(e);let r=i.columnResize.isRightFrozen?i.columnResize.x-t:t-i.columnResize.x;if(Math.abs(r)<1)return;const n=i.table.getColWidth(i.columnResize.col);let o=n;o+=r;const s=i.table.getMinColWidth(i.columnResize.col),a=i.table.getMaxColWidth(i.columnResize.col);if(o<s||o>a){if(n===s||n===a)return;r=n-s>a-n?a-n:s-n}let l=i.table.getColWidth(i.columnResize.col)+r;if(l<i.table.internalProps.limitMinWidth&&(l=i.table.internalProps.limitMinWidth,r=l-i.table.getColWidth(i.columnResize.col)),"adaptive"===i.table.widthMode&&i.columnResize.col<i.table.colCount-1){const t=i.table.getColWidth(i.columnResize.col+1),e=i.table.getMinColWidth(i.columnResize.col+1),n=i.table.getMaxColWidth(i.columnResize.col+1);let o=t;if(o-=r,o<e||o>n){if(t===e||t===n)return;r=t-e>n-t?n-t:e-t}o-r<i.table.internalProps.limitMinWidth&&(r=o-i.table.internalProps.limitMinWidth)}r=Math.ceil(r),i.columnResize.col<i.table.rowHeaderLevelCount||i.columnResize.col>=i.table.colCount-i.table.rightFrozenColCount?NW(r,i):"indicator"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,n,o;if(i.indicatorsAsCol)r=i.getIndicatorKey(e.columnResize.col,e.table.columnHeaderLevelCount);else{const t=i.getCellHeaderPaths(e.columnResize.col,e.table.columnHeaderLevelCount-1),r=t.colHeaderPaths[t.colHeaderPaths.length-1];n=r.dimensionKey,o=r.value}for(let s=e.table.rowHeaderLevelCount;s<e.table.colCount-e.table.rightFrozenColCount;s++){const a=i.getIndicatorKey(s,e.table.columnHeaderLevelCount);if(i.indicatorsAsCol&&a===r)e.table.scenegraph.updateColWidth(s,t),e.table.internalProps._widthResizedColMap.add(s);else if(!i.indicatorsAsCol){const r=i.getCellHeaderPaths(s,e.table.columnHeaderLevelCount-1),a=r?.colHeaderPaths[r.colHeaderPaths.length-1];a&&n===a.dimensionKey&&o===a.value&&(e.table.scenegraph.updateColWidth(s,t),e.table.internalProps._widthResizedColMap.add(s))}}}(r,i):"indicatorGroup"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap,r=i.getCellHeaderPaths(e.columnResize.col,e.table.columnHeaderLevelCount),n=i.getHeadNodeByRowOrColDimensions(r.colHeaderPaths.slice(0,r.colHeaderPaths.length-1)),o=n.startInTotal+e.table.frozenColCount,s=n.startInTotal+e.table.frozenColCount+n.size-1,a=e.table.getColsWidth(o,s),l=t;for(let t=o;t<=s;t++){if(!(e.table.internalProps.transpose||e.table.isPivotTable()&&!i.indicatorsAsCol)){const r=i.getBody(t,e.table.columnHeaderLevelCount);if(r?.disableColumnResize)continue}let r=e.table.getColWidth(t)/a*l;r>0&&r<.5?r=.5:r<0&&r>=-.5&&(r=-.5),e.table.scenegraph.updateColWidth(t,r),e.table.internalProps._widthResizedColMap.add(t)}}(r,i):"all"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap;for(let r=e.table.frozenColCount;r<e.table.colCount-e.table.rightFrozenColCount;r++){if(!(e.table.internalProps.transpose||e.table.isPivotTable()&&!i.indicatorsAsCol)){const t=i.getBody(r,e.table.columnHeaderLevelCount);if(t?.disableColumnResize)continue}e.table.scenegraph.updateColWidth(r,t),e.table.internalProps._widthResizedColMap.add(r)}}(r,i):NW(r,i),i.columnResize.x=t,i.table.scenegraph.component.updateResizeCol(i.columnResize.col,e,i.columnResize.isRightFrozen),i.columnResize.col<i.table.frozenColCount&&!i.table.isPivotTable()&&!i.table.transpose?i.table.scenegraph.component.setFrozenColumnShadow(i.table.frozenColCount-1,i.columnResize.isRightFrozen):i.columnResize.col>=i.table.colCount-i.table.rightFrozenColCount&&!i.table.isPivotTable()&&!i.table.transpose?i.table.scenegraph.component.setRightFrozenColumnShadow(i.table.colCount-i.table.rightFrozenColCount):i.table.options.frozenColCount?i.table.scenegraph.component.setFrozenColumnShadow(i.table.frozenColCount-1):i.table.options.rightFrozenColCount&&i.table.scenegraph.component.setRightFrozenColumnShadow(i.table.colCount-i.table.rightFrozenColCount),i.table.scenegraph.updateNextFrame()}(t,e,this)}endResizeRow(){setTimeout((()=>{this.rowResize.resizing=!1}),0),this.table.scenegraph.updateChartSize(this.rowResize.row),this.table.scenegraph.component.hideResizeRow(),this.table.scenegraph.updateNextFrame()}startResizeRow(t,e,i,r){this.rowResize.resizing=!0,this.rowResize.row=t,this.rowResize.y=i,this.rowResize.isBottomFrozen=r,this.table.scenegraph.component.showResizeRow(t,e,r);const n=!!this.select.ranges?.length;this.updateSelectPos(-1,-1),this.endSelectCells(!0,n),this.table.scenegraph.updateNextFrame()}updateResizeRow(t,e){!function(t,e,i){t=Math.ceil(t),e=Math.ceil(e);let r=i.rowResize.isBottomFrozen?i.rowResize.y-e:e-i.rowResize.y;if(Math.abs(r)<1)return;i.table.getRowHeight(i.rowResize.row);let n=i.table.getRowHeight(i.rowResize.row)+r;if(n<i.table.internalProps.limitMinHeight&&(n=i.table.internalProps.limitMinHeight,r=n-i.table.getRowHeight(i.rowResize.row)),"adaptive"===i.table.heightMode&&i.rowResize.row<i.table.rowCount-1){let t=i.table.getRowHeight(i.rowResize.row+1);t-=r,t-r<i.table.internalProps.limitMinHeight&&(r=t-i.table.internalProps.limitMinHeight)}r=Math.ceil(r),i.rowResize.row<i.table.columnHeaderLevelCount||i.rowResize.row>=i.table.rowCount-i.table.bottomFrozenRowCount?GW(r,i):"indicator"===i.table.internalProps.rowResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,n,o;if(i.indicatorsAsCol){const t=i.getCellHeaderPaths(e.table.rowHeaderLevelCount-1,e.rowResize.row),r=t.rowHeaderPaths?.[t.rowHeaderPaths.length-1];n=r?.dimensionKey,o=r?.value}else r=i.getIndicatorKey(e.table.rowHeaderLevelCount,e.rowResize.row);for(let s=e.table.columnHeaderLevelCount;s<e.table.rowCount-e.table.bottomFrozenRowCount;s++){const a=i.getIndicatorKey(e.table.rowHeaderLevelCount,s);if(i.indicatorsAsCol||a!==r){if(i.indicatorsAsCol){const r=i.getCellHeaderPaths(e.table.rowHeaderLevelCount-1,s),a=r?.rowHeaderPaths?.[r.rowHeaderPaths.length-1];a&&n===a.dimensionKey&&o===a.value&&(e.table.scenegraph.updateRowHeight(s,t),e.table.internalProps._heightResizedRowMap.add(s))}}else e.table.scenegraph.updateRowHeight(s,t),e.table.internalProps._heightResizedRowMap.add(s)}}(r,i):"indicatorGroup"===i.table.internalProps.rowResizeType?function(t,e){const i=e.table.internalProps.layoutMap,r=i.getCellHeaderPaths(e.table.rowHeaderLevelCount,e.rowResize.row),n=i.getHeadNodeByRowOrColDimensions(r.rowHeaderPaths.slice(0,r.rowHeaderPaths.length-1)),o=n.startInTotal+e.table.frozenRowCount,s=n.startInTotal+e.table.frozenRowCount+n.size-1,a=e.table.getRowsHeight(o,s),l=t;for(let t=o;t<=s;t++){let i=e.table.getRowHeight(t)/a*l;i>0&&i<.5?i=.5:i<0&&i>=-.5&&(i=-.51),e.table.scenegraph.updateRowHeight(t,i),e.table.internalProps._heightResizedRowMap.add(t)}}(r,i):"all"===i.table.internalProps.rowResizeType?function(t,e){for(let i=e.table.frozenRowCount;i<e.table.rowCount-e.table.bottomFrozenRowCount;i++)e.table.scenegraph.updateRowHeight(i,t),e.table.internalProps._heightResizedRowMap.add(i)}(r,i):GW(r,i),i.rowResize.y=e,i.table.scenegraph.component.updateResizeRow(i.rowResize.row,t,i.rowResize.isBottomFrozen),i.table.scenegraph.updateNextFrame()}(t,e,this)}startFillSelect(t,e){this.fillHandle.isFilling=!0,this.fillHandle.startX=t,this.fillHandle.startY=e;const i=this.select.ranges[this.select.ranges.length-1];this.fillHandle.beforeFillMinCol=Math.min(i.start.col,i.end.col),this.fillHandle.beforeFillMinRow=Math.min(i.start.row,i.end.row),this.fillHandle.beforeFillMaxCol=Math.max(i.start.col,i.end.col),this.fillHandle.beforeFillMaxRow=Math.max(i.start.row,i.end.row),this.table.fireListeners(IL.MOUSEDOWN_FILL_HANDLE,{})}endFillSelect(){this.fillHandle.isFilling=!1,this.fillHandle.startX=void 0,this.fillHandle.startY=void 0,this.fillHandle.directionRow=void 0;const t=Math.min(this.select.ranges[0].start.col,this.select.ranges[0].end.col),e=Math.min(this.select.ranges[0].start.row,this.select.ranges[0].end.row),i=Math.max(this.select.ranges[0].start.col,this.select.ranges[0].end.col),r=Math.max(this.select.ranges[0].start.row,this.select.ranges[0].end.row);this.fillHandle.beforeFillMinCol===t&&this.fillHandle.beforeFillMinRow===e&&this.fillHandle.beforeFillMaxCol===i&&this.fillHandle.beforeFillMaxRow===r||this.table.eventManager.isDraging&&this.table.fireListeners(IL.DRAG_FILL_HANDLE_END,{direction:this.fillHandle.direction}),this.fillHandle.beforeFillMaxCol=void 0,this.fillHandle.beforeFillMaxRow=void 0,this.fillHandle.beforeFillMinCol=void 0,this.fillHandle.beforeFillMinRow=void 0}startMoveCol(t,e,i,r){!function(t,e,i,r,n){if(!("canMoveHeaderPosition"in n.table.internalProps.layoutMap))return;n.columnMove.moving=!0,n.columnMove.colSource=t,n.columnMove.rowSource=e,n.columnMove.x=i-n.table.tableX,n.columnMove.y=r-n.table.tableY;const o=n.table.getCellLocation(t,e),s="columnHeader"===o?n.columnMove.x:"rowHeader"===o||n.table.internalProps.layoutMap.isSeriesNumberInBody(t,e)?n.columnMove.y:0;n.table.scenegraph.component.showMoveCol(t,e,s);const a=!!n.select.ranges?.length;n.table.stateManager.updateSelectPos(-1,-1),n.table.stateManager.endSelectCells(!0,a),n.table.scenegraph.updateNextFrame()}(t,e,i,r,this)}updateMoveCol(t,e,i,r){!function(t,e,i,r,n){if(!("canMoveHeaderPosition"in n.table.internalProps.layoutMap))return;const o=function(t,e,i){const r=i.getCellRange(t.col,t.row);if(i.isColumnHeader(t.col,t.row)){const n=i.getCellRange(e.col,r.start.row);e.row>=i.columnHeaderLevelCount&&(e.row=i.columnHeaderLevelCount-1),e.col>=t.col?e.col=n.end.col:e.col=n.start.col}else if(i.isRowHeader(t.col,t.row)){const n=i.internalProps.layoutMap,o=i.getCellRange(r.start.col,e.row);if(e.col>=i.rowHeaderLevelCount+n.leftRowSeriesNumberColumnCount&&(e.col=i.rowHeaderLevelCount+n.leftRowSeriesNumberColumnCount-1),"tree"===n.rowHierarchyType){const r=n.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,o=n.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths;if(r.length<=o.length){const n=o[r.length-1];n&&(e.row>=t.row?e.row=n.startInTotal+n.size-1+i.columnHeaderLevelCount:e.row=n.startInTotal+i.columnHeaderLevelCount)}}else e.row>=t.row?e.row=o.end.row:e.row=o.start.row}return e}({col:n.columnMove.colSource,row:n.columnMove.rowSource},{col:t,row:e},n.table);let s,a,l,h;n.columnMove.x=i-n.table.tableX,n.columnMove.y=r-n.table.tableY,n.columnMove.colTarget=o.col,n.columnMove.rowTarget=o.row,n.table.internalProps.layoutMap.canMoveHeaderPosition({col:n.columnMove.colSource,row:n.columnMove.rowSource},{col:n.columnMove.colTarget,row:n.columnMove.rowTarget})?n.updateCursor("grabbing"):n.updateCursor("not-allowed");const c=n.table.getCellLocation(n.columnMove.colSource,n.columnMove.rowSource);"columnHeader"===c?(a=n.columnMove.x,s=n.table.isLeftFrozenColumn(t)?n.columnMove.colTarget>=n.columnMove.colSource?n.table.getColsWidth(0,n.columnMove.colTarget):n.table.getColsWidth(0,n.columnMove.colTarget-1):n.table.isRightFrozenColumn(t)?n.table.tableNoFrameWidth-n.table.getColsWidth(o.col+1,n.table.colCount-1):(n.columnMove.colTarget>=n.columnMove.colSource?n.table.getColsWidth(0,n.columnMove.colTarget):n.table.getColsWidth(0,n.columnMove.colTarget-1))-n.table.stateManager.scroll.horizontalBarPos):("rowHeader"===c||n.table.internalProps.layoutMap.isSeriesNumberInBody(t,e))&&(h=n.columnMove.y,l=n.table.isFrozenRow(e)?n.columnMove.rowTarget>=n.columnMove.rowSource?n.table.getRowsHeight(0,n.columnMove.rowTarget):n.table.getRowsHeight(0,n.columnMove.rowTarget-1):n.table.isBottomFrozenRow(e)?n.table.tableNoFrameHeight-n.table.getRowsHeight(o.row+1,n.table.rowCount-1):(n.columnMove.rowTarget>=n.columnMove.rowSource?n.table.getRowsHeight(0,n.columnMove.rowTarget):n.table.getRowsHeight(0,n.columnMove.rowTarget-1))-n.table.stateManager.scroll.verticalBarPos),n.table.scenegraph.component.updateMoveCol(a,s,h,l),n.table.scenegraph.updateNextFrame()}(t,e,i,r,this)}isMoveCol(){return this.columnMove.moving}endMoveCol(){!function(t){if("canMoveHeaderPosition"in t.table.internalProps.layoutMap&&t.columnMove.moving&&t.columnMove.colSource>=0&&t.columnMove.rowSource>=0&&t.columnMove.colTarget>=0&&t.columnMove.rowTarget>=0){const e=t.table.getCellRange(t.columnMove.colSource,t.columnMove.rowSource),i=t.table.getCellRange(t.columnMove.colTarget,t.columnMove.rowTarget),r=t.table._moveHeaderPosition({col:t.columnMove.colSource,row:t.columnMove.rowSource},{col:t.columnMove.colTarget,row:t.columnMove.rowTarget});if(r){t.table.internalProps.useOneRowHeightFillAll=!1,t.table.internalProps.layoutMap.clearCellRangeMap();const n=t.table.getCellRange(t.columnMove.colSource,t.columnMove.rowSource),o=t.table.getCellRange(t.columnMove.colTarget,t.columnMove.rowTarget),s=Math.min(n.start.col,o.start.col,e.start.col,i.start.col),a=Math.max(n.end.col,o.end.col,e.end.col,i.end.col),l=Math.min(n.start.row,o.start.row,e.start.row,i.start.row);let h=Math.max(n.end.row,o.end.row,e.end.row,i.end.row);"row"===r.moveType&&"tree"===t.table.internalProps.layoutMap.rowHierarchyType&&(h=r.targetIndex>r.sourceIndex?h+r.targetSize-1:h+r.sourceSize-1),!t.table.transpose&&t.table.internalProps.layoutMap.isSeriesNumberInBody(t.columnMove.colSource,t.columnMove.rowSource)&&(t.table.changeRecordOrder(r.sourceIndex,r.targetIndex),t.changeCheckboxAndRadioOrder(r.sourceIndex,r.targetIndex)),"column"===r.moveType?DW(s,a,0,-1,t.table):DW(0,-1,l,h,t.table),t.table.clearCellStyleCache(),t.table.internalProps.layoutMap.isSeriesNumberInBody(t.columnMove.colSource,t.columnMove.rowSource)?t.table.scenegraph.updateHeaderPosition(t.table.scenegraph.proxy.colStart,t.table.scenegraph.proxy.colEnd,t.table.scenegraph.proxy.rowStart,t.table.scenegraph.proxy.rowEnd,r.moveType):"column"===r.moveType?t.table.scenegraph.updateHeaderPosition(s,a,0,-1,r.moveType):t.table.scenegraph.updateHeaderPosition(0,-1,l,h,r.moveType),"adjustFrozenCount"===t.table.internalProps.frozenColDragHeaderMode&&t.table.isListTable()&&(t.table.isLeftFrozenColumn(t.columnMove.colTarget)&&!t.table.isLeftFrozenColumn(t.columnMove.colSource)?t.table.frozenColCount+=n.end.col-n.start.col+1:t.table.isLeftFrozenColumn(t.columnMove.colSource)&&!t.table.isLeftFrozenColumn(t.columnMove.colTarget)&&(t.table.frozenColCount-=n.end.col-n.start.col+1),t.table.isRightFrozenColumn(t.columnMove.colTarget)&&!t.table.isRightFrozenColumn(t.columnMove.colSource)?t.table.rightFrozenColCount+=n.end.col-n.start.col+1:t.table.isRightFrozenColumn(t.columnMove.colSource)&&!t.table.isRightFrozenColumn(t.columnMove.colTarget)&&(t.table.rightFrozenColCount-=n.end.col-n.start.col+1))}t.updateCursor()}setTimeout((()=>{t.columnMove.moving=!1,delete t.columnMove.colSource,delete t.columnMove.rowSource,delete t.columnMove.colTarget,delete t.columnMove.rowTarget}),0),t.table.scenegraph.component.hideMoveCol(),t.columnResize.col<t.table.frozenColCount&&!t.table.isPivotTable()&&!t.table.transpose?(t.table.scenegraph.component.setFrozenColumnShadow(t.table.frozenColCount-1,t.columnResize.isRightFrozen),t.table.scenegraph.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount)):t.columnResize.col>=t.table.colCount-t.table.rightFrozenColCount&&!t.table.isPivotTable()&&!t.table.transpose?t.table.scenegraph.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount):t.table.options.frozenColCount?t.table.scenegraph.component.setFrozenColumnShadow(t.table.frozenColCount-1):t.table.options.rightFrozenColCount&&t.table.scenegraph.component.setRightFrozenColumnShadow(t.table.colCount-t.table.rightFrozenColCount),t.table.scenegraph.updateNextFrame()}(this)}checkFrozen(){let t=this.table.isListTable()&&!this.table.internalProps.transpose?this.table.options.frozenColCount:this.table.isPivotChart()?this.table.rowHeaderLevelCount??0:Math.max((this.table.rowHeaderLevelCount??0)+this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount,this.table.options.frozenColCount??0);if(t){if(t>this.table.colCount&&(t=this.table.colCount),this.table.tableNoFrameWidth-this.table.getColsWidth(0,t-1)<=120)return this.table._setFrozenColCount(0),this.setFrozenCol(-1),!1;if(this.table.frozenColCount!==t)return this.table._setFrozenColCount(t),this.setFrozenCol(t),!1}return!0}setFrozenCol(t){t!==this.frozen.col?(this.frozen.col=t,this.table.scenegraph.updateFrozen(),this.table.scenegraph.updateFrozenIcon(0,this.table.colCount-1)):this.table.scenegraph.updateFrozenIcon(0,this.table.colCount-1)}checkVerticalScrollBarEnd(){const t=this.table.getAllRowsHeight(),e=this.scroll.verticalBarPos,i=this.table.tableNoFrameHeight;e+i>=t&&this.table.fireListeners(IL.SCROLL_VERTICAL_END,{scrollTop:e,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:i,viewWidth:this.table.tableNoFrameWidth})}checkHorizontalScrollBarEnd(){const t=this.table.getAllColsWidth(),e=this.scroll.horizontalBarPos,i=this.table.tableNoFrameWidth;e+i>=t&&this.table.fireListeners(IL.SCROLL_HORIZONTAL_END,{scrollTop:this.scroll.verticalBarPos,scrollLeft:e,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:i})}updateVerticalScrollBar(t){const e=this.table.getAllRowsHeight(),i=this.scroll.verticalBarPos;this.scroll.verticalBarPos=Math.ceil(t*(e-this.table.scenegraph.height)),Z(this.scroll.verticalBarPos)&&!isNaN(this.scroll.verticalBarPos)||(this.scroll.verticalBarPos=0),this.table.scenegraph.setY(-this.scroll.verticalBarPos,1===t),this.scroll.verticalBarPos-=this.table.scenegraph.proxy.deltaY,this.table.scenegraph.proxy.deltaY=0,this.updateHoverPos(-1,-1),this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"vertical",scrollRatioY:t}),i!==this.scroll.verticalBarPos&&this.checkVerticalScrollBarEnd()}updateHorizontalScrollBar(t){const e=this.table.getAllColsWidth(),i=this.scroll.horizontalBarPos;this.scroll.horizontalBarPos=Math.ceil(t*(e-this.table.scenegraph.width)),Z(this.scroll.horizontalBarPos)&&!isNaN(this.scroll.horizontalBarPos)||(this.scroll.horizontalBarPos=0),this.table.scenegraph.setX(-this.scroll.horizontalBarPos,1===t),this.scroll.horizontalBarPos-=this.table.scenegraph.proxy.deltaX,this.table.scenegraph.proxy.deltaX=0,this.updateHoverPos(-1,-1),this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"horizontal",scrollRatioX:t}),i!==this.scroll.horizontalBarPos&&this.checkHorizontalScrollBarEnd()}setScrollTop(t){const e=this.table.getAllRowsHeight();t=Math.max(0,Math.min(t,e-this.table.scenegraph.height)),((t=Math.ceil(t))!==this.scroll.verticalBarPos||this.table.isPivotChart())&&this.updateHoverPos(-1,-1);const i=this.scroll.verticalBarPos;this.scroll.verticalBarPos=t,Z(this.scroll.verticalBarPos)&&!isNaN(this.scroll.verticalBarPos)||(this.scroll.verticalBarPos=0),this.table.scenegraph.setY(-t);const r=t/(e-this.table.scenegraph.height);this.table.scenegraph.component.updateVerticalScrollBarPos(r),i!==t&&(this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"vertical",scrollRatioY:r}),this.checkVerticalScrollBarEnd())}setScrollLeft(t){this.table.scrollLeft;const e=this.table.getAllColsWidth();this.table.getFrozenColsWidth(),t=Math.max(0,Math.min(t,e-this.table.scenegraph.width)),(t=Math.ceil(t))!==this.scroll.horizontalBarPos&&this.updateHoverPos(-1,-1);const i=this.scroll.horizontalBarPos;this.scroll.horizontalBarPos=t,Z(this.scroll.horizontalBarPos)&&!isNaN(this.scroll.horizontalBarPos)||(this.scroll.horizontalBarPos=0),this.table.scenegraph.setX(-t);const r=t/(e-this.table.scenegraph.width);this.table.scenegraph.component.updateHorizontalScrollBarPos(r),i!==t&&(this.table.fireListeners(IL.SCROLL,{scrollTop:this.scroll.verticalBarPos,scrollLeft:this.scroll.horizontalBarPos,scrollHeight:this.table.theme.scrollStyle?.width,scrollWidth:this.table.theme.scrollStyle?.width,viewHeight:this.table.tableNoFrameHeight,viewWidth:this.table.tableNoFrameWidth,scrollDirection:"horizontal",scrollRatioX:r}),this.checkHorizontalScrollBarEnd())}hideVerticalScrollBar(){this.table.scenegraph.component.hideVerticalScrollBar()}showVerticalScrollBar(t){this.table.scenegraph.component.showVerticalScrollBar(),t&&(clearTimeout(this._clearVerticalScrollBar),this._clearVerticalScrollBar=setTimeout((()=>{this.table.scenegraph.component.hideVerticalScrollBar()}),1e3))}hideHorizontalScrollBar(){this.table.scenegraph.component.hideHorizontalScrollBar()}showHorizontalScrollBar(t){this.table.scenegraph.component.showHorizontalScrollBar(),t&&(clearTimeout(this._clearHorizontalScrollBar),this._clearHorizontalScrollBar=setTimeout((()=>{this.table.scenegraph.component.hideHorizontalScrollBar()}),1e3))}triggerContextMenu(t,e,i,r){this.menu.isShow&&this.menu.x===i&&this.menu.y===r?this.hideMenu():this.showContextMenu(t,e,i,r)}showContextMenu(t,e,i,r){this.table.internalProps.menu?.contextMenuItems&&("html"===this.table.internalProps.menu.renderMode?this.menu.isShow=!0:(this.menu.isShow=!0,this.menu.x=i,this.menu.y=r,this.table.scenegraph.component.menu.attach(i,r,t,e,xz.contextmenu)),this.table.fireListeners(IL.SHOW_MENU,{x:i,y:r,col:t,row:e,type:"contextmenu"}))}triggerDropDownMenu(t,e,i,r,n){this.table.fireListeners(IL.DROPDOWN_ICON_CLICK,{col:t,row:e,event:n}),this.menu.isShow?this.hideMenu():this.showDropDownMenu(t,e,i,r)}showDropDownMenu(t,e,i,r){"html"===this.table.internalProps.menu.renderMode?this.menu.isShow=!0:(this.menu.isShow=!0,this.table.scenegraph.component.menu.attach(i,r,t,e,xz.dropDown),this.menu.bounds=this.table.scenegraph.component.menu.bounds),this.table.fireListeners(IL.SHOW_MENU,{x:i,y:r,col:t,row:e,type:"dropDown"}),this.residentHoverIcon&&this.table.scenegraph.setIconNormalStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row);const n=this.table.scenegraph.getCell(t,e);let o;n.forEachChildren((t=>t.attribute.funcType===xE.dropDown&&(o=t,!0))),o&&(this.residentHoverIcon={col:t,row:e,icon:o},this.table.scenegraph.setIconHoverStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row,n),this.table.scenegraph.residentHoverIcon(t,e))}hideMenu(){this.menu.isShow&&(this.table.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),this.table.fireListeners(IL.HIDE_MENU,null),this.menu.isShow=!1,this.table.scenegraph.component.menu.detach(),this.residentHoverIcon&&(this.table.scenegraph.setIconNormalStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row),this.table.scenegraph.resetResidentHoverIcon(this.residentHoverIcon.col,this.residentHoverIcon.row),this.residentHoverIcon=null))}setDropDownMenuHighlight(t){this.menu.dropDownMenuHighlight=t;for(let e=0;e<t.length;e++){const{col:i,row:r}=t[e],n=this.table.getCellRange(i,r);if(n)for(let t=n.start.col;t<=n.end.col;t++)for(let e=n.start.row;e<=n.end.row;e++)this.table.scenegraph.updateCellContent(t,e)}}dropDownMenuIsHighlight(t,e,i){const r=this.menu.dropDownMenuHighlight;if(Array.isArray(r))for(let n=0;n<r.length;n++){const o=r[n];let{col:s,row:a}=o;const{field:l,menuKey:h}=o;if("number"!=typeof s||"number"!=typeof a)if(this.table.isPivotTable()&&(Array.isArray(l),1)){const t=this.table.internalProps.layoutMap.getPivotCellAdress(l);if(!t)continue;s=t.col,a=t.row}else{const t=this.table.internalProps.layoutMap.getHeaderCellAddressByField(l);if(!t)continue;s=t.col,a=t.row}if(Z(s)&&Z(a)&&this.table.isCellRangeEqual(t,e,s,a)){const r=this.table._getHeaderLayoutMap(s??t,a??e).dropDownMenu||this.table.globalDropDownMenu;if(r)for(let t=0;t<r.length;t++){const e=r[t];if(J(e)&&(e.menuKey||e.text)===(h||"")&&t===i)return!0;if(rt(e)&&e===h&&t===i)return!0}}}return!1}triggerSort(t,e,i,r){if(this.table.isPivotTable()){const i=this.table.getPivotSortState(t,e),n=i?i.toUpperCase():"DESC",o="ASC"===n?"DESC":"ASC";return this.table.sort(t,e,o),void this.table.fireListeners(FW.PIVOT_SORT_CLICK,{col:t,row:e,order:n||"normal",dimensionInfo:this.table.internalProps.layoutMap.getPivotDimensionInfo(t,e),cellLocation:this.table.getCellLocation(t,e),event:r})}const n=this.sort.col,o=this.sort.row;IW(t,e,this.table,r),this.sort.col=t,this.sort.row=e,this.table.scenegraph.updateSortIcon(this.sort.col,this.sort.row,i,this.sort.order,n,o,this.sort.icon),this.sort.icon=i}updateSortState(t){if(t.field===this.sort.field&&t.order===this.sort.order)return;const e=this.sort.col,i=this.sort.row,r="asc"===this.sort.order?"sort_downward":"desc"===this.sort.order?"sort_upward":"sort_normal";this.setSortState(t);const n=this.table.internalProps.layoutMap.getHeaderCellAddressByField(t.field);this.sort.col=n.col,this.sort.row=n.row;const o=this.table.scenegraph.getCell(this.sort.col,this.sort.row).getChildByName(r,!0);this.table.scenegraph.updateSortIcon(this.sort.col,this.sort.row,o,this.sort.order,e,i,this.sort.icon)}triggerFreeze(t,e,i){this.table.isPivotTable()||this.table.transpose||(!function(t,e,i){i.frozenColCount>0?t!==i.frozenColCount-1?i.setFrozenColCount(t+1):i.setFrozenColCount(0):i.setFrozenColCount(t+1)}(t,0,this.table),this.frozen.icon=i)}updateCursor(t="default"){this.table.getElement().style.cursor=t}updateDrillState(t,e,i,r,n,o){this.drill.dimensionKey=t,this.drill.title=e,this.drill.drillDown=i,this.drill.drillUp=r,this.drill.col=n,this.drill.row=o,function(t,e,i,r,n){const o=n.getCellLocation(t,e);let s=0,a=0,l=!1;"columnHeader"===o?(s=n.getColsWidth(0,n.rowHeaderLevelCount-1)-(0===n.frozenColCount?n.scrollLeft:0),a=n.getRowsHeight(0,e-1)+n.getRowHeight(e)/2,l=!0):"rowHeader"===o&&(a=n.getRowsHeight(0,n.columnHeaderLevelCount-1),s=n.getColsWidth(0,t-1)+n.getColWidth(t)/2,l=!0),n.scenegraph.updateDrill(l,s,a,i,r)}(n,o,i,r,this.table)}updateSparklineHoverPose(t,e,i,r){-1!==this.sparkLine.col&&-1!==this.sparkLine.row&&function(t,e,i){const r=i.scenegraph.getCell(t,e).getChildByName("sparkline"),n=r?.getChildByName("highlight-line"),o=r?.getChildByName("highlight-symbol");n&&n.setAttributes({visible:!1,pickable:!1}),o&&o.setAttributes({visible:!1,pickable:!1}),i.scenegraph.updateNextFrame()}(this.sparkLine.col,this.sparkLine.row,this.table);let n=!1;-1!==t&&-1!==e&&(n=function(t,e,i,r,n){const o=n.scenegraph.getCell(t,e).getChildByName("sparkline"),s=o?.getChildByName("sparkline-line"),a=o?.getChildByName("sparkline-symbol-group");if(!s)return!1;const l=s.bandwidth,h=s.min,c=s.max,d=s.attribute.points;let u;i-=o.globalAABBBounds.x1,o.globalAABBBounds.y1;for(let t=0;t<d.length;t++){const{x:e,y:r,defined:n,rawData:g}=d[t];if(Math.abs(i-e)<l/2&&(u={point:d[t],points:d,pointsBandWidth:l,pointData:g},n)){const t=o.getChildByName("highlight-line");if(t)t.setAttributes({points:[{x:e,y:c},{x:e,y:h}],visible:!0,pickable:!0});else{const t=Rc({points:[{x:e,y:c},{x:e,y:h}],lineWidth:s.hover?.strokeWidth,stroke:s.hover?.stroke});t.name="highlight-line",o.addChild(t)}const i=o.getChildByName("highlight-symbol");if(i)i.setAttributes({x:e,y:r,visible:!0,pickable:!0});else{const t=Ac({x:e,y:r,stroke:a.hover.stroke,lineWidth:a.hover.strokeWidth,fill:a.hover.fill,size:2*a.hover.size,symbolType:"circle"});t.name="highlight-symbol",o.addChild(t)}break}}if(n.scenegraph.updateNextFrame(),u){const i={col:t,row:e,field:n.getHeaderField(t,e),value:n.getCellValue(t,e),dataValue:n.getCellOriginValue(t,e),cellHeaderPaths:n.internalProps.layoutMap.getCellHeaderPaths(t,e),title:n.getBodyColumnDefine(t,e).title,cellRange:n.getCellRelativeRect(t,e),sparkline:{pointData:u.pointData},scaleRatio:n.canvas.getBoundingClientRect().width/n.canvas.offsetWidth};n.fireListeners(IL.MOUSEOVER_CHART_SYMBOL,i)}return!0}(t,e,i,0,this.table)),n?(this.sparkLine.col=t,this.sparkLine.row=e):(this.sparkLine.col=-1,this.sparkLine.row=-1)}setCheckedState(t,e,i,r){return function(t,e,i,r,n){const o=n.table.getRecordShowIndexByCell(t,e);if(o>=0){const t=n.table.dataSource.getIndexKey(o);n.checkedState[t]||(n.checkedState[t]={}),n.checkedState[t][i]=r}}(t,e,i,r,this)}setHeaderCheckedState(t,e){return function(t,e,i){i.headerCheckedState[t]=e,i.checkedState?.forEach((i=>{i[t]=e}))}(t,e,this)}syncCheckedState(t,e,i,r){return function(t,e,i,r,n){if(n.table.isHeader(t,e)){if(Z(n.headerCheckedState[i]))return n.headerCheckedState[i];if("function"==typeof r)return;if(Z(r))n.headerCheckedState[i]=r;else if(n.checkedState?.length>0)return n.updateHeaderCheckedState(i);return n.headerCheckedState[i]}const o=n.table.getRecordShowIndexByCell(t,e);if(o>=0){const t=n.table.dataSource.getIndexKey(o);if(Z(n.checkedState[t]?.[i]))return n.checkedState[t][i];n.checkedState[t]||(n.checkedState[t]={}),n.checkedState[t][i]=r}return r}(t,e,i,r,this)}initCheckedState(t){return function(t,e){e.checkedState=[],e.headerCheckedState={},e.radioState={};let i=!1;e._checkboxCellTypeFields=[],e._headerCheckFuncs={},e.table.internalProps.layoutMap.headerObjects.forEach(((t,r)=>{if("checkbox"===t.headerType){const r=t.define.checked;null==r||"function"==typeof r?(i=!0,"function"==typeof r&&(e._headerCheckFuncs[t.field]=r)):e.headerCheckedState[t.field]=r,"checkbox"!==t.define.cellType||t.fieldFormat||e._checkboxCellTypeFields.push(t.field)}})),i&&t.forEach(((t,i)=>{e._checkboxCellTypeFields.forEach((r=>{const n=t[r];let o;if(J(n)?o=n.checked:"boolean"==typeof n&&(o=n),null==o){const t=e._headerCheckFuncs[r];if(t){const s=e.table.getCellAddrByFieldRecord(r,i);o=SL(t,{col:s.col,row:s.row,table:e.table,context:null,value:n})}}e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][r]=o}))}))}(t,this)}updateHeaderCheckedState(t){return function(t,e){const i=e.checkedState.every((e=>!0===e[t]));return i?(e.headerCheckedState[t]=!0,i):e.checkedState.every((e=>!1===e[t]))?(e.headerCheckedState[t]=!1,!1):!!e.checkedState.find((e=>!0===e[t]))&&(e.headerCheckedState[t]="indeterminate","indeterminate")}(t,this)}initLeftRecordsCheckState(t){return function(t,e){for(let i=e.checkedState.length;i<t.length;i++){const r=t[i];e._checkboxCellTypeFields.forEach((t=>{const n=r[t];let o;J(n)?o=n.checked:"boolean"==typeof n&&(o=n),e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][t]=o}))}}(t,this)}setRadioState(t,e,i,r,n){!function(t,e,i,r,n,o){const s=o.table.getRecordShowIndexByCell(t,e);if(s>=0){const t=o.table.dataSource.getIndexKey(s);"column"===r?at(n)?(o.radioState[i]={},o.radioState[i][t]=n):o.radioState[i]=t:(o.radioState[i]||(o.radioState[i]={}),at(n)?o.radioState[i][t]=n:o.radioState[i][t]=!0)}}(t,e,i,r,n,this)}syncRadioState(t,e,i,r,n,o){return function(t,e,i,r,n,o,s){const a=s.table.getRecordShowIndexByCell(t,e);if(a>=0){const t=s.table.dataSource.getIndexKey(a);if("column"===r){if(!Z(s.radioState[i])&&o)return at(n)?(s.radioState[i]={},s.radioState[i][t]=n):s.radioState[i]=t,!0;if(at(s.radioState[i])&&!at(n))return s.radioState[i]===t;if(at(s.radioState[i])&&at(n))return!1;if(J(s.radioState[i])&&!at(n))return!1;if(J(s.radioState[i])&&at(n))return s.radioState[i][t]===n}else if("cell"===r){if(!Z(s.radioState[i])&&o)return s.radioState[i]={},at(n)?s.radioState[i][t]=n:s.radioState[i][t]=!0,!0;if(!Z(s.radioState[i]?.[t])&&o)return at(n)?s.radioState[i][t]=n:s.radioState[i][t]=!0,!0;if(Y(s.radioState[i]?.[t])&&!at(n))return s.radioState[i][t];if(Y(s.radioState[i]?.[t])&&at(n))return!1;if(at(s.radioState[i]?.[t])&&!at(n))return!1;if(at(s.radioState[i]?.[t])&&at(n))return s.radioState[i][t]===n}}return o}(t,e,i,r,n,o,this)}changeCheckboxAndRadioOrder(t,e){this.checkedState.length&&function(t,e,i){const{checkedState:r,table:n}=i;if(n.internalProps.transpose?(t=n.getRecordShowIndexByCell(t,0),e=n.getRecordShowIndexByCell(e,0)):(t=n.getRecordShowIndexByCell(0,t),e=n.getRecordShowIndexByCell(0,e)),t!==e){const i=r[t];r[t]=r[e],r[e]=i}}(t,e,this),this.radioState.length&&function(t,e,i){const{radioState:r,table:n}=i;if(n.internalProps.transpose?(t=n.getRecordShowIndexByCell(t,0),e=n.getRecordShowIndexByCell(e,0)):(t=n.getRecordShowIndexByCell(0,t),e=n.getRecordShowIndexByCell(0,e)),t!==e){const i=r[t];r[t]=r[e],r[e]=i}}(t,e,this)}}function VW(t){if(t.eventManager.bindSparklineHoverEvent)return;let e=!1;if(t.isPivotTable()){e=t.internalProps.layoutMap.indicatorsDefine.some((t=>"string"!=typeof t&&"sparkline"===t.cellType))}else{e=t.internalProps.layoutMap.columnObjects.some((t=>"sparkline"===t.cellType||"function"==typeof t.cellType))}e&&(t.eventManager.bindSparklineHoverEvent=!0,t.on(IL.MOUSEMOVE_CELL,(e=>{const{col:i,row:r,x:n,y:o}=e;"sparkline"!==t.getBodyColumnType(i,r)&&t.stateManager.updateSparklineHoverPose(-1,-1,0,0),t.stateManager.updateSparklineHoverPose(i,r,n,o)})),t.on(IL.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateSparklineHoverPose(-1,-1,0,0)})))}function UW(t){const e=t.table,i=e.stateManager;e.scenegraph.tableGroup.addEventListener("pointermove",(r=>{const n=e.eventManager.LastPointerXY?.x??r.x,o=e.eventManager.LastPointerXY?.y??r.y;e.eventManager.LastPointerXY={x:r.x,y:r.y},t.touchSetTimeout&&(clearTimeout(t.touchSetTimeout),t.touchSetTimeout=void 0);const s=AO(r);if(i.interactionState===fE.grabing&&!e.editorManager?.editingEditor)return void(Math.abs(n-r.x)+Math.abs(o-r.y)>=1&&(i.isResizeCol()||(i.isMoveCol()?t.dealColumnMover(s):i.isFillHandle()?t.dealFillSelect(s,!0):t.dealTableSelect(s,!0))));e.eventManager.isDraging&&i.isSelecting()&&!e.editorManager?.editingEditor&&t.dealTableSelect(s,!0);const a=r.path.find((t=>"cell"===t.role));if(e.hasListeners(IL.MOUSELEAVE_CELL)&&(-1===e.stateManager.hover.cellPos.col||-1===e.stateManager.hover.cellPos.row||a?.col===e.stateManager.hover.cellPos.col&&a?.row===e.stateManager.hover.cellPos.row||e.fireListeners(IL.MOUSELEAVE_CELL,{col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row,cellRange:e.getCellRangeRelativeRect({col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row}),scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,event:r.nativeEvent,target:s?.eventArgs?.target})),e.hasListeners(IL.MOUSEENTER_CELL)&&("cell"!==a?.role||!Z(a.col)||!Z(a.row)||a.col===e.stateManager.hover.cellPos.col&&a.row===e.stateManager.hover.cellPos.row||a.col===e.stateManager.hover.cellPosContainHeader?.col&&a.row===e.stateManager.hover.cellPosContainHeader?.row||e.fireListeners(IL.MOUSEENTER_CELL,{col:a.col,row:a.row,cellRange:e.getCellRangeRelativeRect({col:a.col,row:a.row}),scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,event:r.nativeEvent,target:s?.eventArgs?.target,mergeCellInfo:s.eventArgs?.mergeInfo})),t.dealIconHover(s),t.dealTableHover(s),s.eventArgs&&e.hasListeners(IL.MOUSEMOVE_CELL)){let t,i;if(s.eventArgs?.target){const e=WW(s.eventArgs?.target);e&&(t=e.icon,i=e.position)}e.fireListeners(IL.MOUSEMOVE_CELL,{col:s.eventArgs.col,row:s.eventArgs.row,x:s.abstractPos.x,y:s.abstractPos.y,event:r.nativeEvent,targetIcon:t?{name:t.name,position:i,funcType:t.attribute.funcType}:void 0,target:s?.eventArgs?.target,mergeCellInfo:s.eventArgs?.mergeInfo})}})),e.scenegraph.tableGroup.addEventListener("pointerout",(e=>{const i=AO(e),r=i?.eventArgs?.target;"table"===r?.role&&t.dealTableHover()})),e.scenegraph.tableGroup.addEventListener("pointerover",(t=>{const i=AO(t),r=i?.eventArgs?.target;if(r&&e.hasListeners(IL.MOUSEOVER_CHART_SYMBOL)&&"symbol"===r.type){const r=t.composedPath().find((t=>"cell"===t.roll));if(r){const{col:n,row:o}=r,s={col:n,row:o,field:e.getHeaderField(n,o),value:e.getCellValue(n,o),dataValue:e.getCellOriginValue(n,o),cellHeaderPaths:e.internalProps.layoutMap.getCellHeaderPaths(n,o),title:e.getBodyColumnDefine(n,o).title,cellRange:e.getCellRelativeRect(n,o),event:t.nativeEvent,sparkline:{pointData:void 0},scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:i?.eventArgs?.target};e.fireListeners(IL.MOUSEOVER_CHART_SYMBOL,s)}}})),e.scenegraph.tableGroup.addEventListener("pointerenter",(t=>{"focus"===e.theme.scrollStyle.visible&&(i.showHorizontalScrollBar(),i.showVerticalScrollBar()),e.hasListeners(IL.MOUSEENTER_TABLE)&&e.fireListeners(IL.MOUSEENTER_TABLE,{event:t.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerleave",(r=>{i.isResizeCol()||i.isMoveCol()||i.isSelecting()||(i.updateInteractionState(fE.default),i.updateCursor()),"focus"===e.theme.scrollStyle.visible&&(i.hideHorizontalScrollBar(),i.hideVerticalScrollBar()),e.hasListeners(IL.MOUSELEAVE_CELL)&&-1!==e.stateManager.hover.cellPos.col&&-1!==e.stateManager.hover.cellPos.row&&e.fireListeners(IL.MOUSELEAVE_CELL,{col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row,cellRange:e.getCellRangeRelativeRect({col:e.stateManager.hover.cellPos.col,row:e.stateManager.hover.cellPos.row}),scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,event:r.nativeEvent,target:void 0}),t.dealTableHover();const n=r.target;n&&!n.isDescendantsOf(e.scenegraph.tableGroup)&&e.fireListeners(IL.MOUSELEAVE_TABLE,{event:r.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerupoutside",(r=>{const n=AO(r);if(i.menu.isShow&&n.eventArgs?.target!==i.residentHoverIcon?.icon&&setTimeout((()=>{e.internalProps.menuHandler.pointInMenuElement(r.page.x,r.page.y)||i.menu.isShow&&i.hideMenu()}),0),i.isResizeCol())$W(e);else if(i.isResizeRow())YW(e);else if(i.isMoveCol())e.stateManager.endMoveCol(),-1!==e.stateManager.columnMove?.colSource&&-1!==e.stateManager.columnMove?.rowSource&&-1!==e.stateManager.columnMove?.colTarget&&-1!==e.stateManager.columnMove?.rowTarget&&e.hasListeners(IL.CHANGE_HEADER_POSITION)&&e.fireListeners(IL.CHANGE_HEADER_POSITION,{target:{col:e.stateManager.columnMove.colTarget,row:e.stateManager.columnMove.rowTarget},source:{col:e.stateManager.columnMove.colSource,row:e.stateManager.columnMove.rowSource}});else if(i.isSelecting()&&e.stateManager.select?.ranges?.length){const t=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].end.col,i=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].end.row;if(e.stateManager.endSelectCells(),e.hasListeners(IL.DRAG_SELECT_END)){const n={event:r.nativeEvent,cells:[],col:t,row:i,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:void 0};n.cells=e.getSelectedCellInfos(),e.fireListeners(IL.DRAG_SELECT_END,n)}}const o=e.editorManager?.completeEdit(r.nativeEvent);if(!1!==o&&(i.updateInteractionState(fE.default),t.dealTableHover(),e.options.select?.outsideClickDeselect)){const e=!!i.select.ranges?.length;t.dealTableSelect(),i.endSelectCells(!0,e)}})),e.scenegraph.tableGroup.addEventListener("pointerdown",(r=>{if(e.hasListeners(IL.MOUSEDOWN_TABLE)&&e.fireListeners(IL.MOUSEDOWN_TABLE,{event:r.nativeEvent}),e.eventManager.isDown=!0,e.eventManager.LastBodyPointerXY={x:r.x,y:r.y},e.eventManager.LastPointerXY={x:r.x,y:r.y},0!==r.button)return;const n=AO(r);if(t.downIcon=void 0,i.interactionState!==fE.default)return;e.isPivotChart()&&"chart"!==n?.eventArgs?.target.type&&e.scenegraph.updateChartState(null),n.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu();const o=e.editorManager?.completeEdit(r.nativeEvent);if(!1===o)return;const s=n?.eventArgs?.target?.role?.startsWith("icon")?n.eventArgs.target:r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=s,s&&!1!==s.attribute.interactive)s.attribute.funcType===xE.dragReorder&&(i.startMoveCol(n.eventArgs.col,n.eventArgs.row,n.abstractPos.x,n.abstractPos.y),i.updateInteractionState(fE.grabing));else if("touch"===r.pointerType)t.touchEnd=!1,t.touchSetTimeout=setTimeout((()=>{t.isTouchdown=!1,t.touchMove=!0,(t.touchEnd||!t.checkColumnResize(n,!0)&&!t.checkRowResize(n,!0))&&(t.touchEnd||!t.chechColumnMover(n))?t.dealTableSelect(n)&&!t.touchEnd&&i.updateInteractionState(fE.grabing):i.updateInteractionState(fE.grabing)}),500),t.dealTableHover(n);else{if(!t.checkCellFillhandle(n)&&(t.checkColumnResize(n,!0)||t.checkRowResize(n,!0)))return e.scenegraph.updateChartState(null),void i.updateInteractionState(fE.grabing);if(t.chechColumnMover(n))return void i.updateInteractionState(fE.grabing);if(t.checkCellFillhandle(n,!0)&&t.dealFillSelect(n))return void i.updateInteractionState(fE.grabing);t.dealTableSelect(n)&&i.updateInteractionState(fE.grabing)}if(e.hasListeners(IL.MOUSEDOWN_CELL)){const t=AO(r);t.eventArgs&&e.fireListeners(IL.MOUSEDOWN_CELL,{col:t.eventArgs.col,row:t.eventArgs.row,event:r.nativeEvent,target:t?.eventArgs?.target,mergeCellInfo:t.eventArgs.mergeInfo})}})),e.scenegraph.tableGroup.addEventListener("pointerup",(t=>{if(0===t.button){if("grabing"===i.interactionState){if(i.updateInteractionState(fE.default),i.isResizeCol())$W(e);else if(i.isResizeRow())YW(e);else if(i.isMoveCol()){const i=AO(t);e.stateManager.endMoveCol(),i.eventArgs&&e.hasListeners(IL.CHANGE_HEADER_POSITION)&&e.fireListeners(IL.CHANGE_HEADER_POSITION,{target:{col:i.eventArgs.col,row:i.eventArgs.row},source:{col:e.stateManager.columnMove.colSource,row:e.stateManager.columnMove.rowSource}})}else if(i.isSelecting()){e.stateManager.endSelectCells(),e.stateManager.isFillHandle()&&e.stateManager.endFillSelect();const i=AO(t);if(e.eventManager.isDraging&&i.eventArgs&&e.hasListeners(IL.DRAG_SELECT_END)){const r={event:t.nativeEvent,cells:[],col:i.eventArgs.target.col,row:i.eventArgs.target.row,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:i?.eventArgs?.target,mergeCellInfo:i.eventArgs?.mergeInfo};r.cells=e.getSelectedCellInfos(),e.fireListeners(IL.DRAG_SELECT_END,r)}}}else i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default);if(e.hasListeners(IL.MOUSEUP_CELL)){const i=AO(t);i.eventArgs&&e.fireListeners(IL.MOUSEUP_CELL,{col:i.eventArgs.col,row:i.eventArgs.row,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i.eventArgs?.mergeInfo})}}})),e.scenegraph.tableGroup.addEventListener("rightdown",(t=>{const r=AO(t);if(r.eventArgs){i.triggerContextMenu(r.eventArgs.col,r.eventArgs.row,r.abstractPos.x,r.abstractPos.y);const{col:n,row:o}=r.eventArgs;if(e.hasListeners(IL.CONTEXTMENU_CELL)){const i=e.getCellInfo(n,o);let s,a;if(r.eventArgs?.target){const t=WW(r.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...i,event:t.nativeEvent,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:r?.eventArgs?.target,mergeCellInfo:r.eventArgs?.mergeInfo};!function(t,e,i){for(let r=0;r<t.length;r++){const n=t[r],o=Math.min(n.start.col,n.end.col),s=Math.max(n.start.col,n.end.col),a=Math.min(n.start.row,n.end.row),l=Math.max(n.start.row,n.end.row);if(o<=e&&e<=s&&a<=i&&i<=l||s<=e&&e<=o&&l<=i&&i<=a)return!0}return!1}(e.stateManager.select.ranges,n,o)?l.cells=[[i]]:l.cells=e.getSelectedCellInfos(),e.fireListeners(IL.CONTEXTMENU_CELL,l)}}})),e.scenegraph.tableGroup.addEventListener("pointertap",(r=>{if(e.stateManager.columnResize.resizing||e.stateManager.columnMove.moving)return;const n=AO(r);if(t.dealIconClick(r,n),n?.eventArgs){if(t.touchSetTimeout&&"touch"===r.pointerType){const e=AO(r);if(t.touchSetTimeout){clearTimeout(t.touchSetTimeout);const r=!!i.select.ranges?.length;t.dealTableSelect(e),i.endSelectCells(!0,r),t.touchSetTimeout=void 0}}if(!t.touchMove&&0===r.button&&e.hasListeners(IL.CLICK_CELL)){const{col:t,row:i}=n.eventArgs,o=e.getCellInfo(t,i);let s,a;if(n.eventArgs?.target){const t=WW(n.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...o,event:r.nativeEvent,federatedEvent:r,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:n?.eventArgs?.target,mergeCellInfo:n.eventArgs?.mergeInfo};e.fireListeners(IL.CLICK_CELL,l)}}})),e.scenegraph.stage.addEventListener("pointerdown",(r=>{const n=AO(r);n.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu();const o=e.editorManager?.completeEdit(r.nativeEvent);if(!1===o)return;const s=r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=s,s||t.checkCellFillhandle(n)||i.columnResize.resizing||!t.checkColumnResize(n,!0));else{e.scenegraph.updateChartState(null),i.updateInteractionState(fE.grabing);const{eventArgs:t}=n;if(!t?.targetCell){e.getCellAt(n.abstractPos.x-8,n.abstractPos.y)&&e.hasListeners(IL.MOUSEDOWN_TABLE)&&e.fireListeners(IL.MOUSEDOWN_TABLE,{event:r.nativeEvent})}}})),e.scenegraph.stage.addEventListener("pointerup",(t=>{"grabing"===i.interactionState&&(i.updateInteractionState(fE.default),i.isResizeCol()&&$W(e))})),e.scenegraph.stage.addEventListener("pointertap",(r=>{const n=r.target;if(e.eventManager.isDraging||!n||!n.isDescendantsOf(e.scenegraph.stage)&&n.stage!==n||n.isDescendantsOf(e.scenegraph.tableGroup))e.eventManager.isDraging&&i.isSelecting()&&i.endSelectCells();else{i.updateInteractionState(fE.default),t.dealTableHover();const r=!!i.select.ranges?.length;(e.options.select?.blankAreaClickDeselect??1)&&t.dealTableSelect(),i.endSelectCells(!0,r),i.updateCursor(),e.scenegraph.updateChartState(null)}})),e.scenegraph.stage.addEventListener("pointermove",(r=>{const n=AO(r);i.isResizeCol()||t.checkColumnResize(n)?e.stateManager.select&&t.checkCellFillhandle(n)?i.updateCursor("crosshair"):i.updateCursor("col-resize"):i.isResizeRow()||t.checkRowResize(n)?e.stateManager.select&&t.checkCellFillhandle(n)?i.updateCursor("crosshair"):i.updateCursor("row-resize"):i.updateCursor()})),e.scenegraph.tableGroup.addEventListener("checkbox_state_change",(t=>{const i=AO(t),{col:r,row:n}=i.eventArgs,o=e.getCellInfo(r,n),s=bH(e,r,n);if(s)for(let i=s.start.col;i<=s.end.col;i++)for(let r=s.start.row;r<=s.end.row;r++){e.scenegraph.getCell(i,r).forEachChildren((e=>{"checkbox"===e.name&&e.setAttributes({checked:t.target.attribute.checked,indeterminate:t.target.attribute.indeterminate})}))}const a={...o,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,checked:t.detail.checked};if(e.isHeader(r,n)){e.stateManager.setHeaderCheckedState(o.field,t.detail.checked);"checkbox"===e.getCellType(r,n)&&e.scenegraph.updateCheckboxCellState(r,n,t.detail.checked)}else{e.stateManager.setCheckedState(r,n,o.field,t.detail.checked);if("checkbox"===e.getCellType(r,n)){const t=e.stateManager.headerCheckedState[o.field],i=e.stateManager.updateHeaderCheckedState(o.field);t!==i&&e.scenegraph.updateHeaderCheckboxCellState(r,n,i)}}e.fireListeners(IL.CHECKBOX_STATE_CHANGE,a),e.scenegraph.updateNextFrame()})),e.scenegraph.tableGroup.addEventListener("radio_checked",(t=>{const i=AO(t),{col:r,row:n,target:o}=i.eventArgs,s=e.getCellInfo(r,n),a=RO.exec(o.id)?.[1],l=bH(e,r,n);if(l)for(let t=l.start.col;t<=l.end.col;t++)for(let i=l.start.row;i<=l.end.row;i++){e.scenegraph.getCell(t,i).forEachChildren((t=>{"radio"===t.name&&t.id===o.id&&t.setAttributes({checked:!0})}))}const h=e.getBodyColumnDefine(r,n).radioCheckType||"column";if("cell"===h)if(l)for(let t=l.start.col;t<=l.end.col;t++)for(let i=l.start.row;i<=l.end.row;i++){e.scenegraph.getCell(t,i).forEachChildren((t=>{"radio"===t.name&&t.id!==o.id&&t.setAttributes({checked:!1})}))}else{e.scenegraph.getCell(r,n).forEachChildren((t=>{"radio"===t.name&&t.id!==o.id&&t.setAttributes({checked:!1})}))}else if("column"===h){e.scenegraph.getColGroup(r).forEachChildren((t=>{t.forEachChildren((t=>{"radio"===t.name&&t.id!==o.id&&t.setAttributes({checked:!1})}))}))}const c=a?Number(a):void 0;e.stateManager.setRadioState(r,n,s.field,h,c);const d={...s,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,radioIndexInCell:c};e.fireListeners(IL.RADIO_STATE_CHANGE,d),e.scenegraph.updateNextFrame()}))}function KW(t){const e=t.table;t.gesture=new tC(e.scenegraph.tableGroup,{tap:{interval:300}}),t.gesture.on("doubletap",(t=>{!function(t,e){const i=AO(t);let r=-1,n=-1;i.eventArgs&&(r=i.eventArgs.col,n=i.eventArgs.row);const o=e.getCellValue(r,n),s=i.eventArgs?.targetCell?.globalAABBBounds;if(s&&e.internalProps.focusControl.setFocusRect(new jL(s.x1+e.scrollLeft,s.y1+e.scrollTop,s.x2-s.x1,s.y2-s.y1),o),e.hasListeners(IL.DBLCLICK_CELL)){const o=e.getCellInfo(r,n);let s,a;if(i.eventArgs?.target){const t=WW(i.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...o,event:t.nativeEvent,federatedEvent:t,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo};e.fireListeners(IL.DBLCLICK_CELL,l)}}(t,e)}))}function $W(t){t.stateManager.endResizeCol();const e=[];for(let i=0;i<t.colCount;i++)e.push(t.getColWidth(i));t.fireListeners(IL.RESIZE_COLUMN_END,{col:t.stateManager.columnResize.col,colWidths:e})}function YW(t){t.stateManager.endResizeRow(),t.fireListeners(IL.RESIZE_ROW_END,{row:t.stateManager.rowResize.row,rowHeight:t.getRowHeight(t.stateManager.rowResize.row)})}function XW(t,e,i=!0){let{deltaX:r,deltaY:n}=t;t.shiftKey&&t.deltaY&&(r=n,n=0);const[o,s]=function(t,e,i){const r=2,n=Math.abs(t/e),o=n<=1/r?0:t,s=n>r?0:e;return[Math.ceil(o*(i.horizontal??0)),Math.ceil(s*(i.vertical??0))]}(r,n,{horizontal:1,vertical:1});(o||s)&&e.interactionState!==fE.scrolling&&e.updateInteractionState(fE.scrolling),o&&(e.setScrollLeft(e.scroll.horizontalBarPos+o),e.showHorizontalScrollBar(!0)),s&&(e.setScrollTop(e.scroll.verticalBarPos+s),e.showVerticalScrollBar(!0)),i&&e.resetInteractionState(),t.cancelable&&("none"===e.table.internalProps.overscrollBehavior||Math.abs(n)>=Math.abs(r)&&0!==n&&qW(n,e)||Math.abs(n)<=Math.abs(r)&&0!==r&&ZW(r,e))&&t.preventDefault()}function qW(t,e){return 0!=e.table.getAllRowsHeight()-e.table.scenegraph.height&&(!function(t,e){const i=e.table.getAllRowsHeight()-e.table.scenegraph.height;return 0!==i&&t<=0&&e.scroll.verticalBarPos<1}(t,e)&&!function(t,e){const i=e.table.getAllRowsHeight()-e.table.scenegraph.height;return 0!==i&&t>=0&&Math.abs(e.scroll.verticalBarPos-i)<1}(t,e))}function ZW(t,e){return 0!=e.table.getAllColsWidth()-e.table.scenegraph.width&&(!function(t,e){const i=e.table.getAllColsWidth()-e.table.scenegraph.width;return 0!==i&&t<=0&&e.scroll.horizontalBarPos<1}(t,e)&&!function(t,e){const i=e.table.getAllColsWidth()-e.table.scenegraph.width;return 0!==i&&t>=0&&Math.abs(e.scroll.horizontalBarPos-i)<1}(t,e))}class JW{friction;lastTime;speedX;speedY;stateManager;runingId;scrollHandle;constructor(t){this.stateManager=t}setScrollHandle(t){this.scrollHandle=t}startInertia(t,e,i){this.lastTime=Date.now(),this.speedX=t,this.speedY=e,this.friction=i,this.runingId||(this.runingId=requestAnimationFrame(this.inertia.bind(this)))}inertia(){const t=Date.now(),e=t-this.lastTime;let i=!0;const r=Math.pow(this.friction,e/16),n=r*this.speedX,o=r*this.speedY;let s=0,a=0;Math.abs(n)>.05&&(i=!1,s=(this.speedX+n)/2*e),Math.abs(o)>.05&&(i=!1,a=(this.speedY+o)/2*e),this.scrollHandle?.(s,a),i?this.runingId=null:(this.lastTime=t,this.speedX=n,this.speedY=o,this.runingId=requestAnimationFrame(this.inertia.bind(this)))}endInertia(){cancelAnimationFrame(this.runingId),this.runingId=null}isInertiaScrolling(){return!!this.runingId}}let QW,tN=1;function eN(){return uL?tN=1:(tN=Math.ceil(window.devicePixelRatio||1),tN>1&&tN%2!=0&&(tN+=1)),tN}function iN(t){return!!t.changedTouches}function rN(t,e,i){if(i.indicatorsAsCol){if(i.hasTwoIndicatorAxes&&e===i.columnHeaderLevelCount-1&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return"top";if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return"bottom";if(t===i.rowHeaderLevelCount-1&&e>=i.rowHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return"left"}else{if(t===i.rowHeaderLevelCount-1&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return"left";if(t===i.colCount-i.rightFrozenColCount&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return"right";if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return"bottom"}return"bottom"}eN();class nN{table;isTouchdown;touchMovePoints;touchSetTimeout;touchEnd;touchMove;gesture;handleTextStickBindId;LastPointerXY;LastBodyPointerXY;isDown=!1;isDraging=!1;scrollYSpeed;scrollXSpeed;downIcon;globalEventListeners=[];inertiaScroll;bindSparklineHoverEvent;constructor(t){this.table=t,this.handleTextStickBindId=[],this.inertiaScroll=new JW(t.stateManager),"node"!==YE.mode&&(this.bindOuterEvent(),setTimeout((()=>{this.bindSelfEvent()}),0))}bindOuterEvent(){UW(this),function(t){const e=t.table,i=e.stateManager,r=e.internalProps.handler;function n(t){if(e.hasListeners(IL.KEYDOWN)){const i={keyCode:t.keyCode??t.which,code:t.code,event:t,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth};e.fireListeners(IL.KEYDOWN,i)}}r.on(e.getElement(),"blur",(e=>{t.dealTableHover()})),r.on(e.getElement(),"wheel",(t=>{XW(t,i)})),r.on(e.getElement(),"keydown",(r=>{if("a"===r.key&&(r.ctrlKey||r.metaKey))e.keyboardOptions?.selectAllOnCtrlA&&(r.preventDefault(),t.deelTableSelectAll());else if(i.select.cellPos.col>=0&&i.select.cellPos.row>=0&&("ArrowUp"===r.key||"ArrowDown"===r.key||"ArrowLeft"===r.key||"ArrowRight"===r.key)){if(!e.options.keyboardOptions?.moveEditCellOnArrowKeys&&e.editorManager?.editingEditor)return;let t,n;r.preventDefault(),r.stopPropagation(),"ArrowUp"===r.key?r.ctrlKey||r.metaKey?(t=i.select.cellPos.col,n=0):(r.shiftKey,t=i.select.cellPos.col,n=Math.min(e.rowCount-1,Math.max(0,i.select.cellPos.row-1))):"ArrowDown"===r.key?r.ctrlKey||r.metaKey?(t=i.select.cellPos.col,n=e.rowCount-1):(r.shiftKey,t=i.select.cellPos.col,n=Math.min(e.rowCount-1,Math.max(0,i.select.cellPos.row+1))):"ArrowLeft"===r.key?r.ctrlKey||r.metaKey?(t=0,n=i.select.cellPos.row):(r.shiftKey,n=i.select.cellPos.row,t=Math.min(e.colCount-1,Math.max(0,i.select.cellPos.col-1))):"ArrowRight"===r.key&&(r.ctrlKey||r.metaKey?(t=e.colCount-1,n=i.select.cellPos.row):(r.shiftKey,n=i.select.cellPos.row,t=Math.min(e.colCount-1,Math.max(0,i.select.cellPos.col+1)))),e.selectCell(t,n,r.shiftKey),e.options.keyboardOptions?.moveEditCellOnArrowKeys&&e.editorManager?.editingEditor&&(e.editorManager.completeEdit(),e.getElement().focus(),e.getEditor(t,n)&&e.editorManager.startEditCell(t,n))}else if("Escape"===r.key)e.editorManager.cancelEdit();else if("Enter"===r.key){if(e.editorManager.editingEditor)return n(r),e.editorManager.completeEdit(),void e.getElement().focus();if((e.options.keyboardOptions?.editCellOnEnter??1)&&1===(e.stateManager.select.ranges?.length??0)){const t=e.stateManager.select.ranges[0].start.col,i=e.stateManager.select.ranges[0].start.row,r=e.stateManager.select.ranges[0].end.col,n=e.stateManager.select.ranges[0].end.row;t===r&&i===n&&e.getEditor(t,i)&&e.editorManager.startEditCell(t,i)}}else if("Tab"===r.key&&(e.options.keyboardOptions?.moveFocusCellOnTab??1)&&(r.preventDefault(),i.select.cellPos.col>=0&&i.select.cellPos.row>=0)){let t,r;i.select.cellPos.col===e.colCount-1?(r=Math.min(e.rowCount-1,i.select.cellPos.row+1),t=e.rowHeaderLevelCount):i.select.cellPos.row===e.rowCount-1?(r=e.rowCount-1,t=e.rowHeaderLevelCount):(r=i.select.cellPos.row,t=i.select.cellPos.col+1),e.selectCell(t,r),e.editorManager?.editingEditor&&(e.editorManager.completeEdit(),e.getElement().focus(),e.getEditor(t,r)&&e.editorManager.startEditCell(t,r))}n(r)})),r.on(e.getElement(),"copy",(t=>{if(e.keyboardOptions?.copySelected){const i=e.getCopyValue();if(Z(i)){if(t.preventDefault(),navigator.clipboard?.write){const t=t=>{const e=["<table>"],i=['<meta name="author" content="Visactor"/>','<style type="text/css">td{white-space:normal}br{mso-data-placement:same-cell}</style>'].join(""),r=t.split("\r\n");return r.forEach((function(t,i){const n=t.split("\t"),o=[];0===i&&e.push("<tbody>"),n.forEach((function(t,e){const i=t?t.toString().replace(/&/g,"&amp;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br>").replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g,"<br>\r\n").replace(/\x20{2,}/gi,(t=>`<span style="mso-spacerun: yes">${"&nbsp;".repeat(t.length-1)} </span>`)).replace(/\t/gi,"&#9;"):" ";o.push(`<td>${i}</td>`)})),e.push("<tr>",...o,"</tr>"),i===r.length-1&&e.push("</tbody>")})),e.push("</table>"),[i,e.join("")].join("")},e=t(i);navigator.clipboard.write([new ClipboardItem({"text/html":new Blob([e],{type:"text/html"}),"text/plain":new Blob([i],{type:"text/plain"})})])}else BL?window.clipboardData.setData("Text",i):t.clipboardData.setData("text/plain",i);e.fireListeners(IL.COPY_DATA,{cellRange:e.stateManager.select.ranges,copyData:i})}}})),r.on(e.getElement(),"paste",(t=>{if(e.keyboardOptions?.pasteValueToCell&&e.changeCellValues){if(e.editorManager?.editingEditor)return;if(e.stateManager.select.ranges?.length>0)if(navigator.clipboard?.read)navigator.clipboard.read().then((t=>{for(const e of t)e.types.includes("text/html")?a(e):1===e.types.length&&"text/plain"===e.types[0]&&h(e)}));else{const i=e.stateManager.select.ranges,r=Math.min(i[0].start.col,i[0].end.col),n=Math.min(i[0].start.row,i[0].end.row),o=(t.clipboardData||window.Clipboard).getData("text").split("\n"),s=[];o.forEach((function(t,e){const i=t.split("\t"),r=[];s.push(r),i.forEach((function(t,e){e===i.length-1&&(t=t.trim()),r.push(t)}))})),e.changeCellValues(r,n,s)}}})),r.on(e.getElement(),"contextmenu",(t=>{!1!==e.eventOptions?.preventDefaultContextMenu&&t.preventDefault()})),r.on(e.getContainer(),"resize",(t=>{0===t.width&&0===t.height||(Z(e.options.pixelRatio)||e.setPixelRatio(eN()),t.windowSizeNotChange||e.resize())}));const o=/<tr[^>]*>([\s\S]*?)<\/tr>/g,s=/<td[^>]*>([\s\S]*?)<\/td>/g;function a(t){const i=e.stateManager.select.ranges,r=i.length,n=Math.min(i[r-1].start.col,i[r-1].end.col),a=Math.min(i[r-1].start.row,i[r-1].end.row),h=Math.max(i[r-1].start.col,i[r-1].end.col),d=Math.max(i[r-1].start.row,i[r-1].end.row);let u=0,g=0,p=[];t.getType("text/html").then((t=>{t.text().then((t=>{if(t&&/(<table)|(<TABLE)/g.test(t)){const i=Array.from(t.matchAll(o));for(const t of i){const e=t[1],i=Array.from(e.matchAll(s)).map((t=>t[1].replace(/(<(?!br)([^>]+)>)/gi,"").replace(/<br(\s*|\/)>[\r\n]?/gim,"\n").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&#9;/gi,"\t").replace(/&nbsp;/g," ")));p.push(i),u=Math.max(u,i?.length??0)}g=p.length??0,p=c(p,g,u,d-a+1,h-n+1),e.changeCellValues(n,a,p,!0)}else navigator.clipboard.read().then((t=>{for(const e of t)e.types.includes("text/plain")&&e.getType("text/plain").then((t=>{t.text().then(l)}))}))}))}))}function l(t){const i=e.stateManager.select.ranges,r=i.length,n=Math.min(i[r-1].start.col,i[r-1].end.col),o=Math.min(i[r-1].start.row,i[r-1].end.row),s=Math.max(i[r-1].start.col,i[r-1].end.col),a=Math.max(i[r-1].start.row,i[r-1].end.row);let l=0,h=0,d=[];t.split("\n").forEach((function(t,e){const i=t.split("\t"),r=[];d.push(r),i.forEach((function(t,e){e===i.length-1&&(t=t.trim()),r.push(t)})),l=Math.max(l,r?.length??0)})),h=d.length??0,d=c(d,h,l,a-o+1,s-n+1),e.changeCellValues(n,o,d,!0)}function h(t){const i=e.stateManager.select.ranges,r=i.length,n=Math.min(i[r-1].start.col,i[r-1].end.col),o=Math.min(i[r-1].start.row,i[r-1].end.row),s=Math.max(i[r-1].start.col,i[r-1].end.col),a=Math.max(i[r-1].start.row,i[r-1].end.row);let l=0,h=0;t.getType("text/plain").then((t=>{t.text().then((t=>{const i=t.replace(/\r(?!\n)/g,"\r\n").split("\r\n");let r=[];i.length>1&&""===i[i.length-1]&&i.pop(),i.forEach((function(t,e){const i=t.split("\t"),n=[];r.push(n),i.forEach((function(t,e){t.includes("\n")&&(t=t.replace(/^"(.*)"$/,"$1").replace(/["]*/g,(t=>new Array(Math.floor(t.length/2)).fill('"').join("")))),n.push(t)})),l=Math.max(l,n?.length??0)})),h=r.length??0,r=c(r,h,l,a-o+1,s-n+1),e.changeCellValues(n,o,r,!0)}))}))}function c(t,e,i,r,n){if(n>i||r>e){if(n%i==0&&r%e==0){const o=[];for(let s=0;s<r;s++){const r=[];o.push(r);for(let o=0;o<n;o++){const n=s%e,a=o%i;r.push(t[n][a])}}return o}return t}return t}const d=t=>{e.eventManager.LastBodyPointerXY={x:t.x,y:t.y},e.eventManager.isDown=!0};t.globalEventListeners.push({name:"pointerdown",env:"body",callback:d}),document.body.addEventListener("pointerdown",d);const u=t=>{e.eventManager.LastBodyPointerXY=null,e.eventManager.isDown=!1,e.eventManager.isDraging=!1,e.eventManager.inertiaScroll.endInertia()};t.globalEventListeners.push({name:"pointerup",env:"document",callback:u}),document.addEventListener("pointerup",u);const g=r=>{if(e.eventManager.isDown&&e.eventManager.LastBodyPointerXY){const t=e.eventManager.LastBodyPointerXY?.x??r.x,i=e.eventManager.LastBodyPointerXY?.y??r.y;(Math.abs(t-r.x)>1||Math.abs(i-r.y)>1)&&(e.eventManager.isDraging=!0)}const{x:n,y:o}=e._getMouseAbstractPoint(r,!1);i.interactionState===fE.grabing&&(i.isResizeCol()?(t.dealColumnResize(n,o),e.hasListeners(IL.RESIZE_COLUMN)&&e.fireListeners(IL.RESIZE_COLUMN,{col:e.stateManager.columnResize.col,colWidth:e.getColWidth(e.stateManager.columnResize.col)})):i.isResizeRow()&&(t.dealRowResize(n,o),e.hasListeners(IL.RESIZE_ROW)&&e.fireListeners(IL.RESIZE_ROW,{row:e.stateManager.rowResize.row,rowHeight:e.getRowHeight(e.stateManager.rowResize.row)})));const s=e.stateManager.isSelecting();if(t.isDraging&&s&&e.stateManager.select.ranges?.length>0){const t=e.getDrawRange(),i=e.getFrozenRowsHeight(),r=e.getBottomFrozenRowsHeight(),s=e.getFrozenColsWidth(),a=e.getRightFrozenColsWidth(),l=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].start,h=e.stateManager.select.ranges[e.stateManager.select.ranges.length-1].end,c=(!1===e.isFrozenRow(l.row)||!1===e.isFrozenRow(h.row))&&e.getAllRowsHeight()>e.tableNoFrameHeight,d=(!1===e.isFrozenColumn(l.col)||!1===e.isFrozenColumn(h.col))&&e.getAllColsWidth()>e.tableNoFrameWidth;if((o>t.bottom-r||o<t.top+i)&&c||(n>t.right-a||n<t.left+s)&&d){e.eventManager.scrollXSpeed=0,e.eventManager.scrollYSpeed=0;let l=!1,h=!1,u=!1,g=!1;o>t.bottom-r&&c&&e.scrollTop+e.tableNoFrameWidth<e.getAllRowsHeight()?(l=!0,e.eventManager.scrollYSpeed=-(o-t.bottom+r)/50):o<t.top+i&&c&&e.scrollTop>0&&(h=!0,e.eventManager.scrollYSpeed=-(o-t.top-i)/50),n>t.right-a&&d&&e.scrollLeft+e.tableNoFrameWidth<e.getAllColsWidth()?(u=!0,e.eventManager.scrollXSpeed=-(n-t.right+a)/50):n<t.left+s&&d&&e.scrollLeft>0&&(g=!0,e.eventManager.scrollXSpeed=-(n-t.left-s)/50),e.eventManager.inertiaScroll.startInertia(e.eventManager.scrollXSpeed,e.eventManager.scrollYSpeed,1),e.eventManager.inertiaScroll.setScrollHandle(((c,d)=>{let p,f;XW({deltaX:-c,deltaY:-d},e.stateManager,!1),l?f=e.scrollTop+t.height-r-20:h&&(f=e.scrollTop+i+20),u?p=e.scrollLeft+t.width-a-20:g&&(p=e.scrollLeft+s+20);let m=!1,b=!1;u||g||(n>e.tableNoFrameWidth-e.getRightFrozenColsWidth()&&n<e.tableNoFrameWidth||n>0&&n<e.getFrozenColsWidth()?(p=n,b=!0):p=e.scrollLeft+n),l||h||(o>e.tableNoFrameHeight-e.getBottomFrozenRowsHeight()&&o<e.tableNoFrameHeight||o>0&&o<e.getFrozenRowsHeight()?(f=o,m=!0):f=e.scrollTop+o),e.stateManager.updateInteractionState(fE.grabing);const y=e.getTargetColAtConsiderRightFrozen(p,b),v=e.getTargetRowAtConsiderBottomFrozen(f,m);Z(y)&&Z(v)&&e.stateManager.updateSelectPos(y.col,v.row,!1,!1,!1,!0)}))}else e.eventManager.inertiaScroll.isInertiaScrolling()?e.eventManager.inertiaScroll.endInertia():e.eventManager.scrollYSpeed=0}};t.globalEventListeners.push({name:"pointermove",env:"body",callback:g}),document.body.addEventListener("pointermove",g)}(this),function(t){const e=t.table,i=e.stateManager,r=e.scenegraph;r.component.vScrollBar.addEventListener("pointerover",(t=>{i.showVerticalScrollBar()})),r.component.hScrollBar.addEventListener("pointerover",(t=>{i.showHorizontalScrollBar()})),r.component.vScrollBar.addEventListener("pointerout",(t=>{i.interactionState!==fE.scrolling&&i.hideVerticalScrollBar()})),r.component.hScrollBar.addEventListener("pointerout",(t=>{i.interactionState!==fE.scrolling&&i.hideHorizontalScrollBar()})),r.component.vScrollBar.addEventListener("pointermove",(t=>{r.table.stateManager.updateCursor("default"),t.stopPropagation()})),r.component.vScrollBar.addEventListener("pointerdown",(t=>{t.stopPropagation(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.vScrollBar.addEventListener("scrollDown",(t=>{r.table.eventManager.LastBodyPointerXY={x:t.x,y:t.y},r.table.eventManager.isDown=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.vScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.vScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.vScrollBar.addEventListener("scrollUp",(t=>{r.table.eventManager.isDraging=!1})),r.component.hScrollBar.addEventListener("pointermove",(t=>{r.table.stateManager.updateCursor("default"),t.stopPropagation()})),r.component.hScrollBar.addEventListener("pointerdown",(t=>{t.stopPropagation(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.hScrollBar.addEventListener("scrollDown",(t=>{r.table.eventManager.LastBodyPointerXY={x:t.x,y:t.y},r.table.eventManager.isDown=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(IL.MOUSEDOWN_TABLE)&&r.table.fireListeners(IL.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.hScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.hScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===fE.scrolling&&i.updateInteractionState(fE.default)})),r.component.hScrollBar.addEventListener("scrollUp",(t=>{r.table.eventManager.isDraging=!1}));const n=nL(i.updateVerticalScrollBar,20),o=nL(i.updateHorizontalScrollBar,20);r.component.vScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);n(e,t)})),r.component.hScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==fE.scrolling&&i.updateInteractionState(fE.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);o(e)}))}(this),function(t){const e=t.table,i=e.stateManager,r=e.scenegraph;t.touchMovePoints=[],e.scenegraph.tableGroup.addEventListener("touchstart",(e=>{e.target.isChildOf(r.component.vScrollBar)||e.target.isChildOf(r.component.vScrollBar)||(t.isTouchdown=!0,t.touchMovePoints.push({x:e.page.x,y:e.page.y,timestamp:Date.now()}))}));const n=r=>{if(t.touchMove&&r.preventDefault(),t.isTouchdown&&iN(r))if(t.downIcon?.attribute?.funcType===xE.dragReorder)r.preventDefault();else{t.touchMovePoints.length>4&&t.touchMovePoints.shift(),t.touchMovePoints.push({x:r.changedTouches[0].pageX,y:r.changedTouches[0].pageY,timestamp:Date.now()});const n=-t.touchMovePoints[t.touchMovePoints.length-1].x+t.touchMovePoints[t.touchMovePoints.length-2].x,o=-t.touchMovePoints[t.touchMovePoints.length-1].y+t.touchMovePoints[t.touchMovePoints.length-2].y;XW({deltaX:n,deltaY:o},i),r.cancelable&&("none"===e.internalProps.overscrollBehavior||Math.abs(o)>=Math.abs(n)&&0!==o&&qW(o,i)||Math.abs(o)<=Math.abs(n)&&0!==n&&ZW(n,i))&&r.preventDefault()}};window.addEventListener("touchmove",n,{passive:!1}),t.globalEventListeners.push({name:"touchmove",env:"window",callback:n});const o=i=>{if(t.touchEnd=!0,t.touchMove=!1,t.isTouchdown&&iN(i)){if(t.downIcon?.attribute?.funcType===xE.dragReorder)i.preventDefault();else if(t.touchMovePoints?.length){t.touchMovePoints.length>4&&t.touchMovePoints.shift(),t.touchMovePoints.push({x:i.changedTouches[0].pageX,y:i.changedTouches[0].pageY,timestamp:Date.now()});const r=t.touchMovePoints[0],n=t.touchMovePoints[t.touchMovePoints?.length-1],o=(n.x-r.x)/(n.timestamp-r.timestamp),s=(n.y-r.y)/(n.timestamp-r.timestamp);t.inertiaScroll.startInertia(o,s,.95),e.eventManager.inertiaScroll.setScrollHandle(((t,i)=>{XW({deltaX:-t,deltaY:-i},e.stateManager)}))}t.isTouchdown=!1,t.touchMovePoints=[]}};window.addEventListener("touchend",o),t.globalEventListeners.push({name:"touchend",env:"window",callback:o});const s=e=>{t.touchEnd=!0,t.touchMove=!1,t.isTouchdown&&(t.isTouchdown=!1,t.touchMovePoints=[])};window.addEventListener("touchcancel",s),t.globalEventListeners.push({name:"touchcancel",env:"window",callback:s})}(this),KW(this)}updateEventBinder(){setTimeout((()=>{YD(this.table)&&0===this.handleTextStickBindId?.length?(this.handleTextStickBindId.push(this.table.on(IL.SCROLL,(t=>{jD(this.table)}))),this.handleTextStickBindId.push(this.table.on(IL.RESIZE_COLUMN_END,(t=>{jD(this.table)}))),this.handleTextStickBindId.push(this.table.on(IL.RESIZE_ROW_END,(t=>{jD(this.table)})))):!YD(this.table)&&this.handleTextStickBindId&&(this.handleTextStickBindId.forEach((t=>{this.table.off(t)})),this.handleTextStickBindId=[]),VW(this.table)}),0)}bindSelfEvent(){if(this.table.isReleased)return;const t=this.table.stateManager;var e;this.table.on(IL.ICON_CLICK,(e=>{const{col:i,row:r,x:n,y:o,funcType:s,icon:a,event:l}=e;if(s===xE.dropDown)t.triggerDropDownMenu(i,r,n,o,l);else if(s===xE.sort)t.triggerSort(i,r,a,l);else if(s===xE.frozen)t.triggerFreeze(i,r,a);else if(s===xE.drillDown)(h=this.table).fireListeners(FW.DRILLMENU_CLICK,h.stateManager.drill);else if(s===xE.collapse||s===xE.expand){const e=!!t.select.ranges?.length;t.updateSelectPos(-1,-1),t.endSelectCells(!0,e),this.table.toggleHierarchyState(i,r)}var h})),this.table.on(IL.DROPDOWN_MENU_CLICK,(()=>{t.hideMenu()})),this.updateEventBinder(),e=this.table,"browser"===YE.mode&&e.on(IL.CLICK_CELL,(t=>{const{col:i,row:r}=t;let n;n=e.internalProps.layoutMap.isHeader(i,r)?e.isPivotTable()?e._getHeaderLayoutMap(i,r).headerType:e.getHeaderDefine(i,r).headerType:e.getBodyColumnType(i,r);const o=e.isHeader(i,r)?e.getHeaderDefine(i,r):e.getBodyColumnDefine(i,r),s=e.getCellValue(i,r),a=e.getCellOriginValue(i,r);if("link"===n){if(!1===o.linkJump)return;const t=o.templateLink,n=!1!==o.linkDetect;let l;if(t){const n=e.getCellOriginRecord(i,r),o=Object.assign({__value:s,__dataValue:a},n),h=/\{\s*(\S+?)\s*\}/g;l=t.replace(h,((t,e)=>o[e]))}else if(n){if(!JL.test(s))return;l=s}else l=s;window.open(l)}else if("image"===n){const{clickToPreview:t}=o;if(!1===t)return;const e=document.createElement("div");e.style.width="100%",e.style.height="100%",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.backgroundColor="rgba(30, 30, 30, 0.4)",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.overflow="hidden",e.style.zIndex="9999",e.addEventListener("click",(t=>{t.target===e&&document.body.removeChild(e)}));const i=new Image;i.src=s,i.style.maxWidth="80%",i.style.maxHeight="80%",e.appendChild(i),document.body.appendChild(e)}else if("video"===n){const{clickToPreview:t}=o;if(!1===t)return;const e=document.createElement("div");e.style.width="100%",e.style.height="100%",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.backgroundColor="rgba(30, 30, 30, 0.4)",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.overflow="hidden",e.style.zIndex="9999",e.addEventListener("click",(t=>{t.target===e&&document.body.removeChild(e)}));const i=document.createElement("video");i.src=s,i.style.maxWidth="80%",i.style.maxHeight="80%",i.setAttribute("preload","auto"),i.setAttribute("controls","true"),e.appendChild(i),document.body.appendChild(e)}})),this.table.on(IL.DBLCLICK_CELL,(t=>{if(t.federatedEvent){const e=AO(t.federatedEvent),i=this.table.scenegraph.getResizeColAt(e.abstractPos.x,e.abstractPos.y,e.eventArgs?.targetCell);if(this.table.eventManager.checkCellFillhandle(e))this.table.fireListeners(IL.DBLCLICK_FILL_HANDLE,{});else if(this.table._canResizeColumn(i.col,i.row)&&i.col>=0){this.table.scenegraph.updateAutoColWidth(i.col),this.table.internalProps._widthResizedColMap.add(i.col),this.table.scenegraph.updateChartSize(i.col);const t=this.table.stateManager;t.columnResize.col<t.table.frozenColCount&&!t.table.isPivotTable()&&!t.table.transpose&&t.table.scenegraph.component.setFrozenColumnShadow(t.table.frozenColCount-1,t.columnResize.isRightFrozen);const e=[];for(let t=0;t<this.table.colCount;t++)e.push(this.table.getColWidth(t));this.table.fireListeners(IL.RESIZE_COLUMN_END,{col:i.col,colWidths:e})}}})),this.table.isPivotTable()&&function(t){const e=t.internalProps.layoutMap.rowsDefine,i=t.internalProps.layoutMap.columnsDefine;for(let t=0;t<e.length;t++){const i=e[t];if("string"!=typeof i&&(i.drillDown||i.drillUp))return!0}for(let t=0;t<i.length;t++){const e=i[t];if("string"!=typeof e&&(e.drillDown||e.drillUp))return!0}return!1}(this.table)&&function(t){t.on(IL.MOUSEENTER_CELL,(e=>{const{col:i,row:r}=e;if(-1===i||-1===r)return;const n=t.internalProps.layoutMap.getHeaderDimension(i,r);n?.drillDown||n?.drillUp?t.stateManager.updateDrillState(n.dimensionKey,n.title,n.drillDown,n.drillUp,i,r):t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)})),t.on(IL.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)}))}(this.table),VW(this.table),function(t){t.isPivotChart()&&t.scenegraph.tableGroup.addEventListener("click",(e=>{if(!t.stateManager.columnMove.moving&&!t.stateManager.columnResize.resizing)if("axis-label"===e.target.name){const i=AO(e),{col:r,row:n}=i.eventArgs,o=t.internalProps.layoutMap;let s,a;o.indicatorsAsCol?(s=o.getDimensionKeyInChartSpec(o.rowHeaderLevelCount,n),a=o.getCellHeaderPaths(o.rowHeaderLevelCount-2,n).rowHeaderPaths):(s=o.getDimensionKeyInChartSpec(r,o.columnHeaderLevelCount),a=o.getCellHeaderPaths(r,o.columnHeaderLevelCount-1).colHeaderPaths);const l=a.map((t=>({key:t.dimensionKey,value:t.value}))).filter((t=>t.key));if(l.push({key:s,value:e.target.attribute.text}),t._selectedDimensionInChart.length&&function(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(t[i].key!==e[i].key||t[i].value!==e[i].value)return!1;return!0}(t._selectedDimensionInChart,l))return;t._selectedDimensionInChart=l,o.updateDataStateToChartInstance(),fW(t.scenegraph),t.scenegraph.updateNextFrame()}else t._selectedDimensionInChart?.length&&(t._selectedDimensionInChart.length=0,t.internalProps.layoutMap.updateDataStateToChartInstance(),fW(t.scenegraph),t.scenegraph.updateNextFrame())}))}(this.table),function(t){t.isPivotChart()&&(t.on(IL.MOUSEENTER_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=rN(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(IL.MOUSEENTER_AXIS,e)}}))})),t.on(IL.MOUSELEAVE_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=rN(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(IL.MOUSELEAVE_AXIS,e)}}))})))}(this.table)}dealTableHover(t){if(!t)return void this.table.stateManager.updateHoverPos(-1,-1);const{eventArgs:e}=t;e?this.table.stateManager.updateHoverPos(e.col,e.row):this.table.stateManager.updateHoverPos(-1,-1)}dealIconHover(t){const{eventArgs:e}=t;e?this.table.stateManager.updateHoverIcon(e.col,e.row,e.target,e.targetCell,e.event):this.table.stateManager.updateHoverIcon(-1,-1,void 0,void 0)}dealMenuHover(t){}dealTableSelect(t,e){if(!t)return this.table.stateManager.updateSelectPos(-1,-1),!1;const{eventArgs:i}=t;if(i){if("checkbox"===i.target.name||"radio"===i.target.name)return!1;const r=this.table.getBodyColumnDefine(i.col,i.row);return this.table.isHeader(i.col,i.row)&&(r?.disableHeaderSelect||this.table.stateManager.select?.disableHeader)||!this.table.isHeader(i.col,i.row)&&r?.disableSelect?(e||this.table.stateManager.updateSelectPos(-1,-1),!1):!this.table.isPivotChart()||"axis-label"!==t?.eventArgs?.target.name&&"chart"!==t?.eventArgs?.target.type?(this.table.stateManager.updateSelectPos(i.col,i.row,i.event.shiftKey,i.event.ctrlKey||i.event.metaKey,!1,e),!0):(this.table.stateManager.updateSelectPos(-1,-1),!1)}return!1}dealFillSelect(t,e){const{eventArgs:i}=t;if(i){if(this.table.stateManager.select?.ranges?.length&&this.table.stateManager.isFillHandle()){let r,n;const o=this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1];e&&(Z(this.table.stateManager.fillHandle.directionRow)||(Math.abs(this.table.stateManager.fillHandle.startY-t.abstractPos.y)>=Math.abs(this.table.stateManager.fillHandle.startX-t.abstractPos.x)?this.table.stateManager.fillHandle.directionRow=!0:this.table.stateManager.fillHandle.directionRow=!1),Math.abs(this.table.stateManager.fillHandle.startY-t.abstractPos.y)>=Math.abs(this.table.stateManager.fillHandle.startX-t.abstractPos.x)?this.table.stateManager.fillHandle.startY-t.abstractPos.y>0?this.table.stateManager.fillHandle.direction="top":this.table.stateManager.fillHandle.direction="bottom":this.table.stateManager.fillHandle.startX-t.abstractPos.x>0?this.table.stateManager.fillHandle.direction="left":this.table.stateManager.fillHandle.direction="right",this.table.stateManager.fillHandle.directionRow?(r=i.row,n=o.end.col):(r=o.end.row,n=i.col)),this.table.stateManager.updateSelectPos(e?n:o.end.col,e?r:o.end.row,!0,i.event.ctrlKey||i.event.metaKey,!1,e)}else this.table.stateManager.updateSelectPos(i.col,i.row,i.event.shiftKey,i.event.ctrlKey||i.event.metaKey,!1,e);return!0}return!1}deelTableSelectAll(){this.table.stateManager.updateSelectPos(-1,-1,!1,!1,!0)}dealMenuSelect(t){}checkColumnResize(t,e){const{eventArgs:i}=t,r=this.table.scenegraph.getResizeColAt(t.abstractPos.x,t.abstractPos.y,i?.targetCell);return!!(this.table._canResizeColumn(r.col,r.row)&&r.col>=0)&&(e&&this.table.stateManager.startResizeCol(r.col,t.abstractPos.x,t.abstractPos.y,r.rightFrozen),!0)}checkRowResize(t,e){const{eventArgs:i}=t;if(i){const r=this.table.scenegraph.getResizeRowAt(t.abstractPos.x,t.abstractPos.y,i.targetCell);if(this.table._canResizeRow(r.col,r.row)&&r.row>=0)return e&&this.table.stateManager.startResizeRow(r.row,t.abstractPos.x,t.abstractPos.y,r.bottomFrozen),!0}return!1}checkCellFillhandle(t,e){if(this.table.options.excelOptions?.fillHandle){const{eventArgs:i}=t;if(i&&this.table.stateManager.select?.ranges?.length){const i=Math.max(this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].start.col,this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].end.col),r=Math.max(this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].start.row,this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1].end.row),n=this.table.scenegraph.highPerformanceGetCell(i,r).globalAABBBounds,o=Math.abs(t.abstractPos.x-n.x2),s=Math.abs(t.abstractPos.y-n.y2),a=18;if(this.table.stateManager.fillHandle?.isFilling||o<=a/2&&s<=a/2)return e&&this.table.stateManager.startFillSelect(t.abstractPos.x,t.abstractPos.y),!0}}return!1}dealColumnResize(t,e){this.table.stateManager.updateResizeCol(t,e)}dealRowResize(t,e){this.table.stateManager.updateResizeRow(t,e)}chechColumnMover(t){const{eventArgs:e}=t;return!!(e&&this.table.isHeader(e.col,e.row)&&(function(t,e,i){for(let r=0;r<i.length;r++)if(ML(i[r],t,e))return!0;return!1}(e.col,e.row,this.table.stateManager.select.ranges)||this.table.options.select?.disableHeaderSelect||this.table.options.select?.disableSelect)&&this.table._canDragHeaderPosition(e.col,e.row))&&(this.table.stateManager.startMoveCol(e.col,e.row,t.abstractPos.x,t.abstractPos.y),!0)}dealColumnMover(t){const{eventArgs:e}=t;Z(e.col)&&Z(e.row)&&this.table.stateManager.updateMoveCol(e.col,e.row,t.abstractPos.x,t.abstractPos.y)}startColumnResize(t){}dealIconClick(t,e){const{eventArgs:i}=e,{target:r,event:n,col:o,row:s}=i||{target:t.target,event:t,col:-1,row:-1},a=r;if(a.role&&a.role.startsWith("icon-"))return this.table.fireListeners(IL.ICON_CLICK,{name:a.name,x:(a.globalAABBBounds.x1+a.globalAABBBounds.x2)/2,y:a.globalAABBBounds.y2,col:o,row:s,funcType:a.attribute.funcType,icon:a,event:n}),!0;if(r instanceof Kc){const t=r.pickIcon(n.global);if(t)return this.table.fireListeners(IL.ICON_CLICK,{name:t.attribute.id,x:t.globalX+t.globalAABBBounds.width()/2,y:t.globalY+t.AABBBounds.height(),col:o,row:s,funcType:t.attribute.funcType,icon:t,event:n}),!0}return!1}release(){this.gesture.release(),this.globalEventListeners.forEach((t=>{"document"===t.env?document.removeEventListener(t.name,t.callback):"body"===t.env?document.body.removeEventListener(t.name,t.callback):"window"===t.env&&window.removeEventListener(t.name,t.callback)})),this.globalEventListeners=[]}}const oN=t=>{const e=t.value;return Number(e)>80?"#20a8d8":Number(e)>50?"#4dbd74":Number(e)>20?"#ffc107":"#f86c6b"};class sN extends LE{_showBar;_barColor;_barBgColor;_barPositiveColor;_barNegativeColor;_barAxisColor;_barHeight;_barBottom;_barPadding;_showBarMark;_barMarkPositiveColor;_barMarkNegativeColor;_barMarkWidth;_barMarkPosition;_barRightToLeft;static get DEFAULT(){return QW||(QW=new sN)}constructor(t={},e={}){super(t,e),this._showBar=t.showBar??!0,this._barColor=t.barColor??oN,this._barPositiveColor=t.barPositiveColor??"#4dbd74",this._barNegativeColor=t.barNegativeColor??"#f86c6b",this._barAxisColor=t.barAxisColor??"black",this._barBgColor=t.barBgColor,this._barHeight=t.barHeight??3,this._barHeight=t.barHeight??3,this._barBottom=t.barBottom??0,this._barPadding=t.barPadding??[0,0,0,0],this._showBarMark=t.showBarMark??!1,this._barMarkPositiveColor=t.barMarkPositiveColor??"#4dbd74",this._barMarkNegativeColor=t.barMarkNegativeColor??"#f86c6b",this._barMarkWidth=t.barMarkWidth??2,this._barMarkPosition=t.barMarkPosition??"right",this._barRightToLeft=t.barRightToLeft??!1}get showBar(){return this._showBar}set showBar(t){this._showBar=t}get barColor(){return this._barColor}set barColor(t){this._barColor=t}get barBgColor(){return this._barBgColor}set barBgColor(t){this._barBgColor=t}get barHeight(){return this._barHeight}set barHeight(t){this._barHeight=t}get barBottom(){return this._barBottom}set barBottom(t){this._barBottom=t}get barPositiveColor(){return this._barPositiveColor}set barPositiveColor(t){this._barPositiveColor=t}get barNegativeColor(){return this._barNegativeColor}set barNegativeColor(t){this._barNegativeColor=t}get barAxisColor(){return this._barAxisColor}set barAxisColor(t){this._barAxisColor=t}get barPadding(){return this._barPadding}set barPadding(t){this._barPadding=t}get showBarMark(){return this._showBarMark}set showBarMark(t){this._showBarMark=t}get barMarkPositiveColor(){return this._barMarkPositiveColor}set barMarkPositiveColor(t){this._barMarkPositiveColor=t}get barMarkNegativeColor(){return this._barMarkNegativeColor}set barMarkNegativeColor(t){this._barMarkNegativeColor=t}get barMarkWidth(){return this._barMarkWidth}set barMarkWidth(t){this._barMarkWidth=t}get barMarkPosition(){return this._barMarkPosition}set barMarkPosition(t){this._barMarkPosition=t}get barRightToLeft(){return this._barRightToLeft}set barRightToLeft(t){this._barRightToLeft=t}clone(){return new sN(this,null)}}const aN=["type","content","font","color","width","height","marginRight","marginLeft","src","svg","name","path","positionType","tooltip","hover","cursor","shape","interactive"];class lN{expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=NO();this.expandIcon=e[_E.expandIconName],this.collapseIcon=e[_E.collapseIconName]}getIcons(t,e,i,r,n){const o=[],s=this.getHierarchyIcon(t,e);s&&o.push(s);const{icon:a}=this._table.getBodyColumnDefine(t,e);if(a){let n;if("function"==typeof a){n=a({col:t,row:e,value:i,dataValue:r,table:this._table})}else n=a;const s=NO(),l=t=>{let e;e="string"==typeof t?s[t]:t,e&&o.push(e)};Array.isArray(n)?n.forEach(((t,e)=>{l(t)})):l(n)}return n&&o.forEach(((i,r)=>{(i.content||i.src)&&(o[r]=this.getCellIconFromRecordValue(i,t,e))})),o}getStyleClass(t){switch(t){case"text":case"link":return IE;case"image":case"video":return HE;case"chart":case"sparkline":return LE;case"progressbar":return sN;case"checkbox":return zE;case"radio":return DE}return IE}getCellIconFromRecordValue(t,e,i){if(Array.isArray(t))return t.map((t=>this.getCellIconFromRecordValue(t,e,i)));if(!PL.isObject(t)||"function"==typeof t)return this._table.getFieldData(t,e,i);const r={},n=t;return aN.forEach((t=>{if(void 0!==n[t]){const o=this._table.getFieldData(n[t],e,i);null!=o?r[t]=o:this._table._hasField?.(n[t],e,i)||(r[t]=n[t])}})),r}getHierarchyIcon(t,e){const i=this._table.getHierarchyState(t,e);return i===yE.expand?this.expandIcon:i===yE.collapse?this.collapseIcon:void 0}getHierarchyIconWidth(){return this.expandIcon.width+(this.expandIcon.marginLeft??0)+(this.expandIcon.marginRight??0)}}function hN(t,e){const i=document.createElement(t);return e&&i.classList.add(...e),i}!function(){if("node"===YE.mode)return;const t=document.createElement("style");t.id="vtable-menu-styleSheet",t.textContent="\n@keyframes vtable__menu-element--shown-animation {\n\t0% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n.vtable__menu-element {\n\tposition: absolute;\n\tbox-sizing: border-box;\n\tborder-radius: 4px;\n\tbackground-color: #fff;\n\tpadding: 6px 0;\n\t/* pointer-events: none; */\n\tuser-select: none;\n\tcolor: #000;\n\tmax-width: 300px;\n\tz-index: 99999;\n\tborder: #CCC 0.5px solid;\n\tcursor: default;\n\twidth: max-content;\n\tbox-shadow: 0px 8px 16px rgba(27, 31, 35, 0.12);\n}\n.vtable__menu-element--hidden {\n\topacity: 0;\n\t/* transform: translate(-50%, -50%); */\n\ttransition: opacity 75ms linear;\n\tz-index: -9999;\n}\n.vtable__menu-element--shown {\n\topacity: 1;\n\t/* transform: translate(-50%, -50%); */\n\tanimation: vtable__menu-element--shown-animation 150ms ease-out;\n}\n.vtable__menu-element__content {\n\tfont-family: Roboto;\n\tfont-size: 12px;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\t/* height: 100%; */\n\tline-height: 30px;\n}\n.vtable__menu-element__item {\n\theight: 32px;\n\tpadding: 0px 12px;\n\tcursor: pointer;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-start;\n}\n.vtable__menu-element__item:hover {\n\tbackground-color: rgba(27, 31, 35, 0.06);\n}\n.vtable__menu-element__icon{\n\t/* vertical-align: top; */\n\tdisplay: flex;\n\t/* line-height: 30px; */\n\tmargin-right: 6px;\n}\n.vtable__menu-element__no-event {\n\tpointer-events: none;\n}\n.vtable__menu-element--select {\n\tcolor: #2E68CF;\n}.vtable__menu-element--normal {\n\tcolor: rgba(20, 20, 20, 0.9);;\n}\n.vtable__menu-element__split {\n\theight: 0px;\n\tborder: 1px solid rgb(209, 213, 218);\n\tmargin: 5px 0;\n}\n.vtable__menu-element__title {\n\tcolor: rgb(149, 149, 149);\n}\n.vtable__menu-element__arrow {\n\tposition: absolute;\n\tright: 3px;\n\tfont-weight: bold;\n\tmargin-top: 1px;\n}\n.vtable__menu-element__item-text {\n\tmargin-right: 15px;\n}\n",document.head.appendChild(t)}();const cN="vtable__menu-element",dN=`${cN}__item`,uN=`${cN}__content`,gN=`${cN}--hidden`,pN=`${cN}--shown`,fN=`${cN}--normal`,mN=`${cN}--select`,bN=`${cN}__icon`,yN=`${cN}__split`,vN=`${cN}__title`,CN=`${cN}__arrow`,wN=`${cN}__no-event`,xN=`${cN}__item-text`;function _N(){return hN("div",[cN,gN])}function SN(t,e,i,r,n,o){const s=t.getCellRange(r,n);for(let r=0;r<e.length;r++){const n=e[r];let{col:o,row:a}=n;const{field:l,menuKey:h}=n;if("number"!=typeof o||"number"!=typeof a)if(t.isPivotTable()&&(Array.isArray(l),1)){const e=t.internalProps.layoutMap.getPivotCellAdress(l);if(!e)continue;o=e.col,a=e.row}else{const e=t.internalProps.layoutMap.getHeaderCellAddressByField(l);if(!e)continue;o=e.col,a=e.row}if(Z(o)&&Z(a)&&ML(s,o,a)&&i===h)return!0}return!1}class AN{_handler;_rootElement;_secondElement;_menuInstanceInfo;_showChildrenIndex;_mouseEnterSecondElement;constructor(t){this._handler=new WL,this._rootElement=_N(),this._secondElement=_N(),this._secondElement.sub=!0,this._showChildrenIndex=-1,this._rootElement.addEventListener("wheel",(t=>{t.stopPropagation()})),this._rootElement?.addEventListener("mousedown",(t=>{t.stopPropagation(),t.preventDefault()})),this._rootElement?.addEventListener("touchend",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(gN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,n);t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(gN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,n);t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(e=>{if(this._rootElement.classList.contains(gN))return;e.stopPropagation();const{hasChildren:i,dropDownIndex:r,col:n,row:o,sub:s}=e.target;if(i){this._showChildrenIndex=r;const i=this._secondElement;i?.classList.remove(gN),i?.classList.add(pN),i.innerHTML="";const s=this._menuInstanceInfo.content[r]?.children;for(let e=0;e<s.length;e++){const r=s[e],a=MN(r,!!t.stateManager.menu.dropDownMenuHighlight&&SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof r?r?.menuKey||r?.text:r,n,o));a.col=n,a.row=o,a.dropDownIndex=e,"string"==typeof r?(a.text=r,a.menuKey=r):"object"==typeof r&&(a.text=r.text,a.menuKey=r.menuKey||r.text),a.sub=!0,a.sub=!0,i.appendChild(a)}const a=e.target.getBoundingClientRect();this._bindSecondElement(t,n,o,a.right,a.top)}else if(i&&this._showChildrenIndex===r){const t=this._secondElement;t?.classList.remove(gN),t?.classList.add(pN)}else!s&&this._secondElement?.classList.contains(pN)&&setTimeout((()=>{if(!0!==this._mouseEnterSecondElement){this._showChildrenIndex=-1;const t=this._secondElement;t?.classList.remove(pN),t?.classList.add(gN)}}),300)})),this._secondElement?.addEventListener("wheel",(t=>{t.stopPropagation()})),this._secondElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(gN)||t.stopPropagation()})),this._secondElement?.addEventListener("mouseenter",(t=>{this._mouseEnterSecondElement=!0})),this._secondElement?.addEventListener("mouseleave",(t=>{this._mouseEnterSecondElement=!1})),this._secondElement?.addEventListener("mousedown",(t=>{t.stopPropagation(),t.preventDefault()})),this._secondElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._secondElement.classList.contains(gN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r);let h=!1;this._menuInstanceInfo.content.forEach(((e,n)=>{if("object"==typeof e&&e.children&&e.children.length)for(let n=0;n<e.children.length;n++){const s=e.children[n];if(SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof s?s?.menuKey:s,i,r)&&o===("object"==typeof s?s?.menuKey:s))return void(h=!0)}})),t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,cellHeaderPaths:t.isPivotTable()?t.getCellHeaderPaths(i,r):void 0,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()}))}get rootElement(){return this._rootElement}release(){this.unbindFromCell();const t=this._rootElement;t?.parentElement&&t.parentElement.removeChild(t),this._handler.release(),delete this._rootElement}bindToCell(t,e,i,r){const n=this._rootElement,o=this._secondElement;if(this._menuInstanceInfo=r,n?.classList.remove(pN),n?.classList.add(gN),o?.classList.remove(pN),o?.classList.add(gN),this._canBindToCell(t,e,i)){if(n.innerHTML="",Array.isArray(r.content)){const o=r.content;for(let r=0;r<o?.length;r++){const s=o[r];let a=!!t.stateManager.menu.dropDownMenuHighlight&&SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof s?s?.menuKey||s?.text:s,e,i);if(t.stateManager.menu.dropDownMenuHighlight&&"object"==typeof s&&Array.isArray(s.children)&&s.children.length)for(let r=0;r<s.children.length;r++){const n=s.children[r];if(SN(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof n?n?.menuKey||n?.text:n,e,i)){a=!0;break}}const l=MN(s,a);l.col=e,l.row=i,l.dropDownIndex=r,"string"==typeof s?(l.text=s,l.menuKey=s):"object"==typeof s&&(l.text=s.text,l.menuKey=s.menuKey||s.text,s.children?.length&&(l.hasChildren=!0)),n.appendChild(l)}}if(this._bindToCell(t,e,i,r.position,r.referencePosition))return n?.classList.add(pN),n?.classList.remove(gN),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement,e=this._secondElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(pN),t.classList.add(gN)),e?.parentElement&&(e.classList.remove(pN),e.classList.add(gN))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),n=t.getElement(),{top:o,bottom:s,left:a,right:l}=r;if(t.isFrozenCell(e,i))return!0;if(s<t.getFrozenRowsHeight()||l<t.getFrozenColsWidth()||a>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||o>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=n;return!(h<o)&&!(c<a)}_bindToCell(t,e,i,r,n){const o=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(o){o.parentElement!==s&&s.appendChild(o),o.style.left="0px";const t=.8*a;o.style.maxWidth=`${t}px`;const e=o.clientWidth,i=o.clientHeight;let h,c;return r?(h=r.x,c=r.y):n&&(h=n.rect.right-e,c=n.rect.bottom),c+i>l&&(c=l-i),c<0&&(c/=2),o.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),o.style.left=`${h}px`,!0}return!1}_bindSecondElement(t,e,i,r,n){const o=this._secondElement,s=this._rootElement,a=t.getElement(),{width:l,left:h,top:c}=t.internalProps.element.getBoundingClientRect(),{x:d,y:u,width:g}=s.getBoundingClientRect();if(o){o.parentElement!==a&&a.appendChild(o),o.style.left="0px";const t=.8*l;o.style.maxWidth=`${t}px`;const e=o.clientWidth,i=n-4-c,s=r-h;o.style.top=`${i}px`;let d=s;return d+e>l?d=d-e-g:d+=4,o.style.left=`${d}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:n,width:o,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+o+5&&e>n-5&&e<n+s+5)return!0;if(this._secondElement){const{x:r,y:n,width:o,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+o+5&&e>n-5&&e<n+s+5)return!0}return!1}}function MN(t,e){const i=hN("div",[dN,e?mN:fN]);if("string"==typeof t){const e=hN("span",[uN,wN,xN]);e.innerHTML=t,i.appendChild(e)}else if("object"==typeof t){const r=t.type??"item";if("split"===r)return i?.classList.add(yN),i;if(t?.icon?.svg)if(JL.test(t.icon.svg)){const e=new Image;t.icon.width?e.style.width=t.icon.width.toString()+"px":e.style.width="16px",t.icon.height?e.style.height=t.icon.height.toString()+"px":e.style.height="16px",e.src=t.icon.svg,i.appendChild(e)}else{const r=hN("span",[bN,wN]);r.innerHTML=e&&t.selectedIcon&&t.selectedIcon.svg?t.selectedIcon.svg:t.icon.svg,t.icon.width&&r.children[0].setAttribute("width",t.icon.width.toString()),t.icon.height&&r.children[0].setAttribute("height",t.icon.height.toString()),i.appendChild(r)}const n=hN("span",[uN,wN,xN]);if(n.innerHTML=t.text,i.appendChild(n),"title"===r)i?.classList.add(wN,vN);else if(t?.children?.length){const t=hN("span",[uN,wN,CN]);t.innerHTML=e?'<svg width="8" height="12" viewBox="0 0 10 17" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align: baseline"><path d="M1.78186 16.7729L0.300378 15.2915L6.8189 8.77295L0.300377 2.25443L1.78186 0.77295L9.78186 8.77295L1.78186 16.7729Z" fill="#2E68CF" fill-opacity="0.65"></path></svg>':'<svg width="8" height="12" viewBox="0 0 10 17" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align: baseline"><path d="M1.78186 16.7729L0.300378 15.2915L6.8189 8.77295L0.300377 2.25443L1.78186 0.77295L9.78186 8.77295L1.78186 16.7729Z" fill="#141414" fill-opacity="0.65"></path></svg>',i.appendChild(t)}}return i}let TN;class RN extends GE{static get DEFAULT(){return TN||(TN=new RN)}constructor(t={},e={}){super(t,e),this.textAlign=(t.textAlign??e?.textAlign)||"center"}clone(){return new RN(this)}}class BN{normalIcon;upIcon;downIcon;freezeIcon;frozenIcon;frozenCurrentIcon;dropDownAbsoluteIcon;expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=NO();this.freezeIcon=e[_E.freezeIconName],this.frozenIcon=e[_E.frozenIconName],this.frozenCurrentIcon=e[_E.frozenCurrentIconName],this.normalIcon=e[_E.normalIconName],this.upIcon=e[_E.upwardIconName],this.downIcon=e[_E.downwardIconName],this.dropDownAbsoluteIcon=e[_E.dropdownIconName],this.expandIcon=e[_E.expandIconName],this.collapseIcon=e[_E.collapseIconName]}getIcons(t,e){const i=[];if(this._table.isPivotTable()){const{showSort:r,sort:n}=this._table.internalProps.layoutMap.getHeader(t,e);if(r){let r=this._table.getPivotSortState(t,e);r&&(r=r.toUpperCase());const n="ASC"===r?this.downIcon:"DESC"===r?this.upIcon:this.normalIcon;n&&i.push(n)}else if(n){const r=this.getSortIconForPivotTable(this._table.getPivotSortState(t,e),this._table,t,e);r&&i.push(r)}}else{const r=this._table.sortState;let n;n=void 0;const o=this._table.getCellRange(t,e);if(r)if(Array.isArray(r))for(let t=0;t<r.length;t++){const e=r[t],i=this._table._getHeaderCellBySortState(e);if(i&&ML(o,i.col,i.row)){({order:n}=e);break}}else{const t=this._table._getHeaderCellBySortState(r);t&&ML(o,t.col,t.row)&&({order:n}=r)}const s=this.getSortIcon(n,this._table,t,e);s&&i.push(s)}if(this._table.showFrozenIcon&&t<this._table.allowFrozenColCount){const r=this.getFrozenIcon(t,e);r&&i.push(r)}if(this.checkDropDownIcon(this._table,t,e)){const t=this.dropDownAbsoluteIcon;i.push(t)}const r=this.getDropDownStateIcons(this._table,t,e);r.length&&i.push(...r);const{headerIcon:n}=this._table._getHeaderLayoutMap(t,e),o=this.getHierarchyIcon(t,e);if(o&&i.push(o),n){let r;if("function"==typeof n){r=n({col:t,row:e,value:this._table.getCellValue(t,e),dataValue:this._table.getCellOriginValue(t,e),table:this._table})}else r=n;const o=NO(),s=t=>{let e;e="string"==typeof t?o[t]:t,e&&i.push(e)};Array.isArray(r)?r.forEach(((t,e)=>{s(t)})):s(r)}return i}getFrozenIcon(t,e){if(this._table.isPivotTable()||this._table.transpose)return null;if(this._table.rightFrozenColCount&&t>=this._table.colCount-this._table.rightFrozenColCount)return null;const i=this._table.getHeaderDefine(t,e);if(i.columns&&i.columns.length>0)return null;let r=this.freezeIcon;return this._table.options.frozenColCount-1>t?r=this.frozenIcon:this._table.options.frozenColCount-1===t&&(r=this.frozenCurrentIcon),r}getSortIcon(t,e,i,r){const n="asc"===t?this.downIcon:"desc"===t?this.upIcon:this.normalIcon,o=e.getHeaderDefine(i,r);return!o||!1===o.showSort||!Z(o.showSort)&&!o.sort||o.columns&&o.columns.length>0?null:n}getSortIconForPivotTable(t,e,i,r){const n=e.getHeaderDefine(i,r);if(!n||!1===n.showSort||!Z(n.showSort)&&!n.sort||n.columns&&n.columns.length>0)return null;return"ASC"===t?this.downIcon:"DESC"===t?this.upIcon:this.normalIcon}getDropDownStateIcons(t,e,i){const r=t.getHeaderDefine(e,i),n=t._getHeaderLayoutMap(e,i),{dropDownMenu:o}=n,s=[];if(Array.isArray(o)&&o.length||Array.isArray(t.globalDropDownMenu)&&t.globalDropDownMenu.length&&!r?.columns?.length){const r=o||t.globalDropDownMenu;let n=-1,a=-1;for(let o=0;o<r.length;o++){const s=r[o];if("object"==typeof s&&s.children&&s.children.length)for(let r=0;r<s.children.length;r++){const l=s.children[r];if(t.stateManager.menu?.dropDownMenuHighlight&&SN(t,t.stateManager.menu?.dropDownMenuHighlight,"object"==typeof l?l?.menuKey:l,e,i)){n=o,a=r;break}}if(t._dropDownMenuIsHighlight(e,i,o)){n=o;break}}if(-1!==n){let e;e=-1!==a?(o||t.globalDropDownMenu)[n].children[a]:(o||t.globalDropDownMenu)[n],e.stateIcon&&(e.stateIcon.svg?s.push({type:"svg",name:e.stateIcon.src||e.stateIcon.svg,width:e.stateIcon.width||22,height:e.stateIcon.height||22,svg:e.stateIcon.svg,positionType:wE.right,marginRight:0,funcType:xE.dropDownState,interactive:!1}):e.stateIcon.src&&s.push({type:"image",name:e.stateIcon.src||e.stateIcon.svg,width:e.stateIcon.width||22,height:e.stateIcon.height||22,src:e.stateIcon.src,positionType:wE.right,marginRight:0,funcType:xE.dropDownState,interactive:!1}))}}return s}getDropDownIconRect(t,e,i){const r=this.downIcon.hover?.width??this.downIcon?.width??0,n=this.downIcon.hover?.height??this.downIcon?.height??0,o=t.right-2-r,s=t.right-2;let a;a="middle"===i?t.top+t.height/2-r/2:"top"===i?t.top+e/2:"bottom"===i?t.bottom-2*e:t.top;return{left:o,right:s,top:a,bottom:n+a,width:r,height:n}}getHierarchyIcon(t,e){const{hierarchyState:i}=this._table._getHeaderLayoutMap(t,e);if(i){if(i===yE.expand)return this.expandIcon;if(i===yE.collapse)return this.collapseIcon}}getHierarchyIconWidth(){return this.expandIcon.width+(this.expandIcon.marginLeft??0)+(this.expandIcon.marginRight??0)}checkDropDownIcon(t,e,i){if(t.isPivotTable()){const r=t._getHeaderLayoutMap(e,i);if(Array.isArray(r.dropDownMenu)&&r.dropDownMenu.length)return!0}else{const r=t.getHeaderDefine(e,i);if(Array.isArray(r.dropDownMenu)&&r.dropDownMenu.length||(!Array.isArray(r.dropDownMenu)||0!==r.dropDownMenu.length)&&Array.isArray(t.globalDropDownMenu)&&t.globalDropDownMenu.length&&!r?.columns?.length)return!0}return!1}getStyleClass(t){switch(t){case"text":case"link":return UE;case"image":case"video":return RN;case"checkbox":return KE}}setTableColumnsEditor(){const t=(e,i)=>{e?.forEach(((e,r)=>{e.editor&&(i[r].editor=e.editor),e.columns&&t(e.columns,i[r].columns)}))};t(this._table.options.columns,this._table.internalProps.columns)}}class PN{_table;_tooltipElement;constructor(t){this._table=t}release(){this.unbindTooltipElement(),this._tooltipElement&&this._tooltipElement.release?.(),this._tooltipElement=void 0}_getTooltipElement(){return this._tooltipElement||(this._tooltipElement=this.createTooltipElementInternal()),this._tooltipElement}bindTooltipElement(t,e,i,r){return this._getTooltipElement().bindToCell(this._table,t,e,i,r)}moveTooltipElement(t,e,i,r){this._getTooltipElement().move(this._table,t,e,i,r)}unbindTooltipElement(){this._getTooltipElement().unbindFromCell()}locateTooltipElement(t,e,i,r,n){this._getTooltipElement()._locate(this._table,t,e,i,r,n)}}!function(){if("node"===YE.mode)return;const t=document.createElement("style");t.id="vtable-tooltip-styleSheet",t.textContent="\n@keyframes vtable__bubble-tooltip-element--shown-animation {\n\t0% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n.vtable__bubble-tooltip-element {\n\tposition: absolute;\n\t\n\t// pointer-events: none;\n\t//user-select: none;\n\tmax-width: 300px;\n\tz-index: 99999;\n\n\tbackground: #FFFFFF;\n border: 1px solid #E6E8ED;\n box-sizing: border-box;\n border-radius: 4px;\n box-shadow: 0px 2px 4px rgb(27 31 35 / 8%);\n color: #141414;\n font-size: 13px;\n}\n.vtable__bubble-tooltip-element--hidden {\n\topacity: 0;\n pointer-events: none;\n\tuser-select: none;\n\t/* transform: translate(-50%, -50%); */\n\ttransition: opacity 75ms linear;\n}\n.vtable__bubble-tooltip-element--shown {\n\topacity: 1;\n\t/* transform: translate(-50%, -50%); */\n\tanimation: vtable__bubble-tooltip-element--shown-animation 150ms ease-out;\n}\n.vtable__bubble-tooltip-element__content {\n\t/* font-size: .75rem; */\n\tpadding: 6px 8px;\n\tmin-height: 1em;\n\tline-height: 1.5;\n\twidth: 100%;\n\tdisplay: block;\n\twhite-space: pre-wrap;\n\tmargin: 0;\n\tbox-sizing: border-box;\n\toverflow: auto;\n\tword-wrap: break-word;\n\tposition: relative;\n\tbackground-color: #FFF;\n\tz-index: 2;\n\tborder-radius: 4px;\n}\n/* WebKit Microsoft Edge(新版): */\n.vtable__bubble-tooltip-element__content::-webkit-scrollbar {\n width: 0;\n height: 0;\n background-color: transparent;\n}\n/* Opera Firefox */\n.vtable__bubble-tooltip-element__content > scrollbar-track {\n width: 0;\n height: 0;\n background-color: transparent;\n}\n/* Internet Explorer 11 和 Microsoft Edge(旧版) */\n.vtable__bubble-tooltip-element__content > scrollbar {\n width: 0;\n height: 0;\n background-color: transparent;\n}\n.vtable__bubble-tooltip-element__triangle {\n\t/* font-size: .75rem; */\n\tposition: absolute;\n\twidth: 10px;\n\theight: 10px;\n\tdisplay: block;\n\ttransform: rotate(45deg);\n transform-origin: 50% 50% 0;\n\tz-index: 1;\n\tbackground-color: #FFF;\n\tborder: 1px solid #E6E8ED;\n}\n",document.head.appendChild(t)}();const kN="vtable__bubble-tooltip-element",EN=`${kN}__content`,LN=`${kN}__triangle`,HN=`${kN}--hidden`,IN=`${kN}--shown`;class ON{_handler;_rootElement;_messageElement;_triangleElement;_disappearDelay;_disappearDelayId;constructor(){this._handler=new WL;const t=this._rootElement=hN("div",[kN,HN]),e=hN("div",[EN]),i=hN("span",[LN]);t.appendChild(i),t.appendChild(e),this._messageElement=t.querySelector(`.${EN}`)||void 0,this._triangleElement=t.querySelector(`.${LN}`)||void 0,t.addEventListener("mousemove",(()=>{this._disappearDelayId&&clearTimeout(this._disappearDelayId)})),t.addEventListener("mouseleave",(()=>{this._disappearDelay=void 0,this.unbindFromCell()})),e.addEventListener("wheel",(t=>{t.stopPropagation()})),e.addEventListener("copy",(t=>{const i=function(t){const e=window.getSelection();if(e.rangeCount){const i=e.getRangeAt(0);return i.endOffset>i.startOffset&&t.contains(i.commonAncestorContainer)}return!1}(e);i&&t.stopPropagation()}))}bindToCell(t,e,i,r,n){this._disappearDelay=r?.disappearDelay,this._disappearDelayId&&clearTimeout(this._disappearDelayId);const o=this._rootElement,s=this._messageElement,a=this._triangleElement;if(o?.classList.remove(IN),o?.classList.add(HN),this._canBindToCell(t,e,i)){s.setAttribute("style",""),a.setAttribute("style",""),r?.className&&o.classList.add(r.className),r?.style?.bgColor&&(s.style.backgroundColor=r?.style?.bgColor),r?.style?.bgColor&&(a.style.backgroundColor=r?.style?.bgColor),a.style.display=!0===r?.style?.arrowMark?"block":"none",r?.style?.fontSize&&(s.style.fontSize=(r?.style?.fontSize??12)+"px"),r?.style?.fontFamily&&(s.style.fontFamily=r?.style?.fontFamily),r?.style?.color&&(s.style.color=r?.style?.color),r?.style?.padding&&(s.style.padding=`${r?.style?.padding.join("px ")}px`),r?.style?.maxHeight&&(s.style.maxHeight=`${r?.style?.maxHeight}px`),r?.style?.maxWidth&&(s.style.maxWidth=`${r?.style?.maxWidth}px`),s&&(s.textContent=r?.content);if(this._bindToCell(t,e,i,r?.position,r?.referencePosition,n,r?.style?.arrowMark))return o?.classList.add(IN),o?.classList.remove(HN),!0}else this.unbindFromCell();return!1}release(){this.unbindFromCell();const t=this._rootElement;t?.parentElement&&t.parentElement.removeChild(t),this._handler?.release?.(),delete this._rootElement,delete this._messageElement}move(t,e,i,r,n){const o=this._rootElement;this._canBindToCell(t,e,i)?(this._bindToCell(t,e,i,r?.position,r?.referencePosition,n),o?.classList.add(IN),o?.classList.remove(HN)):this.unbindFromCell()}unbindFromCell(){if(this._disappearDelay)this._disappearDelayId=setTimeout((()=>{const t=this._rootElement;t?.parentElement&&(t.classList.remove(IN),t.classList.add(HN))}),this._disappearDelay??0);else{const t=this._rootElement;t?.parentElement&&(t.classList.remove(IN),t.classList.add(HN))}}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),n=t.getElement(),{bottom:o,left:s,right:a,top:l}=r;if(t.isFrozenCell(e,i))return!0;if(o<t.getFrozenRowsHeight()||a<t.getFrozenColsWidth()||s>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||l>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=n;return!(l>h)&&!(s>c)}_bindToCell(t,e,i,r,n,o,s){const a=this._rootElement,l=t.getCellRangeRelativeRect({col:e,row:i}),h=t.getElement(),c=t.internalProps.element.offsetWidth,{width:d}=l;if(a){let l,u;a.parentElement!==h&&h.appendChild(a),a.style.left="0px";const g=Math.min(.8*c,4*d);a.style.maxWidth=`${g}px`;const p=a.clientWidth,f=a.clientHeight;if(!r&&!n)return!1;{const a=this.getComputedPosition(t,e,i,r,n,o,s);u=a.x,l=a.y}a.style.left=`${u}px`,a.style.top=`${l}px`,lL()&&(a.style.fontSize="11px");const{x1:m,x2:b,y1:y,y2:v}=t.stateManager.menu.bounds,C=u,w=C+p,x=l,_=C+f;return!(t.stateManager.menu.isShow&&m<w&&b>C&&v>x&&y<_)}return!1}getComputedPosition(t,e,i,r,n,o,s){const a=this._rootElement,l=t.getCellRangeRelativeRect({col:e,row:i}),{width:h,height:c}=t.internalProps.element.getBoundingClientRect(),{width:d}=l;let u,g;const p=Math.min(.8*h,4*d);a.style.maxWidth=`${p}px`;const f=a.clientWidth,m=a.clientHeight,b=s?6:0;if(r)g=r.x,u=r.y+b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.top="-5px";else if(n){let t=n.placement??bE.bottom;const e=n.rect.left+n.rect.width/2,i=n.rect.top+n.rect.height/2,r=n.rect.top,s=n.rect.bottom,a=n.rect.left,l=n.rect.right;let d=0;const p=()=>{d++,d>=4||(this.removeStyleFromTriangle(),t===bE.top?(g=e-f/2,u=r-m-b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.bottom="-5px",o&&u<0&&(t=bE.right,p())):t===bE.bottom?(g=e-f/2,u=s+b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.top="-5px",o&&u+m>c&&(t=bE.left,p())):t===bE.left?(u=i-m/2,g=a-f-b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.right="-5px",o&&g<0&&(t=bE.top,p())):t===bE.right&&(u=i-m/2,g=l+b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.left="-5px",o&&g+f>h&&(t=bE.bottom,p())))};p()}return o&&(g<0?g=0:g+a.offsetWidth>h&&(g=h-a.offsetWidth)),{x:g,y:u}}removeStyleFromTriangle(){this._triangleElement.style.left="",this._triangleElement.style.right="",this._triangleElement.style.top="",this._triangleElement.style.bottom="",this._triangleElement.style.marginLeft="",this._triangleElement.style.marginTop=""}_locate(t,e,i,r,n,o){const s=this.getComputedPosition(t,e,i,r,n,o),a=s.x,l=s.y;this._rootElement.style.left=`${a}px`,this._rootElement.style.top=`${l}px`}}class FN extends PN{createTooltipElementInternal(){return new ON}}const zN={"bubble-tooltip":function(t){return new FN(t)}};class DN{_table;_tooltipInstances;_attachInfo;confine;constructor(t,e){this._table=t,this._tooltipInstances={},this._bindTableEvent(t),this.confine=e}release(){const t=this._tooltipInstances;for(const e in t)t[e]?.release?.();delete this._tooltipInstances,this._attachInfo=null}_bindToCell(t,e,i){const r=this._attachInfo,n=this._getTooltipInstanceInfo(t,e);if(!r||n&&r.instance===n||(r.instance?.unbindTooltipElement(),this._attachInfo=null),!n)return;if(n&&n.bindTooltipElement(t,e,i,this.confine)){const r=this._table.getCellRange(t,e);this._attachInfo={range:r,instance:n,tooltipOptions:i}}}_move(t,e,i){const r=this._attachInfo;if(!r||!ML(r.range,t,e))return;const{instance:n}=r;n?.moveTooltipElement(t,e,i,this.confine)}moveToPosition(t,e,i,r){const n=this._attachInfo;if(!n||!ML(n.range,t,e))return;const{instance:o}=n;this._attachInfo.tooltipOptions.position=i,this._attachInfo.tooltipOptions.referencePosition=r,o?.locateTooltipElement(t,e,i,r,this.confine)}_unbindFromCell(){const t=this._attachInfo;if(!t)return;const{instance:e}=t;e?.unbindTooltipElement(),this._attachInfo=null}_isBindCell(t,e){const i=this._attachInfo;return!!i&&ML(i.range,t,e)}_bindTableEvent(t){t.on(IL.MOUSEENTER_CELL,(e=>{if(lL())return;const{x1:i,x2:r,y1:n,y2:o}=t.stateManager.menu.bounds;if(t.stateManager.menu.isShow&&"number"==typeof e.x&&"number"==typeof e.y&&e.x>i&&e.x<r&&e.y>n&&e.y<o)return;const{col:s,row:a}=e;this.showTooltip(s,a)})),t.on(IL.MOUSEMOVE_CELL,(e=>{if(!lL()){if(this._attachInfo?.tooltipOptions?.referencePosition){const i=this._attachInfo.tooltipOptions.referencePosition,{event:r}=e,{left:n,right:o,top:s,bottom:a}=i.rect,l=t._getMouseAbstractPoint(r,!1);l.inTable&&l.x>=n-5&&l.x<=o+5&&l.y>=s-5&&l.y<=a+5||this._unbindFromCell()}this._attachInfo&&t.stateManager.menu.isShow&&this._bindToCell(e.col,e.row)}})),t.on(IL.MOUSELEAVE_CELL,(t=>{this._unbindFromCell()})),t.on(IL.SELECTED_CELL,(t=>{this._isBindCell(t.col,t.row)&&this._unbindFromCell()})),t.on(IL.MOUSELEAVE_TABLE,(t=>{this._unbindFromCell()})),t.on(IL.SCROLL,(t=>{this._unbindFromCell()}))}showTooltip(t,e){let i;const r=this._table,n=r.getHeaderDescription(t,e);if(n){const o=r.getCellRangeRelativeRect({col:t,row:e});i={content:n,referencePosition:{placement:bE.bottom,rect:o},disappearDelay:r.internalProps.tooltip.overflowTextTooltipDisappearDelay??0,style:r.theme.tooltipStyle}}else if(r.internalProps.tooltip?.isShowOverflowTextTooltip){const o=r.getCellOverflowText(t,e),s=r.getCellRangeRelativeRect({col:t,row:e});o&&(i={content:n?`${n}\n ${o}`:o,referencePosition:{placement:bE.bottom,rect:s},disappearDelay:r.internalProps.tooltip.overflowTextTooltipDisappearDelay??0,style:r.theme.tooltipStyle})}i?this._bindToCell(t,e,i):this._unbindFromCell()}_getTooltipInstanceInfo(t,e){const i=this._table,r=this._tooltipInstances,n="bubble-tooltip";return r&&r[n]||r&&(r[n]=zN[n](i))}isBinded(t){return JSON.stringify(t)===JSON.stringify(this._attachInfo?.tooltipOptions)}}class WN{_table;_menuElement;constructor(t){this._table=t}release(){this.unbindMenuElement(),this._menuElement&&this._menuElement.release(),this._menuElement=void 0}_getMenuElement(){return this._menuElement||(this._menuElement=this.createMenuElementInternal()),this._menuElement}bindMenuElement(t,e,i){return this._getMenuElement().bindToCell(this._table,t,e,i)}unbindMenuElement(){this._getMenuElement().unbindFromCell()}pointInMenuElement(t,e){return this._getMenuElement().pointInMenuElement(t,e)}}const NN="vtable__menu-element",GN=`${NN}--hidden`,jN=`${NN}--shown`;class VN{_handler;_rootElement;_menuInstanceInfo;constructor(t){this._handler=new WL,this._rootElement=hN("div",[NN,GN]),this._rootElement.addEventListener("wheel",(t=>{t.stopPropagation()})),this._rootElement?.addEventListener("mousedown",(t=>{t.stopPropagation(),t.preventDefault()})),this._rootElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(GN))return;const{col:i,row:r,dropDownIndex:n,menuKey:o,text:s,hasChildren:a}=e.target;if("number"!=typeof n||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,n);t.fireListeners(IL.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:o,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(IL.DROPDOWN_MENU_CLEAR,null),t.fireListeners(IL.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(GN)||t.stopPropagation()}))}get rootElement(){return this._rootElement}release(){this.unbindFromCell();const t=this._rootElement;t?.parentElement&&t.parentElement.removeChild(t),this._handler.release(),delete this._rootElement}bindToCell(t,e,i,r){const n=this._rootElement;if(this._menuInstanceInfo=r,n?.classList.remove(jN),n?.classList.add(GN),this._canBindToCell(t,e,i)){n.innerHTML="",n.appendChild(r.content);if(this._bindCell(t,e,i,r.position,r.referencePosition))return n?.classList.add(jN),n?.classList.remove(GN),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(jN),t.classList.add(GN))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),n=t.getElement(),{top:o,bottom:s,left:a,right:l}=r;if(t.isFrozenCell(e,i))return!0;if(s<t.getFrozenRowsHeight()||l<t.getFrozenColsWidth()||a>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||o>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=n;return!(h<o)&&!(c<a)}_bindCell(t,e,i,r,n){const o=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(o){o.parentElement!==s&&s.appendChild(o),o.style.left="0px";const t=.8*a;o.style.maxWidth=`${t}px`;const e=o.clientWidth,i=o.clientHeight;let h,c;return r&&(h=r.x,c=r.y),n&&(h=n.rect.right-e,c=n.rect.bottom),c+i>l&&(c=l-i,h+=e-2),c<0&&(c/=2),o.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),o.style.left=`${h}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:n,width:o,height:s}=i.getBoundingClientRect();return t>r-5&&t<r+o+5&&e>n-5&&e<n+s+5}}class UN extends WN{createMenuElementInternal(){return new AN(this._table)}}let KN=class extends WN{createMenuElementInternal(){return new VN(this._table)}};const $N={"dropdown-menu":function(t){return new UN(t)},"context-menu":function(t){return new UN(t)},container:t=>new KN(t)};class YN{_table;_menuInstances;_attachInfo;constructor(t){this._table=t,this._menuInstances={},this._bindTableEvent(t)}release(){const t=this._menuInstances;for(const e in t)t[e].release();delete this._menuInstances,this._attachInfo=null}_bindToCell(t,e,i,r){const n=this._attachInfo,o=this._getMenuInstanceInfo(t,e,i,r);if(!n||o&&n.instance===o.instance||(n.instance?.unbindMenuElement(),this._attachInfo=null),!o)return;const{instance:s,info:a}=o;if(s&&s.bindMenuElement(t,e,a)){const i=this._table.getCellRange(t,e);this._attachInfo={range:i,instance:s}}}_unbindFromCell(){const t=this._attachInfo;if(!t)return;const{instance:e}=t;e?.unbindMenuElement(),this._attachInfo=null}_isBindToCell(t,e){const i=this._attachInfo;return!!i&&ML(i.range,t,e)}pointInMenuElement(t,e){if(!this._attachInfo)return!1;const i=this._attachInfo,{instance:r}=i;return r.pointInMenuElement(t,e)}_bindTableEvent(t){t.on(IL.DROPDOWN_ICON_CLICK,(t=>{this._attachInfo&&this._isBindToCell(t.col,t.row)?this._unbindFromCell():this._bindToCell(t.col,t.row,"dropdown-menu")})),t.on(IL.DROPDOWN_MENU_CLEAR,(t=>{this._unbindFromCell()})),t.on(IL.CONTEXTMENU_CELL,(e=>{if("html"===t.internalProps.menu?.renderMode){const i=t._getMouseAbstractPoint(e.event,!1);let r=null;i.inTable&&"function"==typeof t.internalProps.menu?.contextMenuItems?r=t.internalProps.menu.contextMenuItems(t.getHeaderField(e.col,e.row),e.row,e.col):i.inTable&&Array.isArray(t.internalProps.menu?.contextMenuItems)&&(r=t.internalProps.menu?.contextMenuItems),this._bindToCell(e.col,e.row,"context-menu",{content:r,position:{x:i.x,y:i.y}})}}))}_getMenuInstanceInfo(t,e,i,r){const n=this._table,o=this._menuInstances,s=function(t,e,i,r,n){const{lineHeight:o,textBaseline:s,textStick:a}=t._getCellStyle(e,i);let l=t.getCellRangeRelativeRect(t.getCellRange(e,i));a&&(l=t.getVisibleCellRangeRelativeRect({col:e,row:i}));let{left:h,right:c,bottom:d,top:u,width:g,height:p}=l;if(t.isHeader(e,i)&&({left:h,right:c,bottom:d,top:u,width:g,height:p}=t.internalProps.headerHelper.getDropDownIconRect(l,o,s||"middle")),n?.content)return{type:r,position:n.position,referencePosition:n.referencePosition??{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:n.content};if("dropdown-menu"===r){const{dropDownMenu:n=t.globalDropDownMenu,pivotInfo:o}=t._getHeaderLayoutMap(e,i);return{type:r,referencePosition:{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:n,pivotInfo:o}}return null}(n,t,e,i,r);if(!s)return null;return{instance:o&&o[i]||o&&(o[i]=$N[i](n)),type:i,info:s}}}class XN extends EventTarget{_table;_input;constructor(t,e){if(super(),this._table=t,"node"===YE.mode)return;const i=document.createElement("div");i.style.opacity="0",i.dataset.vtable="vtable",i.style.pointerEvents="none",i.classList.add("input-container");const r=this._input=document.createElement("input");i.appendChild(r),r.classList.add("table-focus-control"),r.dataset.vtable="vtable",r.readOnly=!0,e.appendChild(i)}focus(){this._input.focus({preventScroll:!0})}setFocusRect(t,e){const i=this._input;i.value=e,i.select();const r=t.top-this._table.scrollTop,n=t.left-this._table.scrollLeft;i.style.top=`${r.toFixed()}px`,i.style.left=`${n.toFixed()}px`,i.style.width=`${t.width.toFixed()}px`,i.style.height=`${t.height.toFixed()}px`}get input(){return this._input}release(){}}const qN={orient:"bottom",position:"middle",padding:30,title:{visible:!1,padding:0,textStyle:{fontSize:14,fill:"#000000",fontWeight:"normal"},space:12},item:{visible:!0,spaceCol:10,spaceRow:10,padding:2,background:{state:{selectedHover:{fill:"gray",fillOpacity:.7},unSelectedHover:{fill:"gray",fillOpacity:.2}}},shape:{space:4,state:{unSelected:{fillOpacity:.5}}},label:{space:4,style:{fill:"#89909D",fontSize:14},state:{unSelected:{fillOpacity:.5}}}},allowAllCanceled:!0,visible:!0};function ZN(t,e){const{title:i={},item:r={},pager:n={},background:o={},type:s,id:a,visible:l,orient:h,position:c,data:d,filter:u,regionId:g,regionIndex:p,seriesIndex:f,seriesId:m,padding:b,...y}=_t({},qN,t),v=y;return i.visible&&(v.title=yH(i)),ft(r.focusIconStyle)||vH(r.focusIconStyle),CH(r.shape),CH(r.label),CH(r.value),CH(r.background),gO(r.maxWidth)&&(r.maxWidth=Number(r.maxWidth.substring(0,r.maxWidth.length-1))*e.width/100),gO(r.width)&&(r.width=Number(r.width.substring(0,r.width.length-1))*e.width/100),gO(r.height)&&(r.height=Number(r.height.substring(0,r.height.length-1))*e.width/100),v.item=r,ft(n.textStyle)||vH(n.textStyle),CH(n.handler),v.pager=n,o.visible&&!ft(o.style)&&(_t(v,o.style),Z(o.padding)&&(v.padding=o.padding)),v}class JN{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=vt(t),this.orient=t.orient??"left",this.visible=t.visible??!0,this.position=t.position??"middle",this.selectedData=t.defaultSelected??null,this.createComponent(),this.initEvent()}createComponent(){const t=this.getLegendAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight}),e=new Tk(_t({},t,{defaultSelected:this.selectedData}));e.name="legend",this.legendComponent=e,this.table.scenegraph.stage.defaultLayer.appendChild(e),this.adjustTableSize(t)}resize(){this.legendComponent&&(this.legendComponent.setAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight}),this.adjustTableSize(this.legendComponent.attribute))}adjustTableSize(t){let e=isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,i=isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0;if(e<=0||i<=0)return;const r=this.table.tableNoFrameWidth,n=this.table.tableNoFrameHeight,o=II(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=o[3],a=0,e+=o[1]+o[3]):"top"===this.orient?(s=0,a=o[0],i+=o[0]+o[2]):"right"===this.orient?(s=r-e-o[1],a=0,e+=o[1]+o[3]):"bottom"===this.orient&&(s=0,a=n-i-o[2],i+=o[0]+o[2]);const l="bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",h=this.position;let c=0,d=0;"horizontal"===l?c="middle"===h?(r-e)/2:"end"===h?r-e-o[1]:o[3]:d="middle"===h?(n-i)/2:"end"===h?n-i-o[2]:o[0],this.legendComponent.setAttributes({dx:c,dy:d,x:s,y:a}),"left"===this.orient?(this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e),this.table.tableX+=Math.ceil(e)):"top"===this.orient?(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i),this.table.tableY+=Math.ceil(i)):"right"===this.orient?this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e):"bottom"===this.orient&&(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i))}getLegendAttributes(t){return{layout:"bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",items:this.getLegendItems(),maxWidth:t.width,maxHeight:t.height,...ZN(this.option,t)}}getLegendItems(){return this.option.data}initEvent(){this.legendComponent&&(this.legendComponent.addEventListener(Ck.legendItemClick,(t=>{const e=mt(t,"detail.currentSelected");this.table.fireListeners(IL.LEGEND_ITEM_CLICK,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(Ck.legendItemHover,(t=>{const e=mt(t,"detail");this.table.fireListeners(IL.LEGEND_ITEM_HOVER,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(Ck.legendItemUnHover,(t=>{const e=mt(t,"detail");this.table.fireListeners(IL.LEGEND_ITEM_UNHOVER,{model:this,value:e,event:t})})),this.legendComponent.addEventListener("legendItemAttributeUpdate",(t=>{this.table.scenegraph.updateNextFrame()})))}getLegendBounds(){return{width:isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,height:isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0}}release(){this.legendComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this.legendComponent),this.legendComponent=null}}const QN={orient:"right",position:"middle",padding:30,title:{visible:!1,padding:0,textStyle:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"titleFontColor"}},space:12},handler:{visible:!0},startText:{style:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"labelFontColor"}}},endText:{style:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"labelFontColor"}}},handlerText:{style:{fontSize:14,fontWeight:"normal",fill:{type:"palette",key:"labelFontColor"}}}},tG={horizontal:{...QN,rail:{width:200,height:8,style:{fill:"rgba(0,0,0,0.04)"}}},vertical:{...QN,rail:{width:8,height:200,style:{fill:"rgba(0,0,0,0.04)"}}}},eG={horizontal:{sizeBackground:{fill:"#cdcdcd"},track:{style:{fill:"rgba(20,20,20,0.1)"}},rail:{width:200,height:4,style:{fill:"rgba(0,0,0,0.04)"}},...QN},vertical:{sizeBackground:{fill:"#cdcdcd"},track:{style:{fill:"rgba(20,20,20,0.1)"}},rail:{width:4,height:200,style:{fill:"rgba(0,0,0,0.04)"}},...QN}};function iG(t,e){const{title:i={},handler:r={},rail:n={},track:o={},startText:s,endText:a,handlerText:l,sizeBackground:h,background:c={},type:d,id:u,visible:g,orient:p,position:f,data:m,defaultSelected:b,field:y,filter:v,regionId:C,regionIndex:w,seriesIndex:x,seriesId:_,padding:S,...A}=_t({},("color"===t.type?tG:eG)["bottom"===t.orient||"top"===t.orient?"horizontal":"vertical"],t),M=A;return i.visible&&(M.title=yH(i)),M.showHandler=!1!==r.visible,ft(r.style)||(M.handlerStyle=vH(r.style)),Z(n.width)&&(M.railWidth=n.width),Z(n.height)&&(M.railHeight=n.height),ft(n.style)||(M.railStyle=vH(n.style)),ft(o.style)||(M.trackStyle=vH(o.style)),M.startText=CH(s),M.endText=CH(a),M.handlerText=CH(l),ft(h)||(M.sizeBackground=vH(h)),c.visible&&!ft(c.style)&&(_t(M,c.style),Z(c.padding)&&(M.padding=c.padding)),M}class rG{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=vt(t),this.orient=t.orient??"left",this.visible=t.visible??!0,this.position=t.position??"middle",this.selectedData=t.defaultSelected??null,this.createComponent(),this.initEvent()}createComponent(){const t=this.getLegendAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight});let e;e="color"===this.option.type?new Ek(_t({},t,{slidable:!0})):new Hk(_t({},t,{slidable:!0})),e.name="legend",this.legendComponent=e,this.table.scenegraph.stage.defaultLayer.appendChild(e),this.adjustTableSize(t)}resize(){this.legendComponent&&(this.legendComponent.setAttributes({width:this.table.tableNoFrameWidth,height:this.table.tableNoFrameHeight}),this.adjustTableSize(this.legendComponent.attribute))}adjustTableSize(t){let e=isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,i=isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0;if(e<=0||i<=0)return;const r=this.table.tableNoFrameWidth,n=this.table.tableNoFrameHeight,o=II(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=o[3],a=0,e+=o[1]+o[3]):"top"===this.orient?(s=0,a=o[0],i+=o[0]+o[2]):"right"===this.orient?(s=r-e-o[1],a=0,e+=o[1]+o[3]):"bottom"===this.orient&&(s=0,a=n-i-o[2],i+=o[0]+o[2]);const l="bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",h=this.position;let c=0,d=0;"horizontal"===l?c="middle"===h?(r-e)/2:"end"===h?r-e-o[1]:o[3]:d="middle"===h?(n-i)/2:"end"===h?n-i-o[2]:o[0],this.legendComponent.setAttributes({dx:c,dy:d,x:s,y:a}),"left"===this.orient?(this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e),this.table.tableX+=Math.ceil(e)):"top"===this.orient?(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i),this.table.tableY+=Math.ceil(i)):"right"===this.orient?this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e):"bottom"===this.orient&&(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i))}getLegendAttributes(t){const e="bottom"===this.orient||"top"===this.orient?"horizontal":"vertical",i="horizontal"===e?"bottom":this.orient;return{...iG(this.option),layout:e,align:i,min:this.option.min,max:this.option.max,value:this.option.value,["color"===this.option.type?"colors":"sizeRange"]:"color"===this.option.type?this.option.colors:this.option.sizeRange}}initEvent(){this.legendComponent&&this.legendComponent.addEventListener("change",(t=>{const e=mt(t,"detail.value");this.table.fireListeners(IL.LEGEND_CHANGE,{model:this,value:e,event:t}),this.table.scenegraph.updateNextFrame()}))}getLegendBounds(){return{width:isFinite(this.legendComponent.AABBBounds.width())?this.legendComponent.AABBBounds.width():0,height:isFinite(this.legendComponent.AABBBounds.height())?this.legendComponent.AABBBounds.height():0}}release(){this.legendComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this.legendComponent),this.legendComponent=null}}function nG(t,e){return"color"===t.type||"size"===t.type?new rG(t,e):new JN(t,e)}class oG{data;cumulativeSum;difference;totalSum;table;isUpdate=!1;_keys=[];_sorted=!1;constructor(t){this.data=new Map,this._keys.length=0,this.cumulativeSum=new Map,this.difference=new Map,this.totalSum=0,this.table=t}get length(){return this.data.size}clear(){this._keys=[],this.data.clear(),this.cumulativeSum.clear(),this.difference.clear(),this.totalSum=0}clearRange(){this.cumulativeSum.clear(),this.difference.clear()}add(t,e){const i=this.table.getRowHeight(t);this.data.has(t)||(this._keys.push(t),this._sorted=!1),this.data.set(t,e),this.totalSum+=e,this.updateDifference(t,e-i)}remove(t){if(this.data.has(t)){const e=this.data.get(t);this.data.delete(t);const i=this._keys.indexOf(t);-1!==i&&this._keys.splice(i,1),this.totalSum-=e;const r=this.table.getRowHeight(t);this.updateDifference(t,r-e)}}put(t,e){if(this.data.has(t)){const i=this.data.get(t);if(i===e)return;this.data.set(t,e);const r=e-i;this.totalSum+=r,this.updateDifference(t,r)}else this.add(t,e)}get(t){return this.data.get(t)}has(t){return this.data.has(t)}_sort(){const{_keys:t}=this;this._sorted||(t.sort(((t,e)=>t<e?-1:t>e?1:0)),this._sorted=!0)}updateDifference(t,e){const i=this.difference.get(t)??0;this.difference.set(t,i+e),this.update()}getSumInRange(t,e){return this.calculatePrefixSum(e)-this.calculatePrefixSum(t-1)}updateCumulativeSum(t,e){for(const[i,r]of this.cumulativeSum)i>=t&&this.cumulativeSum.set(i,r+e)}calculatePrefixSum(t){if(t<0)return 0;if(this.cumulativeSum.has(t)){let e=this.cumulativeSum.get(t);for(const[i,r]of this.difference)i<=t&&(e+=r);return e}return this.dealDiffenence(),this.getCumulativeSum(t)}getCumulativeSum(t){let e=0;for(let i=t;i>=0;i--){if(this.cumulativeSum.has(i)){e+=this.cumulativeSum.get(i);break}e+=this.data.get(i)??this.table.getRowHeight(i)}return this.cumulativeSum.set(t,e),e}update(){this.isUpdate||(this.isUpdate=!0,setTimeout((()=>{this.dealDiffenence(),this.isUpdate=!1}),0))}dealDiffenence(){for(const[t]of this.cumulativeSum)for(const[e,i]of this.difference)if(t>=e){const e=this.cumulativeSum.get(t);this.cumulativeSum.set(t,e+i)}this.difference.clear()}insert(t,e){for(let e=t;e<=this.getLastIndex();e++)this.cumulativeSum.delete(e);const i=this.getLastIndex()+1;this.adjustOrder(t,t+1,i-t),Z(e)&&this.put(t,e)}getLastIndex(){return this._sort(),this._keys[this._keys.length-1]}delLast(){const t=this.getLastIndex();this.remove(t)}delete(t){if(!this.has(t))return;for(let e=t;e<=this.getLastIndex();e++)this.cumulativeSum.delete(e);const e=this.getLastIndex();this.adjustOrder(t+1,t,e-t),this.delLast()}adjustOrder(t,e,i){this.clearRange(),this._sort();const{_keys:r}=this;if(t>e){const n=[];for(let o=sG(r,t+i-1);o>=0;o--){const s=r[o];if(s>=t)n.push(this.get(s));else if(e<=s&&s<t)this.put(s+i,this.get(s));else if(s<e)break}for(let t=0;t<i;t++)this.put(e+t,n[i-1-t])}const{length:n}=r;if(t<e){const o=[];for(let s=sG(r,t);s<n;s++){const n=r[s];if(n>=t&&n<t+i)o.push(this.get(n));else if(t+i<=n&&n<=e)this.put(n-i,this.get(n));else if(n>e)break}for(let t=0;t<i;t++)this.put(e+t,o[t])}}exchangeOrder(t,e,i,r,n){const{_keys:o}=this;if(this._sorted||(o.sort(((t,e)=>t<e?-1:t>e?1:0)),this._sorted=!0),t>i){const r=[],s=[];for(let n=sG(o,i);n<t+e;n++){const i=o[n];i>=t&&i<t+e?s.push(this.get(i)):r.push(this.get(i))}for(let t=0;t<e;t++)this.put(n+t,s[t]);for(let t=0;t<r.length;t++)this.put(n+e+t,r[t])}else{const s=[],a=[];for(let n=sG(o,t);n<i+r;n++){const i=o[n];i>=t&&i<t+e?a.push(this.get(i)):s.push(this.get(i))}for(let t=0;t<e;t++)this.put(n+t,a[t]);for(let e=0;e<s.length;e++)this.put(t+e,s[e])}}}function sG(t,e){let i=0,r=t.length-1;for(;i<=r;){const n=Math.floor((i+r)/2);if(t[n]===e)return n;t[n]>e?r=n-1:i=n+1}return r<0?0:r}class aG{dragReorderIconName;_table;constructor(t){this._table=t;const e=NO();this.dragReorderIconName=e[_E.dragReorderIconName]}getIcons(t,e){return[this.dragReorderIconName]}}class lG{table;customCellStyle;customCellStyleArrangement;constructor(t,e,i){this.table=t,this.customCellStyle=e,this.customCellStyleArrangement=i}getCustomCellStyle(t,e){const i=this.getCustomCellStyleId(t,e);if(i){const t=this.getCustomCellStyleOption(i);return t?.style}}getCustomCellStyleId(t,e){let i;return this.customCellStyleArrangement.forEach((r=>{r.cellPosition.range?r.cellPosition.range.start.col<=t&&r.cellPosition.range.end.col>=t&&r.cellPosition.range.start.row<=e&&r.cellPosition.range.end.row>=e&&(i=r.customStyleId):r.cellPosition.col===t&&r.cellPosition.row===e&&(i=r.customStyleId)})),i}getCustomCellStyleOption(t){return this.customCellStyle.find((e=>e.id===t))}registerCustomCellStyle(t,e){const i=this.customCellStyle.findIndex((e=>e.id===t));-1===i?this.customCellStyle.push({id:t,style:e}):this.customCellStyle[i]={id:t,style:e},this.customCellStyleArrangement.forEach((e=>{const i=e.cellPosition;if(e.customStyleId===t)if(i.range)for(let t=i.range.start.col;t<=i.range.end.col;t++)for(let e=i.range.start.row;e<=i.range.end.row;e++)this.table.scenegraph.updateCellContent(t,e);else this.table.scenegraph.updateCellContent(i.col,i.row)})),this.table.scenegraph.updateNextFrame()}arrangeCustomCellStyle(t,e){const i=this.customCellStyleArrangement.findIndex((e=>e.cellPosition.range&&t.range?e.cellPosition.range.start.col===t.range.start.col&&e.cellPosition.range.start.row===t.range.start.row&&e.cellPosition.range.end.col===t.range.end.col&&e.cellPosition.range.end.row===t.range.end.row:e.cellPosition.col===t.col&&e.cellPosition.row===t.row));if(-1===i?this.customCellStyleArrangement.push({cellPosition:{col:t.col,row:t.row,range:t.range},customStyleId:e}):this.customCellStyleArrangement[i].customStyleId=e,t.range)for(let e=t.range.start.col;e<=t.range.end.col;e++)for(let i=t.range.start.row;i<=t.range.end.row;i++)this.table.scenegraph.updateCellContent(e,i);else this.table.scenegraph.updateCellContent(t.col,t.row);this.table.scenegraph.updateNextFrame()}updateCustomCell(t,e){this.customCellStyle.length=0,this.customCellStyleArrangement.length=0,t.forEach((t=>{this.registerCustomCellStyle(t.id,t.style)})),e.forEach((t=>{this.arrangeCustomCellStyle(t.cellPosition,t.customStyleId)}))}hasCustomCellStyle(t){return this.customCellStyle.some((e=>e.id===t))}}function hG(t,e){t=t.clone();for(const i in e){const r=e[i];r&&(t[`_${i}`]=r)}return t}class cG{sharedVar;sizeIncludeParent=!1;rowExpandLevel;hierarchyType;tree={id:0,dimensionKey:"",value:"",children:[],level:-1,levelSpan:1,startIndex:0,size:0,startInTotal:0,hierarchyState:void 0};totalLevel=0;dimensionKeys=new GL;dimensionKeysIncludeVirtual=new GL;cache=new Map;constructor(t,e,i="grid",r=void 0){this.sizeIncludeParent=null!=r,this.rowExpandLevel=r,this.hierarchyType=i,this.sharedVar=e,this.reset(t)}reset(t,e=!1){this.cache.clear(),this.dimensionKeys=new GL,this.dimensionKeysIncludeVirtual=new GL,this.tree.children=t,this.setTreeNode(this.tree,0,this.tree)}setTreeNode(t,e,i){t.startIndex=e,t.startInTotal=(i.startInTotal??0)+t.startIndex,(t.dimensionKey??t.indicatorKey)&&(t.virtual||this.dimensionKeys.contain(t.indicatorKey?QL:t.dimensionKey)||this.dimensionKeys.put(t.level,t.indicatorKey?QL:t.dimensionKey),this.dimensionKeysIncludeVirtual.contain(t.indicatorKey?QL:t.dimensionKey)||this.dimensionKeysIncludeVirtual.put(t.level,t.indicatorKey?QL:t.dimensionKey),t.id||(t.id=++this.sharedVar.seqId));let r=t.dimensionKey&&this.sizeIncludeParent?1:0;const n=t.children||t.columns;return"grid"===this.hierarchyType?n?.length>=1?n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)})):r=1:t.hierarchyState===yE.expand&&n?.length>=1?n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)})):t.hierarchyState===yE.collapse&&n?.length>=1?n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),this.setTreeNode(e,r,t)})):!t.hierarchyState&&t.level+1<this.rowExpandLevel&&(n?.length>=1||!0===n)?(t.hierarchyState=yE.expand,n?.length>=1&&n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)}))):n?.length>=1||!0===n?(t.hierarchyState=yE.collapse,n?.length>=1&&n.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),this.setTreeNode(e,r,t)}))):(t.hierarchyState=yE.none,r=1),t.size=r,r}getTreePath(t,e=30){const i=[];return this.searchPath(t,this.tree,i,e),i.shift(),i}getTreePathByCellIds(t){const e=[];let i=this.tree.children;for(let r=0;r<t.length;r++){const n=t[r],o=this.findNodeById(i,n);if(!o)break;e.push(o),i=o.children}return e}findNodeById(t,e){return t.find((t=>t.id===e))}searchPath(t,e,i,r){if(!e)return;if(t<e.startIndex||t>=e.startIndex+e.size)return;if(i.push(e),!e.children||0===e.children.length||e.level>=r)return;const n=t-e.startIndex;if(this.cache.has(e.level+1)){const t=this.cache.get(e.level+1);if(n>=t.startIndex&&n<t.startIndex+t.size)return void this.searchPath(n,t,i,r)}let o=0,s=e.children.length-1;for(;o<=s;){const t=Math.floor((o+s)/2),a=e.children[t];if(n>=a.startIndex&&n<a.startIndex+a.size){this.cache.set(a.level,a);const t=[];this.cache.forEach(((e,i)=>{i>a.level&&t.push(i)})),t.forEach((t=>{this.cache.delete(t)})),this.searchPath(n,a,i,r);break}n<a.startIndex?s=t-1:o=t+1}}movePosition(t,e,i){let r,n,o;const s=(a,l)=>{if(void 0!==n&&void 0!==o)return;a.level===t&&(a.startInTotal===e&&(n=l),a.startInTotal<=i&&i<=a.startInTotal+a.size-1&&(o=l));const h=a.children||a.columns;if(h&&a.level<t){r=a;for(let t=0;t<h.length;t++)(e>=h[t].startInTotal&&e<=h[t].startInTotal+h[t].size||i>=h[t].startInTotal&&i<=h[t].startInTotal+h[t].size)&&s(h[t],t)}};s(this.tree,0);const a=r.children||r.columns,l=a.splice(n,1);l.unshift(o,0),Array.prototype.splice.apply(a,l)}getCopiedTree(){const t=vt(this.tree.children);return fG(t),t}}function dG(t,e){e?.forEach((e=>{const i={dimensionKey:e.dimensionKey,indicatorKey:e.indicatorKey,value:e.value,hierarchyState:e.hierarchyState,children:void 0,virtual:e.virtual??!1};t.push(i),e.children&&(i.children=[],dG(i.children,e.children))}))}function uG(t,e){let i=0;return t?.forEach((t=>{e?i++:t.children&&0!==t.children.length||i++,t.children&&(i+=uG(t.children,e))})),i}function gG(t,e,i,r,n,o){const s=t.id,a=o.rowsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey))??o.columnsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey)),l=o.indicatorsDefine?.find((e=>"string"!=typeof e&&(t.indicatorKey?e.indicatorKey===t.indicatorKey:e.title===t.value))),h={id:s,title:t.value??l?.title,field:t.dimensionKey,style:"function"==typeof(l??a)?.headerStyle?(l??a)?.headerStyle:Object.assign({},(l??a)?.headerStyle),headerType:l?.headerType??a?.headerType??"text",headerIcon:l?.headerIcon??a?.headerIcon,define:Object.assign({},t,l??Object.assign({},a,{sort:void 0})),fieldFormat:l?.headerFormat??a?.headerFormat,dropDownMenu:l?.dropDownMenu??a?.dropDownMenu,pivotInfo:{value:t.value,dimensionKey:t.dimensionKey,isPivotCorner:!1},width:a?.width,minWidth:a?.minWidth,maxWidth:a?.maxWidth,showSort:l?.showSort??a?.showSort,sort:l?.sort,description:a?.description};l?(l.customRender&&(t.customRender=l.customRender),Z(o._indicators?.find((t=>t.indicatorKey===l.indicatorKey)))||o._indicators?.push({id:++o.sharedVar.seqId,indicatorKey:l.indicatorKey,field:l.indicatorKey,fieldFormat:l?.format,cellType:l?.cellType??l?.columnType??"text",chartModule:"chartModule"in l?l.chartModule:null,chartSpec:"chartSpec"in l?l.chartSpec:null,sparklineSpec:"sparklineSpec"in l?l.sparklineSpec:null,style:l?.style,icon:l?.icon,define:Object.assign({},t,l,{dragHeader:a?.dragHeader}),width:l?.width,minWidth:l?.minWidth,maxWidth:l?.maxWidth,disableColumnResize:l?.disableColumnResize})):t.indicatorKey&&(Z(o._indicators?.find((e=>e.indicatorKey===t.indicatorKey)))||o._indicators?.push({id:++o.sharedVar.seqId,indicatorKey:t.indicatorKey,field:t.indicatorKey,cellType:"text",define:Object.assign({},t)})),i[s]=h,o._headerObjects[s]=h,e[n][o.colIndex]=s;for(let t=n-1;t>=0;t--)e[t][o.colIndex]=r[t];if(t.levelSpan>1)for(let i=1;i<t.levelSpan;i++)e[n+i]||(e[n+i]=[]),e[n+i][o.colIndex]=s;if(t.children?.length>=1)o._addHeaders(e,n+(t.levelSpan??1),t.children??[],[...r,...Array(t.levelSpan??1).fill(s)],i);else{for(let t=n+1;t<e.length;t++)e[t][o.colIndex]=s;o.colIndex++}}function pG(t,e,i,r,n,o,s,a,l){const h=t.id,c=a.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey)),d={id:h,title:t.value,field:t.dimensionKey,style:t.level+1===o||"function"==typeof c?.headerStyle?c?.headerStyle:Object.assign({},c?.headerStyle,{textAlign:"left"}),headerType:c?.headerType??"text",headerIcon:c?.headerIcon,define:Object.assign(t,{linkJump:c?.linkJump,linkDetect:c?.linkDetect,templateLink:c?.templateLink,keepAspectRatio:c?.keepAspectRatio??!1,imageAutoSizing:c?.imageAutoSizing,headerCustomRender:c?.headerCustomRender,headerCustomLayout:c?.headerCustomLayout,dragHeader:c?.dragHeader,disableHeaderHover:!!c?.disableHeaderHover,disableHeaderSelect:!!c?.disableHeaderSelect}),fieldFormat:c?.headerFormat,dropDownMenu:c?.dropDownMenu,pivotInfo:{value:t.value,dimensionKey:t.dimensionKey,isPivotCorner:!1},hierarchyLevel:t.level,dimensionTotalLevel:o,hierarchyState:t.hierarchyState,width:c?.width,minWidth:c?.minWidth,maxWidth:c?.maxWidth,parentCellId:r[r.length-1]};i[h]=d,l._headerObjects[h]=d,e[n][l.colIndex]=h;for(let t=n-1;t>=0;t--)e[t][l.colIndex]=r[t];if(t.hierarchyState===yE.expand&&t.children?.length>=1)s&&l.colIndex++,l._addHeadersForTreeMode(e,n,t.children??[],[...r,h],o,s&&t.hierarchyState===yE.expand,a,i);else{s&&l.colIndex++;for(let t=n+1;t<e.length;t++)e[t][l.colIndex]=h}}function fG(t){for(let e=0;e<t.length;e++){const i=t[e];delete i.level,delete i.startIndex,delete i.id,delete i.levelSpan,delete i.size,delete i.startInTotal;const r=i.children||i.columns;r&&fG(r)}}function mG(t,e){let i,r;e.columnTree&&(!1!==t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.columnTree=bG(t.internalProps.columnTree,e.indicators)),i=new cG(t.internalProps.columnTree??[],t.layoutNodeId)),e.rowTree&&(!1===t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.rowTree=bG(t.internalProps.rowTree,e.indicators)),r=new cG(t.internalProps.rowTree??[],t.layoutNodeId,t.options.rowHierarchyType,"tree"===t.options.rowHierarchyType?t.options.rowExpandLevel??1:void 0));const n=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],o=i?.dimensionKeys?.count?i.dimensionKeys.valueArr():e.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],s=e.indicators?.reduce(((e,i)=>("string"==typeof i?e.push(i):(e.push(i.indicatorKey),(i.chartSpec||i.sparklineSpec)&&(t.internalProps.dataConfig?.aggregationRules?t.internalProps.dataConfig.aggregationRules.find((t=>t.indicatorKey===i.indicatorKey))||t.internalProps.dataConfig.aggregationRules.push({field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:vE.NONE}):t.internalProps.dataConfig?t.internalProps.dataConfig.aggregationRules=[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:vE.NONE}]:t.internalProps.dataConfig={aggregationRules:[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:vE.NONE}]})),e)),[])??[];return"tree"===e.rowHierarchyType&&(e.extensionRows?.length??0)>=1&&e.extensionRows?.forEach((t=>{const e=[];t.rows.forEach((t=>{"string"==typeof t?e.push(t):e.push(t.dimensionKey)})),n.push(...e)})),{rowKeys:n,columnKeys:o,indicatorKeys:s,columnDimensionTree:i,rowDimensionTree:r}}function bG(t,e){const i=(t,r)=>{t.forEach((t=>{t.indicatorKey||r||t.children?.length&&t.children?t.children&&Array.isArray(t.children)&&i(t.children,r||!!t.indicatorKey):t.children=e?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey}))}))};return t?.length?i(t,!1):t=e?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey})),t}function yG(t,e){const i=function(t,e){if(!t.internalProps.frozenRowCount)return null;let{scrollTop:i}=t;const r=t.internalProps.frozenRowCount;for(let n=0;n<r;n++){const r=t.getRowHeight(n),o=i+r;if(o>e)return{top:i,row:n,bottom:o,height:r};i=o}return null}(e,t);if(i)return i;let r=wG(t,e);return r||(r={top:-1,row:-1,bottom:-1,height:-1}),r}function vG(t,e){const i=function(t,e){if(!t.internalProps.frozenColCount)return null;let{scrollLeft:i}=t;const r=t.internalProps.frozenColCount;for(let n=0;n<r;n++){const r=t.getColWidth(n),o=i+r;if(o>e)return{left:i,col:n,right:o,width:r};i=o}return null}(e,t);if(i)return i;let r=CG(t,e);return r||(r={left:-1,col:-1,right:-1,width:1}),r}function CG(t,e){if(0===t)return{left:0,col:0,right:0,width:0};const i=function(t,e){if(e._colRangeWidthsMap.get("$0$"+(e.colCount-1))){let i=0,r=e.colCount-1;for(;r-i>1;){const n=Math.floor((i+r)/2);if(t<e._colRangeWidthsMap.get(`$0$${n}`))r=n;else{if(!(t>e._colRangeWidthsMap.get(`$0$${n}`)))return n;i=n}}return r}return Math.min(Math.ceil(t/e.internalProps.defaultColWidth),e.colCount-1)}(t,e),r=e.getColsWidth(0,i);return t>=r?((i,r)=>{let n=r-e.getColWidth(i);const{colCount:o}=e.internalProps;for(let r=i;r<o;r++){const i=e.getColWidth(r),o=n+i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{left:n,col:r,right:o,width:i};n=o}return null})(i,r):((i,r)=>{let n=r;for(let r=i;r>=0;r--){const i=e.getColWidth(r),o=n-i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{left:o,col:r,right:n,width:i};n=o}return null})(i,r)}function wG(t,e){if(0===t)return{top:0,row:0,bottom:0,height:0};const i=function(t,e){let i=e.internalProps.defaultRowHeight;e._rowRangeHeightsMap.get("$0$"+(e.rowCount-1))&&(i=e._rowRangeHeightsMap.get("$0$"+(e.rowCount-1))/e.rowCount);return Math.min(Math.ceil(t/i),e.rowCount-1)}(t,e),r=e.getRowsHeight(0,i);return t>=r?((i,r)=>{let n=r-e.getRowHeight(i);const{rowCount:o}=e.internalProps;for(let r=i;r<o;r++){const i=e.getRowHeight(r),o=n+i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{top:n,row:r,bottom:o,height:i};n=o}return null})(i,r):((i,r)=>{let n=r;for(let r=i;r>=0;r--){const i=e.getRowHeight(r),o=n-i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{top:o,row:r,bottom:n,height:i};n=o}return null})(i,r)}function xG(t,e,i){if(0===t)return{left:0,col:0,right:0,width:0};if(e&&t>i.tableNoFrameWidth-i.getRightFrozenColsWidth()&&t<i.tableNoFrameWidth)for(let e=0;e<i.rightFrozenColCount;e++)if(t>i.tableNoFrameWidth-i.getColsWidth(i.colCount-e-1,i.colCount-1))return{col:i.colCount-e-1,left:void 0,right:void 0,width:void 0};return CG(t,i)}function _G(t,e,i){if(0===t)return{top:0,row:0,bottom:0,height:0};if(e&&t>i.tableNoFrameHeight-i.getBottomFrozenRowsHeight()&&t<i.tableNoFrameHeight)for(let e=0;e<i.rightFrozenColCount;e++)if(t>i.tableNoFrameHeight-i.getRowsHeight(i.rowCount-e-1,i.rowCount-1))return{row:i.rowCount-e-1,top:void 0,bottom:void 0,height:void 0};return wG(t,i)}const{toBoxArray:SG}=LL,{isTouchEvent:AG}=EL,MG=/^\$(\d+)\$(\d+)$/;!function(){if("node"===YE.mode)return;const t=document.createElement("style");t.id="vtable-style-styleSheet",t.textContent="\n.vtable .input-container {\n\tposition: absolute;\n\ttop:0px;\n}\n.vtable .table-scrollable {\n\tposition: absolute;\n\toverflow: scroll;\n}\n.vtable .table-scrollable::-webkit-scrollbar-button{\n\tbackground-color: transparent;\n}\n.vtable .table-scrollable::-webkit-scrollbar-track-piece{\n\tbackground-color: transparent;\n}\n.vtable .table-scrollable::-webkit-scrollbar-corner {\n\tbackground-color: transparent;\n}\n.vtable .table-scrollable::-webkit-scrollbar-thumb {\n\tborder-radius : 4px;\n\tbackground-color : rgba(100, 100, 100, .5);\n}\n\n.vtable .table-scroll-end-point {\n\topacity: 0;\n\tposition: relative;\n}\n.vtable {\n\t/* 设置overflow: auto 应该是为了滚动条的某个问题 但设置了auto之后 dom的下拉菜单只能显示在vtable节点中 超出会截断;现在去掉auto 暂时滚动条的问题没有发现 */\n\t/* overflow: auto; */\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n\ttext-align: left;\n -webkit-font-smoothing:auto;\n\n overflow: hidden; // for react-vtable dom custom element\n}\n.vtable .table-component-container {\n pointer-events: none;\n overflow: hidden;\n position: absolute;\n top: 0px;\n left: 0px;\n}\n.vtable > canvas {\n\tposition: absolute;\n\twidth: 0;\n\theight: 0;\n}\n.vtable .table-focus-control {\n\tposition: relative !important;\n\twidth: 1px;\n\theight: 1px;\n\topacity: 0;\n\tpadding: 0;\n\tmargin: 0;\n\tbox-sizing: border-box;\n\tpointer-events: none;\n\tmax-width: 500px;\n\tmax-height: 500px;\n\tfloat: none !important;\n}\n.vtable input.table-focus-control::-ms-clear {\n\tvisibility: hidden;\n}\n.vtable input.table-focus-control.composition {\n\topacity: 1;\n\tmax-width: none;\n\tmax-height: none;\n}\n",document.head.appendChild(t)}();const TG={};class RG extends RE{internalProps;showFrozenIcon=!0;padding;globalDropDownMenu;tableNoFrameWidth;tableNoFrameHeight;tableX;tableY;_widthMode;_heightMode;_autoFillWidth;_autoFillHeight;_widthAdaptiveMode;_heightAdaptiveMode;customRender;canvasWidth;canvasHeight;_vDataSet;scenegraph;stateManager;eventManager;_pixelRatio;static get EVENT_TYPE(){return IL}options;version="1.4.2";pagination;id=`VTable${Date.now()}`;headerStyleCache;bodyStyleCache;bodyBottomStyleCache;container;isReleased=!1;_chartEventMap={};customCellStylePlugin;columnWidthComputeMode;reactCustomLayout;_hasAutoImageColumn;constructor(t,e={}){if(super(),!t&&"node"!==e.mode)throw new Error("vtable's container is undefined");const{frozenColCount:i=0,defaultRowHeight:r=40,defaultHeaderRowHeight:n,defaultColWidth:o=80,defaultHeaderColWidth:s,widthMode:a="standard",heightMode:l="standard",autoFillWidth:h=!1,autoFillHeight:c=!1,widthAdaptiveMode:d="only-body",heightAdaptiveMode:u="only-body",keyboardOptions:g,eventOptions:p,rowSeriesNumber:f,columnResizeMode:m,rowResizeMode:b="none",dragHeaderMode:y,showFrozenIcon:v,allowFrozenColCount:C,padding:w,hover:x,menu:_,select:S,customRender:A,pixelRatio:M=tN,renderChartAsync:T,renderChartAsyncBatchCount:R,mode:B,modeParams:P,canvasWidth:k,canvasHeight:E,overscrollBehavior:L,limitMinWidth:H,limitMinHeight:I,clearDOM:O=!0}=e;this.container=t,this.options=e,this._widthMode=a,this._heightMode=l,this._widthAdaptiveMode=d,this._heightAdaptiveMode=u,this._autoFillWidth=h,this._autoFillHeight=c,this.customRender=A,this.padding={top:0,right:0,left:0,bottom:0},w&&("number"==typeof w?(this.padding.top=w,this.padding.left=w,this.padding.bottom=w,this.padding.right=w):(w.top&&(this.padding.top=w.top),w.bottom&&(this.padding.bottom=w.bottom),w.left&&(this.padding.left=w.left),w.right&&(this.padding.right=w.right))),this.tableNoFrameWidth=0,this.tableNoFrameHeight=0,this.canvasWidth=k,this.canvasHeight=E,this.columnWidthComputeMode=e.columnWidthComputeMode??"normal";const F=this.internalProps={};if(void 0!==v&&(this.showFrozenIcon=v),"number"==typeof C&&C<=0&&(this.showFrozenIcon=!1),"node"!==YE.mode&&(F.element=function(t){const e=document.createElement("div");e.setAttribute("tabindex","0"),e.classList.add("vtable"),e.style.outline="none",e.style.margin=`${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`;const i=(e.offsetWidth||e.parentElement?.offsetWidth||1)-1,r=(e.offsetHeight||e.parentElement?.offsetHeight||1)-1;return e.style.width=i&&i-t.left-t.right+"px"||"0px",e.style.height=r&&r-t.top-t.bottom+"px"||"0px",e}(this.padding),F.focusControl=new XN(this,F.element),F.canvas=document.createElement("canvas"),F.element.appendChild(F.canvas),F.context=F.canvas.getContext("2d"),e.customConfig?.createReactContainer&&(F.bodyDomContainer=document.createElement("div"),F.bodyDomContainer.classList.add("table-component-container"),F.element.appendChild(F.bodyDomContainer),F.headerDomContainer=document.createElement("div"),F.headerDomContainer.classList.add("table-component-container"),F.element.appendChild(F.headerDomContainer))),F.handler=new WL,at(this.options.resizeTime)&&(F.handler.resizeTime=this.options.resizeTime),F.pixelRatio=M,F.frozenColCount=i,F.defaultRowHeight=r,F.defaultHeaderRowHeight=n??r,F.defaultColWidth=o,F.defaultHeaderColWidth=s??o,F.keyboardOptions=g,F.eventOptions=p,F.rowSeriesNumber=f,F.columnResizeMode=m,F.rowResizeMode=b,F.dragHeaderMode=y??"none",F.renderChartAsync=T,Wz(R),F.overscrollBehavior=L??"auto",F._rowHeightsMap=new oG(this),F._rowRangeHeightsMap=new Map,F._colRangeWidthsMap=new Map,F._widthResizedColMap=new Set,F._heightResizedRowMap=new Set,this.colWidthsMap=new GL,this.colContentWidthsMap=new GL,this.colWidthsLimit={},F.calcWidthContext={_:F,get full(){return"node"===YE.mode?k/(M??1):this._.canvas.width/(this._.context.pixelRatio??window.devicePixelRatio)}},F.cellTextOverflows={},F.focusedTable=!1,F.theme=fH.of(e.theme??fH.DEFAULT),F.theme.isPivot=this.isPivotTable(),t?(O&&(t.innerHTML=""),t.appendChild(F.element),this._updateSize()):this._updateSize(),this.options=e,F.theme=fH.of(e.theme??fH.DEFAULT),F.theme.isPivot=this.isPivotTable(),F.bodyHelper=new lN(this),F.headerHelper=new BN(this),F.rowSeriesNumberHelper=new aG(this),F.autoWrapText=e.autoWrapText,F.enableLineBreak=e.enableLineBreak,F.allowFrozenColCount=e.allowFrozenColCount??0,F.limitMaxAutoWidth=e.limitMaxAutoWidth??450,F.limitMinWidth=null!=H?"number"==typeof H?H:H?10:0:10,F.limitMinHeight=null!=I?"number"==typeof I?I:I?10:0:10,this._vDataSet=new LH,this.scenegraph=new RW(this),this.stateManager=new jW(this),this.eventManager=new nN(this),e.legends)if(F.legends=[],Array.isArray(e.legends)){for(let t=0;t<e.legends.length;t++)F.legends.push(nG(e.legends[t],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else F.legends.push(nG(e.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});F.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},e.tooltip),"html"===F.tooltip.renderMode&&(F.tooltipHandler=new DN(this,F.tooltip.confine)),F.menu=Object.assign({renderMode:"html"},e.menu),Array.isArray(e.menu?.dropDownMenuHighlight)&&this.setDropDownMenuHighlight(e.menu?.dropDownMenuHighlight),Array.isArray(e.menu?.defaultHeaderMenuItems)&&(this.globalDropDownMenu=e.menu.defaultHeaderMenuItems),"html"===F.menu.renderMode&&(F.menuHandler=new YN(this)),this.headerStyleCache=new Map,this.bodyStyleCache=new Map,this.bodyBottomStyleCache=new Map,F.stick={changedCells:new Map},F.customMergeCell=e.customMergeCell,this.customCellStylePlugin=new lG(this,e.customCellStyle??[],e.customCellStyleArrangement??[])}throttleInvalidate=function(t,e){let i=null;return function(...r){i||(i=setTimeout((()=>{t.apply(this,r),i=null}),e))}}(this.render.bind(this),200);getContainer(){return this.container}getElement(){return this.internalProps.element}get canvas(){return this.internalProps.canvas}resize(){this._updateSize(),this.internalProps.legends?.forEach((t=>{t?.resize()})),this.internalProps.title&&this.internalProps.title.resize(),this.internalProps.emptyTip&&this.internalProps.emptyTip.resize(),this.scenegraph.resize()}get rowCount(){return this.internalProps.rowCount}set rowCount(t){this.internalProps.rowCount=t}get colCount(){return this.internalProps.colCount??0}set colCount(t){this.internalProps.colCount=t}get frozenColCount(){return this.internalProps?.layoutMap?.frozenColCount??this.internalProps?.frozenColCount??0}set frozenColCount(t){t>=this.colCount&&(t=0),this.internalProps.frozenColCount=t,this.options.frozenColCount=t,this.tableNoFrameWidth-this.getColsWidth(0,t-1)<=120&&(this.internalProps.frozenColCount=0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount)}setFrozenColCount(t){t>=this.colCount&&(t=0),this.internalProps.frozenColCount=t,this.options.frozenColCount=t,this.tableNoFrameWidth-this.getColsWidth(0,t-1)<=120&&(this.internalProps.frozenColCount=0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount)}_setFrozenColCount(t){t>=this.colCount&&(t=0),this.internalProps.frozenColCount=t}_resetFrozenColCount(){this.options.frozenColCount&&(this.tableNoFrameWidth-this.getColsWidth(0,this.options.frozenColCount-1)<=120?this._setFrozenColCount(0):this.frozenColCount!==this.options.frozenColCount&&this._setFrozenColCount(this.options.frozenColCount))}get frozenRowCount(){return this.internalProps?.layoutMap?.frozenRowCount??this.internalProps?.frozenRowCount??0}set frozenRowCount(t){this.internalProps.frozenRowCount=t}get rightFrozenColCount(){return this.internalProps?.layoutMap?.rightFrozenColCount??this.internalProps?.rightFrozenColCount??0}set rightFrozenColCount(t){this.scenegraph.dealWidthRightFrozen(t)}get bottomFrozenRowCount(){return this.internalProps?.layoutMap?.bottomFrozenRowCount??this.internalProps?.bottomFrozenRowCount??0}set bottomFrozenRowCount(t){this.scenegraph.dealWidthBottomFrozen(t)}get defaultRowHeight(){return this.internalProps.defaultRowHeight}set defaultRowHeight(t){this.internalProps.defaultRowHeight=t,this.options.defaultRowHeight=t}get defaultHeaderRowHeight(){return this.internalProps.defaultHeaderRowHeight}set defaultHeaderRowHeight(t){this.internalProps.defaultHeaderRowHeight=t,this.options.defaultHeaderRowHeight=t}get defaultColWidth(){return this.internalProps.defaultColWidth}set defaultColWidth(t){this.internalProps.defaultColWidth=t,this.options.defaultColWidth=t}get defaultHeaderColWidth(){return this.internalProps.defaultHeaderColWidth}set defaultHeaderColWidth(t){this.internalProps.defaultHeaderColWidth=t,this.options.defaultHeaderColWidth=t}get colWidthsMap(){return this.internalProps._colWidthsMap}set colWidthsMap(t){this.internalProps._colWidthsMap=t}get colContentWidthsMap(){return this.internalProps._colContentWidthsMap}set colContentWidthsMap(t){this.internalProps._colContentWidthsMap=t}get _colRangeWidthsMap(){return this.internalProps._colRangeWidthsMap}set _colRangeWidthsMap(t){this.internalProps._colRangeWidthsMap=t}get _rowRangeHeightsMap(){return this.internalProps._rowRangeHeightsMap}set _rowRangeHeightsMap(t){this.internalProps._rowRangeHeightsMap=t}get rowHeightsMap(){return this.internalProps._rowHeightsMap}set rowHeightsMap(t){this.internalProps._rowHeightsMap=t}get colWidthsLimit(){return this.internalProps._colWidthsLimit}set colWidthsLimit(t){this.internalProps._colWidthsLimit=t}get keyboardOptions(){return this.internalProps.keyboardOptions??null}set keyboardOptions(t){this.internalProps.keyboardOptions=t??void 0}get eventOptions(){return this.internalProps.eventOptions??null}set eventOptions(t){this.internalProps.eventOptions=t??void 0}get widthMode(){return this._widthMode}set widthMode(t){t!==this._widthMode&&(this._widthMode=t,this.options.widthMode=t)}get heightMode(){return this._heightMode}set heightMode(t){t!==this._heightMode&&(this._heightMode=t,this.options.heightMode=t)}get autoFillWidth(){return this._autoFillWidth}set autoFillWidth(t){t!==this._autoFillWidth&&(this._autoFillWidth=t)}get autoFillHeight(){return this._autoFillHeight}set autoFillHeight(t){t!==this._autoFillHeight&&(this._autoFillHeight=t)}get widthAdaptiveMode(){return this._widthAdaptiveMode}set widthAdaptiveMode(t){t!==this._widthAdaptiveMode&&(this._widthAdaptiveMode=t)}get heightAdaptiveMode(){return this._heightAdaptiveMode}set heightAdaptiveMode(t){t!==this._heightAdaptiveMode&&(this._heightAdaptiveMode=t)}_colWidthDefineToPxWidth(t){return"auto"===t?0:bO(this,t)}_getColWidthLimits(t){const e=this.colWidthsLimit[t];if(!e)return null;const i={};return e.min&&(i.min=bO(this,e.min),i.minDef=e.min),e.max&&(i.max=bO(this,e.max),i.maxDef=e.max),i}_adjustColWidth(t,e){const i=this._getColWidthLimits(t);return Math.max(function(t,e){return t?t.min&&t.min>e?t.min:t.max&&t.max<e?t.max:e:e}(i,e),0)}setPixelRatio(t){if(t!==this.internalProps.pixelRatio){this.internalProps.pixelRatio=t;const e=this.options.canvasWidth;this.internalProps.calcWidthContext={_:this.internalProps,get full(){return"node"===YE.mode?e/(t??1):this._.canvas.width/(this._.context.pixelRatio??window.devicePixelRatio)}},this.scenegraph.setPixelRatio(t)}}_updateSize(){const{padding:t}=this;let e=0,i=0;if("browser"===YE.mode){const r=this.getElement();let n=0,o=0;if(r.parentElement){const t=r.parentElement.style||window.getComputedStyle(r.parentElement);n=r.parentElement.offsetWidth-parseInt(t.paddingLeft||"0px",10)-parseInt(t.paddingRight||"0px",10),o=r.parentElement.offsetHeight-parseInt(t.paddingTop||"0px",10)-parseInt(t.paddingBottom||"0px",20)}const s=n??0,a=o??0;r.style.width=s&&s-t.left-t.right+"px"||"0px",r.style.height=a&&a-t.top-t.bottom+"px"||"0px";const{canvas:l}=this.internalProps;e=l.parentElement?.offsetWidth??0,i=l.parentElement?.offsetHeight??0,this?.scenegraph?.stage?this.scenegraph.stage.resize(e,i):(l.style.width="",l.style.height="",l.width=e,l.height=i,l.style.width=`${e}px`,l.style.height=`${i}px`),this.internalProps.bodyDomContainer&&(this.internalProps.bodyDomContainer.style.width=`${e}px`,this.internalProps.bodyDomContainer.style.height=`${i}px`),this.internalProps.headerDomContainer&&(this.internalProps.headerDomContainer.style.width=`${e}px`,this.internalProps.headerDomContainer.style.height=`${i}px`)}else"node"===YE.mode&&(e=this.canvasWidth-1,i=this.canvasHeight-1);const r=Math.floor(e-XE(this.getTheme().scrollStyle)),n=Math.floor(i-XE(this.getTheme().scrollStyle));if(this.internalProps.theme?.frameStyle){const t=SG(this.internalProps.theme.frameStyle?.borderLineWidth??[null]),e=SG(this.internalProps.theme.frameStyle?.shadowBlur??[0]);this.theme.frameStyle?.innerBorder?(this.tableX=0,this.tableY=0,this.tableNoFrameWidth=r-(e[1]??0),this.tableNoFrameHeight=n-(e[2]??0)):(this.tableX=(t[3]??0)+(e[3]??0),this.tableY=(t[0]??0)+(e[0]??0),this.tableNoFrameWidth=r-((t[1]??0)+(e[1]??0))-((t[3]??0)+(e[3]??0)),this.tableNoFrameHeight=n-((t[0]??0)+(e[0]??0))-((t[2]??0)+(e[2]??0)))}}get rowHierarchyType(){return"grid"}getColsWidth(t,e){if(t>e)return 0;t=Math.max(t,0),e=Math.min(e,(this.colCount??1/0)-1);const i=this._colRangeWidthsMap.get(`$${t}$${e}`);if(null!=i)return i;const r=this._colRangeWidthsMap.get(`$${t}$${e-1}`);if(null!=r){const i=r+this.getColWidth(e);return t>=0&&e>=0&&!Number.isNaN(i)&&this._colRangeWidthsMap.set(`$${t}$${e}`,Math.round(i)),Math.round(i)}let n=0;for(let i=t;i<=e;i++)n+=this.getColWidth(i);return t>=0&&e>=0&&this._colRangeWidthsMap.set(`$${t}$${e}`,Math.round(n)),Math.round(n)}getRowHeight(t){if(Z(this.rowHeightsMap.get(t))){if(this.options.customConfig?._disableColumnAndRowSizeRound){const e=this.rowHeightsMap.get(t);let i;return i=t<this.frozenRowCount?this.rowHeightsMap.getSumInRange(0,t):t>=this.rowCount-this.bottomFrozenRowCount?this.rowHeightsMap.getSumInRange(t,this.rowCount-1):this.rowHeightsMap.getSumInRange(this.frozenRowCount,t),i=Number(i.toFixed(2)),Number.isInteger(i)?Math.ceil(e):Math.floor(e)}return this.rowHeightsMap.get(t)}const e=this.getDefaultRowHeight(t);return at(e)?e:this.defaultRowHeight}getDefaultColumnWidth(t){return this.isRowHeader(t,0)||this.isCornerHeader(t,0)?Array.isArray(this.defaultHeaderColWidth)?this.defaultHeaderColWidth[t]??this.defaultColWidth:this.defaultHeaderColWidth:this.isRightFrozenColumn(t,this.columnHeaderLevelCount)&&this.isPivotTable()?Array.isArray(this.defaultHeaderColWidth)?this.defaultHeaderColWidth[this.rowHeaderLevelCount-this.rightFrozenColCount]??this.defaultColWidth:this.defaultHeaderColWidth:this.defaultColWidth}getDefaultRowHeight(t){return this.isColumnHeader(0,t)||this.isCornerHeader(0,t)||this.isSeriesNumberInHeader(0,t)?Array.isArray(this.defaultHeaderRowHeight)?this.defaultHeaderRowHeight[t]??this.internalProps.defaultRowHeight:this.defaultHeaderRowHeight:this.isBottomFrozenRow(t)?Array.isArray(this.defaultHeaderRowHeight)?this.defaultHeaderRowHeight[this.columnHeaderLevelCount>0?this.columnHeaderLevelCount-this.bottomFrozenRowCount:0]??this.internalProps.defaultRowHeight:this.defaultHeaderRowHeight:this.internalProps.defaultRowHeight}_setRowHeight(t,e,i){this.rowHeightsMap.put(t,this.options.customConfig?._disableColumnAndRowSizeRound?e:Math.round(e)),i&&this._clearRowRangeHeightsMap(t)}setRowHeight(t,e){this.scenegraph.setRowHeight(t,e),this.internalProps._heightResizedRowMap.add(t)}getRowsHeight(t,e){if(t>e||0===this.rowCount)return 0;t=Math.max(t,0),e=Math.min(e,(this.rowCount??1/0)-1);let i=0;if("standard"!==this.heightMode||this.autoFillHeight||!this.internalProps.layoutMap||this.hasAutoImageColumn()||0!==this.internalProps._heightResizedRowMap.size){if(this.options.customConfig?._disableColumnAndRowSizeRound){const i=this.rowHeightsMap.getSumInRange(t,e);let r;return r=e<this.frozenRowCount?this.rowHeightsMap.getSumInRange(0,e):e>=this.rowCount-this.bottomFrozenRowCount?this.rowHeightsMap.getSumInRange(e,this.rowCount-1):this.rowHeightsMap.getSumInRange(this.frozenRowCount,e),r=Number(r.toFixed(2)),Number.isInteger(r)?Math.ceil(i):Math.floor(i)}i=this.rowHeightsMap.getSumInRange(t,e)}else{for(let r=t;r<Math.min(e+1,this.columnHeaderLevelCount);r++)i+=this.getRowHeight(r);e>=this.columnHeaderLevelCount&&(i+=this.defaultRowHeight*(Math.min(e,this.rowCount-this.bottomFrozenRowCount-1)-Math.max(this.columnHeaderLevelCount,t)+1));for(let t=this.rowCount-this.bottomFrozenRowCount;t<e+1;t++)i+=this.getRowHeight(t)}return Math.round(i)}getColWidthDefined(t){const{layoutMap:e}=this.internalProps;if("autoWidth"===this.widthMode)return"auto";const{width:i}=e?.getColumnWidthDefined(t)??{};return"number"==typeof i&&i<=0?0:i||this.getDefaultColumnWidth(t)}getColWidthDefinedNumber(t){const e=this.getColWidthDefined(t);return this._adjustColWidth(t,this._colWidthDefineToPxWidth(e))}isAutoRowHeight(t){return"autoHeight"===this.heightMode||t>=0&&t<this.columnHeaderLevelCount&&"auto"===this.getDefaultRowHeight(t)}getColWidth(t){const e=this.colWidthsMap.get(t)??this.getDefaultColumnWidth(t);return"adaptive"===this.widthMode&&"number"==typeof e||this.transpose&&"number"==typeof e?this._colWidthDefineToPxWidth(e):this._adjustColWidth(t,this._colWidthDefineToPxWidth(e))}_setColWidth(t,e,i,r){this.colWidthsMap.put(t,"number"==typeof e?Math.round(e):e),i&&this._clearColRangeWidthsMap(t),r||this.stateManager.checkFrozen()}setColWidth(t,e){this.scenegraph.setColWidth(t,e),this.internalProps._widthResizedColMap.add(t)}_clearColRangeWidthsMap(t){if("number"!=typeof t)this._colRangeWidthsMap.clear();else{const e=this._colRangeWidthsMap.keys();for(const i of e){const e=MG.exec(i);if(e){const r=Number(e[1]),n=Number(e[2]);t>=r&&t<=n&&this._colRangeWidthsMap.delete(i)}}}}_clearRowRangeHeightsMap(t){this.rowHeightsMap.clearRange()}_getColContentWidth(t){return Number(this.colContentWidthsMap.get(t))}_setColContentWidth(t,e){this.colContentWidthsMap.put(t,e)}getAllRowsHeight(){if(this.internalProps.rowCount<=0)return 0;return this.getRowsHeight(0,this.internalProps.rowCount-1)}getAllColsWidth(){if(this.internalProps.colCount<=0)return 0;return this.getColsWidth(0,this.internalProps.colCount-1)}getMaxColWidth(t){const e=this.colWidthsLimit[t];let i=(e&&e.max)??1/0;return"string"==typeof i&&(i=bO(this,i)),i}setMaxColWidth(t,e){(this.colWidthsLimit[t]||(this.colWidthsLimit[t]={})).max=e}getMinColWidth(t){const e=this.colWidthsLimit[t];let i=(e&&e.min)??0;return"string"==typeof i&&(i=bO(this,i)),i}setMinColWidth(t,e){(this.colWidthsLimit[t]||(this.colWidthsLimit[t]={})).min=e}getCellRect(t,e){const i=this.isFrozenCell(t,e);let r;const n=this.getColWidth(t);let o;r=i&&i.col&&this.isRightFrozenColumn(t,e)?this.getAllColsWidth()<=this.tableNoFrameWidth?this.getColsWidth(0,t-1)||0:this.tableNoFrameWidth-(this.getColsWidth(t,this.colCount-1)??0):this.getColsWidth(0,t-1)||0;const s=this.getRowHeight(e);return o=i&&i.row&&this.isBottomFrozenRow(t,e)?this.getAllRowsHeight()<=this.tableNoFrameHeight?this.getRowsHeight(0,e-1):this.tableNoFrameHeight-(this.getRowsHeight(e,this.rowCount-1)??0):this.getRowsHeight(0,e-1),new jL(Math.round(r),Math.round(o),Math.round(n),Math.round(s))}getMergeCellRect(t,e){const i=this.getCellRange(t,e),r=this.getColsWidth(0,i.start.col-1)||0,n=this.getColsWidth(i.start.col,i.end.col),o=this.getRowsHeight(0,i.start.row-1)||0,s=this.getRowsHeight(i.start.row,i.end.row);return new jL(Math.round(r),Math.round(o),Math.round(n),Math.round(s))}getCellRelativeRect(t,e){const i=this.isFrozenCell(t,e);let r=!0,n=!0;i?.col&&i?.row?(r=!1,n=!1):i?.col?r=!1:i?.row&&(n=!1);const o=this.getCellRect(t,e);return this._toRelativeRect(o,r,n)}getCellRangeRelativeRect(t){if(t.start){const e=this.isFrozenCell(t.start.col,t.start.row);let i=!0,r=!0;return e?.col&&e?.row?(i=!1,r=!1):e?.col?i=!1:e?.row&&(r=!1),this._toRelativeRect(this.getCellsRect(t.start.col,t.start.row,t.end.col,t.end.row),i,r)}const e=this.getCellRange(t.col,t.row),i=this.isFrozenCell(t.col,t.row);let r=!0,n=!0;return i?.col&&i?.row?(r=!1,n=!1):i?.col?r=!1:i?.row&&(n=!1),this._toRelativeRect(this.getCellsRect(e.start.col,e.start.row,e.end.col,e.end.row),r,n)}getVisibleCellRangeRelativeRect(t){let e;return e=t.start?t:this.getCellRange(t.col,t.row),this._getVisiableRect(this.getCellRangeRelativeRect(t),e)}_getVisiableRect(t,e){const i=e.start.col>=this.frozenColCount?Math.max(t.left,this.frozenColCount>=1?this.getColsWidth(0,this.frozenColCount-1):0):t.left,r=Math.min(t.right,this.tableNoFrameWidth),n=t.copy();n.left=i,n.right=r;const o=e.start.row>=this.frozenRowCount?Math.max(t.top,this.frozenRowCount>=1?this.getRowsHeight(0,this.frozenRowCount-1):0):t.top,s=Math.min(t.bottom,this.tableNoFrameHeight);return n.top=o,n.bottom=s,n}getCellsRect(t,e,i,r){let n=this.getColsWidth(0,t-1)||0,o=this.getColsWidth(t,i);const s=this.scrollLeft;this.isLeftFrozenColumn(t)&&this.isRightFrozenColumn(i)?o=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-n:this.isLeftFrozenColumn(t)&&!this.isLeftFrozenColumn(i)?o=Math.max(o-s,this.getColsWidth(t,this.frozenColCount-1)):!this.isRightFrozenColumn(t)&&this.isRightFrozenColumn(i)?(n=Math.min(n-s,this.tableNoFrameWidth-this.getRightFrozenColsWidth()),o=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-n):this.isRightFrozenColumn(t)&&(n=this.tableNoFrameWidth-(this.getColsWidth(t,this.colCount-1)??0));let a=this.getRowsHeight(0,e-1),l=this.getRowsHeight(e,r);const h=this.scrollTop;return this.isTopFrozenRow(e)&&this.isBottomFrozenRow(r)?l=this.tableNoFrameHeight-(this.getRowsHeight(e+1,this.rowCount-1)??0)-a:this.isTopFrozenRow(e)&&!this.isTopFrozenRow(r)?l=Math.max(l-h,this.getRowsHeight(e,this.frozenRowCount-1)):!this.isBottomFrozenRow(e)&&this.isBottomFrozenRow(r)?(a=Math.min(a-h,this.tableNoFrameHeight-this.getBottomFrozenRowsHeight()),l=this.tableNoFrameHeight-(this.getRowsHeight(e+1,this.rowCount-1)??0)-a):this.isBottomFrozenRow(e)&&(a=this.tableNoFrameHeight-(this.getRowsHeight(e,this.rowCount-1)??0)),new jL(Math.round(n),Math.round(a),Math.round(o),Math.round(l))}getCellsRectWidth(t,e,i,r){const n=this.isFrozenCell(t,e),o=this.isFrozenCell(i,r);let s=this.getColsWidth(t,i);if(n&&n.col){const e=this.scrollLeft;o&&o.col||(s-=e,s=Math.max(s,this.getColsWidth(t,this.frozenColCount-1)))}return s}getCellRangeRect(t){if(t.start)return this.getCellsRect(t.start.col,t.start.row,t.end.col,t.end.row);const e=this.getCellRange(t.col,t.row);return this.getCellsRect(e.start.col,e.start.row,e.end.col,e.end.row)}getCellRangeRectWidth(t){if(t.start)return this.getCellsRectWidth(t.start.col,t.start.row,t.end.col,t.end.row);const e=this.getCellRange(t.col,t.row);return this.getCellsRectWidth(e.start.col,e.start.row,e.end.col,e.end.row)}isFrozenCell(t,e){const i=this.isFrozenRow(e),r=this.isFrozenColumn(t);return i||r?{row:i,col:r}:null}getRowAt(t){return yG(t,this)}getColAt(t){return vG(t,this)}getCellAt(t,e){return function(t,e,i){const r=yG(e,i),{row:n,top:o,bottom:s,height:a}=r,l=vG(t,i),{col:h,left:c,right:d,width:u}=l;return{row:n,col:h,rect:{left:c,right:d,top:o,bottom:s,width:u,height:a}}}(t,e,this)}getCellAtRelativePosition(t,e){return function(t,e,i){t-=i.tableX;let r=!1;(e-=i.tableY)>i.tableNoFrameHeight-i.getBottomFrozenRowsHeight()&&e<i.tableNoFrameHeight&&(r=!0);let n=!1;t>i.tableNoFrameWidth-i.getRightFrozenColsWidth()&&t<i.tableNoFrameWidth&&(n=!0);const o=xG(n?t:t+i.scrollLeft,n,i),s=_G(r?e:e+i.scrollTop,r,i),{row:a,top:l,bottom:h,height:c}=s,{col:d,left:u,right:g,width:p}=o;return{row:a,col:d,rect:{left:u,right:g,top:l,bottom:h,width:p,height:c}}}(t,e,this)}_checkRowCol(t,e){return t>=0&&t<this.colCount&&e>=0&&e<this.rowCount}_makeVisibleCell(t,e){if(this._checkRowCol(t,e)){const i=this.isFrozenCell(t,e);if(i&&i.col&&i.row)return;const r=this.getCellRect(t,e),n=function(t){let e=0,i=0;t.frozenColCount>0&&(e=t.getFrozenColsWidth()),t.rightFrozenColCount>0&&(i=t.getRightFrozenColsWidth());let r=0,n=0;return t.frozenRowCount>0&&(r=t.getFrozenRowsHeight()),t.bottomFrozenRowCount>0&&(n=t.getBottomFrozenRowsHeight()),new jL(t.scrollLeft+e,t.scrollTop+r,t.tableNoFrameWidth-e-i,t.tableNoFrameHeight-r-n)}(this);if(n.contains(r))return;i&&i.col||this.getColsWidth(0,this.frozenColCount-1)+r.width>this.canvas.width||(r.left<n.left?this.scrollLeft-=n.left-r.left:n.right<r.right&&(this.scrollLeft-=n.right-r.right)),i&&i.row||this.getRowsHeight(0,this.frozenRowCount-1)+r.height>this.canvas.height||(r.top<n.top?this.scrollTop-=n.top-r.top:n.bottom<r.bottom&&(this.scrollTop-=n.bottom-r.bottom))}}render(){this.scenegraph.renderSceneGraph()}renderAsync(){return this.scenegraph.updateNextFrame(),new Promise(((t,e)=>{setTimeout((()=>{t()}),0)}))}_toRelativeRect(t,e=!0,i=!0){const r=t.copy(),n=this.getVisibleRect();return r.offsetLeft(this.tableX-(e?n.left:0)),r.offsetTop(this.tableY-(i?n.top:0)),r}getVisibleRect(){const{scrollTop:t,scrollLeft:e}=this,i=this.tableNoFrameWidth,r=this.tableNoFrameHeight;return new jL(e,t,i,r)}get visibleRowCount(){const{frozenRowCount:t}=this,e=this.getVisibleRect(),i=t>0?e.top+this.getRowsHeight(0,t-1):e.top,r=this.getTargetRowAt(i);if(!r)return 0;const n=Math.max(r.top>=i?r.row:r.row+1,t);let o=this.getRowsHeight(0,n-1),s=0;const{rowCount:a}=this;for(let t=n;t<a;t++){const i=o+this.getRowHeight(t);if(e.bottom<i)break;s++,o=i}return s}getBodyVisibleCellRange(){const{scrollTop:t,scrollLeft:e}=this,i=this.getFrozenRowsHeight(),r=this.getFrozenColsWidth(),n=this.getBottomFrozenRowsHeight(),o=this.getRightFrozenColsWidth(),{row:s}=this.getRowAt(t+i+1),{col:a}=this.getColAt(e+r+1),l=this.getAllRowsHeight()>this.tableNoFrameHeight?this.getRowAt(t+this.tableNoFrameHeight-1-n).row:this.rowCount-1,h=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(e+this.tableNoFrameWidth-1-o).col:this.colCount-1;return h<0||l<0?null:{rowStart:s,colStart:a,rowEnd:l,colEnd:h}}getBodyVisibleRowRange(){const{scrollTop:t}=this,e=this.getFrozenRowsHeight(),i=this.getBottomFrozenRowsHeight(),{row:r}=this.getRowAt(t+e+1),n=this.getAllRowsHeight()>this.tableNoFrameHeight?this.getRowAt(t+this.tableNoFrameHeight-1-i).row:this.rowCount-1;return n<0?null:{rowStart:r,rowEnd:n}}getBodyVisibleColRange(){const{scrollLeft:t}=this,e=this.getFrozenColsWidth(),i=this.getRightFrozenColsWidth(),{col:r}=this.getColAt(t+e+1),n=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(t+this.tableNoFrameWidth-1-i).col:this.colCount-1;return n<0?null:{colStart:r,colEnd:n}}get visibleColCount(){const{frozenColCount:t}=this,e=this.getVisibleRect(),i=t>0?e.left+this.getColsWidth(0,t-1):e.left,r=this.getTargetColAt(i);if(!r)return 0;const n=Math.max(r.left>=i?r.col:r.col+1,t);let o=this.getColsWidth(0,n-1),s=0;const{colCount:a}=this;for(let t=n;t<a;t++){const i=o+this.getColWidth(t);if(e.right<i)break;s++,o=i}return s}get scrollTop(){return this.stateManager.scroll.verticalBarPos}set scrollTop(t){this.stateManager.setScrollTop(t)}get scrollLeft(){return this.stateManager.scroll.horizontalBarPos}set scrollLeft(t){this.stateManager.setScrollLeft(t)}getScrollLeft(){return this.scrollLeft}getScrollTop(){return this.scrollTop}setScrollLeft(t){this.scrollLeft=Math.ceil(t)}setScrollTop(t){this.scrollTop=Math.ceil(t)}getCellOverflowText(t,e){return this.scenegraph.getCellOverflowText(t,e)}addReleaseObj(t){if(!t||!t.release||"function"!=typeof t.release)throw new Error("not releaseObj!");(this.internalProps.releaseList=this.internalProps.releaseList||[]).push(t)}dispose(){this.release()}release(){const t=this.internalProps;t.tooltipHandler?.release?.(),t.menuHandler?.release?.(),DO.clearAll(),super.release?.(),t.handler?.release?.(),this.eventManager.release(),t.focusControl?.release?.(),t.legends?.forEach((t=>{t?.release()})),t.title?.release(),t.title=null,t.emptyTip?.release(),t.emptyTip=null,t.layoutMap.release(),t.releaseList&&(t.releaseList.forEach((t=>t?.release?.())),t.releaseList=null),this.scenegraph.stage.release(),this.scenegraph.proxy.release();const{parentElement:e}=t.element;e&&e.removeChild(t.element),this.editorManager?.editingEditor?.onEnd?.(),this.isReleased=!0,this.scenegraph=null,this.internalProps=null}fireListeners(t,e){return super.fireListeners(t,e)}updateOption(t){this.options=t,this._hasAutoImageColumn=void 0;const{frozenColCount:e=0,defaultRowHeight:i=40,defaultHeaderRowHeight:r,defaultColWidth:n=80,defaultHeaderColWidth:o=80,keyboardOptions:s,eventOptions:a,rowSeriesNumber:l,columnResizeMode:h,rowResizeMode:c="none",dragHeaderMode:d,showFrozenIcon:u,allowFrozenColCount:g,padding:p,hover:f,menu:m,select:b,pixelRatio:y,widthMode:v,heightMode:C,autoFillWidth:w,autoFillHeight:x,widthAdaptiveMode:_,heightAdaptiveMode:S,customRender:A,renderChartAsync:M,renderChartAsyncBatchCount:T,overscrollBehavior:R,limitMinWidth:B,limitMinHeight:P}=t;y&&y!==this.internalProps.pixelRatio&&(this.internalProps.pixelRatio=y),p&&("number"==typeof p?(this.padding.top=p,this.padding.left=p,this.padding.bottom=p,this.padding.right=p):(p.top&&(this.padding.top=p.top),p.bottom&&(this.padding.bottom=p.bottom),p.left&&(this.padding.left=p.left),p.right&&(this.padding.right=p.right))),this.showFrozenIcon="boolean"!=typeof u||u,"number"==typeof g&&g<=0&&(this.showFrozenIcon=!1),this.widthMode=v??"standard",this.heightMode=C??"standard",this._widthAdaptiveMode=_??"only-body",this._heightAdaptiveMode=S??"only-body",this.autoFillWidth=w??!1,this.autoFillHeight=x??!1,this.customRender=A;const k=this.internalProps;if("node"!==YE.mode&&function(t,e){t.style.margin=`${e.top}px ${e.right}px ${e.bottom}px ${e.left}px`;const i=(t.offsetWidth||t.parentElement?.offsetWidth||1)-1,r=(t.offsetHeight||t.parentElement?.offsetHeight||1)-1;t.style.width=i&&i-e.left-e.right+"px"||"0px",t.style.height=r&&r-e.top-e.bottom+"px"||"0px"}(k.element,this.padding),this.columnWidthComputeMode=t.columnWidthComputeMode??"normal",k.frozenColCount=e,k.defaultRowHeight=i,k.defaultHeaderRowHeight=r??i,k.defaultColWidth=n,k.defaultHeaderColWidth=o??n,k.keyboardOptions=s,k.eventOptions=a,k.rowSeriesNumber=l,k.columnResizeMode=h,k.rowResizeMode=c,k.dragHeaderMode=d??"none",k.renderChartAsync=M,Wz(T),k.overscrollBehavior=R??"auto",k.cellTextOverflows={},k._rowHeightsMap=new oG(this),k._rowRangeHeightsMap=new Map,k._colRangeWidthsMap=new Map,k._widthResizedColMap=new Set,k._heightResizedRowMap=new Set,this.colWidthsMap=new GL,this.colContentWidthsMap=new GL,this.colWidthsLimit={},k.stick.changedCells.clear(),k.theme=fH.of(t.theme??fH.DEFAULT),k.theme.isPivot=this.isPivotTable(),this.scenegraph.updateStageBackground(),k.autoWrapText=t.autoWrapText,k.enableLineBreak=t.enableLineBreak,k.allowFrozenColCount=t.allowFrozenColCount??0,k.limitMaxAutoWidth=t.limitMaxAutoWidth??450,k.limitMinWidth=null!=B?"number"==typeof B?B:B?10:0:10,k.limitMinHeight=null!=P?"number"==typeof P?P:P?10:0:10,this._vDataSet=new LH,k.legends?.forEach((t=>{t?.release()})),k.title?.release(),k.title=null,k.emptyTip?.release(),k.emptyTip=null,k.layoutMap.release(),this.scenegraph.clearCells(),this.scenegraph.updateComponent(),this.stateManager.updateOptionSetState(),this._updateSize(),this.eventManager.updateEventBinder(),t.legends)if(k.legends=[],Array.isArray(t.legends)){for(let e=0;e<t.legends.length;e++)k.legends.push(nG(t.legends[e],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else k.legends.push(nG(t.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});k.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},t.tooltip),"html"!==k.tooltip.renderMode||k.tooltipHandler||(k.tooltipHandler=new DN(this,k.tooltip.confine)),k.menu=Object.assign({renderMode:"html"},t.menu),Array.isArray(t.menu?.dropDownMenuHighlight)&&this.setDropDownMenuHighlight(t.menu?.dropDownMenuHighlight),Array.isArray(t.menu?.defaultHeaderMenuItems)&&(this.globalDropDownMenu=t.menu.defaultHeaderMenuItems),"html"!==k.menu.renderMode||k.menuHandler||(k.menuHandler=new YN(this)),this.clearCellStyleCache(),this.clearColWidthCache(),this.clearRowHeightCache(),k.customMergeCell=t.customMergeCell,this.customCellStylePlugin.updateCustomCell(t.customCellStyle??[],t.customCellStyleArrangement??[])}renderWithRecreateCells(){const t={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(t.col,t.row),this.render()}getFrozenRowsHeight(){return this.getRowsHeight(0,this.frozenRowCount-1)}getFrozenColsWidth(){return this.getColsWidth(0,this.frozenColCount-1)}getBottomFrozenRowsHeight(){if(this.bottomFrozenRowCount>0){let t=0;for(let e=this.rowCount-this.bottomFrozenRowCount;e<=this.rowCount-1;e++)t+=this.getRowHeight(e);return t}return 0}getRightFrozenColsWidth(){if(this.rightFrozenColCount>0){let t=0;for(let e=this.colCount-this.rightFrozenColCount;e<=this.colCount-1;e++)t+=this.getColWidth(e);return t}return 0}getDrawRange(){const t=Math.min(this.tableNoFrameWidth,this.getAllColsWidth()),e=Math.min(this.tableNoFrameHeight,this.getAllRowsHeight());return new jL(this.tableX,this.tableY,t,e)}_getMouseAbstractPoint(t,e=!0){const i=this;let r;if(!t)return{inTable:!1,x:void 0,y:void 0};r=AG(t)?t.changedTouches[0]:t;const n=r.clientX||r.pageX+window.scrollX,o=r.clientY||r.pageY+window.scrollY,s=i.internalProps.canvas.getBoundingClientRect();let a=!0;s.right<=n&&(a=!1),s.bottom<=o&&(a=!1);const l=s.width,h=l/(this.canvas.offsetWidth||l),c=s.height,d=c/(this.canvas.offsetHeight||c);return{x:(n-s.left)/h+(e?i.scrollLeft:0),y:(o-s.top)/d+(e?i.scrollTop:0),inTable:a}}getTheme(){return this.internalProps.theme}getTargetColAt(t){return CG(t,this)}getTargetRowAt(t){return wG(t,this)}getTargetColAtConsiderRightFrozen(t,e){return xG(t,e,this)}getTargetRowAtConsiderBottomFrozen(t,e){return _G(t,e,this)}clearSelected(){this.stateManager.updateSelectPos(-1,-1)}selectCell(t,e,i,r){const n=!!this.stateManager.select.ranges?.length;this.stateManager.updateSelectPos(t,e,i,r),this.stateManager.endSelectCells(!0,n)}selectCells(t){const{scrollLeft:e,scrollTop:i}=this;t.forEach(((t,e)=>{t.start.col===t.end.col&&t.start.row===t.end.row?this.stateManager.updateSelectPos(t.start.col,t.start.row,!1,e>=1,!1,!1,!0):(this.stateManager.updateSelectPos(t.start.col,t.start.row,!1,e>=1,!1,!1,!0),this.stateManager.updateInteractionState(fE.grabing),this.stateManager.updateSelectPos(t.end.col,t.end.row,!1,e>=1,!1,!1,!0)),this.stateManager.endSelectCells(!1,!1),this.stateManager.updateInteractionState(fE.default)})),this.setScrollTop(i),this.setScrollLeft(e)}get recordsCount(){return this.records?.length}get allowFrozenColCount(){return this.internalProps.allowFrozenColCount}get rowHeaderLevelCount(){return this.internalProps.layoutMap.rowHeaderLevelCount}get columnHeaderLevelCount(){return this.internalProps.layoutMap.columnHeaderLevelCount}get records(){return this.internalProps.records}get dataSource(){return this.internalProps.dataSource}set dataSource(t){this.scenegraph.clearCells(),mO(this,t),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.render()}get autoWrapText(){return this.internalProps.autoWrapText}set autoWrapText(t){this.internalProps.autoWrapText=t,this.options.autoWrapText=t}get enableLineBreak(){return this.internalProps.enableLineBreak}set enableLineBreak(t){this.internalProps.enableLineBreak=t,this.options.enableLineBreak=t}updateAutoWrapText(t){this.internalProps.autoWrapText!==t&&(this.internalProps.autoWrapText=t,this.options.autoWrapText=t,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.render())}get theme(){return this.internalProps.theme}set theme(t){this.internalProps.theme=fH.of(t??fH.DEFAULT),this.internalProps.theme.isPivot=this.isPivotTable(),this.options.theme=t}updateTheme(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.internalProps.theme=fH.of(t??fH.DEFAULT),this.internalProps.theme.isPivot=this.isPivotTable(),this.options.theme=t,this.scenegraph.updateComponent(),this.scenegraph.updateStageBackground(),this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.render()}getBodyField(t,e){return this.internalProps.layoutMap.getBody(t,e).field}getBodyColumnDefine(t,e){const i=this.internalProps.layoutMap.getBody(t,e);return i?.define}getBodyColumnType(t,e){return UO("cellType",{cellType:this.internalProps.layoutMap.getBody(t,e).cellType},t,e,this)}getCellType(t,e){let i;return this.isSeriesNumberInHeader(t,e)?this.internalProps.layoutMap.getSeriesNumberHeader(t,e).cellType:(i=this.isHeader(t,e)?this.internalProps.layoutMap.getHeader(t,e).headerType:this.internalProps.layoutMap.getBody(t,e).cellType,UO("cellType",{cellType:i},t,e,this))}getHeaderField(t,e){return this.internalProps.layoutMap.getHeaderField(t,e)}getHeaderDefine(t,e){const i=this.internalProps.layoutMap.getHeader(t,e);return i?.define}getCellLocation(t,e){return this.internalProps.layoutMap.getCellLocation(t,e)}getCellHeaderPaths(t,e){return this.internalProps.layoutMap.getCellHeaderPaths(t,e)}getHeadersDefine(t,e){const i=[];for(;;){const r=this.getHeaderDefine(t,e);if(!r||!r.field&&!r.columns)break;i.push(r),e++}return i}_getHeaderLayoutMap(t,e){return this.internalProps.layoutMap.getHeader(t,e)}_getBodyLayoutMap(t,e){return this.internalProps.layoutMap.getBody(t,e)}getContext(){return this.internalProps.context}getRecordByCell(t,e){if(!this.internalProps.layoutMap.isHeader(t,e))return this.getCellOriginRecord(t,e)}getRecordByRowCol(t,e){return this.getRecordByCell(t,e)}getRecordStartRowByRecordIndex(t){return this.internalProps.layoutMap.getRecordStartRowByRecordIndex(t)}_getHeaderCellBySortState(t){const{layoutMap:e}=this.internalProps,i=e.headerObjects.find((e=>e&&e.field===t.field));if(i){return e.getHeaderCellAdressById(i.id)}}getCellRange(t,e){if(this.internalProps.customMergeCell){const i=this.internalProps.customMergeCell(t,e,this);if(i&&i.range&&(i.text||i.customLayout||i.customRender))return i.range}return this.internalProps.layoutMap?.getCellRange(t,e)}hasCustomMerge(){return!!this.internalProps.customMergeCell}getCustomMerge(t,e){if(this.internalProps.customMergeCell){const i=this.internalProps.customMergeCell(t,e,this);if(i&&i.range&&(i.text||i.customLayout||this.customRender)){if(i.style){const r=this.internalProps.bodyHelper.getStyleClass("text"),n=WE(i.style,this.theme.bodyStyle,{col:t,row:e,table:this,value:i.text,dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},r,this.options.autoWrapText,this.theme);i.style=n}return i}}}isCellRangeEqual(t,e,i,r){return this.internalProps.layoutMap.isCellRangeEqual(t,e,i,r)}_getLayoutCellId(t,e){return this.internalProps.layoutMap.getCellId(t,e)}getHeaderDescription(t,e){const i=this._getHeaderLayoutMap(t,e),r=i?.define,n=r?.description??i?.description;if("function"==typeof n){return n({col:t,row:e,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e)})}return n}setDropDownMenuHighlight(t){this.stateManager.setDropDownMenuHighlight(t)}_dropDownMenuIsHighlight(t,e,i){return this.stateManager.dropDownMenuIsHighlight(t,e,i)}isSeriesNumberInBody(t,e){return this.internalProps.layoutMap&&this.internalProps.layoutMap.isSeriesNumberInBody(t,e)}isSeriesNumberInHeader(t,e){return this.internalProps.layoutMap&&this.internalProps.layoutMap.isSeriesNumberInHeader(t,e)}isHeader(t,e){return this.internalProps.layoutMap&&this.internalProps.layoutMap.isHeader(t,e)}isColumnHeader(t,e){return this.internalProps.layoutMap?.isColumnHeader(t,e)}isRowHeader(t,e){return this.internalProps.layoutMap?.isRowHeader(t,e)}isCornerHeader(t,e){return this.internalProps.layoutMap?.isCornerHeader(t,e)}isFrozenColumn(t,e){return this.isLeftFrozenColumn(t,e)||this.isRightFrozenColumn(t,e)}isLeftFrozenColumn(t,e){return this.internalProps.layoutMap?.isFrozenColumn(t,e)}isRightFrozenColumn(t,e){return this.internalProps.layoutMap?.isRightFrozenColumn(t,e)}isFrozenRow(t,e){return this.isTopFrozenRow(t,e)||this.isBottomFrozenRow(t,e)}isTopFrozenRow(t,e){return this.internalProps.layoutMap?.isFrozenRow(t,e)}isBottomFrozenRow(t,e){return this.internalProps.layoutMap?.isBottomFrozenRow(t,e)}getCellInfo(t,e){if(t>=0&&e>=0){const i=this.isHeader(t,e)?this.getHeaderDefine(t,e):this.getBodyColumnDefine(t,e);return{col:t,row:e,field:this.getHeaderField(t,e),cellHeaderPaths:this.internalProps.layoutMap.getCellHeaderPaths(t,e),title:i?.title,cellType:this.getCellType(t,e),originData:this.getCellOriginRecord(t,e),cellRange:this.getCellRangeRelativeRect({col:t,row:e}),value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellLocation:this.getCellLocation(t,e),scaleRatio:this.canvas.getBoundingClientRect().width/this.canvas.offsetWidth}}}_hasField(t,e,i){if(null==t)return!1;const r=this;if(r.internalProps.layoutMap.isHeader(e,i))return!1;const n=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource?.hasField(n,t)}_getCellStyle(t,e){const i=this.customCellStylePlugin.getCustomCellStyle(t,e),{layoutMap:r}=this.internalProps;if(r.isHeader(t,e)){let n;if(!this.isPivotTable()||this.isBottomFrozenRow(e)||this.isRightFrozenColumn(t))n=`${t}-${e}`;else{const i=this.getHeaderDefine(t,e),r=this.isCornerHeader(t,e);n=i?.dimensionKey?r?`dim-cor-${i.dimensionKey}`:`dim-${i.dimensionKey}`:i?.indicatorKey?`ind-${i.indicatorKey}`:`${t}-${e}`}let o=this.headerStyleCache.get(n);if(o)return i?hG(o,i):o;const s=r.getHeader(t,e);let a;if(this.isPivotChart()&&function(t,e,i){if(!i._table.isPivotChart())return!1;if(i.indicatorsAsCol){if(i.hasTwoIndicatorAxes&&e===i.columnHeaderLevelCount-1&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return!0;if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return!0}else if(e===i.rowCount-i.bottomFrozenRowCount&&t>=i.rowHeaderLevelCount&&t<i.colCount-i.rightFrozenColCount)return!0;return!1}(t,e,r)&&r.isAxisCell(t,e)){const e=r.getBody(t,this.rowHeaderLevelCount);a=e.style?.padding??this.theme.bodyStyle.padding}else if(this.isPivotChart()&&function(t,e,i){if(!i._table.isPivotChart())return!1;if(i.indicatorsAsCol){if(t===i.rowHeaderLevelCount-1&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return!0}else{if(t===i.rowHeaderLevelCount-1&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return!0;if(t===i.colCount-i.rightFrozenColCount&&e>=i.columnHeaderLevelCount&&e<i.rowCount-i.bottomFrozenRowCount)return!0}return!1}(t,e,r)&&r.isAxisCell(t,e)){const t=r.getBody(this.columnHeaderLevelCount,e);a=t.style?.padding??this.theme.bodyStyle.padding}if((!s||s.isEmpty)&&(r.isLeftBottomCorner(t,e)||r.isRightBottomCorner(t,e)||r.isCornerHeader(t,e)||r.isRightTopCorner(t,e)))return TG;const l=this.internalProps.headerHelper.getStyleClass(s?.headerType||"text");if(r.isBottomFrozenRow(t,e)&&this.theme.bottomFrozenStyle)o=$E(a?{padding:a}:{},this.theme.bottomFrozenStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},l,this.options.autoWrapText,this.theme);else if(r.isRightFrozenColumn(t,e)&&this.theme.rightFrozenStyle)o=$E(a?{padding:a}:{},this.theme.rightFrozenStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},l,this.options.autoWrapText,this.theme);else{const i=s?.style||{};a&&(i.padding=a),o=$E(i,r.isColumnHeader(t,e)||r.isBottomFrozenRow(t,e)?this.theme.headerStyle:r.isRowHeader(t,e)||r.isRightFrozenColumn(t,e)?this.theme.rowHeaderStyle:this.theme.cornerHeaderStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},l,this.options.autoWrapText,this.theme)}return this.headerStyleCache.set(n,o),i?hG(o,i):o}let n,o;this.internalProps?.dataConfig?.mappingRules&&!this.isHeader(t,e)&&this.internalProps?.dataConfig?.mappingRules?.forEach(((i,r)=>{i.bgColor&&this.internalProps.layoutMap.getIndicatorKey(t,e)===i.bgColor.indicatorKey&&(n=i.bgColor.mapping)}));const s=this.getCellType(t,e);let a;if(o=this.isSeriesNumberInBody(t,e)?`${t}-series-`+s:this.isListTable()&&!this.transpose||this.isPivotTable()&&this.internalProps.layoutMap.indicatorsAsCol?t+s:e+s,a=r.isBottomFrozenRow(e)?this.bodyBottomStyleCache.get(o):this.bodyStyleCache.get(o),a)return i?hG(a,i):a;const l=r.getBody(t,e),h=this.internalProps.bodyHelper.getStyleClass(this.getCellType(t,e)),c=l?.style;return a=WE(c,r.isBottomFrozenRow(e)&&this.theme.bottomFrozenStyle?this.theme.bottomFrozenStyle:r.isRightFrozenColumn(t)&&this.theme.rightFrozenStyle?this.theme.rightFrozenStyle:this.theme.bodyStyle,{col:t,row:e,table:this,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e),cellHeaderPaths:this.getCellHeaderPaths(t,e)},h,this.options.autoWrapText,this.theme),n&&(a=hG(a,{bgColor:n})),X(c)||(r.isBottomFrozenRow(e)?this.bodyBottomStyleCache.set(o,a):this.bodyStyleCache.set(o,a)),i?hG(a,i):a}clearCellStyleCache(){this.headerStyleCache.clear(),this.bodyStyleCache.clear(),this.bodyBottomStyleCache.clear()}clearRowHeightCache(){this.internalProps._rowHeightsMap.clear(),this._clearRowRangeHeightsMap()}clearColWidthCache(){this.internalProps._colWidthsMap.clear(),this._clearColRangeWidthsMap()}_canResizeColumn(t,e){if(!(t>=0&&e>=0))return!1;if(this.isCellRangeEqual(t,e,t+1,e))return!1;if("none"===this.internalProps.columnResizeMode)return!1;if("header"===this.internalProps.columnResizeMode){if(!this.isHeader(t,e))return!1}else if("body"===this.internalProps.columnResizeMode&&this.isHeader(t,e))return!1;const i=this.colWidthsLimit[t];return!(i&&i.min&&i.max)||i.max!==i.min}_canResizeRow(t,e){if(!(t>=0&&e>=0))return!1;if(this.isCellRangeEqual(t,e,t,e+1))return!1;if("none"===this.internalProps.rowResizeMode)return!1;if("header"===this.internalProps.rowResizeMode){if(!this.isHeader(t,e))return!1}else if("body"===this.internalProps.rowResizeMode&&this.isHeader(t,e))return!1;return!0}_canDragHeaderPosition(t,e){if(this.isHeader(t,e)&&(this.stateManager.isSelected(t,e)||this.options.select?.disableHeaderSelect||this.options.select?.disableSelect)){if("disabled"===this.internalProps.frozenColDragHeaderMode&&this.isFrozenColumn(t))return!1;if(this.stateManager.isSelected(t,e)){const i=this.stateManager.select.ranges[0];if(this.isColumnHeader(t,e)){if(i.end.row!==this.rowCount-1)return!1}else{if(!this.isRowHeader(t,e))return!1;if(i.end.col!==this.colCount-1)return!1}}const i=this.getHeaderDefine(t,e);if(!i)return!1;if(void 0===i.dragHeader){if("all"===this.internalProps.dragHeaderMode)return!0;if("column"===this.internalProps.dragHeaderMode){if(this.isColumnHeader(t,e))return!0}else if("row"===this.internalProps.dragHeaderMode&&this.isRowHeader(t,e))return!0;return!1}return i.dragHeader}return!1}getCellIcons(t,e){let i;if(this.isHeader(t,e))i=this.internalProps.headerHelper.getIcons(t,e);else if(this.internalProps.layoutMap.isSeriesNumber(t,e)){const r=this.internalProps.layoutMap.getSeriesNumberBody(t,e)?.define?.dragOrder;r&&(i=this.internalProps.rowSeriesNumberHelper.getIcons(t,e));const n=this.getCellValue(t,e),o=this.getCellOriginValue(t,e),s=this.internalProps.context,a=this.internalProps.bodyHelper.getIcons(t,e,n,o,s);i?.length>0?i=i.concat():a?.length>0&&(i=a)}else{const r=this.getCellValue(t,e),n=this.getCellOriginValue(t,e),o=this.internalProps.context;i=this.internalProps.bodyHelper.getIcons(t,e,r,n,o)}return i}showDropDownMenu(t,e,i){let r="dropdown-menu";i&&(r=Array.isArray(i.content)?"dropdown-menu":"container"),"html"===this.internalProps.menu.renderMode&&(this.stateManager.menu.isShow=!0,this.internalProps.menuHandler._bindToCell(t,e,r,i))}showTooltip(t,e,i){"html"===this.internalProps.tooltip.renderMode&&this.internalProps.tooltipHandler._bindToCell(t,e,i)}getCellStyle(t,e){const i=this._getCellStyle(t,e),r=yO(i,this,t,e,UO).theme,{autoWrapText:n,lineClamp:o,textOverflow:s}=i;return{textAlign:r.text.textAlign,textBaseline:r.text.textBaseline,bgColor:Y(r.group.fill)?UO("bgColor",i,t,e,this):r.group.fill,color:Y(r.text.fill)?UO("color",i,t,e,this):r.text.fill,strokeColor:Y(r.text.stroke)?UO("strokeColor",i,t,e,this):r.text.stroke,fontFamily:r.text.fontFamily,fontSize:r.text.fontSize,fontWeight:r.text.fontWeight,fontVariant:r.text.fontVariant,fontStyle:r.text.fontStyle,lineHeight:r.text.lineHeight,autoWrapText:n??!1,lineClamp:o??"auto",textOverflow:s,borderColor:Y(r.group.stroke)?UO("borderColor",i,t,e,this):r.group.stroke,borderLineWidth:r.group.lineWidth,borderLineDash:r.group.lineDash,underline:!!r.text.underline,underlineDash:r.text.underlineDash,underlineOffset:r.text.underlineOffset,lineThrough:!!r.text.lineThrough,padding:r._vtable.padding,underlineWidth:r.text.underline,lineThroughLineWidth:r.text.lineThrough,_strokeArrayWidth:r.group.strokeArrayWidth,_strokeArrayColor:r.group.strokeArrayColor,_linkColor:UO("linkColor",i,t,e,this)}}getAllBodyCells(t,e){const i=this.rowHeaderLevelCount,r=this.columnHeaderLevelCount,n=this.colCount-1,o=this.rowCount-1;return Array(Math.min(e??2e3,o-r+1,this.rowCount)).fill(0).map(((e,o)=>Array(Math.min(t??2e3,n-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,o+r)))))}getAllCells(t,e){const i=0,r=0,n=this.colCount-1,o=this.rowCount-1;return Array(Math.min(e??2e3,o-r+1,this.rowCount)).fill(0).map(((e,o)=>Array(Math.min(t??2e3,n-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,o+r)))))}getAllColumnHeaderCells(){const t=this.rowHeaderLevelCount,e=0,i=this.colCount-1,r=this.columnHeaderLevelCount-1;return Array(r-e+1).fill(0).map(((r,n)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,n+e)))))}getAllRowHeaderCells(){const t=0,e=this.columnHeaderLevelCount,i=this.rowHeaderLevelCount-1,r=this.rowCount-1;return Array(r-e+1).fill(0).map(((r,n)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,n+e)))))}scrollToCell(t){const e=this.getDrawRange();if(Z(t.col)&&t.col>=this.frozenColCount){const i=this.getFrozenColsWidth(),r=this.getColsWidth(0,t.col-1);this.scrollLeft=Math.min(r-i,this.getAllColsWidth()-e.width)}if(Z(t.row)&&t.row>=this.frozenRowCount){const i=this.getFrozenRowsHeight(),r=this.getRowsHeight(0,t.row-1);this.scrollTop=Math.min(r-i,this.getAllRowsHeight()-e.height)}this.render()}getCopyValue(){if(this.stateManager.select?.ranges?.length>0){const t=this.stateManager.select.ranges;let e=Math.min(t[0].start.col,t[0].end.col),i=Math.max(t[0].start.col,t[0].end.col),r=Math.min(t[0].start.row,t[0].end.row),n=Math.max(t[0].start.row,t[0].end.row);t.forEach((t=>{e=Math.min(e,t.start.col,t.end.col),i=Math.max(i,t.start.col,t.end.col),r=Math.min(r,t.start.row,t.end.row),n=Math.max(n,t.start.row,t.end.row)}));const o=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),n=Math.max(t.start.row,t.end.row);r<=e&&n>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),n=Math.max(t.start.col,t.end.col);r<=e&&n>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const n=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row),s=Math.min(t.start.col,t.end.col),a=Math.max(t.start.col,t.end.col);s<=e&&a>=e&&n<=i&&o>=i&&(r=t)})),r},l=(t,e,i)=>{const r=this.getCellRange(t,e);let n=r.start.col,o=r.start.row;if(i){const t=Math.min(i.start.col,i.end.col),e=Math.min(i.start.row,i.end.row);n=Math.max(t,r.start.col),o=Math.max(e,r.start.row)}if(n!==t||o!==e)return"";return this.getCellValue(t,e)};let h="";for(let t=r;t<=n;t++){if(o(t)){for(let r=e;r<=i;r++){if(s(r)){const e=a(r,t);if(e){const n=l(r,t,e);if("undefined"!=typeof Promise&&n instanceof Promise);else{const t=Z(n)?`${n}`:"";/^\[object .*\]$/.exec(t)||(h+=t)}(r<e.end.col||r<i)&&(h+="\t")}else h+="\t"}}t<n&&(h+="\r\n")}}return h}return""}getSelectedCellInfos(){if(!this.stateManager.select?.ranges)return null;const t=this.stateManager.select.ranges;if(!t.length)return[];let e=Math.min(t[0].start.col,t[0].end.col),i=Math.max(t[0].start.col,t[0].end.col),r=Math.min(t[0].start.row,t[0].end.row),n=Math.max(t[0].start.row,t[0].end.row);t.forEach((t=>{e=Math.min(e,t.start.col,t.end.col),i=Math.max(i,t.start.col,t.end.col),r=Math.min(r,t.start.row,t.end.row),n=Math.max(n,t.start.row,t.end.row)}));const o=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),n=Math.max(t.start.row,t.end.row);r<=e&&n>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),n=Math.max(t.start.col,t.end.col);r<=e&&n>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const n=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row),s=Math.min(t.start.col,t.end.col),a=Math.max(t.start.col,t.end.col);s<=e&&a>=e&&n<=i&&o>=i&&(r=t)})),r},l=[];for(let t=r;t<=n;t++){if(o(t)){const r=[];for(let n=e;n<=i;n++){if(s(n)){if(a(n,t)){const e=this.getCellInfo(n,t);r.push(e)}}}l.push(r)}}return l}getSelectedCellRanges(){const t=this.stateManager.select.ranges;return t.length?vt(t):[]}measureText(t,e){return sz.measureText(t,e)}measureTextBounds(t){return lz(t)}getCustomRender(t,e){let i;if("body"!==this.getCellLocation(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerCustomRender}else{const r=this.getBodyColumnDefine(t,e);i=r?.customRender||this.customRender}return i}getCustomLayout(t,e){let i;if("body"!==this.getCellLocation(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerCustomLayout}else{const r=this.getBodyColumnDefine(t,e);i=r?.customLayout}return i}hasAutoImageColumn(){return void 0===this._hasAutoImageColumn&&(this._hasAutoImageColumn=function(t){const{columns:e,rows:i,indicators:r}=t.options;if(t.isPivotTable()){if(nt(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!rt(i)&&("image"===i.headerType||"video"===i.headerType||"function"==typeof i.headerType)&&i.imageAutoSizing)return!0}if(nt(i)&&i.length>0)for(let t=0;t<i.length;t++){const e=i[t];if(!rt(e)&&("image"===e.headerType||"video"===e.headerType||"function"==typeof e.headerType)&&e.imageAutoSizing)return!0}if(nt(r)&&r.length>0)for(let t=0;t<r.length;t++){const e=r[t];if(!rt(e)&&(("image"===e.cellType||"video"===e.cellType||"function"==typeof e.cellType)&&e.imageAutoSizing||("image"===e.headerType||"video"===e.headerType||"function"==typeof e.headerType)&&e.imageAutoSizing))return!0}}else if(nt(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(("image"===i.cellType||"video"===i.cellType||"function"==typeof i.cellType)&&i.imageAutoSizing||("image"===i.headerType||"video"===i.headerType||"function"==typeof i.headerType)&&i.imageAutoSizing)return!0}return!1}(this)),this._hasAutoImageColumn}_getActiveChartInstance(){const t=this.scenegraph.getCell(this.stateManager.hover?.cellPos?.col,this.stateManager.hover?.cellPos?.row);return"chart"===t?.getChildren()?.[0]?.type?t.getChildren()[0].activeChartInstance:null}cellIsInVisualView(t,e){const i=this.getDrawRange(),r=this.getCellRelativeRect(t,e);if(t<this.frozenColCount&&e<this.frozenRowCount)return!0;let n,o,s,a;if(this.frozenRowCount>=1&&(n=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.colCount-1,row:this.frozenRowCount-1}})),this.frozenColCount>=1&&(o=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.frozenColCount-1,row:this.rowCount-1}})),this.bottomFrozenRowCount>=1&&(s=this.getCellRangeRelativeRect({start:{col:0,row:this.rowCount-this.bottomFrozenRowCount},end:{col:this.colCount-1,row:this.rowCount-1}})),this.rightFrozenColCount>=1&&(a=this.getCellRangeRelativeRect({start:{col:this.colCount-this.rightFrozenColCount,row:0},end:{col:this.colCount-1,row:this.rowCount-1}})),r.top>=i.top&&r.bottom<=i.bottom&&r.left>=i.left&&r.right<=i.right){if(this.isFrozenCell(t,e))return!0;if(r.top>=(n?.bottom??r.top)&&r.left>=(o?.right??r.left)&&r.bottom<=(s?.top??r.bottom)&&r.right<=(a?.left??r.right))return!0}return!1}getCustomMergeValue(t,e){if(this.internalProps.customMergeCell){const i=this.getCustomMerge(t,e);if(i){const{text:t}=i;return t}}}exportImg(){return this.scenegraph.stage.toCanvas().toDataURL()}exportCellImg(t,e,i){const r=this.cellIsInVisualView(t,e),{scrollTop:n,scrollLeft:o}=this;r||this.scrollToCell({col:t,row:e});const s=this.getCellRelativeRect(t,e);this.stateManager.select?.ranges?.length>0&&QD(this.scenegraph);const{col:a,row:l}=this.stateManager.hover.cellPos;let h,c;if(this.stateManager.updateHoverPos(-1,-1),this.scenegraph.component.hideVerticalScrollBar(),this.scenegraph.component.hideHorizontalScrollBar(),this.scenegraph.tableGroup.border.setAttribute("visible",!1),i?.disableBackground){const i=this.scenegraph.getCell(t,e);h=i.attribute.fill,i.setAttribute("fill","transparent")}if(i?.disableBorder){const i=this.scenegraph.getCell(t,e);c=i.attribute.stroke,i.setAttribute("stroke",!1)}this.scenegraph.renderSceneGraph();let d=0;"bottom-right"===this.theme.cellBorderClipDirection&&(d=1);const u=this.scenegraph.stage.toCanvas(!1,(new Ae).set(s.left+this.tableX+1,s.top+this.tableY+1,s.right+this.tableX-d,s.bottom+this.tableY-d));if(r||(this.setScrollTop(n),this.setScrollLeft(o)),this.scenegraph.tableGroup.border.setAttribute("visible",!0),h){this.scenegraph.getCell(t,e).setAttribute("fill",h)}if(c){this.scenegraph.getCell(t,e).setAttribute("stroke",c)}return this.stateManager.select?.ranges?.length>0&&tW(this.scenegraph),this.stateManager.updateHoverPos(a,l),this.scenegraph.updateNextFrame(),u.toDataURL()}exportCellRangeImg(t){const{scrollTop:e,scrollLeft:i}=this,r=Math.min(t.start.col,t.end.col),n=Math.min(t.start.row,t.end.row),o=Math.max(t.start.col,t.end.col),s=Math.max(t.start.row,t.end.row),a=this.cellIsInVisualView(r,n),l=this.cellIsInVisualView(o,s);a&&l||this.scrollToCell({col:r,row:n});const h=this.getCellRangeRelativeRect({start:{col:r,row:n},end:{col:o,row:s}});this.stateManager.select?.ranges?.length>0&&QD(this.scenegraph);const{col:c,row:d}=this.stateManager.hover.cellPos;this.stateManager.updateHoverPos(-1,-1),this.scenegraph.component.hideVerticalScrollBar(),this.scenegraph.component.hideHorizontalScrollBar(),this.scenegraph.renderSceneGraph();const u=this.scenegraph.stage.toCanvas(!1,(new Ae).set(h.left+this.tableX+1,h.top+this.tableY+1,h.right+this.tableX,h.bottom+this.tableY)).toDataURL();return a&&l||(this.setScrollTop(e),this.setScrollLeft(i)),this.stateManager.select?.ranges?.length>0&&tW(this.scenegraph),this.stateManager.updateHoverPos(c,d),u}exportCanvas(){return this.scenegraph.stage.toCanvas()}getImageBuffer(t="image/png"){if("node"!==this.options.mode)return;this.render();const e=this.scenegraph.stage;if(e){const i=this.tableX+this.getAllColsWidth(),r=this.tableY+this.getAllRowsHeight();if(i>=this.canvasWidth&&r>=this.canvasHeight){e.render();return e.window.getImageBuffer(t)}return this.scenegraph.stage.toCanvas(!1,(new Ae).set(0,0,Math.min(this.canvasWidth,i),Math.min(this.canvasHeight,r))).toBuffer(t)}return null}getBodyIndexByTableIndex(t,e){return{col:t-this.rowHeaderLevelCount,row:e-this.columnHeaderLevelCount}}getTableIndexByBodyIndex(t,e){return{col:t+this.rowHeaderLevelCount,row:e+this.columnHeaderLevelCount}}onVChartEvent(t,e,i){this._chartEventMap[t]||(this._chartEventMap[t]=[]),"function"==typeof e?this._chartEventMap[t].push({callback:e}):this._chartEventMap[t].push({callback:i,query:e})}offVChartEvent(t,e){this._chartEventMap[t]&&(this._chartEventMap[t]=e?this._chartEventMap[t].filter((t=>t.callback!==e)):[])}_bindChartEvent(t){if(t)for(const e in this._chartEventMap)(this._chartEventMap[e]||[]).forEach((i=>{i.query?t.on(e,i.query,i.callback):t.on(e,i.callback)}))}changeRecordOrder(t,e){}hasCustomCellStyle(t){return this.customCellStylePlugin.hasCustomCellStyle(t)}registerCustomCellStyle(t,e){this.customCellStylePlugin.registerCustomCellStyle(t,e)}arrangeCustomCellStyle(t,e){this.customCellStylePlugin.arrangeCustomCellStyle(t,e)}isSeriesNumber(t,e){return this.internalProps.layoutMap.isSeriesNumber(t,e)}isHasSeriesNumber(){return this.internalProps.layoutMap?.leftRowSeriesNumberColumnCount>0}get leftRowSeriesNumberCount(){return this.internalProps.layoutMap?.leftRowSeriesNumberColumnCount??0}setMinMaxLimitWidth(t=!1){const e=this.internalProps;for(let i=0;i<e.layoutMap.columnWidths.length;i++){const{width:r,minWidth:n,maxWidth:o}=e.layoutMap.columnWidths?.[i]??{};t&&r&&("string"==typeof r&&"auto"!==r||"number"==typeof r&&r>0)&&this._setColWidth(i,r),n&&("number"==typeof n&&n>0||"string"==typeof n)&&this.setMinColWidth(i,n),o&&("number"==typeof o&&o>0||"string"==typeof o)&&this.setMaxColWidth(i,o)}}setSortedIndexMap(t,e){this.dataSource?.setSortedIndexMap(t,e)}checkReactCustomLayout(){this.reactCustomLayout||(this.reactCustomLayout=new SO(this))}get bodyDomContainer(){return this.internalProps.bodyDomContainer}get headerDomContainer(){return this.internalProps.headerDomContainer}}var BG=Object.freeze({__proto__:null,BaseTable:RG});const PG={};function kG(t){if(PG[t])return PG[t]}function EG(t,e,i){const r=t[e];return t[e]=i,r}function LG(t){for(const e in t)delete t[e]}function HG(){LG(XL),LG(zO),LG(aF)}var IG=Object.freeze({__proto__:null,chartModule:function(t,e){return null!=e?EG(aF,t,e):aF[t]},clearAll:HG,editor:function(t,e){return null!=e?EG(PG,t,e):PG[t]},icon:function(t,e){return null!=e?EG(zO,t,e):zO[t]},theme:function(t,e){return null!=e?EG(XL,t,e):XL[t]}});var OG=Object.freeze({__proto__:null,dateFormat:function(t,e,i,r,n){null==i&&(i=!1),null==r&&(r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==n&&(n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);const o=i?"UTC":"",s=function(t){return`0${t}`.substring(0,2)};return function(i){const a=new Date(Date.parse(i[t]));return e.replace(/%(.)/g,(function(t,e){switch(e){case"y":return a[`get${o}FullYear`]();case"m":return s(a[`get${o}Month`]()+1);case"n":return r[a[`get${o}Month`]()];case"d":return s(a[`get${o}Date`]());case"w":return n[a[`get${o}Day`]()];case"x":return a[`get${o}Day`]();case"H":return s(a[`get${o}Hours`]());case"M":return s(a[`get${o}Minutes`]());case"S":return s(a[`get${o}Seconds`]());default:return`%${e}`}}))}},numberFormat:function(t){return t=Object.assign({},{digitsAfterDecimal:2,scaler:1,thousandsSep:",",decimalSep:".",prefix:"",suffix:""},t),function(e){if(isNaN(e)||!isFinite(e))return"";const i=function(t,e,i){const r=(t+="").split(".");let n=r[0];const o=r.length>1?i+r[1]:"";return n=function(t,e){const i=t.replace(/\d+/,(function(t){return t.replace(/(\d)(?=(\d{3})+$)/g,(function(t){return`${t}${e}`}))}));return i}(n,e),n+o}((t.scaler*e).toFixed(t.digitsAfterDecimal),t.thousandsSep,t.decimalSep);return`${t.prefix}${i}${t.suffix}`}}});const FG="NO_AXISID_FRO_VTABLE";function zG(t){let e=!1;for(let i=0;i<t.length;i++){const r=t[i];if(r.chartSpec&&"wordCloud"!==r.chartSpec.type&&"radar"!==r.chartSpec.type&&"gauge"!==r.chartSpec.type&&"pie"!==r.chartSpec.type&&"funnel"!==r.chartSpec.type&&"rose"!==r.chartSpec.type){e=!0;break}}return e}function DG(t,e,i,r){let n=!1;if(r.indicatorsAsCol&&"row"===i||!r.indicatorsAsCol&&"col"===i)for(let t=0;t<r.indicatorsDefine.length;t++){const e=r.indicatorsDefine[t];if(e.chartSpec&&"pie"!==e.chartSpec.type&&"wordCloud"!==e.chartSpec.type&&"radar"!==e.chartSpec.type&&"gauge"!==e.chartSpec.type&&"funnel"!==e.chartSpec.type&&"rose"!==e.chartSpec.type){n=!0;break}}else{const i=r.getRawChartSpec(t,e);i?"pie"!==i.type&&"radar"!==i.type&&"gauge"!==i.type&&"wordCloud"!==i.type&&"funnel"!==i.type&&"rose"!==i.type&&(n=!0):n=!1}return n}function WG(t,e,i){const r=i.getRawChartSpec(t,e);if(r?.series){const t={};return r.data?.id&&(t[r.data.id]=void 0),r?.series.forEach((e=>{if(!e.data?.fromDataId)if(e.data?.transforms)t[e.data?.id??r.data?.id??"data"]=void 0;else{const i="horizontal"===e.direction?e.xField:e.yField;t[e.data?.id??r.data?.id??"data"]=e.data?.id?i:void 0}})),t}return r.data.id}function NG(t,e,i,r,n,o,s){const{axisOption:a,isPercent:l,isZeroAlign:h,seriesIndice:c}=WF(t,e,r,s),d=GF(s.dataset.collectedValues,n,h,o,c??i);if(l&&(d.min=d.min<0?-1:0,d.max=d.max>0?1:0),(a?.zero||d.min===d.max)&&(d.min=Math.min(d.min,0),d.max=Math.max(d.max,0)),a?.nice){const{range:e}=kF(d.min,d.max,a,0,s._table.getColWidth(t));d.min=e[0],d.max=e[1]}return at(a?.min)&&(d.min=a.min),at(a?.max)&&(d.max=a.max),{range:d,isZeroAlign:h,axisOption:a}}function GG(t){let e=!1;for(let i=0;i<t.columnObjects.length;i++){if(t.columnObjects[i].chartSpec){e=!0;break}}return e}class jG{seqId=0;_headerObjects;_headerObjectMap;_headerObjectsIncludeHided;_headerCellIds;_columns;_columnsIncludeHided;rowSeriesNumberColumn;leftRowSeriesNumberColumn;rightRowSeriesNumberColumn;leftRowSeriesNumberColumnCount=0;rightRowSeriesNumberColumnCount=0;columnTree;bodyRowSpanCount=1;hierarchyIndent;hierarchyTextStartAlignment;_transpose=!1;_showHeader=!0;_recordsCount=0;_table;_hasAggregation=!1;_hasAggregationOnTopCount=0;_hasAggregationOnBottomCount=0;rowHierarchyType;_cellRangeMap;constructor(t,e,i,r){this._cellRangeMap=new Map,this._showHeader=i,this._table=t,this._columns=[],this._columnsIncludeHided=[],this._headerCellIds=[],this.hierarchyIndent=r??20,this.hierarchyTextStartAlignment=t.options.hierarchyTextStartAlignment,this.columnTree=new cG(e,{seqId:0}),this._headerObjectsIncludeHided=this._addHeaders(0,e,[]),this._headerObjects=this._headerObjectsIncludeHided.filter((t=>!0!==t.define.hide)),this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this.rowHierarchyType=function(t){const{columns:e}=t._table.options;if(nt(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!rt(i)&&i.tree)return!0}return!1}(this)?"tree":"grid",this._hasAggregation=function(t){const e=t.columnObjects;for(let t=0;t<e.length;t++){const i=e[t];if(i?.aggregation)return!0}return!1}(this),this._hasAggregationOnBottomCount=function(t){const e=t.columnObjects;let i=0;for(let t=0;t<e.length;t++){const r=e[t];r?.aggregation&&(Array.isArray(r?.aggregation)?i=Math.max(i,r.aggregation.filter((t=>!1===t.showOnTop)).length):!1===r.aggregation.showOnTop&&(i=Math.max(i,1)))}return i}(this),this._hasAggregationOnTopCount=function(t){const e=t.columnObjects;let i=0;for(let t=0;t<e.length;t++){const r=e[t];r?.aggregation&&(Array.isArray(r?.aggregation)?i=Math.max(i,r.aggregation.filter((t=>!0===t.showOnTop)).length):!0===r.aggregation.showOnTop&&(i=Math.max(i,1)))}return i}(this),this.handleRowSeriesNumber(t.internalProps.rowSeriesNumber)}handleRowSeriesNumber(t){t&&(Array.isArray(t)?this.rowSeriesNumberColumn=t.map((t=>({id:this.seqId++,title:t.title,define:t,cellType:t.cellType??"text",style:t.style,width:t.width,format:t.format,field:t.field,icon:t.icon,headerIcon:t.headerIcon,isChildNode:!1}))):this.rowSeriesNumberColumn=[{id:this.seqId++,title:t.title,define:t,cellType:t.cellType??"text",style:t.style,width:t.width,format:t.format,field:"",icon:t.icon,headerIcon:t.headerIcon,isChildNode:!1}],this.leftRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!0)),this.rightRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!1)),this.leftRowSeriesNumberColumnCount=this.leftRowSeriesNumberColumn.length,this.rightRowSeriesNumberColumnCount=this.rightRowSeriesNumberColumn.length)}get transpose(){return this._transpose}set transpose(t){this._transpose=t}get showHeader(){return this._showHeader}set showHeader(t){this._showHeader=t}isSeriesNumberInHeader(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return!1;if(e<this.headerLevelCount)return!0}if(this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount){if(this.transpose)return!1;if(e<this.headerLevelCount)return!0}return!1}isSeriesNumberInBody(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return!0;if(e>=this.headerLevelCount)return!0}if(this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount){if(this.transpose)return!0;if(e>=this.headerLevelCount)return!0}return!1}isSeriesNumber(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount||this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount}getSeriesNumberHeader(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return;if(e<this.headerLevelCount)return Object.assign({},this.leftRowSeriesNumberColumn[t],{style:this._table.internalProps.rowSeriesNumber.headerStyle})}if(this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e<this.headerLevelCount){if(this.transpose)return;if(e<this.headerLevelCount)return this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]}}getSeriesNumberBody(t,e){if(this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount){if(this.transpose)return this.leftRowSeriesNumberColumn[t];if(e>=this.headerLevelCount)return this.leftRowSeriesNumberColumn[t]}if(this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount){if(this.transpose)return this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)];if(e>=this.headerLevelCount)return this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]}}isHeader(t,e){return!!(this.transpose&&t>=this.leftRowSeriesNumberColumnCount&&t<this.headerLevelCount+this.leftRowSeriesNumberColumnCount)||!this.transpose&&e>=0&&e<this.headerLevelCount}isAggregation(t,e){if(this.hasAggregation){if(this.hasAggregationOnBottomCount)if(this.transpose){if(t>=this.colCount-this.hasAggregationOnBottomCount)return!0}else if(e>=this.rowCount-this.hasAggregationOnBottomCount)return!0;if(this.hasAggregationOnTopCount)if(this.transpose){if(t>=this.rowHeaderLevelCount&&t<this.rowHeaderLevelCount+this.hasAggregationOnTopCount)return!0}else if(e>=this.columnHeaderLevelCount&&e<this.columnHeaderLevelCount+this.hasAggregationOnTopCount)return!0}return!1}isTopAggregation(t,e){if(this.hasAggregationOnTopCount)if(this.transpose){if(t>=this.rowHeaderLevelCount&&t<this.rowHeaderLevelCount+this.hasAggregationOnTopCount)return!0}else if(e>=this.columnHeaderLevelCount&&e<this.columnHeaderLevelCount+this.hasAggregationOnTopCount)return!0;return!1}isBottomAggregation(t,e){if(this.hasAggregationOnBottomCount)if(this.transpose){if(t>=this.colCount-this.hasAggregationOnBottomCount)return!0}else if(e>=this.rowCount-this.hasAggregationOnBottomCount)return!0;return!1}get hasAggregation(){return this._hasAggregation}get hasAggregationOnTopCount(){return this._hasAggregationOnTopCount}get hasAggregationOnBottomCount(){return this._hasAggregationOnBottomCount}getAggregatorsByCell(t,e){return this.getBody(t,e).aggregator}getAggregatorsByCellRange(t,e,i,r){let n=[];if(!this.transpose){for(let r=t;r<=i;r++){const t=this.getBody(r,e);t.aggregator&&(n=n.concat(Array.isArray(t.aggregator)?t.aggregator:[t.aggregator]))}return n}for(let i=e;i<=r;i++){const e=this.getBody(t,i);e.aggregator&&(n=n.concat(Array.isArray(e.aggregator)?e.aggregator:[e.aggregator]))}return[]}getAggregatorOnTop(t,e){const i=this.getBody(t,e),r=i.aggregator,n=i.aggregation;if(Array.isArray(n)){const i=n.reduce(((t,e,i)=>(e.showOnTop&&t.push(i),t)),[]),o=i.map((t=>r[t]));return this.transpose?o[t-this.rowHeaderLevelCount]:o[e-this.columnHeaderLevelCount]}return this.transpose&&t-this.rowHeaderLevelCount==0?n?.showOnTop?r:null:this.transpose||e-this.columnHeaderLevelCount!=0?null:n?.showOnTop?r:null}getAggregatorOnBottom(t,e){const i=this.getBody(t,e),r=i.aggregator,n=i.aggregation;if(Array.isArray(n)){const i=n.reduce(((t,e,i)=>(!1===e.showOnTop&&t.push(i),t)),[]),o=i.map((t=>r[t]));return this.transpose?o[t-(this.colCount-this.hasAggregationOnBottomCount)]:o[e-(this.rowCount-this.hasAggregationOnBottomCount)]}return this.transpose&&t-(this.colCount-this.hasAggregationOnBottomCount)==0?!1===n?.showOnTop?r:null:this.transpose||e-(this.rowCount-this.hasAggregationOnBottomCount)!=0?null:!1===n?.showOnTop?r:null}getAggregatorCellAddress(t,e,i,r){const n=[],o=this.hasAggregationOnTopCount,s=this.hasAggregationOnBottomCount;if(this.transpose)for(let i=e;i<=r;i++){if(this.getBody(t,i).aggregator){for(let t=0;t<o;t++)n.push({col:this.headerLevelCount+t,row:i});for(let t=0;t<s;t++)n.push({col:this.rowCount-s+t,row:i})}}else for(let r=t;r<=i;r++){if(this.getBody(r,e).aggregator){for(let t=0;t<o;t++)n.push({col:r,row:this.headerLevelCount+t});for(let t=0;t<s;t++)n.push({col:r,row:this.rowCount-s+t})}}return n}getCellLocation(t,e){return this.isHeader(t,e)?this.transpose?"rowHeader":"columnHeader":"body"}isRowHeader(t,e){return!!(this.transpose&&t>=this.leftRowSeriesNumberColumnCount&&t<this.headerLevelCount+this.leftRowSeriesNumberColumnCount)}isColumnHeader(t,e){return!this.transpose&&e>=0&&e<=this.headerLevelCount-1&&t>=this.leftRowSeriesNumberColumnCount&&t<this.colCount-this.rightRowSeriesNumberColumnCount}isFrozenColumn(t,e){if(Z(e)){if(t>=0&&t<this.frozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.frozenColCount>0&&t>=0&&t<this.frozenColCount)return!0;return!1}isRightFrozenColumn(t,e){if(Z(e)){if(t>=this.colCount-this.rightFrozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.rightFrozenColCount>0&&t>=this.colCount-this.rightFrozenColCount)return!0;return!1}isFrozenRow(t,e){if(Z(e)){if(e>=0&&e<this.frozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.frozenRowCount>0&&e>=0&&e<this.frozenRowCount)return!0;return!1}isBottomFrozenRow(t,e){if(Z(e)){if(e>=this.rowCount-this.bottomFrozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.bottomFrozenRowCount>0&&e>=this.rowCount-this.bottomFrozenRowCount)return!0;return!1}isLeftBottomCorner(t,e){return t>=0&&t<this.rowHeaderLevelCount&&e>=this.rowCount-this.bottomFrozenRowCount}isRightTopCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=0&&e<this.columnHeaderLevelCount}isRightBottomCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=this.rowCount-this.bottomFrozenRowCount}isCornerHeader(t,e){return!1}getColumnHeaderRange(){return this.transpose?{start:{col:0,row:0},end:{col:this._headerCellIds.length-1,row:(this.rowCount??0)-1}}:{start:{col:0,row:0},end:{col:(this.colCount??0)-1,row:this._headerCellIds.length-1}}}getRowHeaderRange(){return this.transpose?{start:{col:0,row:0},end:{col:this._headerCellIds.length-1,row:(this.rowCount??0)-1}}:{start:{col:0,row:0},end:{col:(this.colCount??0)-1,row:this._headerCellIds.length-1}}}getCornerHeaderRange(){}getBodyRange(){return this.transpose?{start:{col:this.headerLevelCount,row:0},end:{col:(this.colCount??0)-1,row:(this.rowCount??0)-1}}:{start:{col:0,row:this.headerLevelCount},end:{col:(this.colCount??0)-1,row:(this.rowCount??0)-1}}}get headerLevelCount(){return this.showHeader?this._headerCellIds.length:0}get columnHeaderLevelCount(){return this.transpose?0:this.headerLevelCount}get rowHeaderLevelCount(){return this.transpose?this.headerLevelCount:0}get frozenColCount(){return this._table.internalProps.frozenColCount?this.colCount>this._table.internalProps.frozenColCount?this._table.internalProps.frozenColCount:this.colCount:0}get frozenRowCount(){return this._table.internalProps.frozenRowCount?this.rowCount>=this._table.internalProps.frozenRowCount?this._table.internalProps.frozenRowCount:this.rowCount:0}get bottomFrozenRowCount(){return this._table.internalProps.bottomFrozenRowCount?this.rowCount-this.headerLevelCount>=this._table.internalProps.bottomFrozenRowCount?this._table.internalProps.bottomFrozenRowCount:this.rowCount-this.headerLevelCount:0}get rightFrozenColCount(){return this._table.internalProps.rightFrozenColCount?this.colCount-this.frozenColCount>=this._table.internalProps.rightFrozenColCount?this._table.internalProps.rightFrozenColCount:Math.max(0,this.colCount-this.frozenColCount):0}get colCount(){return this.transpose?this.headerLevelCount+this.recordsCount+this.leftRowSeriesNumberColumnCount+this.rightRowSeriesNumberColumnCount:this._columns.length+this.leftRowSeriesNumberColumnCount+this.rightRowSeriesNumberColumnCount}get rowCount(){return this.transpose?this._columns.length:this.headerLevelCount+this.recordsCount}get bodyRowCount(){return this.transpose?this._columns.length:this.rowCount-this.bottomFrozenRowCount-this.headerLevelCount}get bodyColCount(){return this.transpose?this.colCount-this.rightFrozenColCount-this.rowHeaderLevelCount:this._columns.length}get recordsCount(){return this._recordsCount}set recordsCount(t){this._recordsCount=t}get headerObjects(){return this._headerObjects}get columnObjects(){return this._columns}get headerObjectsIncludeHided(){return this._headerObjectsIncludeHided}get columnWidths(){if(this.leftRowSeriesNumberColumnCount){const t=this.leftRowSeriesNumberColumn.map((t=>({width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth})));return t.push(...this._columns.map((t=>({width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth})))),t}return this._columns.map((t=>({width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth})))}getColumnWidthDefined(t){if(t>=0){if(t<this.leftRowSeriesNumberColumnCount)return this.leftRowSeriesNumberColumn[t];if(this.transpose){let e,i,r=0;if(t>=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount){let t;return this.columnObjects.forEach(((n,o)=>{"number"==typeof n.width?r=Math.max(n.width,r):"auto"===n.width&&(t=!0),"number"==typeof n.minWidth&&(i=Math.max(n.minWidth,i)),"number"==typeof n.maxWidth&&(e=Math.max(n.maxWidth,e))})),r=r>0?r:t?"auto":void 0,{width:r,minWidth:i,maxWidth:e}}if(this.isRowHeader(t,0)){const e=Array.isArray(this._table.defaultHeaderColWidth)?this._table.defaultHeaderColWidth[t]??this._table.defaultColWidth:this._table.defaultHeaderColWidth;return"auto"===e?{width:"auto"}:{width:e}}}return this._columns[t-this.leftRowSeriesNumberColumnCount]}}getCellId(t,e){return this.transpose?t>=this.headerLevelCount+this.leftRowSeriesNumberColumnCount?this._columns[e]?.id:this.isSeriesNumber(t,e)?e+"_series_number":this._headerCellIds[t-this.leftRowSeriesNumberColumnCount]?.[e]:this.isSeriesNumber(t,e)?this.rowSeriesNumberColumn[t].id:this.headerLevelCount<=e?this._columns[t-this.leftRowSeriesNumberColumnCount]?.id:this._headerCellIds[e]?.[t-this.leftRowSeriesNumberColumnCount]}getHeader(t,e){if(this.isSeriesNumberInHeader(t,e))return this.getSeriesNumberHeader(t,e);const i=this.getCellId(t,e);return this._headerObjectMap[i]}getHeaderField(t,e){const i=this.getCellId(t,e);return this._headerObjectMap[i]?.field||(this.transpose?this._columns[e]&&this._columns[e].field:this._columns[t-this.leftRowSeriesNumberColumnCount]&&this._columns[t-this.leftRowSeriesNumberColumnCount].field)}getHeaderCellAdressById(t){for(let e=0;e<this._headerCellIds.length;e++){const i=this._headerCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return this.transpose?{col:e,row:r}:{col:r+this.leftRowSeriesNumberColumnCount,row:e}}}getHeaderCellAddressByField(t){const e=this.headerObjects.find((e=>e&&e.field===t));return this.getHeaderCellAdressById(e.id)}getBody(t,e){return this.isSeriesNumber(t,e)?this.getSeriesNumberBody(t,e):this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount]}getBodyLayoutRangeById(t){if(this.transpose){for(let e=0;e<(this.rowCount??0);e++)if(t===this._columns[e].id)return{start:{col:0,row:e},end:{col:0,row:e}}}else for(let e=0;e<(this.colCount??0);e++)if(t===this._columns[e-this.leftRowSeriesNumberColumnCount].id)return{start:{col:e,row:0},end:{col:e,row:0}};throw new Error(`can not found body layout @id=${t}`)}getCellRange(t,e){if(-1===t||-1===e)return{start:{col:t,row:e},end:{col:t,row:e}};if(this._cellRangeMap.has(`$${t}$${e}`))return this._cellRangeMap.get(`$${t}$${e}`);let i={start:{col:t,row:e},end:{col:t,row:e}};if(this.transpose)i=this.getCellRangeTranspose(t,e);else if(this.headerLevelCount<=e){if(this.headerLevelCount<=e&&this.columnObjects[t-this.leftRowSeriesNumberColumnCount]?.define?.mergeCell){const r=this._table.getCellValue(t,e);for(let n=e-1;n>=this.headerLevelCount;n--){const e=this._table.getCellValue(t,n);if("boolean"==typeof this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell){if(r!==e)break}else if(!this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell(r,e))break;i.start.row=n}for(let n=e+1;n<this.rowCount;n++){const e=this._table.getCellValue(t,n);if("boolean"==typeof this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell){if(r!==e)break}else if(!this.columnObjects[t-this.leftRowSeriesNumberColumnCount].define.mergeCell(r,e))break;i.end.row=n}}}else{const r=this.getCellId(t,e);for(let n=t-1;n>=0&&r===this.getCellId(n,e);n--)i.start.col=n;for(let n=t+1;n<(this.colCount??0)&&r===this.getCellId(n,e);n++)i.end.col=n;for(let n=e-1;n>=0&&r===this.getCellId(t,n);n--)i.start.row=n;for(let n=e+1;n<this.headerLevelCount&&r===this.getCellId(t,n);n++)i.end.row=n}return this._cellRangeMap.set(`$${t}$${e}`,i),i}getCellRangeTranspose(t,e){const i={start:{col:t,row:e},end:{col:t,row:e}};if(this.headerLevelCount+this.leftRowSeriesNumberColumnCount<=t||-1===t&&-1===e){if(this.headerLevelCount+this.leftRowSeriesNumberColumnCount<=t&&this.columnObjects[e]?.define?.mergeCell){const r=this._table.getCellValue(t,e);for(let n=t-1;n>=this.headerLevelCount+this.leftRowSeriesNumberColumnCount;n--){const t=this._table.getCellValue(n,e);if("boolean"==typeof this.columnObjects[e].define.mergeCell){if(r!==t)break}else if(!this.columnObjects[e].define.mergeCell(r,t))break;i.start.col=n}for(let n=t+1;n<(this.colCount??0);n++){const t=this._table.getCellValue(n,e);if("boolean"==typeof this.columnObjects[e].define.mergeCell){if(r!==t)break}else if(!this.columnObjects[e].define.mergeCell(r,t))break;i.end.col=n}}return i}const r=this.getCellId(t,e);for(let n=e-1;n>=0&&r===this.getCellId(t,n);n--)i.start.row=n;for(let n=e+1;n<(this.rowCount??0)&&r===this.getCellId(t,n);n++)i.end.row=n;for(let n=t-1;n>=0&&r===this.getCellId(n,e);n--)i.start.col=n;for(let n=t+1;n<this.headerLevelCount+this.leftRowSeriesNumberColumnCount&&r===this.getCellId(n,e);n++)i.end.col=n;return i}isCellRangeEqual(t,e,i,r){const n=this.getCellRange(t,e),o=this.getCellRange(i,r);return n.start.col===o.start.col&&n.end.col===o.end.col&&n.start.row===o.start.row&&n.end.row===o.end.row}getRecordShowIndexByCell(t,e){const i=this.hasAggregationOnTopCount?this.headerLevelCount+1:this.headerLevelCount;return this.transpose?t<i?-1:t-i:e<i?-1:e-i}getRecordStartRowByRecordIndex(t){return(this.hasAggregationOnTopCount?this.headerLevelCount+1:this.headerLevelCount)+t}_addHeaders(t,e,i,r){const n=[],o=this._newRow(t,r);return e.forEach((e=>{const s=this._columns.length,a=this.seqId++,l={id:a,title:e.title??e.caption,headerIcon:e.headerIcon,field:e.field,style:e.headerStyle,headerType:e.headerType??"text",dropDownMenu:e.dropDownMenu,define:e,columnWidthComputeMode:e.columnWidthComputeMode};n[a]=l;for(let e=t-1;e>=0;e--)this._headerCellIds[e]&&(this._headerCellIds[e][s]=i[e]);if(r?this._headerCellIds[t-1]&&(o[s]=this._headerCellIds[t-1][s]):o[s]=a,e.columns)this._addHeaders(t+1,e.columns,[...i,a],e.hideColumnsSubHeader||r).forEach((t=>n.push(t)));else{const i={id:this.seqId++,field:e.field,fieldFormat:e.fieldFormat,width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth,icon:e.icon,cellType:e.cellType??e.columnType??"text",chartModule:"chartModule"in e?e.chartModule:null,chartSpec:"chartSpec"in e?e.chartSpec:null,sparklineSpec:"sparklineSpec"in e?e.sparklineSpec:tH,style:e.style,define:e,columnWidthComputeMode:e.columnWidthComputeMode,disableColumnResize:e?.disableColumnResize,aggregation:this._getAggregationForColumn(e,s),isChildNode:t>=1};if(this._columnsIncludeHided.push(i),!0!==e.hide){this._columns.push(i);for(let e=t+1;e<this._headerCellIds.length;e++)this._headerCellIds[e][s]=a}}})),n}_getAggregationForColumn(t,e){let i;return t.aggregation?i=t.aggregation:this._table.options.aggregation&&(i="function"==typeof this._table.options.aggregation?this._table.options.aggregation({col:e,field:t.field}):this._table.options.aggregation),i?Array.isArray(i)?i.map((t=>(Z(t.showOnTop)||(t.showOnTop=!1),t))):Object.assign({showOnTop:!1},i):null}_newRow(t,e=!1){if(this._headerCellIds[t]){const e=this._headerCellIds[t-1];if(e.length>this._headerCellIds[t].length)for(let i=this._headerCellIds[t].length;i<e.length;i++)this._headerCellIds[t][i]=e[i];return this._headerCellIds[t]}if(e)return[];const i=this._headerCellIds[t]=[];if(!this._columns.length)return i;const r=this._headerCellIds[t-1];for(let t=0;t<r.length;t++)i[t]=r[t];return i}getCellHeaderPaths(t,e){if(this.isSeriesNumber(t,e))return;let i=[],r=[];return this.transpose?r=[{field:this._columns[e].field}]:i=[{field:this._columns[t-this.leftRowSeriesNumberColumnCount].field}],{colHeaderPaths:i,rowHeaderPaths:r,cellLocation:this.getCellLocation(t,e)}}getParentCellId(t,e){if(0!==e){if(this.isColumnHeader(t,e))return this.getCellId(t,e-1);if(this.isRowHeader(t,e)){if(this.isSeriesNumberInBody(t-1,e))return;return this.getCellId(t-1,e)}}}canMoveHeaderPosition(t,e){if(this.isSeriesNumberInHeader(e.col,e.row)||this.isSeriesNumberInHeader(t.col,t.row))return!1;if(!this.transpose&&this.isSeriesNumberInBody(e.col,e.row)&&this.isSeriesNumberInBody(t.col,t.row))return!0;if(this.transpose&&this.isSeriesNumberInBody(e.col,e.row)&&this.isSeriesNumberInBody(t.col,t.row)&&(this._getColumnDefine(t.col+this.leftRowSeriesNumberColumnCount,t.row).isChildNode&&this._getColumnDefine(e.col+this.leftRowSeriesNumberColumnCount,e.row).isChildNode?(t.col=t.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1,e.col=e.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1):(t.col=t.col+this.leftRowSeriesNumberColumnCount,e.col=e.col+this.leftRowSeriesNumberColumnCount)),t.col<0||t.row<0||e.col<0||e.row<0)return!1;if("disabled"===this._table.internalProps.frozenColDragHeaderMode&&this._table.isFrozenColumn(e.col))return!1;const i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){return this.getParentCellId(t.col,i.start.row)===this.getParentCellId(e.col,i.start.row)}if(this.isRowHeader(t.col,t.row)){return this.getParentCellId(i.start.col,t.row)===this.getParentCellId(i.start.col,e.row)}return!1}moveHeaderPosition(t,e){if(this.canMoveHeaderPosition(t,e)){let i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){const r=i.end.col-i.start.col+1;let n;const o=this.getCellRange(e.col,i.start.row);if(n=e.col>=t.col?o.end.col-r+1:o.start.col,n===i.start.col)return null;for(let t=0;t<this._headerCellIds.length;t++){const e=this._headerCellIds[t].splice(i.start.col-this.leftRowSeriesNumberColumnCount,r);e.unshift(n-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._headerCellIds[t],e)}const s=this._columns.splice(i.start.col-this.leftRowSeriesNumberColumnCount,r);return s.unshift(n-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.row,i.start.col-this.leftRowSeriesNumberColumnCount,n-this.leftRowSeriesNumberColumnCount),this.columnTree.reset(this.columnTree.tree.children,!0),this._cellRangeMap=new Map,{sourceIndex:i.start.col,targetIndex:n,sourceSize:r,targetSize:o.end.col-o.start.col+1,moveType:"column"}}if(this.isRowHeader(t.col,t.row)||this.isSeriesNumberInBody(t.col,t.row)&&this.transpose){this.isSeriesNumberInBody(t.col,t.row)&&(i=this.getCellRange(t.col+this.leftRowSeriesNumberColumnCount,t.row));const r=i.end.row-i.start.row+1;let n;const o=this.getCellRange(i.start.col,e.row);if(n=e.row>=t.row?o.end.row-r+1:o.start.row,n===i.start.row)return null;for(let t=0;t<this._headerCellIds.length;t++){const e=this._headerCellIds[t].splice(i.start.row,r);e.unshift(n,0),Array.prototype.splice.apply(this._headerCellIds[t],e)}const s=this._columns.splice(i.start.row,r);return s.unshift(n,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.col-this.leftRowSeriesNumberColumnCount,i.start.row,n+(e.row>t.row?i.end.row-i.start.row:0)),this.columnTree.reset(this.columnTree.tree.children,!0),this._cellRangeMap=new Map,{sourceIndex:i.start.row,targetIndex:n,sourceSize:r,targetSize:o.end.row-o.start.row+1,moveType:"row"}}if(this.isSeriesNumberInBody(t.col,t.row))return{sourceIndex:t.row,targetIndex:e.row,sourceSize:1,targetSize:1,moveType:"row"}}return null}toggleHierarchyState(t){const e=t.add.map((t=>({col:0,row:this._table.frozenRowCount+t}))),i=t.remove.map((t=>({col:0,row:this._table.frozenRowCount+t})));return{addCellPositions:e,removeCellPositions:i}}setChartInstance(t,e,i){const r=this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount];"function"!=typeof r.chartSpec&&(r.chartInstance=i)}getChartInstance(t,e){return(this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount]).chartInstance}checkHasChart(){return GG(this)}getAxisConfigInPivotChart(t,e){}isEmpty(t,e){return!1}isAxisCell(t,e){return!1}getChartAxes(t,e){return[]}isShareChartSpec(t,e){const i=this.getBody(t,e),r=i?.chartSpec;return"function"!=typeof r}getChartSpec(t,e){return this.getRawChartSpec(t,e)}getRawChartSpec(t,e){const i=this.getBody(t,e),r=i?.chartSpec;if("function"==typeof r){return r({col:t,row:e,dataValue:this._table.getCellOriginValue(t,e)||"",value:this._table.getCellValue(t,e)||"",rect:this._table.getCellRangeRelativeRect(this._table.getCellRange(t,e)),table:this._table})}return r}getChartDataId(t,e){return WG(t,e,this)}release(){const t=this._table._getActiveChartInstance();t?.release(),this.columnObjects.forEach((t=>{t.chartInstance?.release()}))}clearCellRangeMap(){this._cellRangeMap.clear()}updateColumnTitle(t,e,i){const r=this._table.internalProps.layoutMap.getHeader(t,e);r.title=i,r.define.title=i}getColumnByField(t){const e=this.columnObjects?.reduce(((e,i,r)=>(i.field===t&&e.push({col:r,columnDefine:i}),e)),[]);return e}_getColumnDefine(t,e){if(t>=0)return t<this.leftRowSeriesNumberColumnCount?this.leftRowSeriesNumberColumn[t]:this.transpose?this._columns[e]:this._columns[t-this.leftRowSeriesNumberColumnCount]}}class VG{table;_titleOption;isReleased=!1;_titleComponent;_cacheAttrs;constructor(t,e){this.table=e,this._titleOption=t,!1!==t.visible&&(this._titleComponent=this._createOrUpdateTitleComponent(this._getTitleAttrs()))}_createOrUpdateTitleComponent(t){if(this._titleComponent)Mt(t,this._cacheAttrs)||this._titleComponent.setAttributes(t);else{const e=new Ik(t);e.name="title",this.table.scenegraph.stage.defaultLayer.appendChild(e),this._titleComponent=e}return this._adjustTableSize(this._titleComponent.attribute),this._titleComponent}resize(){if(!this._titleComponent)return;const t=II(this._titleOption.padding??10),e=this._titleOption.width??Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width)-t[1]-t[3],i=this._titleOption.height??Math.min(this.table.tableNoFrameHeight,this.table.getDrawRange().height)-t[0]-t[2];this._titleComponent.setAttributes({x:this._titleOption.x??"right"===this._titleOption.orient?this.table.tableX+Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width):this.table.tableX,y:this._titleOption.y??"bottom"===this._titleOption.orient?this.table.tableY+this.table.tableNoFrameHeight:this.table.tableY,width:"top"===this._titleOption.orient||"bottom"===this._titleOption.orient?e:this._titleOption.width,height:"left"===this._titleOption.orient||"right"===this._titleOption.orient?i:this._titleOption.height,textStyle:{width:e,...this._titleOption.textStyle},subtextStyle:{width:e,...this._titleOption.subtextStyle}}),this._adjustTableSize(this._titleComponent.attribute)}_adjustTableSize(t){const e=isFinite(this._titleComponent?.AABBBounds.width())?this._titleComponent.AABBBounds.width():0,i=isFinite(this._titleComponent?.AABBBounds.height())?this._titleComponent.AABBBounds.height():0;"left"===this._titleOption.orient?(this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e),this.table.tableX+=Math.ceil(e)):"top"===this._titleOption.orient?(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i),this.table.tableY+=Math.ceil(i)):"right"===this._titleOption.orient?this.table.tableNoFrameWidth=this.table.tableNoFrameWidth-Math.ceil(e):"bottom"===this._titleOption.orient&&(this.table.tableNoFrameHeight=this.table.tableNoFrameHeight-Math.ceil(i)),this._cacheAttrs=t,"right"!==this._titleOption.orient&&"bottom"!==this._titleOption.orient||this._titleComponent.setAttributes({x:this._titleOption.x??"right"===this._titleOption.orient?this.table.tableX+this.table.tableNoFrameWidth:this.table.tableX,y:this._titleOption.y??"bottom"===this._titleOption.orient?this.table.tableY+this.table.tableNoFrameHeight:this.table.tableY})}release(){this._titleComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this._titleComponent),this._titleComponent=null,this.isReleased=!0}_getTitleAttrs(){const t=this._titleOption.text||this._titleOption.subtext?10:0,e=II(this._titleOption.padding??t),i=this._titleOption.width??Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width)-e[1]-e[3],r=this._titleOption.height??Math.min(this.table.tableNoFrameHeight,this.table.getDrawRange().height)-e[0]-e[2];return{text:this._titleOption.text??"",subtext:this._titleOption.subtext??"",x:this._titleOption.x??"right"===this._titleOption.orient?this.table.tableX+Math.min(this.table.tableNoFrameWidth,this.table.getDrawRange().width):this.table.tableX,y:this._titleOption.y??"bottom"===this._titleOption.orient?this.table.tableY+this.table.tableNoFrameHeight:this.table.tableY,width:"top"===this._titleOption.orient||"bottom"===this._titleOption.orient?i:this._titleOption.width,height:"left"===this._titleOption.orient||"right"===this._titleOption.orient?r:this._titleOption.height,minWidth:this._titleOption.minWidth,maxWidth:this._titleOption.maxWidth,minHeight:this._titleOption.minHeight,maxHeight:this._titleOption.maxHeight,padding:this._titleOption.padding,align:this._titleOption.align??"left",verticalAlign:this._titleOption.verticalAlign??"top",textStyle:{width:i,...this._titleOption.textStyle},subtextStyle:{width:i,...this._titleOption.subtextStyle},dx:this._titleOption.dx??0,dy:this._titleOption.dy??0}}}class UG{table;editingEditor;editCell;constructor(t){this.table=t,this.bindEvent()}bindEvent(){const t=this.table.internalProps.handler;this.table.on(IL.DBLCLICK_CELL,(t=>{if(!this.table.options.editCellTrigger||"doubleclick"===this.table.options.editCellTrigger){const{col:e,row:i}=t,r=AO(t.federatedEvent),n=this.table.scenegraph.getResizeColAt(r.abstractPos.x,r.abstractPos.y,r.eventArgs?.targetCell);if(this.table._canResizeColumn(n.col,n.row)&&n.col>=0)return;this.startEditCell(e,i)}})),this.table.on(IL.CLICK_CELL,(t=>{if("click"===this.table.options.editCellTrigger){const{col:e,row:i}=t;this.startEditCell(e,i)}})),t.on(this.table.getElement(),"wheel",(t=>{this.completeEdit()})),t.on(this.table.getElement(),"resize",(t=>{(this.table.autoFillWidth||this.table.autoFillHeight)&&this.completeEdit()}))}startEditCell(t,e){const i=this.table.getEditor(t,e);if(i){if(this.table.internalProps.layoutMap?.isAggregation?.(t,e))return;this.editingEditor||(this.editCell={col:t,row:e}),this.editingEditor=i;const r=this.table.getCellOriginValue(t,e),n=this.table.getCellRangeRelativeRect(this.table.getCellRange(t,e)),o={rect:{left:n.left,top:n.top,width:n.width,height:n.height}};i.beginEditing,i.beginEditing?.(this.table.getElement(),o,r),i.bindSuccessCallback,i.bindSuccessCallback?.((()=>{this.completeEdit()})),i.onStart?.({value:r,endEdit:()=>{this.completeEdit()},referencePosition:o,container:this.table.getElement(),col:t,row:e})}}completeEdit(t){if(!this.editingEditor)return!0;const e=t?.target,{editingEditor:i}=this;if(e)if(i.targetIsOnEditor){if(i.targetIsOnEditor(e))return!1}else if(!i.isEditorElement||i.isEditorElement(e))return!1;if(this.editingEditor.getValue,!this.editingEditor.validateValue||this.editingEditor.validateValue?.()){const t=this.editingEditor.getValue?.(),e=this.table.getCellRange(this.editCell.col,this.editCell.row),i=[];for(let r=e.start.row;r<=e.end.row;r++){const r=[];for(let i=e.start.col;i<=e.end.col;i++)r.push(t);i.push(r)}return this.table.changeCellValues(e.start.col,e.start.row,i),this.editingEditor.exit,this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null,!0}return!1}cancelEdit(){this.editingEditor&&(this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null)}}class KG{table;_emptyTipOption={spaceBetweenTextAndIcon:20,text:"no data",textStyle:{fontSize:14,color:"#000"},icon:{image:'<svg t="1716726614852" class="icon" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2621" width="200" height="200"><path d="M1038.694079 367.237067c13.265507 23.342857-16.633865-40.004445-63.05621-40.004446H219.018794c-26.558738 0-46.46393 13.334815-63.05621 40.004446S0.006238 607.277601 0.006238 650.608819V940.647979a82.351494 82.351494 0 0 0 82.961402 83.349526H1111.702885a82.337632 82.337632 0 0 0 82.975264-83.349526V650.608819c0-43.331218-155.970208-283.371753-155.970208-283.371752zM730.066575 667.284269a136.328386 136.328386 0 0 1-132.738243 133.33429 133.417459 133.417459 0 0 1-132.738243-133.33429v-6.681269a40.6698 40.6698 0 0 0-36.497473-26.66963H73.015044l119.458874-220.02445s23.231965-40.004445 53.103614-40.004446h713.481918c26.544876 0 29.871649 10.008042 46.436207 40.004446L1128.33675 633.947231H769.904682c-26.184476 0-39.838107 7.623855-39.838107 33.337038zM338.505391 210.559919l-89.601086-86.69016a22.178487 22.178487 0 0 1 0-33.26773 21.984425 21.984425 0 0 1 33.170699 0l89.601087 86.676299a22.317102 22.317102 0 0 1 0 33.26773 24.950798 24.950798 0 0 1-33.1707 0z m252.197118-40.059891a25.532983 25.532983 0 0 1-6.639685-16.633865l-3.326773-126.694606A28.263709 28.263709 0 0 1 603.995739 0.515788c13.251646-3.326773 23.204242 10.021904 26.544877 23.342858V153.866163a28.249847 28.249847 0 0 1-23.259688 26.66963c-6.611961-3.312911-13.279369-3.312911-16.578419-10.035765z m235.646421 33.337038a22.372548 22.372548 0 0 1 0-33.337038l86.288175-90.030795a22.039871 22.039871 0 0 1 33.170699 0 22.289379 22.289379 0 0 1 0 33.364761l-82.961401 90.003072a25.962691 25.962691 0 0 1-36.483611 0z" fill="#8a8a8a" p-id="2622"></path></svg>',width:100,height:100}};isReleased=!1;_emptyTipComponent;_cacheAttrs;constructor(t,e){this.table=e,this._emptyTipOption=Object.assign(this._emptyTipOption,!0===t?{}:t),this._emptyTipComponent=this._createOrUpdateEmptyTipComponent(this._getEmptyTipAttrs())}_createOrUpdateEmptyTipComponent(t){if(this._emptyTipComponent)Mt(t,this._cacheAttrs)||this._emptyTipComponent.setAttributes(t);else{const e=new uE(t);e.name="emptyTip",this.table.scenegraph.stage.defaultLayer.appendChild(e),this._emptyTipComponent=e}return this._emptyTipComponent}resize(){if(!this._emptyTipComponent)return;const t=this.table.transpose||!1===this.table.options.indicatorsAsCol?this.table.getFrozenColsWidth():0,e=!this.table.transpose||this.table.options.indicatorsAsCol?this.table.getFrozenRowsHeight():0,i=(this.table.columnHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().height:this.table.tableNoFrameHeight)-e;this._emptyTipComponent.setAttributes({spaceBetweenTextAndIcon:this._emptyTipOption.spaceBetweenTextAndIcon,x:this.table.tableX+t,y:this.table.tableY+e,width:i,height:r,text:{text:this._emptyTipOption.text,...this._emptyTipOption.textStyle,fill:this._emptyTipOption.textStyle?.color},icon:{...this._emptyTipOption.icon}})}release(){this._emptyTipComponent&&this.table.scenegraph.stage.defaultLayer.removeChild(this._emptyTipComponent),this._emptyTipComponent=null,this.isReleased=!0}resetVisible(){(this.table.recordsCount&&0!==this.table.recordsCount||this.table.internalProps.layoutMap.rowCount!==this.table.internalProps.layoutMap.columnHeaderLevelCount)&&this.table.internalProps.layoutMap.colCount!==this.table.internalProps.layoutMap.rowHeaderLevelCount?this.table.scenegraph.stage.defaultLayer.children.includes(this._emptyTipComponent)&&this.table.scenegraph.stage.defaultLayer.removeChild(this._emptyTipComponent):this.table.scenegraph.stage.defaultLayer.children.includes(this._emptyTipComponent)||this.table.scenegraph.stage.defaultLayer.appendChild(this._emptyTipComponent)}_getEmptyTipAttrs(){const t=this.table.transpose||!1===this.table.options.indicatorsAsCol?this.table.getFrozenColsWidth():0,e=!this.table.transpose||this.table.options.indicatorsAsCol?this.table.getFrozenRowsHeight():0,i=(this.table.columnHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0&&this.table.isListTable()?this.table.getDrawRange().height:this.table.tableNoFrameHeight)-e;return{spaceBetweenTextAndIcon:this._emptyTipOption.spaceBetweenTextAndIcon,x:this.table.tableX+t,y:this.table.tableY+e,width:i,height:r,text:{text:this._emptyTipOption.text,...this._emptyTipOption.textStyle,fill:this._emptyTipOption.textStyle?.color},icon:{...this._emptyTipOption.icon}}}}const $G={startInTotal:0,level:0};class YG{sharedVar;colIndex=0;_showHeader=!0;rowDimensionTree;columnDimensionTree;rowTree;columnTree;cornerHeaderObjs;columnHeaderObjs=[];rowHeaderObjs=[];_cornerHeaderCellFullPathIds=[];_columnHeaderCellFullPathIds=[];_rowHeaderCellFullPathIds=[];_rowHeaderCellFullPathIds_FULL=[];_cornerHeaderCellIds=[];_columnHeaderCellIds=[];_rowHeaderCellIds=[];_rowHeaderCellIds_FULL=[];_columnWidths=[];_columnHeaderLevelCount;_rowHeaderLevelCount;rowsDefine;columnsDefine;indicatorsDefine;columnPaths=[];_headerObjects=[];_headerObjectMap={};_indicators=[];indicatorTitle;indicatorsAsCol=!0;hideIndicatorName=!1;_showRowHeader=!0;_showColumnHeader=!0;_rowHeaderTitle;_columnHeaderTitle;cornerSetting;_indicatorShowType="column";rowHierarchyType;rowExpandLevel;rowHierarchyIndent;rowHierarchyTextStartAlignment=!1;rowDimensionKeys=[];colDimensionKeys=[];indicatorKeys=[];indicatorDimensionKey=QL;_largeCellRangeCache;_CellHeaderPathMap;_table;extensionRows;_rowHeaderExtensionTree={};_extensionRowDimensionKeys=[];fullRowDimensionKeys=[];dataset;pagination;currentPageStartIndex;currentPageEndIndex;hasTwoIndicatorAxes;_chartItemSpanSize;_chartPaddingInner;_chartPaddingOuter;_chartItemBandSize;_chartPadding;_lastCellCol;_lastCellRow;_lastCellHeaderPath;rowSeriesNumberColumn;leftRowSeriesNumberColumn;leftRowSeriesNumberColumnCount=0;rightRowSeriesNumberColumn;rightRowSeriesNumberColumnCount=0;constructor(t,e,i,r){this.sharedVar=t.layoutNodeId,this._table=t,"tree"===t.options.rowHierarchyType&&(this.extensionRows=t.options.extensionRows),this.dataset=e,this._largeCellRangeCache=[],this._CellHeaderPathMap=new Map,this.rowTree=t.internalProps.rowTree,this.columnTree=t.internalProps.columnTree,this.rowsDefine=t.internalProps.rows??[],this.columnsDefine=t.internalProps.columns??[],this.indicatorsDefine=t.internalProps.indicators??[],this.indicatorTitle=t.options.indicatorTitle,this.indicatorsAsCol=t.options.indicatorsAsCol??!0,this.hideIndicatorName=t.options.hideIndicatorName??!1,this.showRowHeader=t.options.showRowHeader??!0,this.showColumnHeader=t.options.showColumnHeader??!0,this.rowHeaderTitle=t.options.rowHeaderTitle,this.columnHeaderTitle=t.options.columnHeaderTitle,this.rowHierarchyType=t.options.rowHierarchyType??"grid",this.rowExpandLevel=t.options.rowExpandLevel??1,this.rowHierarchyIndent=t.options.rowHierarchyIndent??20,this.rowHierarchyTextStartAlignment=t.options.rowHierarchyTextStartAlignment,this.cornerSetting=t.options.corner??{titleOnDimension:"column"},e&&(this.rowTree=e.rowHeaderTree,this.columnTree=e.colHeaderTree),this.indicatorsDefine?.forEach((t=>{"string"==typeof t?this.indicatorKeys.push(t):this.indicatorKeys.push(t.indicatorKey)})),this.columnDimensionTree=i,this.rowDimensionTree=r,this.colDimensionKeys=this.columnDimensionTree.dimensionKeys.valueArr(),this.rowDimensionKeys=this.rowDimensionTree.dimensionKeys.valueArr(),this.fullRowDimensionKeys=this.fullRowDimensionKeys.concat(this.rowDimensionKeys),this.resetRowHeaderLevelCount(),this._table.isPivotChart()&&(this.hasTwoIndicatorAxes=this.indicatorsDefine.some((t=>{if(t.chartSpec&&t.chartSpec.series&&t.chartSpec.series.length>1){const e=t.chartSpec.axes??this._table.pivotChartAxes??[];if(!e.length||e.every((t=>t.orient!==(this.indicatorsAsCol?"top":"right")||!1!==t.visible)))return!0}return!1}))),this.resetColumnHeaderLevelCount(),this._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this._rowHeaderCellFullPathIds_FULL=rL(this._rowHeaderCellFullPathIds_FULL),"tree"===t.options.rowHierarchyType&&this.extensionRows?.length>=1&&(this.generateExtensionRowTree(),this.extensionRows.forEach((t=>{const e=[];t.rows.forEach((t=>{"string"==typeof t?e.push(t):e.push(t.dimensionKey)})),this._extensionRowDimensionKeys.push(e),this.fullRowDimensionKeys=this.fullRowDimensionKeys.concat(e)}))),this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);let n,o=this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||(o=this.columnsDefine.map((t=>"string"==typeof t?t:t.dimensionKey)),this.indicatorsAsCol&&o.push(this.indicatorDimensionKey)),o=this.columnHeaderTitle?[""].concat(o):o;let s=[];if("tree"===this.rowHierarchyType&&this.extensionRows?.length>=1){const t=[];t.push(this.rowDimensionKeys[0]),this._extensionRowDimensionKeys.forEach((e=>{t.push(e[0])})),s=this.extensionRows.reduce(((t,e)=>t.concat(e.rows)),[]),n=this.rowHeaderTitle?[""].concat(t):t}else n=this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr(),!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||(n=this.rowsDefine.map((t=>"string"==typeof t?t:t.dimensionKey)),this.indicatorsAsCol||n.push(this.indicatorDimensionKey)),n=this.rowHeaderTitle?[""].concat(n):n;this.cornerHeaderObjs=this._addCornerHeaders(o,n,this.columnsDefine.concat(...this.rowsDefine,...s)),this.colIndex=0,this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this.indicatorsAsCol&&!this.hideIndicatorName?this._indicatorShowType="column":this.indicatorsAsCol||this.hideIndicatorName?this._indicatorShowType="none":this._indicatorShowType="row",this.generateCellIdsConsiderHideHeader(),this.setPagination(t.options.pagination),this._table.isPivotChart()&&(this._chartItemSpanSize=0,this._chartItemBandSize=0,this._indicators.find((t=>{t?.style?.padding&&(this._chartPadding=t.style.padding),t.chartSpec?.barWidth&&"number"==typeof t.chartSpec.barWidth&&(this._chartItemSpanSize=t.chartSpec?.barWidth);const e=t.chartSpec?.axes?.find((t=>"band"===t.type));return e?.bandSize&&(this._chartItemBandSize=e?.bandSize,this._chartPaddingInner=(nt(e.paddingInner)?e.paddingInner[0]:e.paddingInner)??0,this._chartPaddingOuter=(nt(e.paddingOuter)?e.paddingOuter[0]:e.paddingOuter)??0),this._chartItemSpanSize>0||(t.chartSpec.series?.find((t=>(t.barWidth&&"number"==typeof t.barWidth&&(this._chartItemSpanSize=t.barWidth),this._chartItemSpanSize>0))),!1)}))),this.handleRowSeriesNumber(t.internalProps.rowSeriesNumber),this.setColumnWidths()}handleRowSeriesNumber(t){t&&(Array.isArray(t)?this.rowSeriesNumberColumn=t.map((t=>({id:"",title:t.title,define:t,cellType:t.cellType??"text",width:t.width,style:t.style,format:t.format,field:t.field,icon:t.icon}))):this.rowSeriesNumberColumn=[{id:"",title:t.title,define:t,cellType:t.cellType??"text",style:t.style,width:t.width,format:t.format,field:"",icon:t.icon,isChildNode:!1}],this.leftRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!0)),this.rightRowSeriesNumberColumn=this.rowSeriesNumberColumn.filter((t=>!1)),this.leftRowSeriesNumberColumnCount=this.leftRowSeriesNumberColumn.length,this.rightRowSeriesNumberColumnCount=this.rightRowSeriesNumberColumn.length)}_generateColHeaderIds(){if(this.columnDimensionTree.tree.children?.length>=1){let t=0;if(this.dataset&&0===(this.dataset.records?.length??0)&&!this.dataset.customColTree&&!this.dataset.customRowTree&&this.indicatorsAsCol&&this.columnDimensionTree.totalLevel<this.columnHeaderLevelCount){t=this.columnHeaderLevelCount-this.columnDimensionTree.totalLevel;for(let e=0;e<t;e++)this._columnHeaderCellFullPathIds.unshift([])}this._addHeaders(this._columnHeaderCellFullPathIds,t,this.columnDimensionTree.tree.children,[],this.columnHeaderObjs)}if(this.columnHeaderTitle){this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);const t=++this.sharedVar.seqId,e=Array(this.colCount-this.rowHeaderLevelCount-this.rightFrozenColCount).fill(t);this._columnHeaderCellFullPathIds.unshift(e);const i={id:t,title:"string"==typeof this.columnHeaderTitle.title?this.columnHeaderTitle.title:this.columnsDefine.reduce(((t,e)=>"string"==typeof e?t:t+(t?`/${e.title}`:`${e.title}`)),""),field:void 0,headerType:this.columnHeaderTitle?.headerType??"text",style:this.columnHeaderTitle?.headerStyle,define:{id:t,disableHeaderHover:!!this.columnHeaderTitle?.disableHeaderHover,disableHeaderSelect:!!this.columnHeaderTitle?.disableHeaderSelect}};this.columnHeaderObjs.push(i),this._headerObjects[t]=i}}_generateRowHeaderIds(){if(this.rowDimensionTree.tree.children?.length>=1)if("tree"===this.rowHierarchyType)this._addHeadersForTreeMode(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowDimensionTree.totalLevel,!0,this.rowsDefine,this.rowHeaderObjs);else{let t=0;if(this.dataset&&0===(this.dataset.records?.length??0)&&!this.dataset.customColTree&&!this.dataset.customRowTree&&!this.indicatorsAsCol&&this.rowDimensionTree.totalLevel<this.rowHeaderLevelCount){t=this.rowHeaderLevelCount-this.rowDimensionTree.totalLevel;for(let e=0;e<t;e++)this._rowHeaderCellFullPathIds_FULL.unshift([])}this._addHeaders(this._rowHeaderCellFullPathIds_FULL,t,this.rowDimensionTree.tree.children,[],this.rowHeaderObjs)}if(this.rowHeaderTitle){this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);const t=++this.sharedVar.seqId,e=Array(this._rowHeaderCellFullPathIds_FULL[0]?.length??this.rowDimensionTree.tree.size).fill(t);this._rowHeaderCellFullPathIds_FULL.unshift(e);const i={id:t,title:"string"==typeof this.rowHeaderTitle.title?this.rowHeaderTitle.title:this.rowsDefine.reduce(((t,e)=>"string"==typeof e?t:t+(t?`/${e.title}`:`${e.title}`)),""),field:void 0,headerType:this.rowHeaderTitle?.headerType??"text",style:this.rowHeaderTitle?.headerStyle,define:{id:t,disableHeaderHover:!!this.rowHeaderTitle?.disableHeaderHover,disableHeaderSelect:!!this.rowHeaderTitle?.disableHeaderSelect}};this.rowHeaderObjs.push(i),this._headerObjects[t]=i}}_addHeaders(t,e,i,r,n){const o=this;t[e]||function(e){const i=t[e]=[];if(0===o.colIndex)return i;const r=t[e-1];for(let t=0;t<r?.length;t++)i[t]=r[t]}(e);for(let o=0;o<i.length;o++){gG(i[o],t,n,r,e,this)}}_addHeadersForTreeMode(t,e,i,r,n,o,s,a){const l=this;t[e]||function(e){const i=t[e]=[];if(0===l.colIndex)return i;const r=t[e-1];for(let t=0;t<r?.length;t++)i[t]=r[t]}(e);for(let l=0;l<i.length;l++){pG(i[l],t,a,r,e,n,o,s,this)}}_addCornerHeaders(t,e,i){const r=[];if("all"===this.cornerSetting.titleOnDimension)if(this.indicatorsAsCol){let n=-1;t&&t.forEach(((t,e)=>{t===this.indicatorDimensionKey&&(n=e);const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a,this._cornerHeaderCellFullPathIds[e]||(this._cornerHeaderCellFullPathIds[e]=[]);for(let t=0;t<this.rowHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[e][t]=o})),e&&e.forEach(((t,e)=>{const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a,this._cornerHeaderCellFullPathIds[n]||(this._cornerHeaderCellFullPathIds[n]=[]),this._cornerHeaderCellFullPathIds[n][e]=o}))}else{let n=-1;e&&e.forEach(((t,e)=>{t===this.indicatorDimensionKey&&(n=e);const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a;for(let t=0;t<this.columnHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[t]||(this._cornerHeaderCellFullPathIds[t]=[]),this._cornerHeaderCellFullPathIds[t][e]=o})),t&&t.forEach(((t,e)=>{const o=++this.sharedVar.seqId,s=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),a={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:s?s.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:s?.showSortInCorner,sort:s?.sort,define:{showSort:s?.showSortInCorner,sort:s?.sort,dimensionKey:t,id:o,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:s?.cornerDropDownMenu,pivotInfo:{value:s?.title??"",dimensionKey:t,isPivotCorner:!0},description:s?.cornerDescription};r[o]=a,this._headerObjects[o]=a,this._cornerHeaderCellFullPathIds[e][n]=o}))}else if("row"===this.cornerSetting.titleOnDimension||"column"===this.cornerSetting.titleOnDimension){const n="row"===this.cornerSetting?.titleOnDimension?e:t;n&&n.forEach(((t,e)=>{const n=++this.sharedVar.seqId,o=i.find((e=>"string"!=typeof e&&e.dimensionKey===t)),s={id:n,title:t===this.indicatorDimensionKey?this.indicatorTitle:o?o.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:o?.showSortInCorner,sort:o?.sort,define:{showSort:o?.showSortInCorner,sort:o?.sort,dimensionKey:t,id:n,value:t,headerEditor:this.cornerSetting.headerEditor,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:o?.cornerDropDownMenu,pivotInfo:{value:o?.title??"",dimensionKey:t,isPivotCorner:!0},description:o?.cornerDescription};if(r[n]=s,this._headerObjects[n]=s,"column"===this.cornerSetting.titleOnDimension){this._cornerHeaderCellFullPathIds[e]||(this._cornerHeaderCellFullPathIds[e]=[]);for(let t=0;t<this.rowHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[e][t]=n}else if("row"===this.cornerSetting.titleOnDimension)for(let t=0;t<this.columnHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[t]||(this._cornerHeaderCellFullPathIds[t]=[]),this._cornerHeaderCellFullPathIds[t][e]=n}))}else{const t=++this.sharedVar.seqId,e={id:t,title:"",field:"维度名称",style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",define:{dimensionKey:"维度名称",id:t,value:"",disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect}};r[t]=e,this._headerObjects[t]=e;for(let e=0;e<this.columnHeaderLevelCount;e++)for(let i=0;i<this.rowHeaderLevelCount;i++)this._cornerHeaderCellFullPathIds[e]||(this._cornerHeaderCellFullPathIds[e]=[]),this._cornerHeaderCellFullPathIds[e][i]=t}return r}generateExtensionRowTree(){this.extensionRows.forEach(((t,e)=>{const i=this._rowHeaderCellFullPathIds_FULL;this._rowHeaderCellFullPathIds_FULL=[],i.forEach(((e,i)=>{const r=e[e.length-1];let n,o;if(this.colIndex=0,"function"==typeof t.rowTree){const i=this.findFullCellIds(e);n=t.rowTree(i.map((t=>({dimensionKey:this._headerObjects[t].field,value:this._headerObjects[t].title}))))}else n=vt(t.rowTree);this._rowHeaderExtensionTree[r]?(this._rowHeaderExtensionTree[r].reset(this._rowHeaderExtensionTree[r].tree.children,!0),o=this._rowHeaderExtensionTree[r]):(o=new cG(n??[],this.sharedVar,this.rowHierarchyType,void 0),this._rowHeaderExtensionTree[r]=o);const s=[];this._addHeadersForTreeMode(s,0,o.tree.children,[],o.totalLevel,!0,t.rows,this.rowHeaderObjs);for(let t=0;t<s[0].length;t++)this._rowHeaderCellFullPathIds_FULL.push(e.concat(s[0][t]))}))}))}setColumnWidths(){const t=new Array(this.colCount).fill(void 0);if(this.leftRowSeriesNumberColumnCount&&(t[0]=this.leftRowSeriesNumberColumn[0]),this.showHeader&&this.showRowHeader)if(this.rowHeaderTitle&&(t[0+this.leftRowSeriesNumberColumnCount]={}),"tree"===this.rowHierarchyType){const e=this.rowDimensionKeys[0];if(e){const i=this.rowsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===e));i&&(t[0+(this.rowHeaderTitle?1:0)+this.leftRowSeriesNumberColumnCount]={width:i.width,minWidth:i.minWidth,maxWidth:i.maxWidth})}this._extensionRowDimensionKeys?.forEach(((e,i)=>{const r=e[0];if(r){const e=this.extensionRows[i].rows?.find((t=>"string"!=typeof t&&t.dimensionKey===r));e&&(t[i+1+(this.rowHeaderTitle?1:0)+this.leftRowSeriesNumberColumnCount]={width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth})}}))}else this.rowDimensionKeys.forEach(((e,i)=>{const r=this.rowsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===e));r&&(t[i+(this.rowHeaderTitle?1:0)+this.leftRowSeriesNumberColumnCount]={width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth})}));if(this.indicatorsAsCol)for(let e=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;e<this.colCount;e++){const i=this.getBody(e,this.columnHeaderLevelCount);t[e]={width:i?.width,minWidth:i?.minWidth,maxWidth:i?.maxWidth}}else{let e,i,r,n=0;this._indicators?.forEach(((t,o)=>{"number"==typeof t.width?n=Math.max(t.width,n):"auto"===t.width&&(r=!0),"number"==typeof t.minWidth&&(i=Math.max(t.minWidth,i??0)),"number"==typeof t.maxWidth&&(e=Math.min(t.maxWidth,e??Number.MAX_VALUE))})),n=n>0?n:r?"auto":void 0,t.fill({width:n,minWidth:i,maxWidth:e},this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount,this.colCount-this.rightFrozenColCount)}this._columnWidths=t}get columnWidths(){return this._columnWidths}getColumnWidthDefined(t){return this._columnWidths[t]}get showHeader(){return this._showHeader}set showHeader(t){this._showHeader=t}get showColumnHeader(){return this._showColumnHeader}set showColumnHeader(t){this._showColumnHeader=t}get showRowHeader(){return this._showRowHeader}set showRowHeader(t){this._showRowHeader=t}get columnHeaderTitle(){return this._columnHeaderTitle}set columnHeaderTitle(t){this._columnHeaderTitle=t}get rowHeaderTitle(){return this._rowHeaderTitle}set rowHeaderTitle(t){this._rowHeaderTitle=t}getHeaderFieldKey(t,e){}getCellLocation(t,e){return this.isCornerHeader(t,e)?"cornerHeader":this.isColumnHeader(t,e)?"columnHeader":this.isRowHeader(t,e)?"rowHeader":"body"}isHeader(t,e){return t>=this.leftRowSeriesNumberColumnCount&&t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount||(e>=0&&e<this.columnHeaderLevelCount||(t>=this.colCount-this.rightHeaderColCount||e>=this.rowCount-this.bottomHeaderRowCount))}isCornerHeader(t,e){return t>=0&&t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount&&e>=0&&e<this.columnHeaderLevelCount}isColumnHeader(t,e){return t>=this.rowHeaderLevelCount&&e>=0&&e<this.columnHeaderLevelCount}isRowHeader(t,e){return t>=this.leftRowSeriesNumberColumnCount&&t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount&&e>=this.columnHeaderLevelCount}isFrozen(t,e){return this.isFrozenColumn(t)||this.isRightFrozenColumn(t)||this.isBottomFrozenRow(e)||this.isFrozenRow(e)||this.isSeriesNumberInBody(t,e)||this.isSeriesNumberInHeader(t,e)}isFrozenColumn(t,e){if(Z(e)){if(t>=0&&t<this.frozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.frozenColCount>0&&t>=0&&t<this.frozenColCount)return!0;return!1}isRightFrozenColumn(t,e){if(Z(e)){if(t>=this.colCount-this.rightFrozenColCount&&e>=this.frozenRowCount&&e<this.rowCount-this.bottomFrozenRowCount)return!0}else if(this.rightFrozenColCount>0&&t>=this.colCount-this.rightFrozenColCount)return!0;return!1}isFrozenRow(t,e){if(Z(e)){if(e>=0&&e<this.frozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.frozenRowCount>0&&e>=0&&e<this.frozenRowCount)return!0;return!1}isBottomFrozenRow(t,e){if(Z(e)){if(e>=this.rowCount-this.bottomFrozenRowCount&&t>=this.frozenColCount&&t<this.colCount-this.rightFrozenColCount)return!0}else if(e=t,this.bottomFrozenRowCount>0&&e>=this.rowCount-this.bottomFrozenRowCount)return!0;return!1}isLeftBottomCorner(t,e){return t>=0&&t<this.rowHeaderLevelCount&&e>=this.rowCount-this.bottomFrozenRowCount}isRightTopCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=0&&e<this.columnHeaderLevelCount}isRightBottomCorner(t,e){return t>=this.colCount-this.rightFrozenColCount&&e>=this.rowCount-this.bottomFrozenRowCount}getColumnHeaderRange(){return{start:{col:this.rowHeaderLevelCount,row:0},end:{col:this.colCount-1,row:this.columnHeaderLevelCount-1}}}getRowHeaderRange(){return{start:{col:0,row:this.columnHeaderLevelCount},end:{col:this.rowHeaderLevelCount-1,row:this.rowCount-1}}}getCornerHeaderRange(){return{start:{col:0,row:0},end:{col:this.rowHeaderLevelCount-1,row:this.columnHeaderLevelCount-1}}}getBodyRange(){return{start:{col:this.rowHeaderLevelCount,row:this.columnHeaderLevelCount},end:{col:this.colCount-1,row:this.rowCount-1}}}resetCellIds(){}get frozenColCount(){return this._table.internalProps.frozenColCount?this.colCount>this._table.internalProps.frozenColCount?this._table.internalProps.frozenColCount:this.colCount:0}get frozenRowCount(){return this._table.internalProps.frozenRowCount?this.rowCount>=this._table.internalProps.frozenRowCount?this._table.internalProps.frozenRowCount:this.rowCount:0}get headerLevelCount(){return this.columnHeaderLevelCount}resetColumnHeaderLevelCount(){if(this.showHeader&&this.showColumnHeader){if(this._table.isPivotChart()&&this.indicatorsAsCol&&!this.dataset?.colKeys?.length&&0===this.columnDimensionTree?.tree?.level&&!this.hasTwoIndicatorAxes)return void(this.columnHeaderLevelCount=0);let t=this.indicatorsAsCol&&this.hideIndicatorName&&this.colDimensionKeys[this.colDimensionKeys.length-1]===this.indicatorDimensionKey?this.columnDimensionTree.totalLevel-1:this.columnDimensionTree.totalLevel;return this.columnHeaderTitle&&(t+=1),this._table.isPivotChart()&&this.indicatorsAsCol&&!this.hasTwoIndicatorAxes&&zG(this.indicatorsDefine)&&(t-=1),0!==t||!this.dataset||this.dataset.customColTree||this.dataset.customRowTree?!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||"column"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(t=this.columnsDefine.length??0,!this.hideIndicatorName&&this.indicatorsAsCol&&t++):"row"===this.cornerSetting.titleOnDimension?t=1:0!==(this.dataset.records?.length??0)||"column"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(t=this.columnsDefine.length??0),void(this.columnHeaderLevelCount=t)}this.columnHeaderLevelCount=this.indicatorsAsCol?this.hideIndicatorName?0:1:0}resetRowHeaderLevelCount(){if(this.showHeader&&this.showRowHeader){if("tree"===this.rowHierarchyType){const t=this.extensionRows?.length??0;return this.rowHeaderTitle?void(this.rowHeaderLevelCount=2+t):void(this.rowHeaderLevelCount=1+t)}const t=this.rowDimensionTree.totalLevel;let e=t;return this.indicatorsAsCol||this.hideIndicatorName&&this.rowDimensionKeys[this.rowDimensionKeys.length-1]===this.indicatorDimensionKey&&(e=t-1),this.rowHeaderTitle&&(e+=1),0!==e||!this.dataset||this.dataset.customColTree||this.dataset.customRowTree?!this.dataset||0!==(this.dataset.records?.length??0)||this.dataset.customColTree||this.dataset.customRowTree||"row"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(e=this.rowsDefine.length,this.hideIndicatorName||this.indicatorsAsCol||e++):"column"===this.cornerSetting.titleOnDimension?e=1:0!==(this.dataset.records?.length??0)||"row"!==this.cornerSetting.titleOnDimension&&"all"!==this.cornerSetting.titleOnDimension||(e=this.rowsDefine.length??0),void(this.rowHeaderLevelCount=e)}this.rowHeaderLevelCount=this.indicatorsAsCol||this.hideIndicatorName?0:1}get columnHeaderLevelCount(){return this._columnHeaderLevelCount}set columnHeaderLevelCount(t){this._columnHeaderLevelCount=t}get rowHeaderLevelCount(){return this._rowHeaderLevelCount}set rowHeaderLevelCount(t){this._rowHeaderLevelCount=t}get colCount(){return(this.columnDimensionTree.totalLevel>0||this._table.isPivotChart()||this.dataset.records?.length>0||this.dataset.records&&!Array.isArray(this.dataset.records)?this.columnDimensionTree.tree.size:0)+this.rowHeaderLevelCount+this.rightHeaderColCount+this.leftRowSeriesNumberColumnCount}get rowCount(){return((this._table.records||this.dataset.records)&&(!Array.isArray(this._table.records)||this._table.records.length>0)&&this._indicators?.length>0&&!this._rowHeaderCellIds?.length?1:this._rowHeaderCellIds?.length??0)+this.columnHeaderLevelCount+this.bottomHeaderRowCount}get bodyRowSpanCount(){return this.rowDimensionTree.tree.size}get bottomFrozenRowCount(){if(!this._table.isPivotChart())return this._table.internalProps.bottomFrozenRowCount?this.rowCount-this.headerLevelCount>=this._table.internalProps.bottomFrozenRowCount?this._table.internalProps.bottomFrozenRowCount:this.rowCount-this.headerLevelCount:0;if(this.indicatorKeys.length>=1&&zG(this.indicatorsDefine)){const t=this._table.pivotChartAxes.find((t=>"bottom"===t.orient));return!1===t?.visible?0:(this.indicatorsAsCol,1)}return 0}get rightFrozenColCount(){if(!this._table.isPivotChart())return this._table.internalProps.rightFrozenColCount?this.colCount-this.rowHeaderLevelCount>=this._table.internalProps.rightFrozenColCount?this._table.internalProps.rightFrozenColCount:this.colCount-this.rowHeaderLevelCount:0;const t=this._table.pivotChartAxes.find((t=>"right"===t.orient));return!1===t?.visible||this.indicatorsAsCol?0:this.hasTwoIndicatorAxes?1:0}get bodyRowCount(){return this.rowCount-this.bottomFrozenRowCount-this.headerLevelCount}get bodyColCount(){return this.colCount-this.rightFrozenColCount-this.rowHeaderLevelCount}get headerObjects(){return this._headerObjects}get columnObjects(){return this._indicators}getCellId(t,e){if(e>=0&&t>=0){if(this.isSeriesNumber(t,e))return"";if(this.isCornerHeader(t,e))return this._cornerHeaderCellIds[e]?.[t-this.leftRowSeriesNumberColumnCount];if(this.isColumnHeader(t,e))return this._columnHeaderCellIds[e]?.[t-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount];if(this.isRowHeader(t,e))return this._rowHeaderCellIds[e-this.columnHeaderLevelCount]?.[t-this.leftRowSeriesNumberColumnCount];if(this.isRightFrozenColumn(t,e))return this._rowHeaderCellIds[e-this.columnHeaderLevelCount]?.[this.rowHeaderLevelCount-1];if(this.isBottomFrozenRow(t,e))return this._columnHeaderCellIds[this.columnHeaderLevelCount-1]?.[t-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount]}}getHeader(t,e){if(this.isSeriesNumberInHeader(t,e))return this.getSeriesNumberHeader(t,e);const i=this.getCellId(t,e);return this._headerObjectMap[i]??{id:void 0,field:"",headerType:"text",define:void 0}}getHeaderField(t,e){const i=this.getCellId(t,e);return this._headerObjectMap[i]?.field||this.getBody(t,e)?.field}getHeaderCellAdressById(t){for(let e=0;e<this._columnHeaderCellIds.length;e++){const i=this._columnHeaderCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return{col:r+this._table.frozenColCount,row:e}}for(let e=0;e<this._rowHeaderCellIds.length;e++){const i=this._rowHeaderCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return{col:r,row:e+this._table.frozenRowCount}}for(let e=0;e<this._cornerHeaderCellIds.length;e++){const i=this._cornerHeaderCellIds[e];for(let r=0;r<i.length;r++)if(i[r]===t)return{col:r,row:e}}}getHeaderCellAddressByField(t){const e=this.headerObjects.find((e=>e&&e.field===t));return this.getHeaderCellAdressById(e.id)}getBody(t,e){if(this.isSeriesNumber(t,e))return this.getSeriesNumberBody(t,e);const i=this.getCellHeaderPaths(t,e);if(this.indicatorsAsCol){const t=i.colHeaderPaths?.find((t=>t.indicatorKey))?.indicatorKey;return Z(t)?this._indicators?.find((e=>e.indicatorKey===t))??this._indicators[0]??{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}:{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}}const r=i.rowHeaderPaths?.find((t=>t.indicatorKey))?.indicatorKey;return Z(r)?this._indicators?.find((t=>t.indicatorKey===r))??this._indicators[0]??{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}:{id:"",field:void 0,indicatorKey:void 0,cellType:"text",define:void 0}}getCellRange(t,e){const i={start:{col:t,row:e},end:{col:t,row:e}};if(!this.isHeader(t,e)||-1===t||-1===e)return i;if(this.isRightFrozenColumn(t,e)||this.isBottomFrozenRow(t,e))return i;if(this._table.isPivotChart()){if(this.isLeftBottomCorner(t,e))return{start:{col:0,row:this.rowCount-this.bottomFrozenRowCount},end:{col:this.frozenColCount-1,row:this.rowCount-1}};if(this.isRightTopCorner(t,e))return{start:{col:this.colCount-this.rightFrozenColCount,row:0},end:{col:this.colCount-1,row:this.frozenRowCount-1}};if(this.isRightBottomCorner(t,e))return{start:{col:this.colCount-this.rightFrozenColCount,row:this.rowCount-this.bottomFrozenRowCount},end:{col:this.colCount-1,row:this.rowCount-1}}}for(let i=0;i<this._largeCellRangeCache.length;i++){const r=this._largeCellRangeCache[i];if(t>=r.start.col&&t<=r.end.col&&e>=r.start.row&&e<=r.end.row)return r}if(this.isHeader(t,e)&&-1!==t&&-1!==e){const r=this.getCellId(t,e);for(let n=t-1;n>=0&&r===this.getCellId(n,e);n--)i.start.col=n;for(let n=t+1;n<(this.colCount??0)&&r===this.getCellId(n,e);n++)i.end.col=n;for(let n=e-1;n>=0&&r===this.getCellId(t,n);n--)i.start.row=n;for(let n=e+1;n<(this.rowCount??0)&&!(r!==this.getCellId(t,n)||this.isSeriesNumberInHeader(t,e)&&n>=this.columnHeaderLevelCount);n++)i.end.row=n}return(i.end.col-i.start.col>100||i.end.row-i.start.row>100)&&this._largeCellRangeCache.push(i),i}isCellRangeEqual(t,e,i,r){const n=this.getCellRange(t,e),o=this.getCellRange(i,r);return n.start.col===o.start.col&&n.end.col===o.end.col&&n.start.row===o.start.row&&n.end.row===o.end.row}getBodyIndexByRow(t){return t<this.columnHeaderLevelCount||t>=this.rowCount-this.bottomHeaderRowCount?-1:t-this.columnHeaderLevelCount}get bottomHeaderRowCount(){return this._table.isPivotChart()?this.bottomFrozenRowCount:0}get rightHeaderColCount(){return this._table.isPivotChart()?this.rightFrozenColCount:0}getBodyIndexByCol(t){return t<this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount||t>=this.colCount-this.rightHeaderColCount?-1:t-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount}getRecordStartRowByRecordIndex(t){return this.columnHeaderLevelCount+t}getRecordShowIndexByCell(t,e){}getCellHeaderPathsWithTreeNode(t,e){if(t===this._lastCellCol&&e===this._lastCellRow)return this._lastCellHeaderPath;for(let i=0;i<this._largeCellRangeCache.length;i++){const r=this._largeCellRangeCache[i];if(t>=r.start.col&&t<=r.end.col&&e>=r.start.row&&e<=r.end.row)break}const i=this.getBodyIndexByCol(t),r=this.getBodyIndexByRow(e)+this.currentPageStartIndex;let n=[],o=[];if(e>=0&&i>=0&&(n=this.columnDimensionTree.getTreePath(i,this.showHeader&&this.showColumnHeader?e-(this.columnHeaderTitle?1:0):this.columnDimensionTree.totalLevel)),t>=0&&r>=0)if("tree"===this.rowHierarchyType){const t=this._rowHeaderCellFullPathIds[r];let e=this.rowDimensionTree,i=0;for(;e;){const r=[];let n=t[i];for(r.push(n);;){const t=this._headerObjectMap[n];if(!t?.parentCellId)break;r.unshift(t.parentCellId),n=t.parentCellId}const s=e.getTreePathByCellIds(r);o=o.concat(s),e=this._rowHeaderExtensionTree[t[i]],i++}}else o=this.rowDimensionTree.getTreePath(r,this.showHeader&&this.showRowHeader?t-(this.rowHeaderTitle?1:0)-this.leftRowSeriesNumberColumnCount:this.rowDimensionTree.totalLevel);const s={colHeaderPaths:n,rowHeaderPaths:o,cellLocation:this.getCellLocation(t,e)};return this._lastCellHeaderPath=s,this._lastCellCol=t,this._lastCellRow=e,s}getCellHeaderPaths(t,e){const i=this.getCellHeaderPathsWithTreeNode(t,e),r={colHeaderPaths:[],rowHeaderPaths:[],cellLocation:i.cellLocation};return i.colHeaderPaths?.forEach((t=>{const e={};e.dimensionKey=t.dimensionKey,e.indicatorKey=t.indicatorKey,e.value=t.value??this.getIndicatorInfoByIndicatorKey(t.indicatorKey)?.title??"",e.virtual=t.virtual,r.colHeaderPaths.push(e)})),i.rowHeaderPaths?.forEach((t=>{if("axis"!==t.dimensionKey){const e={};e.dimensionKey=t.dimensionKey,e.indicatorKey=t.indicatorKey,e.value=t.value??this.getIndicatorInfoByIndicatorKey(t.indicatorKey)?.title??"",e.virtual=t.virtual,r.rowHeaderPaths.push(e)}})),r}getIndicatorInfoByIndicatorKey(t){const e=this.indicatorsDefine?.find((e=>"string"!=typeof e&&(!!t&&e.indicatorKey===t)));return e}findFullCellIds(t){const e=[];for(let i=0;i<t.length;i++){let r=t[i];for(e.push(r);;){const t=this._headerObjectMap[r];if(!t?.parentCellId)break;e.unshift(t.parentCellId),r=t.parentCellId}}return e}getHeaderDimension(t,e){if(this.isHeader(t,e)){const i=this.getHeader(t,e);return this.rowsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===i.field))??this.columnsDefine?.find((t=>"string"!=typeof t&&t.dimensionKey===i.field))}}isColumnIndicatorHeader(t,e){return"column"===this._indicatorShowType&&e===this.columnHeaderLevelCount-1&&t>=this.rowHeaderLevelCount}isRowIndicatorHeader(t,e){return"row"===this._indicatorShowType&&t===this.rowHeaderLevelCount-1&&e>=this.columnHeaderLevelCount}isIndicatorHeader(t,e){return this.isColumnIndicatorHeader(t,e)||this.isRowIndicatorHeader(t,e)}toggleHierarchyState(t,e){const i=this._rowHeaderCellFullPathIds_FULL.slice(0),r=i.map(((e,i)=>({col:t,row:i+this.columnHeaderLevelCount}))),n=this.getHeader(t,e);if(n.define.hierarchyState=n.define.hierarchyState===yE.collapse?yE.expand:yE.collapse,this.rowDimensionTree.reset(this.rowDimensionTree.tree.children,!0),this._rowHeaderCellFullPathIds_FULL=[],this.rowDimensionKeys=this.rowDimensionTree.dimensionKeys.valueArr(),this.fullRowDimensionKeys=[],this.fullRowDimensionKeys=this.fullRowDimensionKeys.concat(this.rowDimensionKeys),this._addHeadersForTreeMode(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowDimensionTree.totalLevel,!0,this.rowsDefine,this.rowHeaderObjs),this.rowHeaderTitle){const t=++this.sharedVar.seqId,e=Array(this.rowCount-this.columnHeaderLevelCount).fill(t);this._rowHeaderCellFullPathIds_FULL.unshift(e);const i={id:t,title:"string"==typeof this.rowHeaderTitle.title?this.rowHeaderTitle.title:this.rowsDefine.reduce(((t,e)=>"string"==typeof e?t:t+(t?`/${e.title}`:`${e.title}`)),""),field:void 0,headerType:this.rowHeaderTitle?.headerType??"text",style:this.rowHeaderTitle?.headerStyle,define:{field:"",headerType:"text",cellType:"text",disableHeaderHover:!!this.rowHeaderTitle?.disableHeaderHover,disableHeaderSelect:!!this.rowHeaderTitle?.disableHeaderSelect}};this.rowHeaderObjs.push(i),this._headerObjects[t]=i}this._rowHeaderCellFullPathIds_FULL=rL(this._rowHeaderCellFullPathIds_FULL),"tree"===this.rowHierarchyType&&this.extensionRows?.length>=1&&this.generateExtensionRowTree(),this.colIndex=0,this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0;const o=function(t,e,i,r,n,o){const s=o.columnHeaderLevelCount,a=[],l=[];for(let t=0;t<i.length;t++)r.includes(i[t])||l.push(n[t]);for(let e=0;e<r.length;e++)if(!i.includes(r[e])){const i={col:t,row:s+e};a.push(i)}let h=o.getParentCellId(t,e),c=o.getRowHeaderCellAddressByCellId(h);const d=[];for(c&&d.push(c);h;)h=o.getParentCellId(c.col,c.row),h&&(c=o.getRowHeaderCellAddressByCellId(h),d.push(c));return{addCellPositions:a,removeCellPositions:l,updateCellPositions:d}}(t,e,i.map((e=>e[t-this.leftRowSeriesNumberColumnCount])),this._rowHeaderCellFullPathIds_FULL.map((e=>e[t-this.leftRowSeriesNumberColumnCount])),r,this);return this.generateCellIdsConsiderHideHeader(),this.setPagination(this.pagination),o}isHeaderForColWidth(t,e){return this.isHeader(t,e)}getHeaderForColWidth(t,e){return this.getHeader(t,e)}getPivotCellAdress(t){if(!Array.isArray(t))return;let e,i,r=this.rowTree,n=this.columnTree;for(let o=0;o<t.length;o++){const s=t[o];if((s.isPivotCorner||!s.value)&&o===t.length-1){if("row"===this?.cornerSetting?.titleOnDimension){let t=0;return"grid"===this.rowHierarchyType&&(t=this.rowDimensionKeys.indexOf(s.dimensionKey)),-1===t?void 0:{col:(this.rowHeaderTitle?t+1:t)+this.leftRowSeriesNumberColumnCount,row:0}}const t=this.colDimensionKeys.indexOf(s.dimensionKey);return-1===t?void 0:{col:0+this.leftRowSeriesNumberColumnCount,row:this.columnHeaderTitle?t+1:t}}let a=!1;for(let t=0;t<n.length;t++){const e=n[t];if((Z(s.dimensionKey)&&e.dimensionKey===s.dimensionKey||Z(s.indicatorKey)&&e.indicatorKey===s.indicatorKey)&&e.value===s.value){n=e.children,i=e,a=!0;break}}if(!a)for(let t=0;t<r.length;t++){const i=r[t];if((Z(s.dimensionKey)&&i.dimensionKey===s.dimensionKey||Z(s.indicatorKey)&&i.indicatorKey===s.indicatorKey)&&i.value===s.value){r=i.children,e=i;break}}}let o=0,s=0;if(e){s=this.columnHeaderLevelCount;const{startInTotal:t,level:i}=e;return s+=t,o="grid"===this.rowHierarchyType?(this.rowHeaderTitle?i+1:i)+this.leftRowSeriesNumberColumnCount:0+this.leftRowSeriesNumberColumnCount,{col:o,row:s}}if(i){o=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=i;return o+=t,s=this.columnHeaderTitle?e+1:e,{col:o,row:s}}}getPivotDimensionInfo(t,e){const{colHeaderPaths:i,rowHeaderPaths:r}=this.getCellHeaderPaths(t,e),n=[];return i.length?i.forEach(((t,e)=>{n.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):r.length?r.forEach(((t,e)=>{n.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):this.isCornerHeader(t,e)&&("row"===this?.cornerSetting?.titleOnDimension?n.push({dimensionKey:this.rowDimensionKeys[(this.rowHeaderTitle?t-1:t)-this.leftRowSeriesNumberColumnCount],isPivotCorner:!0}):n.push({dimensionKey:this.colDimensionKeys[this.columnHeaderTitle?e-1:e],isPivotCorner:!0})),n}getIndicatorKey(t,e){return this.getBody(t,e)?.indicatorKey}getParentCellId(t,e){if(0!==e)return this.isColumnHeader(t,e)?this.getCellId(t,e-1):this.isRowHeader(t,e)?this.getCellId(t-1,e):void 0}getRowHeaderCellAddressByCellId(t){let e,i;if(this._rowHeaderCellIds.find(((r,n)=>!!r.find(((i,r)=>i===t&&(e=r,!0)))&&(i=n,!0))),Z(e)&&Z(i))return{col:e,row:i+this.columnHeaderLevelCount}}canMoveHeaderPosition(t,e){if(this.isSeriesNumberInHeader(e.col,e.row)||this.isSeriesNumberInHeader(t.col,t.row))return!1;if(t.col<0||t.row<0||e.col<0||e.row<0)return!1;this.isSeriesNumberInBody(e.col,e.row)&&this.isSeriesNumberInBody(t.col,t.row)&&(t.col=t.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1,e.col=e.col+this.leftRowSeriesNumberColumnCount+this.rowHeaderLevelCount-1);const i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){return this.getParentCellId(t.col,i.start.row)===this.getParentCellId(e.col,i.start.row)}if(this.isRowHeader(t.col,t.row)){if("tree"!==this.rowHierarchyType){return this.getParentCellId(i.start.col,t.row)===this.getParentCellId(i.start.col,e.row)}{const i=vt(this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths),r=vt(this.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths);if(i.pop(),r.pop(),i.length<=r.length){if(i.length===r.length)return!i.find(((t,e)=>t.dimensionKey!==r[e].dimensionKey||t.value!==r[e].value));if(i.length>0)for(let t=0;t<i.length;t++)if(i[t].startInTotal!==r[t].startInTotal)return!1;return!0}}}return!1}moveHeaderPosition(t,e){if(this.canMoveHeaderPosition(t,e)&&!this.isCellRangeEqual(t.col,t.row,e.col,e.row)){const i=this.getCellRange(t.col,t.row);if(this.isColumnHeader(t.col,t.row)){const r=i.end.col-i.start.col+1;let n;const o=this.getCellRange(e.col,i.start.row);if(n=e.col>=t.col?o.end.col-r+1:o.start.col,n===i.start.col)return null;for(let t=0;t<this._columnHeaderCellFullPathIds.length;t++){const e=this._columnHeaderCellFullPathIds[t].splice(i.start.col-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount,r);e.unshift(n-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columnHeaderCellFullPathIds[t],e)}const s=this._columnWidths.splice(i.start.col-this.leftRowSeriesNumberColumnCount,r);return s.unshift(n-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columnWidths,s),this.columnDimensionTree.movePosition(this.getCellHeaderPathsWithTreeNode(t.col,t.row).colHeaderPaths.length-1,i.start.col-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount,o.start.col-this.rowHeaderLevelCount-this.leftRowSeriesNumberColumnCount),this.columnDimensionTree.reset(this.columnDimensionTree.tree.children,!0),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0,{sourceIndex:i.start.col,targetIndex:n,sourceSize:r,targetSize:o.end.col-o.start.col+1,moveType:"column"}}if(this.isRowHeader(t.col,t.row)){let r;const n=this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,o=this.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths,s=n[n.length-1],a=o[n.length-1],l=s.size;if(r=e.row>=t.row?a.startInTotal+a.size-l:a.startInTotal,r===i.start.row-this.columnHeaderLevelCount)return null;const h=this._rowHeaderCellIds.splice(i.start.row-this.columnHeaderLevelCount,l);h.unshift(r-this.currentPageStartIndex,0),Array.prototype.splice.apply(this._rowHeaderCellIds,h);const c=this._rowHeaderCellFullPathIds.splice(i.start.row-this.columnHeaderLevelCount,l);c.unshift(r-this.currentPageStartIndex,0),Array.prototype.splice.apply(this._rowHeaderCellFullPathIds,c);const d=this._rowHeaderCellIds_FULL.splice(i.start.row-this.columnHeaderLevelCount+this.currentPageStartIndex,l);d.unshift(r,0),Array.prototype.splice.apply(this._rowHeaderCellIds_FULL,d);const u=this._rowHeaderCellFullPathIds_FULL.splice(i.start.row-this.columnHeaderLevelCount+this.currentPageStartIndex,l);return u.unshift(r,0),Array.prototype.splice.apply(this._rowHeaderCellFullPathIds_FULL,u),this.rowDimensionTree.movePosition(n.length-1,i.start.row-this.columnHeaderLevelCount,r+(e.row>t.row?s.size-1:0)),this.rowDimensionTree.reset(this.rowDimensionTree.tree.children,!0),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0,{sourceIndex:i.start.row,targetIndex:r+this.columnHeaderLevelCount,sourceSize:l,targetSize:a.size,moveType:"row"}}}return null}getCellAdressByHeaderPath(t){let e,i,r=!1,n=!1;if(Array.isArray(t)){if(t.length>this.rowDimensionKeys.length+this.colDimensionKeys.length)return;e=t.filter((t=>this.colDimensionKeys.indexOf(t.dimensionKey)>=0||this.colDimensionKeys.indexOf(this.indicatorDimensionKey)>=0&&t.indicatorKey)),i=t.filter((t=>this.rowDimensionKeys.indexOf(t.dimensionKey)>=0||this.rowDimensionKeys.indexOf(this.indicatorDimensionKey)>=0&&t.indicatorKey))}else e=t.colHeaderPaths,i=t.rowHeaderPaths,"body"===t?.cellLocation&&this._table.isPivotTable()&&(n=!0);if(!Array.isArray(e)&&!Array.isArray(i))return;if(e?.sort(((t,e)=>this.colDimensionKeys.indexOf(t.dimensionKey??this.indicatorDimensionKey)-this.colDimensionKeys.indexOf(e.dimensionKey??this.indicatorDimensionKey))),i?.sort(((t,e)=>this.fullRowDimensionKeys.indexOf(t.dimensionKey??this.indicatorDimensionKey)-this.fullRowDimensionKeys.indexOf(e.dimensionKey??this.indicatorDimensionKey))),e?.forEach((t=>{t.isPivotCorner&&(r=!0)})),i?.forEach((t=>{t.isPivotCorner&&(r=!0)})),r)if("row"===this.cornerSetting.titleOnDimension){for(let t=0;t<this.rowDimensionKeys.length;t++)if(i[0].dimensionKey===this.rowDimensionKeys[t])return{col:t+this.leftRowSeriesNumberColumnCount,row:0}}else for(let t=0;t<this.colDimensionKeys.length;t++)if(e[0].dimensionKey===this.colDimensionKeys[t])return{col:0,row:t};let o,s,a,l,h=!1;e?.length>=1&&i?.length>=1&&(h=!0);let c,d,u=this.rowTree,g=this.columnTree;if(e)for(let t=0;t<e.length;t++){const i=e[t];for(let t=0;t<g.length;t++){const e=g[t];if(!Z(i.indicatorKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Z(i.indicatorKey)&&e.indicatorKey===i.indicatorKey){g=e.children,h&&!g?d=e:h||(d=e);break}}}if(i?.length>=1)if("tree"===this.rowHierarchyType){const t=i[i.length-1],e=this.headerObjects.filter((e=>(e?.field===t.dimensionKey||e?.field===t.indicatorKey)&&e?.title===t.value)).map((t=>t.id)),r=this._rowHeaderCellIds.filter((t=>e.indexOf(t[t.length-1])>=0)).find((t=>{const e=this.findFullCellIds(t);return e.length===i.length&&e.every((t=>{const e=this._headerObjectMap[t];return i.find((t=>t.dimensionKey===e.field&&t.value===e.title))}))}));s=this._rowHeaderCellIds.indexOf(r)+this.columnHeaderLevelCount}else for(let t=0;t<i.length;t++){const e=i[t];for(let t=0;t<u.length;t++){const i=u[t];if(!Z(e.indicatorKey)&&i.dimensionKey===e.dimensionKey&&i.value===e.value||Z(e.indicatorKey)&&i.indicatorKey===e.indicatorKey&&(!e.value||i.value===e.value)){u=i.children,(!h||u&&!u.some((t=>"axis"===t.dimensionKey)))&&h||(c=i);break}}}if(n||!h||(c||Z(s))&&d){if(c||n){s=this.columnHeaderLevelCount;const{startInTotal:t,level:e}=c??$G;s+=t??0,a="grid"===this.rowHierarchyType?(this.rowHeaderTitle?e+1:e)+this.leftRowSeriesNumberColumnCount:0}if(d||n){o=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=d??$G;o+=t??0,l=this.columnHeaderTitle?e+1:e}return Z(o)||Z(s)?{col:o??a,row:s??l}:void 0}}setChartInstance(t,e,i){const r=this.getCellHeaderPaths(t,e);let n;if(this.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=this._indicators?.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=this._indicators?.find((e=>e.indicatorKey===t))}"function"!=typeof n?.chartSpec&&n&&(n.chartInstance=i)}getChartInstance(t,e){const i=this.getCellHeaderPaths(t,e);let r;if(this.indicatorsAsCol){const t=i.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;r=this._indicators?.find((e=>e.indicatorKey===t))}else{const t=i.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;r=this._indicators?.find((e=>e.indicatorKey===t))}return r?.chartInstance}checkHasChart(){return GG(this)}getDimension(t,e){return"column"===e?this.columnsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t)):"row"===e?this.rowsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t)):void 0}getAxisConfigInPivotChart(t,e){if((this.isFrozenColumn(t,e)||this.isRightFrozenColumn(t,e))&&DG(t,e,"row",this)||(this.isFrozenRow(t,e)||this.isBottomFrozenRow(t,e))&&DG(t,e,"col",this))return DF(t,e,this)}isEmpty(t,e){return!!this._table.isPivotChart()&&(!!this.isLeftBottomCorner(t,e)||(!!this.isRightBottomCorner(t,e)||!!this.isRightTopCorner(t,e)))}isAxisCell(t,e){if(!this._table.isPivotChart())return!1;if(this.indicatorKeys.length>=1&&zG(this.indicatorsDefine)){if(this.isBottomFrozenRow(t,e)&&DG(t,e,"col",this)||this.isRightFrozenColumn(t,e)&&DG(t,e,"row",this))return!0;if(this.isRowHeader(t,e)&&t===this.rowHeaderLevelCount-1&&DG(t,e,"row",this))return!0;if(this.hasTwoIndicatorAxes&&this.indicatorsAsCol&&e===this.columnHeaderLevelCount-1&&DG(t,e,"col",this))return!0}return!1}getChartAxes(t,e){if(function(t,e,i){let r=!0;const n=i.getRawChartSpec(t,e);return n&&"pie"!==n.type&&"radar"!==n.type&&"gauge"!==n.type&&"wordCloud"!==n.type&&"funnel"!==n.type&&"rose"!==n.type||(r=!1),r}(t,e,this)||this.isAxisCell(t,e))return function(t,e,i){const r=[];if(i.indicatorsAsCol){const n=i.getIndicatorKeyInChartSpec(t,e),o=i.getColKeysPath(t,e);n.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=NG(t,e,a,0===a?"bottom":"top",n,o,i);if(h){const r=NG(t,e,n.length-1-a,0===a?"top":"bottom",n,o,i);if(r){const{range:t}=r,e=zF(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}at(c?.min)&&(l.min=c.min),at(c?.max)&&(l.max=c.max),r.push(_t({range:l},c,{type:c?.type||"linear",orient:0===a?"bottom":"top",label:{visible:!1},title:{visible:!1},domainLine:{visible:!1},seriesIndex:a,sync:{axisId:FG}}))}));let s=i.getDimensionKeyInChartSpec(i.rowHeaderLevelCount,e);nt(s)&&(s=s[0]);const a=(i.dataset.cacheCollectedValues[s]||i.dataset.collectedValues[s]||[])[i.getRowKeysPath(t,e)??""],{axisOption:l,isPercent:h,chartType:c}=WF(t,e,"left",i);r.push(_t({domain:"scatter"!==c||Array.isArray(a)?Array.from(a??[]):void 0,range:"scatter"!==c||Array.isArray(a)?void 0:a},l,{type:"scatter"!==c||Array.isArray(a)?"band":l?.type??"linear",orient:"left",label:{visible:!1},domainLine:{visible:!1},tick:{visible:!1},subTick:{visible:!1},title:{visible:!1}}))}else{const n=i.getIndicatorKeyInChartSpec(t,e),o=i.getRowKeysPath(t,e);n.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=NG(t,e,a,0===a?"left":"right",n,o,i);if(h){const r=NG(t,e,n.length-1-a,0===a?"right":"left",n,o,i);if(r){const{range:t}=r,e=zF(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}at(c?.min)&&(l.min=c.min),at(c?.max)&&(l.max=c.max),r.push(_t({range:l},c,{type:c?.type||"linear",orient:0===a?"left":"right",label:{visible:!1},title:{visible:!1},domainLine:{visible:!1},seriesIndex:a,sync:{axisId:FG}}))}));let s=i.getDimensionKeyInChartSpec(t,i.columnHeaderLevelCount);nt(s)&&(s=s[0]);const a=i.dataset.cacheCollectedValues[s]||i.dataset.collectedValues[s]||[],l=i.getColKeysPath(t,e),h=a?.[l??""]??[],{axisOption:c,isPercent:d,chartType:u}=WF(t,e,"bottom",i);r.push(_t({domain:"scatter"!==u||Array.isArray(h)?Array.from(h??[]):void 0,range:"scatter"!==u||Array.isArray(h)?void 0:h},c,{type:"scatter"!==u||Array.isArray(h)?"band":c?.type??"linear",orient:"bottom",visible:!0,label:{visible:!1},domainLine:{visible:!1},tick:{visible:!1},subTick:{visible:!1},title:{visible:!1}}))}return r}(t,e,this)}getRawChartSpec(t,e){return function(t,e,i){const r=i.getCellHeaderPaths(t,e);let n;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}const o=n?.chartSpec;if("function"==typeof o)return o({col:t,row:e,dataValue:i._table.getCellOriginValue(t,e)||"",value:i._table.getCellValue(t,e)||"",rect:i._table.getCellRangeRelativeRect(i._table.getCellRange(t,e)),table:i._table});return o}(t,e,this)}getChartSpec(t,e){return function(t,e,i){let r=i.getRawChartSpec(t,e);return r?i._table.isPivotChart()?(r=qH(r),r.sortDataByAxis=!0,nt(r.series)&&r.series.forEach((t=>{t.sortDataByAxis=!0})),"gauge"!==r.type&&"rose"!==r.type&&"radar"!==r.type&&(r.axes=i.getChartAxes(t,e)),r.padding=0,r.dataZoom=[],r):r:null}(t,e,this)}isShareChartSpec(t,e){return function(t,e,i){const r=i.getCellHeaderPaths(t,e);let n;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;n=i.columnObjects.find((e=>e.indicatorKey===t))}const o=n?.chartSpec;return"function"!=typeof o}(t,e,this)}getChartDataId(t,e){return WG(t,e,this)}setPagination(t){if(this.clearCellRangeMap(),this._table.internalProps.useOneRowHeightFillAll=!1,this.pagination=t,"grid"===this.rowHierarchyType&&Z(this.pagination?.perPageCount)&&Z(this.pagination?.currentPage)){!1===this.indicatorsAsCol&&(this.pagination.perPageCount=Math.ceil(this.pagination.perPageCount/this.indicatorKeys.length)*this.indicatorKeys.length);const{perPageCount:t,currentPage:e}=this.pagination;this.currentPageStartIndex=t*(e||0),this.currentPageEndIndex=this.currentPageStartIndex+t,this._rowHeaderCellIds=this._rowHeaderCellIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex),this._rowHeaderCellFullPathIds=this._rowHeaderCellFullPathIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex)}else this.currentPageStartIndex=0,this.currentPageEndIndex=this._rowHeaderCellIds_FULL.length,this._rowHeaderCellIds=this._rowHeaderCellIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex),this._rowHeaderCellFullPathIds=this._rowHeaderCellFullPathIds_FULL?.slice(this.currentPageStartIndex,this.currentPageEndIndex);this.pagination&&(this.pagination.totalCount=this._rowHeaderCellIds_FULL?.length)}release(){const t=this._table._getActiveChartInstance();t?.release(),this._indicators?.forEach((t=>{t.chartInstance?.release()}))}getHeadNode(t,e){let i;const r=this.getCellHeaderPaths(t,e);return r.rowHeaderPaths&&(r.rowHeaderPaths?.length??0)>0?i=r.rowHeaderPaths?.slice(0,r.rowHeaderPaths.length):r.colHeaderPaths&&r.colHeaderPaths.length>0&&(i=r.colHeaderPaths.slice(0,r.colHeaderPaths.length)),this.getHeadNodeByRowOrColDimensions(i,t,e)}getHeadNodeByRowOrColDimensions(t,e,i){if(!Array.isArray(t))return;let r,n,o=this.rowTree,s=this.columnTree;if(Z(i)&&Z(e)&&"tree"===this.rowHierarchyType&&this.extensionRows&&e>=1+this.leftRowSeriesNumberColumnCount){const t=this.getCellId(e-1,i);o=this._rowHeaderExtensionTree[t].tree.children}for(let e=0;e<t.length;e++){const i=t[e];if((i.isPivotCorner||!i.value)&&e===t.length-1)return;let a=!1;for(let t=0;t<s.length;t++){const e=s[t];if(Z(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Z(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Z(i.value)||!Z(e.value))){s=e.children,n=e,a=!0;break}}if(!a)for(let t=0;t<o?.length;t++){const e=o[t];if(Z(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Z(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Z(i.value)||!Z(e.value))){o=e.children,r=e;break}}}return r||(n||void 0)}clearCellRangeMap(){this._largeCellRangeCache.length=0,this._CellHeaderPathMap=new Map}getDimensionKeyInChartSpec(t,e){let i;if(!1===this.indicatorsAsCol)for(let t=0;t<this.indicatorsDefine.length;t++){const e=this.indicatorsDefine[t].chartSpec;if(e&&(i=e.xField??e?.series?.[0]?.xField,i))return i}else for(let t=0;t<this.indicatorsDefine.length;t++){const e=this.indicatorsDefine[t].chartSpec;if(e&&(i=e.yField??e?.series?.[0]?.yField,i))return i}return null}_generateChartState(){return{vtable_selected:{filter:t=>{if(this._table._selectedDataItemsInChart.length>=1){return!!this._table._selectedDataItemsInChart.find((e=>{for(const i in e)if(e[i]!==t[i])return!1;return!0}))}if(this._table._selectedDimensionInChart?.length){return!!this._table._selectedDimensionInChart.every((e=>t[e.key]===e.value))}return!1}},vtable_selected_reverse:{filter:t=>{if(this._table._selectedDataItemsInChart.length>=1){return!this._table._selectedDataItemsInChart.find((e=>{for(const i in e)if(e[i]!==t[i])return!1;return!0}))}if(this._table._selectedDimensionInChart?.length){return!this._table._selectedDimensionInChart.every((e=>t[e.key]===e.value))}return!1}}}}updateDataStateToChartInstance(t){t||(t=this._table._getActiveChartInstance());const e=this._generateChartState();this._indicators.forEach((t=>{t.chartInstance.updateState(e)})),t?.updateState(e)}updateDataStateToActiveChartInstance(t){t||(t=this._table._getActiveChartInstance());const e=this._generateChartState();t?.updateState(e)}getIndicatorKeyInChartSpec(t,e){const i=this.getRawChartSpec(t,e),r=[];if(i){if(i.series||i.xField||i.yField)return!1===this.indicatorsAsCol?i.series?i.series.forEach((t=>{const e=t.yField;r.push(e)})):r.push(i.yField):i.series?i.series.forEach((t=>{const e=t.xField;r.push(e)})):r.push(i.xField),r;if(i.valueField&&r.push(i.valueField),r.length>=1)return r}return null}getOptimunHeightForChart(t){const e=this.getCellHeaderPaths(this.rowHeaderLevelCount,t).rowHeaderPaths;let i,r;for(const t in this.dataset.collectValuesBy)if("yField"===this.dataset.collectValuesBy[t].type&&!this.dataset.collectValuesBy[t].range){i=this.dataset.collectedValues[t]?.[e.map((t=>t.value)).join(this.dataset.stringJoinChar)];break}if(this._chartItemBandSize)r=XG(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const n=II(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+n[0]+n[2]}getOptimunWidthForChart(t){const e=this.getCellHeaderPaths(t,this.columnHeaderLevelCount).colHeaderPaths;let i,r;for(const t in this.dataset.collectValuesBy)if("xField"===this.dataset.collectValuesBy[t].type&&!this.dataset.collectValuesBy[t].range){i=this.dataset.collectedValues[t]?.[e.map((t=>t.value)).join(this.dataset.stringJoinChar)];break}if(this._chartItemBandSize)r=XG(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const n=II(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+n[1]+n[3]}get leftAxesCount(){if(!this._table.isPivotChart())return 0;const t=this._table.pivotChartAxes.find((t=>"left"===t.orient));return!1===t?.visible?0:(this.indicatorsAsCol,1)}get topAxesCount(){if(!this._table.isPivotChart())return 0;const t=this._table.pivotChartAxes.find((t=>"top"===t.orient));return!1===t?.visible?0:this.indicatorsAsCol&&this.hasTwoIndicatorAxes?1:0}get rightAxesCount(){return this.rightFrozenColCount}get bottomAxesCount(){return this.bottomFrozenRowCount}getColKeysPath(t,e){const i=this.getCellHeaderPaths(t,e),r=[];return i.colHeaderPaths.length&&i.colHeaderPaths.forEach((t=>{t.dimensionKey&&r.push(t.value)})),r?.join(this.dataset.stringJoinChar)}getRowKeysPath(t,e){const i=this.getCellHeaderPaths(t,e),r=[];return i.rowHeaderPaths.length&&i.rowHeaderPaths.forEach((t=>{t.dimensionKey&&r.push(t.value)})),r?.join(this.dataset.stringJoinChar)}getIndicatorInfo(t,e=""){const i=this.indicatorsDefine?.find((i=>"string"!=typeof i&&(t?i.indicatorKey===t:!!e&&i.title===e)));return i}getLayoutColumnTree(){const t=[];return dG(t,this.columnDimensionTree.tree.children),t}getLayoutRowTree(){const t=[];return dG(t,this.rowDimensionTree.tree.children),t}getLayoutColumnTreeCount(){return uG(this.columnDimensionTree.tree.children,"tree"===this.rowHierarchyType)}getLayoutRowTreeCount(){let t=uG(this.rowDimensionTree.tree.children,"tree"===this.rowHierarchyType);return this.extensionRows?.forEach((e=>{if("function"!=typeof e.rowTree){const i=uG(e.rowTree,!0);t*=i}})),t}resetHeaderTree(){this.colIndex=0,this._rowHeaderCellFullPathIds_FULL=[],this._columnHeaderCellFullPathIds=[],this._columnHeaderCellIds=[];const t=this.dataset;this.rowTree=t.rowHeaderTree,this.columnTree=t.colHeaderTree,this.columnDimensionTree=new cG(this.columnTree??[],this.sharedVar),this.rowDimensionTree=new cG(this.rowTree??[],this.sharedVar,this.rowHierarchyType,"tree"===this.rowHierarchyType?this.rowExpandLevel:void 0),this.resetColumnHeaderLevelCount(),this._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this._rowHeaderCellFullPathIds_FULL=rL(this._rowHeaderCellFullPathIds_FULL),this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this._CellHeaderPathMap=new Map,this._largeCellRangeCache.length=0,this.generateCellIdsConsiderHideHeader(),this.setPagination(this.pagination)}isSeriesNumberInHeader(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount&&e<this.headerLevelCount||this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e<this.headerLevelCount}isSeriesNumberInBody(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount&&e>=this.headerLevelCount||this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e>=this.headerLevelCount}isSeriesNumber(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&e>=0&&t<this.leftRowSeriesNumberColumnCount||this.rightRowSeriesNumberColumnCount>0&&e>=0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount}getSeriesNumberHeader(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount&&e<this.headerLevelCount?Object.assign({},this.leftRowSeriesNumberColumn[t],{style:this._table.internalProps.rowSeriesNumber.headerStyle}):this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e<this.headerLevelCount&&e<this.headerLevelCount?this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]:void 0}getSeriesNumberBody(t,e){return this.leftRowSeriesNumberColumnCount>0&&t>=0&&t<this.leftRowSeriesNumberColumnCount&&e>=this.headerLevelCount?this.leftRowSeriesNumberColumn[t]:this.rightRowSeriesNumberColumnCount>0&&t>=this.colCount-this.rightRowSeriesNumberColumnCount&&e>=this.headerLevelCount?this.rightRowSeriesNumberColumn[t-(this.colCount-this.rightRowSeriesNumberColumnCount)]:void 0}changeTreeNodeTitle(t,e,i){this.getHeadNode(t,e).value=i;const r=this.getCellId(t,e);this._headerObjectMap[r].title=i}changeCornerTitle(t,e,i){if(this.isCornerHeader(t,e)){const r=this.getCellId(t,e);this._headerObjectMap[r].title=i}}generateCellIdsConsiderHideHeader(){if(this._columnHeaderCellIds=this._columnHeaderCellFullPathIds.slice(),!this.showColumnHeader)if(this.indicatorsAsCol&&!this.hideIndicatorName){const t=this.colDimensionKeys.indexOf(QL),e=this._columnHeaderCellIds.splice(t,1);this._columnHeaderCellIds.splice(0,this._columnHeaderCellIds.length),this._columnHeaderCellIds.push(e[0])}else this._columnHeaderCellIds.splice(0,this._columnHeaderCellIds.length);if(this._rowHeaderCellIds_FULL=this._rowHeaderCellFullPathIds_FULL.slice(),!this.showRowHeader)if(this.indicatorsAsCol||this.hideIndicatorName)this._rowHeaderCellIds_FULL.forEach(((t,e)=>{const i=t.slice();i.splice(0,i.length),this._rowHeaderCellIds_FULL[e]=i}));else{const t=this.rowDimensionKeys.indexOf(QL);this._rowHeaderCellIds_FULL.forEach(((e,i)=>{const r=e.slice(),n=r.splice(t,1);r.splice(0,r.length),r.push(n[0]),this._rowHeaderCellIds_FULL[i]=r}))}if(this._rowHeaderCellIds=this._rowHeaderCellIds_FULL.slice(),this._cornerHeaderCellIds=this._cornerHeaderCellFullPathIds.slice(),0===this.rowHeaderLevelCount||0===this.columnHeaderLevelCount)this._cornerHeaderCellIds=[];else if("row"!==this.cornerSetting.titleOnDimension||this.showRowHeader){if("column"===this.cornerSetting.titleOnDimension&&!this.showColumnHeader)if(this.indicatorsAsCol&&!this.hideIndicatorName){const t=this.colDimensionKeys.indexOf(QL),e=this._cornerHeaderCellIds.splice(t,1);this._cornerHeaderCellIds.splice(0,this._cornerHeaderCellIds.length),this._cornerHeaderCellIds.push(e[0])}else this._cornerHeaderCellIds.splice(0,this._cornerHeaderCellIds.length)}else if(this.indicatorsAsCol||this.hideIndicatorName)this._cornerHeaderCellIds.forEach(((t,e)=>{const i=t.slice();i.splice(0,i.length),this._cornerHeaderCellIds[e]=i}));else{const t=this.rowDimensionKeys.indexOf(QL);this._cornerHeaderCellIds.forEach(((e,i)=>{const r=e.slice(),n=r.splice(t,1);r.splice(0,r.length),r.push(n[0]),this._cornerHeaderCellIds[i]=r}))}}}function XG(t,e,i,r){1===i&&(i=0);const n=function(t,e,i){let r;r=1===t?t+2*i:t-e+2*i;return t?r>0?r:1:0}(t,i,r),o=e/(1-i);return Math.ceil(n*o)}class qG{dataConfig;records;tree={};beforeChangedTree={};colFlatKeys={};rowFlatKeys={};stringJoinChar=String.fromCharCode(0);rowsIsTotal=[];colsIsTotal=[];colGrandTotalLabel;colSubTotalLabel;rowGrandTotalLabel;rowSubTotalLabel;constructor(t,e){this.dataConfig=t,e&&(this.records=e,"undefined"!=typeof window&&window.performance.now(),this.setRecords(e),"undefined"!=typeof window&&window.performance.now())}changeDataConfig(t){this.dataConfig=t}setRecords(t){this.processRecords()}processRecords(){for(let t=0,e=this.records.length;t<e;t++){const e=this.records[t];this.processRecord(e)}}processRecord(t){const e=[],i=[];for(let e=0,r=this.dataConfig.rows.length;e<r;e++){const r=this.dataConfig.rows[e];void 0!==t[r]&&r!==this.dataConfig.indicatorDimensionKey&&i.push(t[r])}for(let i=0,r=this.dataConfig.columns.length;i<r;i++){const r=this.dataConfig.columns[i];void 0!==t[r]&&r!==this.dataConfig.indicatorDimensionKey&&e.push(t[r])}this.dataConfig.indicators?.forEach((r=>{const n=t[r];void 0!==n&&(this.dataConfig.indicatorsAsCol?e.push(r):i.push(r));const o=i.join(this.stringJoinChar),s=e.join(this.stringJoinChar);0!==i.length&&(this.rowFlatKeys[o]||(this.rowFlatKeys[o]=1)),0!==e.length&&(this.colFlatKeys[s]||(this.colFlatKeys[s]=1)),0===e.length&&0===i.length||(this.tree[o]||(this.tree[o]={}),void 0!==n&&(this.tree[o][s]={value:n,record:t},this.dataConfig.indicatorsAsCol?e.pop():i.pop()))}))}getTreeNode(t=[],e=[],i,r=!0){let n,o;if("string"==typeof t)n=t;else{let e=!1;t.map(((r,n)=>{r===i&&(t.splice(n,1),e=!0)})),e&&t.push(i),n=t.join(this.stringJoinChar)}if("string"==typeof e)o=e;else{let t=!1;e.map(((r,n)=>{r===i&&(e.splice(n,1),t=!0)})),t&&e.push(i),o=e.join(this.stringJoinChar)}return r?this.tree?.[n]?.[o]??void 0:Z(this.beforeChangedTree[n]?.[o])?{value:this.beforeChangedTree[n][o].value,record:this.beforeChangedTree[n][o].record}:void 0}changeTreeNodeValue(t=[],e=[],i,r){let n,o;if("string"==typeof t)n=t;else{let e=!1;t.map(((r,n)=>{r===i&&(t.splice(n,1),e=!0)})),e&&t.push(i),n=t.join(this.stringJoinChar)}if("string"==typeof e)o=e;else{let t=!1;e.map(((r,n)=>{r===i&&(e.splice(n,1),t=!0)})),t&&e.push(i),o=e.join(this.stringJoinChar)}const s=this.tree[n]?.[o]?.value,a=Object.assign({},this.tree[n]?.[o]?.record);this.tree[n]?.[o]?.record?(this.tree[n][o].record[i]=r,this.tree[n][o].value=r):(this.tree[n]||(this.tree[n]={}),this.tree[n][o]={record:this._buildRecord(t,e,i,r),value:r}),this.beforeChangedTree[n]?.[o]||(this.beforeChangedTree[n]={},this.beforeChangedTree[n][o]={record:void 0,value:void 0},this.beforeChangedTree[n][o].record=a,this.beforeChangedTree[n][o].value=s)}_buildRecord(t=[],e=[],i,r){const n={},o=this.dataConfig.rows,s=this.dataConfig.columns;return o.forEach(((e,i)=>{e!==this.dataConfig.indicatorDimensionKey&&(n[e]=t[i])})),s.forEach(((t,i)=>{t!==this.dataConfig.indicatorDimensionKey&&(n[t]=e[i])})),n[i]=r,this.records.push(n),n}addRecords(t){for(let e=0,i=t.length;e<i;e++){const i=t[e];this.processRecord(i)}this.records.push(t)}changeRecordFieldValue(t,e,i){let r=!1;for(let e=0;e<this.dataConfig.indicators.length;e++)this.dataConfig.indicators[e]===t&&(r=!0);if(!r){for(let r=0,n=this.records.length;r<n;r++){const n=this.records[r];n[t]===e&&(n[t]=i)}this.rowFlatKeys={},this.colFlatKeys={},this.tree={},this.processRecords()}}}class ZG{dataConfig;records;tree={};changedTree={};colFlatKeys={};rowFlatKeys={};colKeys=[];rowKeys=[];rowOrder="key_a_to_z";colOrder="key_a_to_z";sorted=!1;sortRules;filterRules;aggregationRules;derivedFieldRules;mappingRules;calculatedFieldRules;calculatedFiledKeys;calculatedFieldDependIndicatorKeys;totals;indicatorStatistics=[];aggregators={};stringJoinChar=String.fromCharCode(0);rowsIsTotal=[];colsIsTotal=[];colGrandTotalLabel;colSubTotalLabel;rowGrandTotalLabel;rowSubTotalLabel;needSplitPositiveAndNegative;collectValuesBy;collectedValues={};cacheCollectedValues={};rows;rowsHasValue;columns;columnsHasValue;indicatorKeys;indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;customRowTree;customColTree;colHeaderTree;rowHeaderTree;rowHierarchyType;indicators;indicatorsAsCol;totalRecordsTree={};constructor(t,e,i,r,n,o,s,a,l,h,c){this.registerAggregators(),this.dataConfig=t,this.rowHierarchyType=a??"grid",this.sortRules=this.dataConfig?.sortRules,this.aggregationRules=this.dataConfig?.aggregationRules,this.derivedFieldRules=this.dataConfig?.derivedFieldRules,this.mappingRules=this.dataConfig?.mappingRules,this.calculatedFieldRules=this.dataConfig?.calculatedFieldRules,this.calculatedFiledKeys=this.calculatedFieldRules?.map((t=>t.key))??[],this.calculatedFieldDependIndicatorKeys=this.calculatedFieldRules?.reduce(((t,e)=>{for(let i=0;i<e.dependIndicatorKeys.length;i++)-1===t.indexOf(e.dependIndicatorKeys[i])&&t.push(e.dependIndicatorKeys[i]);return t}),[])??[],this.totals=this.dataConfig?.totals,this.rows=e,this.columns=i,this.indicatorKeys=r,this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys=[...r];for(let t=0;t<this.calculatedFieldDependIndicatorKeys.length;t++)-1===this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys.indexOf(this.calculatedFieldDependIndicatorKeys[t])&&this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys.push(this.calculatedFieldDependIndicatorKeys[t]);if(this.indicatorsAsCol=o,this.indicators=n,this.customColTree=l,this.customRowTree=h,this.colGrandTotalLabel=this.totals?.column?.grandTotalLabel??"总计",this.colSubTotalLabel=this.totals?.column?.subTotalLabel??"小计",this.rowGrandTotalLabel=this.totals?.row?.grandTotalLabel??"总计",this.rowSubTotalLabel=this.totals?.row?.subTotalLabel??"小计",this.collectValuesBy=this.dataConfig?.collectValuesBy,this.needSplitPositiveAndNegative=c??!1,this.rowsIsTotal=new Array(this.rows?.length??0).fill(!1),this.colsIsTotal=new Array(this.columns?.length??0).fill(!1),this.totals?.row&&!1!==this.totals.row.showSubTotals&&this.totals.row.subTotalsDimensions)for(let t=0,e=this.totals?.row?.subTotalsDimensions?.length??0;t<e;t++){const e=this.totals.row.subTotalsDimensions[t],i=this.rows.indexOf(e);this.rowsIsTotal[i]=!0}if(this.totals?.column&&!1!==this.totals.column.showSubTotals&&this.totals.column.subTotalsDimensions)for(let t=0,e=this.totals?.column?.subTotalsDimensions?.length??0;t<e;t++){const e=this.totals.column.subTotalsDimensions[t],i=this.columns.indexOf(e);this.colsIsTotal[i]=!0}this.setRecords(s)}setRecords(t){this.records=t,this.collectedValues={},this.cacheCollectedValues={},this.totalRecordsTree={},this.tree={},this.colFlatKeys={},this.rowFlatKeys={},this.colKeys=[],this.rowKeys=[],this.rowsHasValue=[],this.columnsHasValue=[],t&&(this.records=t,"undefined"!=typeof window&&window.performance.now(),this.processRecords(),this.processCollectedValuesWithSumBy(),this.generateCollectedValuesSortRule(),this.processCollectedValuesWithSortBy(),"undefined"!=typeof window&&window.performance.now(),"undefined"!=typeof window&&window.performance.now(),this.totalStatistics(),"undefined"!=typeof window&&window.performance.now(),"undefined"!=typeof window&&window.performance.now(),this.sortKeys(),"undefined"!=typeof window&&window.performance.now(),"undefined"!=typeof window&&window.performance.now(),this.customRowTree?this.rowHeaderTree=this.customRowTree:"tree"===this.rowHierarchyType?this.rowHeaderTree=this.ArrToTree1(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.totals?.row?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel):this.rowHeaderTree=this.ArrToTree(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.rowsIsTotal,this.totals?.row?.showGrandTotals||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel,this.rowSubTotalLabel,this.totals?.row?.showGrandTotalsOnTop??!1,this.totals?.row?.showSubTotalsOnTop??!1),this.customColTree?this.colHeaderTree=this.customColTree:this.colHeaderTree=this.ArrToTree(this.colKeys,this.columns.filter(((t,e)=>this.columnsHasValue[e])),this.indicatorsAsCol?this.indicators:void 0,this.colsIsTotal,this.totals?.column?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length,this.colGrandTotalLabel,this.colSubTotalLabel,this.totals?.column?.showGrandTotalsOnLeft??!1,this.totals?.column?.showSubTotalsOnLeft??!1),"undefined"!=typeof window&&window.performance.now(),this.dataConfig?.isPivotChart&&this.cacheDeminsionCollectedValues())}registerAggregator(t,e){this.aggregators[t]=e}registerAggregators(){this.registerAggregator(vE.RECORD,sI),this.registerAggregator(vE.SUM,cI),this.registerAggregator(vE.COUNT,dI),this.registerAggregator(vE.MAX,gI),this.registerAggregator(vE.MIN,pI),this.registerAggregator(vE.AVG,uI),this.registerAggregator(vE.NONE,aI),this.registerAggregator(vE.RECALCULATE,hI)}processCollectedValuesWithSumBy(){for(const t in this.collectedValues)if(this.collectValuesBy?.[t]?.sumBy)for(const e in this.collectedValues[t]){let i;"sum"===this.collectValuesBy[t]?.extendRange?(i=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>t+e.value()),0),i+=Math.round(i/20)):(i=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.value()>t?e.value():t),Number.MIN_SAFE_INTEGER),"max"===this.collectValuesBy[t]?.extendRange?i+=Math.round(i/20):"number"==typeof this.collectValuesBy[t]?.extendRange&&(i=Math.max(i,this.collectValuesBy[t]?.extendRange)));const r=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.value()<t?e.value():t),Number.MAX_SAFE_INTEGER);let n,o;this.needSplitPositiveAndNegative&&(n=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.positiveValue()>t?e.positiveValue():t),Number.MIN_SAFE_INTEGER),o=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.negativeValue()<t?e.negativeValue():t),Number.MAX_SAFE_INTEGER)),this.collectedValues[t][e]={},this.collectedValues[t][e].max=i,this.collectedValues[t][e].min=r,this.needSplitPositiveAndNegative&&(this.collectedValues[t][e].positiveMax=n,this.collectedValues[t][e].negativeMin=o)}}processCollectedValuesWithSortBy(){const t=this;for(const e in this.collectedValues)if(this.collectValuesBy?.[e]?.sortBy)for(const i in this.collectedValues[e])this.collectedValues[e][i]=this.collectedValues[e][i].sort(((i,r)=>(t.collectValuesBy[e].sortBy?.indexOf(i)??-1)-(t.collectValuesBy[e].sortBy?.indexOf(r)??-1)))}generateCollectedValuesSortRule(){for(const t in this.collectedValues)if(this.collectValuesBy&&this.collectValuesBy[t]&&!this.collectValuesBy[t].sortBy){let e=[];for(const i in this.collectedValues[t])Array.isArray(this.collectedValues[t][i])&&(e.push(...this.collectedValues[t][i]),e=Array.from(new Set(e)));e.length>0&&(this.collectValuesBy[t].sortBy=e)}}processRecords(){let t=!1;if((this.dataConfig?.filterRules?.length??0)>=1&&(t=!0),Array.isArray(this.records))for(let e=0,i=this.records.length;e<i;e++){const i=this.records[e];t&&!this.filterRecord(i)||this.processRecord(i)}else for(const e in this.records)for(let i=0,r=this.records[e].length;i<r;i++){const r=this.records[e][i];t&&!this.filterRecord(r)||this.processRecord(r,e)}this.rowFlatKeys={},this.colFlatKeys={}}filterRecord(t){let e=!0;if(this.dataConfig?.filterRules)for(let i=0;i<this.dataConfig.filterRules.length;i++){const r=this.dataConfig?.filterRules[i];if(r.filterKey){const i=t[r.filterKey];if(-1===r.filteredValues?.indexOf(i)){e=!1;break}}else if(!r.filterFunc?.(t)){e=!1;break}}return e}processRecord(t,e){this.derivedFieldRules?.forEach(((e,i)=>{e.fieldName&&e.derivedFunc&&(t[e.fieldName]=e.derivedFunc(t))}));for(const e in this.collectValuesBy)if(Z(t[e])){this.collectedValues[e]||(this.collectedValues[e]={});const i=this.collectValuesBy[e].by.map((e=>t[e])).join(this.stringJoinChar);if(this.collectedValues[e][i]||(this.collectValuesBy[e].sumBy?this.collectedValues[e][i]={}:this.collectValuesBy[e].range?this.collectedValues[e][i]={min:Number.MAX_SAFE_INTEGER,max:Number.MIN_SAFE_INTEGER}:this.collectedValues[e][i]=[]),this.collectValuesBy[e].sumBy){const r=this.collectValuesBy[e].sumBy.map((e=>t[e])).join(this.stringJoinChar);this.collectedValues[e][i][r]||(this.collectedValues[e][i][r]=new this.aggregators[vE.SUM]({key:e,dimension:e,isRecord:void 0,needSplitPositiveAndNegative:this.needSplitPositiveAndNegative})),this.collectedValues[e][i][r].push(t)}else if(this.collectValuesBy[e].range){const r=this.collectedValues[e][i],n=Math.max(t[e],r.max),o=Math.min(t[e],r.min);isNaN(n)||(r.max=n,r.min=o)}else{const r=this.collectedValues[e][i];-1===r.indexOf(t[e])&&r.push(t[e])}}const i=[],r=[];let n=!1;for(let e=0,i=this.rows.length;e<i;e++){const i=this.rows[e];if(i in t)this.rowsHasValue[e]=!0,r.push(t[i]);else if(i!==QL){if(this.dataConfig?.totals?.row?.showGrandTotals&&0===e&&!this.rows.find((e=>e in t))){r.push(this.rowGrandTotalLabel),n=!0;break}if(this.dataConfig?.totals?.row?.subTotalsDimensions&&this.dataConfig?.totals?.row?.subTotalsDimensions.indexOf(this.rows[e-1])>=0){"grid"===this.rowHierarchyType&&r.push(this.rowSubTotalLabel),n=!0;break}}}for(let e=0,r=this.columns.length;e<r;e++){const r=this.columns[e];if(r in t)this.columnsHasValue[e]=!0,i.push(t[r]);else if(r!==QL){if(this.dataConfig?.totals?.column?.showGrandTotals&&0===e&&!this.columns.find((e=>e in t))){i.push(this.colGrandTotalLabel),n=!0;break}if(this.dataConfig?.totals?.column?.subTotalsDimensions&&this.dataConfig?.totals?.column?.subTotalsDimensions.indexOf(this.columns[e-1])>=0){i.push(this.colSubTotalLabel),n=!0;break}}}const o=r.join(this.stringJoinChar),s=i.join(this.stringJoinChar);if(n){this.totalRecordsTree[o]||(this.totalRecordsTree[o]={}),this.totalRecordsTree[o][s]||(this.totalRecordsTree[o][s]=[]);const e=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let i=0;i<e.length;i++)if(this.calculatedFiledKeys.indexOf(e[i])>=0){const r=this.calculatedFieldRules?.find((t=>t.key===e[i]));this.totalRecordsTree[o]?.[s]?.[i]||(this.totalRecordsTree[o][s][i]=new this.aggregators[vE.RECALCULATE]({key:e[i],dimension:e[i],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===e[i]))?.format,calculateFun:r?.calculateFun,dependAggregators:this.totalRecordsTree[o][s],dependIndicatorKeys:r?.dependIndicatorKeys})),e[i]in t&&this.totalRecordsTree[o]?.[s]?.[i].push(t)}else{const r=this.getAggregatorRule(e[i]);this.totalRecordsTree[o]?.[s]?.[i]||(this.totalRecordsTree[o][s][i]=new this.aggregators[r?.aggregationType??vE.SUM]({key:e[i],dimension:r?.field??e[i],formatFun:r?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===e[i]))?.format})),e[i]in t&&this.totalRecordsTree[o]?.[s]?.[i].push(t)}return}0!==r.length&&(this.rowFlatKeys[o]||(this.rowKeys.push(r),this.rowFlatKeys[o]=1)),0!==i.length&&(this.colFlatKeys[s]||(this.colKeys.push(i),this.colFlatKeys[s]=1)),this.tree[o]||(this.tree[o]={}),this.tree[o]?.[s]||(this.tree[o][s]=[]);const a=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let i=0;i<a.length;i++)if(this.calculatedFiledKeys.indexOf(a[i])>=0){const e=this.calculatedFieldRules?.find((t=>t.key===a[i]));this.tree[o]?.[s]?.[i]||(this.tree[o][s][i]=new this.aggregators[vE.RECALCULATE]({key:a[i],dimension:a[i],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[i]))?.format,calculateFun:e?.calculateFun,dependAggregators:this.tree[o][s],dependIndicatorKeys:e?.dependIndicatorKeys})),this.tree[o]?.[s]?.[i].push(t)}else{const r=this.getAggregatorRule(a[i]);let n=!1;if(e)a[i]===e&&(n=!0);else if(r?.field)if("string"==typeof r?.field)r?.field in t&&(n=!0);else{const e=r?.field.find((e=>e in t));e&&(n=!0)}else a[i]in t&&(n=!0);!this.tree[o]?.[s]?.[i]&&n&&(this.tree[o][s][i]=new this.aggregators[r?.aggregationType??vE.SUM]({key:a[i],dimension:r?.field??a[i],formatFun:r?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[i]))?.format})),n&&this.tree[o]?.[s]?.[i].push(t)}if(this.mappingRules)for(let e=0;e<this.indicatorKeys.length;e++){if(!this.indicatorStatistics[e]){const t=this.getAggregatorRule(this.indicatorKeys[e]);this.indicatorStatistics[e]={max:new this.aggregators[vE.MAX]({key:this.indicatorKeys[e],dimension:this.indicatorKeys[e]}),min:new this.aggregators[vE.MIN]({key:this.indicatorKeys[e],dimension:this.indicatorKeys[e]}),total:new this.aggregators[t?.aggregationType??vE.SUM]({key:this.indicatorKeys[e],dimension:t?.field??this.indicatorKeys[e],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format})}}this.indicatorStatistics[e].max.push(this.tree[o]?.[s]?.[e].value()),this.indicatorStatistics[e].min.push(this.tree[o]?.[s]?.[e].value()),this.indicatorStatistics[e].total.push(t)}}updateSortRules(t){this.sorted=!1,this.sortRules=t,this.sortKeys(),this.customRowTree||("tree"===this.rowHierarchyType?this.rowHeaderTree=this.ArrToTree1(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.totals?.row?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel):this.rowHeaderTree=this.ArrToTree(this.rowKeys,this.rows.filter(((t,e)=>this.rowsHasValue[e])),this.indicatorsAsCol?void 0:this.indicators,this.rowsIsTotal,this.totals?.row?.showGrandTotals||this.indicatorsAsCol&&0===this.rows.length,this.rowGrandTotalLabel,this.rowSubTotalLabel,this.totals?.row?.showGrandTotalsOnTop??!1,this.totals?.row?.showSubTotalsOnTop??!1)),this.customColTree||(this.colHeaderTree=this.ArrToTree(this.colKeys,this.columns.filter(((t,e)=>this.columnsHasValue[e])),this.indicatorsAsCol?this.indicators:void 0,this.colsIsTotal,this.totals?.column?.showGrandTotals||!this.indicatorsAsCol&&0===this.columns.length,this.colGrandTotalLabel,this.colSubTotalLabel,this.totals?.column?.showGrandTotalsOnLeft??!1,this.totals?.column?.showSubTotalsOnLeft??!1))}updateFilterRules(t,e=!1){if(this.filterRules=t,e)this.tree={};else for(const t in this.tree)for(const e in this.tree[t])for(let i=0;i<this.tree[t][e].length;i++)this.tree[t][e][i].reset();this.collectedValues={},this.processRecords(),this.processCollectedValuesWithSumBy(),this.processCollectedValuesWithSortBy(),this.dataConfig?.isPivotChart&&this.cacheDeminsionCollectedValues()}getAggregatorRule(t){return this.aggregationRules?.find(((e,i)=>t===e.indicatorKey))}getAggregator(t=[],e=[],i,r=!0,n){const o=this.indicatorKeys.indexOf(i);let s,a;"string"==typeof t?s=t:(n&&"row"!==n.position||t.map(((e,r)=>{e!==i||Z(n?.index)&&r!==n.index||t.splice(r,1)})),s=t.join(this.stringJoinChar)),"string"==typeof e?a=e:(n&&"col"!==n.position||e.map(((t,r)=>{t!==i||Z(n?.index)&&r!==n.index||e.splice(r,1)})),a=e.join(this.stringJoinChar));const l=this.tree[s]?.[a]?.[o];if(r&&Z(this.changedTree[s]?.[a]?.[o])){const t=this.changedTree[s][a][o];return l?{value:()=>t,formatValue:l.formatValue,formatFun:l.formatFun,records:l.records,className:"",recalculate(){},push(){},clearCacheValue(){},reset(){}}:{value:()=>t,className:"",push(){},recalculate(){},formatValue:()=>t,clearCacheValue(){},reset(){}}}return l||{className:"",push(){},recalculate(){},value:()=>null,clearCacheValue(){},reset(){}}}sortKeys(){const t=this;if(!this.sorted){this.sorted=!0;const e=function(e,i){return t.getAggregator(e,i,"").value()};switch(this.rowOrder){case"value_a_to_z":this.rowKeys.sort((function(t,i){return mI(e(t,[]),e(i,[]))}));break;case"value_z_to_a":this.rowKeys.sort((function(t,i){return-mI(e(t,[]),e(i,[]))}));break;default:this.rowKeys.sort(this.arrSort(this.rows,!0))}switch(this.colOrder){case"value_a_to_z":this.colKeys.sort((function(t,i){return mI(e([],t),e([],i))}));break;case"value_z_to_a":this.colKeys.sort((function(t,i){return-mI(e([],t),e([],i))}));break;default:const t=this.arrSort(this.columns,!1);this.colKeys.sort(t)}}}arrSort(t,e){let i;const r=this,n=function(n){const o=[];for(let n=0,s=t.length;n<s;n++)if(i=t[n],r.sortRules)for(let t=0,s=r.sortRules.length;t<s;t++)r.sortRules[t].sortField===i&&o.push({field:i,fieldIndex:n,sortRule:r.sortRules[t],func:r.getSort(r.sortRules[t],e)});return o}.call(this);return function(i,o){let s,a;for(let l=0;l<n.length;l++){if(a=n[l],a.sortRule?.sortByIndicator){let n=i,l=o;a.fieldIndex<t.length-1&&(n=i.slice(0,a.fieldIndex+1),n.push(e?r.rowSubTotalLabel:r.colSubTotalLabel),l=o.slice(0,a.fieldIndex+1),l.push(e?r.rowSubTotalLabel:r.colSubTotalLabel)),s=a.func(n,l)}else s=a.func?.(i[a.fieldIndex],o[a.fieldIndex]);if(0!==s)return s*(a.sortRule?.sortType===CE.DESC?-1:1)}return 0}}getSort(t,e){const i=this;return t.sortByIndicator?(r,n)=>{const o=function(e,r){return e.length<i.rows.length&&e[e.length-1]!==i.rowSubTotalLabel&&e[e.length-1]!==i.rowGrandTotalLabel&&e.push(i.rowSubTotalLabel),r.length<i.columns.length&&r[r.length-1]!==i.colSubTotalLabel&&r[r.length-1]!==i.colGrandTotalLabel&&r.push(i.colSubTotalLabel),i.getAggregator(e,r,t.sortByIndicator).value()};return e?mI(o(r,t.query),o(n,t.query)):mI(o(t.query,r),o(t.query,n))}:t.sortBy?function(t){let e;const i={},r={};for(let n=0;n<t.length;n++)e=t[n],i[e]=n,"string"==typeof e&&(r[e.toLowerCase()]=n);return function(t,e){return null!==i[t]&&void 0!==i[t]&&null!==i[e]&&void 0!==i[e]?i[t]-i[e]:null!==i[t]&&void 0!==i[t]?-1:null!==i[e]&&void 0!==i[e]?1:null!==r[t]&&void 0!==i[t]&&null!==r[e]&&void 0!==i[e]?r[t]-r[e]:null===r[t]||void 0===i[t]||null===r[e]||void 0===i[e]?0:null!==r[t]&&void 0!==i[t]?-1:null!==r[e]&&void 0!==i[e]?1:mI(t,e)}}(t.sortBy):t.sortType?fI:t.sortFunc?t.sortFunc:mI}totalStatistics(){const t=this;if(t?.totals?.column?.subTotalsDimensions&&t?.totals?.column?.subTotalsDimensions?.length>=1||t?.totals?.row?.subTotalsDimensions&&t?.totals?.row?.subTotalsDimensions?.length>=1||t?.totals?.column?.showGrandTotals||t?.totals?.row?.showGrandTotals){const e=[],i=(e,i)=>{if(this.totalRecordsTree?.[e]?.[i])return void(this.tree[e][i]=this.totalRecordsTree?.[e]?.[i]);const r=i.split(this.stringJoinChar);if(t.totals?.column?.subTotalsDimensions&&t.totals?.column?.subTotalsDimensions?.length>0&&!1!==t.totals.column.showSubTotals)for(let n=0,o=t.totals?.column?.subTotalsDimensions?.length;n<o;n++){const o=t.totals.column.subTotalsDimensions[n],s=t.columns.indexOf(o);if(s>=0){const n=r.slice(0,s+1);n.push(t.colSubTotalLabel);const o=n.join(this.stringJoinChar);if(this.totalRecordsTree?.[e]?.[o])return void(this.tree[e][o]=this.totalRecordsTree?.[e]?.[o]);this.tree[e][o]||(this.tree[e][o]=[]);const a=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let r=0;r<a.length;r++)if(this.calculatedFiledKeys.indexOf(a[r])>=0){const n=this.calculatedFieldRules?.find((t=>t.key===a[r]));this.tree[e]?.[o]?.[r]||(this.tree[e][o][r]=new this.aggregators[vE.RECALCULATE]({key:a[r],dimension:a[r],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[r]))?.format,calculateFun:n?.calculateFun,dependAggregators:this.tree[e][o],dependIndicatorKeys:n?.dependIndicatorKeys})),this.tree[e][o][r].push(t.tree[e]?.[i]?.[r])}else{if(!this.tree[e][o][r]){const t=this.getAggregatorRule(a[r]);this.tree[e][o][r]=new this.aggregators[t?.aggregationType??vE.SUM]({key:a[r],dimension:t?.field??a[r],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===a[r]))?.format})}this.tree[e][o][r].push(t.tree[e]?.[i]?.[r])}}}if(t.totals?.column?.showGrandTotals||0===this.rows.length){const r=t.colGrandTotalLabel;if(this.totalRecordsTree?.[e]?.[r])return void(this.tree[e][r]=this.totalRecordsTree?.[e]?.[r]);this.tree[e][r]||(this.tree[e][r]=[]);const n=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let o=0;o<n.length;o++)if(this.calculatedFiledKeys.indexOf(n[o])>=0){const s=this.calculatedFieldRules?.find((t=>t.key===n[o]));this.tree[e]?.[r]?.[o]||(this.tree[e][r][o]=new this.aggregators[vE.RECALCULATE]({key:n[o],dimension:n[o],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[o]))?.format,calculateFun:s?.calculateFun,dependAggregators:this.tree[e][r],dependIndicatorKeys:s?.dependIndicatorKeys})),this.tree[e][r][o].push(t.tree[e]?.[i]?.[o])}else{if(!this.tree[e][r][o]){const t=this.getAggregatorRule(n[o]);this.tree[e][r][o]=new this.aggregators[t?.aggregationType??vE.SUM]({key:n[o],dimension:t?.field??n[o],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[o]))?.format})}this.tree[e][r][o].push(t.tree[e]?.[i]?.[o])}}};Object.keys(t.tree).forEach((r=>{const n=r.split(this.stringJoinChar);Object.keys(t.tree[r]).forEach((o=>{if(t.totals?.row?.subTotalsDimensions&&t.totals?.row?.subTotalsDimensions?.length>0&&!1!==t.totals.row.showSubTotals)for(let i=0,s=t.totals?.row?.subTotalsDimensions?.length;i<s;i++){const s=t.totals.row.subTotalsDimensions[i],a=t.rows.indexOf(s);if(a>=0&&a<t.rows.length-1){const i=n.slice(0,a+1);"grid"===this.rowHierarchyType&&i.push(t.rowSubTotalLabel);const s=i.join(this.stringJoinChar);this.tree[s]||(this.tree[s]={},e.push(s)),this.tree[s][o]||(this.tree[s][o]=[]);const l=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let e=0;e<l.length;e++){if(!this.tree[s][o][e])if(this.calculatedFiledKeys.indexOf(l[e])>=0){const t=this.calculatedFieldRules?.find((t=>t.key===l[e]));this.tree[s][o][e]=new this.aggregators[vE.RECALCULATE]({key:l[e],dimension:l[e],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===l[e]))?.format,calculateFun:t?.calculateFun,dependAggregators:this.tree[s][o],dependIndicatorKeys:t?.dependIndicatorKeys})}else{const t=this.getAggregatorRule(l[e]);this.tree[s][o][e]=new this.aggregators[t?.aggregationType??vE.SUM]({key:l[e],dimension:t?.field??l[e],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===l[e]))?.format})}this.tree[s][o][e].push(t.tree[r]?.[o]?.[e])}}}if(t.totals?.row?.showGrandTotals||0===this.columns.length){const i=t.rowGrandTotalLabel;this.tree[i]||(this.tree[i]={},e.push(i)),this.tree[i][o]||(this.tree[i][o]=[]);const n=this.indicatorKeysIncludeCalculatedFieldDependIndicatorKeys;for(let e=0;e<n.length;e++){if(!this.tree[i][o][e])if(this.calculatedFiledKeys.indexOf(n[e])>=0){const t=this.calculatedFieldRules?.find((t=>t.key===n[e]));this.tree[i][o][e]=new this.aggregators[vE.RECALCULATE]({key:n[e],dimension:n[e],isRecord:!0,formatFun:this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[e]))?.format,calculateFun:t?.calculateFun,dependAggregators:this.tree[i][o],dependIndicatorKeys:t?.dependIndicatorKeys})}else{const t=this.getAggregatorRule(n[e]);this.tree[i][o][e]=new this.aggregators[t?.aggregationType??vE.SUM]({key:n[e],dimension:t?.field??n[e],formatFun:t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===n[e]))?.format})}this.tree[i][o][e].push(t.tree[r]?.[o]?.[e])}}i(r,o)}))})),e.forEach((e=>{Object.keys(t.tree[e]).forEach((t=>{i(e,t)}))}))}}ArrToTree1(t,e,i,r,n){const o=[],s=this.stringJoinChar,a=new Map;function l(t){const r=[];let n;t.forEach(((l,h)=>{r.push(l);const c=r.join(s);let d=a.get(c);d||(d={value:l,dimensionKey:e[h],children:h===t.length-1&&(i?.length??0)>=1?i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title})):[]},a.set(c,d),n?n.children.push(d):o.push(d)),n=d}))}return t.forEach((t=>l(t))),r&&l([n]),o}ArrToTree(t,e,i,r,n,o,s,a,l){let h=[];const c=this.stringJoinChar,d=new Map;if(t?.length?t.forEach((t=>function(t){const n=[];let o;t.forEach(((a,u)=>{n.push(a);const g=n.join(c);let p=d.get(g);if(!p){if(p={value:a,dimensionKey:e[u],children:u===t.length-1&&(i?.length??0)>=1?i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title})):[]},r[u]){let t=p.children??[];const n={value:s,dimensionKey:e[u+1],levelSpan:r.length-u-1,children:(i?.length??0)>=1?i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title})):[]};t.push(n),t=n.children??[]}d.set(g,p),o?r[u-1]&&!l?o.children.splice(o.children.length-1,0,p):o.children.push(p):h.push(p)}o=p}))}(t))):i&&(h=i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey}))),n&&t?.length){const t={value:o,dimensionKey:e[0],levelSpan:r.length,children:i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title}))??[]};a?h.unshift(t):h.push(t)}return h}TreeToArr(t){const e=[];function i(t,r){r.push(t.id),t.children.length>0?t.children?.forEach((t=>i(t,[...r]))):e.push(r)}return t.forEach((t=>i(t,[]))),e}cacheDeminsionCollectedValues(){for(const t in this.collectValuesBy)"xField"!==this.collectValuesBy[t].type&&"yField"!==this.collectValuesBy[t].type||(this.dataConfig.dimensionSortArray?this.cacheCollectedValues[t]=JG(this.collectedValues[t],this.dataConfig.dimensionSortArray):this.cacheCollectedValues[t]=this.collectedValues[t])}changeTreeNodeValue(t=[],e=[],i,r){const n=this.indicatorKeys.indexOf(i);let o,s;o="string"==typeof t?t:t.join(this.stringJoinChar),s="string"==typeof e?e:e.join(this.stringJoinChar),this.changedTree[o]?.[s]?this.changedTree[o][s][n]=r:this.changedTree[o]?(this.changedTree[o][s]=[],this.changedTree[o][s][n]=r):(this.changedTree[o]={},this.changedTree[o][s]=[],this.changedTree[o][s][n]=r)}changeRecordFieldValue(t,e,i){let r=!1;for(let e=0;e<this.indicatorKeys.length;e++)this.indicatorKeys[e]===t&&(r=!0);if(!r){if(Array.isArray(this.records))for(let r=0,n=this.records.length;r<n;r++){const n=this.records[r];n[t]===e&&(n[t]=i)}else for(const r in this.records)for(let n=0,o=this.records[r].length;n<o;n++){const o=this.records[r][n];o[t]===e&&(o[t]=i)}this.rowFlatKeys={},this.colFlatKeys={},this.tree={},this.processRecords()}}changeDataConfig(t){this.rows=t.rows,this.columns=t.columns}addRecords(t){for(let e=0,i=t.length;e<i;e++){const i=t[e];this.processRecord(i)}Array.isArray(this.records)&&this.records.push(t)}}function JG(t,e){return t.sort(((t,i)=>{const r=e.indexOf(t),n=e.indexOf(i);return r<n?-1:r>n?1:0}))}class QG extends yl{constructor(t){t.direction&&(t.flexDirection=t.direction),!t.justifyContent||"start"!==t.justifyContent&&"end"!==t.justifyContent||(t.justifyContent="flex-"+t.justifyContent),!t.alignItems||"start"!==t.alignItems&&"end"!==t.alignItems||(t.alignItems="flex-"+t.alignItems),!t.alignContent||"start"!==t.alignContent&&"end"!==t.alignContent||(t.alignContent="flex-"+t.alignContent),t.display="flex",t.flexDirection||(t.flexDirection="row"),t.clip=!0,t.fill=t?.background?.fill,t.stroke=t?.background?.stroke,t.lineWidth=t?.background?.lineWidth,t.cornerRadius=t?.background?.cornerRadius;const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}}var tj=Object.freeze({__proto__:null,Arc:class extends ed{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},CheckBox:cE,Circle:class extends sh{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},Container:QG,Group:class extends yl{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},GroupElement:class extends QG{constructor(t){t.flexWrap="nowrap",super(t)}},Icon:class extends Wc{svg;iconName;cache;constructor(t){let e;if(rt(t.iconName)){e=NO()[t.iconName],e&&(t.width=t.width??e.width,t.height=t.height??e.height,t.svg=e.svg,t.cursor=e.cursor)}t.svg&&(t.image=t.svg);const i=nt(t.boundsPadding),r=[t.marginTop??(i?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(i?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(i?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(i?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=r,super(t),this.cache=e}},Image:class extends Wc{constructor(t){t.src&&(t.image=t.src),"circle"===t.shape&&(t.cornerRadius=t.width/2);const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},Line:Tc,Radio:dE,Rect:class extends Pc{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}},Tag:class extends CT{constructor(t){const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,super(t)}getSize(t){this.AABBBounds.width()}},Text:class extends fh{constructor(t){t.textBaseline||(t.textBaseline="top");const e=nt(t.boundsPadding),i=[t.marginTop??(e?t.boundsPadding[0]:t.boundsPadding)??0,t.marginRight??(e?t.boundsPadding[1]:t.boundsPadding)??0,t.marginBottom??(e?t.boundsPadding[2]??t.boundsPadding[0]:t.boundsPadding)??0,t.marginLeft??(e?t.boundsPadding[3]??t.boundsPadding[1]:t.boundsPadding)??0];t.boundsPadding=i,t.fill=t.fill??"#000",super(t)}getSize(t){this.AABBBounds.width()}},percentCalc:function(t,e=0){return{percent:t,delta:e}}});function ej(t){const e={seqId:0},i={isPivotChart:!0};let r,n,o,s;t.columnTree&&(!1!==t.indicatorsAsCol&&(o=bG(t.columnTree,t.indicators)),r=new cG(t.columnTree??[],e)),t.rowTree&&(!1===t.indicatorsAsCol&&(s=bG(t.rowTree,t.indicators)),n=new cG(t.rowTree??[],e));const a=n.dimensionKeys?.count?n.dimensionKeys.valueArr():t.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],l=r.dimensionKeys?.count?r.dimensionKeys.valueArr():t.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],h=t.indicators?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.indicatorKey),t)),[])??[];i.collectValuesBy=function(t,e,i){const r={};for(let n=0,o=t.indicators?.length;n<o;n++)if("string"!=typeof t.indicators[n]&&t.indicators[n].chartSpec)if(!1===t.indicatorsAsCol){const o=t.indicators[n];if(r[o.indicatorKey]={by:i,range:!0,sumBy:!1!==o.chartSpec?.stack&&e.concat(o.chartSpec?.xField)},o.chartSpec.series)o.chartSpec.series.forEach((t=>{const n="string"==typeof t.xField?t.xField:t.xField[0];r[n]={by:e,type:"horizontal"!==t.direction?"xField":void 0,range:"horizontal"===t.direction,sortBy:"horizontal"!==t.direction?t?.data?.fields?.[n]?.domain??o.chartSpec?.data?.fields?.[n]?.domain:void 0};const s=t.yField;r[s]={by:i,range:"horizontal"!==t.direction,sumBy:!1!==t.stack&&e.concat(t?.xField),sortBy:"horizontal"===t.direction?t?.data?.fields?.[s]?.domain??o.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof o.chartSpec.xField?o.chartSpec.xField:o.chartSpec.xField[0];r[s]={by:e,type:"horizontal"!==o.chartSpec.direction?"xField":void 0,range:"horizontal"===o.chartSpec.direction,sortBy:"horizontal"!==o.chartSpec.direction?o.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=o.chartSpec.yField;r[a]={by:i,range:"horizontal"!==t.indicators[n].chartSpec.direction,sumBy:!1!==o.chartSpec.stack&&e.concat(o.chartSpec?.xField),sortBy:"horizontal"===o.chartSpec.direction?o.chartSpec?.data?.fields?.[a]?.domain:void 0}}}else{const o=t.indicators[n];if(r[o.indicatorKey]={by:e,range:!0,sumBy:!1!==o.chartSpec?.stack&&i.concat(o.chartSpec?.yField)},o.chartSpec.series)o.chartSpec.series.forEach((t=>{const n="string"==typeof t.yField?t.yField:t.yField[0];r[n]={by:i,type:"horizontal"===t.direction?"yField":void 0,range:"horizontal"!==t.direction,sortBy:"horizontal"===t.direction?t?.data?.fields?.[n]?.domain??o.chartSpec?.data?.fields?.[n]?.domain:void 0};const s=t.xField;r[s]={by:e,range:"horizontal"===t.direction,sumBy:!1!==t.stack&&i.concat(t?.yField),sortBy:"horizontal"!==t.direction?t?.data?.fields?.[s]?.domain??o.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof o.chartSpec.yField?o.chartSpec.yField:o.chartSpec.yField[0];r[s]={by:i,type:"horizontal"===o.chartSpec.direction?"yField":void 0,range:"horizontal"!==o.chartSpec.direction,sortBy:"horizontal"===o.chartSpec.direction?o.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=o.chartSpec.xField;r[a]={by:e,range:"horizontal"===t.indicators[n].chartSpec.direction,sumBy:!1!==o.chartSpec.stack&&i.concat(o.chartSpec?.yField),sortBy:"horizontal"!==o.chartSpec.direction?o.chartSpec?.data?.fields?.[a]?.domain:void 0}}}return r}(t,l,a),i.aggregationRules=function(t){const e=[];return t.indicators?.forEach((i=>{if("string"==typeof i)e.push({indicatorKey:i,field:i,aggregationType:vE.RECORD});else if(i.chartSpec?.series){const r=[];i.chartSpec?.series.forEach((e=>{const i=!1===t.indicatorsAsCol?e.yField:e.xField;-1===r.indexOf(i)&&r.push(i)})),e.push({indicatorKey:i.indicatorKey,field:r,aggregationType:vE.RECORD})}else{const r=!1===t.indicatorsAsCol?i.chartSpec.yField:i.chartSpec.xField;e.push({indicatorKey:i.indicatorKey,field:r??i.indicatorKey,aggregationType:vE.RECORD})}})),e}(t);return{dataset:new ZG(i,a,l,h,t.indicators,t.indicatorsAsCol??!0,t.records,void 0,o||t.columnTree,s||t.rowTree,!0),columnDimensionTree:r,rowDimensionTree:n,layoutNodeId:e}}function ij(t,e,i,r,n,o){if(nt(t))for(let s=0;s<t.length;s++)if(o?o(t[s],e):rj(t[s],e))return n.getCellHeaderPaths(i,r)}function rj(t,e){return JSON.stringify(t)===JSON.stringify(e)}pE();t.CustomLayout=tj,t.DataStatistics=OG,t.ListTable=class extends RG{showHeader=!0;editorManager;constructor(t,e){"node"===YE.mode?(e=t,t=null):t instanceof HTMLElement||(e=t,t=t.container?t.container:null),super(t,e);const i=this.internalProps;i.frozenColDragHeaderMode=e.frozenColDragHeaderMode,this.pagination=e.pagination,i.sortState=e.sortState,i.dataConfig={},i.columns=e.columns?qH(e.columns,["children"]):e.header?qH(e.header,["children"]):[],this.internalProps.headerHelper.setTableColumnsEditor(),this.showHeader=e.showHeader??!0,this.transpose=e.transpose??!1,"node"!==YE.mode&&(this.editorManager=new UG(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.dataSource?mO(this,e.dataSource):e.records?this.setRecords(e.records,{sortState:i.sortState}):this.setRecords([]),e.title&&(i.title=new VG(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(IL.INITIALIZED,null)}),0)}isListTable(){return!0}isPivotTable(){return!1}isPivotChart(){return!1}get sortState(){return this.internalProps.sortState}get records(){return this.dataSource?.records}get recordsCount(){return this.dataSource.records.length}updateColumns(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.internalProps.columns=qH(t,["children"]),this.options.columns=t,this.internalProps.headerHelper.setTableColumnsEditor(),this._hasAutoImageColumn=void 0,this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.headerStyleCache=new Map,this.bodyStyleCache=new Map,this.bodyBottomStyleCache=new Map,this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.renderAsync(),this.eventManager.updateEventBinder()}get columns(){return this.internalProps.layoutMap.columnTree.getCopiedTree()}get header(){return this.internalProps.columns}set header(t){this.internalProps.columns=t,this.options.header=t,this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.renderAsync()}get transpose(){return this.internalProps.transpose??!1}set transpose(t){this.internalProps.transpose!==t&&(this.internalProps.transpose=t,this.internalProps.layoutMap&&(this.internalProps.layoutMap.transpose=t,this.refreshRowColCount(),this._resetFrozenColCount(),this.renderAsync()))}getCellValue(t,e,i){if(-1===t||-1===e)return null;if(!i){const i=this.getCustomMergeValue(t,e);if(i)return i}const r=this;if(r.internalProps.layoutMap.isSeriesNumber(t,e)){if(r.internalProps.layoutMap.isSeriesNumberInHeader(t,e)){const{title:i}=r.internalProps.layoutMap.getSeriesNumberHeader(t,e);return i}const{format:i}=r.internalProps.layoutMap.getSeriesNumberBody(t,e);return"function"==typeof i?i(t,e,this):e-this.columnHeaderLevelCount+1}if(r.internalProps.layoutMap.isHeader(t,e)){const{title:i}=r.internalProps.layoutMap.getHeader(t,e);return"function"==typeof i?i():i}if(r.internalProps.layoutMap.isAggregation(t,e)){if(r.internalProps.layoutMap.isTopAggregation(t,e)){const i=r.internalProps.layoutMap.getAggregatorOnTop(t,e);return i?.formatValue?i.formatValue(t,e,this):""}if(r.internalProps.layoutMap.isBottomAggregation(t,e)){const i=r.internalProps.layoutMap.getAggregatorOnBottom(t,e);return i?.formatValue?i.formatValue(t,e,this):""}}const{field:n,fieldFormat:o}=r.internalProps.layoutMap.getBody(t,e);return r.getFieldData(o||n,t,e)}getCellOriginValue(t,e){if(-1===t||-1===e)return null;const i=this;if(i.internalProps.layoutMap.isSeriesNumber(t,e)){if(i.internalProps.layoutMap.isSeriesNumberInHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getSeriesNumberHeader(t,e);return r}const{format:r}=i.internalProps.layoutMap.getSeriesNumberBody(t,e);return"function"==typeof r?r(t,e,this):e-this.columnHeaderLevelCount}if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(i.internalProps.layoutMap.isAggregation(t,e)){if(i.internalProps.layoutMap.isTopAggregation(t,e)){const r=i.internalProps.layoutMap.getAggregatorOnTop(t,e);return r?.value()}if(i.internalProps.layoutMap.isBottomAggregation(t,e)){const r=i.internalProps.layoutMap.getAggregatorOnBottom(t,e);return r?.value()}}const{field:r}=i.internalProps.layoutMap.getBody(t,e);return i.getFieldData(r,t,e)}getCellRawValue(t,e){if(-1===t||-1===e)return null;const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}const{field:r}=i.internalProps.layoutMap.getBody(t,e);return i.getRawFieldData(r,t,e)}getRecordShowIndexByCell(t,e){const{layoutMap:i}=this.internalProps;return i.getRecordShowIndexByCell(t,e)}getRecordIndexByCell(t,e){const{layoutMap:i}=this.internalProps,r=i.getRecordShowIndexByCell(t,e);return this.dataSource.currentPagerIndexedData[r]}getTableIndexByRecordIndex(t){return this.transpose?this.dataSource.getTableIndex(t)+this.rowHeaderLevelCount:this.dataSource.getTableIndex(t)+this.columnHeaderLevelCount}getTableIndexByField(t){const e=this.internalProps.layoutMap.columnObjects.find((e=>e.field===t)),i=this.internalProps.layoutMap.getBodyLayoutRangeById(e.id);return this.transpose?i.start.row:i.start.col}getCellAddrByFieldRecord(t,e){return this.transpose?{col:this.getTableIndexByRecordIndex(e),row:this.getTableIndexByField(t)}:{col:this.getTableIndexByField(t),row:this.getTableIndexByRecordIndex(e)}}getCellOriginRecord(t,e){const i=this,r=i.getRecordShowIndexByCell(t,e);if(r>-1)return i.dataSource.get(r)}getCellRawRecord(t,e){const i=this,r=i.getRecordShowIndexByCell(t,e);if(r>-1)return i.dataSource.getRaw(r)}_canResizeColumn(t,e){const i=super._canResizeColumn(t,e);if(i&&!this.transpose){const i=this.internalProps.layoutMap.getBody(t,this.columnHeaderLevelCount),r=this.internalProps.layoutMap.isSeriesNumber(t,e);if(i?.disableColumnResize)return!1;if(r&&!0===this.internalProps.rowSeriesNumber.disableColumnResize)return!1}return i}updateOption(t){const e=this.internalProps;return super.updateOption(t),e.frozenColDragHeaderMode=t.frozenColDragHeaderMode,this.pagination=t.pagination,e.sortState=t.sortState,e.dataConfig={},this.showHeader=t.showHeader??!0,e.columns=t.columns?qH(t.columns,["children"]):t.header?qH(t.header,["children"]):[],this.internalProps.headerHelper.setTableColumnsEditor(),this.transpose=t.transpose??!1,this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.releaseList&&(e.releaseList.forEach((t=>t?.release?.())),e.releaseList=null),t.dataSource?mO(this,t.dataSource):t.records?this.setRecords(t.records,{sortState:t.sortState}):(this._resetFrozenColCount(),this.scenegraph.createSceneGraph(),this.render()),t.title&&(e.title=new VG(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),new Promise((t=>{setTimeout(t,0)}))}updatePagination(t){this.pagination&&("number"==typeof t.currentPage&&t.currentPage>=0&&(this.pagination.currentPage=t.currentPage),t.perPageCount&&(this.pagination.perPageCount=t.perPageCount||this.pagination.perPageCount),this.internalProps.layoutMap.clearCellRangeMap(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.dataSource.updatePagination(this.pagination),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.renderAsync())}refreshHeader(){const t=this,e=t.internalProps,i=t.transpose,r=t.showHeader;(e.layoutMap=new jG(this,e.columns??[],r,t.options.hierarchyIndent)).transpose=i,i||this.setMinMaxLimitWidth(!0),this.refreshRowColCount()}refreshRowColCount(){const t=this,{layoutMap:e}=t.internalProps;if(!e)return;const i=t.internalProps.dataSource?.length??0;e.recordsCount=i+(i>0?e.hasAggregationOnTopCount+e.hasAggregationOnBottomCount:0),t.transpose?(t.rowCount=e.rowCount??0,t.colCount=e.colCount??0,t.frozenRowCount=0,this.internalProps.frozenColCount=Math.max((e.headerLevelCount??0)+e.leftRowSeriesNumberColumnCount,this.options.frozenColCount??0),t.bottomFrozenRowCount!==(this.options.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=this.options.bottomFrozenRowCount??0),t.rightFrozenColCount!==(this.options.rightFrozenColCount??0)&&(t.rightFrozenColCount=this.options.rightFrozenColCount??0)):(t.colCount=e.colCount??0,t.rowCount=e.recordsCount*e.bodyRowSpanCount+e.headerLevelCount,this.internalProps.frozenColCount=this.options.frozenColCount??0,t.frozenRowCount=e.headerLevelCount,t.bottomFrozenRowCount!==(this.options.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=this.options.bottomFrozenRowCount??0),t.rightFrozenColCount!==(this.options.rightFrozenColCount??0)&&(t.rightFrozenColCount=this.options.rightFrozenColCount??0)),this.stateManager.setFrozenCol(this.internalProps.frozenColCount)}getFieldData(t,e,i){if(null===t)return null;const r=this;if(r.internalProps.layoutMap.isHeader(e,i))return null;const n=r.getRecordShowIndexByCell(r.transpose?e-r.internalProps.layoutMap.leftRowSeriesNumberColumnCount:e,i);return r.internalProps.dataSource.getField(n,t,e,i,this)}getRawFieldData(t,e,i){if(null===t)return null;const r=this;if(r.internalProps.layoutMap.isHeader(e,i))return null;const n=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource.getRawField(n,t,e,i,this)}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),n=this.internalProps.layoutMap.moveHeaderPosition(t,e);return n?("column"===n.moveType?(this.colWidthsMap.exchangeOrder(i.start.col,i.end.col-i.start.col+1,r.start.col,r.end.col-r.start.col+1,n.targetIndex),this.transpose||(this.colWidthsLimit={},this.setMinMaxLimitWidth())):n.targetIndex>n.sourceIndex?this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex+n.sourceSize-n.targetSize,n.targetSize,n.targetIndex):this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex,n.targetSize,n.targetIndex),n):null}changeRecordOrder(t,e){this.transpose?(t=this.getRecordShowIndexByCell(t,0),e=this.getRecordShowIndexByCell(e,0)):(t=this.getRecordShowIndexByCell(0,t),e=this.getRecordShowIndexByCell(0,e)),this.dataSource.reorderRecord(t,e)}getCellAddress(t,e){let i;for(let e=0;e<this.internalProps.records.length;e++){const r=this.internalProps.records[e];if("function"==typeof t)t(r)&&(i=e);else{let n=!0;for(const e in t)if(r[e]!==t[e]){n=!1;break}n&&(i=e)}if(Z(i))break}const r=this.getCellRangeByField(e,i);if(r)return{row:r.start.row,col:r.start.col}}getCellRangeByField(t,e){const{layoutMap:i}=this.internalProps,r=i.columnObjects.find((e=>e.field===t));if(r){const t=i.getBodyLayoutRangeById(r.id);let n;return Z(e)&&(n=i.getRecordStartRowByRecordIndex(e)),this.transpose?{start:{row:t.start.row,col:Z(n)?n+t.start.col:void 0},end:{row:t.end.row,col:Z(n)?n+t.end.col:void 0}}:{start:{col:t.start.col,row:Z(n)?n+t.start.row:void 0},end:{col:t.end.col,row:Z(n)?n+t.end.row:void 0}}}return null}getHierarchyState(t,e){if(!this.getBodyColumnDefine(t,e).tree)return yE.none;const i=this.getRecordShowIndexByCell(t,e);return this.dataSource.getHierarchyState(i)}toggleHierarchyState(t,e){this.stateManager.updateHoverIcon(t,e,void 0,void 0);const i=this.getHierarchyState(t,e);if(i===yE.expand)this._refreshHierarchyState(t,e),this.fireListeners(IL.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.collapse});else if(i===yE.collapse){const i=this.getCellOriginRecord(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(IL.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.expand,originData:i})}}_refreshHierarchyState(t,e){let i=!1,r=!1;const n=this.internalProps.layoutMap.checkHasChart();n&&(this.autoFillWidth&&(i=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(r=this.getAllRowsHeight()<=this.tableNoFrameHeight));const o=this.getRecordShowIndexByCell(t,e),s=this.dataSource.toggleHierarchyState(o,this.scenegraph.proxy.rowStart-this.columnHeaderLevelCount,Math.max(this.scenegraph.proxy.rowEnd-this.columnHeaderLevelCount,this.scenegraph.proxy.rowStart-this.columnHeaderLevelCount+this.scenegraph.proxy.rowLimit-1)),a=this.internalProps.layoutMap.toggleHierarchyState(s);this.refreshRowColCount(),this.clearCellStyleCache(),this.internalProps.layoutMap.clearCellRangeMap(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.updateHierarchyIcon(t,e),this.scenegraph.updateRow(a.removeCellPositions,a.addCellPositions),n&&(this.autoFillWidth&&!i&&(i=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&!r&&(r=this.getAllRowsHeight()<=this.tableNoFrameHeight),("adaptive"===this.widthMode||i||"adaptive"===this.heightMode||r)&&this.scenegraph.updateChartSize(0))}_hasHierarchyTreeHeader(){return(this.options.columns??this.options.header)?.some(((t,e)=>t.tree))}getMenuInfo(t,e,i){return{field:this.getHeaderField(t,e),value:this.getCellValue(t,e),cellLocation:this.getCellLocation(t,e),event:void 0}}_getSortFuncFromHeaderOption(t,e,i){if(t||(t=this.internalProps.columns),e&&t&&t.length>0)for(let r=0;r<t.length;r++){const n=t[r];if((i&&i===n.fieldKey||!i&&n.field===e)&&n.sort&&"function"==typeof n.sort)return n.sort;if(n.columns){const t=this._getSortFuncFromHeaderOption(n.columns,e,i);if(t)return t}}}updateSortState(t,e=!0){let i,r;if(t?this.internalProps.sortState=t:this.internalProps.sortState&&(Array.isArray(this.internalProps.sortState)?(t=this.internalProps.sortState?.[0],t&&(t.order="normal")):(this.internalProps.sortState.order="normal",t=this.internalProps.sortState)),Array.isArray(this.internalProps.sortState)?this.internalProps.sortState?.[0]&&({order:i,field:r}=this.internalProps.sortState?.[0]):this.internalProps.sortState&&({order:i,field:r}=this.internalProps.sortState),r&&e){const t=this._getSortFuncFromHeaderOption(this.internalProps.columns,r),e=this.internalProps.layoutMap.headerObjects.find((t=>t&&t.field===r));!1!==e.define.sort&&(this.dataSource.sort(e.field,i,t),this.internalProps.layoutMap.clearCellRangeMap(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.sortCell())}t&&this.stateManager.updateSortState(t)}updateFilterRules(t){this.scenegraph.clearCells(),this.sortState?(this.dataSource.updateFilterRulesForSorted(t),vO(this)):this.dataSource.updateFilterRules(t),this.refreshRowColCount(),this.scenegraph.createSceneGraph()}getCheckboxState(t){return this.stateManager.checkedState.length<this.rowCount-this.columnHeaderLevelCount&&this.stateManager.initLeftRecordsCheckState(this.records),Z(t)?this.stateManager.checkedState.map((e=>e[t])):this.stateManager.checkedState}getCellCheckboxState(t,e){const i=this.getBodyColumnDefine(t,e),r=i?.field,n=this.getCellType(t,e);if(Z(r)&&"checkbox"===n){const i=this.dataSource.getIndexKey(this.getRecordShowIndexByCell(t,e));return this.stateManager.checkedState[i]?.[r]}}getRadioState(t){return Z(t)?this.stateManager.radioState[t]:this.stateManager.radioState}getCellRadioState(t,e){return function(t,e,i){const r=i.getBodyColumnDefine(t,e),n=r?.field,o=i.getCellType(t,e);if(Z(n)&&"checkbox"===o){const r=i.dataSource.getIndexKey(i.getRecordShowIndexByCell(t,e)),o=i.stateManager.radioState?.[n];if(at(o)){if(o===r)return!0}else if(J(o)){const t=o[r];if(at(t))return t}}return!1}(t,e,this)}setCellCheckboxState(t,e,i){!function(t,e,i,r){const n=r.scenegraph.getCell(t,e),o=n?.getChildByName("checkbox");if(!o)return;const{checked:s,indeterminate:a}=o.attribute;a?(i||o._handlePointerUp(),o._handlePointerUp()):s?i||o._handlePointerUp():i&&o._handlePointerUp()}(t,e,i,this)}setCellRadioState(t,e,i){!function(t,e,i,r){const n=r.scenegraph.getCell(t,e);if(n)if(at(i)){const t=n.getChildAt(i);t?._handlePointerUp()}else{const t=n.getChildByName("radio");t?._handlePointerUp()}}(t,e,i,this)}setRecords(t,e){let i;this.internalProps.dataSource?.release(),this.internalProps.releaseList=this.internalProps.releaseList?.filter((t=>!t.dataSourceObj)),this.internalProps.dataSource=null,Array.isArray(e)||e?.order?i=e:e?i=e.sortState:null===e&&(i=null),"undefined"!=typeof window&&window.performance.now();const r={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};if(this.scenegraph.clearCells(),void 0!==i&&(this.internalProps.sortState=i,this.stateManager.setSortState(this.sortState)),t){if(fO(this,t),this.sortState){let t,e;if(Array.isArray(this.sortState)?0!==this.sortState.length&&({order:t,field:e}=this.sortState?.[0]):({order:t,field:e}=this.sortState),t&&e&&"normal"!==t){const i=this._getSortFuncFromHeaderOption(void 0,e),r=this.internalProps.layoutMap.headerObjectsIncludeHided.find((t=>t&&t.field===e));!1!==r.define.sort&&this.dataSource.sort(r.field,t,i??hL)}}this.refreshRowColCount()}else fO(this,t);this.stateManager.initCheckedState(t),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(r.col,r.row),this.internalProps.title&&!this.internalProps.title.isReleased&&(this._updateSize(),this.internalProps.title.resize(),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),this.render(),Z(r.col)&&Z(r.row)&&r.col>=0&&r.row>=0&&setTimeout((()=>{this.internalProps.tooltipHandler.showTooltip(r.col,r.row)}),0)}setRecordChildren(t,e,i){const r=this.getCellOriginRecord(e,i);r.children=t;const n=this.getRecordShowIndexByCell(e,i);this.dataSource.setRecord(r,n),this._refreshHierarchyState(e,i)}startEditCell(t,e){if(Z(t)&&Z(e))this.eventManager.isDraging=!1,this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Z(t)&&Z(e)&&this.editorManager.startEditCell(t,e)}}completeEditCell(){this.editorManager.completeEdit()}getEditor(t,e){const i=this.getBodyColumnDefine(t,e);let r=this.isHeader(t,e)?i?.headerEditor??this.options.headerEditor:i?.editor??this.options.editor;if("function"==typeof r){r=r({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return"string"==typeof r?kG(r):r}isHasEditorDefine(t,e){const i=this.getBodyColumnDefine(t,e);let r=this.isHeader(t,e)?i?.headerEditor??this.options.headerEditor:i?.editor??this.options.editor;if("function"==typeof r){r=r({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return Z(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){const r=this.getRecordShowIndexByCell(t,e),{field:n}=this.internalProps.layoutMap.getBody(t,e),o=this.getCellRawValue(t,e),s=this.getCellOriginValue(t,e);this.isHeader(t,e)?this.internalProps.layoutMap.updateColumnTitle(t,e,i):this.dataSource.changeFieldValue(i,r,n,t,e,this);const a=this.getCellRange(t,e),l=this.internalProps.layoutMap.getAggregatorsByCell(t,e);if(l){if(Array.isArray(l))for(let t=0;t<l?.length;t++)l[t].recalculate();else l.recalculate();const t=this.internalProps.layoutMap.getAggregatorCellAddress(a.start.col,a.start.row,a.end.col,a.end.row);for(let e=0;e<t.length;e++){const i=this.getCellRange(t[e].col,t[e].row);for(let t=i.start.col;t<=i.end.col;t++)for(let e=i.start.row;e<=i.end.row;e++)this.scenegraph.updateCellContent(t,e)}}for(let t=a.start.col;t<=a.end.col;t++)for(let e=a.start.row;e<=a.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else if(!this.internalProps._widthResizedColMap.has(t)){const e=this.getColWidth(t),i=mD(t,0,this.rowCount-1,this,!1);i!==e&&this.scenegraph.updateColWidth(t,i-e)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)0===this.internalProps._heightResizedRowMap.size&&this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode&&!this.internalProps._heightResizedRowMap.has(e)){const t=this.getRowHeight(e),i=dz(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:o,currentValue:s,changedValue:this.getCellOriginValue(t,e)}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let n=t,o=e;const s=[],a=[];for(let r=0;r<i.length&&!(e+r>this.rowCount-1);r++){const n=i[r],o=[],l=[];s.push(o),a.push(l);for(let i=0;i<n.length&&!(t+i>this.colCount-1);i++){const n=this.getCellRawValue(t+i,e+r);o.push(n);const s=this.getCellOriginValue(t+i,e+r);l.push(s)}}for(let l=0;l<i.length&&!(e+l>this.rowCount-1);l++){o=e+l;const h=i[l];let c=t;for(let i=0;i<h.length&&!(t+i>this.colCount-1);i++)if(c=t+i,r&&this.isHasEditorDefine(t+i,e+l)||!1===r){const r=h[i],n=this.getRecordShowIndexByCell(t+i,e+l),{field:o}=this.internalProps.layoutMap.getBody(t+i,e+l),c=s[l][i],d=a[l][i];this.isHeader(t+i,e+l)?this.internalProps.layoutMap.updateColumnTitle(t+i,e+l,r):this.dataSource.changeFieldValue(r,n,o,t+i,e+l,this),this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t+i,row:e+l,rawValue:c,currentValue:d,changedValue:this.getCellOriginValue(t+i,e+l)})}n=Math.max(n,c)}const l=this.getCellRange(t,e),h=this.getCellRange(n,o),c=this.internalProps.layoutMap.getAggregatorsByCellRange(l.start.col,l.start.row,h.end.col,h.end.row);if(c){for(let t=0;t<c?.length;t++)c[t].recalculate();const t=this.internalProps.layoutMap.getAggregatorCellAddress(l.start.col,l.start.row,h.end.col,h.end.row);for(let e=0;e<t.length;e++){const i=this.getCellRange(t[e].col,t[e].row);for(let t=i.start.col;t<=i.end.col;t++)for(let e=i.start.row;e<=i.end.row;e++)this.scenegraph.updateCellContent(t,e)}}for(let t=l.start.col;t<=h.end.col;t++)for(let e=l.start.row;e<=h.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else for(let e=t;e<=h.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=mD(e,0,this.rowCount-1,this,!1);i!==t&&this.scenegraph.updateColWidth(e,i-t)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode){const t=[],i=[];for(let r=e;r<=h.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),n=dz(r,0,this.colCount-1,this);t.push(r),i.push(n-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}addRecord(t,e){if(this.sortState)this.dataSource.addRecordForSorted(t),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{(void 0===e||e>this.dataSource.sourceLength)&&(e=this.dataSource.sourceLength);const i=this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount;this.dataSource.addRecord(t,e);const r=this.rowCount;if(this.refreshRowColCount(),0===this.scenegraph.proxy.totalActualBodyRowCount)return this.scenegraph.clearCells(),void this.scenegraph.createSceneGraph();const n=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:t,currentPage:o}=this.pagination,s=t*(o||0)+t;if(e<s)if(e<s-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const o=e-(s-t)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=o;e<n;e++)this.transpose?t.push({col:e,row:0}):t.push({col:0,row:e});this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}else{const t=[];for(let e=o;e<Math.min(n,o+1);e++)this.transpose?t.push({col:e,row:0}):t.push({col:0,row:e});this.transpose?this.scenegraph.updateCol([],t,[]):this.scenegraph.updateRow([],t,[])}}}else{const t=[];for(let r=e+i;r<e+i+1;r++)this.transpose?t.push({col:r,row:0}):t.push({col:0,row:r});this.transpose?this.scenegraph.updateCol([],t,[]):this.scenegraph.updateRow([],t,[])}}}addRecords(t,e){if(this.sortState)this.dataSource.addRecordsForSorted(t),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{void 0===e||e>this.dataSource.sourceLength?e=this.dataSource.sourceLength:e<0&&(e=0);const i=this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount;this.dataSource.addRecords(t,e);const r=this.transpose?this.colCount:this.rowCount;if(this.refreshRowColCount(),0===this.scenegraph.proxy.totalActualBodyRowCount)return this.scenegraph.clearCells(),void this.scenegraph.createSceneGraph();const n=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:o,currentPage:s}=this.pagination,a=o*(s||0)+o;if(e<a)if(e<a-o)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const s=e-(a-o)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=s;e<n;e++)this.transpose?t.push({col:e,row:0}):t.push({col:0,row:e});this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}else{const e=[];for(let i=s;i<Math.min(n,s+(Array.isArray(t)?t.length:1));i++)this.transpose?e.push({col:i,row:0}):e.push({col:0,row:i});this.transpose?this.scenegraph.updateCol([],e,[]):this.scenegraph.updateRow([],e,[])}}}else{const r=[];for(let n=e+i;n<e+i+(Array.isArray(t)?t.length:1);n++)this.transpose?r.push({col:n,row:0}):r.push({col:0,row:n});this.transpose?this.scenegraph.updateCol([],r,[]):this.scenegraph.updateRow([],r,[])}}}deleteRecords(t){if(t?.length>0)if(this.sortState)this.dataSource.deleteRecordsForSorted(t),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const e=this.dataSource.deleteRecords(t);if(0===e.length)return;const i=this.transpose?this.colCount:this.rowCount;this.refreshRowColCount();const r=this.transpose?this.colCount:this.rowCount,n=e.sort(((t,e)=>t-e)),o=n[0];if(this.pagination){const{perPageCount:t,currentPage:e}=this.pagination,n=t*(e||0)+t;if(o<n)if(o<n-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const e=[],s=[];for(let i=o-(n-t)+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);i<r;i++)this.transpose?e.push({col:i,row:0}):e.push({col:0,row:i});if(r<i)for(let t=r;t<i;t++)this.transpose?s.push({col:t,row:0}):s.push({col:0,row:t});this.transpose?this.scenegraph.updateCol(s,[],e):this.scenegraph.updateRow(s,[],e)}}else{const t=[];for(let e=0;e<n.length;e++){const i=n[e]+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);this.transpose?t.push({col:i,row:0}):t.push({col:0,row:i})}this.transpose?this.scenegraph.updateCol(t,[],[]):this.scenegraph.updateRow(t,[],[])}}}updateRecords(t,e){if(e?.length>0)if(this.sortState)this.dataSource.updateRecordsForSorted(t,e),vO(this),this.refreshRowColCount(),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const i=this.dataSource.updateRecords(t,e);if(0===i.length)return;const r=i.sort(((t,e)=>t-e));if(this.pagination){const{perPageCount:t,currentPage:e}=this.pagination,i=t*(e||0)+t,n=[];for(let e=0;e<r.length;e++){const o=r[e];if(o<i&&o>=i-t){const e=o-(i-t)+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);n.push(e)}}if(n.length>=1){const t=[];for(let e=0;e<n.length;e++){const i=n[e];this.transpose?t.push({col:i,row:0}):t.push({col:0,row:i})}this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}}else{const t=[];for(let e=0;e<r.length;e++){const i=r[e]+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);this.transpose?t.push({col:i,row:0}):t.push({col:0,row:i})}this.transpose?this.scenegraph.updateCol([],[],t):this.scenegraph.updateRow([],[],t)}}}_hasCustomRenderOrLayout(){const{headerObjects:t}=this.internalProps.layoutMap;if(this.options.customRender)return!0;for(let e=0;e<t.length;e++){const i=t[e];if(i?.define?.customLayout||i?.define?.headerCustomLayout||i?.define?.customRender||i?.define?.headerCustomRender)return!0}return!1}getAggregateValuesByField(t){const e=this.internalProps.layoutMap.getColumnByField(t),i=[];for(let t=0;t<e.length;t++){const r=e[t].columnDefine.aggregator;if(delete e[t].columnDefine,r){const n={col:e[t].col,aggregateValue:null};if(n.aggregateValue=[],Array.isArray(r))for(let t=0;t<r.length;t++)n.aggregateValue.push({aggregationType:r[t].type,value:r[t].value()});else n.aggregateValue.push({aggregationType:r.type,value:r.value()});i.push(n)}}return i}isAggregation(t,e){return this.internalProps.layoutMap.isAggregation(t,e)}},t.PivotChart=class extends RG{layoutNodeId={seqId:0};pivotSortState;dataset;_selectedDataItemsInChart=[];_selectedDimensionInChart=[];_chartEventMap={};_axes;constructor(t,e){let i,r;"node"===YE.mode?(e=t,t=null):t instanceof HTMLElement||(e=t,t=t.container?t.container:null),super(t,e),e.layout&&Object.assign(e,e.layout),this.internalProps.columns=vt(e.columns),this.internalProps.rows=vt(e.rows),this.internalProps.indicators=qH(e.indicators),this.internalProps.columnTree=!e.indicatorsAsCol||e.columns?.length||e.columnTree?vt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?vt(e.rowTree):[],this.internalProps.records=e.records,this.setCustomStateNameToSpec(),this.internalProps.columnResizeType=e.columnResizeType??"column",this.internalProps.rowResizeType=e.rowResizeType??"row",this.internalProps.dataConfig={isPivotChart:!0},this._axes=nt(e.axes)?e.axes:[],e.columnTree&&(!1!==e.indicatorsAsCol&&(this.internalProps.columnTree=bG(this.internalProps.columnTree,e.indicators)),i=new cG(this.internalProps.columnTree??[],this.layoutNodeId)),e.rowTree&&(!1===e.indicatorsAsCol&&(this.internalProps.rowTree=bG(this.internalProps.rowTree,e.indicators)),r=new cG(this.internalProps.rowTree??[],this.layoutNodeId));const n=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],o=i?.dimensionKeys?.count?i.dimensionKeys.valueArr():e.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],s=e.indicators?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.indicatorKey),t)),[])??[];if(this.internalProps.dataConfig.collectValuesBy=this._generateCollectValuesConfig(o,n),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new ZG(this.internalProps.dataConfig,n,o,s,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&zG(this.internalProps.indicators)){const t=e=>{e.forEach((e=>{e.children?.length?t(e.children):e.children=[{dimensionKey:"axis",value:""}]}))};this.dataset.rowHeaderTree?.length?t(this.dataset.rowHeaderTree):this.dataset.rowHeaderTree=[{dimensionKey:"axis",value:""}]}e.columnTree||!1!==e.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,e.indicators)),e.rowTree||!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,e.indicators)),i=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId),this.internalProps.layoutMap=new YG(this,this.dataset,i,r),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new VG(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(IL.INITIALIZED,null)}),0)}static get EVENT_TYPE(){return zW}get pivotChartAxes(){return this._axes}get recordsCount(){return this.records?.length}isListTable(){return!1}isPivotTable(){return!0}isPivotChart(){return!0}_canResizeColumn(t,e){const i=super._canResizeColumn(t,e);if(i&&!this.internalProps.layoutMap.indicatorsAsCol){const e=this.internalProps.layoutMap.getBody(t,this.columnHeaderLevelCount);if(e?.disableColumnResize)return!1}return i}updateOption(t){const e=this.internalProps;let i,r;super.updateOption(t),this.layoutNodeId={seqId:0},this.internalProps.columns=vt(t.columns),this.internalProps.rows=vt(t.rows),this.internalProps.indicators=t.indicators?.length?qH(t.indicators):[],this.internalProps.columnTree=!t.indicatorsAsCol||t.columns?.length||t.columnTree?vt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?vt(t.rowTree):[],t.records&&(this.internalProps.records=t.records),this.setCustomStateNameToSpec(),this._selectedDataItemsInChart=[],e.columnResizeType=t.columnResizeType??"column",e.rowResizeType=t.rowResizeType??"row",e.dataConfig={isPivotChart:!0},this._axes=nt(t.axes)?t.axes:[],t.columnTree&&(!1!==t.indicatorsAsCol&&(this.internalProps.columnTree=bG(this.internalProps.columnTree,t.indicators)),i=new cG(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(!1===t.indicatorsAsCol&&(this.internalProps.rowTree=bG(this.internalProps.rowTree,t.indicators)),r=new cG(this.internalProps.rowTree??[],this.layoutNodeId));const n=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():t.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],o=i?.dimensionKeys?.count?i.dimensionKeys.valueArr():t.columns?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],s=t.indicators?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.indicatorKey),t)),[])??[];if(this.internalProps.dataConfig.collectValuesBy=this._generateCollectValuesConfig(o,n),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new ZG(this.internalProps.dataConfig,n,o,s,this.internalProps.indicators,t.indicatorsAsCol??!0,t.records??this.internalProps.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&zG(this.internalProps.indicators)){const t=e=>{e.forEach((e=>{e.children?.length?t(e.children):e.children=[{dimensionKey:"axis",value:""}]}))};this.dataset.rowHeaderTree?.length?t(this.dataset.rowHeaderTree):this.dataset.rowHeaderTree=[{dimensionKey:"axis",value:""}]}return t.columnTree||!1!==t.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,t.indicators)),t.rowTree||!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,t.indicators)),i=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId),e.layoutMap=new YG(this,this.dataset,i,r),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.releaseList&&(e.releaseList.forEach((t=>t?.release?.())),e.releaseList=null),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph(),t.title&&(this.internalProps.title=new VG(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),new Promise((t=>{setTimeout(t,0)}))}updatePagination(){}refreshHeader(){this.setMinMaxLimitWidth(!0),this.refreshRowColCount()}refreshRowColCount(){const t=this,{layoutMap:e}=t.internalProps;e&&(t.colCount=e.colCount??0,t.rowCount=e.rowCount??0,t.internalProps.frozenColCount=e.rowHeaderLevelCount??0,t.frozenRowCount=e.headerLevelCount,t.bottomFrozenRowCount!==(e?.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=e?.bottomFrozenRowCount??0),t.rightFrozenColCount!==(e?.rightFrozenColCount??0)&&(t.rightFrozenColCount=e?.rightFrozenColCount??0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount))}_getSortFuncFromHeaderOption(t,e,i){}syncHierarchyState(t,e){t.value===e.value&&t.dimensionKey===e.dimensionKey&&(e.hierarchyState=e.hierarchyState??(e?.children?t.hierarchyState:void 0),e?.children?.forEach(((e,i)=>{t?.children?.[i]&&e&&this.syncHierarchyState(t.children[i],e)})))}getRecordShowIndexByCell(t,e){}getTableIndexByRecordIndex(t){}getTableIndexByField(t){}getCellAddrByFieldRecord(t,e){}getBodyIndexByRow(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByRow(t)}getBodyIndexByCol(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByCol(t)}getCellValue(t,e,i){if(!i){const i=this.getCustomMergeValue(t,e);if(i)return i}if(this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.layoutMap.isBottomFrozenRow(t,e)||this.internalProps.layoutMap.isRightFrozenColumn(t,e)){const i=this.internalProps.layoutMap.getIndicatorKeyInChartSpec(t,e);let r;return i?.forEach((t=>{const e=this.internalProps.layoutMap.getIndicatorInfo(t);e&&(r=e)})),r?.title??r?.indicatorKey??""}const{title:i,fieldFormat:r}=this.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r(i,t,e,this):i}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const{fieldFormat:r}=this.internalProps.layoutMap.getBody(t,e),n=this.getBodyIndexByRow(e),o=this.getBodyIndexByCol(t),s=this.records[n]?.[o];if("function"==typeof r){return r(s,t,e,this)}return s}getCellOriginValue(t,e){const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.layoutMap.isBottomFrozenRow(t,e)||this.internalProps.layoutMap.isRightFrozenColumn(t,e)){const i=this.internalProps.layoutMap.getIndicatorKeyInChartSpec(t,e);let r;return i?.forEach((t=>{const e=this.internalProps.layoutMap.getIndicatorInfo(t);e&&(r=e)})),r?.title??r?.indicatorKey??""}const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const r=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t),o=this.records[r]?.[n];return o}getCellRawValue(t,e){return this.getCellOriginValue(t,e)}getCellOriginRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)&&this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i).records}}getCellRawRecord(t,e){return this.getCellOriginRecord(t,e)}getPivotSortState(t,e){if(!this.pivotSortState)return;const i=this.getCellRange(t,e);for(let t=0;t<this.pivotSortState.length;t++){const{col:e,row:r,order:n}=this.pivotSortState[t];if(ML(i,e,r))return n}}_moveHeaderPosition(t,e){const i=this.internalProps.layoutMap.moveHeaderPosition(t,e);if(i){if("column"===i.moveType){if(this.options.records?.[0]?.constructor===Array)for(let t=0;t<this.internalProps.records.length;t++){const e=this.internalProps.records[t].splice(i.sourceIndex-this.rowHeaderLevelCount,i.sourceSize);e.unshift(i.targetIndex-this.rowHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records[t],e)}this.colWidthsMap.adjustOrder(i.sourceIndex,i.targetIndex,i.sourceSize),this.setMinMaxLimitWidth()}else if("row"===i.moveType){if(this.options.records?.[0]?.constructor===Array){const t=this.internalProps.records.splice(i.sourceIndex-this.columnHeaderLevelCount,i.sourceSize);t.unshift(i.targetIndex-this.columnHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records,t)}this.rowHeightsMap.adjustOrder(i.sourceIndex,i.targetIndex,i.sourceSize)}return i}return null}toggleHierarchyState(t,e){}getHeaderCellAddressByPath(t){return this.internalProps.layoutMap.getPivotCellAdress(t)}getCellAddressByHeaderPaths(t){return this.internalProps.layoutMap.getCellAdressByHeaderPath(t)}getHeaderPathByXY(t){let e;e=t?this.getCellAt(t.x+this.getFrozenColsWidth()+this.scrollLeft+1,t.y+this.getFrozenRowsHeight()+this.scrollTop+1):this.getCellAt(this.getFrozenColsWidth()+this.scrollLeft+1,this.getFrozenRowsHeight()+this.scrollTop+1);return this.internalProps.layoutMap.getCellHeaderPaths(e.col,e.row)}getHierarchyState(t,e){return this._getHeaderLayoutMap(t,e)?.hierarchyState}_hasHierarchyTreeHeader(){return"tree"===this.internalProps.layoutMap.rowHierarchyType}getMenuInfo(t,e,i){const r=this.internalProps.layoutMap.getPivotDimensionInfo(t,e);return{dimensionKey:r[r.length-1].dimensionKey,value:this.getCellValue(t,e),cellLocation:this.getCellLocation(t,e),isPivotCorner:this.isCornerHeader(t,e),event:void 0}}_generateCollectValuesConfig(t,e){t=t.filter((t=>t!==QL)),e=e.filter((t=>t!==QL));const i=this.internalProps.indicators,r={};for(let n=0,o=i?.length;n<o;n++)if("string"!=typeof i[n]&&i[n].chartSpec){if("pie"===i[n].chartSpec?.type||"rose"===i[n].chartSpec?.type||"radar"===i[n].chartSpec?.type||"gauge"===i[n].chartSpec?.type||"wordCloud"===i[n].chartSpec?.type)continue;const o=i[n],s=o.chartSpec;if(!1===this.options.indicatorsAsCol)if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[o.indicatorKey]={by:e,range:!0,sumBy:s?.stack&&t.concat(s?.xField)},s.series)s.series.forEach((i=>{const n="string"==typeof i.xField?i.xField:i.xField[0];r[n]={by:t,type:"horizontal"!==i.direction?"xField":void 0,range:"scatter"===i.type||"horizontal"===i.direction,sortBy:"horizontal"!==i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0};const o=i.yField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[o]={by:e,range:"scatter"===i.type||"horizontal"!==i.direction,sumBy:i.stack&&t.concat(i?.xField),sortBy:"horizontal"===i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0,extendRange:wO(s.markLine)}}));else{const i="string"==typeof s.xField?s.xField:s.xField[0];r[i]={by:t,type:"horizontal"!==s.direction?"xField":void 0,range:"scatter"===s.type||"horizontal"===s.direction,sortBy:"horizontal"!==s.direction?s?.data?.fields?.[i]?.domain:void 0},!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0);const n=s.yField;r[n]={by:e,range:"horizontal"!==s.direction,sumBy:s.stack&&t.concat(s?.xField),sortBy:"horizontal"===s.direction?s?.data?.fields?.[n]?.domain:void 0,extendRange:wO(s.markLine)}}else{const o=i[n];if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[o.indicatorKey]={by:t,range:!0,sumBy:s?.stack&&e.concat(s?.yField)},s.series)s.series.forEach((i=>{const n="string"==typeof i.yField?i.yField:i.yField[0];r[n]={by:e,type:"horizontal"===i.direction?"yField":void 0,range:"scatter"===i.type||"horizontal"!==i.direction,sortBy:"horizontal"===i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0};const o=i.xField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[o]={by:t,range:"scatter"===i.type||"horizontal"===i.direction,sumBy:i.stack&&e.concat(i?.yField),sortBy:"horizontal"!==i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0,extendRange:wO(s.markLine)}}));else{const i="string"==typeof s.yField?s.yField:s.yField[0];r[i]={by:e,type:"horizontal"===s.direction?"yField":void 0,range:"scatter"===s.type||"horizontal"!==s.direction,sortBy:"horizontal"===s.direction?s?.data?.fields?.[i]?.domain:void 0},!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0);const n=s.xField;r[n]={by:t,range:"scatter"===s.type||"horizontal"===s.direction,sumBy:s.stack&&e.concat(s?.yField),sortBy:"horizontal"!==s.direction?s?.data?.fields?.[n]?.domain:void 0,extendRange:wO(s.markLine)}}}}return r}_generateAggregationRules(){const t=[];return this.internalProps.indicators?.forEach((e=>{if("string"==typeof e)t.push({indicatorKey:e,field:e,aggregationType:vE.RECORD});else if(e.chartSpec?.series){const i=[];e.chartSpec?.series.forEach((t=>{const e=!1===this.options.indicatorsAsCol?t.yField:t.xField;-1===i.indexOf(e)&&i.push(e)})),t.push({indicatorKey:e.indicatorKey,field:i,aggregationType:vE.RECORD})}else{const i=!1===this.options.indicatorsAsCol?e.chartSpec.yField:e.chartSpec.xField;t.push({indicatorKey:e.indicatorKey,field:i??e.indicatorKey,aggregationType:vE.RECORD})}})),t}setCustomStateNameToSpec(){const t=t=>{t.bar?.state?.selected&&(t.bar.state.vtable_selected=t.bar.state.selected,t.bar.state.vtable_selected_reverse=t.bar.state.selected_reverse,delete t.bar.state.selected,delete t.bar.state.selected_reverse),t.point?.state?.selected&&(t.point.state.vtable_selected=t.point.state.selected,t.point.state.vtable_selected_reverse=t.point.state.selected_reverse,delete t.point.state.selected,delete t.point.state.selected_reverse),t.line?.state?.selected&&(t.line.state.vtable_selected=t.line.state.selected,t.line.state.vtable_selected_reverse=t.line.state.selected_reverse,delete t.line.state.selected,delete t.line.state.selected_reverse),t.area?.state?.selected&&(t.area.state.vtable_selected=t.area.state.selected,t.area.state.vtable_selected_reverse=t.area.state.selected_reverse,delete t.area.state.selected,delete t.area.state.selected_reverse)};this.internalProps.indicators?.forEach((e=>{if(e.chartSpec){const i=e.chartSpec;i.series?i.series.forEach((e=>{t(e)})):t(i)}}))}updateFilterRules(t){this.internalProps.dataConfig.filterRules=t,this.dataset.updateFilterRules(t),fW(this.scenegraph),function(t){const e=t.table;for(let i=t.proxy.colStart;i<=t.proxy.colEnd;i++){const r=t.getColGroup(i);r?.getChildren()?.forEach((t=>{const i=t.col,r=t.row;t.children.forEach((t=>{if("chart"===t.type){t.updateData(e.getCellValue(i,r));const n=e.internalProps.layoutMap.getChartAxes(i,r);t.setAttribute("axes",n);const o=t.attribute.spec;o.axes=n,t.setAttribute("spec",o)}}))}))}mW(t.rowHeaderGroup,t.table),mW(t.colHeaderGroup,t.table),mW(t.rightFrozenGroup,t.table),mW(t.bottomFrozenGroup,t.table)}(this.scenegraph),this.render()}getLegendSelected(){const t=[];return this.internalProps.legends?.forEach((e=>{const i=e.legendComponent._getSelectedLegends().map((t=>t.label));t.push(...i)})),t}setLegendSelected(t){this.internalProps.legends?.forEach((e=>{e.legendComponent.setSelected(t)}))}getChartDatumPosition(t,e){const{chartInstance:i,bounds:r}=this.getChartInstance(e);if(i){const e=i.convertDatumToPosition(t);return e?{x:Math.round(e.x+r.x1),y:Math.round(e.y+r.y1)}:null}return null}getCellAddressByRecord(t){const e=[],i=[],r={},n=[];this.dataset.dataConfig.aggregationRules.forEach((t=>{if("string"==typeof t.field)r[t.field]=t.indicatorKey,n.push(t.field);else for(let e=0;e<t.field.length;e++)r[t.field[e]]=t.indicatorKey,n.push(t.field[e])}));for(const o in t)this.dataset.rows.indexOf(o)>=0&&e.push({dimensionKey:o,value:t[o]}),this.dataset.columns.indexOf(o)>=0&&i.push({dimensionKey:o,value:t[o]}),n.indexOf(o)>=0&&(this.dataset.indicatorsAsCol?i.push({indicatorKey:r[o]}):e.push({indicatorKey:r[o]}));return this.getCellAddressByHeaderPaths({rowHeaderPaths:e,colHeaderPaths:i,cellLocation:"body"})}getChartInstance(t){const e=this.getCellAddressByHeaderPaths(t);if(e){const t=this.getCellRelativeRect(e.col,e.row),i=this.scenegraph.getCell(e.col,e.row);let r;const n=i?.getChildren()?.[0];if(n.attribute.chartInstance){r=n.attribute.chartInstance;const{dataId:t,data:e,axes:i,spec:o}=n.attribute,s=n.getViewBox();if(i?.forEach(((t,e)=>{"linear"===t.type?r.updateModelSpecSync({type:"axes",index:e},{min:t.range?.min??0,max:t.range?.max??0},!0):"band"===t.type&&r.updateModelSpec({type:"axes",index:e},{domain:t.domain.slice(0)},!0)})),r.updateViewBox({x1:s.x1-n.getRootNode().table.scrollLeft,x2:s.x2-n.getRootNode().table.scrollLeft,y1:s.y1-n.getRootNode().table.scrollTop,y2:s.y2-n.getRootNode().table.scrollTop},!1,!1),"string"==typeof t)r.updateDataSync(t,e??[]);else{const i=[];for(const n in t){const s=t[n],a=o.series.find((t=>t?.data?.id===n));i.push({id:n,values:s?e?.filter((t=>t.hasOwnProperty(s)))??[]:e??[],fields:a?.data?.fields}),r.updateFullDataSync||r.updateDataSync(n,s?e?.filter((t=>t.hasOwnProperty(s)))??[]:e??[])}r.updateFullDataSync?.(i)}this.renderAsync()}return{chartInstance:r,bounds:t.bounds}}return{}}_getDimensionSortArray(){if(this.options?.axes?.length){const t=this.options.indicatorsAsCol?"left":"bottom",e=this.options.axes.find((e=>e.orient===t));if(e&&nt(e.domain))return e.domain}}setRecords(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.options.records=this.internalProps.records=t;const i=this.options,r=this.internalProps;let n,o;this.dataset.setRecords(t),n=i.columnTree?r.layoutMap.columnDimensionTree:new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),o=i.rowTree?r.layoutMap.rowDimensionTree:new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId),r.layoutMap=new YG(this,this.dataset,n,o),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.internalProps.title&&!this.internalProps.title.isReleased&&(this._updateSize(),this.internalProps.title.resize(),this.scenegraph.resize()),this.eventManager.updateEventBinder()}_hasCustomRenderOrLayout(){if(this.options.customRender)return!0;const{columnsDefine:t,rowsDefine:e,indicatorsDefine:i}=this.internalProps.layoutMap;for(let e=0;e<t.length;e++){const i=t[e];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<e.length;t++){const i=e[t];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<i.length;t++){const e=i[t];if("string"!=typeof e&&(e.customLayout||e.headerCustomLayout||e.customRender||e.headerCustomRender))return!0}return!1}changeRecordOrder(t,e){}getLayoutColumnTree(){return this.internalProps.layoutMap.getLayoutColumnTree()}getLayoutColumnTreeCount(){return this.internalProps.layoutMap.getLayoutColumnTreeCount()}getLayoutRowTree(){return this.internalProps.layoutMap.getLayoutRowTree()}getLayoutRowTreeCount(){return this.internalProps.layoutMap.getLayoutRowTreeCount()}getCellHeaderTreeNodes(t,e){return this.internalProps.layoutMap.getCellHeaderPathsWithTreeNode(t,e)}},t.PivotTable=class extends RG{layoutNodeId={seqId:0};pivotSortState;editorManager;dataset;flatDataToObjects;constructor(t,e){if("node"===YE.mode?(e=t,t=null):t instanceof HTMLElement||(e=t,t=t.container?t.container:null),super(t,e),e){e.layout&&Object.assign(e,e.layout),this.internalProps.columns=vt(e.columns),this.internalProps.rows=vt(e.rows),this.internalProps.indicators=qH(e.indicators),e.indicators?.forEach(((t,e)=>{"object"==typeof t&&t?.editor&&(this.internalProps.indicators[e].editor=t.editor)})),this.internalProps.columnTree=!e.indicatorsAsCol||e.columns?.length||e.columnTree?vt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?vt(e.rowTree):[],this.internalProps.records=e.records,this.pagination=e.pagination,this.internalProps.columnResizeType=e.columnResizeType??"column",this.internalProps.rowResizeType=e.rowResizeType??"row",this.internalProps.dataConfig=vt(e.dataConfig);const t=this.internalProps.records;if(this.internalProps.recordsIsTwoDimensionalArray=!1,t?.[0]?.constructor===Array&&(this.internalProps.recordsIsTwoDimensionalArray=!0),!1===e.customConfig?.enableDataAnalysis){const e=new cG(this.internalProps.columnTree??[],this.layoutNodeId),i=new cG(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0);this.internalProps.layoutMap=new YG(this,null,e,i),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new qG({rows:this.internalProps.layoutMap.fullRowDimensionKeys,columns:this.internalProps.layoutMap.colDimensionKeys,indicators:this.internalProps.layoutMap.indicatorKeys,indicatorsAsCol:this.internalProps.layoutMap.indicatorsAsCol,indicatorDimensionKey:this.internalProps.layoutMap.indicatorDimensionKey},t))}else{const t=mG(this,e),{rowKeys:i,columnKeys:r,indicatorKeys:n}=t;let{columnDimensionTree:o,rowDimensionTree:s}=t;this.dataset=new ZG(this.internalProps.dataConfig,i,r,n,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,e.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),e.columnTree||(!1!==e.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,e.indicators)),o=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId)),e.rowTree||(!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,e.indicators)),s=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),this.internalProps.layoutMap=new YG(this,this.dataset,o,s)}this._changePivotSortStateBySortRules(),(e.pivotSortState?.length??0)>0&&(this.pivotSortState=[],this.pivotSortState=e.pivotSortState),"node"!==YE.mode&&(this.editorManager=new UG(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.stateManager.initCheckedState(t),this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new VG(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(IL.INITIALIZED,null)}),0)}}static get EVENT_TYPE(){return FW}isListTable(){return!1}isPivotTable(){return!0}isPivotChart(){return!1}get recordsCount(){return this.records?.length}_canResizeColumn(t,e){const i=super._canResizeColumn(t,e);if(i){if(this.internalProps.layoutMap.isSeriesNumber(t,e)&&!0===this.internalProps.rowSeriesNumber.disableColumnResize)return!1;if(!this.internalProps.layoutMap.indicatorsAsCol){const e=this.internalProps.layoutMap.getBody(t,this.columnHeaderLevelCount);if(e?.disableColumnResize)return!1}}return i}updateOption(t){const e=this.internalProps;if(super.updateOption(t),this.layoutNodeId={seqId:0},this.internalProps.columns=vt(t.columns),this.internalProps.rows=vt(t.rows),this.internalProps.indicators=t.indicators?.length?qH(t.indicators):[],t.indicators?.forEach(((t,e)=>{"object"==typeof t&&t?.editor&&(this.internalProps.indicators[e].editor=t.editor)})),this.internalProps.columnTree=!t.indicatorsAsCol||t.columns?.length||t.columnTree?vt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?vt(t.rowTree):[],t.records&&(this.internalProps.records=t.records),this.stateManager.initCheckedState(this.internalProps.records),this.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1),this.pagination=t.pagination,e.columnResizeType=t.columnResizeType??"column",e.rowResizeType=t.rowResizeType??"row",e.dataConfig=vt(t.dataConfig),"tree"===t?.rowHierarchyType&&"tree"===this.internalProps.layoutMap.rowHierarchyType&&this.internalProps.layoutMap.rowExpandLevel===t?.rowExpandLevel){const t=this.internalProps.layoutMap.rowDimensionTree.tree.children;this.internalProps.rowTree?.forEach(((e,i)=>{const r=t.find((t=>t.dimensionKey===e.dimensionKey&&t.value===e.value));r&&this.syncHierarchyState(r,e)}))}const i=this.internalProps.records;if(this.internalProps.recordsIsTwoDimensionalArray=!1,i?.[0]?.constructor===Array&&(this.internalProps.recordsIsTwoDimensionalArray=!0),!1===t.customConfig?.enableDataAnalysis){let r,n;t.columnTree&&(r=new cG(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(n=new cG(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new YG(this,null,r,n),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new qG({rows:e.layoutMap.fullRowDimensionKeys,columns:e.layoutMap.colDimensionKeys,indicators:e.layoutMap.indicatorKeys,indicatorsAsCol:e.layoutMap.indicatorsAsCol,indicatorDimensionKey:e.layoutMap.indicatorDimensionKey},i))}else{const r=mG(this,t),{rowKeys:n,columnKeys:o,indicatorKeys:s}=r;let{columnDimensionTree:a,rowDimensionTree:l}=r;this.dataset=new ZG(e.dataConfig,n,o,s,this.internalProps.indicators,t.indicatorsAsCol??!0,i,t.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),t.columnTree||(!1!==t.indicatorsAsCol&&(this.dataset.colHeaderTree=bG(this.dataset.colHeaderTree,t.indicators)),a=new cG(this.dataset.colHeaderTree??[],this.layoutNodeId)),t.rowTree||(!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=bG(this.dataset.rowHeaderTree,t.indicators)),l=new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new YG(this,this.dataset,a,l)}return this._changePivotSortStateBySortRules(),(t.pivotSortState?.length??0)>0&&(this.pivotSortState=[],this.pivotSortState=t.pivotSortState),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.releaseList&&(e.releaseList.forEach((t=>t?.release?.())),e.releaseList=null),this.scenegraph.clearCells(),this.scenegraph.createSceneGraph(),t.title&&(this.internalProps.title=new VG(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),new Promise((t=>{setTimeout(t,0)}))}updatePagination(t){t?(this.pagination||(this.pagination={currentPage:0,perPageCount:0}),"number"==typeof t.currentPage&&t.currentPage>=0&&(this.pagination.currentPage=t.currentPage),t.perPageCount&&(this.pagination.perPageCount=t.perPageCount||this.pagination.perPageCount),this.scenegraph.clearCells(),this.internalProps.layoutMap.setPagination(this.pagination),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.render()):this.pagination&&(this.pagination=void 0,this.scenegraph.clearCells(),this.internalProps.layoutMap.setPagination(void 0),this.refreshRowColCount(),this.scenegraph.createSceneGraph(),this.render())}refreshHeader(){this.setMinMaxLimitWidth(!0),this.refreshRowColCount()}refreshRowColCount(){const t=this,{layoutMap:e}=t.internalProps;e&&(t.colCount=e.colCount??0,t.rowCount=e.rowCount??0,this.internalProps.frozenColCount=Math.max((e.rowHeaderLevelCount??0)+e.leftRowSeriesNumberColumnCount,this.options.frozenColCount??0),t.frozenRowCount=e.headerLevelCount,t.bottomFrozenRowCount!==(this.options.bottomFrozenRowCount??0)&&(t.bottomFrozenRowCount=this.options.bottomFrozenRowCount??0),t.rightFrozenColCount!==(this.options.rightFrozenColCount??0)&&(t.rightFrozenColCount=this.options.rightFrozenColCount??0),this.stateManager.setFrozenCol(this.internalProps.frozenColCount))}_getSortFuncFromHeaderOption(t,e,i){}get rowHierarchyType(){return this.internalProps.layoutMap.rowHierarchyType}syncHierarchyState(t,e){t.value===e.value&&t.dimensionKey===e.dimensionKey&&(e.hierarchyState=e.hierarchyState??(e?.children?t.hierarchyState:void 0),e?.children?.forEach(((e,i)=>{if(t?.children?.[i]&&e){const i=t.children.find((t=>t.dimensionKey===e.dimensionKey&&t.value===e.value));i&&this.syncHierarchyState(i,e)}})))}getRecordShowIndexByCell(t,e){}getTableIndexByRecordIndex(t){}getTableIndexByField(t){}getCellAddrByFieldRecord(t,e){}getBodyIndexByRow(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByRow(t)}getBodyIndexByCol(t){const{layoutMap:e}=this.internalProps;return e.getBodyIndexByCol(t)}getFieldData(t,e,i){if(!this.internalProps.layoutMap.isHeader(e,i)){if(this.internalProps.recordsIsTwoDimensionalArray){const t=this.getBodyIndexByRow(i),r=this.getBodyIndexByCol(e);return this.records[t]?.[r]}if(this.dataset){const r=this.internalProps.layoutMap.getCellHeaderPaths(e,i);if(r){let n;const o=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(n={position:"col",index:e}),t.indicatorKey??t.value))),s=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(n={position:"row",index:e}),t.indicatorKey??t.value))),a=this.dataset.getAggregator(s,o,this.internalProps.layoutMap.getIndicatorKey(e,i),!0,n);if(a.records&&a.records.length>=1)return a.records[0][t]}}else if(this.flatDataToObjects){const r=this.internalProps.layoutMap.getCellHeaderPaths(e,i),n=r.colHeaderPaths.map((t=>t.indicatorKey??t.value)),o=r.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),s=this.flatDataToObjects.getTreeNode(o,n,this.internalProps.layoutMap.getBody(e,i).indicatorKey,!1);if(s?.record)return s?.record[t]}}}getCellValue(t,e,i){if(!i){const i=this.getCustomMergeValue(t,e);if(i)return i}if(this.internalProps.layoutMap.isSeriesNumber(t,e)){if(this.internalProps.layoutMap.isSeriesNumberInHeader(t,e)){const{title:i}=this.internalProps.layoutMap.getSeriesNumberHeader(t,e);return i}const{format:i}=this.internalProps.layoutMap.getSeriesNumberBody(t,e);return"function"==typeof i?i(t,e,this):e-this.columnHeaderLevelCount+1}if(this.internalProps.layoutMap.isHeader(t,e)){const{title:i,fieldFormat:r}=this.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r(i,t,e,this):i}if(this.internalProps.recordsIsTwoDimensionalArray){const{fieldFormat:i}=this.internalProps.layoutMap.getBody(t,e),r=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t),o=this.records[r]?.[n];if("function"==typeof i){return i(o,t,e,this)}return o}if(this.dataset){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e);let r;const n=i.colHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"col",index:e}),t.indicatorKey??t.value))),o=i.rowHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,r),{fieldFormat:a}=this.internalProps.layoutMap.getBody(t,e);return s.formatValue?s.formatValue(t,e,this):"function"==typeof a?a(s?.value(),t,e,this):s?.value()??""}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey),{fieldFormat:s}=this.internalProps.layoutMap.getBody(t,e);return"function"==typeof s?s(o?.value,t,e,this):o?.value??""}}getCellOriginValue(t,e){const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return o?.value}}getCellRawValue(t,e){const i=this;if(i.internalProps.layoutMap.isHeader(t,e)){const{title:r}=i.internalProps.layoutMap.getHeader(t,e);return"function"==typeof r?r():r}if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!1,i);return s.value?s.value():void 0}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return o?.value}}getCellOriginRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i).records}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return o?.record}}}getCellRawRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),n=this.records[i]?.[r];return n}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),n=r.colHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),o=r.rowHeaderPaths?.filter((t=>!t.virtual)).map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(o,n,this.internalProps.layoutMap.getIndicatorKey(t,e),!1,i).records}if(this.flatDataToObjects){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e),r=i.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),o=this.flatDataToObjects.getTreeNode(n,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return o?.record}}}updateSortRules(t,e,i){this.internalProps.dataConfig?this.internalProps.dataConfig.sortRules=t:this.internalProps.dataConfig={sortRules:t},this.dataset.updateSortRules(t),this._changePivotSortStateBySortRules();const{layoutMap:r}=this.internalProps;r.resetHeaderTree(),this.scenegraph.clearCells(),at(e)&&at(i)?(this.isRowHeader(e,i)?(this.setMinMaxLimitWidth(!0),this.internalProps._widthResizedColMap.clear()):this.isCornerHeader(e,i)?"column"===r.cornerSetting.titleOnDimension?(this.setMinMaxLimitWidth(!0),this.internalProps._widthResizedColMap.clear()):"row"===r.cornerSetting.titleOnDimension&&this.internalProps._heightResizedRowMap.clear():this.isColumnHeader(e,i)&&this.internalProps._heightResizedRowMap.clear(),this.refreshRowColCount()):this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(!0),this.render()}_changePivotSortStateBySortRules(){this.pivotSortState=[];const t=this.internalProps.dataConfig?.sortRules??[];for(let e=0;e<t.length;e++){const i=t[e];if(i.sortType){const t=[];if(i.sortByIndicator){if(i.sortField===(this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1])){for(let e=0;e<i.query.length;e++)t.push({dimensionKey:this.dataset.indicatorsAsCol?this.dataset.columns[e]:this.dataset.rows[e],value:i.query[e]});t.push({indicatorKey:i.sortByIndicator,value:this.internalProps.layoutMap.getIndicatorInfo(i.sortByIndicator)?.title??i.sortByIndicator})}}else t.push({dimensionKey:i.sortField,isPivotCorner:!0,value:i.sortField});this.pivotSortState.push({dimensions:t,order:i.sortType})}}}updatePivotSortState(t){this.pivotSortState=t}sort(t,e,i){let r;if(this.isCornerHeader(t,e)){const i=this.getHeaderDefine(t,e);r=[];const n={isPivotCorner:!0,dimensionKey:i.value,value:i.value};r.push(n)}else r=this.isColumnHeader(t,e)?this.getCellHeaderPaths(t,e).colHeaderPaths:this.getCellHeaderPaths(t,e).rowHeaderPaths;const n=r[r.length-1].indicatorKey,o=this.getHeaderDefine(t,e);if(o.sort){if(this.dataset.sortRules){for(let t=this.dataset.sortRules.length-1;t>=0;t--){const e=this.dataset.sortRules[t];(o.dimensionKey&&e.sortField===o.dimensionKey||n&&e.sortField===(this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1]))&&this.dataset.sortRules.splice(t,1)}n?this.dataset.sortRules.push({sortField:this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1],sortType:CE[i],sortByIndicator:n,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}):this.dataset.sortRules.push({sortField:o.dimensionKey,sortType:CE[i]})}else this.dataset.sortRules=n?[{sortField:this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1],sortType:CE[i],sortByIndicator:n,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}]:[{sortField:o.dimensionKey,sortType:CE[i]}];this.updateSortRules(this.dataset.sortRules,t,e)}}getPivotSortState(t,e){if(!this.pivotSortState)return;const i=this.getCellRange(t,e);for(let t=0;t<this.pivotSortState.length;t++){const e=this.pivotSortState[t],r=e.dimensions,n=this.getCellAddressByHeaderPaths(r),o=e.order;if(n&&ML(i,n.col,n.row))return o}}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),n=this.internalProps.layoutMap.moveHeaderPosition(t,e);if(n){if("column"===n.moveType){if(this.internalProps.recordsIsTwoDimensionalArray)for(let t=0;t<this.internalProps.records.length;t++){const e=this.internalProps.records[t].splice(n.sourceIndex-this.rowHeaderLevelCount,n.sourceSize);e.unshift(n.targetIndex-this.rowHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records[t],e)}this.colWidthsMap.exchangeOrder(i.start.col,i.end.col-i.start.col+1,r.start.col,r.end.col-r.start.col+1,n.targetIndex),this.setMinMaxLimitWidth()}else if("row"===n.moveType){if(this.internalProps.recordsIsTwoDimensionalArray){const t=this.internalProps.records.splice(n.sourceIndex-this.columnHeaderLevelCount,n.sourceSize);t.unshift(n.targetIndex-this.columnHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records,t)}n.targetIndex>n.sourceIndex?this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex+n.sourceSize-n.targetSize,n.targetSize,n.targetIndex):this.rowHeightsMap.exchangeOrder(n.sourceIndex,n.sourceSize,n.targetIndex,n.targetSize,n.targetIndex)}return n}return null}toggleHierarchyState(t,e){const i=this.getHierarchyState(t,e);if(i===yE.expand)this._refreshHierarchyState(t,e),this.fireListeners(FW.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.collapse});else if(i===yE.collapse){const i=this.internalProps.layoutMap.getHeadNode(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(FW.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:yE.expand,originData:i})}}_refreshHierarchyState(t,e,i){let r=!1,n=!1;this.stateManager.updateHoverIcon(t,e,void 0,void 0);const o=this.internalProps.layoutMap.checkHasChart();o&&(this.autoFillWidth&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(n=this.getAllRowsHeight()<=this.tableNoFrameHeight));const s=this.internalProps.layoutMap.toggleHierarchyState(t,e);i&&i(),this.refreshRowColCount(),this.clearCellStyleCache(),this.scenegraph.updateHierarchyIcon(t,e),this.scenegraph.updateRow(s.removeCellPositions,s.addCellPositions,s.updateCellPositions),o&&(this.autoFillWidth&&!r&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&!n&&(n=this.getAllRowsHeight()<=this.tableNoFrameHeight),("adaptive"===this.widthMode||r||"adaptive"===this.heightMode||n)&&this.scenegraph.updateChartSize(0))}getHeaderCellAddressByPath(t){return this.internalProps.layoutMap.getPivotCellAdress(t)}getCellAddressByHeaderPaths(t){return this.internalProps.layoutMap.getCellAdressByHeaderPath(t)}getHeaderPathByXY(t){let e;e=t?this.getCellAt(t.x+this.getFrozenColsWidth()+this.scrollLeft+1,t.y+this.getFrozenRowsHeight()+this.scrollTop+1):this.getCellAt(this.getFrozenColsWidth()+this.scrollLeft+1,this.getFrozenRowsHeight()+this.scrollTop+1);return this.internalProps.layoutMap.getCellHeaderPaths(e.col,e.row)}getHierarchyState(t,e){return this._getHeaderLayoutMap(t,e)?.hierarchyState}getLayoutColumnTree(){return this.internalProps.layoutMap.getLayoutColumnTree()}getLayoutColumnTreeCount(){return this.internalProps.layoutMap.getLayoutColumnTreeCount()}getLayoutRowTree(){return this.internalProps.layoutMap.getLayoutRowTree()}getLayoutRowTreeCount(){return this.internalProps.layoutMap.getLayoutRowTreeCount()}getCellHeaderTreeNodes(t,e){return this.internalProps.layoutMap.getCellHeaderPathsWithTreeNode(t,e)}_hasHierarchyTreeHeader(){return"tree"===this.internalProps.layoutMap.rowHierarchyType}getMenuInfo(t,e,i){const r=this.internalProps.layoutMap.getPivotDimensionInfo(t,e);return{dimensionKey:r[r.length-1].dimensionKey,value:this.getCellValue(t,e),cellLocation:this.getCellLocation(t,e),isPivotCorner:this.isCornerHeader(t,e),event:void 0}}setRecords(t){const e={col:this.stateManager.hover.cellPos.col,row:this.stateManager.hover.cellPos.row};this.options.records=this.internalProps.records=t,this.internalProps.recordsIsTwoDimensionalArray=!1,t?.[0]?.constructor===Array&&(this.internalProps.recordsIsTwoDimensionalArray=!0);const i=this.options,r=this.internalProps;if(!1===this.options.customConfig?.enableDataAnalysis)!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new qG({rows:r.layoutMap.fullRowDimensionKeys,columns:r.layoutMap.colDimensionKeys,indicators:r.layoutMap.indicatorKeys,indicatorsAsCol:r.layoutMap.indicatorsAsCol,indicatorDimensionKey:r.layoutMap.indicatorDimensionKey},t));else{let e,n;this.dataset.setRecords(t),e=i.columnTree?r.layoutMap.columnDimensionTree:new cG(this.dataset.colHeaderTree??[],this.layoutNodeId),n=i.rowTree?r.layoutMap.rowDimensionTree:new cG(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0),r.layoutMap=new YG(this,this.dataset,e,n),this.pivotSortState=[],i.pivotSortState&&(this.pivotSortState=i.pivotSortState)}this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.clearCells(),this.clearCellStyleCache(),this.scenegraph.createSceneGraph(),this.stateManager.updateHoverPos(e.col,e.row),this.internalProps.title&&!this.internalProps.title.isReleased&&(this._updateSize(),this.internalProps.title.resize(),this.scenegraph.resize()),this.eventManager.updateEventBinder(),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new KG(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible())}startEditCell(t,e){if(Z(t)&&Z(e))this.eventManager.isDraging=!1,this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Z(t)&&Z(e)&&this.editorManager.startEditCell(t,e)}}completeEditCell(){this.editorManager.completeEdit()}getEditor(t,e){let i;if(this.isCornerHeader(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerEditor??this.options.headerEditor}else if(this.isHeader(t,e)){const r=this.getHeaderDefine(t,e);i=r?.headerEditor??this.options.headerEditor}else{const r=this.getBodyColumnDefine(t,e);i=r?.editor??this.options.editor}if("function"==typeof i){i=i({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return"string"==typeof i?kG(i):i}isHasEditorDefine(t,e){const i=this.getBodyColumnDefine(t,e);let r=i?.editor??this.options.editor;if("function"==typeof r){r=r({col:t,row:e,dataValue:this.getCellOriginValue(t,e),value:this.getCellValue(t,e)||"",table:this})}return Z(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){let r=i;const n=this.getCellOriginValue(t,e),o=this.getCellRawValue(t,e);"number"==typeof o&&cL(i)&&(r=parseFloat(i)),this._changeCellValueToDataSet(t,e,n,r);const s=this.getCellRange(t,e);for(let t=s.start.col;t<=s.end.col;t++)for(let e=s.start.row;e<=s.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else if(!this.internalProps._widthResizedColMap.has(t)){const e=this.getColWidth(t),i=mD(t,0,this.rowCount-1,this,!1);i!==e&&this.scenegraph.updateColWidth(t,i-e)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)0===this.internalProps._heightResizedRowMap.size&&this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode&&!this.internalProps._heightResizedRowMap.has(e)){const t=this.getRowHeight(e),i=dz(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:o,currentValue:n,changedValue:r}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let n=t,o=e;const s=[],a=[];for(let r=0;r<i.length&&!(e+r>this.rowCount-1);r++){const n=i[r],o=[],l=[];s.push(o),a.push(l);for(let i=0;i<n.length&&!(t+i>this.colCount-1);i++){const n=this.getCellRawValue(t+i,e+r);o.push(n);const s=this.getCellOriginValue(t+i,e+r);l.push(s)}}for(let l=0;l<i.length&&!(e+l>this.rowCount-1);l++){o=e+l;const h=i[l];let c=t;for(let i=0;i<h.length&&!(t+i>this.colCount-1);i++)if(c=t+i,r&&this.isHasEditorDefine(t+i,e+l)||!1===r){const r=h[i];let n=r;const o=a[l][i],c=s[l][i];"number"==typeof c&&cL(r)&&(n=parseFloat(r)),this._changeCellValueToDataSet(t+i,e+l,o,n),this.fireListeners(IL.CHANGE_CELL_VALUE,{col:t+i,row:e+l,rawValue:c,currentValue:o,changedValue:this.getCellOriginValue(t+i,e+l)})}n=Math.max(n,c)}const l=this.getCellRange(t,e),h=this.getCellRange(n,o);for(let t=l.start.col;t<=h.end.col;t++)for(let e=l.start.row;e<=h.end.row;e++)this.scenegraph.updateCellContent(t,e);if("adaptive"===this.widthMode||this.autoFillWidth&&this.getAllColsWidth()<=this.tableNoFrameWidth)0===this.internalProps._widthResizedColMap.size&&this.scenegraph.recalculateColWidths();else for(let e=t;e<=h.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=mD(e,0,this.rowCount-1,this,!1);i!==t&&this.scenegraph.updateColWidth(e,i-t)}if("adaptive"===this.heightMode||this.autoFillHeight&&this.getAllRowsHeight()<=this.tableNoFrameHeight)this.scenegraph.recalculateRowHeights();else if("autoHeight"===this.heightMode){const t=[],i=[];for(let r=e;r<=h.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),n=dz(r,0,this.colCount-1,this);t.push(r),i.push(n-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}_changeCellValueToDataSet(t,e,i,r){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t);this.records[i][n]=r}else if(this.dataset){const n=this.internalProps.layoutMap.getCellHeaderPaths(t,e);if(this.isCornerHeader(t,e))this.internalProps.layoutMap.changeCornerTitle(t,e,r);else if(this.isHeader(t,e))this.internalProps.layoutMap.changeTreeNodeTitle(t,e,r),!this.isCornerHeader(t,e)&&this.dataset.changeRecordFieldValue(n.colHeaderPaths?.length?n.colHeaderPaths[n.colHeaderPaths.length-1].indicatorKey??n.colHeaderPaths[n.colHeaderPaths.length-1].dimensionKey:n.rowHeaderPaths[n.rowHeaderPaths.length-1].indicatorKey??n.rowHeaderPaths[n.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=n.colHeaderPaths?.filter((t=>!t.virtual)).map((t=>t.indicatorKey??t.value)),o=n.rowHeaderPaths?.filter((t=>!t.virtual)).map((t=>t.indicatorKey??t.value));this.dataset.changeTreeNodeValue(this.internalProps.layoutMap.indicatorsAsCol?o:o.slice(0,-1),this.internalProps.layoutMap.indicatorsAsCol?i.slice(0,-1):i,this.internalProps.layoutMap.getIndicatorKey(t,e),r)}}else if(this.flatDataToObjects){const n=this.internalProps.layoutMap.getCellHeaderPaths(t,e);if(this.isHeader(t,e))this.internalProps.layoutMap.changeTreeNodeTitle(t,e,r),!this.isCornerHeader(t,e)&&this.flatDataToObjects.changeRecordFieldValue(n.colHeaderPaths?.length?n.colHeaderPaths[n.colHeaderPaths.length-1].indicatorKey??n.colHeaderPaths[n.colHeaderPaths.length-1].dimensionKey:n.rowHeaderPaths[n.rowHeaderPaths.length-1].indicatorKey??n.rowHeaderPaths[n.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=n.colHeaderPaths.map((t=>t.indicatorKey??t.value)),o=n.rowHeaderPaths.map((t=>t.indicatorKey??t.value));this.flatDataToObjects.changeTreeNodeValue(o,i,this.internalProps.layoutMap.getBody(t,e).indicatorKey,r)}}}_hasCustomRenderOrLayout(){if(this.options.customRender)return!0;const{columnsDefine:t,rowsDefine:e,indicatorsDefine:i}=this.internalProps.layoutMap;for(let e=0;e<t.length;e++){const i=t[e];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<e.length;t++){const i=e[t];if("string"!=typeof i&&(i.headerCustomLayout||i.headerCustomRender))return!0}for(let t=0;t<i.length;t++){const e=i[t];if("string"!=typeof e&&(e.customLayout||e.headerCustomLayout||e.customRender||e.headerCustomRender))return!0}return!1}changeRecordOrder(t,e){}setTreeNodeChildren(t,e,i,r){if(this.flatDataToObjects){this.internalProps.layoutMap.getHeadNode(i,r).children=t,this._refreshHierarchyState(i,r,(()=>{this.flatDataToObjects.changeDataConfig({rows:this.internalProps.layoutMap.fullRowDimensionKeys,columns:this.internalProps.layoutMap.colDimensionKeys,indicators:this.internalProps.layoutMap.indicatorKeys,indicatorsAsCol:this.internalProps.layoutMap.indicatorsAsCol,indicatorDimensionKey:this.internalProps.layoutMap.indicatorDimensionKey}),this.flatDataToObjects.addRecords(e)}))}else{this.internalProps.layoutMap.getHeadNode(i,r).children=t,this._refreshHierarchyState(i,r,(()=>{this.dataset.changeDataConfig({rows:this.internalProps.layoutMap.fullRowDimensionKeys,columns:this.internalProps.layoutMap.colDimensionKeys}),this.dataset.addRecords(e)}))}}},t.TYPES=AE,t.VArc=Lv,t.VArea=Hv,t.VCheckBox=function(t){return new cE(t?t.attribute:{})},t.VCircle=Iv,t.VGlyph=Fv,t.VGroup=Ov,t.VImage=zv,t.VLine=Dv,t.VPath=Wv,t.VPolygon=Nv,t.VRadio=function(t){return new dE(t?t.attribute:{})},t.VRect=Gv,t.VRender=SE,t.VSymbol=jv,t.VTag=function(t){return new CT(t?t.attribute:{})},t.VText=Vv,t.clearGlobal=function(){HG()},t.core=BG,t.data=SI,t.getDataCellPath=function(t,e,i){const r=ej(t);let n=r.columnDimensionTree,o=r.rowDimensionTree,s=!1,a=!1;t.columnTree&&t.indicatorsAsCol&&!n.dimensionKeys.contain(QL)&&(s=!0),t.rowTree&&(t.indicatorsAsCol||o.dimensionKeys.contain(QL)||(a=!0));const{dataset:l,layoutNodeId:h}=r,c={options:t,layoutNodeId:h,internalProps:t,isPivotChart:()=>!0,pivotChartAxes:[],_selectedDataItemsInChart:[],_getActiveChartInstance:()=>({updateState:()=>{}})};t.columnTree&&!s||(n=new cG(l.colHeaderTree??[],h)),t.rowTree&&!a||(o=new cG(l.rowHeaderTree??[],h));const d=new YG(c,l,n,o);for(let t=0;t<d.colCount;t++)for(let r=0;r<d.rowCount;r++){if(d.isHeader(t,r))continue;const n=d.getCellHeaderPaths(t,r),o=n.colHeaderPaths.map((t=>t.indicatorKey??t.value)),s=n.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),a=l.getAggregator(d.indicatorsAsCol?s:s.slice(0,-1),d.indicatorsAsCol?o.slice(0,-1):o,d.getIndicatorKey(t,r)),h=ij(a.value?a.value():void 0,e,t,r,d,i);if(h)return h}},t.getIcons=function(){return NO()},t.getTargetCell=MO,t.graphicUtil=ff,t.jsx=Yv,t.register=IG,t.renderChart=Nz,t.restoreMeasureText=function(){tz="canvas",xn.load(iz)},t.setCustomAlphabetCharSet=function(t){QF=t,rz.clear()},t.themes=mH,t.updateCell=SF,t.version="1.4.2"}));