@visactor/vtable 1.3.2-alpha.2 → 1.3.2-alpha.3

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 zB(t,e,i,r){var o,n=arguments.length,s=n<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--)(o=t[a])&&(s=(n<3?o(s):n>3?o(e,i,s):o(e,i))||s);return n>3&&s&&Object.defineProperty(e,i,s),s}const OB=[],DB=[];let WB=5,NB=!1;function GB(t){Y(t)&&(WB=t)}function jB(t){const{axes:e,dataId:i,data:r,spec:o}=t.attribute,{chartInstance:n}=t,s=t.getViewBox();s.x2<=s.x1&&(s.x2=s.x1+1),s.y2<=s.y1&&(s.y2=s.y1+1),n.updateViewBox({x1:0,x2:s.x2-s.x1,y1:0,y2:s.y2-s.y1},!1,!1);const a=n.getStage(),l=t.globalTransMatrix.clone(),h=t.stage.window.getViewBoxTransform();l.multiply(h.a,h.b,h.c,h.d,h.e,h.f),a.window.setViewBoxTransform&&a.window.setViewBoxTransform(l.a,l.b,l.c,l.d,l.e,l.f);const{table:c}=t.getRootNode();let d=!1;if(c.options.specFormat){const e=c.options.specFormat(t.attribute.spec);if(e.needFormatSpec&&e.spec){const t=e.spec;n.updateSpecSync(t),d=!0}}if(!d)if(e?.forEach(((t,e)=>{"band"===t.type?n.updateModelSpec({type:"axes",index:e},{domain:t.domain.slice(0)},!0):n.updateModelSpecSync({type:"axes",index:e},{min:t.range?.min??0,max:t.range?.max??0},!0)})),c.internalProps.layoutMap?.updateDataStateToActiveChartInstance?.(n),"string"==typeof i)n.updateDataSync(i,r??[]);else{const t=[];for(const e in i){const s=i[e],a=o.series.find((t=>t?.data?.id===e));t.push({id:e,values:s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[],fields:a?.data?.fields}),n.updateFullDataSync||n.updateDataSync(e,s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[])}n.updateFullDataSync?.(t)}!function(t,e){const{viewWidth:i,viewHeight:r}=t;if(i<UB&&r<UB)return e.cacheCanvas=t.toCanvas(),void(e.isShareChartSpec||(e.chartInstance?.release(),e.chartInstance=null,e.setAttribute("chartInstance",null)));const o=Math.ceil(r/UB),n=Math.ceil(i/UB),s=[];for(let e=0;e<o;e++)for(let o=0;o<n;o++){const n=o*UB,a=e*UB,l=n+UB>i?i:n+UB,h=a+UB>r?r:a+UB,c=l-n,d=h-a,u=new fe;u.setValue(n,a,l,h);const g=t.toCanvas(!1,u);s.push({canvas:g,x:n,y:a,width:c,height:d})}e.cacheCanvas=s}(n.getStage(),t)}function VB(t){NB=!0,DB.length>0?requestAnimationFrame((()=>{const e=DB.splice(0,WB);OB.splice(0,WB),e.forEach((t=>{jB(t),t.addUpdateBoundTag()})),t.render(),VB(t)})):NB=!1}const UB=2e3;const KB=Symbol.for("ChartRender");let $B=class extends gh{type;numberType=aR;drawShape(t,e,i,r,o,n,s,a){const l=yo(t,n?.theme).group,{dataId:h,data:c,spec:d}=t.attribute;t.getViewBox();const{width:u=l.width,height:g=l.height}=t.attribute,{table:p}=t.getRootNode(),{active:f,cacheCanvas:m,activeChartInstance:b}=t;if(!f&&m)et(m)?m.forEach((t=>{const{x:i,y:r,width:o,height:n,canvas:s}=t;e.drawImage(s,i,r,o,n)})):e.drawImage(m,i,r,u,g);else if(b){if(p.options.specFormat){const e=p.options.specFormat(t.attribute.spec);if(e.needFormatSpec&&e.spec){const t=e.spec;return void b.updateSpecSync(t)}}const e=t.getViewBox();b.updateViewBox({x1:0,x2:e.x2-e.x1,y1:0,y2:e.y2-e.y1},!1,!1);const i=b.getStage();i.needRender=!0;const r=t.globalTransMatrix.clone(),o=t.stage.window.getViewBoxTransform().clone();if(o.multiply(r.a,r.b,r.c,r.d,r.e,r.f),i.window.setViewBoxTransform(o.a,o.b,o.c,o.d,o.e,o.f),"string"==typeof h)b.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}),b.updateFullDataSync||b.updateDataSync(e,i?c?.filter((t=>t.hasOwnProperty(i)))??[]:c??[])}b.updateFullDataSync?.(t)}}else p.internalProps.renderChartAsync?(-1===OB.indexOf(`${t.parent.col}+${t.parent.row}`)&&(OB.push(`${t.parent.col}+${t.parent.row}`),DB.push(t)),NB||VB(p)):jB(t)}draw(t,e,i,r){this._draw(t,{},!1,i,r)}};$B=zB([f()],$B);let XB=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d,u){const{shape:g}=t.attribute;if("circle"===g){const{width:o=l.width,height:n=l.height}=t.attribute;e.beginPath(),e.arc(i+o/2,r+n/2,Math.min(o,n)/2,0,2*Math.PI),e.closePath(),e.save(),e.clip()}}};XB=zB([f()],XB);let YB=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d,u){const{shape:g}=t.attribute;"circle"===g&&e.restore()}};function qB(t,e,i,r){const{highlightScope:o,disableHeader:n,cellPos:s}=t.hover,a=t.table,l=a.isHeader(e,i);if(l&&n)return;let h;if(o===oC.single&&s.col===e&&s.row===i?h="cellBgColor":o===oC.column&&s.col===e?h=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":o===oC.row&&s.row===i?h=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":o===oC.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 o=a.getHeaderDefine(e,i);t=o?.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 ZB(t,e,i,r){const{highlightScope:o,disableHeader:n,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&&n)return;if(o===oC.single&&s.col===e&&s.row===i?l="cellBgColor":o===oC.column&&s.col===e?l=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":o===oC.row&&s.row===i?l=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":o===oC.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 o=r.getHeaderDefine(e,i);t=o?.disableHeaderSelect}else{const o=r.getBodyColumnDefine(e,i);t=o?.disableSelect}t&&(l=void 0)}}return l}YB=zB([f()],YB);let JB=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};JB=zB([f()],JB);let QB=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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:C=l.width,height:w=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;let o=0,n=0;if("bottom-right"===e?.theme.cellBorderClipDirection){if(i=Math.floor(i)-.5,r=Math.floor(r)-.5,"cell"===t.role){const i=t.col,r=t.row;e&&i===e.colCount-1&&(o=1),e&&r===e.rowCount-1&&(n=1)}}else i=Math.floor(i)+.5,r=Math.floor(r)+.5;e.options.customConfig?._disableColumnAndRowSizeRound&&(C=Math.round(C),w=Math.round(w));const{width:s,height:a}=hT(t,Math.ceil(C+o),Math.ceil(w+n));b=s,y=a}else b=Math.ceil(C),y=Math.ceil(w);tT(t,e,i,r,l,u,p||f,g||m,b,y)}}};function tT(t,e,i,r,o,n,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(n),f=Array.isArray(d),m=Array.isArray(a)||u.isSplitDraw;e.setStrokeStyle(t,t.attribute,i,r,o);const{lineDash:b=o.lineDash}=t.attribute;let y=!1;b.length&&b.some((t=>Array.isArray(t)))&&(y=!0),e.beginPath(),e.moveTo(i,r),(p||n[0])&&(g||s[0])?(f&&Array.isArray(d[0])?(e.moveTo(i+l*d[0][0],r),e.lineTo(i+l*(d[0][1]-d[0][0]),r),e.moveTo(i+l,r)):(e.moveTo(i,r),e.lineTo(i+l,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))):e.moveTo(i+l,r),(p||n[1])&&(g||s[1])?(f&&Array.isArray(d[1])?(e.moveTo(i+l,r+h*d[1][0]),e.lineTo(i+l,r+h*(d[1][1]-d[1][0])),e.moveTo(i+l,r+h)):(e.moveTo(i+l,r),e.lineTo(i+l,r+h)),(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))):e.moveTo(i+l,r+h),(p||n[2])&&(g||s[2])?(f&&Array.isArray(d[2])?(e.moveTo(i+l*d[2][0],r+h),e.lineTo(i+l*(d[2][1]-d[2][0]),r+h),e.moveTo(i,r+h)):(e.moveTo(i,r+h),e.lineTo(i+l,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))):e.moveTo(i,r+h),(p||n[3])&&(g||s[3])?(f&&Array.isArray(d[3])?(e.moveTo(i,r+h*d[3][0]),e.lineTo(i,r+h*(d[3][1]-d[3][0])),e.moveTo(i,r)):(e.moveTo(i,r),e.lineTo(i,r+h)),(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))):e.moveTo(i,r),m||y||(!g&&u.width&&(e.lineWidth=u.width),e.stroke()),e.lineDashOffset=0,e.setLineDash([])}QB=zB([f()],QB);let eT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};eT=zB([f()],eT);let iT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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=et(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 C,w,{width:v=l.width,height:x=l.height}=t.attribute;if(b.options.customConfig?._disableColumnAndRowSizeRound?(v=Math.round(v),x=Math.round(x)):(v=Math.ceil(v),x=Math.ceil(x)),1&m){let e=0,o=0;if("bottom-right"===b.theme.cellBorderClipDirection){if(i=Math.floor(i)-.5,r=Math.floor(r)-.5,"cell"===t.role){const i=t.col,r=t.row;b&&i===b.colCount-1&&(e=1),b&&r===b.rowCount-1&&(o=1)}}else i=Math.floor(i)+.5,r=Math.floor(r)+.5;const{width:n,height:s}=hT(t,Math.ceil(v+e),Math.ceil(x+o));C=n,w=s}else C=Math.ceil(v),w=Math.ceil(x);e.setStrokeStyle(t,t.attribute,i,r,l),e.beginPath(),e.moveTo(i,r),e.lineTo(i+C,r),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[0]??[]),e.stroke(),e.beginPath(),e.moveTo(i+C,r),e.lineTo(i+C,r+w),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[1]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r+w),e.lineTo(i+C,r+w),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[2]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r),e.lineTo(i,r+w),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[3]??[]),e.stroke(),e.lineDashOffset=0,e.setLineDash([])}};iT=zB([f()],iT);let rT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};rT=zB([f()],rT);let oT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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:C=l.width,height:w=l.height}=t.attribute;if(!0!==b&&g&&Array.isArray(p)&&!p.length&&!Array.isArray(m)&&!Array.isArray(f)&&1&u){const o=t.stage.table;if(!o)return;o.options.customConfig?._disableColumnAndRowSizeRound&&(C=Math.round(C),w=Math.round(w));const{width:n,height:s}=hT(t,Math.ceil(C),Math.ceil(w));e.beginPath();let a=0,h=0;if("bottom-right"===o?.theme.cellBorderClipDirection){if(i=Math.floor(i)-.5,r=Math.floor(r)-.5,"cell"===t.role){const e=t.col,i=t.row;o&&e===o.colCount-1&&(a=1),o&&i===o.rowCount-1&&(h=1)}}else i=Math.floor(i)+.5,r=Math.floor(r)+.5;y?kh(e,i,r,n+a,s+h,y):e.rect(i,r,n,s),e.setStrokeStyle(t,t.attribute,i,r,l),e.stroke()}}};oT=zB([f()],oT);let nT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d,u){if("cell"===t.role){const e=t.stage.table;if(e&&e.stateManager.interactionState!==rC.scrolling){const i=function(t,e){let i,r;if("cell"===t.role&&Y(t.mergeStartCol)&&Y(t.mergeStartRow)&&Y(t.mergeEndCol)&&Y(t.mergeEndRow)){const{colStart:r,colEnd:o,rowStart:n,rowEnd:s}=CB(t,e.scenegraph);for(let t=r;t<=o;t++)for(let r=n;r<=s;r++){const o=ZB(e.stateManager,t,r);!o||i&&"cellBgColor"!==o||(i=o)}}else"cell"===t.role&&(i=ZB(e.stateManager,t.col,t.row));if(!i)return;const o=e.internalProps.layoutMap;return o.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.select||e.theme.headerStyle?.select:o.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.select:o.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.select:o.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.select||(e.isListTable()?e.theme.bodyStyle?.select:e.theme.headerStyle?.select):o.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),$A(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&&Y(t.mergeStartCol)&&Y(t.mergeStartRow)&&Y(t.mergeEndCol)&&Y(t.mergeEndRow)){const{colStart:r,colEnd:o,rowStart:n,rowEnd:s}=CB(t,e.scenegraph);for(let a=r;a<=o;a++)for(let r=n;r<=s;r++){const o=qB(e.stateManager,a,r,t);!o||i&&"cellBgColor"!==o||(i=o)}}else"cell"===t.role&&(i=qB(e.stateManager,t.col,t.row,t));if(!i)return;const o=e.internalProps.layoutMap;return o.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.hover||e.theme.headerStyle?.hover:o.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.hover:o.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.hover:o.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.hover||(e.isListTable()?e.theme.bodyStyle?.hover:e.theme.headerStyle?.hover):o.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),$A(i,r,t.col,t.row,e)}(t,e);i&&(t.attribute._vtableHightLightFill=i)}}}}};nT=zB([f()],nT);let sT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d){if(t.attribute._vtableHightLightFill)if(c);else if(s){const o=t.attribute.fill;t.attribute.fill=t.attribute._vtableHightLightFill,e.setCommonStyle(t,t.attribute,i,r,l),e.fill(),t.attribute.fill=o,t.attribute._vtableHightLightFill=void 0}}};sT=zB([f()],sT);let aT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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(),o=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),n=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("row-header"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),o=g.getFrozenColsWidth(),n=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("col-header"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,o=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),n=g.getFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("right-frozen"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),o=g.getRightFrozenColsWidth(),n=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("bottom-frozen"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,o=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),n=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("corner-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),o=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}else if("corner-right-top-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),o=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}else if("corner-right-bottom-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),o=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}else if("corner-left-bottom-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),o=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}}};aT=zB([f()],aT);let lT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d){t.role}};function hT(t,e,i){const r=t.stage.table;if("cell"===t.role){let o=t.col,n=t.row;const s=ov(r,o,n);s&&(o=s.end.col,n=s.end.row),(r&&o===r.colCount-1||r&&o===r.frozenColCount-1&&r.scrollLeft)&&(e-=1),(r&&n===r.rowCount-1||r&&n===r.frozenRowCount-1&&r.scrollTop)&&(i-=1)}else"corner-frozen"===t.role&&(r&&r.scrollLeft&&(e-=1),r&&r.scrollTop&&(i-=1));return{width:e,height:i}}lT=zB([f()],lT);let cT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};cT=zB([f()],cT);let dT,uT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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 o=0,n=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),tT(t,e,i,r,l,p,m||b,f||y,Math.ceil(u+o),Math.ceil(g+n))}}};uT=zB([f()],uT);let gT=class{order=1;interceptors;constructor(){this.interceptors=[new pT]}afterDrawItem(t,e,i,r,o){for(let n=0;n<this.interceptors.length;n++)if(this.interceptors[n].afterDrawItem&&this.interceptors[n].afterDrawItem(t,e,i,r,o))return!0;return!1}beforeDrawItem(t,e,i,r,o){if((!t.in3dMode||i.in3dInterceptor)&&!t.shadowRoot&&!(t.baseGraphic||t.attribute.globalZIndex||t.interactiveGraphic))return!1;for(let n=0;n<this.interceptors.length;n++)if(this.interceptors[n].beforeDrawItem&&this.interceptors[n].beforeDrawItem(t,e,i,r,o))return!0;return!1}};gT=zB([f()],gT);class pT{order=1;afterDrawItem(t,e,i,r,o){return"image"===t.type&&this.drawItem(t,e,i,r,o),!1}drawItem(t,e,i,r,o){const{image:n}=t.attribute;if(!n||!t.resources)return!1;if("loading"!==t.resources.get(n).state)return!1;if(!dT){const t=jA(),e=t.loading_pic.svg,i=t.loading_pic.width,r=t.loading_pic.height;dT=Al({width:i,height:r,image:e})}const{image:s}=dT.attribute;if(!n||!dT.resources)return!1;const a=dT.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}=UA(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 fT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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:C=l.verticalMode,ellipsis:w=l.ellipsis,textAlign:v=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;w&&e&&e.lines.every((t=>""===t.str))&&(A=!0)}else{const{cache:e}=t;w&&e&&""===e.clipedText&&0===e.clipedWidth&&(A=!0)}if(!A)return;const R=tt(w)?w:"...",B=on(t.attribute.lineHeight,y)??y;let T=0;B!==y&&("top"===x?T=(B-y)/2:"middle"===x||"bottom"===x&&(T=-(B-y)/2)),n&&(d?d(e,t.attribute,l):a&&(e.setStrokeStyle(t,t.attribute,_-i,S-r,l),e.strokeText(R,_,S+T))),o&&(c?c(e,t.attribute,l):s&&(e.setCommonStyle(t,t.attribute,_-i,S-r,l),e.fillText(R,_,S+T),this.drawUnderLine(p,f,t,_,S+T,0,l,e,R)))}drawUnderLine(t,e,i,r,o,n,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:C=s.fillOpacity}=i.attribute;if(!t&&!e)return;const w=lB.measureTextWidth(l,{fontSize:d,fontFamily:u,fontWeight:g,fontStyle:p}),v=qs(h,w),x=Zs(c,d,d),_={lineWidth:0,stroke:f,opacity:m,strokeOpacity:C};if(t){_.lineWidth=t,a.setStrokeStyle(i,_,r,o,s),a.setLineDash(y),a.beginPath();const e=o+x+d+b;a.moveTo(r+v,e,n),a.lineTo(r+v+w,e,n),a.stroke()}if(e){_.lineWidth=e,a.setStrokeStyle(i,_,r,o,s),a.beginPath();const t=o+x+d/2;a.moveTo(r+v,t,n),a.lineTo(r+v+w,t,n),a.stroke()}}};fT=zB([f()],fT);var mT=new i(((t,e,i,r)=>{i(zh)?r(zh).to(cT).inSingletonScope():(t(cT).toSelf().inSingletonScope(),t(Gs).toService(cT)),i(Oh)?r(Oh).to(uT).inSingletonScope():(t(uT).toSelf().inSingletonScope(),t(Gs).toService(uT)),t($B).toSelf().inSingletonScope(),t(KB).to($B),t(Qc).to($B),t(XB).toSelf().inSingletonScope(),t(Ds).toService(XB),t(YB).toSelf().inSingletonScope(),t(Ds).toService(YB),t(nT).toSelf().inSingletonScope(),t(Os).toService(nT),t(sT).toSelf().inSingletonScope(),t(Os).toService(sT),t(QB).toSelf().inSingletonScope(),t(Os).toService(QB),t(JB).toSelf().inSingletonScope(),t(Os).toService(JB),t(eT).toSelf().inSingletonScope(),t(Os).toService(eT),t(iT).toSelf().inSingletonScope(),t(Os).toService(iT),t(rT).toSelf().inSingletonScope(),t(Os).toService(rT),t(oT).toSelf().inSingletonScope(),t(Os).toService(oT),t(aT).toSelf().inSingletonScope(),t(Os).toService(aT),t(lT).toSelf().inSingletonScope(),t(Os).toService(lT),t(gT).toSelf().inSingletonScope(),t(fd).toService(gT),t(fT).toSelf().inSingletonScope(),t(Vs).toService(fT)}));function bT(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 o=[],n=[];if(r)for(let e=0;e<t.colCount;e++)o[e]=t.getColWidth(e);for(let o=e;o<=i;o++){let e;if(t.internalProps.transpose||"only-header"!==t.internalProps.layoutMap.columnObjects?.[o]?.columnWidthComputeMode&&"only-header"!==t.columnWidthComputeMode||!("showHeader"in t.internalProps.layoutMap))e=t.internalProps.transpose||"only-body"!==t.internalProps.layoutMap.columnObjects?.[o]?.columnWidthComputeMode&&"only-body"!==t.columnWidthComputeMode?yT(o,0,t.rowCount-1,t):yT(o,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=yT(o,0,t.internalProps.layoutMap.headerLevelCount-1,t),t.internalProps.layoutMap.showHeader=i}t._setColContentWidth(o,e);t.getColWidth(o)!==e&&t._clearColRangeWidthsMap(o),r?n[o]=Math.round(t._adjustColWidth(o,e)):t._setColWidth(o,t._adjustColWidth(o,e),!1,!0)}if("adaptive"===t.widthMode){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,o=0,s=t.colCount;if("only-body"===t.widthAdaptiveMode){for(let e=0;e<t.colCount;e++){const o=r?n[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=o)}o=t.rowHeaderLevelCount,s=t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount}_T(e-i,o,s,r,n,t)}else if(t.autoFillWidth){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,o=0;for(let e=0;e<t.colCount;e++){const s=r?n[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=s),o+=s}if(o<e&&o>i){_T(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,r,n,t)}}if(r){for(let e=0;e<t.colCount;e++){const i=n[e]??t.getColWidth(e);i!==o[e]&&t._setColWidth(e,i,!1,!0)}t.stateManager.checkFrozen();for(let e=0;e<t.colCount;e++){const i=t.getColWidth(e);i!==o[e]&&t.scenegraph.updateColWidth(e,i-o[e],!0,!0)}t.scenegraph.updateContainer(!0)}}function yT(t,e,i,r,o=!1){let n=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"===n&&("only-header"===r.columnWidthComputeMode&&t>=r.rowHeaderLevelCount||"only-body"===r.columnWidthComputeMode&&t<r.rowHeaderLevelCount)&&(n=r.getDefaultColumnWidth(t)),o&&!r.internalProps.transpose?CT(n,t,e,i,o,r):"number"==typeof n?n:"auto"!==n&&"string"==typeof n?r._adjustColWidth(t,r._colWidthDefineToPxWidth(n)):CT(n,t,e,i,o,r)}function CT(t,e,i,r,o,n){let s=0,a=1,l=1;if(r-i>5e3&&(l=Math.ceil((r-i)/5e3)),n.isPivotChart()&&e>=n.rowHeaderLevelCount&&e<n.colCount-n.rightFrozenColCount){if(n.internalProps.layoutMap.indicatorsAsCol)return n.defaultColWidth;{const t=n.internalProps.layoutMap.getOptimunWidthForChart(e);if(t>0)return t}}for(let h=i;h<=r;h+=a){if(n.isPivotChart()){const t=n.internalProps.layoutMap,i=NR(e,h,t);if(i){const t=XR(i,n);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=wT(e,h,n);if(i&&(s=Math.max(i.width,s),!i.renderDefault))continue;const r=t;if("number"==typeof r&&"standard"===n.widthMode&&!o){s=Math.max(r,s);continue}const c=n.isHeader(e,h)?n._getHeaderLayoutMap(e,h)?.headerType:n.getBodyColumnType(e,h);if(Y(c)&&"text"!==c&&"link"!==c&&"progressbar"!==c&&"checkbox"!==c&&"radio"!==c){s=Math.max(s,n.getColWidthDefinedNumber(e)||0);continue}let d=0;const u=n.internalProps.layoutMap;if(u.isHeader(e,h)){const t=u.getHeader(e,h);if("only-body"===t?.define?.columnWidthComputeMode)continue;Y(t?.hierarchyLevel)&&(d=(t.hierarchyLevel??0)*(u.rowHierarchyIndent??0),u.rowHierarchyTextStartAlignment&&!n.internalProps.headerHelper.getHierarchyIcon(e,h)&&(d+=n.internalProps.headerHelper.getHierarchyIconWidth()))}else{a=l;const t=n.getBodyColumnDefine(e,h);if(t?.tree){const t=n.dataSource.getIndexKey(n.getRecordShowIndexByCell(e,h));d=Array.isArray(t)&&n.getHierarchyState(e,h)!==sC.none?(t.length-1)*(u.hierarchyIndent??0):0,u.hierarchyTextStartAlignment&&!n.internalProps.bodyHelper.getHierarchyIcon(e,h)&&(d+=n.internalProps.headerHelper.getHierarchyIconWidth())}}const g=vT(e,h,c,n);s=Math.max(g+d,s),a>1&&n.bottomFrozenRowCount>0&&h<n.rowCount-n.bottomFrozenRowCount&&h+a>=n.rowCount-n.bottomFrozenRowCount&&(h=n.rowCount-n.bottomFrozenRowCount-a,a=1,l=1)}const h=n.getMinColWidth(e),c=n.getMaxColWidth(e);return s<h?h:s>c?c:(s<=0&&(s=n.defaultColWidth),s)}function wT(t,e,i){const r=i.getCustomRender(t,e),o=i.getCustomLayout(t,e);if(r||o){let n=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);n=r.end.col-r.start.col+1}const h={col:t,row:e,dataValue:i.getCellOriginValue(t,e),value:i.getCellValue(t,e)||"",rect:xT(t,e,i),table:i};if(o){const t=o(h);if(t.rootContainer instanceof hs){t.rootContainer=zA(t.rootContainer),FA(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(l){const r=DS($A("padding",i._getCellStyle(t,e),t,e,i));s+=r[1]+r[3]}return{width:s/n,renderDefault:a}}}function vT(t,e,i,r){let o=0;const n=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!==hC.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=DS($A("padding",s,t,e,r)),d=c[1]+c[3],u=$A("fontSize",s,t,e,r),g=$A("fontFamily",s,t,e,r),p=$A("fontWeight",s,t,e,r);let f;if("checkbox"===i)f=q(n)?n.text:n;else if("radio"===i)if(et(n)){f="";const i=r.getBodyColumnDefine(t,e),o=i?.radioDirectionInCell??"vertical";"vertical"===o?n.forEach((t=>{f+=(q(t)?t.text:t).toString()+"\n"})):"horizontal"===o&&n.forEach((t=>{f+=(q(t)?t.text:t).toString()}))}else f=q(n)?n.text:n;else f=n;const m=pR(f,r).text;if(m.length>=1?m.forEach((t=>{const e=r.measureText(t,{fontSize:u,fontFamily:g,fontWeight:p}).width;o=Math.max((e+d+4+a)/h,o)})):o=Math.max((d+4+a)/h,o),!1!==r.internalProps.limitMaxAutoWidth&&(o=Math.min("number"==typeof r.internalProps.limitMaxAutoWidth?r.internalProps.limitMaxAutoWidth:450,o)),"checkbox"===i){const i=$A("size",s,t,e,r);if(o+=i,f){const i=$A("spaceBetweenTextAndIcon",s,t,e,r);o+=i}}else if("radio"===i){const i=$A("size",s,t,e,r),a=$A("outerRadius",s,t,e,r),l=ot(a)?2*a:i,h=$A("spaceBetweenTextAndIcon",s,t,e,r);if(et(n)){const i=r.getBodyColumnDefine(t,e),a=$A("spaceBetweenRadio",s,t,e,r),c=i?.radioDirectionInCell??"vertical";"vertical"===c?(o+=l,o+=h):"horizontal"===c&&(o+=(l+h)*n.length,o+=a*(n.length-1))}else o+=l,f&&(o+=h)}return o}function xT(t,e,i){return{left:0,top:0,right:i.getColWidth(t),bottom:i.getRowHeight(e),width:null,height:null}}function _T(t,e,i,r,o,n,s){let a=0;const l=[],h=[];let c=0;for(let s=e;s<i;s++){const e=r?o[s]:n.getColWidth(s),i=n.getMaxColWidth(s),d=n.getMinColWidth(s);if(e!==i&&e!==d?(a+=e,l.push(s)):t-=e,n.options.customConfig?.shrinkSparklineFirst){"sparkline"===n.getBodyColumnType(s,0)&&(h.push({col:s,width:e}),c+=e-n.defaultColWidth)}}const d=t/a;if(n.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?o[i]=n._adjustColWidth(i,d):s?n.scenegraph.setColWidth(i,n._adjustColWidth(i,d)):n._setColWidth(i,n._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?o[e]:n.getColWidth(e)):t),0):Math.round((r?o[i]:n.getColWidth(i))*d),r?o[i]=n._adjustColWidth(i,a):s?n.scenegraph.setColWidth(i,n._adjustColWidth(i,a)):n._setColWidth(i,n._adjustColWidth(i,a),!1,!0)}}const ST=new VA({});function AT(t,e,i,r,o,n,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<=o;p++){const o=p;let f,m,b,y,C=a.getCellValue(e,o),w=i,v=a.getRowHeight(o);if(a.internalProps.customMergeCell){const t=a.getCustomMerge(e,o);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=RT(f,n,a,r>f.start.row);w=t.cellWidth,v=t.cellHeight}C=i,b=s,(l||h)&&(y=kA(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(o),[0,0,0,0],f,a))}}let x=e,_=o;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,o),m=f.start.col!==f.end.col||f.start.row!==f.end.row,m)){const t=RT(f,n,a,r>f.start.row);w=t.cellWidth,v=t.cellHeight}const R=xA(b||a._getCellStyle(e,o),a,f?f.start.col:e,f?f.start.row:o,$A).theme;R.group.cornerRadius=SA(e,o,a),R.group.width=i,R.group.height=Array.isArray(s)?s[o]:s,R._vtable.padding&&(c=R._vtable.padding),R.text.textAlign&&(d=R.text.textAlign),R.text.textBaseline&&(u=R.text.textBaseline),"body"===l||R.group.fill||(R.group.fill="#fff");const B=(a.isHeader(e,o)?a._getHeaderLayoutMap(e,o).headerType:a.getBodyColumnType(e,o))||"text";if(uw(C)){BT(e,o,0,g,w,v,t),vR(C,a,AR.bind(null,B,C,S,a,e,o,i,w,v,t,g,c,d,u,A,R,f,y)),t.updateColumnRowNumber(o);const r=a.getRowHeight(o);t.updateColumnHeight(r),g+=r}else{const r=AR(B,C,S,a,e,o,i,w,v,t,g,c,d,u,A,R,f,y);if(t.updateColumnRowNumber(o),m){const i=a.getRowHeight(o);a.getColWidth(e);const{width:n}=r.attribute,{height:s}=r.attribute;r.contentWidth=n,r.contentHeight=s,TR(f,n,s,c,d,u,a),t.updateColumnHeight(i),g+=i}else t.updateColumnHeight(v),g+=v}if(h&&o>h)break}return t.setAttribute("width",i),{width:i,height:g}}function RT(t,e,i,r){let o=0,n=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++)o+=i.getColWidth(e);for(let e=t.start.row;e<=t.end.row;e++)n+=i.getRowHeight(e);e.set(`${t.start.col},${t.start.row};${t.end.col},${t.end.row}`,{cellWidth:o,cellHeight:n})}else o=s.cellWidth,n=s.cellHeight;return{cellWidth:o,cellHeight:n}}function BT(t,e,i,r,o,n,s){const a=new VA({x:i,y:r,width:o,height:n});a.role="cell",a.col=t,a.row=e,s.addChild(a)}function TT(t,e,i,r,o,n,s,a,l,h){if(r>o||n>s)return;const{layoutMap:c,defaultRowHeight:d,defaultHeaderRowHeight:u,defaultColWidth:g}=l.internalProps;let p=0,f=0;for(let c=r;c<=o;c++){const r=c,o=l.getColWidth(r),g=new VA({x:e+p,y:i,width:o,height:0,clip:!1,pickable:!1});g.role="column",g.col=c,t.addChild(g);const{width:m,height:b}=AT(g,r,o,n,s,l.scenegraph.mergeMap,"columnHeader"===a&&ot(u)?u:d,l,a,h);p+=m,f=Math.max(f,b)}t.setAttribute("width",p),t.setAttribute("height",f)}function MT(t){let e=t.firstChild;for(;"group"!==e.type;)e=e._next;return e}function PT(t){let e=t.lastChild;for(;"group"!==e.type;)e=e._prev;return e}function HT(t,e,i,r="left"){for(let o=t;o<=e;o++){const t=i.scenegraph.getColGroup(o);t&&ET(t,i,r);const e=i.scenegraph.getColGroup(o,!0);e&&ET(e,i,r);const n=i.scenegraph.getColGroupInBottom(o);n&&ET(n,i,r)}const o=Math.min(i.scenegraph.proxy.colLimit,i.scenegraph.proxy.bodyRightCol-i.scenegraph.proxy.bodyLeftCol+1),n=i.getColsWidth(i.frozenColCount,i.frozenColCount+o),s=i.getColsWidth(i.frozenColCount,i.colCount-1);i.scenegraph.proxy.xLimitLeft=n/2,i.scenegraph.proxy.xLimitRight=s-n/2}function ET(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 LT(t,e,i){const r=i.table.getTargetColAt(t+i.table.scenegraph.rowHeaderGroup.attribute.width);if(!r)return;const o=r.col,n=r.left;let s;if(i.screenLeftCol=o,s=e?i.bodyRightCol-i.colEnd:i.screenLeftCol-i.referenceCol,function(t,e,i,r,o){t>0?(kT(t,"left",o.screenLeftCol,i,r,o),o.updateDeltaX(r,i,e),o.table.scenegraph.setBodyAndColHeaderX(-r+o.deltaX)):t<0?(kT(-t,"right",o.screenLeftCol,i,r,o),o.updateDeltaX(r,i,e),o.table.scenegraph.setBodyAndColHeaderX(-r+o.deltaX)):(o.updateDeltaX(r,i,e),o.table.scenegraph.setBodyAndColHeaderX(-r+o.deltaX))}(s,o,n,t,i),e){const e=i.table.scenegraph.getColGroup(i.colEnd);if(e){const r=e.attribute.x+e.attribute.width-(i.table.tableNoFrameWidth-i.table.getFrozenColsWidth()-i.table.getRightFrozenColsWidth())-t;i.deltaX=-r,i.table.scenegraph.setBodyAndColHeaderX(-t+i.deltaX)}}i.table.scenegraph.updateNextFrame()}async function kT(t,e,i,r,o,n){if("left"===e&&n.colEnd+t>n.bodyRightCol?t=n.bodyRightCol-n.colEnd:"right"===e&&n.colStart-t<n.bodyLeftCol&&(t=n.colStart-n.bodyLeftCol),0!==t)if(t<0&&(e="left"===e?"right":"left",t=-t),t<n.colEnd-n.colStart){const o="left"===e?n.colStart:n.colEnd-t+1,s="left"===e?n.colStart+t-1:n.colEnd,a="left"===e?n.colEnd+1:n.colStart-t,l="left"===e?n.colEnd+t:n.colStart-1;bT(n.table,a,l),function(t,e,i,r){for(let o=t;o<=e;o++)r.table.scenegraph.bodyGroup.childrenCount>0&&"group"===r.table.scenegraph.bodyGroup.firstChild.type&&OT(r.table.scenegraph.bodyGroup,i,r),r.table.scenegraph.colHeaderGroup.childrenCount>0&&"group"===r.table.scenegraph.colHeaderGroup.firstChild.type&&OT(r.table.scenegraph.colHeaderGroup,i,r),r.table.scenegraph.bottomFrozenGroup.childrenCount>0&&"group"===r.table.scenegraph.bottomFrozenGroup.firstChild.type&&OT(r.table.scenegraph.bottomFrozenGroup,i,r)}(o,s,e,n);const h=a,c=l;n.colStart="left"===e?n.colStart+t:n.colStart-t,n.colEnd="left"===e?n.colEnd+t:n.colEnd-t,DT(h,c,n),HT(h,c,n.table,e);const d=r-((n.table.scenegraph.getColGroup(i)||n.table.scenegraph.getColGroup(i,!0)).attribute.x+n.table.getFrozenColsWidth()+n.table.scenegraph.proxy.deltaX);n.table.scenegraph.proxy.deltaX+=d,n.currentCol="left"===e?n.currentCol+t:n.currentCol-t,n.totalCol=Math.max(0,Math.min(n.table.colCount-1,"left"===e?n.totalCol+t:n.totalCol-t)),n.referenceCol=n.colStart+Math.floor((n.colEnd-n.colStart)/2),n.colUpdatePos=a,n.colUpdateDirection=e,n.table.scenegraph.updateNextFrame()}else{const i="left"===e?n.colStart+t:n.colStart-t,r="left"===e?n.colEnd+t:n.colEnd-t;bT(n.table,i,r);!function(t,e,i,r){r.table.scenegraph.colHeaderGroup.forEachChildren(((o,n)=>{"group"===o.type&&IT(o,"left"===i?o.col+e:o.col-e,0===n?t:o._prev.attribute.x+r.table.getColWidth(o._prev.col))})),r.table.scenegraph.bottomFrozenGroup.forEachChildren(((o,n)=>{"group"===o.type&&IT(o,"left"===i?o.col+e:o.col-e,0===n?t:o._prev.attribute.x+r.table.getColWidth(o._prev.col))})),r.table.scenegraph.bodyGroup.forEachChildren(((o,n)=>{"group"===o.type&&IT(o,"left"===i?o.col+e:o.col-e,0===n?t:o._prev.attribute.x+r.table.getColWidth(o._prev.col))}))}(n.table.getColsWidth(n.bodyLeftCol,i-1),t,e,n);const o=i,s=r;n.colStart=i,n.colEnd=r,DT(o,s,n),HT(o,s,n.table,r>n.bodyRightCol-(n.colEnd-n.colStart+1)?"right":"left"),n.currentCol="left"===e?n.currentCol+t:n.currentCol-t,n.totalCol=Math.max(0,Math.min(n.table.colCount-1,"left"===e?n.totalCol+t:n.totalCol-t)),n.referenceCol=n.colStart+Math.floor((n.colEnd-n.colStart)/2),n.colUpdatePos=n.colStart,n.colUpdateDirection=r>n.bodyRightCol-(n.colEnd-n.colStart+1)?"right":"left",n.table.scenegraph.updateNextFrame()}}function IT(t,e,i){t.col=e,t.forEachChildren((t=>{t.col=e,t.needUpdate=!0})),t.setAttribute("x",i),t.needUpdate=!0}function FT(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 zT(t,e){if(!t)return;const i=e.screenTopRow,r=Math.max(e.bodyTopRow,i-1*e.screenRowCount),o=Math.min(e.bodyBottomRow,i+2*e.screenRowCount);for(let i=r;i<=o;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 OT(t,e,i){if("left"===e){const e=MT(t),r=PT(t);IT(e,r.col+1,r.attribute.x+i.table.getColWidth(r.col)),t.appendChild(e),t.border&&t.appendChild(t.border)}else{const e=PT(t),r=MT(t);IT(e,r.col-1,r.attribute.x-i.table.getColWidth(r.col-1)),t.insertBefore(e,t.firstChild)}}function DT(t,e,i){for(let r=t;r<=e;r++){const t=i.table.scenegraph.getColGroup(r,!0);t&&FT(t,i);const e=i.table.scenegraph.getColGroupInBottom(r);e&&FT(e,i);const o=i.table.scenegraph.getColGroupInRightTopCorner(r);o&&FT(o,i);const n=i.table.scenegraph.getColGroupInRightBottomCorner(r);n&&FT(n,i);const s=i.table.scenegraph.getColGroup(r);s&&zT(s,i)}i.progress()}function WT(t,e,i,r,o,n="up",s){if("up"===n)for(let n=t;n<=e;n++)for(let t=i;t<=r;t++){const e=o.scenegraph.highPerformanceGetCell(n,t,!0);if(!e.row)continue;let a;if(e._prev)a=e._prev?.attribute.y+o.getRowHeight(e._prev.row);else if(s){if(a=o.scenegraph.highPerformanceGetCell(n,r+1,!0).attribute.y,Y(a))for(let t=i;t<=r;t++)a-=o.getRowHeight(t)}else a=o.getRowsHeight(o.columnHeaderLevelCount,e.row-1);Y(a)&&e.setAttribute("y",a)}else for(let n=t;n<=e;n++)for(let t=r;t>=i;t--){const e=o.scenegraph.highPerformanceGetCell(n,t,!0);if(!e.row)continue;let a;if(e._next)a=e._next?.attribute.y-o.getRowHeight(e.row);else if(s){a=o.scenegraph.highPerformanceGetCell(n,i-1,!0).attribute.y;for(let t=i-1;t<r;t++)a+=o.getRowHeight(t)}else a=o.getRowsHeight(o.columnHeaderLevelCount,e.row-1);e.setAttribute("y",a)}const a=Math.min(o.scenegraph.proxy.rowLimit,o.scenegraph.proxy.bodyBottomRow-o.scenegraph.proxy.bodyTopRow+1),l=o.getRowsHeight(o.columnHeaderLevelCount,o.columnHeaderLevelCount+a),h=o.getRowsHeight(o.columnHeaderLevelCount,o.rowCount-1);o.scenegraph.proxy.yLimitTop=l/2,o.scenegraph.proxy.yLimitBottom=h-l/2}async function NT(t,e,i){const r=i.table.getTargetRowAt(t+i.table.scenegraph.colHeaderGroup.attribute.height);if(!r)return;const o=r.row,n=r.top;let s;if(i.screenTopRow=o,s=e?i.bodyBottomRow-i.rowEnd:o-i.referenceRow,function(t,e,i,r,o){t>0?(GT(t,"up",e,i,r,o),o.updateDeltaY(r,i,e),o.updateBody(r-o.deltaY)):t<0?(GT(-t,"down",e,i,r,o),o.updateDeltaY(r,i,e),o.updateBody(r-o.deltaY)):(o.updateDeltaY(r,i,e),o.updateBody(r-o.deltaY))}(s,o,n,t,i),e){const e=i.table.scenegraph.highPerformanceGetCell(i.colStart,i.rowEnd,!0);if("cell"===e.role){const r=e.attribute.y+e.attribute.height-(i.table.tableNoFrameHeight-i.table.getFrozenRowsHeight()-i.table.getBottomFrozenRowsHeight())-t;i.deltaY=-r,i.updateBody(t-i.deltaY)}}}async function GT(t,e,i,r,o,n){if("up"===e&&n.rowEnd+t>n.bodyBottomRow?t=n.bodyBottomRow-n.rowEnd:"down"===e&&n.rowStart-t<n.bodyTopRow&&(t=n.rowStart-n.bodyTopRow),0!==t)if(t<0&&(e="up"===e?"down":"up",t=-t),t<n.rowEnd-n.rowStart){const r="up"===e?n.rowStart:n.rowEnd-t+1,o="up"===e?n.rowStart+t-1:n.rowEnd,s="up"===e?n.rowEnd+1:n.rowStart-t,a="up"===e?n.rowEnd+t:n.rowStart-1;let l,h;if("autoHeight"===n.table.heightMode)l=s,h=a;else{l=Math.max(n.bodyTopRow,i-1*n.screenRowCount),h=Math.min(n.bodyBottomRow,i+2*n.screenRowCount)}uB(n.table,l,h,!1),function(t,e,i,r){for(let o=0;o<r.table.frozenColCount;o++){const n=r.table.scenegraph.getColGroup(o);if(n)for(let o=t;o<=e;o++)jT(n,i,r)}for(let o=r.table.colCount-r.table.rightFrozenColCount;o<r.table.colCount;o++){const n=r.table.scenegraph.getColGroup(o);if(n)for(let o=t;o<=e;o++)jT(n,i,r)}for(let o=r.bodyLeftCol;o<=r.bodyRightCol;o++){const n=r.table.scenegraph.getColGroup(o);if(n)for(let o=t;o<=e;o++)jT(n,i,r)}}(r,o,e,n),n.rowStart="up"===e?n.rowStart+t:n.rowStart-t,n.rowEnd="up"===e?n.rowEnd+t:n.rowEnd-t,VT(l,h,n,!0),"autoHeight"===n.table.heightMode&&(WT(n.bodyLeftCol,n.bodyRightCol,l,h,n.table,a>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",!0),WT(0,n.table.frozenColCount-1,l,h,n.table,a>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",!0),WT(n.table.colCount-n.table.rightFrozenColCount,n.table.colCount-1,l,h,n.table,a>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",!0)),n.currentRow="up"===e?n.currentRow+t:n.currentRow-t,n.totalRow=Math.max(0,Math.min(n.bodyBottomRow,"up"===e?n.totalRow+t:n.totalRow-t)),n.referenceRow=n.rowStart+Math.floor((n.rowEnd-n.rowStart)/2),"autoHeight"===n.table.heightMode?n.rowUpdatePos=Math.min(n.rowUpdatePos,n.rowEnd+1):n.rowUpdatePos=Math.min(n.rowUpdatePos,s),n.rowUpdateDirection=e,n.table.scenegraph.updateNextFrame(),"autoHeight"!==n.table.heightMode&&await n.progress()}else{const r="up"===e?n.rowStart+t:n.rowStart-t,o="up"===e?n.rowEnd+t:n.rowEnd-t,s=n.table.getRowsHeight(n.bodyTopRow,r-1);let a,l;"autoHeight"===n.table.heightMode?(a=r,l=o):(a=Math.max(n.bodyTopRow,i-1*n.screenRowCount),l=Math.min(n.bodyBottomRow,i+2*n.screenRowCount)),uB(n.table,a,l,!1),function(t,e,i,r){for(let o=0;o<r.table.frozenColCount;o++){const n=r.table.scenegraph.getColGroup(o);n?.forEachChildren(((o,n)=>{r.updateCellGroupPosition(o,"up"===i?o.row+e:o.row-e,0===n?t:o._prev.attribute.y+r.table.getRowHeight(o._prev.row))}))}for(let o=r.table.colCount-r.table.rightFrozenColCount;o<r.table.colCount;o++){const n=r.table.scenegraph.getColGroup(o);n?.forEachChildren(((o,n)=>{r.updateCellGroupPosition(o,"up"===i?o.row+e:o.row-e,0===n?t:o._prev.attribute.y+r.table.getRowHeight(o._prev.row))}))}for(let o=r.bodyLeftCol;o<=r.bodyRightCol;o++){const n=r.table.scenegraph.getColGroup(o);n?.forEachChildren(((o,n)=>{r.updateCellGroupPosition(o,"up"===i?o.row+e:o.row-e,0===n?t:o._prev.attribute.y+r.table.getRowHeight(o._prev.row))}))}}(s,t,e,n),n.rowStart=r,n.rowEnd=o,VT(a,l,n,!0),"autoHeight"===n.table.heightMode&&(WT(n.bodyLeftCol,n.bodyRightCol,a,l,n.table,o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up"),WT(0,n.table.frozenColCount-1,a,l,n.table,o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up"),WT(n.table.colCount-n.table.rightFrozenColCount,n.table.colCount-1,a,l,n.table,o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up")),n.currentRow="up"===e?n.currentRow+t:n.currentRow-t,n.totalRow=Math.max(0,Math.min(n.bodyBottomRow,"up"===e?n.totalRow+t:n.totalRow-t)),n.referenceRow=n.rowStart+Math.floor((n.rowEnd-n.rowStart)/2),"autoHeight"===n.table.heightMode?n.rowUpdatePos=n.rowEnd+1:n.rowUpdatePos=n.rowStart,n.rowUpdateDirection=o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",n.table.scenegraph.updateNextFrame(),"autoHeight"!==n.table.heightMode&&await n.progress()}}function jT(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 VT(t,e,i,r=!1){for(let r=0;r<i.table.frozenColCount;r++)for(let o=t;o<=e;o++){const t=i.highPerformanceGetCell(r,o,!0);i.updateCellGroupContent(t)}for(let r=i.table.colCount-i.table.rightFrozenColCount;r<i.table.colCount;r++)for(let o=t;o<=e;o++){const t=i.highPerformanceGetCell(r,o);i.updateCellGroupContent(t)}let o=i.bodyLeftCol,n=i.bodyRightCol;if(r){const t=i.screenLeftCol;o=Math.max(i.bodyLeftCol,t-1*i.screenColCount),n=Math.min(i.bodyRightCol,t+2*i.screenColCount)}for(let r=o;r<=n;r++)for(let o=t;o<=e;o++){const t=i.highPerformanceGetCell(r,o);i.updateCellGroupContent(t)}i.table.scenegraph.updateNextFrame()}function UT(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:o,frozenColCount:n}=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<o&&!(g<d);i++)[d,g].forEach((r=>{const o=t._getCellStyle(r,i);if(o?.textStick){XT(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,o?.textStickBaseOnAlign,t)}}));for(let i=0;i<n&&!(u<c);i++)[c,u].forEach((r=>{const o=t._getCellStyle(i,r);if(o?.textStick&&"tree"!==t.internalProps.layoutMap.rowHierarchyType){KT(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,o?.textStickBaseOnAlign,t)}}));for(let i=d;i<=g&&!(u<c);i++)[c,u].forEach((r=>{const o=t._getCellStyle(i,r);if(o?.textStick){KT(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,o?.textStickBaseOnAlign,t)}}));for(let i=c;i<u&&!(g<d);i++)[d,g].forEach((r=>{const o=t._getCellStyle(r,i);if(t._getCellStyle(r,i)?.textStick){XT(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,o?.textStickBaseOnAlign,t)}}))}}function KT(t,e,i,r,o,n){if(ot(t.mergeStartCol)&&ot(t.mergeStartRow)&&ot(t.mergeEndCol)&&ot(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=CB(t,n.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){$T(n.scenegraph.getCell(t,s),e,i,r,o)}}else $T(t,e,i,r,o)}function $T(t,e,i,r,o){const n=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!n)return;if("image"===n.type){const{image:t}=n.attribute;if(!t||!n.resources)return;if("success"!==n.resources.get(t).state)return}const s=n.textBaseline??"top";n.AABBBounds.width();const a=n.globalAABBBounds.y1,l=n.globalAABBBounds.y2;if("middle"===s&&o){const o=t.globalAABBBounds.y1+(t.firstChild?.attribute.dy??0),s=o+(t.contentHeight??t.attribute.height??0);if(o<e||s>i){const a=Math.max(o,e),l=Math.min(s,i),h=n.globalTransMatrix.f-(l+a)/2+n.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 XT(t,e,i,r,o,n){if(ot(t.mergeStartCol)&&ot(t.mergeStartRow)&&ot(t.mergeEndCol)&&ot(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=CB(t,n.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){YT(n.scenegraph.getCell(t,s),e,i,r,o)}}else YT(t,e,i,r,o)}function YT(t,e,i,r,o){const n=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!n)return;if("image"===n.type){const{image:t}=n.attribute;if(!t||!n.resources)return;if("success"!==n.resources.get(t).state)return}const s=n.attribute.textAlign??n.textAlign??"left";n.AABBBounds.width();const a=n.globalAABBBounds.x1,l=n.globalAABBBounds.x2;if("center"===s&&o){const o=t.globalAABBBounds.x1+(t.firstChild?.attribute.dx??0),s=o+(t.contentWidth??t.attribute.width??0);if(o<e||s>i){const a=Math.max(o,e),l=Math.min(s,i),h=n.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 qT(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)}ST.role="empty";class ZT{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;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 o=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(o/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;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 o=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(o/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,o,n,s,a){!function(t,e,i,r,o,n,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&&bT(h,0,g),0===h.internalProps._heightResizedRowMap.size&&uB(h,0,p),g<h.colCount-h.rightFrozenColCount&&bT(h,h.colCount-h.rightFrozenColCount,h.colCount-1),p<h.rowCount-h.bottomFrozenRowCount&&uB(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()}),TT(t,s,a,0,h.frozenColCount-1,0,h.columnHeaderLevelCount-1,h.isListTable()?"columnHeader":"cornerHeader",h),g-h.rightFrozenColCount>=h.frozenColCount&&TT(e,s,a,h.frozenColCount,g-h.rightFrozenColCount,0,h.columnHeaderLevelCount-1,"columnHeader",h),h.frozenColCount>0&&(h.leftRowSeriesNumberCount>0&&TT(i,s,a,0,h.leftRowSeriesNumberCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.rowHeaderLevelCount>0&&TT(i,s,a,h.leftRowSeriesNumberCount,h.leftRowSeriesNumberCount+h.rowHeaderLevelCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.frozenColCount>h.rowHeaderLevelCount+h.leftRowSeriesNumberCount&&TT(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&&TT(c,s,a,0,h.leftRowSeriesNumberCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"rowHeader",h),h.rowHeaderLevelCount>0&&TT(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&&TT(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&&TT(o,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,h.isPivotChart()?"rowHeader":"body",h)),h.rightFrozenColCount>0&&(TT(d,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,0,h.columnHeaderLevelCount-1,"columnHeader",h),TT(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&&TT(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&&TT(n,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"body",h),n.firstChild||e.firstChild||t.firstChild||i.firstChild?(l.currentRow=n.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=n.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,o,n,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()),UT(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(uB(this.table,this.currentRow+1,e,!1),this.table.frozenColCount){let t=0;for(let i=0;i<this.table.frozenColCount;i++){const r=this.table.scenegraph.getColGroup(i),o=this.table.isListTable()?"body":"rowHeader",{height:n}=AT(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,o);t=Math.max(t,n),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),o=this.table.isPivotChart()?"rowHeader":"body",{height:n}=AT(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,o);t=Math.max(t,n),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 o=t<this.table.rowHeaderLevelCount?"rowHeader":"body",{height:n}=AT(r,t,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,o);i=Math.max(i,n)}this.table.scenegraph.bodyGroup.setAttribute("height",i),this.currentRow=e,this.rowEnd=e,this.rowUpdatePos=this.rowEnd,this.table.scenegraph.updateContainer(),this.table.scenegraph.updateBorderSizeAndPosition()}createColGroup(t){const e=Math.min(this.totalCol,this.currentCol+t);bT(this.table,this.currentCol+1,e);for(let t=0;t<this.table.rowCount;t++){const e=this.highPerformanceGetCell(this.currentCol,t);"cell"===e.role&&ot(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 VA?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;TT(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 VA?this.table.scenegraph.bottomFrozenGroup.lastChild:this.table.scenegraph.bottomFrozenGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;TT(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 VA?this.table.scenegraph.bodyGroup.lastChild:this.table.scenegraph.bodyGroup.lastChild._prev);i||(i=this.table.scenegraph.colHeaderGroup.lastChild&&(this.table.scenegraph.colHeaderGroup.lastChild instanceof VA?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev));const r=i.attribute.x+i.attribute.width,o=i.attribute.y;TT(this.table.scenegraph.bodyGroup,r,o,this.currentCol+1,e,this.rowStart,this.rowEnd,"body",this.table),this.currentCol=e,this.colEnd=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;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,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;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,e)}async dynamicSetY(t,e=!1){NT(t,e,this)}async dynamicSetX(t,e=!1){LT(t,e,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&&uB(this.table,this.rowUpdatePos,e,!1),VT(this.rowUpdatePos,e,this),"autoHeight"===this.table.heightMode&&(WT(this.bodyLeftCol,this.bodyRightCol,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),WT(0,this.table.frozenColCount-1,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),WT(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&&uB(this.table,t,e,!1),VT(t,e,this),"autoHeight"===this.table.heightMode&&(WT(this.bodyLeftCol,this.bodyRightCol,t,e,this.table,this.rowUpdateDirection),WT(0,this.table.frozenColCount-1,t,e,this.table,this.rowUpdateDirection),WT(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&&bT(this.table,t,e,!1),DT(t,e,this),"autoHeight"===this.table.heightMode&&HT(t,e,this.table,this.colUpdateDirection)}async updateColCellGroupsAsync(){this.updateColGroups(this.taskRowCount)}updateColGroups(t){const e=Math.min(this.bodyRightCol,this.colUpdatePos+t);bT(this.table,this.colUpdatePos,e),DT(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();uB(t.table,e,i);const o=t.table.getAllRowsHeight();r!==o&&t.table.scenegraph.updateContainerHeight(t.table.frozenRowCount,o-r),VT(e,i,t),"autoHeight"===t.table.heightMode&&WT(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);bT(t.table,e,i),DT(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 ST;if(t>=this.table.frozenColCount&&t<this.table.colCount-this.table.rightFrozenColCount&&(t<this.colStart||t>this.colEnd))return ST;if(this.cellCache.get(t)){const r=this.cellCache.get(t);if((r._next||r._prev)&&Math.abs(r.row-e)<e){let o=JT(r,e);return o&&(i||"shadow-cell"!==o.role)||(o=this.table.scenegraph.getCell(t,e,i)),o.row&&this.cellCache.set(t,o),o}const o=this.table.scenegraph.getCell(t,e,i);return o.col===t&&o.row&&this.cellCache.set(t,o),o}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(Y(e)&&Y(i)){let r=this.table.scenegraph.highPerformanceGetCell(this.colStart,i,!0);"cell"!==r.role&&(r=this.table.scenegraph.highPerformanceGetCell(0,i,!0));const o=t-this.deltaY,n=e-o,s=r.attribute.y-o+this.table.getFrozenRowsHeight();this.deltaY=n-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(Y(e)&&Y(i)){const r=this.table.scenegraph.getColGroup(i)||this.table.scenegraph.getColGroup(i,!0),o=t-this.deltaX,n=e-o,s=r.attribute.x-o+this.table.getFrozenColsWidth();this.deltaX=n-s}}release(){this.isRelease=!0}}function JT(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?JT(i,e):t.row<e&&r&&r.row===t.row+1?JT(r,e):null}function QT(t,e,i){const[r,o,n,s]=e.split("-"),a=parseInt(r,10),l=parseInt(o,10),h=parseInt(n,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,C=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:C.x2-i.tableGroup.attribute.x-3,y:C.y2-i.tableGroup.attribute.y-3,width:6,height:6,visible:!0});const w=!!i.table.frozenColCount&&a===i.table.frozenColCount,v=!!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(w&&t.rect.attribute.stroke[3]||v&&t.rect.attribute.stroke[1]||x&&t.rect.attribute.stroke[0]||_&&t.rect.attribute.stroke[2]){if(w&&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),v&&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 tM(t,e,i=!0){const r=e.start.col,o=e.start.row,n=e.end.col,s=e.end.row,a=e.skipBodyMerge;let l=Math.max(Math.min(n,r),0),h=Math.max(Math.min(s,o),0),c=Math.min(Math.max(n,r),t.table.colCount-1),d=Math.min(Math.max(s,o),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 o=ov(t.table,i,r);if(o&&o.start.col<l){l=o.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 o=ov(t.table,i,r);if(o&&Math.min(o.end.col,t.table.colCount-1)>c){c=o.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 o=ov(t.table,r,i);if(o&&o.start.row<h){h=o.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 o=ov(t.table,r,i);if(o&&Math.min(o.end.row,t.table.rowCount-1)>d){d=o.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,C=!1,w=!1,v=!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&&(C=!0),l<=t.table.frozenColCount-1&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(v=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(w=!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(C){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(v){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(w){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),o=[!0,!C,!b,!y];t.createCellSelectBorder(e,h,i,r,"columnHeader",`${l}${h}${c}${d}`,o)}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),o=[!b,!w,!0,!v];t.createCellSelectBorder(e,r,i,d,"bottomFrozen",`${l}${h}${c}${d}`,o)}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),o=[!y,!b,!v,!0];t.createCellSelectBorder(l,e,r,i,"rowHeader",`${l}${h}${c}${d}`,o)}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),o=[!C,!0,!w,!b];t.createCellSelectBorder(r,e,c,i,"rightFrozen",`${l}${h}${c}${d}`,o)}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),o=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),n=[!f,!p,!m,!g];t.createCellSelectBorder(e,i,r,o,"body",`${l}${h}${c}${d}`,n)}}function eM(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)}))}function iM(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)}))}function rM(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 oM(t){t.selectedRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),t.selectedRangeComponents=new Map}function nM(t,e,i,r){const o=r.scenegraph,n=JC(t.map((t=>t.row))).sort(((t,e)=>e-t)),s=JC(e.map((t=>t.row))).sort(((t,e)=>t-e)),a=JC(i.map((t=>t.row))).sort(((t,e)=>t-e));let l;if(a.length){l=lM(a[0]-1,a[a.length-1]+1,o)}if(s.length){const t=lM(s[0]-1,s[s.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}if(n.length){const t=lM(n[0]-1,n[n.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}n.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 o;r.forEachChildren((e=>e.row===t&&(o=e,!0))),o&&(r.updateColumnHeight(-o.attribute.height),r.removeChild(o))}}(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,o)}));const h=r.rowHeightsMap;if(n.forEach((t=>{h.delete(t)})),n.length){!function(t){function e(e,i){e.row=i;const r=ov(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++}))}))}(o);const t=aM(n[n.length-1]-1,n[0]-n.length+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}let c;if(o.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++,sM(t,e),t):void 0;if(i.rowEnd-i.rowStart+1<i.rowLimit)return i.rowEnd++,i.currentRow++,sM(t,e),t;return t}(t,o);c=c??e,h.insert(t)})),function(t){function e(e,i,r){e.row=i,e.setAttribute("y",r);const o=ov(t.table,e.col,e.row);o?(e.mergeStartCol=o.start.col,e.mergeEndCol=o.end.col,e.mergeStartRow=o.start.row,e.mergeEndRow=o.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,o=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.rowHeaderGroup.forEachChildren((i=>{let r=t.bodyRowStart,o=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.rightFrozenGroup.forEachChildren((i=>{let r=t.bodyRowStart,o=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.bottomFrozenGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,o=0;i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.leftBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,o=0;i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.rightBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,o=0;i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))}))}(o),s.length){const t=aM(s[0]-1,s[s.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}for(let t=0;t<r.colCount;t++)a.forEach((e=>{const i=ov(o.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++)RR(t,e,o.table,!1);else RR(t,e,o.table,!1)}));if(a.length){const t=aM(a[0]-1,a[a.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}if(ot(c)){for(let t=0;t<r.colCount;t++)for(let e=c;e<r.rowCount;e++){const i=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}l=Y(l)?Y(c)?Math.min(l,c):l:c}if(ot(l)&&(o.proxy.rowUpdatePos=Math.min(o.proxy.rowUpdatePos,l)),s.length){if(!ot(c)){const t=Math.min(...s);o.proxy.rowUpdatePos=Math.min(t,o.proxy.rowUpdatePos)}o.proxy.rowUpdateDirection="up",o.proxy.updateCellGroups(2*o.proxy.screenRowCount),u()}else n.length&&(!function(t,e){if(e.table.isHasSeriesNumber())for(let i=t;i<=e.table.rowCount-1;i++)RR(0,i,e.table,!1)}(n[n.length-1],o),o.proxy.updateCellGroups(2*o.proxy.screenRowCount),u(),o.proxy.progress());o.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||n?.[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=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}o.proxy.updateBottomFrozenCellGroups()}}o.updateContainerHeight(o.table.frozenRowCount,d-o.bodyGroup.attribute.height)}function sM(t,e){for(let i=0;i<e.table.colCount;i++){const r=new VA({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 o=e.getColGroup(i);if(o)if(o.firstChild&&t<o.firstChild.row)o.insertBefore(r,o.firstChild),o.firstChild.row=o.firstChild.row+1;else if(o.lastChild&&t>o.lastChild.row)o.appendChild(r);else{const n=e.highPerformanceGetCell(i,t,!0);n!==r&&(o.insertBefore(r,n),n&&(n.row=n.row+1),n!==o.lastChild&&o.lastChild&&(o.lastChild.row=o.lastChild.row+1))}}}function aM(t,e,i){let r;for(let o=0;o<i.table.colCount;o++){const n=i.table.getCellRange(o,t);let s;n.start.row<=t+1&&n.end.row>=t+1&&(hM(n,i),s=n.start.row);const a=i.table.getCellRange(o,e);a.start.row<=e+1&&a.end.row>=e+1&&(hM(a,i),s=a.start.row),Y(s)&&(r=Y(r)?Math.min(r,s):s)}return r}function lM(t,e,i){let r;for(let o=0;o<i.table.colCount;o++){let n;const s=i.highPerformanceGetCell(o,t);s.mergeStartRow&&s.mergeEndRow&&s.mergeEndRow>t&&(hM({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),n=s.mergeStartRow);const a=i.highPerformanceGetCell(o,e);a.mergeStartRow&&a.mergeEndRow&&a.mergeStartRow<e&&(hM({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),n=a.mergeStartRow),Y(n)&&(r=Y(r)?Math.min(r,n):n)}return r}function hM(t,e){const{start:i,end:r}=t;for(let t=i.col;t<=r.col;t++)for(let o=i.row;o<=r.row;o++){const i=e.highPerformanceGetCell(t,o,!0);i&&(i.needUpdate=!0)}}function cM(t){const e=t.bodyGroup.firstChild instanceof VA?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 dM(t){const e=t.colHeaderGroup.firstChild instanceof VA?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 uM(t){const e=t.rowHeaderGroup.lastChild instanceof VA?t.rowHeaderGroup.lastChild:t.rowHeaderGroup.lastChild?._prev;e&&(mM(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 gM(t){const e=t.cornerHeaderGroup.lastChild instanceof VA?t.cornerHeaderGroup.lastChild:t.cornerHeaderGroup.lastChild?._prev;e&&(mM(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 pM(t){const e=t.bottomFrozenGroup.firstChild instanceof VA?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 fM(t){const e=t.leftBottomCornerGroup.lastChild instanceof VA?t.leftBottomCornerGroup.lastChild:t.leftBottomCornerGroup.lastChild?._prev;e&&(mM(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),o=xA(i,t.table,r?r.start.col:e.col,r?r.start.row:e.row,$A).theme;e.setAttributes({fill:o?.group?.fill??void 0,stroke:o?.group?.stroke??void 0})})))}function mM(t,e,i){e&&t&&(i?t.insertBefore(e,i):t.appendChild(e))}function bM(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 yM(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=DS($A("padding",e._getCellStyle(t.col,t.row),t.col,t.row,e)),o=new lS(i,t.attribute.width,t.attribute.height,r,e);t.clear(),t.appendChild(o.component),o.overlap()}}}))}))}function CM(t,e,i){return new VA({x:0,y:0,width:t,height:e,clip:i??!1,pickable:!1})}function wM(t,e){return t.forEachChildrenSkipChild(((t,i)=>{t.setAttribute("x",e),e+=t.attribute.width})),e}function vM(t,e,i,r,o){const n=t.name;SM(i,r,(t=>t.name===n),(t=>{fR(e,t),t.name=e.name}),o),o.updateNextFrame()}function xM(t,e,i,r,o,n,s,a){const l=a.table.internalProps.headerHelper.getSortIcon(r,a.table,t,e);if(i&&vM(i,l,t,e,a),!function(t,e,i,r,o){const n=o.getCellRange(t,e),s=o.getCellRange(i,r);return n.start.col===s.start.col&&n.start.row===s.start.row&&n.end.col===s.end.col&&n.end.row===s.end.row}(t,e,o,n,a.table)){const t=a.table.internalProps.headerHelper.getSortIcon("normal",a.table,o,n);s?vM(s,t,o,n,a):function(t,e,i,r){const o=r.getCell(t,e);if(Y(o.mergeStartCol)&&Y(o.mergeStartRow)&&Y(o.mergeEndCol)&&Y(o.mergeEndRow))for(let t=o.mergeStartCol;t<=o.mergeEndCol;t++)for(let e=o.mergeStartRow;e<=o.mergeEndRow;e++){let o;r.getCell(t,e).forEachChildren((t=>"sort"===t.attribute.funcType&&(o=t,!0))),o&&(fR(i,o),o.name=i.name)}else{let t;o.forEachChildren((e=>"sort"===e.attribute.funcType&&(t=e,!0))),t&&(fR(i,t),t.name=i.name)}}(o,n,t,a)}}function _M(t,e,i){t.forEachChildren((t=>{"group"===t.type?_M(t,e,i):e(t)&&i(t)}))}function SM(t,e,i,r,o){const n=o.getCell(t,e);if("cell"===n.role&&Y(n.mergeStartCol)&&Y(n.mergeStartRow)&&Y(n.mergeEndCol)&&Y(n.mergeEndRow)){const{colStart:t,colEnd:e,rowStart:s,rowEnd:a}=CB(n,o);for(let n=t;n<=e;n++)for(let t=s;t<=a;t++)_M(o.highPerformanceGetCell(n,t),i,r)}else _M(n,i,r)}function AM(t,e){const{bgColor:i,borderColor:r,borderLineWidth:o,borderLineDash:n}=e,s={x:0,y:0,width:0,height:0,visible:!1,pickable:!0,fill:i};return s.stroke=kB(r,void 0),s.lineWidth=o,n&&(s.lineDash=n),s.lineCap="butt",Array.isArray(r)&&(s.strokeArrayColor=DS(r)),Array.isArray(o)&&(s.strokeArrayWidth=DS(o),s.lineWidth=1),t.setAttributes(s),t.role="corner-frozen",t}function RM(t,e,i,r){const o=r.scenegraph,n=BM(t.map((t=>t.col))).sort(((t,e)=>e-t)),s=BM(e.map((t=>t.col))).sort(((t,e)=>t-e)),a=BM(i.map((t=>t.col))).sort(((t,e)=>t-e));n.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,o)}));const l=r.colWidthsMap;let h;if(n.forEach((t=>{l.delAndReorder(t)})),n.length&&TM(o),o.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++,MM(t,e),t):void 0;if(i.colEnd-i.colStart+1<i.colLimit)return i.colEnd++,i.currentCol++,MM(t,e),t;return t}(t,o);TM(o),h=h??e,l.addAndReorder(t)})),function(t){let e=t.bodyColStart,i=t.getCellGroupX(e);function r(i){i.col=e;const r=ov(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++}))}(o),a.forEach((t=>{for(let e=0;e<r.rowCount;e++){const i=ov(o.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++)RR(t,e,o.table,!1);else RR(t,e,o.table,!1)}})),ot(h)){for(let t=h;t<r.colCount;t++)for(let e=0;e<r.rowCount;e++){const i=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}o.proxy.colUpdatePos=h}if(s.length){if(!ot(h)){const t=Math.min(...s);o.proxy.colUpdatePos=t}o.proxy.colUpdateDirection="left",o.proxy.updateColGroups(2*o.proxy.screenColCount),d(),o.proxy.progress()}else n.length&&(o.proxy.updateColGroups(2*o.proxy.screenColCount),d(),o.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||n?.[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=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}o.proxy.updateRightFrozenCellGroups()}}o.updateContainerWidth(o.table.frozenColCount,c-o.bodyGroup.attribute.width)}function BM(t){const e=[];for(let i=0;i<t.length;i++)-1===e.indexOf(t[i])&&e.push(t[i]);return e}function TM(t){let e=t.bodyColStart;function i(i){i.col=e;const r=ov(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 MM(t,e){if(e.colHeaderGroup&&e.table.columnHeaderLevelCount>0){const r=new VA({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const o=e.getColGroup(t,!0);o?e.colHeaderGroup.insertBefore(r,o):e.colHeaderGroup.appendChild(r),i(r,t,0,e.table.columnHeaderLevelCount-1)}if(e.bodyGroup){const r=new VA({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const o=e.getColGroup(t,!1);o?e.bodyGroup.insertBefore(r,o):e.bodyGroup.appendChild(r),i(r,t,e.bodyRowStart,e.bodyRowEnd)}if(e.bottomFrozenGroup&&e.table.bottomFrozenRowCount>0){const r=new VA({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const o=e.getColGroupInBottom(t);o?e.bottomFrozenGroup.insertBefore(r,o):e.bottomFrozenGroup.appendChild(r),i(r,t,e.table.rowCount-e.table.bottomFrozenRowCount,e.table.rowCount-1)}function i(t,i,r,o){for(let n=r;n<=o;n++){const r=new VA({x:0,y:0,width:e.table.getColWidth(i),height:e.table.getRowHeight(n)});r.role="cell",r.col=i,r.row=n,r.needUpdate=!0,t.appendChild(r)}}}iC(),Xr.load(Lv),Xr.load(mT),Xr.load(rB);class PM{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){var e;let i,r;var o;this.table=t,this.hasFrozen=!1,this.clear=!0,this.mergeMap=new Map,e=this.table.theme.textPopTipStyle,wt(Sv.poptip,_v,e),t.options.canvas&&t.options.viewBox?(Ru.setEnv("browser"),i=t.options.viewBox.x2-t.options.viewBox.x1,r=t.options.viewBox.y2-t.options.viewBox.y1):"node"===IC.mode?(Ru.setEnv("node",t.options.modeParams),i=t.canvasWidth,r=t.canvasHeight):(Ru.setEnv("browser"),i=t.canvas.width,r=t.canvas.height),this.stage=(o={canvas:t.canvas,width:i,height:r,disableDirtyBounds:!1,background:t.theme.underlayBackgroundColor,dpr:t.internalProps.pixelRatio,enableLayout:!0,beforeRender:t=>{this.table.options.beforeRender&&this.table.options.beforeRender(t)},afterRender:t=>{this.table.options.afterRender&&this.table.options.afterRender(t),this.table.fireListeners("after_render",null)},canvasControled:!t.options.canvas,viewBox:t.options.viewBox,...t.options.renderOption},new Yu(o)),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 VA({x:0,y:0,width:e,height:i,clip:!0,pickable:!1}),t.tableGroup.role="table";const r=CM(0,0,!0);r.role="col-header",t.colHeaderGroup=r;const o=CM(0,0,!0);o.role="corner-header",t.cornerHeaderGroup=o;const n=CM(0,0,!0);n.role="row-header",t.rowHeaderGroup=n;const s=CM(e,0,!0);s.role="body",t.bodyGroup=s;const a=CM(0,0,!0);a.role="right-frozen",t.rightFrozenGroup=a;const l=CM(0,0,!0);l.role="bottom-frozen",t.bottomFrozenGroup=l;const h=CM(0,0);h.role="component",t.componentGroup=h;const c=CM(0,0,!0);c.role="corner-right-top-header",t.rightTopCornerGroup=c;const d=CM(0,0,!0);d.role="corner-right-bottom-header",t.rightBottomCornerGroup=d;const u=CM(0,0,!0);u.role="corner-left-bottom-header",t.leftBottomCornerGroup=u,t.tableGroup.addChild(s),t.tableGroup.addChild(n),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(o),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 HB(this.table),this.component.addToGroup(this.componentGroup),this.selectedRangeComponents=new Map,this.selectingRangeComponents=new Map}updateComponent(){this.component.updateStyle()}createSceneGraph(){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 ZT(this.table),EB(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0,!0),this.table.isPivotChart()&&(AM(this.rightTopCornerGroup,this.table.theme.cornerRightTopCellStyle||this.table.theme.cornerHeaderStyle||{}),AM(this.leftBottomCornerGroup,this.table.theme.cornerLeftBottomCellStyle||this.table.theme.cornerHeaderStyle||{}),AM(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||ST}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=ov(this.table,t,e);let o=i.attribute.width,n=i.attribute.height;return r&&(o/=r.end.col-r.start.col+1,n/=r.end.row-r.start.row+1),{width:o,height:n}}updateNextFrame(){this.updateContainerSync(),this.resetAllSelectComponent(),this.stage.renderNextFrame()}resetAllSelectComponent(){var t;this.table.stateManager.select?.ranges?.length>0&&((t=this).selectingRangeComponents.forEach(((e,i)=>{QT(e,i,t)})),t.selectedRangeComponents.forEach(((e,i)=>{QT(e,i,t)})))}hideHoverIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(SM(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&&(SM(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&&(SM(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&&(SM(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,o){let n;return o.getCell(t,e).forEachChildren((t=>{t.role&&t.role.startsWith("icon")&&t.containsPoint(i,r,wi.GLOBAL)&&(n=t)})),n}(t,e,i,r,this)}setIconHoverStyle(t,e,i,r){!function(t,e,i,r,o){if((t.attribute.backgroundColor||t.attribute.hoverImage)&&SM(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=fl({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)}),o),t.tooltip){const{x1:r,x2:n,y1:s,y2:a}=t.globalAABBBounds,l={content:t.tooltip.title,referencePosition:{rect:{left:r,right:n,top:s,bottom:a,width:t.globalAABBBounds.width(),height:t.globalAABBBounds.height()},placement:t.tooltip.placement},disappearDelay:t.tooltip.disappearDelay,style:Object.assign({},o.table.internalProps.theme?.tooltipStyle,t.tooltip?.style)};o.table.internalProps.tooltipHandler.isBinded(l)||o.table.showTooltip(e,i,l)}}(t,e,i,0,this)}updateSortIcon(t,e,i,r,o,n,s){xM(t,e,i,r,o,n,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++)SM(e,i,(t=>"frozen"===t.attribute.funcType),(r=>{const o=t.table.internalProps.headerHelper.getFrozenIcon(e,i);fR(o,r),r.name=o.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),SM(t,e,(t=>t.attribute.funcType===cC.collapse||t.attribute.funcType===cC.expand),(t=>{fR(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)&&SM(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){SM(t,e,(t=>t.attribute.funcType===cC.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){SM(t,e,(t=>t.attribute.funcType===cC.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,o,n,s){!function(t,e,i,r,o,n,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,o),d=Math.max(e,r),u=Math.max(i,o),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=fl({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 C;l&&(C=fl({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:C,role:n}),t.tableGroup.insertAfter(y,"body"===n?t.bodyGroup:"columnHeader"===n?t.colHeaderGroup:"rowHeader"===n?t.rowHeaderGroup:"cornerHeader"===n?t.cornerHeaderGroup:"rightTopCorner"===n?t.rightTopCornerGroup:"rightFrozen"===n?t.rightFrozenGroup:"leftBottomCorner"===n?t.leftBottomCornerGroup:"bottomFrozen"===n?t.bottomFrozenGroup:t.rightBottomCornerGroup),l&&t.tableGroup.insertAfter(C,"body"===n?t.bodyGroup:"columnHeader"===n?t.colHeaderGroup:"rowHeader"===n?t.rowHeaderGroup:"cornerHeader"===n?t.cornerHeaderGroup:"rightTopCorner"===n?t.rightTopCornerGroup:"rightFrozen"===n?t.rightFrozenGroup:"leftBottomCorner"===n?t.leftBottomCornerGroup:"bottomFrozen"===n?t.bottomFrozenGroup:t.rightBottomCornerGroup)}(this,t,e,i,r,o,n,s)}moveSelectingRangeComponentsToSelectedRangeComponents(){rM(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(){oM(this)}updateCellSelectBorder(t,e=!0){tM(this,t,e)}removeFillHandleFromSelectComponents(){this.selectedRangeComponents.forEach(((t,e)=>{t.fillhandle?.delete(),t.fillhandle=void 0}))}recreateAllSelectRangeComponents(){oM(this),this.table.stateManager.select.ranges.forEach((t=>{tM(this,t)})),rM(this)}updateColWidth(t,e,i,r){!function(t,e,i,r){r||t.table._setColWidth(e,t.table.getColWidth(e)+i,!0);const o=t.getColGroup(e,!0),n=t.getColGroupInRightTopCorner(e);o&&!n&&xB(o,i,"col-corner",t),n&&xB(n,i,"right-top",t);const s=t.getColGroup(e);s&&xB(s,i,"row-body",t);const a=t.getColGroupInLeftBottomCorner(e);a&&xB(a,i,"left-bottom",t);const l=t.getColGroupInBottom(e);l&&xB(l,i,"bottom",t);const h=t.getColGroupInRightBottomCorner(e);h&&xB(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 o=[];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]);o.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]);o.push(t)}_t(i._selectedDataItemsInChart,o)||(i._selectedDataItemsInChart=o,i.internalProps.layoutMap.updateDataStateToChartInstance(),bM(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=yT(t,0,this.table.rowCount-1,this.table,!0);i!==e&&this.updateColWidth(t,i-e)}recalculateColWidths(){bT(this.table,0,this.table.colCount-1,!0)}recalculateRowHeights(){this.table.internalProps.useOneRowHeightFillAll=!1,uB(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){wB(this,t,e=Math.round(e),i),this.updateContainerHeight(t,e)}updateRowsHeight(t,e,i){for(let r=0;r<t.length;r++){const o=t[r];if(o>=this.proxy.rowStart&&o<=this.proxy.rowEnd){const t=e[r];wB(this,o,Math.round(t),i),this._updateContainerHeight(o,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(),UT(this.table),this.table.options.animationAppear&&function(t){if(!t.options.animationAppear)return;let e,i,r,o;!0===t.options.animationAppear?(e=500,i=0,r="one-by-one",o="column"):(e=t.options.animationAppear.duration??500,i=t.options.animationAppear.delay??0,r=t.options.animationAppear.type??"one-by-one",o=t.options.animationAppear.direction??"row");const{scenegraph:n,frozenColCount:s,frozenRowCount:a}=t,{colStart:l,colEnd:h,rowStart:c,rowEnd:d}=n.proxy;for(let t=0;t<=h;t++)for(let s=0;s<=d;s++){const a=n.highPerformanceGetCell(t,s);a&&"cell"===a.role&&a.forEachChildren((n=>{n.setAttribute("opacity",0),n.animate().wait("one-by-one"===r?("row"===o?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)}_T(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 o=t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=o),r+=o}if(r<e&&r>i){_T(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 o=0;this.cornerHeaderGroup.forEachChildrenSkipChild((t=>{o+=t.attribute.width})),this.cornerHeaderGroup.setAttribute("width",o),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,o=t.columnHeaderLevelCount,n=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount;let s=0;for(let e=o;e<n;e++)s+=t.getRowHeight(e);const a=r/s;for(let e=o;e<n;e++){let i;i=e===n-1?r-t.getRowsHeight(o,n-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 o=t.getRowHeight(e);(e<t.columnHeaderLevelCount||t.isPivotChart()&&e>=t.rowCount-t.bottomFrozenRowCount)&&(r+=o),i+=o}if((this._dealAutoFillHeightOriginRowsHeight??i)<e&&i-r>0){const o=t.columnHeaderLevelCount,n=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount,s=(e-r)/(i-r);for(let i=o;i<n;i++){let a;a=i===n-1?e-r-t.getRowsHeight(o,n-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++)cM(t),dM(t),pM(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++)uM(t),gM(t),fM(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++)uM(t),gM(t),fM(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++)cM(t),dM(t),pM(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 o=!1;return t.forEachChildren(((t,n)=>{n+=e;const s=ov(this.table,i,n);s?t=this.getCell(s.start.col,s.start.row):t.setAttribute("width",r);const a=DS($A("padding",this.table._getCellStyle(i,n),i,n,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(n);t.attribute.height!==c&&(t.setAttribute("height",c),(d===h||c>d)&&(o=!0))})),o}updateHeaderPosition(t,e,i,r,o){!function(t,e,i,r,o,n){const s=n.scenegraph;for(let i=t;i<=e;i++){const t=n.getColWidth(i),e=n.scenegraph.getColGroup(i,!0),r=n.scenegraph.getColGroup(i),o=n.scenegraph.getColGroupInBottom(i),s=n.scenegraph.getColGroupInLeftBottomCorner(i),a=n.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)}))),o&&(o.setAttribute("width",t),o.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"===o)for(let i=t;i<=e;i++){const t=n.scenegraph.getColGroup(i);t?.setAttribute("chartInstance",void 0);for(let t=0;t<=n.frozenRowCount-1;t++)s.updateCellContent(i,t);for(let t=s.bodyRowStart;t<=s.bodyRowEnd;t++)s.updateCellContent(i,t);for(let t=n.rowCount-n.bottomFrozenRowCount;t<=n.rowCount-1;t++)s.updateCellContent(i,t)}else{for(let t=0;t<=n.frozenColCount-1;t++){const e=n.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=n.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}for(let t=n.colCount-n.rightFrozenColCount;t<=n.colCount-1;t++){const e=n.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}}}(t,e,i,r,o,this.table)}updateContainerAttrWidthAndX(){const t=wM(this.cornerHeaderGroup,0),e=wM(this.rowHeaderGroup,0),i=this.colHeaderGroup.hasChildNodes()&&this.colHeaderGroup.firstChild?wM(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?wM(this.bodyGroup,this.bodyGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bodyGroup.firstChild.col-1):0):0,o=wM(this.rightFrozenGroup,0);this.bottomFrozenGroup.hasChildNodes()&&this.bottomFrozenGroup.firstChild&&wM(this.bottomFrozenGroup,this.bottomFrozenGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bottomFrozenGroup.firstChild.col-1):0),wM(this.leftBottomCornerGroup,0),wM(this.rightTopCornerGroup,0),wM(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(o-this.rightFrozenGroup.attribute.width),this.rightTopCornerGroup.setDeltaWidth(o-this.rightTopCornerGroup.attribute.width),this.rightBottomCornerGroup.setDeltaWidth(o-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.updateNextFrame())}updateCellContentWhileResize(t,e){const i=this.table.getBodyColumnType(t,e),r=this.getCell(t,e);"image"!==i&&"video"!==i||ZA(r,t,e,this.table)}createFrameBorder(){this.updateTableSize();const t=!this.isPivot&&!this.table.internalProps.transpose;EB(this.bodyGroup,this.table.theme.bodyStyle.frameStyle,this.bodyGroup.role,t?[!0,!0,!0,!1]:void 0),EB(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),EB(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle,this.colHeaderGroup.role,t?[!0,!0,!0,!1]:void 0),EB(this.cornerHeaderGroup,this.isPivot?this.table.theme.cornerHeaderStyle.frameStyle:this.table.theme.headerStyle.frameStyle,this.cornerHeaderGroup.role,t?[!0,!1,!0,!0]:void 0),EB(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0)}getResizeColAt(t,e,i,r=8){let o;if(!i){const i=this.table.getDrawRange();return e>=i.top&&e<=i.bottom?(o=this.table.getCellAt(t-r,e),o):{col:-1,row:-1}}return t<i.globalAABBBounds.x1+r?o={col:i.col-1,row:i.row,x:i.globalAABBBounds.x1}:i.globalAABBBounds.x2-r<t&&(o={col:i.col,row:i.row,x:i.globalAABBBounds.x2}),o&&this.table.rightFrozenColCount>0&&o.col===this.table.colCount-this.table.rightFrozenColCount-1&&this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()+this.table.scrollLeft<this.bodyGroup.attribute.width&&(o.col=o.col+1,o.rightFrozen=!0),o||{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:o,rightFrozenGroup:n,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--)mM(n,e.getColGroup(r),n.firstChild),mM(o,e.getColGroup(r,!0),o.firstChild),mM(s,e.getColGroupInBottom(r),s.firstChild);let r=0;n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,o.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 o=e.getColGroupInRightTopCorner(r);o.setAttribute("x",h.lastChild.attribute.x+i.getColWidth(h.lastChild.col)),h.appendChild(o);const n=e.getColGroupInRightBottomCorner(r);n.setAttribute("x",a.lastChild.attribute.x+i.getColWidth(a.lastChild.col)),a.appendChild(n)}let r=0;n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,o.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,s.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width}))}n.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),o.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:o,leftBottomCornerGroup:n,rightBottomCornerGroup:s}=e;o.childrenCount||(r.table.isPivotChart()||(TT(n,0,0,0,i.frozenColCount-1,0,-1,"rowHeader",i),TT(s,0,0,i.colCount-i.rightFrozenColCount,i.colCount-1,0,-1,"body",i)),TT(o,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 o=e.getColGroupInLeftBottomCorner(r);for(let n=i.rowCount-a-1;n>=i.rowCount-t;n--)mM(o,e.getCell(r,n,!0),o.firstChild);let n=0;o.forEachChildren((t=>{t.setAttribute("y",n),n+=i.getRowHeight(t.row)}))}for(let o=r.colStart;o<=r.colEnd;o++){const r=e.getColGroupInBottom(o);for(let n=i.rowCount-a-1;n>=i.rowCount-t;n--)mM(r,e.getCell(o,n,!0),r.firstChild);let n=0;r.forEachChildren((t=>{t.setAttribute("y",n),n+=i.getRowHeight(t.row)}))}if(i.rightFrozenColCount>0)for(let r=i.colCount-i.rightFrozenColCount;r<i.colCount;r++){const o=e.getColGroupInRightBottomCorner(r);for(let n=i.rowCount-a-1;n>=i.rowCount-t;n--)mM(o,e.getCell(r,n,!0),o.firstChild);let n=0;o.forEachChildren((t=>{t.setAttribute("y",n),n+=i.getRowHeight(t.row)}))}}else if(t<a){for(let r=0;r<i.rowHeaderLevelCount;r++){const o=e.getColGroup(r);for(let n=i.rowCount-a;n<i.rowCount-t;n++){const t=e.getCell(r,n,!0);t.setAttribute("y",o.lastChild.attribute.y+i.getRowHeight(o.lastChild.row)),o.appendChild(t)}const n=e.getColGroupInLeftBottomCorner(r);let s=0;n.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}for(let o=r.colStart;o<=r.colEnd;o++){const r=e.getColGroup(o);for(let n=i.rowCount-a;n<i.rowCount-t;n++){const t=e.getCell(o,n,!0);t.setAttribute("y",r.lastChild.attribute.y+i.getRowHeight(r.lastChild.row)),r.appendChild(t)}const n=e.getColGroupInBottom(o);let s=0;n.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 o=e.getColGroup(r);for(let n=i.rowCount-a;n<i.rowCount-t;n++){const t=e.getCell(r,n,!0);t.setAttribute("y",o.lastChild.attribute.y+i.getRowHeight(o.lastChild.row)),o.appendChild(t)}const n=e.getColGroupInRightBottomCorner(r);let s=0;n.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}}o.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),n.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),IB(this.bodyGroup),this.rowHeaderGroup.attribute.width,LB(this.bodyGroup,this.table.theme.bodyStyle.frameStyle)),this.colHeaderGroup.border&&(this.colHeaderGroup.appendChild(this.colHeaderGroup.border),IB(this.colHeaderGroup),this.cornerHeaderGroup.attribute.width,LB(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle)),this.rowHeaderGroup.border&&(this.rowHeaderGroup.appendChild(this.rowHeaderGroup.border),IB(this.rowHeaderGroup)),this.cornerHeaderGroup.border&&(this.cornerHeaderGroup.appendChild(this.cornerHeaderGroup.border),IB(this.cornerHeaderGroup)),function(t){if(!t.theme.frameStyle.cornerRadius)return;const e=t.theme.frameStyle.cornerRadius,{cornerHeaderGroup:i,colHeaderGroup:r,rowHeaderGroup:o,bodyGroup:n,rightTopCornerGroup:s,leftBottomCornerGroup:a,rightBottomCornerGroup:l,rightFrozenGroup:h,bottomFrozenGroup:c}=t.scenegraph;i.setAttribute("cornerRadius",0),r.setAttribute("cornerRadius",0),o.setAttribute("cornerRadius",0),n.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?FB(i,[e,0,0,0]):r.attribute.height>0?FB(r,[e,0,0,0]):o.attribute.width>0?FB(o,[e,0,0,0]):FB(n,[e,0,0,0]),a.attribute.width>0&&a.attribute.height>0?FB(a,[0,0,0,e]):c.attribute.height>0?FB(c,[0,0,0,e]):o.attribute.width>0?FB(o,[0,0,0,e]):FB(n,[0,0,0,e]),s.attribute.width>0&&s.attribute.height>0?FB(s,[0,e,0,0]):r.attribute.height>0?FB(r,[0,e,0,0]):h.attribute.width>0?FB(h,[0,e,0,0]):FB(n,[0,e,0,0]),l.attribute.width>0&&l.attribute.height>0?FB(l,[0,0,e,0]):h.attribute.width>0?FB(h,[0,0,e,0]):c.attribute.height>0?FB(c,[0,0,e,0]):FB(n,[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=et(i.attribute.text)?i.attribute.text.join(""):i.attribute.text;let o="";if(tt(i.cache.clipedText)?o=i.cache.clipedText:i.cache.layoutData?.lines?.forEach((t=>{o+=t.str})),o!==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,o){this.component.drillIcon.update(t,e,i,r,o,this)}updateCellContent(t,e){if(!this.clear)return RR(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=JC(e.map((t=>t.row))).sort(((t,e)=>t-e)),o=JC(i.map((t=>t.row))).sort(((t,e)=>t-e)),n=this.table.getAllRowsHeight()-[...r,...o].reduce(((t,e)=>t+this.table.getRowHeight(e)),0)<=this.table.tableNoFrameHeight;if(nM(t,e,i,this.table),this.recalculateColWidths(),"adaptive"===this.table.heightMode||this.table.autoFillHeight&&(this.table.getAllRowsHeight()<=this.table.tableNoFrameHeight||n))this.table.scenegraph.recalculateRowHeights();else if("autoHeight"===this.table.heightMode)for(let t=0;t<o.length;t++){const e=o[t],i=this.table.getRowHeight(e),r=gB(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=[]){RM(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}}function HM(t,e,i){const r=t.highPerformanceGetCell(e,i);if("cell"===r.role&&Y(r.mergeStartCol)&&Y(r.mergeStartRow)&&Y(r.mergeEndCol)&&Y(r.mergeEndRow)){const{colStart:e,colEnd:i,rowStart:o,rowEnd:n}=CB(r,t);for(let r=e;r<=i;r++)for(let e=o;e<=n;e++){t.highPerformanceGetCell(r,e).addUpdateBoundTag()}}else r.addUpdateBoundTag()}function EM(t,e,i,r,o){const n=t.table;for(let i=0;i<n.columnHeaderLevelCount;i++)HM(t,e,i);const s=t.getColGroup(e);return s?.addUpdateBoundTag(),!0}function LM(t,e,i,r,o,n){const s=t.table;for(let i=0;i<s.columnHeaderLevelCount;i++)HM(t,e,i);const a=t.getColGroup(e);return a?.addUpdateBoundTag(),!0}function kM(t,e,i,r,o){const n=t.table;for(let e=0;e<n.colCount;e++)HM(t,e,i);return!0}function IM(t,e,i,r,o,n){const s=t.table;for(let e=0;e<s.colCount;e++)HM(t,e,i);return!0}function FM(t,e,i){const{table:r}=t,{scenegraph:o}=r,{highlightScope:n,singleStyle:s,disableHeader:a,cellPos:l,cellPosContainHeader:h}=t.hover,c=l.col,d=l.row;if(n===oC.none||a&&(h.col!==e||h.row!==i)){const t=h.col,r=h.row;o.hideHoverIcon(t,r),o.showHoverIcon(e,i),h.col=e,h.row=i}if((a&&r.isHeader(e,i)||n===oC.none)&&(e=-1,i=-1),c===e&&d===i)return;o.deactivateChart(c,d),o.activateChart(e,i);let u=!1;const{ranges:g,highlightScope:p}=t.select;if(-1!==c&&-1!==d&&(u=function(t,e,i,r,o,n,s){let a=!1;n===oC.single?a=!!function(t,e,i,r,o){return HM(t,e,i),!0}(t,e,i)||a:n===oC.row?a=!!kM(t,0,i)||a:n===oC.column?a=!!EM(t,e)||a:n===oC.cross&&(a=!!kM(t,0,i)||a,a=!!EM(t,e)||a);return a}(o,c,d,0,0,n),a||o.hideHoverIcon(c,d)),-1===e||-1===i)return l.col=-1,l.row=-1,void(!u||c===e&&d===i||t.table.scenegraph.updateNextFrame());n===oC.single?u=!!function(t,e,i,r,o){return HM(t,e,i),!0}(o,e,i)||u:n===oC.row?u=!!IM(o,0,i)||u:n===oC.column?u=!!LM(o,e)||u:n===oC.cross&&(u=!!IM(o,0,i)||u,u=!!LM(o,e)||u),n===oC.none||a||o.showHoverIcon(e,i),l.col=e,l.row=i,u&&t.table.scenegraph.updateNextFrame()}function zM(t,e,i,r){let o,n=null,s=!1;if(Array.isArray(i.sortState))for(let r=0;r<i.sortState.length&&(o=i.sortState[r],o&&(n=i._getHeaderCellBySortState(o)),n&&(s=OM(t,e,n.col,n.row,i)),!s);r++);else o=i.sortState,o&&(n=i._getHeaderCellBySortState(o)),n&&(s=OM(t,e,n.col,n.row,i));const a=i.getHeaderDefine(t,e);o&&s&&a?.sort?o.order="asc"===o.order?"desc":"desc"===o.order?"normal":"asc":a?.sort?o={field:i.getHeaderField(t,e),order:"asc"}:s&&a?.showSort||(o={field:i.getHeaderField(t,e),order:"normal"}),o.event=r;i.fireListeners(xw.SORT_CLICK,o).includes(!1)||(i.internalProps.sortState=o,i.stateManager.setSortState(o),a?.sort&&function(t,e,i){const r=e.internalProps.layoutMap.headerObjects.find((e=>e&&e.field===t.field));if(!r)return;const{field:o}=r;if(null===o)return;"function"==typeof i.sort?e.dataSource.sort(o,t.order||"asc",i.sort):e.dataSource.sort(o,t.order||"asc",qC)}(o,i,a),i.internalProps.useOneRowHeightFillAll=!1,i.internalProps.layoutMap.clearCellRangeMap(),i.scenegraph.sortCell(),i.stateManager.updateSelectPos(-1,-1))}function OM(t,e,i,r,o){return o._getLayoutCellId(t,e)===o._getLayoutCellId(i,r)}const DM=lw(xw,{PIVOT_SORT_CLICK:"pivot_sort_click",DRILLMENU_CLICK:"drillmenu_click"}),WM=lw(xw,{VCHART_EVENT_TYPE:"vchart_event_type"});function NM(t,e,i,r,o){for(let i=t;i<=e;i++)o._clearColRangeWidthsMap(i);for(let t=i;t<=r;t++)o._clearRowRangeHeightsMap(t)}function GM(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 jM(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 VM(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 UM{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=Sw((()=>{this.updateInteractionState(rC.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=rC.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 fe,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=rC.default,this.select={highlightScope:oC.single,ranges:[],cellPos:{col:-1,row:-1},selecting:!1},this.fillHandle={isFilling:!1,startX:void 0,startY:void 0},this.hover={highlightScope:oC.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 fe,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=oC.none:"cross"===t?this.hover.highlightScope=oC.cross:"row"===t?this.hover.highlightScope=oC.row:"column"===t?this.hover.highlightScope=oC.column:"cell"===t&&(this.hover.highlightScope=oC.single),this.hover.singleStyle=!e,this.hover.disableHeader=i,(this.hover.highlightScope===oC.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?oC.none:"cross"===r?oC.cross:"row"===r?oC.row:"column"===r?oC.column:oC.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=>{gw(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===rC.scrolling&&rC.default}updateHoverhighlightScope(t){this.hover.highlightScope!==t&&(this.hover.highlightScope=t)}updateHoverPos(t,e){FM(this,t,e)}updateSelectPos(t,e,i=!1,r=!1,o=!1,n=!1,s=!1){-1!==e&&-1!==e&&(this.select.selecting=!0),function(t,e,i,r,o,n,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===rC.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(n){t.select.ranges=[],c.deleteAllSelectBorder();let e=0,i=0;const{disableHeaderSelect:r,disableRowSeriesNumberSelect:o}=l.options.keyboardOptions?.selectAllOnCtrlA||{};r&&(e=l.rowHeaderLevelCount,i=l.columnHeaderLevelCount),(o||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 n=t.select.ranges[t.select.ranges.length-1];c.updateCellSelectBorder(n,!1)}else if(-1===g.col||-1===g.row||-1!==e&&-1!==i)if(h!==rC.default||l.eventManager.isDraging||l.stateManager.isResizeCol()){if((h===rC.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 o=t.select.ranges[t.select.ranges.length-1];if(o){if(l.internalProps.layoutMap.isSeriesNumberInBody(o.start.col,o.start.row))r=!1,o.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)o.start.row=o.end.row=i;else if(i<=t.fillHandle.beforeFillMinRow){if(o.start.row<o.end.row){const t=o.start.row;o.start.row=o.end.row,o.end.row=t}o.end.row=i}else i===t.fillHandle.beforeFillMaxRow&&(o.start.row>o.end.row?o.start.row=i:o.end.row=i);else if("bottom"===t.fillHandle.direction){if(i>=t.fillHandle.beforeFillMaxRow){if(o.start.row>o.end.row){const t=o.start.row;o.start.row=o.end.row,o.end.row=t}o.end.row=i}}else if("left"===t.fillHandle.direction)if(e===t.fillHandle.beforeFillMinCol&&e===t.fillHandle.beforeFillMaxCol)o.start.col=o.end.col=e;else if(e<=t.fillHandle.beforeFillMinCol){if(o.start.col<o.end.col){const t=o.start.col;o.start.col=o.end.col,o.end.col=t}o.end.col=e}else e===t.fillHandle.beforeFillMaxCol&&(o.start.col>o.end.col?o.start.col=e:o.end.col=e);else if("right"===t.fillHandle.direction&&e>=t.fillHandle.beforeFillMaxCol){if(o.start.col>o.end.col){const t=o.start.col;o.start.col=o.end.col,o.end.col=t}o.end.col=e}}else o.end={col:e,row:i},a&&(o.skipBodyMerge=!0);c.updateCellSelectBorder(o,r)}}}else{const n=t.select.ranges[t.select.ranges.length-1];if(r&&n){if(o||(g.col=e,g.row=i),"cell"!==t.select.headerSelectMode&&l.isColumnHeader(e,i)){const t=Math.min(n.start.col,n.end.col,e),r=Math.max(n.start.col,n.end.col,e),o=Math.min(n.start.row,n.end.row,i),s=l.rowCount-1;n.start={col:t,row:o},n.end={col:r,row:s}}else if("cell"!==t.select.headerSelectMode&&l.isRowHeader(e,i)){const t=Math.min(n.start.col,n.end.col,e),r=l.colCount-1,o=Math.min(n.start.row,n.end.row,i),s=Math.max(n.start.row,n.end.row,i);n.start={col:t,row:o},n.end={col:r,row:s}}else n.end={col:e,row:i};c.deleteLastSelectedRangeComponents(),c.updateCellSelectBorder(n)}else{let r=!0;if(-1===g.col||-1===g.row||o||(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 n=t.select.ranges?.[t.select.ranges.length-1];n&&c.updateCellSelectBorder(n,r)}}else g.col=-1,g.row=-1,t.select.ranges=[],c.deleteAllSelectBorder();c.updateNextFrame()}(this,t,e,i,r,o,n,s)}checkCellRangeInSelect(t,e){return function(t,e,i,r){for(let r=0;r<i.length;r++)if(fw(i[r],{start:t,end:e}))return!0;return!1}(t,e,this.select.ranges,this.select.highlightScope)}updateHoverIcon(t,e,i,r,o){if(this.residentHoverIcon?.icon&&i===this.residentHoverIcon?.icon)return;const n=GM(i);if(n)if("richtext-icon"===n.type){const i=n.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:n.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=n.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){if(this.select.selecting){if(this.select.selecting=!1,0===this.select.ranges.length)return;const i=this.select.ranges[this.select.ranges.length-1];let r=!1;for(let t=0;t<this.select.ranges.length-1;t++){const e=this.select.ranges[t];if(e&&e.start.col===i.start.col&&e.start.row===i.start.row&&e.end.col===i.end.col&&e.end.row===i.end.row){r=!0;break}}r?(this.select.ranges.pop(),(e=this.table.scenegraph).selectingRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),e.selectingRangeComponents=new Map,this.table.scenegraph.selectingRangeComponents.clear()):this.table.scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();const o=this.select.ranges[this.select.ranges.length-1].end.col,n=this.select.ranges[this.select.ranges.length-1].end.row;t&&this.table.fireListeners(xw.SELECTED_CELL,{ranges:this.select.ranges,col:o,row:n})}else t&&0===this.select.ranges.length&&this.table.fireListeners(xw.SELECTED_CLEAR,{});var e}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),this.updateSelectPos(-1,-1),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 o=i.table.getColWidth(i.columnResize.col);let n=o;n+=r;const s=i.table.getMinColWidth(i.columnResize.col),a=i.table.getMaxColWidth(i.columnResize.col);if(n<s||n>a){if(o===s||o===a)return;r=o-s>a-o?a-o:s-o}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),o=i.table.getMaxColWidth(i.columnResize.col+1);let n=t;if(n-=r,n<e||n>o){if(t===e||t===o)return;r=t-e>o-t?o-t:e-t}n-r<i.table.internalProps.limitMinWidth&&(r=n-i.table.internalProps.limitMinWidth)}r=Math.ceil(r),i.columnResize.col<i.table.rowHeaderLevelCount||i.columnResize.col>=i.table.colCount-i.table.rightFrozenColCount?jM(r,i):"indicator"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,o,n;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];o=r.dimensionKey,n=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&&o===a.dimensionKey&&n===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),o=i.getHeadNodeByRowOrColDimensions(r.colHeaderPaths.slice(0,r.colHeaderPaths.length-1)),n=o.startInTotal+e.table.frozenColCount,s=o.startInTotal+e.table.frozenColCount+o.size-1,a=e.table.getColsWidth(n,s),l=t;for(let t=n;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):jM(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),this.updateSelectPos(-1,-1),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 o=i.table.getRowHeight(i.rowResize.row)+r;if(o<i.table.internalProps.limitMinHeight&&(o=i.table.internalProps.limitMinHeight,r=o-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?VM(r,i):"indicator"===i.table.internalProps.rowResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,o,n;if(i.indicatorsAsCol){const t=i.getCellHeaderPaths(e.table.rowHeaderLevelCount-1,e.rowResize.row),r=t.rowHeaderPaths?.[t.rowHeaderPaths.length-1];o=r?.dimensionKey,n=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&&o===a.dimensionKey&&n===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),o=i.getHeadNodeByRowOrColDimensions(r.rowHeaderPaths.slice(0,r.rowHeaderPaths.length-1)),n=o.startInTotal+e.table.frozenRowCount,s=o.startInTotal+e.table.frozenRowCount+o.size-1,a=e.table.getRowsHeight(n,s),l=t;for(let t=n;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):VM(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(xw.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(xw.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,o){if(!("canMoveHeaderPosition"in o.table.internalProps.layoutMap))return;o.columnMove.moving=!0,o.columnMove.colSource=t,o.columnMove.rowSource=e,o.columnMove.x=i-o.table.tableX,o.columnMove.y=r-o.table.tableY;const n=o.table.getCellLocation(t,e),s="columnHeader"===n?o.columnMove.x:"rowHeader"===n||o.table.internalProps.layoutMap.isSeriesNumberInBody(t,e)?o.columnMove.y:0;o.table.scenegraph.component.showMoveCol(t,e,s),o.table.stateManager.updateSelectPos(-1,-1),o.table.scenegraph.updateNextFrame()}(t,e,i,r,this)}updateMoveCol(t,e,i,r){!function(t,e,i,r,o){if(!("canMoveHeaderPosition"in o.table.internalProps.layoutMap))return;const n=function(t,e,i){const r=i.getCellRange(t.col,t.row);if(i.isColumnHeader(t.col,t.row)){const o=i.getCellRange(e.col,r.start.row);e.row>=i.columnHeaderLevelCount&&(e.row=i.columnHeaderLevelCount-1),e.col>=t.col?e.col=o.end.col:e.col=o.start.col}else if(i.isRowHeader(t.col,t.row)){const o=i.internalProps.layoutMap,n=i.getCellRange(r.start.col,e.row);if(e.col>=i.rowHeaderLevelCount+o.leftRowSeriesNumberColumnCount&&(e.col=i.rowHeaderLevelCount+o.leftRowSeriesNumberColumnCount-1),"tree"===o.rowHierarchyType){const r=o.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,n=o.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths;if(r.length<=n.length){const o=n[r.length-1];o&&(e.row>=t.row?e.row=o.startInTotal+o.size-1+i.columnHeaderLevelCount:e.row=o.startInTotal+i.columnHeaderLevelCount)}}else e.row>=t.row?e.row=n.end.row:e.row=n.start.row}return e}({col:o.columnMove.colSource,row:o.columnMove.rowSource},{col:t,row:e},o.table);let s,a,l,h;o.columnMove.x=i-o.table.tableX,o.columnMove.y=r-o.table.tableY,o.columnMove.colTarget=n.col,o.columnMove.rowTarget=n.row,o.table.internalProps.layoutMap.canMoveHeaderPosition({col:o.columnMove.colSource,row:o.columnMove.rowSource},{col:o.columnMove.colTarget,row:o.columnMove.rowTarget})?o.updateCursor("grabbing"):o.updateCursor("not-allowed");const c=o.table.getCellLocation(o.columnMove.colSource,o.columnMove.rowSource);"columnHeader"===c?(a=o.columnMove.x,s=o.table.isLeftFrozenColumn(t)?o.columnMove.colTarget>=o.columnMove.colSource?o.table.getColsWidth(0,o.columnMove.colTarget):o.table.getColsWidth(0,o.columnMove.colTarget-1):o.table.isRightFrozenColumn(t)?o.table.tableNoFrameWidth-o.table.getColsWidth(n.col+1,o.table.colCount-1):(o.columnMove.colTarget>=o.columnMove.colSource?o.table.getColsWidth(0,o.columnMove.colTarget):o.table.getColsWidth(0,o.columnMove.colTarget-1))-o.table.stateManager.scroll.horizontalBarPos):("rowHeader"===c||o.table.internalProps.layoutMap.isSeriesNumberInBody(t,e))&&(h=o.columnMove.y,l=o.table.isFrozenRow(e)?o.columnMove.rowTarget>=o.columnMove.rowSource?o.table.getRowsHeight(0,o.columnMove.rowTarget):o.table.getRowsHeight(0,o.columnMove.rowTarget-1):o.table.isBottomFrozenRow(e)?o.table.tableNoFrameHeight-o.table.getRowsHeight(n.row+1,o.table.rowCount-1):(o.columnMove.rowTarget>=o.columnMove.rowSource?o.table.getRowsHeight(0,o.columnMove.rowTarget):o.table.getRowsHeight(0,o.columnMove.rowTarget-1))-o.table.stateManager.scroll.verticalBarPos),o.table.scenegraph.component.updateMoveCol(a,s,h,l),o.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 o=t.table.getCellRange(t.columnMove.colSource,t.columnMove.rowSource),n=t.table.getCellRange(t.columnMove.colTarget,t.columnMove.rowTarget),s=Math.min(o.start.col,n.start.col,e.start.col,i.start.col),a=Math.max(o.end.col,n.end.col,e.end.col,i.end.col),l=Math.min(o.start.row,n.start.row,e.start.row,i.start.row);let h=Math.max(o.end.row,n.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?NM(s,a,0,-1,t.table):NM(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+=o.end.col-o.start.col+1:t.table.isLeftFrozenColumn(t.columnMove.colSource)&&!t.table.isLeftFrozenColumn(t.columnMove.colTarget)&&(t.table.frozenColCount-=o.end.col-o.start.col+1),t.table.isRightFrozenColumn(t.columnMove.colTarget)&&!t.table.isRightFrozenColumn(t.columnMove.colSource)?t.table.rightFrozenColCount+=o.end.col-o.start.col+1:t.table.isRightFrozenColumn(t.columnMove.colSource)&&!t.table.isRightFrozenColumn(t.columnMove.colTarget)&&(t.table.rightFrozenColCount-=o.end.col-o.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(xw.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(xw.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)),Y(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(xw.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)),Y(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(xw.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,Y(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(xw.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,Y(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(xw.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,SB.contextmenu)),this.table.fireListeners(xw.SHOW_MENU,{x:i,y:r,col:t,row:e,type:"contextmenu"}))}triggerDropDownMenu(t,e,i,r,o){this.table.fireListeners(xw.DROPDOWN_ICON_CLICK,{col:t,row:e,event:o}),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,SB.dropDown),this.menu.bounds=this.table.scenegraph.component.menu.bounds),this.table.fireListeners(xw.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 o=this.table.scenegraph.getCell(t,e);let n;o.forEachChildren((t=>t.attribute.funcType===cC.dropDown&&(n=t,!0))),n&&(this.residentHoverIcon={col:t,row:e,icon:n},this.table.scenegraph.setIconHoverStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row,o),this.table.scenegraph.residentHoverIcon(t,e))}hideMenu(){this.menu.isShow&&(this.table.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),this.table.fireListeners(xw.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],o=this.table.getCellRange(i,r);if(o)for(let t=o.start.col;t<=o.end.col;t++)for(let e=o.start.row;e<=o.end.row;e++)this.table.scenegraph.updateCellContent(t,e)}}dropDownMenuIsHighlight(t,e,i){const r=this.menu.dropDownMenuHighlight;if(Array.isArray(r))for(let o=0;o<r.length;o++){const n=r[o];let{col:s,row:a}=n;const{field:l,menuKey:h}=n;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(Y(s)&&Y(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(q(e)&&(e.menuKey||e.text)===(h||"")&&t===i)return!0;if(tt(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),o=i?i.toUpperCase():"DESC",n="ASC"===o?"DESC":"ASC";return this.table.sort(t,e,n),void this.table.fireListeners(DM.PIVOT_SORT_CLICK,{col:t,row:e,order:o||"normal",dimensionInfo:this.table.internalProps.layoutMap.getPivotDimensionInfo(t,e),cellLocation:this.table.getCellLocation(t,e),event:r})}const o=this.sort.col,n=this.sort.row;zM(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,o,n,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 o=this.table.internalProps.layoutMap.getHeaderCellAddressByField(t.field);this.sort.col=o.col,this.sort.row=o.row;const n=this.table.scenegraph.getCell(this.sort.col,this.sort.row).getChildByName(r,!0);this.table.scenegraph.updateSortIcon(this.sort.col,this.sort.row,n,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,o,n){this.drill.dimensionKey=t,this.drill.title=e,this.drill.drillDown=i,this.drill.drillUp=r,this.drill.col=o,this.drill.row=n,function(t,e,i,r,o){const n=o.getCellLocation(t,e);let s=0,a=0,l=!1;"columnHeader"===n?(s=o.getColsWidth(0,o.rowHeaderLevelCount-1)-(0===o.frozenColCount?o.scrollLeft:0),a=o.getRowsHeight(0,e-1)+o.getRowHeight(e)/2,l=!0):"rowHeader"===n&&(a=o.getRowsHeight(0,o.columnHeaderLevelCount-1),s=o.getColsWidth(0,t-1)+o.getColWidth(t)/2,l=!0),o.scenegraph.updateDrill(l,s,a,i,r)}(o,n,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"),o=r?.getChildByName("highlight-line"),n=r?.getChildByName("highlight-symbol");o&&o.setAttributes({visible:!1,pickable:!1}),n&&n.setAttributes({visible:!1,pickable:!1}),i.scenegraph.updateNextFrame()}(this.sparkLine.col,this.sparkLine.row,this.table);let o=!1;-1!==t&&-1!==e&&(o=function(t,e,i,r,o){const n=o.scenegraph.getCell(t,e).getChildByName("sparkline"),s=n?.getChildByName("sparkline-line"),a=n?.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-=n.globalAABBBounds.x1,n.globalAABBBounds.y1;for(let t=0;t<d.length;t++){const{x:e,y:r,defined:o,rawData:g}=d[t];if(Math.abs(i-e)<l/2&&(u={point:d[t],points:d,pointsBandWidth:l,pointData:g},o)){const t=n.getChildByName("highlight-line");if(t)t.setAttributes({points:[{x:e,y:c},{x:e,y:h}],visible:!0,pickable:!0});else{const t=ul({points:[{x:e,y:c},{x:e,y:h}],lineWidth:s.hover?.strokeWidth,stroke:s.hover?.stroke});t.name="highlight-line",n.addChild(t)}const i=n.getChildByName("highlight-symbol");if(i)i.setAttributes({x:e,y:r,visible:!0,pickable:!0});else{const t=hl({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",n.addChild(t)}break}}if(o.scenegraph.updateNextFrame(),u){const i={col:t,row:e,field:o.getHeaderField(t,e),value:o.getCellValue(t,e),dataValue:o.getCellOriginValue(t,e),cellHeaderPaths:o.internalProps.layoutMap.getCellHeaderPaths(t,e),title:o.getBodyColumnDefine(t,e).title,cellRange:o.getCellRelativeRect(t,e),sparkline:{pointData:u.pointData},scaleRatio:o.canvas.getBoundingClientRect().width/o.canvas.offsetWidth};o.fireListeners(xw.MOUSEOVER_CHART_SYMBOL,i)}return!0}(t,e,i,0,this.table)),o?(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,o){const n=o.table.getRecordShowIndexByCell(t,e);if(n>=0){const t=o.table.dataSource.getIndexKey(n);o.checkedState[t]||(o.checkedState[t]={}),o.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,o){if(o.table.isHeader(t,e)){if(Y(o.headerCheckedState[i]))return o.headerCheckedState[i];if("function"==typeof r)return;if(Y(r))o.headerCheckedState[i]=r;else if(o.checkedState?.length>0)return o.updateHeaderCheckedState(i);return o.headerCheckedState[i]}const n=o.table.getRecordShowIndexByCell(t,e);if(n>=0){const t=o.table.dataSource.getIndexKey(n);if(Y(o.checkedState[t]?.[i]))return o.checkedState[t][i];o.checkedState[t]||(o.checkedState[t]={}),o.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 o=t[r];let n;if(q(o)?n=o.checked:"boolean"==typeof o&&(n=o),null==n){const t=e._headerCheckFuncs[r];if(t){const s=e.table.getCellAddrByFieldRecord(r,i);n=dw(t,{col:s.col,row:s.row,table:e.table,context:null,value:o})}}e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][r]=n}))}))}(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 o=r[t];let n;q(o)?n=o.checked:"boolean"==typeof o&&(n=o),e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][t]=n}))}}(t,this)}setRadioState(t,e,i,r,o){!function(t,e,i,r,o,n){const s=n.table.getRecordShowIndexByCell(t,e);if(s>=0){const t=n.table.dataSource.getIndexKey(s);"column"===r?ot(o)?(n.radioState[i]={},n.radioState[i][t]=o):n.radioState[i]=t:(n.radioState[i]||(n.radioState[i]={}),ot(o)?n.radioState[i][t]=o:n.radioState[i][t]=!0)}}(t,e,i,r,o,this)}syncRadioState(t,e,i,r,o,n){return function(t,e,i,r,o,n,s){const a=s.table.getRecordShowIndexByCell(t,e);if(a>=0){const t=s.table.dataSource.getIndexKey(a);if("column"===r){if(!Y(s.radioState[i])&&n)return ot(o)?(s.radioState[i]={},s.radioState[i][t]=o):s.radioState[i]=t,!0;if(ot(s.radioState[i])&&!ot(o))return s.radioState[i]===t;if(ot(s.radioState[i])&&ot(o))return!1;if(q(s.radioState[i])&&!ot(o))return!1;if(q(s.radioState[i])&&ot(o))return s.radioState[i][t]===o}else if("cell"===r){if(!Y(s.radioState[i])&&n)return s.radioState[i]={},ot(o)?s.radioState[i][t]=o:s.radioState[i][t]=!0,!0;if(!Y(s.radioState[i]?.[t])&&n)return ot(o)?s.radioState[i][t]=o:s.radioState[i][t]=!0,!0;if(K(s.radioState[i]?.[t])&&!ot(o))return s.radioState[i][t];if(K(s.radioState[i]?.[t])&&ot(o))return!1;if(ot(s.radioState[i]?.[t])&&!ot(o))return!1;if(ot(s.radioState[i]?.[t])&&ot(o))return s.radioState[i][t]===o}}return n}(t,e,i,r,o,n,this)}changeCheckboxAndRadioOrder(t,e){this.checkedState.length&&function(t,e,i){const{checkedState:r,table:o}=i;if(o.internalProps.transpose?(t=o.getRecordShowIndexByCell(t,0),e=o.getRecordShowIndexByCell(e,0)):(t=o.getRecordShowIndexByCell(0,t),e=o.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:o}=i;if(o.internalProps.transpose?(t=o.getRecordShowIndexByCell(t,0),e=o.getRecordShowIndexByCell(e,0)):(t=o.getRecordShowIndexByCell(0,t),e=o.getRecordShowIndexByCell(0,e)),t!==e){const i=r[t];r[t]=r[e],r[e]=i}}(t,e,this)}}function KM(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(xw.MOUSEMOVE_CELL,(e=>{const{col:i,row:r,x:o,y:n}=e;"sparkline"!==t.getBodyColumnType(i,r)&&t.stateManager.updateSparklineHoverPose(-1,-1,0,0),t.stateManager.updateSparklineHoverPose(i,r,o,n)})),t.on(xw.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateSparklineHoverPose(-1,-1,0,0)})))}function $M(t){const e=t.table,i=e.stateManager;e.scenegraph.tableGroup.addEventListener("pointermove",(r=>{const o=e.eventManager.LastPointerXY?.x??r.x,n=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=BA(r);if(i.interactionState===rC.grabing)return void(Math.abs(o-r.x)+Math.abs(n-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()&&t.dealTableSelect(s,!0);const a=r.path.find((t=>"cell"===t.role));if(e.hasListeners(xw.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(xw.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(xw.MOUSEENTER_CELL)&&("cell"!==a?.role||!Y(a.col)||!Y(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(xw.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(xw.MOUSEMOVE_CELL)){let t,i;if(s.eventArgs?.target){const e=GM(s.eventArgs?.target);e&&(t=e.icon,i=e.position)}e.fireListeners(xw.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=BA(e),r=i?.eventArgs?.target;"table"===r?.role&&t.dealTableHover()})),e.scenegraph.tableGroup.addEventListener("pointerover",(t=>{const i=BA(t),r=i?.eventArgs?.target;if(r&&e.hasListeners(xw.MOUSEOVER_CHART_SYMBOL)&&"symbol"===r.type){const r=t.composedPath().find((t=>"cell"===t.roll));if(r){const{col:o,row:n}=r,s={col:o,row:n,field:e.getHeaderField(o,n),value:e.getCellValue(o,n),dataValue:e.getCellOriginValue(o,n),cellHeaderPaths:e.internalProps.layoutMap.getCellHeaderPaths(o,n),title:e.getBodyColumnDefine(o,n).title,cellRange:e.getCellRelativeRect(o,n),event:t.nativeEvent,sparkline:{pointData:void 0},scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:i?.eventArgs?.target};e.fireListeners(xw.MOUSEOVER_CHART_SYMBOL,s)}}})),e.scenegraph.tableGroup.addEventListener("pointerenter",(t=>{"focus"===e.theme.scrollStyle.visible&&(i.showHorizontalScrollBar(),i.showVerticalScrollBar()),e.hasListeners(xw.MOUSEENTER_TABLE)&&e.fireListeners(xw.MOUSEENTER_TABLE,{event:t.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerleave",(r=>{i.isResizeCol()||i.isMoveCol()||i.isSelecting()||(i.updateInteractionState(rC.default),i.updateCursor()),"focus"===e.theme.scrollStyle.visible&&(i.hideHorizontalScrollBar(),i.hideVerticalScrollBar()),e.hasListeners(xw.MOUSELEAVE_CELL)&&-1!==e.stateManager.hover.cellPos.col&&-1!==e.stateManager.hover.cellPos.row&&e.fireListeners(xw.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 o=r.target;o&&!o.isDescendantsOf(e.scenegraph.tableGroup)&&e.fireListeners(xw.MOUSELEAVE_TABLE,{event:r.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerupoutside",(r=>{const o=BA(r);if(i.menu.isShow&&o.eventArgs?.target!==i.residentHoverIcon?.icon&&setTimeout((()=>{e.internalProps.menuHandler.pointInMenuElement(r.page.x,r.page.y)||i.menu.isShow&&i.hideMenu()}),0),i.isResizeCol())YM(e);else if(i.isResizeRow())qM(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(xw.CHANGE_HEADER_POSITION)&&e.fireListeners(xw.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(xw.DRAG_SELECT_END)){const o={event:r.nativeEvent,cells:[],col:t,row:i,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:void 0};o.cells=e.getSelectedCellInfos(),e.fireListeners(xw.DRAG_SELECT_END,o)}}e.editorManager?.completeEdit(r.nativeEvent),i.updateInteractionState(rC.default),t.dealTableHover()})),e.scenegraph.tableGroup.addEventListener("pointerdown",(r=>{if(e.hasListeners(xw.MOUSEDOWN_TABLE)&&e.fireListeners(xw.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 o=BA(r);if(t.downIcon=void 0,i.interactionState!==rC.default)return;e.isPivotChart()&&"chart"!==o?.eventArgs?.target.type&&e.scenegraph.updateChartState(null),o.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu(),e.editorManager?.completeEdit(r.nativeEvent);const n=o?.eventArgs?.target?.role?.startsWith("icon")?o.eventArgs.target:r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=n,n&&!1!==n.attribute.interactive)n.attribute.funcType===cC.dragReorder&&(i.startMoveCol(o.eventArgs.col,o.eventArgs.row,o.abstractPos.x,o.abstractPos.y),i.updateInteractionState(rC.grabing));else if("touch"===r.pointerType)t.touchEnd=!1,t.touchSetTimeout=setTimeout((()=>{t.isTouchdown=!1,t.touchMove=!0,(t.touchEnd||!t.checkColumnResize(o,!0)&&!t.checkRowResize(o,!0))&&(t.touchEnd||!t.chechColumnMover(o))?t.dealTableSelect(o)&&!t.touchEnd&&i.updateInteractionState(rC.grabing):i.updateInteractionState(rC.grabing)}),500),t.dealTableHover(o);else{if(!t.checkCellFillhandle(o)&&(t.checkColumnResize(o,!0)||t.checkRowResize(o,!0)))return e.scenegraph.updateChartState(null),void i.updateInteractionState(rC.grabing);if(t.chechColumnMover(o))return void i.updateInteractionState(rC.grabing);if(t.checkCellFillhandle(o,!0)&&t.dealFillSelect(o))return void i.updateInteractionState(rC.grabing);t.dealTableSelect(o)&&i.updateInteractionState(rC.grabing)}if(e.hasListeners(xw.MOUSEDOWN_CELL)){const t=BA(r);t.eventArgs&&e.fireListeners(xw.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(rC.default),i.isResizeCol())YM(e);else if(i.isResizeRow())qM(e);else if(i.isMoveCol()){const i=BA(t);e.stateManager.endMoveCol(),i.eventArgs&&e.hasListeners(xw.CHANGE_HEADER_POSITION)&&e.fireListeners(xw.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=BA(t);if(e.eventManager.isDraging&&i.eventArgs&&e.hasListeners(xw.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(xw.DRAG_SELECT_END,r)}}}else i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default);if(e.hasListeners(xw.MOUSEUP_CELL)){const i=BA(t);i.eventArgs&&e.fireListeners(xw.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=BA(t);if(r.eventArgs){i.triggerContextMenu(r.eventArgs.col,r.eventArgs.row,r.abstractPos.x,r.abstractPos.y);const{col:o,row:n}=r.eventArgs;if(e.hasListeners(xw.CONTEXTMENU_CELL)){const i=e.getCellInfo(o,n);let s,a;if(r.eventArgs?.target){const t=GM(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 o=t[r],n=Math.min(o.start.col,o.end.col),s=Math.max(o.start.col,o.end.col),a=Math.min(o.start.row,o.end.row),l=Math.max(o.start.row,o.end.row);if(n<=e&&e<=s&&a<=i&&i<=l||s<=e&&e<=n&&l<=i&&i<=a)return!0}return!1}(e.stateManager.select.ranges,o,n)?l.cells=[[i]]:l.cells=e.getSelectedCellInfos(),e.fireListeners(xw.CONTEXTMENU_CELL,l)}}})),e.scenegraph.tableGroup.addEventListener("pointertap",(r=>{if(e.stateManager.columnResize.resizing||e.stateManager.columnMove.moving)return;const o=BA(r);if(t.dealIconClick(r,o),o?.eventArgs){if(t.touchSetTimeout&&"touch"===r.pointerType){const e=BA(r);t.touchSetTimeout&&(clearTimeout(t.touchSetTimeout),t.dealTableSelect(e),i.endSelectCells(),t.touchSetTimeout=void 0)}if(!t.touchMove&&0===r.button&&e.hasListeners(xw.CLICK_CELL)){const{col:t,row:i}=o.eventArgs,n=e.getCellInfo(t,i);let s,a;if(o.eventArgs?.target){const t=GM(o.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...n,event:r.nativeEvent,federatedEvent:r,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:o?.eventArgs?.target,mergeCellInfo:o.eventArgs?.mergeInfo};e.fireListeners(xw.CLICK_CELL,l)}}})),e.scenegraph.stage.addEventListener("pointerdown",(r=>{const o=BA(r);o.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu(),e.editorManager?.completeEdit(r.nativeEvent);const n=r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=n,n||t.checkCellFillhandle(o)||!t.checkColumnResize(o,!0));else{e.scenegraph.updateChartState(null),i.updateInteractionState(rC.grabing);const{eventArgs:t}=o;if(!t?.targetCell){e.getCellAt(o.abstractPos.x-8,o.abstractPos.y)&&e.hasListeners(xw.MOUSEDOWN_TABLE)&&e.fireListeners(xw.MOUSEDOWN_TABLE,{event:r.nativeEvent})}}})),e.scenegraph.stage.addEventListener("pointerup",(t=>{"grabing"===i.interactionState&&(i.updateInteractionState(rC.default),i.isResizeCol()&&YM(e))})),e.scenegraph.stage.addEventListener("pointertap",(r=>{const o=r.target;e.eventManager.isDraging||!o||!o.isDescendantsOf(e.scenegraph.stage)&&o.stage!==o||o.isDescendantsOf(e.scenegraph.tableGroup)?e.eventManager.isDraging&&i.isSelecting()&&i.endSelectCells():(i.updateInteractionState(rC.default),t.dealTableHover(),t.dealTableSelect(),i.endSelectCells(),i.updateCursor(),e.scenegraph.updateChartState(null))})),e.scenegraph.stage.addEventListener("pointermove",(r=>{const o=BA(r);i.isResizeCol()||t.checkColumnResize(o)?e.stateManager.select&&t.checkCellFillhandle(o)?i.updateCursor("crosshair"):i.updateCursor("col-resize"):i.isResizeRow()||t.checkRowResize(o)?e.stateManager.select&&t.checkCellFillhandle(o)?i.updateCursor("crosshair"):i.updateCursor("row-resize"):i.updateCursor()})),e.scenegraph.tableGroup.addEventListener("checkbox_state_change",(t=>{const i=BA(t),{col:r,row:o}=i.eventArgs,n=e.getCellInfo(r,o),s=ov(e,r,o);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={...n,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,checked:t.detail.checked};if(e.isHeader(r,o)){e.stateManager.setHeaderCheckedState(n.field,t.detail.checked);"checkbox"===e.getCellType(r,o)&&e.scenegraph.updateCheckboxCellState(r,o,t.detail.checked)}else{e.stateManager.setCheckedState(r,o,n.field,t.detail.checked);if("checkbox"===e.getCellType(r,o)){const t=e.stateManager.headerCheckedState[n.field],i=e.stateManager.updateHeaderCheckedState(n.field);t!==i&&e.scenegraph.updateHeaderCheckboxCellState(r,o,i)}}e.fireListeners(xw.CHECKBOX_STATE_CHANGE,a),e.scenegraph.updateNextFrame()})),e.scenegraph.tableGroup.addEventListener("radio_checked",(t=>{const i=BA(t),{col:r,row:o,target:n}=i.eventArgs,s=e.getCellInfo(r,o),a=PA.exec(n.id)?.[1],l=ov(e,r,o);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===n.id&&t.setAttributes({checked:!0})}))}const h=e.getBodyColumnDefine(r,o).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!==n.id&&t.setAttributes({checked:!1})}))}else{e.scenegraph.getCell(r,o).forEachChildren((t=>{"radio"===t.name&&t.id!==n.id&&t.setAttributes({checked:!1})}))}else if("column"===h){e.scenegraph.getColGroup(r).forEachChildren((t=>{t.forEachChildren((t=>{"radio"===t.name&&t.id!==n.id&&t.setAttributes({checked:!1})}))}))}const c=a?Number(a):void 0;e.stateManager.setRadioState(r,o,s.field,h,c);const d={...s,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,radioIndexInCell:c};e.fireListeners(xw.RADIO_STATE_CHANGE,d),e.scenegraph.updateNextFrame()}))}function XM(t){const e=t.table;t.gesture=new Pp(e.scenegraph.tableGroup,{tap:{interval:300}}),t.gesture.on("doubletap",(t=>{!function(t,e){const i=BA(t);let r=-1,o=-1;i.eventArgs&&(r=i.eventArgs.col,o=i.eventArgs.row);const n=e.getCellValue(r,o),s=i.eventArgs?.targetCell?.globalAABBBounds;if(s&&e.internalProps.focusControl.setFocusRect(new Pw(s.x1+e.scrollLeft,s.y1+e.scrollTop,s.x2-s.x1,s.y2-s.y1),n),e.hasListeners(xw.DBLCLICK_CELL)){const n=e.getCellInfo(r,o);let s,a;if(i.eventArgs?.target){const t=GM(i.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...n,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(xw.DBLCLICK_CELL,l)}}(t,e)}))}function YM(t){t.stateManager.endResizeCol();const e=[];for(let i=0;i<t.colCount;i++)e.push(t.getColWidth(i));t.fireListeners(xw.RESIZE_COLUMN_END,{col:t.stateManager.columnResize.col,colWidths:e})}function qM(t){t.stateManager.endResizeRow(),t.fireListeners(xw.RESIZE_ROW_END,{row:t.stateManager.rowResize.row,rowHeight:t.getRowHeight(t.stateManager.rowResize.row)})}function ZM(t,e,i=!0){let{deltaX:r,deltaY:o}=t;t.shiftKey&&t.deltaY&&(r=o,o=0);const[n,s]=function(t,e,i){const r=2,o=Math.abs(t/e),n=o<=1/r?0:t,s=o>r?0:e;return[Math.ceil(n*(i.horizontal??0)),Math.ceil(s*(i.vertical??0))]}(r,o,{horizontal:1,vertical:1});(n||s)&&e.interactionState!==rC.scrolling&&e.updateInteractionState(rC.scrolling),n&&(e.setScrollLeft(e.scroll.horizontalBarPos+n),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(o)>=Math.abs(r)&&0!==o&&JM(o,e)||Math.abs(o)<=Math.abs(r)&&0!==r&&QM(r,e))&&t.preventDefault()}function JM(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 QM(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 tP{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),o=r*this.speedX,n=r*this.speedY;let s=0,a=0;Math.abs(o)>.05&&(i=!1,s=(this.speedX+o)/2*e),Math.abs(n)>.05&&(i=!1,a=(this.speedY+n)/2*e),this.scrollHandle?.(s,a),i?this.runingId=null:(this.lastTime=t,this.speedX=o,this.speedY=n,this.runingId=requestAnimationFrame(this.inertia.bind(this)))}endInertia(){cancelAnimationFrame(this.runingId),this.runingId=null}isInertiaScrolling(){return!!this.runingId}}let eP,iP=1;function rP(){return QC?iP=1:(iP=Math.ceil(window.devicePixelRatio||1),iP>1&&iP%2!=0&&(iP+=1)),iP}function oP(t){return!!t.changedTouches}function nP(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"}rP();class sP{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 tP(t.stateManager),"node"===IC.mode||t.options.disableInteraction||(this.bindOuterEvent(),setTimeout((()=>{this.bindSelfEvent()}),0))}bindOuterEvent(){$M(this),function(t){const e=t.table,i=e.stateManager,r=e.internalProps.handler;function o(t){const i=e.stateManager.select.ranges,r=i.length,o=Math.min(i[r-1].start.col,i[r-1].end.col),s=Math.min(i[r-1].start.row,i[r-1].end.row),l=Math.max(i[r-1].start.col,i[r-1].end.col),h=Math.max(i[r-1].start.row,i[r-1].end.row);let c=0,d=0,u=[];t.getType("text/html").then((t=>{t.text().then((t=>{if(t&&/(<table)|(<TABLE)/g.test(t)){const i=/<tr[^>]*>(.*?)<\/tr>/gs,r=Array.from(t.matchAll(i));for(const t of r){const e=t[1],i=/<td[^>]*>(.*?)<\/td>/gs,r=Array.from(e.matchAll(i)).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," ")));u.push(r),c=Math.max(c,r?.length??0)}d=u.length??0,u=a(u,d,c,h-s+1,l-o+1),e.changeCellValues(o,s,u,!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(n)}))}))}))}))}function n(t){const i=e.stateManager.select.ranges,r=i.length,o=Math.min(i[r-1].start.col,i[r-1].end.col),n=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),l=Math.max(i[r-1].start.row,i[r-1].end.row);let h=0,c=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)})),h=Math.max(h,r?.length??0)})),c=d.length??0,d=a(d,c,h,l-n+1,s-o+1),e.changeCellValues(o,n,d,!0)}function s(t){const i=e.stateManager.select.ranges,r=i.length,o=Math.min(i[r-1].start.col,i[r-1].end.col),n=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),l=Math.max(i[r-1].start.row,i[r-1].end.row);let h=0,c=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"),o=[];r.push(o),i.forEach((function(t,e){t.includes("\n")&&(t=t.replace(/^"(.*)"$/,"$1").replace(/["]*/g,(t=>new Array(Math.floor(t.length/2)).fill('"').join("")))),o.push(t)})),h=Math.max(h,o?.length??0)})),c=r.length??0,r=a(r,c,h,l-n+1,s-o+1),e.changeCellValues(o,n,r,!0)}))}))}function a(t,e,i,r,o){if(o>i||r>e){if(o%i==0&&r%e==0){const n=[];for(let s=0;s<r;s++){const r=[];n.push(r);for(let n=0;n<o;n++){const o=s%e,a=n%i;r.push(t[o][a])}}return n}return t}return t}r.on(e.getElement(),"blur",(e=>{t.dealTableHover()})),r.on(e.getElement(),"wheel",(t=>{ZM(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,o;r.preventDefault(),r.stopPropagation(),"ArrowUp"===r.key?r.ctrlKey||r.metaKey?(t=i.select.cellPos.col,o=0):(r.shiftKey,t=i.select.cellPos.col,o=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,o=e.rowCount-1):(r.shiftKey,t=i.select.cellPos.col,o=Math.min(e.rowCount-1,Math.max(0,i.select.cellPos.row+1))):"ArrowLeft"===r.key?r.ctrlKey||r.metaKey?(t=0,o=i.select.cellPos.row):(r.shiftKey,o=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,o=i.select.cellPos.row):(r.shiftKey,o=i.select.cellPos.row,t=Math.min(e.colCount-1,Math.max(0,i.select.cellPos.col+1)))),e.selectCell(t,o,r.shiftKey),e.options.keyboardOptions?.moveEditCellOnArrowKeys&&e.editorManager.editingEditor&&(e.editorManager.completeEdit(),e.getElement().focus(),e.getEditor(t,o)&&e.editorManager.startEditCell(t,o))}else if("Escape"===r.key)e.editorManager.cancelEdit();else if("Enter"===r.key){if(e.editorManager.editingEditor)e.editorManager.completeEdit(),e.getElement().focus();else 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,o=e.stateManager.select.ranges[0].end.row;t===r&&i===o&&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))}if(e.hasListeners(xw.KEYDOWN)){const t={keyCode:r.keyCode??r.which,code:r.code,event:r,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth};e.fireListeners(xw.KEYDOWN,t)}})),r.on(e.getElement(),"copy",(t=>{if(e.keyboardOptions?.copySelected){const i=e.getCopyValue();if(Y(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 o=t.split("\t"),n=[];0===i&&e.push("<tbody>"),o.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;"):" ";n.push(`<td>${i}</td>`)})),e.push("<tr>",...n,"</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 mw?window.clipboardData.setData("Text",i):t.clipboardData.setData("text/plain",i);e.fireListeners(xw.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")?o(e):1===e.types.length&&"text/plain"===e.types[0]&&s(e)}));else{const i=e.stateManager.select.ranges,r=Math.min(i[0].start.col,i[0].end.col),o=Math.min(i[0].start.row,i[0].end.row),n=(t.clipboardData||window.Clipboard).getData("text").split("\n"),s=[];n.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,o,s)}}})),r.on(e.getElement(),"contextmenu",(t=>{!1!==e.eventOptions?.preventDefaultContextMenu&&t.preventDefault()})),e.options.canvas||r.on(e.getContainer(),"resize",(t=>{0===t.width&&0===t.height||(Y(e.options.pixelRatio)||e.setPixelRatio(rP()),t.windowSizeNotChange||e.resize())}));const l=t=>{e.eventManager.LastBodyPointerXY={x:t.x,y:t.y},e.eventManager.isDown=!0};t.globalEventListeners.push({name:"pointerdown",env:"body",callback:l}),document.body.addEventListener("pointerdown",l);const h=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:h}),document.addEventListener("pointerup",h);const c=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:o,y:n}=e._getMouseAbstractPoint(r,!1);i.interactionState===rC.grabing&&(i.isResizeCol()?(t.dealColumnResize(o,n),e.hasListeners(xw.RESIZE_COLUMN)&&e.fireListeners(xw.RESIZE_COLUMN,{col:e.stateManager.columnResize.col,colWidth:e.getColWidth(e.stateManager.columnResize.col)})):i.isResizeRow()&&(t.dealRowResize(o,n),e.hasListeners(xw.RESIZE_ROW)&&e.fireListeners(xw.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((n>t.bottom-r||n<t.top+i)&&c||(o>t.right-a||o<t.left+s)&&d){e.eventManager.scrollXSpeed=0,e.eventManager.scrollYSpeed=0;let l=!1,h=!1,u=!1,g=!1;n>t.bottom-r&&c&&e.scrollTop+e.tableNoFrameWidth<e.getAllRowsHeight()?(l=!0,e.eventManager.scrollYSpeed=-(n-t.bottom+r)/50):n<t.top+i&&c&&e.scrollTop>0&&(h=!0,e.eventManager.scrollYSpeed=-(n-t.top-i)/50),o>t.right-a&&d&&e.scrollLeft+e.tableNoFrameWidth<e.getAllColsWidth()?(u=!0,e.eventManager.scrollXSpeed=-(o-t.right+a)/50):o<t.left+s&&d&&e.scrollLeft>0&&(g=!0,e.eventManager.scrollXSpeed=-(o-t.left-s)/50),e.eventManager.inertiaScroll.startInertia(e.eventManager.scrollXSpeed,e.eventManager.scrollYSpeed,1),e.eventManager.inertiaScroll.setScrollHandle(((c,d)=>{let p,f;ZM({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||(o>e.tableNoFrameWidth-e.getRightFrozenColsWidth()&&o<e.tableNoFrameWidth||o>0&&o<e.getFrozenColsWidth()?(p=o,b=!0):p=e.scrollLeft+o),l||h||(n>e.tableNoFrameHeight-e.getBottomFrozenRowsHeight()&&n<e.tableNoFrameHeight||n>0&&n<e.getFrozenRowsHeight()?(f=n,m=!0):f=e.scrollTop+n),e.stateManager.updateInteractionState(rC.grabing);const y=e.getTargetColAtConsiderRightFrozen(p,b),C=e.getTargetRowAtConsiderBottomFrozen(f,m);Y(y)&&Y(C)&&e.stateManager.updateSelectPos(y.col,C.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:c}),document.body.addEventListener("pointermove",c)}(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!==rC.scrolling&&i.hideVerticalScrollBar()})),r.component.hScrollBar.addEventListener("pointerout",(t=>{i.interactionState!==rC.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(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.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!==rC.scrolling&&i.updateInteractionState(rC.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.vScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default)})),r.component.vScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.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(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.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!==rC.scrolling&&i.updateInteractionState(rC.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.hScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default)})),r.component.hScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default)})),r.component.hScrollBar.addEventListener("scrollUp",(t=>{r.table.eventManager.isDraging=!1}));const o=UC(i.updateVerticalScrollBar,20),n=UC(i.updateHorizontalScrollBar,20);r.component.vScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==rC.scrolling&&i.updateInteractionState(rC.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);o(e,t)})),r.component.hScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==rC.scrolling&&i.updateInteractionState(rC.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);n(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 o=r=>{if(t.touchMove&&r.preventDefault(),t.isTouchdown&&oP(r))if(t.downIcon?.attribute?.funcType===cC.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 o=-t.touchMovePoints[t.touchMovePoints.length-1].x+t.touchMovePoints[t.touchMovePoints.length-2].x,n=-t.touchMovePoints[t.touchMovePoints.length-1].y+t.touchMovePoints[t.touchMovePoints.length-2].y;ZM({deltaX:o,deltaY:n},i),r.cancelable&&("none"===e.internalProps.overscrollBehavior||Math.abs(n)>=Math.abs(o)&&0!==n&&JM(n,i)||Math.abs(n)<=Math.abs(o)&&0!==o&&QM(o,i))&&r.preventDefault()}};window.addEventListener("touchmove",o,{passive:!1}),t.globalEventListeners.push({name:"touchmove",env:"window",callback:o});const n=i=>{if(t.touchEnd=!0,t.touchMove=!1,t.isTouchdown&&oP(i)){if(t.downIcon?.attribute?.funcType===cC.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],o=t.touchMovePoints[t.touchMovePoints?.length-1],n=(o.x-r.x)/(o.timestamp-r.timestamp),s=(o.y-r.y)/(o.timestamp-r.timestamp);t.inertiaScroll.startInertia(n,s,.95),e.eventManager.inertiaScroll.setScrollHandle(((t,i)=>{ZM({deltaX:-t,deltaY:-i},e.stateManager)}))}t.isTouchdown=!1,t.touchMovePoints=[]}};window.addEventListener("touchend",n),t.globalEventListeners.push({name:"touchend",env:"window",callback:n});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),XM(this)}updateEventBinder(){setTimeout((()=>{qT(this.table)&&0===this.handleTextStickBindId?.length?(this.handleTextStickBindId.push(this.table.on(xw.SCROLL,(t=>{UT(this.table)}))),this.handleTextStickBindId.push(this.table.on(xw.RESIZE_COLUMN_END,(t=>{UT(this.table)}))),this.handleTextStickBindId.push(this.table.on(xw.RESIZE_ROW_END,(t=>{UT(this.table)})))):!qT(this.table)&&this.handleTextStickBindId&&(this.handleTextStickBindId.forEach((t=>{this.table.off(t)})),this.handleTextStickBindId=[]),KM(this.table)}),0)}bindSelfEvent(){if(this.table.isReleased)return;const t=this.table.stateManager;var e;this.table.on(xw.ICON_CLICK,(e=>{const{col:i,row:r,x:o,y:n,funcType:s,icon:a,event:l}=e;var h;s===cC.dropDown?t.triggerDropDownMenu(i,r,o,n,l):s===cC.sort?t.triggerSort(i,r,a,l):s===cC.frozen?t.triggerFreeze(i,r,a):s===cC.drillDown?(h=this.table).fireListeners(DM.DRILLMENU_CLICK,h.stateManager.drill):s!==cC.collapse&&s!==cC.expand||(this.table.stateManager.updateSelectPos(-1,-1),this.table.toggleHierarchyState(i,r))})),this.table.on(xw.DROPDOWN_MENU_CLICK,(()=>{t.hideMenu()})),this.updateEventBinder(),e=this.table,"browser"===IC.mode&&e.on(xw.CLICK_CELL,(t=>{const{col:i,row:r}=t;let o;o=e.internalProps.layoutMap.isHeader(i,r)?e.isPivotTable()?e._getHeaderLayoutMap(i,r).headerType:e.getHeaderDefine(i,r).headerType:e.getBodyColumnType(i,r);const n=e.isHeader(i,r)?e.getHeaderDefine(i,r):e.getBodyColumnDefine(i,r),s=e.getCellValue(i,r),a=e.getCellOriginValue(i,r);if("link"===o){if(!1===n.linkJump)return;const t=n.templateLink,o=!1!==n.linkDetect;let l;if(t){const o=e.getCellOriginRecord(i,r),n=Object.assign({__value:s,__dataValue:a},o),h=/\{\s*(\S+?)\s*\}/g;l=t.replace(h,((t,e)=>n[e]))}else if(o){if(!Dw.test(s))return;l=s}else l=s;window.open(l)}else if("image"===o){const{clickToPreview:t}=n;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"===o){const{clickToPreview:t}=n;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(xw.DBLCLICK_CELL,(t=>{if(t.federatedEvent){const e=BA(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(xw.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(xw.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(xw.MOUSEENTER_CELL,(e=>{const{col:i,row:r}=e;if(-1===i||-1===r)return;const o=t.internalProps.layoutMap.getHeaderDimension(i,r);o?.drillDown||o?.drillUp?t.stateManager.updateDrillState(o.dimensionKey,o.title,o.drillDown,o.drillUp,i,r):t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)})),t.on(xw.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)}))}(this.table),KM(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=BA(e),{col:r,row:o}=i.eventArgs,n=t.internalProps.layoutMap;let s,a;n.indicatorsAsCol?(s=n.getDimensionKeyInChartSpec(n.rowHeaderLevelCount,o),a=n.getCellHeaderPaths(n.rowHeaderLevelCount-2,o).rowHeaderPaths):(s=n.getDimensionKeyInChartSpec(r,n.columnHeaderLevelCount),a=n.getCellHeaderPaths(r,n.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,n.updateDataStateToChartInstance(),bM(t.scenegraph),t.scenegraph.updateNextFrame()}else t._selectedDimensionInChart?.length&&(t._selectedDimensionInChart.length=0,t.internalProps.layoutMap.updateDataStateToChartInstance(),bM(t.scenegraph),t.scenegraph.updateNextFrame())}))}(this.table),function(t){t.isPivotChart()&&(t.on(xw.MOUSEENTER_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=nP(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(xw.MOUSEENTER_AXIS,e)}}))})),t.on(xw.MOUSELEAVE_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=nP(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(xw.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,o;const n=this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1];e&&(Y(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,o=n.end.col):(r=n.end.row,o=i.col)),this.table.stateManager.updateSelectPos(e?o:n.end.col,e?r:n.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),o=this.table.scenegraph.highPerformanceGetCell(i,r).globalAABBBounds,n=Math.abs(t.abstractPos.x-o.x2),s=Math.abs(t.abstractPos.y-o.y2),a=18;if(this.table.stateManager.fillHandle?.isFilling||n<=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(gw(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;Y(e.col)&&Y(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:o,col:n,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(xw.ICON_CLICK,{name:a.name,x:(a.globalAABBBounds.x1+a.globalAABBBounds.x2)/2,y:a.globalAABBBounds.y2,col:n,row:s,funcType:a.attribute.funcType,icon:a,event:o}),!0;if(r instanceof Pl){const t=r.pickIcon(o.global);if(t)return this.table.fireListeners(xw.ICON_CLICK,{name:t.attribute.id,x:t.globalX+t.globalAABBBounds.width()/2,y:t.globalY+t.AABBBounds.height(),col:n,row:s,funcType:t.attribute.funcType,icon:t,event:o}),!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 aP=t=>{const e=t.value;return Number(e)>80?"#20a8d8":Number(e)>50?"#4dbd74":Number(e)>20?"#ffc107":"#f86c6b"};class lP extends wC{_showBar;_barColor;_barBgColor;_barPositiveColor;_barNegativeColor;_barAxisColor;_barHeight;_barBottom;_barPadding;_showBarMark;_barMarkPositiveColor;_barMarkNegativeColor;_barMarkWidth;_barMarkPosition;_barRightToLeft;static get DEFAULT(){return eP||(eP=new lP)}constructor(t={},e={}){super(t,e),this._showBar=t.showBar??!0,this._barColor=t.barColor??aP,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 lP(this,null)}}const hP=["type","content","font","color","width","height","marginRight","marginLeft","src","svg","name","path","positionType","tooltip","hover","cursor","shape","interactive"];class cP{expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=jA();this.expandIcon=e[dC.expandIconName],this.collapseIcon=e[dC.collapseIconName]}getIcons(t,e,i,r,o){const n=[],s=this.getHierarchyIcon(t,e);s&&n.push(s);const{icon:a}=this._table.getBodyColumnDefine(t,e);if(a){let o;if("function"==typeof a){o=a({col:t,row:e,value:i,dataValue:r,table:this._table})}else o=a;const s=jA(),l=t=>{let e;e="string"==typeof t?s[t]:t,e&&n.push(e)};Array.isArray(o)?o.forEach(((t,e)=>{l(t)})):l(o)}return o&&n.forEach(((i,r)=>{(i.content||i.src)&&(n[r]=this.getCellIconFromRecordValue(i,t,e))})),n}getStyleClass(t){switch(t){case"text":case"link":return xC;case"image":case"video":return vC;case"chart":case"sparkline":return wC;case"progressbar":return lP;case"checkbox":return AC;case"radio":return RC}return xC}getCellIconFromRecordValue(t,e,i){if(Array.isArray(t))return t.map((t=>this.getCellIconFromRecordValue(t,e,i)));if(!bw.isObject(t)||"function"==typeof t)return this._table.getFieldData(t,e,i);const r={},o=t;return hP.forEach((t=>{if(void 0!==o[t]){const n=this._table.getFieldData(o[t],e,i);null!=n?r[t]=n:this._table._hasField?.(o[t],e,i)||(r[t]=o[t])}})),r}getHierarchyIcon(t,e){const i=this._table.getHierarchyState(t,e);return i===sC.expand?this.expandIcon:i===sC.collapse?this.collapseIcon:void 0}getHierarchyIconWidth(){return this.expandIcon.width+(this.expandIcon.marginLeft??0)+(this.expandIcon.marginRight??0)}}function dP(t,e){const i=document.createElement(t);return e&&i.classList.add(...e),i}!function(){if("node"===IC.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 uP="vtable__menu-element",gP=`${uP}__item`,pP=`${uP}__content`,fP=`${uP}--hidden`,mP=`${uP}--shown`,bP=`${uP}--normal`,yP=`${uP}--select`,CP=`${uP}__icon`,wP=`${uP}__split`,vP=`${uP}__title`,xP=`${uP}__arrow`,_P=`${uP}__no-event`,SP=`${uP}__item-text`;function AP(){return dP("div",[uP,fP])}function RP(t,e,i,r,o,n){const s=t.getCellRange(r,o);for(let r=0;r<e.length;r++){const o=e[r];let{col:n,row:a}=o;const{field:l,menuKey:h}=o;if("number"!=typeof n||"number"!=typeof a)if(t.isPivotTable()&&(Array.isArray(l),1)){const e=t.internalProps.layoutMap.getPivotCellAdress(l);if(!e)continue;n=e.col,a=e.row}else{const e=t.internalProps.layoutMap.getHeaderCellAddressByField(l);if(!e)continue;n=e.col,a=e.row}if(Y(n)&&Y(a)&&gw(s,n,a)&&i===h)return!0}return!1}class BP{_handler;_rootElement;_secondElement;_menuInstanceInfo;_showChildrenIndex;_mouseEnterSecondElement;constructor(t){this._handler=new Bw,this._rootElement=AP(),this._secondElement=AP(),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(fP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,o);t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(fP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,o);t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(e=>{if(this._rootElement.classList.contains(fP))return;e.stopPropagation();const{hasChildren:i,dropDownIndex:r,col:o,row:n,sub:s}=e.target;if(i){this._showChildrenIndex=r;const i=this._secondElement;i?.classList.remove(fP),i?.classList.add(mP),i.innerHTML="";const s=this._menuInstanceInfo.content[r]?.children;for(let e=0;e<s.length;e++){const r=s[e],a=TP(r,!!t.stateManager.menu.dropDownMenuHighlight&&RP(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof r?r?.menuKey||r?.text:r,o,n));a.col=o,a.row=n,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,o,n,a.right,a.top)}else if(i&&this._showChildrenIndex===r){const t=this._secondElement;t?.classList.remove(fP),t?.classList.add(mP)}else!s&&this._secondElement?.classList.contains(mP)&&setTimeout((()=>{if(!0!==this._mouseEnterSecondElement){this._showChildrenIndex=-1;const t=this._secondElement;t?.classList.remove(mP),t?.classList.add(fP)}}),300)})),this._secondElement?.addEventListener("wheel",(t=>{t.stopPropagation()})),this._secondElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(fP)||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(fP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||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,o)=>{if("object"==typeof e&&e.children&&e.children.length)for(let o=0;o<e.children.length;o++){const s=e.children[o];if(RP(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof s?s?.menuKey:s,i,r)&&n===("object"==typeof s?s?.menuKey:s))return void(h=!0)}})),t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,cellHeaderPaths:t.isPivotTable()?t.getCellHeaderPaths(i,r):void 0,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.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 o=this._rootElement,n=this._secondElement;if(this._menuInstanceInfo=r,o?.classList.remove(mP),o?.classList.add(fP),n?.classList.remove(mP),n?.classList.add(fP),this._canBindToCell(t,e,i)){if(o.innerHTML="",Array.isArray(r.content)){const n=r.content;for(let r=0;r<n?.length;r++){const s=n[r];let a=!!t.stateManager.menu.dropDownMenuHighlight&&RP(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 o=s.children[r];if(RP(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof o?o?.menuKey||o?.text:o,e,i)){a=!0;break}}const l=TP(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)),o.appendChild(l)}}if(this._bindToCell(t,e,i,r.position,r.referencePosition))return o?.classList.add(mP),o?.classList.remove(fP),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement,e=this._secondElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(mP),t.classList.add(fP)),e?.parentElement&&(e.classList.remove(mP),e.classList.add(fP))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),o=t.getElement(),{top:n,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()||n>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=o;return!(h<n)&&!(c<a)}_bindToCell(t,e,i,r,o){const n=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(n){n.parentElement!==s&&s.appendChild(n),n.style.left="0px";const t=.8*a;n.style.maxWidth=`${t}px`;const e=n.clientWidth,i=n.clientHeight;let h,c;return r?(h=r.x,c=r.y):o&&(h=o.rect.right-e,c=o.rect.bottom),c+i>l&&(c=l-i),c<0&&(c/=2),n.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),n.style.left=`${h}px`,!0}return!1}_bindSecondElement(t,e,i,r,o){const n=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(n){n.parentElement!==a&&a.appendChild(n),n.style.left="0px";const t=.8*l;n.style.maxWidth=`${t}px`;const e=n.clientWidth,i=o-4-c,s=r-h;n.style.top=`${i}px`;let d=s;return d+e>l?d=d-e-g:d+=4,n.style.left=`${d}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:o,width:n,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+n+5&&e>o-5&&e<o+s+5)return!0;if(this._secondElement){const{x:r,y:o,width:n,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+n+5&&e>o-5&&e<o+s+5)return!0}return!1}}function TP(t,e){const i=dP("div",[gP,e?yP:bP]);if("string"==typeof t){const e=dP("span",[pP,_P,SP]);e.innerHTML=t,i.appendChild(e)}else if("object"==typeof t){const r=t.type??"item";if("split"===r)return i?.classList.add(wP),i;if(t?.icon?.svg)if(Dw.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=dP("span",[CP,_P]);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 o=dP("span",[pP,_P,SP]);if(o.innerHTML=t.text,i.appendChild(o),"title"===r)i?.classList.add(_P,vP);else if(t?.children?.length){const t=dP("span",[pP,_P,xP]);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 MP;class PP extends MC{static get DEFAULT(){return MP||(MP=new PP)}constructor(t={},e={}){super(t,e),this.textAlign=(t.textAlign??e?.textAlign)||"center"}clone(){return new PP(this)}}class HP{normalIcon;upIcon;downIcon;freezeIcon;frozenIcon;frozenCurrentIcon;dropDownAbsoluteIcon;expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=jA();this.freezeIcon=e[dC.freezeIconName],this.frozenIcon=e[dC.frozenIconName],this.frozenCurrentIcon=e[dC.frozenCurrentIconName],this.normalIcon=e[dC.normalIconName],this.upIcon=e[dC.upwardIconName],this.downIcon=e[dC.downwardIconName],this.dropDownAbsoluteIcon=e[dC.dropdownIconName],this.expandIcon=e[dC.expandIconName],this.collapseIcon=e[dC.collapseIconName]}getIcons(t,e){const i=[];if(this._table.isPivotTable()){const{showSort:r,sort:o}=this._table.internalProps.layoutMap.getHeader(t,e);if(r){let r=this._table.getPivotSortState(t,e);r&&(r=r.toUpperCase());const o="ASC"===r?this.downIcon:"DESC"===r?this.upIcon:this.normalIcon;o&&i.push(o)}else if(o){const r=this.getSortIconForPivotTable(this._table.getPivotSortState(t,e),this._table,t,e);r&&i.push(r)}}else{const r=this._table.sortState;let o;o=void 0;const n=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&&gw(n,i.col,i.row)){({order:o}=e);break}}else{const t=this._table._getHeaderCellBySortState(r);t&&gw(n,t.col,t.row)&&({order:o}=r)}const s=this.getSortIcon(o,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:o}=this._table._getHeaderLayoutMap(t,e),n=this.getHierarchyIcon(t,e);if(n&&i.push(n),o){let r;if("function"==typeof o){r=o({col:t,row:e,value:this._table.getCellValue(t,e),dataValue:this._table.getCellOriginValue(t,e),table:this._table})}else r=o;const n=jA(),s=t=>{let e;e="string"==typeof t?n[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 o="asc"===t?this.downIcon:"desc"===t?this.upIcon:this.normalIcon,n=e.getHeaderDefine(i,r);return!n||!1===n.showSort||!Y(n.showSort)&&!n.sort||n.columns&&n.columns.length>0?null:o}getSortIconForPivotTable(t,e,i,r){const o=e.getHeaderDefine(i,r);if(!o||!1===o.showSort||!Y(o.showSort)&&!o.sort||o.columns&&o.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),o=t._getHeaderLayoutMap(e,i),{dropDownMenu:n}=o,s=[];if(Array.isArray(n)&&n.length||Array.isArray(t.globalDropDownMenu)&&t.globalDropDownMenu.length&&!r?.columns?.length){const r=n||t.globalDropDownMenu;let o=-1,a=-1;for(let n=0;n<r.length;n++){const s=r[n];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&&RP(t,t.stateManager.menu?.dropDownMenuHighlight,"object"==typeof l?l?.menuKey:l,e,i)){o=n,a=r;break}}if(t._dropDownMenuIsHighlight(e,i,n)){o=n;break}}if(-1!==o){let e;e=-1!==a?(n||t.globalDropDownMenu)[o].children[a]:(n||t.globalDropDownMenu)[o],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:hC.right,marginRight:0,funcType:cC.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:hC.right,marginRight:0,funcType:cC.dropDownState,interactive:!1}))}}return s}getDropDownIconRect(t,e,i){const r=this.downIcon.hover?.width??this.downIcon?.width??0,o=this.downIcon.hover?.height??this.downIcon?.height??0,n=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:n,right:s,top:a,bottom:o+a,width:r,height:o}}getHierarchyIcon(t,e){const{hierarchyState:i}=this._table._getHeaderLayoutMap(t,e);if(i){if(i===sC.expand)return this.expandIcon;if(i===sC.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 EC;case"image":case"video":return PP;case"checkbox":return LC}}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 EP{_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,o){this._getTooltipElement()._locate(this._table,t,e,i,r,o)}}!function(){if("node"===IC.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: hidden;\n\tword-wrap: break-word;\n\tposition: relative;\n\tbackground-color: #FFF;\n\tz-index: 2;\n\tborder-radius: 4px\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 LP="vtable__bubble-tooltip-element",kP=`${LP}__content`,IP=`${LP}__triangle`,FP=`${LP}--hidden`,zP=`${LP}--shown`;class OP{_handler;_rootElement;_messageElement;_triangleElement;_disappearDelay;_disappearDelayId;constructor(){this._handler=new Bw;const t=this._rootElement=dP("div",[LP,FP]),e=dP("span",[kP]),i=dP("span",[IP]);t.appendChild(i),t.appendChild(e),this._messageElement=t.querySelector(`.${kP}`)||void 0,this._triangleElement=t.querySelector(`.${IP}`)||void 0,t.addEventListener("mousemove",(()=>{this._disappearDelayId&&clearTimeout(this._disappearDelayId)})),t.addEventListener("mouseleave",(()=>{this._disappearDelay=void 0,this.unbindFromCell()}))}bindToCell(t,e,i,r,o){this._disappearDelay=r?.disappearDelay,this._disappearDelayId&&clearTimeout(this._disappearDelayId);const n=this._rootElement,s=this._messageElement,a=this._triangleElement;if(n?.classList.remove(zP),n?.classList.add(FP),this._canBindToCell(t,e,i)){s.setAttribute("style",""),a.setAttribute("style",""),r?.className&&n.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`),s&&(s.textContent=r?.content);if(this._bindToCell(t,e,i,r?.position,r?.referencePosition,o,r?.style?.arrowMark))return n?.classList.add(zP),n?.classList.remove(FP),!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,o){const n=this._rootElement;this._canBindToCell(t,e,i)?(this._bindToCell(t,e,i,r?.position,r?.referencePosition,o),n?.classList.add(zP),n?.classList.remove(FP)):this.unbindFromCell()}unbindFromCell(){if(this._disappearDelay)this._disappearDelayId=setTimeout((()=>{const t=this._rootElement;t?.parentElement&&(t.classList.remove(zP),t.classList.add(FP))}),this._disappearDelay??0);else{const t=this._rootElement;t?.parentElement&&(t.classList.remove(zP),t.classList.add(FP))}}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),o=t.getElement(),{bottom:n,left:s,right:a,top:l}=r;if(t.isFrozenCell(e,i))return!0;if(n<t.getFrozenRowsHeight()||a<t.getFrozenColsWidth()||s>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||l>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=o;return!(l>h)&&!(s>c)}_bindToCell(t,e,i,r,o,n,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&&!o)return!1;{const a=this.getComputedPosition(t,e,i,r,o,n,s);u=a.x,l=a.y}a.style.left=`${u}px`,a.style.top=`${l}px`,YC()&&(a.style.fontSize="11px");const{x1:m,x2:b,y1:y,y2:C}=t.stateManager.menu.bounds,w=u,v=w+p,x=l,_=w+f;return!(t.stateManager.menu.isShow&&m<v&&b>w&&C>x&&y<_)}return!1}getComputedPosition(t,e,i,r,o,n,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(o){let t=o.placement??nC.bottom;const e=o.rect.left+o.rect.width/2,i=o.rect.top+o.rect.height/2,r=o.rect.top,s=o.rect.bottom,a=o.rect.left,l=o.rect.right;let d=0;const p=()=>{d++,d>=4||(this.removeStyleFromTriangle(),t===nC.top?(g=e-f/2,u=r-m-b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.bottom="-5px",n&&u<0&&(t=nC.right,p())):t===nC.bottom?(g=e-f/2,u=s+b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.top="-5px",n&&u+m>c&&(t=nC.left,p())):t===nC.left?(u=i-m/2,g=a-f-b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.right="-5px",n&&g<0&&(t=nC.top,p())):t===nC.right&&(u=i-m/2,g=l+b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.left="-5px",n&&g+f>h&&(t=nC.bottom,p())))};p()}return n&&(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,o,n){const s=this.getComputedPosition(t,e,i,r,o,n),a=s.x,l=s.y;this._rootElement.style.left=`${a}px`,this._rootElement.style.top=`${l}px`}}class DP extends EP{createTooltipElementInternal(){return new OP}}const WP={"bubble-tooltip":function(t){return new DP(t)}};class NP{_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,o=this._getTooltipInstanceInfo(t,e);if(!r||o&&r.instance===o||(r.instance?.unbindTooltipElement(),this._attachInfo=null),!o)return;if(o&&o.bindTooltipElement(t,e,i,this.confine)){const r=this._table.getCellRange(t,e);this._attachInfo={range:r,instance:o,tooltipOptions:i}}}_move(t,e,i){const r=this._attachInfo;if(!r||!gw(r.range,t,e))return;const{instance:o}=r;o?.moveTooltipElement(t,e,i,this.confine)}moveToPosition(t,e,i,r){const o=this._attachInfo;if(!o||!gw(o.range,t,e))return;const{instance:n}=o;this._attachInfo.tooltipOptions.position=i,this._attachInfo.tooltipOptions.referencePosition=r,n?.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&&gw(i.range,t,e)}_bindTableEvent(t){t.on(xw.MOUSEENTER_CELL,(e=>{if(YC())return;const{x1:i,x2:r,y1:o,y2:n}=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>o&&e.y<n)return;const{col:s,row:a}=e;this.showTooltip(s,a)})),t.on(xw.MOUSEMOVE_CELL,(e=>{if(!YC()){if(this._attachInfo?.tooltipOptions?.referencePosition){const i=this._attachInfo.tooltipOptions.referencePosition,{event:r}=e,{left:o,right:n,top:s,bottom:a}=i.rect,l=t._getMouseAbstractPoint(r,!1);l.inTable&&l.x>=o-5&&l.x<=n+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(xw.MOUSELEAVE_CELL,(t=>{this._unbindFromCell()})),t.on(xw.SELECTED_CELL,(t=>{this._isBindCell(t.col,t.row)&&this._unbindFromCell()})),t.on(xw.MOUSELEAVE_TABLE,(t=>{this._unbindFromCell()})),t.on(xw.SCROLL,(t=>{this._unbindFromCell()}))}showTooltip(t,e){let i;const r=this._table,o=r.getHeaderDescription(t,e);if(o){const n=r.getCellRangeRelativeRect({col:t,row:e});i={content:o,referencePosition:{placement:nC.bottom,rect:n},disappearDelay:r.internalProps.tooltip.overflowTextTooltipDisappearDelay??0,style:{arrowMark:!1}}}else if(r.internalProps.tooltip?.isShowOverflowTextTooltip){const n=r.getCellOverflowText(t,e),s=r.getCellRangeRelativeRect({col:t,row:e});n&&(i={content:o?`${o}\n ${n}`:n,referencePosition:{placement:nC.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,o="bubble-tooltip";return r&&r[o]||r&&(r[o]=WP[o](i))}isBinded(t){return JSON.stringify(t)===JSON.stringify(this._attachInfo?.tooltipOptions)}}class GP{_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 jP="vtable__menu-element",VP=`${jP}--hidden`,UP=`${jP}--shown`;class KP{_handler;_rootElement;_menuInstanceInfo;constructor(t){this._handler=new Bw,this._rootElement=dP("div",[jP,VP]),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(VP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,o);t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(VP)||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 o=this._rootElement;if(this._menuInstanceInfo=r,o?.classList.remove(UP),o?.classList.add(VP),this._canBindToCell(t,e,i)){o.innerHTML="",o.appendChild(r.content);if(this._bindCell(t,e,i,r.position,r.referencePosition))return o?.classList.add(UP),o?.classList.remove(VP),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(UP),t.classList.add(VP))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),o=t.getElement(),{top:n,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()||n>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=o;return!(h<n)&&!(c<a)}_bindCell(t,e,i,r,o){const n=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(n){n.parentElement!==s&&s.appendChild(n),n.style.left="0px";const t=.8*a;n.style.maxWidth=`${t}px`;const e=n.clientWidth,i=n.clientHeight;let h,c;return r&&(h=r.x,c=r.y),o&&(h=o.rect.right-e,c=o.rect.bottom),c+i>l&&(c=l-i,h+=e-2),c<0&&(c/=2),n.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),n.style.left=`${h}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:o,width:n,height:s}=i.getBoundingClientRect();return t>r-5&&t<r+n+5&&e>o-5&&e<o+s+5}}class $P extends GP{createMenuElementInternal(){return new BP(this._table)}}let XP=class extends GP{createMenuElementInternal(){return new KP(this._table)}};const YP={"dropdown-menu":function(t){return new $P(t)},"context-menu":function(t){return new $P(t)},container:t=>new XP(t)};class qP{_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 o=this._attachInfo,n=this._getMenuInstanceInfo(t,e,i,r);if(!o||n&&o.instance===n.instance||(o.instance?.unbindMenuElement(),this._attachInfo=null),!n)return;const{instance:s,info:a}=n;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&&gw(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(xw.DROPDOWN_ICON_CLICK,(t=>{this._attachInfo&&this._isBindToCell(t.col,t.row)?this._unbindFromCell():this._bindToCell(t.col,t.row,"dropdown-menu")})),t.on(xw.DROPDOWN_MENU_CLEAR,(t=>{this._unbindFromCell()})),t.on(xw.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 o=this._table,n=this._menuInstances,s=function(t,e,i,r,o){const{lineHeight:n,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,n,s||"middle")),o?.content)return{type:r,position:o.position,referencePosition:o.referencePosition??{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:o.content};if("dropdown-menu"===r){const{dropDownMenu:o=t.globalDropDownMenu,pivotInfo:n}=t._getHeaderLayoutMap(e,i);return{type:r,referencePosition:{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:o,pivotInfo:n}}return null}(o,t,e,i,r);if(!s)return null;return{instance:n&&n[i]||n&&(n[i]=YP[i](o)),type:i,info:s}}}class ZP extends EventTarget{_container;_table;_input;constructor(t,e){if(super(),this._table=t,"node"===IC.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),this._container=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,o=t.left-this._table.scrollLeft;i.style.top=`${r.toFixed()}px`,i.style.left=`${o.toFixed()}px`,i.style.width=`${t.width.toFixed()}px`,i.style.height=`${t.height.toFixed()}px`}get input(){return this._input}release(){this._container.parentElement?.removeChild(this._container)}}const JP={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 QP(t,e){const{title:i={},item:r={},pager:o={},background:n={},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}=wt({},JP,t),C=y;return i.visible&&(C.title=x_(i)),ut(r.focusIconStyle)||__(r.focusIconStyle),S_(r.shape),S_(r.label),S_(r.value),S_(r.background),bA(r.maxWidth)&&(r.maxWidth=Number(r.maxWidth.substring(0,r.maxWidth.length-1))*e.width/100),bA(r.width)&&(r.width=Number(r.width.substring(0,r.width.length-1))*e.width/100),bA(r.height)&&(r.height=Number(r.height.substring(0,r.height.length-1))*e.width/100),C.item=r,ut(o.textStyle)||__(o.textStyle),S_(o.handler),C.pager=o,n.visible&&!ut(n.style)&&(wt(C,n.style),Y(n.padding)&&(C.padding=n.padding)),C}class tH{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=mt(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 c_(wt({},t,{defaultSelected:this.selectedData,disableTriggerEvent:this.table.options.disableInteraction}));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,o=this.table.tableNoFrameHeight,n=DS(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=n[3],a=0,e+=n[1]+n[3]):"top"===this.orient?(s=0,a=n[0],i+=n[0]+n[2]):"right"===this.orient?(s=r-e-n[1],a=0,e+=n[1]+n[3]):"bottom"===this.orient&&(s=0,a=o-i-n[2],i+=n[0]+n[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-n[1]:n[3]:d="middle"===h?(o-i)/2:"end"===h?o-i-n[2]:n[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,...QP(this.option,t)}}getLegendItems(){return this.option.data}initEvent(){this.legendComponent&&(this.legendComponent.addEventListener(r_.legendItemClick,(t=>{const e=gt(t,"detail.currentSelected");this.table.fireListeners(xw.LEGEND_ITEM_CLICK,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(r_.legendItemHover,(t=>{const e=gt(t,"detail");this.table.fireListeners(xw.LEGEND_ITEM_HOVER,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(r_.legendItemUnHover,(t=>{const e=gt(t,"detail");this.table.fireListeners(xw.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 eH={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"}}}},iH={horizontal:{...eH,rail:{width:200,height:8,style:{fill:"rgba(0,0,0,0.04)"}}},vertical:{...eH,rail:{width:8,height:200,style:{fill:"rgba(0,0,0,0.04)"}}}},rH={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)"}},...eH},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)"}},...eH}};function oH(t,e){const{title:i={},handler:r={},rail:o={},track:n={},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:C,regionId:w,regionIndex:v,seriesIndex:x,seriesId:_,padding:S,...A}=wt({},("color"===t.type?iH:rH)["bottom"===t.orient||"top"===t.orient?"horizontal":"vertical"],t),R=A;return i.visible&&(R.title=x_(i)),R.showHandler=!1!==r.visible,ut(r.style)||(R.handlerStyle=__(r.style)),Y(o.width)&&(R.railWidth=o.width),Y(o.height)&&(R.railHeight=o.height),ut(o.style)||(R.railStyle=__(o.style)),ut(n.style)||(R.trackStyle=__(n.style)),R.startText=S_(s),R.endText=S_(a),R.handlerText=S_(l),ut(h)||(R.sizeBackground=__(h)),c.visible&&!ut(c.style)&&(wt(R,c.style),Y(c.padding)&&(R.padding=c.padding)),R}class nH{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=mt(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 f_(wt({},t,{slidable:!0})):new b_(wt({},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,o=this.table.tableNoFrameHeight,n=DS(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=n[3],a=0,e+=n[1]+n[3]):"top"===this.orient?(s=0,a=n[0],i+=n[0]+n[2]):"right"===this.orient?(s=r-e-n[1],a=0,e+=n[1]+n[3]):"bottom"===this.orient&&(s=0,a=o-i-n[2],i+=n[0]+n[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-n[1]:n[3]:d="middle"===h?(o-i)/2:"end"===h?o-i-n[2]:n[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{...oH(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=gt(t,"detail.value");this.table.fireListeners(xw.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 sH(t,e){return"color"===t.type||"size"===t.type?new nH(t,e):new tH(t,e)}class aH{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),Y(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 o=[];for(let n=lH(r,t+i-1);n>=0;n--){const s=r[n];if(s>=t)o.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,o[i-1-t])}const{length:o}=r;if(t<e){const n=[];for(let s=lH(r,t);s<o;s++){const o=r[s];if(o>=t&&o<t+i)n.push(this.get(o));else if(t+i<=o&&o<=e)this.put(o-i,this.get(o));else if(o>e)break}for(let t=0;t<i;t++)this.put(e+t,n[t])}}exchangeOrder(t,e,i,r,o){const{_keys:n}=this;if(this._sorted||(n.sort(((t,e)=>t<e?-1:t>e?1:0)),this._sorted=!0),t>i){const r=[],s=[];for(let o=lH(n,i);o<t+e;o++){const i=n[o];i>=t&&i<t+e?s.push(this.get(i)):r.push(this.get(i))}for(let t=0;t<e;t++)this.put(o+t,s[t]);for(let t=0;t<r.length;t++)this.put(o+e+t,r[t])}else{const s=[],a=[];for(let o=lH(n,t);o<i+r;o++){const i=n[o];i>=t&&i<t+e?a.push(this.get(i)):s.push(this.get(i))}for(let t=0;t<e;t++)this.put(o+t,a[t]);for(let e=0;e<s.length;e++)this.put(t+e,s[e])}}}function lH(t,e){let i=0,r=t.length-1;for(;i<=r;){const o=Math.floor((i+r)/2);if(t[o]===e)return o;t[o]>e?r=o-1:i=o+1}return r<0?0:r}class hH{dragReorderIconName;_table;constructor(t){this._table=t;const e=jA();this.dragReorderIconName=e[dC.dragReorderIconName]}getIcons(t,e){return[this.dragReorderIconName]}}class cH{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 dH(t,e){t=t.clone();for(const i in e){const r=e[i];r&&(t[`_${i}`]=r)}return t}class uH{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 Mw;dimensionKeysIncludeVirtual=new Mw;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 Mw,this.dimensionKeysIncludeVirtual=new Mw,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?Ww:t.dimensionKey)||this.dimensionKeys.put(t.level,t.indicatorKey?Ww:t.dimensionKey),this.dimensionKeysIncludeVirtual.contain(t.indicatorKey?Ww:t.dimensionKey)||this.dimensionKeysIncludeVirtual.put(t.level,t.indicatorKey?Ww:t.dimensionKey),t.id||(t.id=++this.sharedVar.seqId));let r=t.dimensionKey&&this.sizeIncludeParent?1:0;const o=t.children||t.columns;return"grid"===this.hierarchyType?o?.length>=1?o.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===sC.expand&&o?.length>=1?o.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===sC.collapse&&o?.length>=1?o.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&&(o?.length>=1||!0===o)?(t.hierarchyState=sC.expand,o?.length>=1&&o.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)}))):o?.length>=1||!0===o?(t.hierarchyState=sC.collapse,o?.length>=1&&o.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),this.setTreeNode(e,r,t)}))):(t.hierarchyState=sC.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 o=t[r],n=this.findNodeById(i,o);if(!n)break;e.push(n),i=n.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 o=t-e.startIndex;if(this.cache.has(e.level+1)){const t=this.cache.get(e.level+1);if(o>=t.startIndex&&o<t.startIndex+t.size)return void this.searchPath(o,t,i,r)}let n=0,s=e.children.length-1;for(;n<=s;){const t=Math.floor((n+s)/2),a=e.children[t];if(o>=a.startIndex&&o<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(o,a,i,r);break}o<a.startIndex?s=t-1:n=t+1}}movePosition(t,e,i){let r,o,n;const s=(a,l)=>{if(void 0!==o&&void 0!==n)return;a.level===t&&(a.startInTotal===e&&(o=l),a.startInTotal<=i&&i<=a.startInTotal+a.size-1&&(n=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(o,1);l.unshift(n,0),Array.prototype.splice.apply(a,l)}getCopiedTree(){const t=mt(this.tree.children);return bH(t),t}}function gH(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=[],gH(i.children,e.children))}))}function pH(t,e){let i=0;return t?.forEach((t=>{e?i++:t.children&&0!==t.children.length||i++,t.children&&(i+=pH(t.children,e))})),i}function fH(t,e,i,r,o,n){const s=t.id,a=n.rowsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey))??n.columnsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey)),l=n.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),Y(n._indicators?.find((t=>t.indicatorKey===l.indicatorKey)))||n._indicators?.push({id:++n.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&&(Y(n._indicators?.find((e=>e.indicatorKey===t.indicatorKey)))||n._indicators?.push({id:++n.sharedVar.seqId,indicatorKey:t.indicatorKey,field:t.indicatorKey,cellType:"text",define:Object.assign({},t)})),i[s]=h,n._headerObjects[s]=h,e[o][n.colIndex]=s;for(let t=o-1;t>=0;t--)e[t][n.colIndex]=r[t];if(t.levelSpan>1)for(let i=1;i<t.levelSpan;i++)e[o+i]||(e[o+i]=[]),e[o+i][n.colIndex]=s;if(t.children?.length>=1)n._addHeaders(e,o+(t.levelSpan??1),t.children??[],[...r,...Array(t.levelSpan??1).fill(s)],i);else{for(let t=o+1;t<e.length;t++)e[t][n.colIndex]=s;n.colIndex++}}function mH(t,e,i,r,o,n,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===n||"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:n,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[o][l.colIndex]=h;for(let t=o-1;t>=0;t--)e[t][l.colIndex]=r[t];if(t.hierarchyState===sC.expand&&t.children?.length>=1)s&&l.colIndex++,l._addHeadersForTreeMode(e,o,t.children??[],[...r,h],n,s&&t.hierarchyState===sC.expand,a,i);else{s&&l.colIndex++;for(let t=o+1;t<e.length;t++)e[t][l.colIndex]=h}}function bH(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&&bH(r)}}function yH(t,e){let i,r;e.columnTree&&(!1!==t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.columnTree=CH(t.internalProps.columnTree,e.indicators)),i=new uH(t.internalProps.columnTree??[],t.layoutNodeId)),e.rowTree&&(!1===t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.rowTree=CH(t.internalProps.rowTree,e.indicators)),r=new uH(t.internalProps.rowTree??[],t.layoutNodeId,t.options.rowHierarchyType,"tree"===t.options.rowHierarchyType?t.options.rowExpandLevel??1:void 0));const o=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],n=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&&(t.internalProps.dataConfig?.aggregationRules?t.internalProps.dataConfig?.aggregationRules.push({field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:aC.NONE}):t.internalProps.dataConfig?t.internalProps.dataConfig.aggregationRules=[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:aC.NONE}]:t.internalProps.dataConfig={aggregationRules:[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:aC.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)})),o.push(...e)})),{rowKeys:o,columnKeys:n,indicatorKeys:s,columnDimensionTree:i,rowDimensionTree:r}}function CH(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 wH(t,e){const i=function(t,e){if(!t.internalProps.frozenRowCount)return null;let{scrollTop:i}=t;const r=t.internalProps.frozenRowCount;for(let o=0;o<r;o++){const r=t.getRowHeight(o),n=i+r;if(n>e)return{top:i,row:o,bottom:n,height:r};i=n}return null}(e,t);if(i)return i;let r=_H(t,e);return r||(r={top:-1,row:-1,bottom:-1,height:-1}),r}function vH(t,e){const i=function(t,e){if(!t.internalProps.frozenColCount)return null;let{scrollLeft:i}=t;const r=t.internalProps.frozenColCount;for(let o=0;o<r;o++){const r=t.getColWidth(o),n=i+r;if(n>e)return{left:i,col:o,right:n,width:r};i=n}return null}(e,t);if(i)return i;let r=xH(t,e);return r||(r={left:-1,col:-1,right:-1,width:1}),r}function xH(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 o=Math.floor((i+r)/2);if(t<e._colRangeWidthsMap.get(`$0$${o}`))r=o;else{if(!(t>e._colRangeWidthsMap.get(`$0$${o}`)))return o;i=o}}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 o=r-e.getColWidth(i);const{colCount:n}=e.internalProps;for(let r=i;r<n;r++){const i=e.getColWidth(r),n=o+i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{left:o,col:r,right:n,width:i};o=n}return null})(i,r):((i,r)=>{let o=r;for(let r=i;r>=0;r--){const i=e.getColWidth(r),n=o-i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{left:n,col:r,right:o,width:i};o=n}return null})(i,r)}function _H(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 o=r-e.getRowHeight(i);const{rowCount:n}=e.internalProps;for(let r=i;r<n;r++){const i=e.getRowHeight(r),n=o+i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{top:o,row:r,bottom:n,height:i};o=n}return null})(i,r):((i,r)=>{let o=r;for(let r=i;r>=0;r--){const i=e.getRowHeight(r),n=o-i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{top:n,row:r,bottom:o,height:i};o=n}return null})(i,r)}function SH(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 xH(t,i)}function AH(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 _H(t,i)}const{toBoxArray:RH}=ww,{isTouchEvent:BH}=Cw,TH=/^\$(\d+)\$(\d+)$/;!function(){if("node"===IC.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.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 MH={};class PH extends fC{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 xw}options;version="1.3.2-alpha.2";pagination;id=`VTable${Date.now()}`;headerStyleCache;bodyStyleCache;bodyBottomStyleCache;container;isReleased=!1;_chartEventMap={};customCellStylePlugin;columnWidthComputeMode;_hasAutoImageColumn;constructor(t,e={}){if(super(),!t&&"node"!==e.mode&&!e.canvas)throw new Error("vtable's container is undefined");const{frozenColCount:i=0,defaultRowHeight:r=40,defaultHeaderRowHeight:o,defaultColWidth:n=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:C,allowFrozenColCount:w,padding:v,hover:x,menu:_,select:S,customRender:A,pixelRatio:R=iP,renderChartAsync:B,renderChartAsyncBatchCount:T,mode:M,modeParams:P,canvasWidth:H,canvasHeight:E,overscrollBehavior:L,limitMinWidth:k,limitMinHeight:I,clearDOM:F=!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},v&&("number"==typeof v?(this.padding.top=v,this.padding.left=v,this.padding.bottom=v,this.padding.right=v):(v.top&&(this.padding.top=v.top),v.bottom&&(this.padding.bottom=v.bottom),v.left&&(this.padding.left=v.left),v.right&&(this.padding.right=v.right))),this.tableNoFrameWidth=0,this.tableNoFrameHeight=0,this.canvasWidth=H,this.canvasHeight=E,this.columnWidthComputeMode=e.columnWidthComputeMode??"normal";const z=this.internalProps={};if(void 0!==C&&(this.showFrozenIcon=C),"number"==typeof w&&w<=0&&(this.showFrozenIcon=!1),this.options.canvas?(z.element=this.options.canvas.parentElement,z.element.style.position="relative",z.focusControl=new ZP(this,z.element),z.canvas=this.options.canvas,z.context=z.canvas.getContext("2d")):"node"!==IC.mode&&(z.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),z.focusControl=new ZP(this,z.element),z.canvas=document.createElement("canvas"),z.element.appendChild(z.canvas),z.context=z.canvas.getContext("2d")),z.handler=new Bw,ot(this.options.resizeTime)&&(z.handler.resizeTime=this.options.resizeTime),z.pixelRatio=R,z.frozenColCount=i,z.defaultRowHeight=r,z.defaultHeaderRowHeight=o??r,z.defaultColWidth=n,z.defaultHeaderColWidth=s??n,z.keyboardOptions=g,z.eventOptions=p,z.rowSeriesNumber=f,z.columnResizeMode=m,z.rowResizeMode=b,z.dragHeaderMode=y??"none",z.renderChartAsync=B,GB(T),z.overscrollBehavior=L??"auto",z._rowHeightsMap=new aH(this),z._rowRangeHeightsMap=new Map,z._colRangeWidthsMap=new Map,z._widthResizedColMap=new Set,z._heightResizedRowMap=new Set,this.colWidthsMap=new Mw,this.colContentWidthsMap=new Mw,this.colWidthsLimit={},z.calcWidthContext={_:z,get full(){return"node"===IC.mode?H/(R??1):this._.canvas.width/(this._.context.pixelRatio??window.devicePixelRatio)}},z.cellTextOverflows={},z.focusedTable=!1,z.theme=iv.of(e.theme??iv.DEFAULT),z.theme.isPivot=this.isPivotTable(),t?(F&&(t.innerHTML=""),t.appendChild(z.element),this._updateSize()):this._updateSize(),this.options=e,z.theme=iv.of(e.theme??iv.DEFAULT),z.theme.isPivot=this.isPivotTable(),z.bodyHelper=new cP(this),z.headerHelper=new HP(this),z.rowSeriesNumberHelper=new hH(this),z.autoWrapText=e.autoWrapText,z.enableLineBreak=e.enableLineBreak,z.allowFrozenColCount=e.allowFrozenColCount??0,z.limitMaxAutoWidth=e.limitMaxAutoWidth??450,z.limitMinWidth=null!=k?"number"==typeof k?k:k?10:0:10,z.limitMinHeight=null!=I?"number"==typeof I?I:I?10:0:10,this._vDataSet=new z_,this.scenegraph=new PM(this),this.stateManager=new UM(this),this.eventManager=new sP(this),e.legends)if(z.legends=[],Array.isArray(e.legends)){for(let t=0;t<e.legends.length;t++)z.legends.push(sH(e.legends[t],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else z.legends.push(sH(e.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});z.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},e.tooltip),"html"===z.tooltip.renderMode&&(z.tooltipHandler=new NP(this,z.tooltip.confine)),z.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"===z.menu.renderMode&&(z.menuHandler=new qP(this)),this.headerStyleCache=new Map,this.bodyStyleCache=new Map,this.bodyBottomStyleCache=new Map,z.stick={changedCells:new Map},z.customMergeCell=e.customMergeCell,this.customCellStylePlugin=new cH(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:vA(this,t)}_getColWidthLimits(t){const e=this.colWidthsLimit[t];if(!e)return null;const i={};return e.min&&(i.min=vA(this,e.min),i.minDef=e.min),e.max&&(i.max=vA(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"===IC.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(this.tableX=0,this.tableY=0,this.options.canvas&&this.options.viewBox)e=this.options.viewBox.x2-this.options.viewBox.x1,i=this.options.viewBox.y2-this.options.viewBox.y1,this?.scenegraph?.stage&&(this.options.viewBox?this.scenegraph.stage.setViewBox(this.options.viewBox,!1):this.scenegraph.stage.resize(e,i));else if("browser"===IC.mode){const r=this.getElement();let o=0,n=0;if(r.parentElement){const t=r.parentElement.style||window.getComputedStyle(r.parentElement);o=r.parentElement.offsetWidth-parseInt(t.paddingLeft||"0px",10)-parseInt(t.paddingRight||"0px",10),n=r.parentElement.offsetHeight-parseInt(t.paddingTop||"0px",10)-parseInt(t.paddingBottom||"0px",20)}const s=o??0,a=n??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`)}else"node"===IC.mode&&(e=this.canvasWidth-1,i=this.canvasHeight-1);const r=Math.floor(e-FC(this.getTheme().scrollStyle)),o=Math.floor(i-FC(this.getTheme().scrollStyle));if(this.internalProps.theme?.frameStyle){const t=RH(this.internalProps.theme.frameStyle?.borderLineWidth??[null]),e=RH(this.internalProps.theme.frameStyle?.shadowBlur??[0]);this.theme.frameStyle?.innerBorder?(this.tableX=0,this.tableY=0,this.tableNoFrameWidth=r-(e[1]??0),this.tableNoFrameHeight=o-(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=o-((t[0]??0)+(e[0]??0))-((t[2]??0)+(e[2]??0)))}}updateViewBox(t){const e=this.options?.viewBox.x2??0-this.options?.viewBox.x1??0,i=this.options?.viewBox.y2??0-this.options?.viewBox.y1??0,r=t.x2-t.x1,o=t.y2-t.y1;this.options.viewBox=t,e!==r||i!==o?this.resize():this.scenegraph.stage.setViewBox(this.options.viewBox,!0)}setViewBoxTransform(t,e,i,r,o,n){this.internalProps.modifiedViewBoxTransform=!0,this.scenegraph.stage.window.setViewBoxTransform(t,e,i,r,o,n)}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 o=0;for(let i=t;i<=e;i++)o+=this.getColWidth(i);return t>=0&&e>=0&&this._colRangeWidthsMap.set(`$${t}$${e}`,Math.round(o)),Math.round(o)}getRowHeight(t){if(Y(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 ot(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=TH.exec(i);if(e){const r=Number(e[1]),o=Number(e[2]);t>=r&&t<=o&&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=vA(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=vA(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 o=this.getColWidth(t);let n;r=i&&i.col&&this.isRightFrozenColumn(t,e)?this.tableNoFrameWidth-(this.getColsWidth(t,this.colCount-1)??0):this.getColsWidth(0,t-1)||0;const s=this.getRowHeight(e);return n=i&&i.row&&this.isBottomFrozenRow(t,e)?this.tableNoFrameHeight-(this.getRowsHeight(e,this.rowCount-1)??0):this.getRowsHeight(0,e-1),new Pw(Math.round(r),Math.round(n),Math.round(o),Math.round(s))}getMergeCellRect(t,e){const i=this.getCellRange(t,e),r=this.getColsWidth(0,i.start.col-1)||0,o=this.getColsWidth(i.start.col,i.end.col),n=this.getRowsHeight(0,i.start.row-1)||0,s=this.getRowsHeight(i.start.row,i.end.row);return new Pw(Math.round(r),Math.round(n),Math.round(o),Math.round(s))}getCellRelativeRect(t,e){const i=this.isFrozenCell(t,e);let r=!0,o=!0;i?.col&&i?.row?(r=!1,o=!1):i?.col?r=!1:i?.row&&(o=!1);const n=this.getCellRect(t,e);return this._toRelativeRect(n,r,o)}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,o=!0;return i?.col&&i?.row?(r=!1,o=!1):i?.col?r=!1:i?.row&&(o=!1),this._toRelativeRect(this.getCellsRect(e.start.col,e.start.row,e.end.col,e.end.row),r,o)}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),o=t.copy();o.left=i,o.right=r;const n=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 o.top=n,o.bottom=s,o}getCellsRect(t,e,i,r){let o=this.getColsWidth(0,t-1)||0,n=this.getColsWidth(t,i);const s=this.scrollLeft;this.isLeftFrozenColumn(t)&&this.isRightFrozenColumn(i)?n=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-o:this.isLeftFrozenColumn(t)&&!this.isLeftFrozenColumn(i)?n=Math.max(n-s,this.getColsWidth(t,this.frozenColCount-1)):!this.isRightFrozenColumn(t)&&this.isRightFrozenColumn(i)?(o=Math.min(o-s,this.tableNoFrameWidth-this.getRightFrozenColsWidth()),n=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-o):this.isRightFrozenColumn(t)&&(o=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 Pw(Math.round(o),Math.round(a),Math.round(n),Math.round(l))}getCellsRectWidth(t,e,i,r){const o=this.isFrozenCell(t,e),n=this.isFrozenCell(i,r);let s=this.getColsWidth(t,i);if(o&&o.col){const e=this.scrollLeft;n&&n.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 wH(t,this)}getColAt(t){return vH(t,this)}getCellAt(t,e){return function(t,e,i){const r=wH(e,i),{row:o,top:n,bottom:s,height:a}=r,l=vH(t,i),{col:h,left:c,right:d,width:u}=l;return{row:o,col:h,rect:{left:c,right:d,top:n,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 o=!1;t>i.tableNoFrameWidth-i.getRightFrozenColsWidth()&&t<i.tableNoFrameWidth&&(o=!0);const n=SH(o?t:t+i.scrollLeft,o,i),s=AH(r?e:e+i.scrollTop,r,i);if(!n||!s)return;const{row:a,top:l,bottom:h,height:c}=s,{col:d,left:u,right:g,width:p}=n;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),o=function(t){let e=0,i=0;t.frozenColCount>0&&(e=t.getFrozenColsWidth()),t.rightFrozenColCount>0&&(i=t.getRightFrozenColsWidth());let r=0,o=0;return t.frozenRowCount>0&&(r=t.getFrozenRowsHeight()),t.bottomFrozenRowCount>0&&(o=t.getBottomFrozenRowsHeight()),new Pw(t.scrollLeft+e,t.scrollTop+r,t.tableNoFrameWidth-e-i,t.tableNoFrameHeight-r-o)}(this);if(o.contains(r))return;i&&i.col||this.getColsWidth(0,this.frozenColCount-1)+r.width>this.canvas.width||(r.left<o.left?this.scrollLeft-=o.left-r.left:o.right<r.right&&(this.scrollLeft-=o.right-r.right)),i&&i.row||this.getRowsHeight(0,this.frozenRowCount-1)+r.height>this.canvas.height||(r.top<o.top?this.scrollTop-=o.top-r.top:o.bottom<r.bottom&&(this.scrollTop-=o.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(),o=this.getVisibleRect();return r.offsetLeft(this.tableX-(e?o.left:0)),r.offsetTop(this.tableY-(i?o.top:0)),r.offsetLeft(this.options.viewBox?.x1??0),r.offsetTop(this.options.viewBox?.y1??0),r}getVisibleRect(){const{scrollTop:t,scrollLeft:e}=this,i=this.tableNoFrameWidth,r=this.tableNoFrameHeight;return new Pw(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 o=Math.max(r.top>=i?r.row:r.row+1,t);let n=this.getRowsHeight(0,o-1),s=0;const{rowCount:a}=this;for(let t=o;t<a;t++){const i=n+this.getRowHeight(t);if(e.bottom<i)break;s++,n=i}return s}getBodyVisibleCellRange(){const{scrollTop:t,scrollLeft:e}=this,i=this.getFrozenRowsHeight(),r=this.getFrozenColsWidth(),o=this.getBottomFrozenRowsHeight(),n=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-o).row:this.rowCount-1,h=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(e+this.tableNoFrameWidth-1-n).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),o=this.getAllRowsHeight()>this.tableNoFrameHeight?this.getRowAt(t+this.tableNoFrameHeight-1-i).row:this.rowCount-1;return o<0?null:{rowStart:r,rowEnd:o}}getBodyVisibleColRange(){const{scrollLeft:t}=this,e=this.getFrozenColsWidth(),i=this.getRightFrozenColsWidth(),{col:r}=this.getColAt(t+e+1),o=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(t+this.tableNoFrameWidth-1-i).col:this.colCount-1;return o<0?null:{colStart:r,colEnd:o}}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 o=Math.max(r.left>=i?r.col:r.col+1,t);let n=this.getColsWidth(0,o-1),s=0;const{colCount:a}=this;for(let t=o;t<a;t++){const i=n+this.getColWidth(t);if(e.right<i)break;s++,n=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?.(),NA.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(),t.focusControl.release();const{parentElement:e}=t.element;e&&!this.options.canvas&&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:o=80,defaultHeaderColWidth:n=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:C,heightMode:w,autoFillWidth:v,autoFillHeight:x,widthAdaptiveMode:_,heightAdaptiveMode:S,customRender:A,renderChartAsync:R,renderChartAsyncBatchCount:B,overscrollBehavior:T,limitMinWidth:M,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=C??"standard",this.heightMode=w??"standard",this._widthAdaptiveMode=_??"only-body",this._heightAdaptiveMode=S??"only-body",this.autoFillWidth=v??!1,this.autoFillHeight=x??!1,this.customRender=A;const H=this.internalProps;if("node"!==IC.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"}(H.element,this.padding),this.columnWidthComputeMode=t.columnWidthComputeMode??"normal",H.frozenColCount=e,H.defaultRowHeight=i,H.defaultHeaderRowHeight=r??i,H.defaultColWidth=o,H.defaultHeaderColWidth=n??o,H.keyboardOptions=s,H.eventOptions=a,H.rowSeriesNumber=l,H.columnResizeMode=h,H.rowResizeMode=c,H.dragHeaderMode=d??"none",H.renderChartAsync=R,GB(B),H.overscrollBehavior=T??"auto",H.cellTextOverflows={},H._rowHeightsMap=new aH(this),H._rowRangeHeightsMap=new Map,H._colRangeWidthsMap=new Map,H._widthResizedColMap=new Set,H._heightResizedRowMap=new Set,this.colWidthsMap=new Mw,this.colContentWidthsMap=new Mw,this.colWidthsLimit={},H.stick.changedCells.clear(),H.theme=iv.of(t.theme??iv.DEFAULT),H.theme.isPivot=this.isPivotTable(),this.scenegraph.updateStageBackground(),H.autoWrapText=t.autoWrapText,H.enableLineBreak=t.enableLineBreak,H.allowFrozenColCount=t.allowFrozenColCount??0,H.limitMaxAutoWidth=t.limitMaxAutoWidth??450,H.limitMinWidth=null!=M?"number"==typeof M?M:M?10:0:10,H.limitMinHeight=null!=P?"number"==typeof P?P:P?10:0:10,this._vDataSet=new z_,H.legends?.forEach((t=>{t?.release()})),H.title?.release(),H.title=null,H.emptyTip?.release(),H.emptyTip=null,H.layoutMap.release(),this.scenegraph.clearCells(),this.scenegraph.updateComponent(),this.stateManager.updateOptionSetState(),this._updateSize(),this.eventManager.updateEventBinder(),t.legends)if(H.legends=[],Array.isArray(t.legends)){for(let e=0;e<t.legends.length;e++)H.legends.push(sH(t.legends[e],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else H.legends.push(sH(t.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});H.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},t.tooltip),"html"!==H.tooltip.renderMode||H.tooltipHandler||(H.tooltipHandler=new NP(this,H.tooltip.confine)),H.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"!==H.menu.renderMode||H.menuHandler||(H.menuHandler=new qP(this)),this.clearCellStyleCache(),this.clearColWidthCache(),this.clearRowHeightCache(),H.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 Pw(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=BH(t)?t.changedTouches[0]:t;const o=r.clientX||r.pageX+window.scrollX,n=r.clientY||r.pageY+window.scrollY,s=i.internalProps.canvas.getBoundingClientRect();let a=!0;s.right<=o&&(a=!1),s.bottom<=n&&(a=!1);const l=s.width,h=l/(this.canvas.offsetWidth||l),c=s.height,d=c/(this.canvas.offsetHeight||c),u={x:(o-s.left)/h+(e?i.scrollLeft:0)-(this.options.viewBox?.x1??0),y:(n-s.top)/d+(e?i.scrollTop:0)-(this.options.viewBox?.y1??0),inTable:a};if(this.internalProps.modifiedViewBoxTransform&&this.scenegraph.stage.window.getViewBoxTransform()){this.scenegraph.stage.window.getViewBoxTransform().transformPoint(u,u)}return u}getTheme(){return this.internalProps.theme}getTargetColAt(t){return xH(t,this)}getTargetRowAt(t){return _H(t,this)}getTargetColAtConsiderRightFrozen(t,e){return SH(t,e,this)}getTargetRowAtConsiderBottomFrozen(t,e){return AH(t,e,this)}clearSelected(){this.stateManager.updateSelectPos(-1,-1)}selectCell(t,e,i,r){this.stateManager.updateSelectPos(t,e,i,r),this.stateManager.endSelectCells()}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(rC.grabing),this.stateManager.updateSelectPos(t.end.col,t.end.row,!1,e>=1,!1,!1,!0)),this.stateManager.endSelectCells(!1),this.stateManager.updateInteractionState(rC.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(),wA(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=iv.of(t??iv.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=iv.of(t??iv.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 $A("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,$A("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)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"),o=BC(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=o}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,o=r?.description??i?.description;if("function"==typeof o){return o({col:t,row:e,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e)})}return o}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 o=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource?.hasField(o,t)}_getCellStyle(t,e){const i=this.customCellStylePlugin.getCustomCellStyle(t,e),{layoutMap:r}=this.internalProps;if(r.isHeader(t,e)){let o;if(!this.isPivotTable()||this.isBottomFrozenRow(e)||this.isRightFrozenColumn(t))o=`${t}-${e}`;else{const i=this.getHeaderDefine(t,e),r=this.isCornerHeader(t,e);o=i?.dimensionKey?r?`dim-cor-${i.dimensionKey}`:`dim-${i.dimensionKey}`:i?.indicatorKey?`ind-${i.indicatorKey}`:`${t}-${e}`}let n=this.headerStyleCache.get(o);if(n)return i?dH(n,i):n;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 MH;const l=this.internalProps.headerHelper.getStyleClass(s?.headerType||"text");if(r.isBottomFrozenRow(t,e)&&this.theme.bottomFrozenStyle)n=kC(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)n=kC(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),n=kC(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(o,n),i?dH(n,i):n}let o,n;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&&(o=i.bgColor.mapping)}));const s=this.getCellType(t,e);let a;if(n=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(n):this.bodyStyleCache.get(n),a)return i?dH(a,i):a;const l=r.getBody(t,e),h=this.internalProps.bodyHelper.getStyleClass(this.getCellType(t,e)),c=l?.style;return a=BC(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),o&&(a=dH(a,{bgColor:o})),$(c)||(r.isBottomFrozenRow(e)?this.bodyBottomStyleCache.set(n,a):this.bodyStyleCache.set(n,a)),i?dH(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 o=this.getCellValue(t,e),n=this.getCellOriginValue(t,e),s=this.internalProps.context,a=this.internalProps.bodyHelper.getIcons(t,e,o,n,s);i?.length>0?i=i.concat():a?.length>0&&(i=a)}else{const r=this.getCellValue(t,e),o=this.getCellOriginValue(t,e),n=this.internalProps.context;i=this.internalProps.bodyHelper.getIcons(t,e,r,o,n)}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=xA(i,this,t,e,$A).theme,{autoWrapText:o,lineClamp:n,textOverflow:s}=i;return{textAlign:r.text.textAlign,textBaseline:r.text.textBaseline,bgColor:K(r.group.fill)?$A("bgColor",i,t,e,this):r.group.fill,color:K(r.text.fill)?$A("color",i,t,e,this):r.text.fill,strokeColor:K(r.text.stroke)?$A("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:o??!1,lineClamp:n??"auto",textOverflow:s,borderColor:K(r.group.stroke)?$A("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:$A("linkColor",i,t,e,this)}}getAllBodyCells(t,e){const i=this.rowHeaderLevelCount,r=this.columnHeaderLevelCount,o=this.colCount-1,n=this.rowCount-1;return Array(Math.min(e??2e3,n-r+1,this.rowCount)).fill(0).map(((e,n)=>Array(Math.min(t??2e3,o-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,n+r)))))}getAllCells(t,e){const i=0,r=0,o=this.colCount-1,n=this.rowCount-1;return Array(Math.min(e??2e3,n-r+1,this.rowCount)).fill(0).map(((e,n)=>Array(Math.min(t??2e3,o-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,n+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,o)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,o+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,o)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,o+e)))))}scrollToCell(t){const e=this.getDrawRange();if(Y(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(Y(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),o=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),o=Math.max(o,t.start.row,t.end.row)}));const n=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row);r<=e&&o>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),o=Math.max(t.start.col,t.end.col);r<=e&&o>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const o=Math.min(t.start.row,t.end.row),n=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&&o<=i&&n>=i&&(r=t)})),r},l=(t,e,i)=>{const r=this.getCellRange(t,e);let o=r.start.col,n=r.start.row;if(i){const t=Math.min(i.start.col,i.end.col),e=Math.min(i.start.row,i.end.row);o=Math.max(t,r.start.col),n=Math.max(e,r.start.row)}if(o!==t||n!==e)return"";return this.getCellValue(t,e)};let h="";for(let t=r;t<=o;t++){if(n(t)){for(let r=e;r<=i;r++){if(s(r)){const e=a(r,t);if(e){const o=l(r,t,e);if("undefined"!=typeof Promise&&o instanceof Promise);else{const t=Y(o)?`${o}`:"";/^\[object .*\]$/.exec(t)||(h+=t)}(r<e.end.col||r<i)&&(h+="\t")}else h+="\t"}}t<o&&(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),o=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),o=Math.max(o,t.start.row,t.end.row)}));const n=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row);r<=e&&o>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),o=Math.max(t.start.col,t.end.col);r<=e&&o>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const o=Math.min(t.start.row,t.end.row),n=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&&o<=i&&n>=i&&(r=t)})),r},l=[];for(let t=r;t<=o;t++){if(n(t)){const r=[];for(let o=e;o<=i;o++){if(s(o)){if(a(o,t)){const e=this.getCellInfo(o,t);r.push(e)}}}l.push(r)}}return l}getSelectedCellRanges(){const t=this.stateManager.select.ranges;return t.length?mt(t):[]}measureText(t,e){return lB.measureText(t,e)}measureTextBounds(t){return cB(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(et(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!tt(i)&&("image"===i.headerType||"video"===i.headerType||"function"==typeof i.headerType)&&i.imageAutoSizing)return!0}if(et(i)&&i.length>0)for(let t=0;t<i.length;t++){const e=i[t];if(!tt(e)&&("image"===e.headerType||"video"===e.headerType||"function"==typeof e.headerType)&&e.imageAutoSizing)return!0}if(et(r)&&r.length>0)for(let t=0;t<r.length;t++){const e=r[t];if(!tt(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(et(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;const o=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.colCount-1,row:this.columnHeaderLevelCount}}),n=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.rowHeaderLevelCount,row:this.rowCount-1}});if(r.top>=i.top&&r.bottom<=i.bottom&&r.left>=i.left&&r.right<=i.right){if(this.isHeader(t,e))return!0;if(i.top>=o.bottom&&i.left>=n.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:o,scrollLeft:n}=this;r||this.scrollToCell({col:t,row:e});const s=this.getCellRelativeRect(t,e);this.stateManager.select?.ranges?.length>0&&eM(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 me).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(o),this.setScrollLeft(n)),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&&iM(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),o=Math.min(t.start.row,t.end.row),n=Math.max(t.start.col,t.end.col),s=Math.max(t.start.row,t.end.row),a=this.cellIsInVisualView(r,o),l=this.cellIsInVisualView(n,s);a&&l||this.scrollToCell({col:r,row:o});const h=this.getCellRangeRelativeRect({start:{col:r,row:o},end:{col:n,row:s}});this.stateManager.select?.ranges?.length>0&&eM(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 me).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&&iM(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 me).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:o,maxWidth:n}=e.layoutMap.columnWidths?.[i]??{};t&&r&&("string"==typeof r&&"auto"!==r||"number"==typeof r&&r>0)&&this._setColWidth(i,r),o&&("number"==typeof o&&o>0||"string"==typeof o)&&this.setMinColWidth(i,o),n&&("number"==typeof n&&n>0||"string"==typeof n)&&this.setMaxColWidth(i,n)}}setSortedIndexMap(t,e){this.dataSource?.setSortedIndexMap(t,e)}}var HH=Object.freeze({__proto__:null,BaseTable:PH});const EH={};function LH(t){if(EH[t])return EH[t]}function kH(t,e,i){const r=t[e];return t[e]=i,r}function IH(t){for(const e in t)delete t[e]}function FH(){IH(Fw),IH(WA),IH(hR)}var zH=Object.freeze({__proto__:null,chartModule:function(t,e){return null!=e?kH(hR,t,e):hR[t]},clearAll:FH,editor:function(t,e){return null!=e?kH(EH,t,e):EH[t]},icon:function(t,e){return null!=e?kH(WA,t,e):WA[t]},theme:function(t,e){return null!=e?kH(Fw,t,e):Fw[t]}});var OH=Object.freeze({__proto__:null,dateFormat:function(t,e,i,r,o){null==i&&(i=!1),null==r&&(r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==o&&(o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);const n=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${n}FullYear`]();case"m":return s(a[`get${n}Month`]()+1);case"n":return r[a[`get${n}Month`]()];case"d":return s(a[`get${n}Date`]());case"w":return o[a[`get${n}Day`]()];case"x":return a[`get${n}Day`]();case"H":return s(a[`get${n}Hours`]());case"M":return s(a[`get${n}Minutes`]());case"S":return s(a[`get${n}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 o=r[0];const n=r.length>1?i+r[1]:"";return o=function(t,e){return t.replace(/\d+/,(function(t){return t.replace(/(\d)(?=(\d{3})+$)/g,(function(t){return`${t}${e}`}))}))}(o,e),o+n}((t.scaler*e).toFixed(t.digitsAfterDecimal),t.thousandsSep,t.decimalSep);return`${t.prefix}${i}${t.suffix}`}}});const DH="NO_AXISID_FRO_VTABLE";function WH(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 NH(t,e,i,r){let o=!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){o=!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&&(o=!0):o=!1}return o}function GH(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 jH(t,e,i,r,o,n,s){const{axisOption:a,isPercent:l,isZeroAlign:h,seriesIndice:c}=GR(t,e,r,s),d=VR(s.dataset.collectedValues,o,h,n,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}=LR(d.min,d.max,a,0,s._table.getColWidth(t));d.min=e[0],d.max=e[1]}return ot(a?.min)&&(d.min=a.min),ot(a?.max)&&(d.max=a.max),{range:d,isZeroAlign:h,axisOption:a}}function VH(t){let e=!1;for(let i=0;i<t.columnObjects.length;i++){if(t.columnObjects[i].chartSpec){e=!0;break}}return e}class UH{seqId=0;_headerObjects;_headerObjectMap;_headerCellIds;_columns;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._headerCellIds=[],this.hierarchyIndent=r??20,this.hierarchyTextStartAlignment=t.options.hierarchyTextStartAlignment,this.columnTree=new uH(e,{seqId:0}),this._headerObjects=this._addHeaders(0,e,[]),this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this.rowHierarchyType=function(t){const{columns:e}=t._table.options;if(et(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!tt(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 o=[];if(!this.transpose){for(let r=t;r<=i;r++){const t=this.getBody(r,e);t.aggregator&&(o=o.concat(Array.isArray(t.aggregator)?t.aggregator:[t.aggregator]))}return o}for(let i=e;i<=r;i++){const e=this.getBody(t,i);e.aggregator&&(o=o.concat(Array.isArray(e.aggregator)?e.aggregator:[e.aggregator]))}return[]}getAggregatorOnTop(t,e){const i=this.getBody(t,e),r=i.aggregator,o=i.aggregation;if(Array.isArray(o)){const i=o.reduce(((t,e,i)=>(e.showOnTop&&t.push(i),t)),[]),n=i.map((t=>r[t]));return this.transpose?n[t-this.rowHeaderLevelCount]:n[e-this.columnHeaderLevelCount]}return this.transpose&&t-this.rowHeaderLevelCount==0?o?.showOnTop?r:null:this.transpose||e-this.columnHeaderLevelCount!=0?null:o?.showOnTop?r:null}getAggregatorOnBottom(t,e){const i=this.getBody(t,e),r=i.aggregator,o=i.aggregation;if(Array.isArray(o)){const i=o.reduce(((t,e,i)=>(!1===e.showOnTop&&t.push(i),t)),[]),n=i.map((t=>r[t]));return this.transpose?n[t-(this.colCount-this.hasAggregationOnBottomCount)]:n[e-(this.rowCount-this.hasAggregationOnBottomCount)]}return this.transpose&&t-(this.colCount-this.hasAggregationOnBottomCount)==0?!1===o?.showOnTop?r:null:this.transpose||e-(this.rowCount-this.hasAggregationOnBottomCount)!=0?null:!1===o?.showOnTop?r:null}getAggregatorCellAddress(t,e,i,r){const o=[],n=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<n;t++)o.push({col:this.headerLevelCount+t,row:i});for(let t=0;t<s;t++)o.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<n;t++)o.push({col:r,row:this.headerLevelCount+t});for(let t=0;t<s;t++)o.push({col:r,row:this.rowCount-s+t})}}return o}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(Y(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(Y(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(Y(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(Y(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 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(((o,n)=>{"number"==typeof o.width?r=Math.max(o.width,r):"auto"===o.width&&(t=!0),"number"==typeof o.minWidth&&(i=Math.max(o.minWidth,i)),"number"==typeof o.maxWidth&&(e=Math.max(o.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 o=e-1;o>=this.headerLevelCount;o--){const e=this._table.getCellValue(t,o);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=o}for(let o=e+1;o<this.rowCount;o++){const e=this._table.getCellValue(t,o);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=o}}}else{const r=this.getCellId(t,e);for(let o=t-1;o>=0&&r===this.getCellId(o,e);o--)i.start.col=o;for(let o=t+1;o<(this.colCount??0)&&r===this.getCellId(o,e);o++)i.end.col=o;for(let o=e-1;o>=0&&r===this.getCellId(t,o);o--)i.start.row=o;for(let o=e+1;o<this.headerLevelCount&&r===this.getCellId(t,o);o++)i.end.row=o}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 o=t-1;o>=this.headerLevelCount+this.leftRowSeriesNumberColumnCount;o--){const t=this._table.getCellValue(o,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=o}for(let o=t+1;o<(this.colCount??0);o++){const t=this._table.getCellValue(o,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=o}}return i}const r=this.getCellId(t,e);for(let o=e-1;o>=0&&r===this.getCellId(t,o);o--)i.start.row=o;for(let o=e+1;o<(this.rowCount??0)&&r===this.getCellId(t,o);o++)i.end.row=o;for(let o=t-1;o>=0&&r===this.getCellId(o,e);o--)i.start.col=o;for(let o=t+1;o<this.headerLevelCount+this.leftRowSeriesNumberColumnCount&&r===this.getCellId(o,e);o++)i.end.col=o;return i}isCellRangeEqual(t,e,i,r){const o=this.getCellRange(t,e),n=this.getCellRange(i,r);return o.start.col===n.start.col&&o.end.col===n.end.col&&o.start.row===n.start.row&&o.end.row===n.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 o=[],n=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};o[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]&&(n[s]=this._headerCellIds[t-1][s]):n[s]=a,e.columns)this._addHeaders(t+1,e.columns,[...i,a],e.hideColumnsSubHeader||r).forEach((t=>o.push(t)));else{const i=e;this._columns.push({id:this.seqId++,field:i.field,fieldFormat:i.fieldFormat,width:i.width,minWidth:i.minWidth,maxWidth:i.maxWidth,icon:i.icon,cellType:i.cellType??i.columnType??"text",chartModule:"chartModule"in i?i.chartModule:null,chartSpec:"chartSpec"in i?i.chartSpec:null,sparklineSpec:"sparklineSpec"in i?i.sparklineSpec:Nw,style:i.style,define:i,columnWidthComputeMode:i.columnWidthComputeMode,disableColumnResize:i?.disableColumnResize,aggregation:this._getAggregationForColumn(i,s),isChildNode:t>=1});for(let e=t+1;e<this._headerCellIds.length;e++)this._headerCellIds[e][s]=a}})),o}_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=>(Y(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 o;const n=this.getCellRange(e.col,i.start.row);if(o=e.col>=t.col?n.end.col-r+1:n.start.col,o===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(o-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(o-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.row,i.start.col-this.leftRowSeriesNumberColumnCount,o-this.leftRowSeriesNumberColumnCount),this.columnTree.reset(this.columnTree.tree.children,!0),this._cellRangeMap=new Map,{sourceIndex:i.start.col,targetIndex:o,sourceSize:r,targetSize:n.end.col-n.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 o;const n=this.getCellRange(i.start.col,e.row);if(o=e.row>=t.row?n.end.row-r+1:n.start.row,o===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(o,0),Array.prototype.splice.apply(this._headerCellIds[t],e)}const s=this._columns.splice(i.start.row,r);return s.unshift(o,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.col-this.leftRowSeriesNumberColumnCount,i.start.row,o+(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:o,sourceSize:r,targetSize:n.end.row-n.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 VH(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 GH(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 KH{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)_t(t,this._cacheAttrs)||this._titleComponent.setAttributes(t);else{const e=new y_(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=DS(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=DS(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 $H{table;editingEditor;editCell;constructor(t){this.table=t,this.bindEvent()}bindEvent(){const t=this.table.internalProps.handler;this.table.on(xw.DBLCLICK_CELL,(t=>{if(!this.table.options.editCellTrigger||"doubleclick"===this.table.options.editCellTrigger){const{col:e,row:i}=t,r=BA(t.federatedEvent),o=this.table.scenegraph.getResizeColAt(r.abstractPos.x,r.abstractPos.y,r.eventArgs?.targetCell);if(this.table._canResizeColumn(o.col,o.row)&&o.col>=0)return;this.startEditCell(e,i)}})),this.table.on(xw.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),o=this.table.getCellRangeRelativeRect(this.table.getCellRange(t,e)),n={rect:{left:o.left,top:o.top,width:o.width,height:o.height}};i.beginEditing,i.beginEditing?.(this.table.getElement(),n,r),i.bindSuccessCallback,i.bindSuccessCallback?.((()=>{this.completeEdit()})),i.onStart?.({value:r,endEdit:()=>{this.completeEdit()},referencePosition:n,container:this.table.getElement(),col:t,row:e})}}completeEdit(t){if(!this.editingEditor)return;const e=t?.target,{editingEditor:i}=this;if(e)if(i.targetIsOnEditor){if(i.targetIsOnEditor(e))return}else if(!i.isEditorElement||i.isEditorElement(e))return;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)}this.table.changeCellValues(e.start.col,e.start.row,i),this.editingEditor.exit,this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null}}cancelEdit(){this.editingEditor&&(this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null)}}class XH{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)_t(t,this._cacheAttrs)||this._emptyTipComponent.setAttributes(t);else{const e=new v_(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.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0?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.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0?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 YH={startInTotal:0,level:0};class qH{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=Ww;_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){if(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._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this._table.isPivotChart()&&(this.hasTwoIndicatorAxes=this._indicators.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._rowHeaderCellFullPathIds_FULL=VC(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),"column"===this.cornerSetting.titleOnDimension){const t=this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();this.cornerHeaderObjs=this._addCornerHeaders(this.columnHeaderTitle?[""].concat(t):t,this.columnsDefine)}else if("row"===this.cornerSetting.titleOnDimension)if("tree"===this.rowHierarchyType&&this.extensionRows?.length>=1){const t=[];t.push(this.rowDimensionKeys[0]),this._extensionRowDimensionKeys.forEach((e=>{t.push(e[0])}));const e=this.extensionRows.reduce(((t,e)=>t.concat(e.rows)),[]);this.cornerHeaderObjs=this._addCornerHeaders(this.rowHeaderTitle?[""].concat(t):t,this.rowsDefine.concat(e))}else{const t=this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr();this.cornerHeaderObjs=this._addCornerHeaders(this.rowHeaderTitle?[""].concat(t):t,this.rowsDefine)}else this.cornerHeaderObjs=this._addCornerHeaders(null,void 0);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=(et(e.paddingInner)?e.paddingInner[0]:e.paddingInner)??0,this._chartPaddingOuter=(et(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&&this._addHeaders(this._columnHeaderCellFullPathIds,0,this.columnDimensionTree.tree.children,[],this.columnHeaderObjs),this.columnHeaderTitle){this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);const t=++this.sharedVar.seqId,e=Array(this.colCount-this.rowHeaderLevelCount).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&&("tree"===this.rowHierarchyType?this._addHeadersForTreeMode(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowDimensionTree.totalLevel,!0,this.rowsDefine,this.rowHeaderObjs):this._addHeaders(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowHeaderObjs)),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,o){const n=this;t[e]||function(e){const i=t[e]=[];if(0===n.colIndex)return i;const r=t[e-1];for(let t=0;t<r?.length;t++)i[t]=r[t]}(e);for(let n=0;n<i.length;n++){fH(i[n],t,o,r,e,this)}}_addHeadersForTreeMode(t,e,i,r,o,n,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++){mH(i[l],t,a,r,e,o,n,s,this)}}_addCornerHeaders(t,e){const i=[];if(t)t.forEach(((t,r)=>{const o=++this.sharedVar.seqId,n=e.find((e=>"string"!=typeof e&&e.dimensionKey===t)),s={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:n?n.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:n?.showSortInCorner,sort:n?.sort,define:{showSort:n?.showSortInCorner,sort:n?.sort,dimensionKey:t,id:o,value:t,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:n?.cornerDropDownMenu,pivotInfo:{value:n?.title??"",dimensionKey:t,isPivotCorner:!0},description:n?.cornerDescription};if(i[o]=s,this._headerObjects[o]=s,"column"===this.cornerSetting.titleOnDimension){this._cornerHeaderCellFullPathIds[r]||(this._cornerHeaderCellFullPathIds[r]=[]);for(let t=0;t<this.rowHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[r][t]=o}else if("row"===this.cornerSetting.titleOnDimension)for(let t=0;t<this.columnHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[t]||(this._cornerHeaderCellFullPathIds[t]=[]),this._cornerHeaderCellFullPathIds[t][r]=o}));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}};i[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 i}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 o,n;if(this.colIndex=0,"function"==typeof t.rowTree){const i=this.findFullCellIds(e);o=t.rowTree(i.map((t=>({dimensionKey:this._headerObjects[t].field,value:this._headerObjects[t].title}))))}else o=mt(t.rowTree);this._rowHeaderExtensionTree[r]?(this._rowHeaderExtensionTree[r].reset(this._rowHeaderExtensionTree[r].tree.children,!0),n=this._rowHeaderExtensionTree[r]):(n=new uH(o??[],this.sharedVar,this.rowHierarchyType,void 0),this._rowHeaderExtensionTree[r]=n);const s=[];this._addHeadersForTreeMode(s,0,n.tree.children,[],n.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,o=0;this._indicators?.forEach(((t,n)=>{"number"==typeof t.width?o=Math.max(t.width,o):"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))})),o=o>0?o:r?"auto":void 0,t.fill({width:o,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(Y(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(Y(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(Y(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(Y(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&&WH(this.indicatorsDefine)&&(t-=1),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),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&&WH(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 Y(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 Y(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 o=t-1;o>=0&&r===this.getCellId(o,e);o--)i.start.col=o;for(let o=t+1;o<(this.colCount??0)&&r===this.getCellId(o,e);o++)i.end.col=o;for(let o=e-1;o>=0&&r===this.getCellId(t,o);o--)i.start.row=o;for(let o=e+1;o<(this.rowCount??0)&&!(r!==this.getCellId(t,o)||this.isSeriesNumberInHeader(t,e)&&o>=this.columnHeaderLevelCount);o++)i.end.row=o}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 o=this.getCellRange(t,e),n=this.getCellRange(i,r);return o.start.col===n.start.col&&o.end.col===n.end.col&&o.start.row===n.start.row&&o.end.row===n.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 o=[],n=[];if(e>=0&&i>=0&&(o=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 o=t[i];for(r.push(o);;){const t=this._headerObjectMap[o];if(!t?.parentCellId)break;r.unshift(t.parentCellId),o=t.parentCellId}const s=e.getTreePathByCellIds(r);n=n.concat(s),e=this._rowHeaderExtensionTree[t[i]],i++}}else n=this.rowDimensionTree.getTreePath(r,this.showHeader&&this.showRowHeader?t-(this.rowHeaderTitle?1:0)-this.leftRowSeriesNumberColumnCount:this.rowDimensionTree.totalLevel);const s={colHeaderPaths:o,rowHeaderPaths:n,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}))),o=this.getHeader(t,e);if(o.define.hierarchyState=o.define.hierarchyState===sC.collapse?sC.expand:sC.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=VC(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 n=function(t,e,i,r,o,n){const s=n.columnHeaderLevelCount,a=[],l=[];for(let t=0;t<i.length;t++)r.includes(i[t])||l.push(o[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=n.getParentCellId(t,e),c=n.getRowHeaderCellAddressByCellId(h);const d=[];for(c&&d.push(c);h;)h=n.getParentCellId(c.col,c.row),h&&(c=n.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),n}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,o=this.columnTree;for(let n=0;n<t.length;n++){const s=t[n];if((s.isPivotCorner||!s.value)&&n===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<o.length;t++){const e=o[t];if((Y(s.dimensionKey)&&e.dimensionKey===s.dimensionKey||Y(s.indicatorKey)&&e.indicatorKey===s.indicatorKey)&&e.value===s.value){o=e.children,i=e,a=!0;break}}if(!a)for(let t=0;t<r.length;t++){const i=r[t];if((Y(s.dimensionKey)&&i.dimensionKey===s.dimensionKey||Y(s.indicatorKey)&&i.indicatorKey===s.indicatorKey)&&i.value===s.value){r=i.children,e=i;break}}}let n=0,s=0;if(e){s=this.columnHeaderLevelCount;const{startInTotal:t,level:i}=e;return s+=t,n="grid"===this.rowHierarchyType?(this.rowHeaderTitle?i+1:i)+this.leftRowSeriesNumberColumnCount:0+this.leftRowSeriesNumberColumnCount,{col:n,row:s}}if(i){n=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=i;return n+=t,s=this.columnHeaderTitle?e+1:e,{col:n,row:s}}}getPivotDimensionInfo(t,e){const{colHeaderPaths:i,rowHeaderPaths:r}=this.getCellHeaderPaths(t,e),o=[];return i.length?i.forEach(((t,e)=>{o.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):r.length?r.forEach(((t,e)=>{o.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):this.isCornerHeader(t,e)&&("row"===this?.cornerSetting?.titleOnDimension?o.push({dimensionKey:this.rowDimensionKeys[(this.rowHeaderTitle?t-1:t)-this.leftRowSeriesNumberColumnCount],isPivotCorner:!0}):o.push({dimensionKey:this.colDimensionKeys[this.columnHeaderTitle?e-1:e],isPivotCorner:!0})),o}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,o)=>!!r.find(((i,r)=>i===t&&(e=r,!0)))&&(i=o,!0))),Y(e)&&Y(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=mt(this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths),r=mt(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 o;const n=this.getCellRange(e.col,i.start.row);if(o=e.col>=t.col?n.end.col-r+1:n.start.col,o===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(o-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(o-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,n.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:o,sourceSize:r,targetSize:n.end.col-n.start.col+1,moveType:"column"}}if(this.isRowHeader(t.col,t.row)){let r;const o=this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,n=this.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths,s=o[o.length-1],a=n[o.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(o.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,o=!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()&&(o=!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 n,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(!Y(i.indicatorKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Y(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(!Y(e.indicatorKey)&&i.dimensionKey===e.dimensionKey&&i.value===e.value||Y(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(o||!h||(c||Y(s))&&d){if(c||o){s=this.columnHeaderLevelCount;const{startInTotal:t,level:e}=c??YH;s+=t??0,a="grid"===this.rowHierarchyType?(this.rowHeaderTitle?e+1:e)+this.leftRowSeriesNumberColumnCount:0}if(d||o){n=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=d??YH;n+=t??0,l=this.columnHeaderTitle?e+1:e}return Y(n)||Y(s)?{col:n??a,row:s??l}:void 0}}setChartInstance(t,e,i){const r=this.getCellHeaderPaths(t,e);let o;if(this.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=this._indicators?.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=this._indicators?.find((e=>e.indicatorKey===t))}"function"!=typeof o?.chartSpec&&o&&(o.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 VH(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))&&NH(t,e,"row",this)||(this.isFrozenRow(t,e)||this.isBottomFrozenRow(t,e))&&NH(t,e,"col",this))return NR(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&&WH(this.indicatorsDefine)){if(this.isBottomFrozenRow(t,e)&&NH(t,e,"col",this)||this.isRightFrozenColumn(t,e)&&NH(t,e,"row",this))return!0;if(this.isRowHeader(t,e)&&t===this.rowHeaderLevelCount-1&&NH(t,e,"row",this))return!0;if(this.hasTwoIndicatorAxes&&this.indicatorsAsCol&&e===this.columnHeaderLevelCount-1&&NH(t,e,"col",this))return!0}return!1}getChartAxes(t,e){if(function(t,e,i){let r=!0;const o=i.getRawChartSpec(t,e);return o&&"pie"!==o.type&&"radar"!==o.type&&"gauge"!==o.type&&"wordCloud"!==o.type&&"funnel"!==o.type&&"rose"!==o.type||(r=!1),r}(t,e,this)||this.isAxisCell(t,e))return function(t,e,i){const r=[];if(i.indicatorsAsCol){const o=i.getIndicatorKeyInChartSpec(t,e),n=i.getColKeysPath(t,e);o.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=jH(t,e,a,0===a?"bottom":"top",o,n,i);if(h){const r=jH(t,e,o.length-1-a,0===a?"top":"bottom",o,n,i);if(r){const{range:t}=r,e=WR(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}ot(c?.min)&&(l.min=c.min),ot(c?.max)&&(l.max=c.max),r.push(wt({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:DH}}))}));let s=i.getDimensionKeyInChartSpec(i.rowHeaderLevelCount,e);et(s)&&(s=s[0]);const a=(i.dataset.cacheCollectedValues[s]||i.dataset.collectedValues[s]||[])[i.getRowKeysPath(t,e)??""],{axisOption:l,isPercent:h,chartType:c}=GR(t,e,"left",i);r.push(wt({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 o=i.getIndicatorKeyInChartSpec(t,e),n=i.getRowKeysPath(t,e);o.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=jH(t,e,a,0===a?"left":"right",o,n,i);if(h){const r=jH(t,e,o.length-1-a,0===a?"right":"left",o,n,i);if(r){const{range:t}=r,e=WR(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}ot(c?.min)&&(l.min=c.min),ot(c?.max)&&(l.max=c.max),r.push(wt({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:DH}}))}));let s=i.getDimensionKeyInChartSpec(t,i.columnHeaderLevelCount);et(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}=GR(t,e,"bottom",i);r.push(wt({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 o;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}const n=o?.chartSpec;if("function"==typeof n)return n({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 n}(t,e,this)}getChartSpec(t,e){return function(t,e,i){let r=i.getRawChartSpec(t,e);return r?i._table.isPivotChart()?(r=eS(r),r.sortDataByAxis=!0,et(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 o;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}const n=o?.chartSpec;return"function"!=typeof n}(t,e,this)}getChartDataId(t,e){return GH(t,e,this)}setPagination(t){if(this.clearCellRangeMap(),this._table.internalProps.useOneRowHeightFillAll=!1,this.pagination=t,"grid"===this.rowHierarchyType&&Y(this.pagination?.perPageCount)&&Y(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,o,n=this.rowTree,s=this.columnTree;if(Y(i)&&Y(e)&&"tree"===this.rowHierarchyType&&this.extensionRows&&e>=1+this.leftRowSeriesNumberColumnCount){const t=this.getCellId(e-1,i);n=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(Y(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Y(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Y(i.value)||!Y(e.value))){s=e.children,o=e,a=!0;break}}if(!a)for(let t=0;t<n?.length;t++){const e=n[t];if(Y(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Y(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Y(i.value)||!Y(e.value))){n=e.children,r=e;break}}}return r||(o||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=ZH(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const o=DS(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+o[0]+o[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=ZH(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const o=DS(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+o[1]+o[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 gH(t,this.columnDimensionTree.tree.children),t}getLayoutRowTree(){const t=[];return gH(t,this.rowDimensionTree.tree.children),t}getLayoutColumnTreeCount(){return pH(this.columnDimensionTree.tree.children,"tree"===this.rowHierarchyType)}getLayoutRowTreeCount(){let t=pH(this.rowDimensionTree.tree.children,"tree"===this.rowHierarchyType);return this.extensionRows?.forEach((e=>{if("function"!=typeof e.rowTree){const i=pH(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 uH(this.columnTree??[],this.sharedVar),this.rowDimensionTree=new uH(this.rowTree??[],this.sharedVar,this.rowHierarchyType,"tree"===this.rowHierarchyType?this.rowExpandLevel:void 0),this._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this.resetColumnHeaderLevelCount(),this._rowHeaderCellFullPathIds_FULL=VC(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}generateCellIdsConsiderHideHeader(){if(this._columnHeaderCellIds=this._columnHeaderCellFullPathIds.slice(),!this.showColumnHeader)if(this.indicatorsAsCol&&!this.hideIndicatorName){const t=this.colDimensionKeys.indexOf(Ww),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(Ww);this._rowHeaderCellIds_FULL.forEach(((e,i)=>{const r=e.slice(),o=r.splice(t,1);r.splice(0,r.length),r.push(o[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(Ww),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(Ww);this._cornerHeaderCellIds.forEach(((e,i)=>{const r=e.slice(),o=r.splice(t,1);r.splice(0,r.length),r.push(o[0]),this._cornerHeaderCellIds[i]=r}))}}}function ZH(t,e,i,r){1===i&&(i=0);const o=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),n=e/(1-i);return Math.ceil(o*n)}class JH{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 o=t[r];void 0!==o&&(this.dataConfig.indicatorsAsCol?e.push(r):i.push(r));const n=i.join(this.stringJoinChar),s=e.join(this.stringJoinChar);0!==i.length&&(this.rowFlatKeys[n]||(this.rowFlatKeys[n]=1)),0!==e.length&&(this.colFlatKeys[s]||(this.colFlatKeys[s]=1)),0===e.length&&0===i.length||(this.tree[n]||(this.tree[n]={}),void 0!==o&&(this.tree[n][s]={value:o,record:t},this.dataConfig.indicatorsAsCol?e.pop():i.pop()))}))}getTreeNode(t=[],e=[],i,r=!0){let o,n;if("string"==typeof t)o=t;else{let e=!1;t.map(((r,o)=>{r===i&&(t.splice(o,1),e=!0)})),e&&t.push(i),o=t.join(this.stringJoinChar)}if("string"==typeof e)n=e;else{let t=!1;e.map(((r,o)=>{r===i&&(e.splice(o,1),t=!0)})),t&&e.push(i),n=e.join(this.stringJoinChar)}return r?this.tree?.[o]?.[n]??void 0:Y(this.beforeChangedTree[o]?.[n])?{value:this.beforeChangedTree[o][n].value,record:this.beforeChangedTree[o][n].record}:void 0}changeTreeNodeValue(t=[],e=[],i,r){let o,n;if("string"==typeof t)o=t;else{let e=!1;t.map(((r,o)=>{r===i&&(t.splice(o,1),e=!0)})),e&&t.push(i),o=t.join(this.stringJoinChar)}if("string"==typeof e)n=e;else{let t=!1;e.map(((r,o)=>{r===i&&(e.splice(o,1),t=!0)})),t&&e.push(i),n=e.join(this.stringJoinChar)}const s=this.tree[o]?.[n]?.value,a=Object.assign({},this.tree[o]?.[n]?.record);this.tree[o]?.[n]?.record?(this.tree[o][n].record[i]=r,this.tree[o][n].value=r):(this.tree[o]||(this.tree[o]={}),this.tree[o][n]={record:this._buildRecord(t,e,i,r),value:r}),this.beforeChangedTree[o]?.[n]||(this.beforeChangedTree[o]={},this.beforeChangedTree[o][n]={record:void 0,value:void 0},this.beforeChangedTree[o][n].record=a,this.beforeChangedTree[o][n].value=s)}_buildRecord(t=[],e=[],i,r){const o={},n=this.dataConfig.rows,s=this.dataConfig.columns;return n.forEach(((e,i)=>{e!==this.dataConfig.indicatorDimensionKey&&(o[e]=t[i])})),s.forEach(((t,i)=>{t!==this.dataConfig.indicatorDimensionKey&&(o[t]=e[i])})),o[i]=r,this.records.push(o),o}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,o=this.records.length;r<o;r++){const o=this.records[r];o[t]===e&&(o[t]=i)}this.rowFlatKeys={},this.colFlatKeys={},this.tree={},this.processRecords()}}}class QH{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;totals;indicatorStatistics=[];aggregators={};stringJoinChar=String.fromCharCode(0);rowsIsTotal=[];colsIsTotal=[];colGrandTotalLabel;colSubTotalLabel;rowGrandTotalLabel;rowSubTotalLabel;needSplitPositiveAndNegative;collectValuesBy;collectedValues={};cacheCollectedValues={};rows;columns;indicatorKeys;customRowTree;customColTree;colHeaderTree;rowHeaderTree;rowHierarchyType;indicators;indicatorsAsCol;totalRecordsTree={};constructor(t,e,i,r,o,n,s,a,l,h,c){if(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.totals=this.dataConfig?.totals,this.rows=e,this.columns=i,this.indicatorKeys=r,this.indicatorsAsCol=n,this.indicators=o,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=[],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,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,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,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(aC.RECORD,dS),this.registerAggregator(aC.SUM,pS),this.registerAggregator(aC.COUNT,fS),this.registerAggregator(aC.MAX,bS),this.registerAggregator(aC.MIN,yS),this.registerAggregator(aC.AVG,mS),this.registerAggregator(aC.NONE,uS)}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 o,n;this.needSplitPositiveAndNegative&&(o=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.positiveValue()>t?e.positiveValue():t),Number.MIN_SAFE_INTEGER),n=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=o,this.collectedValues[t][e].negativeMin=n)}}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(Y(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[aC.SUM](e,void 0,void 0,this.needSplitPositiveAndNegative)),this.collectedValues[e][i][r].push(t)}else if(this.collectValuesBy[e].range){const r=this.collectedValues[e][i],o=Math.max(t[e],r.max),n=Math.min(t[e],r.min);isNaN(o)||(r.max=o,r.min=n)}else{const r=this.collectedValues[e][i];-1===r.indexOf(t[e])&&r.push(t[e])}}const i=[],r=[];let o=!1;for(let e=0,i=this.rows.length;e<i;e++){const i=this.rows[e];if(i in t)r.push(t[i]);else if(i!==Ww){if(this.dataConfig?.totals?.row?.showGrandTotals&&0===e&&!this.rows.find((e=>e in t))){r.push(this.rowGrandTotalLabel),o=!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),o=!0;break}}}for(let e=0,r=this.columns.length;e<r;e++){const r=this.columns[e];if(r in t)i.push(t[r]);else if(r!==Ww){if(this.dataConfig?.totals?.column?.showGrandTotals&&0===e&&!this.columns.find((e=>e in t))){i.push(this.colGrandTotalLabel),o=!0;break}if(this.dataConfig?.totals?.column?.subTotalsDimensions&&this.dataConfig?.totals?.column?.subTotalsDimensions.indexOf(this.columns[e-1])>=0){i.push(this.colSubTotalLabel),o=!0;break}}}const n=r.join(this.stringJoinChar),s=i.join(this.stringJoinChar);if(o){this.totalRecordsTree[n]||(this.totalRecordsTree[n]={}),this.totalRecordsTree[n][s]||(this.totalRecordsTree[n][s]=[]);for(let e=0;e<this.indicatorKeys.length;e++){const i=this.getAggregatorRule(this.indicatorKeys[e]);this.totalRecordsTree[n]?.[s]?.[e]||(this.totalRecordsTree[n][s][e]=new this.aggregators[i?.aggregationType??aC.SUM](i?.field??this.indicatorKeys[e],i?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)),this.indicatorKeys[e]in t&&this.totalRecordsTree[n]?.[s]?.[e].push(t)}}else{0!==r.length&&(this.rowFlatKeys[n]||(this.rowKeys.push(r),this.rowFlatKeys[n]=1)),0!==i.length&&(this.colFlatKeys[s]||(this.colKeys.push(i),this.colFlatKeys[s]=1)),this.tree[n]||(this.tree[n]={}),this.tree[n]?.[s]||(this.tree[n][s]=[]);for(let i=0;i<this.indicatorKeys.length;i++){const r=this.getAggregatorRule(this.indicatorKeys[i]);let o=!1;if(e)this.indicatorKeys[i]===e&&(o=!0);else if(r?.field)if("string"==typeof r?.field)r?.field in t&&(o=!0);else{const e=r?.field.find((e=>e in t));e&&(o=!0)}else this.indicatorKeys[i]in t&&(o=!0);!this.tree[n]?.[s]?.[i]&&o&&(this.tree[n][s][i]=new this.aggregators[r?.aggregationType??aC.SUM](r?.field??this.indicatorKeys[i],r?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[i]))?.format)),o&&this.tree[n]?.[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[aC.MAX](this.indicatorKeys[e]),min:new this.aggregators[aC.MIN](this.indicatorKeys[e]),total:new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[e],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)}}this.indicatorStatistics[e].max.push(this.tree[n]?.[s]?.[e].value()),this.indicatorStatistics[e].min.push(this.tree[n]?.[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,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,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,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,o){const n=this.indicatorKeys.indexOf(i);let s,a;"string"==typeof t?s=t:(o&&"row"!==o.position||t.map(((e,r)=>{e!==i||Y(o?.index)&&r!==o.index||t.splice(r,1)})),s=t.join(this.stringJoinChar)),"string"==typeof e?a=e:(o&&"col"!==o.position||e.map(((t,r)=>{t!==i||Y(o?.index)&&r!==o.index||e.splice(r,1)})),a=e.join(this.stringJoinChar));const l=this.tree[s]?.[a]?.[n];if(r&&Y(this.changedTree[s]?.[a]?.[n])){const t=this.changedTree[s][a][n];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 wS(e(t,[]),e(i,[]))}));break;case"value_z_to_a":this.rowKeys.sort((function(t,i){return-wS(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 wS(e([],t),e([],i))}));break;case"value_z_to_a":this.colKeys.sort((function(t,i){return-wS(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,o=function(o){const n=[];for(let o=0,s=t.length;o<s;o++)if(i=t[o],r.sortRules)for(let t=0,s=r.sortRules.length;t<s;t++)r.sortRules[t].sortField===i&&n.push({field:i,fieldIndex:o,sortRule:r.sortRules[t],func:r.getSort(r.sortRules[t],e)});return n}.call(this);return function(i,n){let s,a;for(let l=0;l<o.length;l++){if(a=o[l],a.sortRule?.sortByIndicator){let o=i,l=n;a.fieldIndex<t.length-1&&(o=i.slice(0,a.fieldIndex+1),o.push(e?r.rowSubTotalLabel:r.colSubTotalLabel),l=n.slice(0,a.fieldIndex+1),l.push(e?r.rowSubTotalLabel:r.colSubTotalLabel)),s=a.func(o,l)}else s=a.func?.(i[a.fieldIndex],n[a.fieldIndex]);if(0!==s)return s*(a.sortRule?.sortType===lC.DESC?-1:1)}return 0}}getSort(t,e){const i=this;return t.sortByIndicator?(r,o)=>{const n=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?wS(n(r,t.query),n(o,t.query)):wS(n(t.query,r),n(t.query,o))}:t.sortBy?function(t){let e;const i={},r={};for(let o=0;o<t.length;o++)e=t[o],i[e]=o,"string"==typeof e&&(r[e.toLowerCase()]=o);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:wS(t,e)}}(t.sortBy):t.sortType?CS:t.sortFunc?t.sortFunc:wS}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)for(let o=0,n=t.totals?.column?.subTotalsDimensions?.length;o<n;o++){const n=t.totals.column.subTotalsDimensions[o],s=t.columns.indexOf(n);if(s>=0){const o=r.slice(0,s+1);o.push(t.colSubTotalLabel);const n=o.join(this.stringJoinChar);if(this.totalRecordsTree?.[e]?.[n])return void(this.tree[e][n]=this.totalRecordsTree?.[e]?.[n]);this.tree[e][n]||(this.tree[e][n]=[]);for(let r=0;r<this.indicatorKeys.length;r++){if(!this.tree[e][n][r]){const t=this.getAggregatorRule(this.indicatorKeys[r]);this.tree[e][n][r]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[r],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[r]))?.format)}this.tree[e][n][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]=[]);for(let o=0;o<this.indicatorKeys.length;o++){if(!this.tree[e][r][o]){const t=this.getAggregatorRule(this.indicatorKeys[o]);this.tree[e][r][o]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[o],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[o]))?.format)}this.tree[e][r][o].push(t.tree[e]?.[i]?.[o])}}};Object.keys(t.tree).forEach((r=>{const o=r.split(this.stringJoinChar);Object.keys(t.tree[r]).forEach((n=>{if(t.totals?.row?.subTotalsDimensions)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=o.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][n]||(this.tree[s][n]=[]);for(let e=0;e<this.indicatorKeys.length;e++){if(!this.tree[s][n][e]){const t=this.getAggregatorRule(this.indicatorKeys[e]);this.tree[s][n][e]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[e],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)}this.tree[s][n][e].push(t.tree[r]?.[n]?.[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][n]||(this.tree[i][n]=[]);for(let e=0;e<this.indicatorKeys.length;e++){if(!this.tree[i][n][e]){const t=this.getAggregatorRule(this.indicatorKeys[e]);this.tree[i][n][e]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[e],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)}this.tree[i][n][e].push(t.tree[r]?.[n]?.[e])}}i(r,n)}))})),e.forEach((e=>{Object.keys(t.tree[e]).forEach((t=>{i(e,t)}))}))}}ArrToTree1(t,e,i,r,o){const n=[],s=this.stringJoinChar,a=new Map;function l(t){const r=[];let o;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),o?o.children.push(d):n.push(d)),o=d}))}return t.forEach((t=>l(t))),r&&l([o]),n}ArrToTree(t,e,i,r,o,n,s,a,l){let h=[];const c=this.stringJoinChar,d=new Map;if(t?.length?t.forEach((t=>function(t){const o=[];let n;t.forEach(((a,u)=>{o.push(a);const g=o.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 o={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(o),t=o.children??[]}d.set(g,p),n?r[u-1]&&!l?n.children.splice(n.children.length-1,0,p):n.children.push(p):h.push(p)}n=p}))}(t))):i&&(h=i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey}))),o&&t?.length){const t={value:n,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]=tE(this.collectedValues[t],this.dataConfig.dimensionSortArray):this.cacheCollectedValues[t]=this.collectedValues[t])}changeTreeNodeValue(t=[],e=[],i,r){const o=this.indicatorKeys.indexOf(i);let n,s;n="string"==typeof t?t:t.join(this.stringJoinChar),s="string"==typeof e?e:e.join(this.stringJoinChar),this.changedTree[n]?.[s]?this.changedTree[n][s][o]=r:this.changedTree[n]?(this.changedTree[n][s]=[],this.changedTree[n][s][o]=r):(this.changedTree[n]={},this.changedTree[n][s]=[],this.changedTree[n][s][o]=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,o=this.records.length;r<o;r++){const o=this.records[r];o[t]===e&&(o[t]=i)}else for(const r in this.records)for(let o=0,n=this.records[r].length;o<n;o++){const n=this.records[r][o];n[t]===e&&(n[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 tE(t,e){return t.sort(((t,i)=>{const r=e.indexOf(t),o=e.indexOf(i);return r<o?-1:r>o?1:0}))}class eE extends hs{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=et(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 iE=Object.freeze({__proto__:null,Arc:class extends Dl{constructor(t){const e=et(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:C_,Circle:class extends $s{constructor(t){const e=et(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:eE,Group:class extends hs{constructor(t){const e=et(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 eE{constructor(t){t.flexWrap="nowrap",super(t)}},Icon:class extends Sl{svg;iconName;cache;constructor(t){let e;if(tt(t.iconName)){e=jA()[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=et(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 Sl{constructor(t){t.src&&(t.image=t.src),"circle"===t.shape&&(t.cornerRadius=t.width/2);const e=et(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:dl,Radio:w_,Rect:class extends pl{constructor(t){const e=et(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 xv{constructor(t){const e=et(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 ta{constructor(t){t.textBaseline||(t.textBaseline="top");const e=et(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 rE(t){const e={seqId:0},i={isPivotChart:!0};let r,o,n,s;t.columnTree&&(!1!==t.indicatorsAsCol&&(n=CH(t.columnTree,t.indicators)),r=new uH(t.columnTree??[],e)),t.rowTree&&(!1===t.indicatorsAsCol&&(s=CH(t.rowTree,t.indicators)),o=new uH(t.rowTree??[],e));const a=o.dimensionKeys?.count?o.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 o=0,n=t.indicators?.length;o<n;o++)if("string"!=typeof t.indicators[o]&&t.indicators[o].chartSpec)if(!1===t.indicatorsAsCol){const n=t.indicators[o];if(r[n.indicatorKey]={by:i,range:!0,sumBy:!1!==n.chartSpec?.stack&&e.concat(n.chartSpec?.xField)},n.chartSpec.series)n.chartSpec.series.forEach((t=>{const o="string"==typeof t.xField?t.xField:t.xField[0];r[o]={by:e,type:"horizontal"!==t.direction?"xField":void 0,range:"horizontal"===t.direction,sortBy:"horizontal"!==t.direction?t?.data?.fields?.[o]?.domain??n.chartSpec?.data?.fields?.[o]?.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??n.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof n.chartSpec.xField?n.chartSpec.xField:n.chartSpec.xField[0];r[s]={by:e,type:"horizontal"!==n.chartSpec.direction?"xField":void 0,range:"horizontal"===n.chartSpec.direction,sortBy:"horizontal"!==n.chartSpec.direction?n.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=n.chartSpec.yField;r[a]={by:i,range:"horizontal"!==t.indicators[o].chartSpec.direction,sumBy:!1!==n.chartSpec.stack&&e.concat(n.chartSpec?.xField),sortBy:"horizontal"===n.chartSpec.direction?n.chartSpec?.data?.fields?.[a]?.domain:void 0}}}else{const n=t.indicators[o];if(r[n.indicatorKey]={by:e,range:!0,sumBy:!1!==n.chartSpec?.stack&&i.concat(n.chartSpec?.yField)},n.chartSpec.series)n.chartSpec.series.forEach((t=>{const o="string"==typeof t.yField?t.yField:t.yField[0];r[o]={by:i,type:"horizontal"===t.direction?"yField":void 0,range:"horizontal"!==t.direction,sortBy:"horizontal"===t.direction?t?.data?.fields?.[o]?.domain??n.chartSpec?.data?.fields?.[o]?.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??n.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof n.chartSpec.yField?n.chartSpec.yField:n.chartSpec.yField[0];r[s]={by:i,type:"horizontal"===n.chartSpec.direction?"yField":void 0,range:"horizontal"!==n.chartSpec.direction,sortBy:"horizontal"===n.chartSpec.direction?n.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=n.chartSpec.xField;r[a]={by:e,range:"horizontal"===t.indicators[o].chartSpec.direction,sumBy:!1!==n.chartSpec.stack&&i.concat(n.chartSpec?.yField),sortBy:"horizontal"!==n.chartSpec.direction?n.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:aC.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:aC.RECORD})}else{const r=!1===t.indicatorsAsCol?i.chartSpec.yField:i.chartSpec.xField;e.push({indicatorKey:i.indicatorKey,field:r??i.indicatorKey,aggregationType:aC.RECORD})}})),e}(t);return{dataset:new QH(i,a,l,h,t.indicators,t.indicatorsAsCol??!0,t.records,void 0,n||t.columnTree,s||t.rowTree,!0),columnDimensionTree:r,rowDimensionTree:o,layoutNodeId:e}}function oE(t,e,i,r,o,n){if(et(t))for(let l=0;l<t.length;l++)if(n?n(t[l],e):(s=t[l],a=e,JSON.stringify(s)===JSON.stringify(a)))return o.getCellHeaderPaths(i,r);var s,a}iC();t.CustomLayout=iE,t.DataStatistics=OH,t.ListTable=class extends PH{showHeader=!0;editorManager;constructor(t,e){"node"===IC.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?eS(e.columns):e.header?eS(e.header):[],this.internalProps.headerHelper.setTableColumnsEditor(),this.showHeader=e.showHeader??!0,this.transpose=e.transpose??!1,"node"!==IC.mode&&(this.editorManager=new $H(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.dataSource?wA(this,e.dataSource):e.records?this.setRecords(e.records,{sortState:i.sortState}):this.setRecords([]),e.title&&(i.title=new KH(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(xw.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=eS(t),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:o,fieldFormat:n}=r.internalProps.layoutMap.getBody(t,e);return r.getFieldData(n||o,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?eS(t.columns):t.header?eS(t.header):[],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?wA(this,t.dataSource):t.records?this.setRecords(t.records,{sortState:t.sortState}):(this._resetFrozenColCount(),this.scenegraph.createSceneGraph(),this.render()),t.title&&(e.title=new KH(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(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 UH(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 o=r.getRecordShowIndexByCell(r.transpose?e-r.internalProps.layoutMap.leftRowSeriesNumberColumnCount:e,i);return r.internalProps.dataSource.getField(o,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 o=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource.getRawField(o,t,e,i,this)}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),o=this.internalProps.layoutMap.moveHeaderPosition(t,e);return o?("column"===o.moveType?(this.colWidthsMap.exchangeOrder(i.start.col,i.end.col-i.start.col+1,r.start.col,r.end.col-r.start.col+1,o.targetIndex),this.transpose||(this.colWidthsLimit={},this.setMinMaxLimitWidth())):o.targetIndex>o.sourceIndex?this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex+o.sourceSize-o.targetSize,o.targetSize,o.targetIndex):this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex,o.targetSize,o.targetIndex),o):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 o=!0;for(const e in t)if(r[e]!==t[e]){o=!1;break}o&&(i=e)}if(Y(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 o;return Y(e)&&(o=i.getRecordStartRowByRecordIndex(e)),this.transpose?{start:{row:t.start.row,col:Y(o)?o+t.start.col:void 0},end:{row:t.end.row,col:Y(o)?o+t.end.col:void 0}}:{start:{col:t.start.col,row:Y(o)?o+t.start.row:void 0},end:{col:t.end.col,row:Y(o)?o+t.end.row:void 0}}}return null}getHierarchyState(t,e){if(!this.getBodyColumnDefine(t,e).tree)return sC.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===sC.expand)this._refreshHierarchyState(t,e),this.fireListeners(xw.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.collapse});else if(i===sC.collapse){const i=this.getCellOriginRecord(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(xw.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.expand,originData:i})}}_refreshHierarchyState(t,e){let i=!1,r=!1;const o=this.internalProps.layoutMap.checkHasChart();o&&(this.autoFillWidth&&(i=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(r=this.getAllRowsHeight()<=this.tableNoFrameHeight));const n=this.getRecordShowIndexByCell(t,e),s=this.dataSource.toggleHierarchyState(n,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),o&&(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 o=t[r];if((i&&i===o.fieldKey||!i&&o.field===e)&&o.sort&&"function"==typeof o.sort)return o.sort;if(o.columns){const t=this._getSortFuncFromHeaderOption(o.columns,e,i);if(t)return t}}}updateSortState(t,e=!0){if(t)this.internalProps.sortState=t;else if(this.internalProps.sortState)if(Array.isArray(this.internalProps.sortState))for(let t=0;t<this.internalProps.sortState.length;t++){this.internalProps.sortState[t].order="normal"}else this.internalProps.sortState.order="normal";let i,r;if(Array.isArray(this.internalProps.sortState)?({order:i,field:r}=this.internalProps.sortState?.[0]):({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())}this.stateManager.updateSortState(t)}updateFilterRules(t){this.scenegraph.clearCells(),this.sortState?(this.dataSource.updateFilterRulesForSorted(t),_A(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),Y(t)?this.stateManager.checkedState.map((e=>e[t])):this.stateManager.checkedState}getCellCheckboxState(t,e){const i=this.getBodyColumnDefine(t,e),r=i?.field,o=this.getCellType(t,e);if(Y(r)&&"checkbox"===o){const i=this.dataSource.getIndexKey(this.getRecordShowIndexByCell(t,e));return this.stateManager.checkedState[i]?.[r]}}getRadioState(t){return Y(t)?this.stateManager.radioState[t]:this.stateManager.radioState}getCellRadioState(t,e){return function(t,e,i){const r=i.getBodyColumnDefine(t,e),o=r?.field,n=i.getCellType(t,e);if(Y(o)&&"checkbox"===n){const r=i.dataSource.getIndexKey(i.getRecordShowIndexByCell(t,e)),n=i.stateManager.radioState?.[o];if(ot(n)){if(n===r)return!0}else if(q(n)){const t=n[r];if(ot(t))return t}}return!1}(t,e,this)}setCellCheckboxState(t,e,i){!function(t,e,i,r){const o=r.scenegraph.getCell(t,e),n=o?.getChildByName("checkbox");if(!n)return;const{checked:s,indeterminate:a}=n.attribute;a?(i||n._handlePointerUp(),n._handlePointerUp()):s?i||n._handlePointerUp():i&&n._handlePointerUp()}(t,e,i,this)}setCellRadioState(t,e,i){!function(t,e,i,r){const o=r.scenegraph.getCell(t,e);if(o)if(ot(i)){const t=o.getChildAt(i);t?._handlePointerUp()}else{const t=o.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(CA(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.headerObjects.find((t=>t&&t.field===e));!1!==r.define.sort&&this.dataSource.sort(r.field,t,i??qC)}}this.refreshRowColCount()}else CA(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 XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),this.render(),Y(r.col)&&Y(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 o=this.getRecordShowIndexByCell(e,i);this.dataSource.setRecord(r,o),this._refreshHierarchyState(e,i)}startEditCell(t,e){if(Y(t)&&Y(e))this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Y(t)&&Y(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?LH(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 Y(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){const r=this.getRecordShowIndexByCell(t,e),{field:o}=this.internalProps.layoutMap.getBody(t,e),n=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,o,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=yT(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=gB(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:n,currentValue:s,changedValue:this.getCellOriginValue(t,e)}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let o=t,n=e;for(let s=0;s<i.length&&!(e+s>this.rowCount-1);s++){n=e+s;const a=i[s];let l=t;for(let i=0;i<a.length&&!(t+i>this.colCount-1);i++)if(l=t+i,r&&this.isHasEditorDefine(t+i,e+s)||!1===r){const r=a[i],o=this.getRecordShowIndexByCell(t+i,e+s),{field:n}=this.internalProps.layoutMap.getBody(t+i,e+s),l=this.getCellRawValue(t+i,e+s),h=this.getCellOriginValue(t+i,e+s);this.isHeader(t+i,e+s)?this.internalProps.layoutMap.updateColumnTitle(t+i,e+s,r):this.dataSource.changeFieldValue(r,o,n,t+i,e+s,this),this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t+i,row:e+s,rawValue:l,currentValue:h,changedValue:this.getCellOriginValue(t+i,e+s)})}o=Math.max(o,l)}const s=this.getCellRange(t,e),a=this.getCellRange(o,n),l=this.internalProps.layoutMap.getAggregatorsByCellRange(s.start.col,s.start.row,a.end.col,a.end.row);if(l){for(let t=0;t<l?.length;t++)l[t].recalculate();const t=this.internalProps.layoutMap.getAggregatorCellAddress(s.start.col,s.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=s.start.col;t<=a.end.col;t++)for(let e=s.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 for(let e=t;e<=a.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=yT(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<=a.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),o=gB(r,0,this.colCount-1,this);t.push(r),i.push(o-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}addRecord(t,e){if(this.sortState)this.dataSource.addRecordForSorted(t),_A(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 o=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:t,currentPage:n}=this.pagination,s=t*(n||0)+t;if(e<s)if(e<s-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const n=e-(s-t)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=n;e<o;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=n;e<Math.min(o,n+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),_A(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 o=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:n,currentPage:s}=this.pagination,a=n*(s||0)+n;if(e<a)if(e<a-n)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const s=e-(a-n)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=s;e<o;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(o,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 o=e+i;o<e+i+(Array.isArray(t)?t.length:1);o++)this.transpose?r.push({col:o,row:0}):r.push({col:0,row:o});this.transpose?this.scenegraph.updateCol([],r,[]):this.scenegraph.updateRow([],r,[])}}}deleteRecords(t){if(t?.length>0)if(this.sortState)this.dataSource.deleteRecordsForSorted(t),_A(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,o=e.sort(((t,e)=>t-e)),n=o[0];if(this.pagination){const{perPageCount:t,currentPage:e}=this.pagination,o=t*(e||0)+t;if(n<o)if(n<o-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const e=[],s=[];for(let i=n-(o-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<o.length;e++){const i=o[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),_A(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,o=[];for(let e=0;e<r.length;e++){const n=r[e];if(n<i&&n>=i-t){const e=n-(i-t)+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);o.push(e)}}if(o.length>=1){const t=[];for(let e=0;e<o.length;e++){const i=o[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 o={col:e[t].col,aggregateValue:null};if(o.aggregateValue=[],Array.isArray(r))for(let t=0;t<r.length;t++)o.aggregateValue.push({aggregationType:r[t].type,value:r[t].value()});else o.aggregateValue.push({aggregationType:r.type,value:r.value()});i.push(o)}}return i}isAggregation(t,e){return this.internalProps.layoutMap.isAggregation(t,e)}},t.PivotChart=class extends PH{layoutNodeId={seqId:0};pivotSortState;dataset;_selectedDataItemsInChart=[];_selectedDimensionInChart=[];_chartEventMap={};_axes;constructor(t,e){let i,r;"node"===IC.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=mt(e.columns),this.internalProps.rows=mt(e.rows),this.internalProps.indicators=eS(e.indicators),this.internalProps.columnTree=!e.indicatorsAsCol||e.columns?.length||e.columnTree?mt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?mt(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=et(e.axes)?e.axes:[],e.columnTree&&(!1!==e.indicatorsAsCol&&(this.internalProps.columnTree=CH(this.internalProps.columnTree,e.indicators)),i=new uH(this.internalProps.columnTree??[],this.layoutNodeId)),e.rowTree&&(!1===e.indicatorsAsCol&&(this.internalProps.rowTree=CH(this.internalProps.rowTree,e.indicators)),r=new uH(this.internalProps.rowTree??[],this.layoutNodeId));const o=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],n=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(n,o),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new QH(this.internalProps.dataConfig,o,n,s,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&WH(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=CH(this.dataset.colHeaderTree,e.indicators)),e.rowTree||!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,e.indicators)),i=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId),this.internalProps.layoutMap=new qH(this,this.dataset,i,r),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new KH(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(xw.INITIALIZED,null)}),0)}static get EVENT_TYPE(){return WM}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=mt(t.columns),this.internalProps.rows=mt(t.rows),this.internalProps.indicators=t.indicators?.length?eS(t.indicators):[],this.internalProps.columnTree=!t.indicatorsAsCol||t.columns?.length||t.columnTree?mt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?mt(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=et(t.axes)?t.axes:[],t.columnTree&&(!1!==t.indicatorsAsCol&&(this.internalProps.columnTree=CH(this.internalProps.columnTree,t.indicators)),i=new uH(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(!1===t.indicatorsAsCol&&(this.internalProps.rowTree=CH(this.internalProps.rowTree,t.indicators)),r=new uH(this.internalProps.rowTree??[],this.layoutNodeId));const o=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():t.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],n=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(n,o),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new QH(this.internalProps.dataConfig,o,n,s,this.internalProps.indicators,t.indicatorsAsCol??!0,t.records??this.internalProps.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&WH(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=CH(this.dataset.colHeaderTree,t.indicators)),t.rowTree||!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,t.indicators)),i=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId),e.layoutMap=new qH(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 KH(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(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),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const{fieldFormat:r}=this.internalProps.layoutMap.getBody(t,e),o=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t),s=this.records[o]?.[n];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),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const r=this.getBodyIndexByRow(e),o=this.getBodyIndexByCol(t),n=this.records[r]?.[o];return n}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),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(n,o,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i).records}}getCellRawRecord(t,e){return this.getCellOriginRecord(t,e)}updateSortRules(t){this.internalProps.dataConfig?this.internalProps.dataConfig.sortRules=t:this.internalProps.dataConfig={sortRules:t},this.dataset.updateSortRules(t),this.internalProps.layoutMap.resetHeaderTree(),this.scenegraph.clearCells(),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),this.render()}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:o}=this.pivotSortState[t];if(gw(i,e,r))return o}}_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!==Ww)),e=e.filter((t=>t!==Ww));const i=this.internalProps.indicators,r={};for(let o=0,n=i?.length;o<n;o++)if("string"!=typeof i[o]&&i[o].chartSpec){if("pie"===i[o].chartSpec?.type||"rose"===i[o].chartSpec?.type||"radar"===i[o].chartSpec?.type||"gauge"===i[o].chartSpec?.type||"wordCloud"===i[o].chartSpec?.type)continue;const n=i[o],s=n.chartSpec;if(!1===this.options.indicatorsAsCol)if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[n.indicatorKey]={by:e,range:!0,sumBy:s?.stack&&t.concat(s?.xField)},s.series)s.series.forEach((i=>{const o="string"==typeof i.xField?i.xField:i.xField[0];r[o]={by:t,type:"horizontal"!==i.direction?"xField":void 0,range:"scatter"===i.type||"horizontal"===i.direction,sortBy:"horizontal"!==i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0};const n=i.yField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[n]={by:e,range:"scatter"===i.type||"horizontal"!==i.direction,sumBy:i.stack&&t.concat(i?.xField),sortBy:"horizontal"===i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0,extendRange:AA(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 o=s.yField;r[o]={by:e,range:"horizontal"!==s.direction,sumBy:s.stack&&t.concat(s?.xField),sortBy:"horizontal"===s.direction?s?.data?.fields?.[o]?.domain:void 0,extendRange:AA(s.markLine)}}else{const n=i[o];if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[n.indicatorKey]={by:t,range:!0,sumBy:s?.stack&&e.concat(s?.yField)},s.series)s.series.forEach((i=>{const o="string"==typeof i.yField?i.yField:i.yField[0];r[o]={by:e,type:"horizontal"===i.direction?"yField":void 0,range:"scatter"===i.type||"horizontal"!==i.direction,sortBy:"horizontal"===i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0};const n=i.xField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[n]={by:t,range:"scatter"===i.type||"horizontal"===i.direction,sumBy:i.stack&&e.concat(i?.yField),sortBy:"horizontal"!==i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0,extendRange:AA(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 o=s.xField;r[o]={by:t,range:"scatter"===s.type||"horizontal"===s.direction,sumBy:s.stack&&e.concat(s?.yField),sortBy:"horizontal"!==s.direction?s?.data?.fields?.[o]?.domain:void 0,extendRange:AA(s.markLine)}}}}return r}_generateAggregationRules(){const t=[];return this.internalProps.indicators?.forEach((e=>{if("string"==typeof e)t.push({indicatorKey:e,field:e,aggregationType:aC.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:aC.RECORD})}else{const i=!1===this.options.indicatorsAsCol?e.chartSpec.yField:e.chartSpec.xField;t.push({indicatorKey:e.indicatorKey,field:i??e.indicatorKey,aggregationType:aC.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),bM(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 o=e.internalProps.layoutMap.getChartAxes(i,r);t.setAttribute("axes",o);const n=t.attribute.spec;n.axes=o,t.setAttribute("spec",n)}}))}))}yM(t.rowHeaderGroup,t.table),yM(t.colHeaderGroup,t.table),yM(t.rightFrozenGroup,t.table),yM(t.bottomFrozenGroup,t.table)}(this.scenegraph),this.render()}clearChartCacheImage(t,e){ot(t)&&ot(e)?function(t,e,i){i.getCell(t,e).children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.addUpdateBoundTag())}))}(t,e,this.scenegraph):bM(this.scenegraph)}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={},o=[];this.dataset.dataConfig.aggregationRules.forEach((t=>{if("string"==typeof t.field)r[t.field]=t.indicatorKey,o.push(t.field);else for(let e=0;e<t.field.length;e++)r[t.field[e]]=t.indicatorKey,o.push(t.field[e])}));for(const n in t)this.dataset.rows.indexOf(n)>=0&&e.push({dimensionKey:n,value:t[n]}),this.dataset.columns.indexOf(n)>=0&&i.push({dimensionKey:n,value:t[n]}),o.indexOf(n)>=0&&(this.dataset.indicatorsAsCol?i.push({indicatorKey:r[n]}):e.push({indicatorKey:r[n]}));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 o=i?.getChildren()?.[0];if(o.attribute.chartInstance){r=o.attribute.chartInstance;const{dataId:t,data:e,axes:i,spec:n}=o.attribute,s=o.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-o.getRootNode().table.scrollLeft,x2:s.x2-o.getRootNode().table.scrollLeft,y1:s.y1-o.getRootNode().table.scrollTop,y2:s.y2-o.getRootNode().table.scrollTop},!1,!1),"string"==typeof t)r.updateDataSync(t,e??[]);else{const i=[];for(const o in t){const s=t[o],a=n.series.find((t=>t?.data?.id===o));i.push({id:o,values:s?e?.filter((t=>t.hasOwnProperty(s)))??[]:e??[],fields:a?.data?.fields}),r.updateFullDataSync||r.updateDataSync(o,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&&et(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 o,n;this.dataset.setRecords(t),o=i.columnTree?r.layoutMap.columnDimensionTree:new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),n=i.rowTree?r.layoutMap.rowDimensionTree:new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId),r.layoutMap=new qH(this,this.dataset,o,n),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 PH{layoutNodeId={seqId:0};pivotSortState;editorManager;dataset;flatDataToObjects;constructor(t,e){if("node"===IC.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=mt(e.columns),this.internalProps.rows=mt(e.rows),this.internalProps.indicators=eS(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?mt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?mt(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=mt(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 uH(this.internalProps.columnTree??[],this.layoutNodeId),i=new uH(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0);this.internalProps.layoutMap=new qH(this,null,e,i),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new JH({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=yH(this,e),{rowKeys:i,columnKeys:r,indicatorKeys:o}=t;let{columnDimensionTree:n,rowDimensionTree:s}=t;this.dataset=new QH(this.internalProps.dataConfig,i,r,o,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,e.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),e.columnTree||(!1!==e.indicatorsAsCol&&(this.dataset.colHeaderTree=CH(this.dataset.colHeaderTree,e.indicators)),n=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId)),e.rowTree||(!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,e.indicators)),s=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),this.internalProps.layoutMap=new qH(this,this.dataset,n,s)}this._changePivotSortStateBySortRules(),(e.pivotSortState?.length??0)>0&&(this.pivotSortState=[],this.pivotSortState=e.pivotSortState),"node"!==IC.mode&&(this.editorManager=new $H(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.stateManager.initCheckedState(t),this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new KH(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(xw.INITIALIZED,null)}),0)}}static get EVENT_TYPE(){return DM}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=mt(t.columns),this.internalProps.rows=mt(t.rows),this.internalProps.indicators=t.indicators?.length?eS(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?mt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?mt(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=mt(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,o;t.columnTree&&(r=new uH(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(o=new uH(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new qH(this,null,r,o),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new JH({rows:e.layoutMap.fullRowDimensionKeys,columns:e.layoutMap.colDimensionKeys,indicators:e.layoutMap.indicatorKeys,indicatorsAsCol:e.layoutMap.indicatorsAsCol,indicatorDimensionKey:e.layoutMap.indicatorDimensionKey},i))}else{const r=yH(this,t),{rowKeys:o,columnKeys:n,indicatorKeys:s}=r;let{columnDimensionTree:a,rowDimensionTree:l}=r;this.dataset=new QH(e.dataConfig,o,n,s,this.internalProps.indicators,t.indicatorsAsCol??!0,i,t.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),t.columnTree||(!1!==t.indicatorsAsCol&&(this.dataset.colHeaderTree=CH(this.dataset.colHeaderTree,t.indicators)),a=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId)),t.rowTree||(!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,t.indicators)),l=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new qH(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 KH(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(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 o;const n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(o={position:"col",index:e}),t.indicatorKey??t.value))),s=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(o={position:"row",index:e}),t.indicatorKey??t.value))),a=this.dataset.getAggregator(s,n,this.internalProps.layoutMap.getIndicatorKey(e,i),!0,o);if(a.records&&a.records.length>=1)return a.records[0][t]}}else if(this.flatDataToObjects){const r=this.internalProps.layoutMap.getCellHeaderPaths(e,i),o=r.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=r.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),s=this.flatDataToObjects.getTreeNode(n,o,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),o=this.getBodyIndexByCol(t),n=this.records[r]?.[o];if("function"==typeof i){return i(n,t,e,this)}return n}if(this.dataset){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e);let r;const o=i.colHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"col",index:e}),t.indicatorKey??t.value))),n=i.rowHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey),{fieldFormat:s}=this.internalProps.layoutMap.getBody(t,e);return"function"==typeof s?s(n?.value,t,e,this):n?.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),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return n?.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),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return n?.value}}getCellOriginRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return n?.record}}}getCellRawRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return n?.record}}}updateSortRules(t){this.internalProps.dataConfig?this.internalProps.dataConfig.sortRules=t:this.internalProps.dataConfig={sortRules:t},this.dataset.updateSortRules(t),this._changePivotSortStateBySortRules(),this.internalProps.layoutMap.resetHeaderTree(),this.scenegraph.clearCells(),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),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 o={isPivotCorner:!0,dimensionKey:i.value,value:i.value};r.push(o)}else r=this.isColumnHeader(t,e)?this.getCellHeaderPaths(t,e).colHeaderPaths:this.getCellHeaderPaths(t,e).rowHeaderPaths;const o=r[r.length-1].indicatorKey,n=this.getHeaderDefine(t,e);if(n.sort){if(this.dataset.sortRules){for(let t=this.dataset.sortRules.length-1;t>=0;t--){const e=this.dataset.sortRules[t];(n.dimensionKey&&e.sortField===n.dimensionKey||o&&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)}o?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:lC[i],sortByIndicator:o,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}):this.dataset.sortRules.push({sortField:n.dimensionKey,sortType:lC[i]})}else this.dataset.sortRules=o?[{sortField:this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1],sortType:lC[i],sortByIndicator:o,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}]:[{sortField:n.dimensionKey,sortType:lC[i]}];this.updateSortRules(this.dataset.sortRules)}}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,o=this.getCellAddressByHeaderPaths(r),n=e.order;if(o&&gw(i,o.col,o.row))return n}}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),o=this.internalProps.layoutMap.moveHeaderPosition(t,e);if(o){if("column"===o.moveType){if(this.internalProps.recordsIsTwoDimensionalArray)for(let t=0;t<this.internalProps.records.length;t++){const e=this.internalProps.records[t].splice(o.sourceIndex-this.rowHeaderLevelCount,o.sourceSize);e.unshift(o.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,o.targetIndex),this.setMinMaxLimitWidth()}else if("row"===o.moveType){if(this.internalProps.recordsIsTwoDimensionalArray){const t=this.internalProps.records.splice(o.sourceIndex-this.columnHeaderLevelCount,o.sourceSize);t.unshift(o.targetIndex-this.columnHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records,t)}o.targetIndex>o.sourceIndex?this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex+o.sourceSize-o.targetSize,o.targetSize,o.targetIndex):this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex,o.targetSize,o.targetIndex)}return o}return null}toggleHierarchyState(t,e){const i=this.getHierarchyState(t,e);if(i===sC.expand)this._refreshHierarchyState(t,e),this.fireListeners(DM.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.collapse});else if(i===sC.collapse){const i=this.internalProps.layoutMap.getHeadNode(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(DM.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.expand,originData:i})}}_refreshHierarchyState(t,e,i){let r=!1,o=!1;this.stateManager.updateHoverIcon(t,e,void 0,void 0);const n=this.internalProps.layoutMap.checkHasChart();n&&(this.autoFillWidth&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(o=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),n&&(this.autoFillWidth&&!r&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&!o&&(o=this.getAllRowsHeight()<=this.tableNoFrameHeight),("adaptive"===this.widthMode||r||"adaptive"===this.heightMode||o)&&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 JH({rows:r.layoutMap.fullRowDimensionKeys,columns:r.layoutMap.colDimensionKeys,indicators:r.layoutMap.indicatorKeys,indicatorsAsCol:r.layoutMap.indicatorsAsCol,indicatorDimensionKey:r.layoutMap.indicatorDimensionKey},t));else{let e,o;this.dataset.setRecords(t),e=i.columnTree?r.layoutMap.columnDimensionTree:new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),o=i.rowTree?r.layoutMap.rowDimensionTree:new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0),r.layoutMap=new qH(this,this.dataset,e,o),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()}startEditCell(t,e){if(Y(t)&&Y(e))this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Y(t)&&Y(e)&&this.editorManager.startEditCell(t,e)}}completeEditCell(){this.editorManager.completeEdit()}getEditor(t,e){let i;if(this.isHeader(t,e)&&!this.isCornerHeader(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?LH(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 Y(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){let r=i;const o=this.getCellOriginValue(t,e),n=this.getCellRawValue(t,e);"number"==typeof n&&ZC(i)&&(r=parseFloat(i)),this._changeCellValueToDataSet(t,e,o,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=yT(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=gB(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:n,currentValue:o,changedValue:r}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let o=t,n=e;for(let s=0;s<i.length&&!(e+s>this.rowCount-1);s++){n=e+s;const a=i[s];let l=t;for(let i=0;i<a.length&&!(t+i>this.colCount-1);i++)if(l=t+i,r&&this.isHasEditorDefine(t+i,e+s)||!1===r){const r=a[i];let o=r;const n=this.getCellOriginValue(t+i,e+s),l=this.getCellRawValue(t+i,e+s);"number"==typeof l&&ZC(r)&&(o=parseFloat(r)),this._changeCellValueToDataSet(t+i,e+s,n,o),this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t+i,row:e+s,rawValue:l,currentValue:n,changedValue:this.getCellOriginValue(t+i,e+s)})}o=Math.max(o,l)}const s=this.getCellRange(t,e),a=this.getCellRange(o,n);for(let t=s.start.col;t<=a.end.col;t++)for(let e=s.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 for(let e=t;e<=a.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=yT(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<=a.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),o=gB(r,0,this.colCount-1,this);t.push(r),i.push(o-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}_changeCellValueToDataSet(t,e,i,r){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),o=this.getBodyIndexByCol(t);this.records[i][o]=r}else if(this.dataset){const o=this.internalProps.layoutMap.getCellHeaderPaths(t,e);if(this.isHeader(t,e))this.internalProps.layoutMap.changeTreeNodeTitle(t,e,r),!this.isCornerHeader(t,e)&&this.dataset.changeRecordFieldValue(o.colHeaderPaths?.length?o.colHeaderPaths[o.colHeaderPaths.length-1].indicatorKey??o.colHeaderPaths[o.colHeaderPaths.length-1].dimensionKey:o.rowHeaderPaths[o.rowHeaderPaths.length-1].indicatorKey??o.rowHeaderPaths[o.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=o.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=o.rowHeaderPaths.map((t=>t.indicatorKey??t.value));this.dataset.changeTreeNodeValue(this.internalProps.layoutMap.indicatorsAsCol?n:n.slice(0,-1),this.internalProps.layoutMap.indicatorsAsCol?i.slice(0,-1):i,this.internalProps.layoutMap.getIndicatorKey(t,e),r)}}else if(this.flatDataToObjects){const o=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(o.colHeaderPaths?.length?o.colHeaderPaths[o.colHeaderPaths.length-1].indicatorKey??o.colHeaderPaths[o.colHeaderPaths.length-1].dimensionKey:o.rowHeaderPaths[o.rowHeaderPaths.length-1].indicatorKey??o.rowHeaderPaths[o.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=o.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=o.rowHeaderPaths.map((t=>t.indicatorKey??t.value));this.flatDataToObjects.changeTreeNodeValue(n,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=uC,t.VArc=function(t){return hh.arc(t?t.attribute:{})},t.VArea=function(t){return hh.area(t?t.attribute:{})},t.VCheckBox=function(t){return new C_(t?t.attribute:{})},t.VCircle=function(t){return hh.circle(t?t.attribute:{})},t.VGlyph=function(t){return hh.glyph(t?t.attribute:{})},t.VGroup=function(t){return hh.group(t?t.attribute:{})},t.VImage=function(t){return hh.image(t?t.attribute:{})},t.VLine=function(t){return hh.line(t?t.attribute:{})},t.VPath=function(t){return hh.path(t?t.attribute:{})},t.VPolygon=function(t){return hh.polygon(t?t.attribute:{})},t.VRadio=function(t){return new w_(t?t.attribute:{})},t.VRect=function(t){return hh.rect(t?t.attribute:{})},t.VSymbol=function(t){return hh.symbol(t?t.attribute:{})},t.VTag=function(t){return new xv(t?t.attribute:{})},t.VText=function(t){return hh.text(t?t.attribute:{})},t.clearGlobal=function(){FH()},t.core=HH,t.data=TS,t.getDataCellPath=function(t,e,i){const r=rE(t);let o=r.columnDimensionTree,n=r.rowDimensionTree,s=!1,a=!1;t.columnTree&&t.indicatorsAsCol&&!o.dimensionKeys.contain(Ww)&&(s=!0),t.rowTree&&(t.indicatorsAsCol||n.dimensionKeys.contain(Ww)||(a=!0));const{dataset:l,layoutNodeId:h}=r,c={options:t,layoutNodeId:h,internalProps:t,isPivotChart:()=>!0,pivotChartAxes:[],_selectedDataItemsInChart:[],_getActiveChartInstance:()=>({updateState:()=>{}})};t.columnTree&&!s||(o=new uH(l.colHeaderTree??[],h)),t.rowTree&&!a||(n=new uH(l.rowHeaderTree??[],h));const d=new qH(c,l,o,n);for(let t=0;t<d.colCount;t++)for(let r=0;r<d.rowCount;r++){if(d.isHeader(t,r))continue;const o=d.getCellHeaderPaths(t,r),n=o.colHeaderPaths.map((t=>t.indicatorKey??t.value)),s=o.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),a=l.getAggregator(d.indicatorsAsCol?s:s.slice(0,-1),d.indicatorsAsCol?n.slice(0,-1):n,d.getIndicatorKey(t,r)),h=oE(a.value?a.value():void 0,e,t,r,d,i);if(h)return h}},t.getIcons=function(){return jA()},t.graphicUtil=Bu,t.jsx=function(t,e){const i=e||{},{key:r,name:o,id:n,attribute:s,stateProxy:a}=i,l=Rp(i,["key","name","id","attribute","stateProxy"]);let h=t;tt(t)&&(h=hh[t]);const c=[];for(var d=arguments.length,u=new Array(d>2?d-2:0),g=2;g<d;g++)u[g-2]=arguments[g];u.length&&Bp(1===u.length?u[0]:u,c);const p="Group"===h.name?new h(s):h(e);return function(t,e,i){let r,o=!1;switch(t.type){case"richtext":case"rich/image":break;case"rich/text":r=t.attribute||{},e[0]&&(r.text=e[0]);break;default:o=!0}o?(e.forEach((e=>{e&&t.add(e)})),Object.keys(i).forEach((e=>{const r=Ap[e];r&&t.on(r,i[e])}))):"richtext"===t.type&&(t.attribute.textConfig=e.map((t=>t.attribute)).filter((t=>t)))}(p,c,l),a&&(p.stateProxy=a),p},t.register=zH,t.renderChart=jB,t.restoreMeasureText=function(){iB="canvas",Xr.load(oB)},t.setCustomAlphabetCharSet=function(t){eB=t,nB.clear()},t.themes=rv,t.updateCell=RR,t.version="1.3.2-alpha.2"}));
15
+ ***************************************************************************** */function zB(t,e,i,r){var o,n=arguments.length,s=n<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--)(o=t[a])&&(s=(n<3?o(s):n>3?o(e,i,s):o(e,i))||s);return n>3&&s&&Object.defineProperty(e,i,s),s}const OB=[],DB=[];let WB=5,NB=!1;function GB(t){Y(t)&&(WB=t)}function jB(t){const{axes:e,dataId:i,data:r,spec:o}=t.attribute,{chartInstance:n}=t,s=t.getViewBox();s.x2<=s.x1&&(s.x2=s.x1+1),s.y2<=s.y1&&(s.y2=s.y1+1),n.updateViewBox({x1:0,x2:s.x2-s.x1,y1:0,y2:s.y2-s.y1},!1,!1);const a=n.getStage(),l=t.globalTransMatrix.clone(),h=t.stage.window.getViewBoxTransform();l.multiply(h.a,h.b,h.c,h.d,h.e,h.f),a.window.setViewBoxTransform&&a.window.setViewBoxTransform(l.a,l.b,l.c,l.d,l.e,l.f);const{table:c}=t.getRootNode();let d=!1;if(c.options.specFormat){const e=c.options.specFormat(t.attribute.spec);if(e.needFormatSpec&&e.spec){const t=e.spec;n.updateSpecSync(t),d=!0}}if(!d)if(e?.forEach(((t,e)=>{"band"===t.type?n.updateModelSpec({type:"axes",index:e},{domain:t.domain.slice(0)},!0):n.updateModelSpecSync({type:"axes",index:e},{min:t.range?.min??0,max:t.range?.max??0},!0)})),c.internalProps.layoutMap?.updateDataStateToActiveChartInstance?.(n),"string"==typeof i)n.updateDataSync(i,r??[]);else{const t=[];for(const e in i){const s=i[e],a=o.series.find((t=>t?.data?.id===e));t.push({id:e,values:s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[],fields:a?.data?.fields}),n.updateFullDataSync||n.updateDataSync(e,s?r?.filter((t=>t.hasOwnProperty(s)))??[]:r??[])}n.updateFullDataSync?.(t)}!function(t,e){const{viewWidth:i,viewHeight:r}=t;if(i<UB&&r<UB)return e.cacheCanvas=t.toCanvas(),void(e.isShareChartSpec||(e.chartInstance?.release(),e.chartInstance=null,e.setAttribute("chartInstance",null)));const o=Math.ceil(r/UB),n=Math.ceil(i/UB),s=[];for(let e=0;e<o;e++)for(let o=0;o<n;o++){const n=o*UB,a=e*UB,l=n+UB>i?i:n+UB,h=a+UB>r?r:a+UB,c=l-n,d=h-a,u=new fe;u.setValue(n,a,l,h);const g=t.toCanvas(!1,u);s.push({canvas:g,x:n,y:a,width:c,height:d})}e.cacheCanvas=s}(n.getStage(),t)}function VB(t){NB=!0,DB.length>0?requestAnimationFrame((()=>{const e=DB.splice(0,WB);OB.splice(0,WB),e.forEach((t=>{jB(t),t.addUpdateBoundTag()})),t.render(),VB(t)})):NB=!1}const UB=2e3;const KB=Symbol.for("ChartRender");let $B=class extends gh{type;numberType=aR;drawShape(t,e,i,r,o,n,s,a){const l=yo(t,n?.theme).group,{dataId:h,data:c,spec:d}=t.attribute;t.getViewBox();const{width:u=l.width,height:g=l.height}=t.attribute,{table:p}=t.getRootNode(),{active:f,cacheCanvas:m,activeChartInstance:b}=t;if(!f&&m)et(m)?m.forEach((t=>{const{x:i,y:r,width:o,height:n,canvas:s}=t;e.drawImage(s,i,r,o,n)})):e.drawImage(m,i,r,u,g);else if(b){if(p.options.specFormat){const e=p.options.specFormat(t.attribute.spec);if(e.needFormatSpec&&e.spec){const t=e.spec;return void b.updateSpecSync(t)}}const e=t.getViewBox();b.updateViewBox({x1:0,x2:e.x2-e.x1,y1:0,y2:e.y2-e.y1},!1,!1);const i=b.getStage();i.needRender=!0;const r=t.globalTransMatrix.clone(),o=t.stage.window.getViewBoxTransform().clone();if(o.multiply(r.a,r.b,r.c,r.d,r.e,r.f),i.window.setViewBoxTransform(o.a,o.b,o.c,o.d,o.e,o.f),"string"==typeof h)b.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}),b.updateFullDataSync||b.updateDataSync(e,i?c?.filter((t=>t.hasOwnProperty(i)))??[]:c??[])}b.updateFullDataSync?.(t)}}else p.internalProps.renderChartAsync?(-1===OB.indexOf(`${t.parent.col}+${t.parent.row}`)&&(OB.push(`${t.parent.col}+${t.parent.row}`),DB.push(t)),NB||VB(p)):jB(t)}draw(t,e,i,r){this._draw(t,{},!1,i,r)}};$B=zB([f()],$B);let XB=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d,u){const{shape:g}=t.attribute;if("circle"===g){const{width:o=l.width,height:n=l.height}=t.attribute;e.beginPath(),e.arc(i+o/2,r+n/2,Math.min(o,n)/2,0,2*Math.PI),e.closePath(),e.save(),e.clip()}}};XB=zB([f()],XB);let YB=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d,u){const{shape:g}=t.attribute;"circle"===g&&e.restore()}};function qB(t,e,i,r){const{highlightScope:o,disableHeader:n,cellPos:s}=t.hover,a=t.table,l=a.isHeader(e,i);if(l&&n)return;let h;if(o===oC.single&&s.col===e&&s.row===i?h="cellBgColor":o===oC.column&&s.col===e?h=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":o===oC.row&&s.row===i?h=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":o===oC.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 o=a.getHeaderDefine(e,i);t=o?.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 ZB(t,e,i,r){const{highlightScope:o,disableHeader:n,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&&n)return;if(o===oC.single&&s.col===e&&s.row===i?l="cellBgColor":o===oC.column&&s.col===e?l=s.col===e&&s.row===i?"cellBgColor":"inlineColumnBgColor":o===oC.row&&s.row===i?l=s.col===e&&s.row===i?"cellBgColor":"inlineRowBgColor":o===oC.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 o=r.getHeaderDefine(e,i);t=o?.disableHeaderSelect}else{const o=r.getBodyColumnDefine(e,i);t=o?.disableSelect}t&&(l=void 0)}}return l}YB=zB([f()],YB);let JB=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};JB=zB([f()],JB);let QB=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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:C=l.width,height:w=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;let o=0,n=0;if("bottom-right"===e?.theme.cellBorderClipDirection){if(i=Math.floor(i)-.5,r=Math.floor(r)-.5,"cell"===t.role){const i=t.col,r=t.row;e&&i===e.colCount-1&&(o=1),e&&r===e.rowCount-1&&(n=1)}}else i=Math.floor(i)+.5,r=Math.floor(r)+.5;e.options.customConfig?._disableColumnAndRowSizeRound&&(C=Math.round(C),w=Math.round(w));const{width:s,height:a}=hT(t,Math.ceil(C+o),Math.ceil(w+n));b=s,y=a}else b=Math.ceil(C),y=Math.ceil(w);tT(t,e,i,r,l,u,p||f,g||m,b,y)}}};function tT(t,e,i,r,o,n,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(n),f=Array.isArray(d),m=Array.isArray(a)||u.isSplitDraw;e.setStrokeStyle(t,t.attribute,i,r,o);const{lineDash:b=o.lineDash}=t.attribute;let y=!1;b.length&&b.some((t=>Array.isArray(t)))&&(y=!0),e.beginPath(),e.moveTo(i,r),(p||n[0])&&(g||s[0])?(f&&Array.isArray(d[0])?(e.moveTo(i+l*d[0][0],r),e.lineTo(i+l*(d[0][1]-d[0][0]),r),e.moveTo(i+l,r)):(e.moveTo(i,r),e.lineTo(i+l,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))):e.moveTo(i+l,r),(p||n[1])&&(g||s[1])?(f&&Array.isArray(d[1])?(e.moveTo(i+l,r+h*d[1][0]),e.lineTo(i+l,r+h*(d[1][1]-d[1][0])),e.moveTo(i+l,r+h)):(e.moveTo(i+l,r),e.lineTo(i+l,r+h)),(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))):e.moveTo(i+l,r+h),(p||n[2])&&(g||s[2])?(f&&Array.isArray(d[2])?(e.moveTo(i+l*d[2][0],r+h),e.lineTo(i+l*(d[2][1]-d[2][0]),r+h),e.moveTo(i,r+h)):(e.moveTo(i,r+h),e.lineTo(i+l,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))):e.moveTo(i,r+h),(p||n[3])&&(g||s[3])?(f&&Array.isArray(d[3])?(e.moveTo(i,r+h*d[3][0]),e.lineTo(i,r+h*(d[3][1]-d[3][0])),e.moveTo(i,r)):(e.moveTo(i,r),e.lineTo(i,r+h)),(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))):e.moveTo(i,r),m||y||(!g&&u.width&&(e.lineWidth=u.width),e.stroke()),e.lineDashOffset=0,e.setLineDash([])}QB=zB([f()],QB);let eT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};eT=zB([f()],eT);let iT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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=et(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 C,w,{width:v=l.width,height:x=l.height}=t.attribute;if(b.options.customConfig?._disableColumnAndRowSizeRound?(v=Math.round(v),x=Math.round(x)):(v=Math.ceil(v),x=Math.ceil(x)),1&m){let e=0,o=0;if("bottom-right"===b.theme.cellBorderClipDirection){if(i=Math.floor(i)-.5,r=Math.floor(r)-.5,"cell"===t.role){const i=t.col,r=t.row;b&&i===b.colCount-1&&(e=1),b&&r===b.rowCount-1&&(o=1)}}else i=Math.floor(i)+.5,r=Math.floor(r)+.5;const{width:n,height:s}=hT(t,Math.ceil(v+e),Math.ceil(x+o));C=n,w=s}else C=Math.ceil(v),w=Math.ceil(x);e.setStrokeStyle(t,t.attribute,i,r,l),e.beginPath(),e.moveTo(i,r),e.lineTo(i+C,r),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[0]??[]),e.stroke(),e.beginPath(),e.moveTo(i+C,r),e.lineTo(i+C,r+w),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[1]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r+w),e.lineTo(i+C,r+w),e.lineDashOffset=e.currentMatrix.e/e.currentMatrix.a,e.setLineDash(y[2]??[]),e.stroke(),e.beginPath(),e.moveTo(i,r),e.lineTo(i,r+w),e.lineDashOffset=e.currentMatrix.f/e.currentMatrix.d,e.setLineDash(y[3]??[]),e.stroke(),e.lineDashOffset=0,e.setLineDash([])}};iT=zB([f()],iT);let rT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};rT=zB([f()],rT);let oT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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:C=l.width,height:w=l.height}=t.attribute;if(!0!==b&&g&&Array.isArray(p)&&!p.length&&!Array.isArray(m)&&!Array.isArray(f)&&1&u){const o=t.stage.table;if(!o)return;o.options.customConfig?._disableColumnAndRowSizeRound&&(C=Math.round(C),w=Math.round(w));const{width:n,height:s}=hT(t,Math.ceil(C),Math.ceil(w));e.beginPath();let a=0,h=0;if("bottom-right"===o?.theme.cellBorderClipDirection){if(i=Math.floor(i)-.5,r=Math.floor(r)-.5,"cell"===t.role){const e=t.col,i=t.row;o&&e===o.colCount-1&&(a=1),o&&i===o.rowCount-1&&(h=1)}}else i=Math.floor(i)+.5,r=Math.floor(r)+.5;y?kh(e,i,r,n+a,s+h,y):e.rect(i,r,n,s),e.setStrokeStyle(t,t.attribute,i,r,l),e.stroke()}}};oT=zB([f()],oT);let nT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d,u){if("cell"===t.role){const e=t.stage.table;if(e&&e.stateManager.interactionState!==rC.scrolling){const i=function(t,e){let i,r;if("cell"===t.role&&Y(t.mergeStartCol)&&Y(t.mergeStartRow)&&Y(t.mergeEndCol)&&Y(t.mergeEndRow)){const{colStart:r,colEnd:o,rowStart:n,rowEnd:s}=CB(t,e.scenegraph);for(let t=r;t<=o;t++)for(let r=n;r<=s;r++){const o=ZB(e.stateManager,t,r);!o||i&&"cellBgColor"!==o||(i=o)}}else"cell"===t.role&&(i=ZB(e.stateManager,t.col,t.row));if(!i)return;const o=e.internalProps.layoutMap;return o.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.select||e.theme.headerStyle?.select:o.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.select:o.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.select:o.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.select||(e.isListTable()?e.theme.bodyStyle?.select:e.theme.headerStyle?.select):o.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),$A(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&&Y(t.mergeStartCol)&&Y(t.mergeStartRow)&&Y(t.mergeEndCol)&&Y(t.mergeEndRow)){const{colStart:r,colEnd:o,rowStart:n,rowEnd:s}=CB(t,e.scenegraph);for(let a=r;a<=o;a++)for(let r=n;r<=s;r++){const o=qB(e.stateManager,a,r,t);!o||i&&"cellBgColor"!==o||(i=o)}}else"cell"===t.role&&(i=qB(e.stateManager,t.col,t.row,t));if(!i)return;const o=e.internalProps.layoutMap;return o.isCornerHeader(t.col,t.row)?r=e.theme.cornerHeaderStyle?.hover||e.theme.headerStyle?.hover:o.isColumnHeader(t.col,t.row)?r=e.theme.headerStyle?.hover:o.isRowHeader(t.col,t.row)?r=e.theme.rowHeaderStyle?.hover:o.isBottomFrozenRow(t.col,t.row)?r=e.theme.bottomFrozenStyle?.hover||(e.isListTable()?e.theme.bodyStyle?.hover:e.theme.headerStyle?.hover):o.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),$A(i,r,t.col,t.row,e)}(t,e);i&&(t.attribute._vtableHightLightFill=i)}}}}};nT=zB([f()],nT);let sT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d){if(t.attribute._vtableHightLightFill)if(c);else if(s){const o=t.attribute.fill;t.attribute.fill=t.attribute._vtableHightLightFill,e.setCommonStyle(t,t.attribute,i,r,l),e.fill(),t.attribute.fill=o,t.attribute._vtableHightLightFill=void 0}}};sT=zB([f()],sT);let aT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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(),o=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),n=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("row-header"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),o=g.getFrozenColsWidth(),n=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("col-header"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,o=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),n=g.getFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("right-frozen"===t.role){const i=0,r=-(t.attribute.y??0)+g.getFrozenRowsHeight(),o=g.getRightFrozenColsWidth(),n=t.parent.attribute.height-g.getFrozenRowsHeight()-g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("bottom-frozen"===t.role){const i=-(t.attribute.x??0)+g.getFrozenColsWidth(),r=0,o=t.parent.attribute.width-g.getFrozenColsWidth()-g.getRightFrozenColsWidth(),n=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(i,r,o,n)}else if("corner-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),o=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}else if("corner-right-top-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),o=g.getFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}else if("corner-right-bottom-header"===t.role){const t=0,i=0,r=g.getRightFrozenColsWidth(),o=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}else if("corner-left-bottom-header"===t.role){const t=0,i=0,r=g.getFrozenColsWidth(),o=g.getBottomFrozenRowsHeight();e.beginPath(),e.rect(t,i,r,o)}}};aT=zB([f()],aT);let lT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,s,a,l,h,c,d){t.role}};function hT(t,e,i){const r=t.stage.table;if("cell"===t.role){let o=t.col,n=t.row;const s=ov(r,o,n);s&&(o=s.end.col,n=s.end.row),(r&&o===r.colCount-1||r&&o===r.frozenColCount-1&&r.scrollLeft)&&(e-=1),(r&&n===r.rowCount-1||r&&n===r.frozenRowCount-1&&r.scrollTop)&&(i-=1)}else"corner-frozen"===t.role&&(r&&r.scrollLeft&&(e-=1),r&&r.scrollTop&&(i-=1));return{width:e,height:i}}lT=zB([f()],lT);let cT=class{time=Bi.beforeFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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)}};cT=zB([f()],cT);let dT,uT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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 o=0,n=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),tT(t,e,i,r,l,p,m||b,f||y,Math.ceil(u+o),Math.ceil(g+n))}}};uT=zB([f()],uT);let gT=class{order=1;interceptors;constructor(){this.interceptors=[new pT]}afterDrawItem(t,e,i,r,o){for(let n=0;n<this.interceptors.length;n++)if(this.interceptors[n].afterDrawItem&&this.interceptors[n].afterDrawItem(t,e,i,r,o))return!0;return!1}beforeDrawItem(t,e,i,r,o){if((!t.in3dMode||i.in3dInterceptor)&&!t.shadowRoot&&!(t.baseGraphic||t.attribute.globalZIndex||t.interactiveGraphic))return!1;for(let n=0;n<this.interceptors.length;n++)if(this.interceptors[n].beforeDrawItem&&this.interceptors[n].beforeDrawItem(t,e,i,r,o))return!0;return!1}};gT=zB([f()],gT);class pT{order=1;afterDrawItem(t,e,i,r,o){return"image"===t.type&&this.drawItem(t,e,i,r,o),!1}drawItem(t,e,i,r,o){const{image:n}=t.attribute;if(!n||!t.resources)return!1;if("loading"!==t.resources.get(n).state)return!1;if(!dT){const t=jA(),e=t.loading_pic.svg,i=t.loading_pic.width,r=t.loading_pic.height;dT=Al({width:i,height:r,image:e})}const{image:s}=dT.attribute;if(!n||!dT.resources)return!1;const a=dT.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}=UA(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 fT=class{time=Bi.afterFillStroke;useStyle=!0;order=0;drawShape(t,e,i,r,o,n,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:C=l.verticalMode,ellipsis:w=l.ellipsis,textAlign:v=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;w&&e&&e.lines.every((t=>""===t.str))&&(A=!0)}else{const{cache:e}=t;w&&e&&""===e.clipedText&&0===e.clipedWidth&&(A=!0)}if(!A)return;const R=tt(w)?w:"...",B=on(t.attribute.lineHeight,y)??y;let T=0;B!==y&&("top"===x?T=(B-y)/2:"middle"===x||"bottom"===x&&(T=-(B-y)/2)),n&&(d?d(e,t.attribute,l):a&&(e.setStrokeStyle(t,t.attribute,_-i,S-r,l),e.strokeText(R,_,S+T))),o&&(c?c(e,t.attribute,l):s&&(e.setCommonStyle(t,t.attribute,_-i,S-r,l),e.fillText(R,_,S+T),this.drawUnderLine(p,f,t,_,S+T,0,l,e,R)))}drawUnderLine(t,e,i,r,o,n,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:C=s.fillOpacity}=i.attribute;if(!t&&!e)return;const w=lB.measureTextWidth(l,{fontSize:d,fontFamily:u,fontWeight:g,fontStyle:p}),v=qs(h,w),x=Zs(c,d,d),_={lineWidth:0,stroke:f,opacity:m,strokeOpacity:C};if(t){_.lineWidth=t,a.setStrokeStyle(i,_,r,o,s),a.setLineDash(y),a.beginPath();const e=o+x+d+b;a.moveTo(r+v,e,n),a.lineTo(r+v+w,e,n),a.stroke()}if(e){_.lineWidth=e,a.setStrokeStyle(i,_,r,o,s),a.beginPath();const t=o+x+d/2;a.moveTo(r+v,t,n),a.lineTo(r+v+w,t,n),a.stroke()}}};fT=zB([f()],fT);var mT=new i(((t,e,i,r)=>{i(zh)?r(zh).to(cT).inSingletonScope():(t(cT).toSelf().inSingletonScope(),t(Gs).toService(cT)),i(Oh)?r(Oh).to(uT).inSingletonScope():(t(uT).toSelf().inSingletonScope(),t(Gs).toService(uT)),t($B).toSelf().inSingletonScope(),t(KB).to($B),t(Qc).to($B),t(XB).toSelf().inSingletonScope(),t(Ds).toService(XB),t(YB).toSelf().inSingletonScope(),t(Ds).toService(YB),t(nT).toSelf().inSingletonScope(),t(Os).toService(nT),t(sT).toSelf().inSingletonScope(),t(Os).toService(sT),t(QB).toSelf().inSingletonScope(),t(Os).toService(QB),t(JB).toSelf().inSingletonScope(),t(Os).toService(JB),t(eT).toSelf().inSingletonScope(),t(Os).toService(eT),t(iT).toSelf().inSingletonScope(),t(Os).toService(iT),t(rT).toSelf().inSingletonScope(),t(Os).toService(rT),t(oT).toSelf().inSingletonScope(),t(Os).toService(oT),t(aT).toSelf().inSingletonScope(),t(Os).toService(aT),t(lT).toSelf().inSingletonScope(),t(Os).toService(lT),t(gT).toSelf().inSingletonScope(),t(fd).toService(gT),t(fT).toSelf().inSingletonScope(),t(Vs).toService(fT)}));function bT(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 o=[],n=[];if(r)for(let e=0;e<t.colCount;e++)o[e]=t.getColWidth(e);for(let o=e;o<=i;o++){let e;if(t.internalProps.transpose||"only-header"!==t.internalProps.layoutMap.columnObjects?.[o]?.columnWidthComputeMode&&"only-header"!==t.columnWidthComputeMode||!("showHeader"in t.internalProps.layoutMap))e=t.internalProps.transpose||"only-body"!==t.internalProps.layoutMap.columnObjects?.[o]?.columnWidthComputeMode&&"only-body"!==t.columnWidthComputeMode?yT(o,0,t.rowCount-1,t):yT(o,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=yT(o,0,t.internalProps.layoutMap.headerLevelCount-1,t),t.internalProps.layoutMap.showHeader=i}t._setColContentWidth(o,e);t.getColWidth(o)!==e&&t._clearColRangeWidthsMap(o),r?n[o]=Math.round(t._adjustColWidth(o,e)):t._setColWidth(o,t._adjustColWidth(o,e),!1,!0)}if("adaptive"===t.widthMode){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,o=0,s=t.colCount;if("only-body"===t.widthAdaptiveMode){for(let e=0;e<t.colCount;e++){const o=r?n[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=o)}o=t.rowHeaderLevelCount,s=t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount}_T(e-i,o,s,r,n,t)}else if(t.autoFillWidth){t._clearColRangeWidthsMap();const e=t.tableNoFrameWidth;let i=0,o=0;for(let e=0;e<t.colCount;e++){const s=r?n[e]:t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=s),o+=s}if(o<e&&o>i){_T(e-i,t.rowHeaderLevelCount,t.isPivotChart()?t.colCount-t.rightFrozenColCount:t.colCount,r,n,t)}}if(r){for(let e=0;e<t.colCount;e++){const i=n[e]??t.getColWidth(e);i!==o[e]&&t._setColWidth(e,i,!1,!0)}t.stateManager.checkFrozen();for(let e=0;e<t.colCount;e++){const i=t.getColWidth(e);i!==o[e]&&t.scenegraph.updateColWidth(e,i-o[e],!0,!0)}t.scenegraph.updateContainer(!0)}}function yT(t,e,i,r,o=!1){let n=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"===n&&("only-header"===r.columnWidthComputeMode&&t>=r.rowHeaderLevelCount||"only-body"===r.columnWidthComputeMode&&t<r.rowHeaderLevelCount)&&(n=r.getDefaultColumnWidth(t)),o&&!r.internalProps.transpose?CT(n,t,e,i,o,r):"number"==typeof n?n:"auto"!==n&&"string"==typeof n?r._adjustColWidth(t,r._colWidthDefineToPxWidth(n)):CT(n,t,e,i,o,r)}function CT(t,e,i,r,o,n){let s=0,a=1,l=1;if(r-i>5e3&&(l=Math.ceil((r-i)/5e3)),n.isPivotChart()&&e>=n.rowHeaderLevelCount&&e<n.colCount-n.rightFrozenColCount){if(n.internalProps.layoutMap.indicatorsAsCol)return n.defaultColWidth;{const t=n.internalProps.layoutMap.getOptimunWidthForChart(e);if(t>0)return t}}for(let h=i;h<=r;h+=a){if(n.isPivotChart()){const t=n.internalProps.layoutMap,i=NR(e,h,t);if(i){const t=XR(i,n);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=wT(e,h,n);if(i&&(s=Math.max(i.width,s),!i.renderDefault))continue;const r=t;if("number"==typeof r&&"standard"===n.widthMode&&!o){s=Math.max(r,s);continue}const c=n.isHeader(e,h)?n._getHeaderLayoutMap(e,h)?.headerType:n.getBodyColumnType(e,h);if(Y(c)&&"text"!==c&&"link"!==c&&"progressbar"!==c&&"checkbox"!==c&&"radio"!==c){s=Math.max(s,n.getColWidthDefinedNumber(e)||0);continue}let d=0;const u=n.internalProps.layoutMap;if(u.isHeader(e,h)){const t=u.getHeader(e,h);if("only-body"===t?.define?.columnWidthComputeMode)continue;Y(t?.hierarchyLevel)&&(d=(t.hierarchyLevel??0)*(u.rowHierarchyIndent??0),u.rowHierarchyTextStartAlignment&&!n.internalProps.headerHelper.getHierarchyIcon(e,h)&&(d+=n.internalProps.headerHelper.getHierarchyIconWidth()))}else{a=l;const t=n.getBodyColumnDefine(e,h);if(t?.tree){const t=n.dataSource.getIndexKey(n.getRecordShowIndexByCell(e,h));d=Array.isArray(t)&&n.getHierarchyState(e,h)!==sC.none?(t.length-1)*(u.hierarchyIndent??0):0,u.hierarchyTextStartAlignment&&!n.internalProps.bodyHelper.getHierarchyIcon(e,h)&&(d+=n.internalProps.headerHelper.getHierarchyIconWidth())}}const g=vT(e,h,c,n);s=Math.max(g+d,s),a>1&&n.bottomFrozenRowCount>0&&h<n.rowCount-n.bottomFrozenRowCount&&h+a>=n.rowCount-n.bottomFrozenRowCount&&(h=n.rowCount-n.bottomFrozenRowCount-a,a=1,l=1)}const h=n.getMinColWidth(e),c=n.getMaxColWidth(e);return s<h?h:s>c?c:(s<=0&&(s=n.defaultColWidth),s)}function wT(t,e,i){const r=i.getCustomRender(t,e),o=i.getCustomLayout(t,e);if(r||o){let n=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);n=r.end.col-r.start.col+1}const h={col:t,row:e,dataValue:i.getCellOriginValue(t,e),value:i.getCellValue(t,e)||"",rect:xT(t,e,i),table:i};if(o){const t=o(h);if(t.rootContainer instanceof hs){t.rootContainer=zA(t.rootContainer),FA(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(l){const r=DS($A("padding",i._getCellStyle(t,e),t,e,i));s+=r[1]+r[3]}return{width:s/n,renderDefault:a}}}function vT(t,e,i,r){let o=0;const n=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!==hC.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=DS($A("padding",s,t,e,r)),d=c[1]+c[3],u=$A("fontSize",s,t,e,r),g=$A("fontFamily",s,t,e,r),p=$A("fontWeight",s,t,e,r);let f;if("checkbox"===i)f=q(n)?n.text:n;else if("radio"===i)if(et(n)){f="";const i=r.getBodyColumnDefine(t,e),o=i?.radioDirectionInCell??"vertical";"vertical"===o?n.forEach((t=>{f+=(q(t)?t.text:t).toString()+"\n"})):"horizontal"===o&&n.forEach((t=>{f+=(q(t)?t.text:t).toString()}))}else f=q(n)?n.text:n;else f=n;const m=pR(f,r).text;if(m.length>=1?m.forEach((t=>{const e=r.measureText(t,{fontSize:u,fontFamily:g,fontWeight:p}).width;o=Math.max((e+d+4+a)/h,o)})):o=Math.max((d+4+a)/h,o),!1!==r.internalProps.limitMaxAutoWidth&&(o=Math.min("number"==typeof r.internalProps.limitMaxAutoWidth?r.internalProps.limitMaxAutoWidth:450,o)),"checkbox"===i){const i=$A("size",s,t,e,r);if(o+=i,f){const i=$A("spaceBetweenTextAndIcon",s,t,e,r);o+=i}}else if("radio"===i){const i=$A("size",s,t,e,r),a=$A("outerRadius",s,t,e,r),l=ot(a)?2*a:i,h=$A("spaceBetweenTextAndIcon",s,t,e,r);if(et(n)){const i=r.getBodyColumnDefine(t,e),a=$A("spaceBetweenRadio",s,t,e,r),c=i?.radioDirectionInCell??"vertical";"vertical"===c?(o+=l,o+=h):"horizontal"===c&&(o+=(l+h)*n.length,o+=a*(n.length-1))}else o+=l,f&&(o+=h)}return o}function xT(t,e,i){return{left:0,top:0,right:i.getColWidth(t),bottom:i.getRowHeight(e),width:null,height:null}}function _T(t,e,i,r,o,n,s){let a=0;const l=[],h=[];let c=0;for(let s=e;s<i;s++){const e=r?o[s]:n.getColWidth(s),i=n.getMaxColWidth(s),d=n.getMinColWidth(s);if(e!==i&&e!==d?(a+=e,l.push(s)):t-=e,n.options.customConfig?.shrinkSparklineFirst){"sparkline"===n.getBodyColumnType(s,0)&&(h.push({col:s,width:e}),c+=e-n.defaultColWidth)}}const d=t/a;if(n.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?o[i]=n._adjustColWidth(i,d):s?n.scenegraph.setColWidth(i,n._adjustColWidth(i,d)):n._setColWidth(i,n._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?o[e]:n.getColWidth(e)):t),0):Math.round((r?o[i]:n.getColWidth(i))*d),r?o[i]=n._adjustColWidth(i,a):s?n.scenegraph.setColWidth(i,n._adjustColWidth(i,a)):n._setColWidth(i,n._adjustColWidth(i,a),!1,!0)}}const ST=new VA({});function AT(t,e,i,r,o,n,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<=o;p++){const o=p;let f,m,b,y,C=a.getCellValue(e,o),w=i,v=a.getRowHeight(o);if(a.internalProps.customMergeCell){const t=a.getCustomMerge(e,o);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=RT(f,n,a,r>f.start.row);w=t.cellWidth,v=t.cellHeight}C=i,b=s,(l||h)&&(y=kA(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(o),[0,0,0,0],f,a))}}let x=e,_=o;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,o),m=f.start.col!==f.end.col||f.start.row!==f.end.row,m)){const t=RT(f,n,a,r>f.start.row);w=t.cellWidth,v=t.cellHeight}const R=xA(b||a._getCellStyle(e,o),a,f?f.start.col:e,f?f.start.row:o,$A).theme;R.group.cornerRadius=SA(e,o,a),R.group.width=i,R.group.height=Array.isArray(s)?s[o]:s,R._vtable.padding&&(c=R._vtable.padding),R.text.textAlign&&(d=R.text.textAlign),R.text.textBaseline&&(u=R.text.textBaseline),"body"===l||R.group.fill||(R.group.fill="#fff");const B=(a.isHeader(e,o)?a._getHeaderLayoutMap(e,o).headerType:a.getBodyColumnType(e,o))||"text";if(uw(C)){BT(e,o,0,g,w,v,t),vR(C,a,AR.bind(null,B,C,S,a,e,o,i,w,v,t,g,c,d,u,A,R,f,y)),t.updateColumnRowNumber(o);const r=a.getRowHeight(o);t.updateColumnHeight(r),g+=r}else{const r=AR(B,C,S,a,e,o,i,w,v,t,g,c,d,u,A,R,f,y);if(t.updateColumnRowNumber(o),m){const i=a.getRowHeight(o);a.getColWidth(e);const{width:n}=r.attribute,{height:s}=r.attribute;r.contentWidth=n,r.contentHeight=s,TR(f,n,s,c,d,u,a),t.updateColumnHeight(i),g+=i}else t.updateColumnHeight(v),g+=v}if(h&&o>h)break}return t.setAttribute("width",i),{width:i,height:g}}function RT(t,e,i,r){let o=0,n=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++)o+=i.getColWidth(e);for(let e=t.start.row;e<=t.end.row;e++)n+=i.getRowHeight(e);e.set(`${t.start.col},${t.start.row};${t.end.col},${t.end.row}`,{cellWidth:o,cellHeight:n})}else o=s.cellWidth,n=s.cellHeight;return{cellWidth:o,cellHeight:n}}function BT(t,e,i,r,o,n,s){const a=new VA({x:i,y:r,width:o,height:n});a.role="cell",a.col=t,a.row=e,s.addChild(a)}function TT(t,e,i,r,o,n,s,a,l,h){if(r>o||n>s)return;const{layoutMap:c,defaultRowHeight:d,defaultHeaderRowHeight:u,defaultColWidth:g}=l.internalProps;let p=0,f=0;for(let c=r;c<=o;c++){const r=c,o=l.getColWidth(r),g=new VA({x:e+p,y:i,width:o,height:0,clip:!1,pickable:!1});g.role="column",g.col=c,t.addChild(g);const{width:m,height:b}=AT(g,r,o,n,s,l.scenegraph.mergeMap,"columnHeader"===a&&ot(u)?u:d,l,a,h);p+=m,f=Math.max(f,b)}t.setAttribute("width",p),t.setAttribute("height",f)}function MT(t){let e=t.firstChild;for(;"group"!==e.type;)e=e._next;return e}function PT(t){let e=t.lastChild;for(;"group"!==e.type;)e=e._prev;return e}function HT(t,e,i,r="left"){for(let o=t;o<=e;o++){const t=i.scenegraph.getColGroup(o);t&&ET(t,i,r);const e=i.scenegraph.getColGroup(o,!0);e&&ET(e,i,r);const n=i.scenegraph.getColGroupInBottom(o);n&&ET(n,i,r)}const o=Math.min(i.scenegraph.proxy.colLimit,i.scenegraph.proxy.bodyRightCol-i.scenegraph.proxy.bodyLeftCol+1),n=i.getColsWidth(i.frozenColCount,i.frozenColCount+o),s=i.getColsWidth(i.frozenColCount,i.colCount-1);i.scenegraph.proxy.xLimitLeft=n/2,i.scenegraph.proxy.xLimitRight=s-n/2}function ET(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 LT(t,e,i){const r=i.table.getTargetColAt(t+i.table.scenegraph.rowHeaderGroup.attribute.width);if(!r)return;const o=r.col,n=r.left;let s;if(i.screenLeftCol=o,s=e?i.bodyRightCol-i.colEnd:i.screenLeftCol-i.referenceCol,function(t,e,i,r,o){t>0?(kT(t,"left",o.screenLeftCol,i,r,o),o.updateDeltaX(r,i,e),o.table.scenegraph.setBodyAndColHeaderX(-r+o.deltaX)):t<0?(kT(-t,"right",o.screenLeftCol,i,r,o),o.updateDeltaX(r,i,e),o.table.scenegraph.setBodyAndColHeaderX(-r+o.deltaX)):(o.updateDeltaX(r,i,e),o.table.scenegraph.setBodyAndColHeaderX(-r+o.deltaX))}(s,o,n,t,i),e){const e=i.table.scenegraph.getColGroup(i.colEnd);if(e){const r=e.attribute.x+e.attribute.width-(i.table.tableNoFrameWidth-i.table.getFrozenColsWidth()-i.table.getRightFrozenColsWidth())-t;i.deltaX=-r,i.table.scenegraph.setBodyAndColHeaderX(-t+i.deltaX)}}i.table.scenegraph.updateNextFrame()}async function kT(t,e,i,r,o,n){if("left"===e&&n.colEnd+t>n.bodyRightCol?t=n.bodyRightCol-n.colEnd:"right"===e&&n.colStart-t<n.bodyLeftCol&&(t=n.colStart-n.bodyLeftCol),0!==t)if(t<0&&(e="left"===e?"right":"left",t=-t),t<n.colEnd-n.colStart){const o="left"===e?n.colStart:n.colEnd-t+1,s="left"===e?n.colStart+t-1:n.colEnd,a="left"===e?n.colEnd+1:n.colStart-t,l="left"===e?n.colEnd+t:n.colStart-1;bT(n.table,a,l),function(t,e,i,r){for(let o=t;o<=e;o++)r.table.scenegraph.bodyGroup.childrenCount>0&&"group"===r.table.scenegraph.bodyGroup.firstChild.type&&OT(r.table.scenegraph.bodyGroup,i,r),r.table.scenegraph.colHeaderGroup.childrenCount>0&&"group"===r.table.scenegraph.colHeaderGroup.firstChild.type&&OT(r.table.scenegraph.colHeaderGroup,i,r),r.table.scenegraph.bottomFrozenGroup.childrenCount>0&&"group"===r.table.scenegraph.bottomFrozenGroup.firstChild.type&&OT(r.table.scenegraph.bottomFrozenGroup,i,r)}(o,s,e,n);const h=a,c=l;n.colStart="left"===e?n.colStart+t:n.colStart-t,n.colEnd="left"===e?n.colEnd+t:n.colEnd-t,DT(h,c,n),HT(h,c,n.table,e);const d=r-((n.table.scenegraph.getColGroup(i)||n.table.scenegraph.getColGroup(i,!0)).attribute.x+n.table.getFrozenColsWidth()+n.table.scenegraph.proxy.deltaX);n.table.scenegraph.proxy.deltaX+=d,n.currentCol="left"===e?n.currentCol+t:n.currentCol-t,n.totalCol=Math.max(0,Math.min(n.table.colCount-1,"left"===e?n.totalCol+t:n.totalCol-t)),n.referenceCol=n.colStart+Math.floor((n.colEnd-n.colStart)/2),n.colUpdatePos=a,n.colUpdateDirection=e,n.table.scenegraph.updateNextFrame()}else{const i="left"===e?n.colStart+t:n.colStart-t,r="left"===e?n.colEnd+t:n.colEnd-t;bT(n.table,i,r);!function(t,e,i,r){r.table.scenegraph.colHeaderGroup.forEachChildren(((o,n)=>{"group"===o.type&&IT(o,"left"===i?o.col+e:o.col-e,0===n?t:o._prev.attribute.x+r.table.getColWidth(o._prev.col))})),r.table.scenegraph.bottomFrozenGroup.forEachChildren(((o,n)=>{"group"===o.type&&IT(o,"left"===i?o.col+e:o.col-e,0===n?t:o._prev.attribute.x+r.table.getColWidth(o._prev.col))})),r.table.scenegraph.bodyGroup.forEachChildren(((o,n)=>{"group"===o.type&&IT(o,"left"===i?o.col+e:o.col-e,0===n?t:o._prev.attribute.x+r.table.getColWidth(o._prev.col))}))}(n.table.getColsWidth(n.bodyLeftCol,i-1),t,e,n);const o=i,s=r;n.colStart=i,n.colEnd=r,DT(o,s,n),HT(o,s,n.table,r>n.bodyRightCol-(n.colEnd-n.colStart+1)?"right":"left"),n.currentCol="left"===e?n.currentCol+t:n.currentCol-t,n.totalCol=Math.max(0,Math.min(n.table.colCount-1,"left"===e?n.totalCol+t:n.totalCol-t)),n.referenceCol=n.colStart+Math.floor((n.colEnd-n.colStart)/2),n.colUpdatePos=n.colStart,n.colUpdateDirection=r>n.bodyRightCol-(n.colEnd-n.colStart+1)?"right":"left",n.table.scenegraph.updateNextFrame()}}function IT(t,e,i){t.col=e,t.forEachChildren((t=>{t.col=e,t.needUpdate=!0})),t.setAttribute("x",i),t.needUpdate=!0}function FT(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 zT(t,e){if(!t)return;const i=e.screenTopRow,r=Math.max(e.bodyTopRow,i-1*e.screenRowCount),o=Math.min(e.bodyBottomRow,i+2*e.screenRowCount);for(let i=r;i<=o;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 OT(t,e,i){if("left"===e){const e=MT(t),r=PT(t);IT(e,r.col+1,r.attribute.x+i.table.getColWidth(r.col)),t.appendChild(e),t.border&&t.appendChild(t.border)}else{const e=PT(t),r=MT(t);IT(e,r.col-1,r.attribute.x-i.table.getColWidth(r.col-1)),t.insertBefore(e,t.firstChild)}}function DT(t,e,i){for(let r=t;r<=e;r++){const t=i.table.scenegraph.getColGroup(r,!0);t&&FT(t,i);const e=i.table.scenegraph.getColGroupInBottom(r);e&&FT(e,i);const o=i.table.scenegraph.getColGroupInRightTopCorner(r);o&&FT(o,i);const n=i.table.scenegraph.getColGroupInRightBottomCorner(r);n&&FT(n,i);const s=i.table.scenegraph.getColGroup(r);s&&zT(s,i)}i.progress()}function WT(t,e,i,r,o,n="up",s){if("up"===n)for(let n=t;n<=e;n++)for(let t=i;t<=r;t++){const e=o.scenegraph.highPerformanceGetCell(n,t,!0);if(!e.row)continue;let a;if(e._prev)a=e._prev?.attribute.y+o.getRowHeight(e._prev.row);else if(s){if(a=o.scenegraph.highPerformanceGetCell(n,r+1,!0).attribute.y,Y(a))for(let t=i;t<=r;t++)a-=o.getRowHeight(t)}else a=o.getRowsHeight(o.columnHeaderLevelCount,e.row-1);Y(a)&&e.setAttribute("y",a)}else for(let n=t;n<=e;n++)for(let t=r;t>=i;t--){const e=o.scenegraph.highPerformanceGetCell(n,t,!0);if(!e.row)continue;let a;if(e._next)a=e._next?.attribute.y-o.getRowHeight(e.row);else if(s){a=o.scenegraph.highPerformanceGetCell(n,i-1,!0).attribute.y;for(let t=i-1;t<r;t++)a+=o.getRowHeight(t)}else a=o.getRowsHeight(o.columnHeaderLevelCount,e.row-1);e.setAttribute("y",a)}const a=Math.min(o.scenegraph.proxy.rowLimit,o.scenegraph.proxy.bodyBottomRow-o.scenegraph.proxy.bodyTopRow+1),l=o.getRowsHeight(o.columnHeaderLevelCount,o.columnHeaderLevelCount+a),h=o.getRowsHeight(o.columnHeaderLevelCount,o.rowCount-1);o.scenegraph.proxy.yLimitTop=l/2,o.scenegraph.proxy.yLimitBottom=h-l/2}async function NT(t,e,i){const r=i.table.getTargetRowAt(t+i.table.scenegraph.colHeaderGroup.attribute.height);if(!r)return;const o=r.row,n=r.top;let s;if(i.screenTopRow=o,s=e?i.bodyBottomRow-i.rowEnd:o-i.referenceRow,function(t,e,i,r,o){t>0?(GT(t,"up",e,i,r,o),o.updateDeltaY(r,i,e),o.updateBody(r-o.deltaY)):t<0?(GT(-t,"down",e,i,r,o),o.updateDeltaY(r,i,e),o.updateBody(r-o.deltaY)):(o.updateDeltaY(r,i,e),o.updateBody(r-o.deltaY))}(s,o,n,t,i),e){const e=i.table.scenegraph.highPerformanceGetCell(i.colStart,i.rowEnd,!0);if("cell"===e.role){const r=e.attribute.y+e.attribute.height-(i.table.tableNoFrameHeight-i.table.getFrozenRowsHeight()-i.table.getBottomFrozenRowsHeight())-t;i.deltaY=-r,i.updateBody(t-i.deltaY)}}}async function GT(t,e,i,r,o,n){if("up"===e&&n.rowEnd+t>n.bodyBottomRow?t=n.bodyBottomRow-n.rowEnd:"down"===e&&n.rowStart-t<n.bodyTopRow&&(t=n.rowStart-n.bodyTopRow),0!==t)if(t<0&&(e="up"===e?"down":"up",t=-t),t<n.rowEnd-n.rowStart){const r="up"===e?n.rowStart:n.rowEnd-t+1,o="up"===e?n.rowStart+t-1:n.rowEnd,s="up"===e?n.rowEnd+1:n.rowStart-t,a="up"===e?n.rowEnd+t:n.rowStart-1;let l,h;if("autoHeight"===n.table.heightMode)l=s,h=a;else{l=Math.max(n.bodyTopRow,i-1*n.screenRowCount),h=Math.min(n.bodyBottomRow,i+2*n.screenRowCount)}uB(n.table,l,h,!1),function(t,e,i,r){for(let o=0;o<r.table.frozenColCount;o++){const n=r.table.scenegraph.getColGroup(o);if(n)for(let o=t;o<=e;o++)jT(n,i,r)}for(let o=r.table.colCount-r.table.rightFrozenColCount;o<r.table.colCount;o++){const n=r.table.scenegraph.getColGroup(o);if(n)for(let o=t;o<=e;o++)jT(n,i,r)}for(let o=r.bodyLeftCol;o<=r.bodyRightCol;o++){const n=r.table.scenegraph.getColGroup(o);if(n)for(let o=t;o<=e;o++)jT(n,i,r)}}(r,o,e,n),n.rowStart="up"===e?n.rowStart+t:n.rowStart-t,n.rowEnd="up"===e?n.rowEnd+t:n.rowEnd-t,VT(l,h,n,!0),"autoHeight"===n.table.heightMode&&(WT(n.bodyLeftCol,n.bodyRightCol,l,h,n.table,a>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",!0),WT(0,n.table.frozenColCount-1,l,h,n.table,a>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",!0),WT(n.table.colCount-n.table.rightFrozenColCount,n.table.colCount-1,l,h,n.table,a>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",!0)),n.currentRow="up"===e?n.currentRow+t:n.currentRow-t,n.totalRow=Math.max(0,Math.min(n.bodyBottomRow,"up"===e?n.totalRow+t:n.totalRow-t)),n.referenceRow=n.rowStart+Math.floor((n.rowEnd-n.rowStart)/2),"autoHeight"===n.table.heightMode?n.rowUpdatePos=Math.min(n.rowUpdatePos,n.rowEnd+1):n.rowUpdatePos=Math.min(n.rowUpdatePos,s),n.rowUpdateDirection=e,n.table.scenegraph.updateNextFrame(),"autoHeight"!==n.table.heightMode&&await n.progress()}else{const r="up"===e?n.rowStart+t:n.rowStart-t,o="up"===e?n.rowEnd+t:n.rowEnd-t,s=n.table.getRowsHeight(n.bodyTopRow,r-1);let a,l;"autoHeight"===n.table.heightMode?(a=r,l=o):(a=Math.max(n.bodyTopRow,i-1*n.screenRowCount),l=Math.min(n.bodyBottomRow,i+2*n.screenRowCount)),uB(n.table,a,l,!1),function(t,e,i,r){for(let o=0;o<r.table.frozenColCount;o++){const n=r.table.scenegraph.getColGroup(o);n?.forEachChildren(((o,n)=>{r.updateCellGroupPosition(o,"up"===i?o.row+e:o.row-e,0===n?t:o._prev.attribute.y+r.table.getRowHeight(o._prev.row))}))}for(let o=r.table.colCount-r.table.rightFrozenColCount;o<r.table.colCount;o++){const n=r.table.scenegraph.getColGroup(o);n?.forEachChildren(((o,n)=>{r.updateCellGroupPosition(o,"up"===i?o.row+e:o.row-e,0===n?t:o._prev.attribute.y+r.table.getRowHeight(o._prev.row))}))}for(let o=r.bodyLeftCol;o<=r.bodyRightCol;o++){const n=r.table.scenegraph.getColGroup(o);n?.forEachChildren(((o,n)=>{r.updateCellGroupPosition(o,"up"===i?o.row+e:o.row-e,0===n?t:o._prev.attribute.y+r.table.getRowHeight(o._prev.row))}))}}(s,t,e,n),n.rowStart=r,n.rowEnd=o,VT(a,l,n,!0),"autoHeight"===n.table.heightMode&&(WT(n.bodyLeftCol,n.bodyRightCol,a,l,n.table,o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up"),WT(0,n.table.frozenColCount-1,a,l,n.table,o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up"),WT(n.table.colCount-n.table.rightFrozenColCount,n.table.colCount-1,a,l,n.table,o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up")),n.currentRow="up"===e?n.currentRow+t:n.currentRow-t,n.totalRow=Math.max(0,Math.min(n.bodyBottomRow,"up"===e?n.totalRow+t:n.totalRow-t)),n.referenceRow=n.rowStart+Math.floor((n.rowEnd-n.rowStart)/2),"autoHeight"===n.table.heightMode?n.rowUpdatePos=n.rowEnd+1:n.rowUpdatePos=n.rowStart,n.rowUpdateDirection=o>n.bodyBottomRow-(n.rowEnd-n.rowStart+1)?"down":"up",n.table.scenegraph.updateNextFrame(),"autoHeight"!==n.table.heightMode&&await n.progress()}}function jT(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 VT(t,e,i,r=!1){for(let r=0;r<i.table.frozenColCount;r++)for(let o=t;o<=e;o++){const t=i.highPerformanceGetCell(r,o,!0);i.updateCellGroupContent(t)}for(let r=i.table.colCount-i.table.rightFrozenColCount;r<i.table.colCount;r++)for(let o=t;o<=e;o++){const t=i.highPerformanceGetCell(r,o);i.updateCellGroupContent(t)}let o=i.bodyLeftCol,n=i.bodyRightCol;if(r){const t=i.screenLeftCol;o=Math.max(i.bodyLeftCol,t-1*i.screenColCount),n=Math.min(i.bodyRightCol,t+2*i.screenColCount)}for(let r=o;r<=n;r++)for(let o=t;o<=e;o++){const t=i.highPerformanceGetCell(r,o);i.updateCellGroupContent(t)}i.table.scenegraph.updateNextFrame()}function UT(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:o,frozenColCount:n}=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<o&&!(g<d);i++)[d,g].forEach((r=>{const o=t._getCellStyle(r,i);if(o?.textStick){XT(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,o?.textStickBaseOnAlign,t)}}));for(let i=0;i<n&&!(u<c);i++)[c,u].forEach((r=>{const o=t._getCellStyle(i,r);if(o?.textStick&&"tree"!==t.internalProps.layoutMap.rowHierarchyType){KT(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,o?.textStickBaseOnAlign,t)}}));for(let i=d;i<=g&&!(u<c);i++)[c,u].forEach((r=>{const o=t._getCellStyle(i,r);if(o?.textStick){KT(t.scenegraph.getCell(i,r),s+t.tableY,t.tableNoFrameHeight-t.getBottomFrozenRowsHeight()+t.tableY,e,o?.textStickBaseOnAlign,t)}}));for(let i=c;i<u&&!(g<d);i++)[d,g].forEach((r=>{const o=t._getCellStyle(r,i);if(t._getCellStyle(r,i)?.textStick){XT(t.scenegraph.getCell(r,i),a+t.tableX,t.tableNoFrameWidth-t.getRightFrozenColsWidth()+t.tableX,e,o?.textStickBaseOnAlign,t)}}))}}function KT(t,e,i,r,o,n){if(ot(t.mergeStartCol)&&ot(t.mergeStartRow)&&ot(t.mergeEndCol)&&ot(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=CB(t,n.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){$T(n.scenegraph.getCell(t,s),e,i,r,o)}}else $T(t,e,i,r,o)}function $T(t,e,i,r,o){const n=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!n)return;if("image"===n.type){const{image:t}=n.attribute;if(!t||!n.resources)return;if("success"!==n.resources.get(t).state)return}const s=n.textBaseline??"top";n.AABBBounds.width();const a=n.globalAABBBounds.y1,l=n.globalAABBBounds.y2;if("middle"===s&&o){const o=t.globalAABBBounds.y1+(t.firstChild?.attribute.dy??0),s=o+(t.contentHeight??t.attribute.height??0);if(o<e||s>i){const a=Math.max(o,e),l=Math.min(s,i),h=n.globalTransMatrix.f-(l+a)/2+n.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 XT(t,e,i,r,o,n){if(ot(t.mergeStartCol)&&ot(t.mergeStartRow)&&ot(t.mergeEndCol)&&ot(t.mergeEndRow)){const{colStart:s,colEnd:a,rowStart:l,rowEnd:h}=CB(t,n.scenegraph);for(let t=s;t<=a;t++)for(let s=l;s<=h;s++){YT(n.scenegraph.getCell(t,s),e,i,r,o)}}else YT(t,e,i,r,o)}function YT(t,e,i,r,o){const n=t.getChildByName("text",!0)||t.getChildByName("image",!0);if(!n)return;if("image"===n.type){const{image:t}=n.attribute;if(!t||!n.resources)return;if("success"!==n.resources.get(t).state)return}const s=n.attribute.textAlign??n.textAlign??"left";n.AABBBounds.width();const a=n.globalAABBBounds.x1,l=n.globalAABBBounds.x2;if("center"===s&&o){const o=t.globalAABBBounds.x1+(t.firstChild?.attribute.dx??0),s=o+(t.contentWidth??t.attribute.width??0);if(o<e||s>i){const a=Math.max(o,e),l=Math.min(s,i),h=n.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 qT(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)}ST.role="empty";class ZT{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;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 o=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(o/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;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 o=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(o/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,o,n,s,a){!function(t,e,i,r,o,n,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&&bT(h,0,g),0===h.internalProps._heightResizedRowMap.size&&uB(h,0,p),g<h.colCount-h.rightFrozenColCount&&bT(h,h.colCount-h.rightFrozenColCount,h.colCount-1),p<h.rowCount-h.bottomFrozenRowCount&&uB(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()}),TT(t,s,a,0,h.frozenColCount-1,0,h.columnHeaderLevelCount-1,h.isListTable()?"columnHeader":"cornerHeader",h),g-h.rightFrozenColCount>=h.frozenColCount&&TT(e,s,a,h.frozenColCount,g-h.rightFrozenColCount,0,h.columnHeaderLevelCount-1,"columnHeader",h),h.frozenColCount>0&&(h.leftRowSeriesNumberCount>0&&TT(i,s,a,0,h.leftRowSeriesNumberCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.rowHeaderLevelCount>0&&TT(i,s,a,h.leftRowSeriesNumberCount,h.leftRowSeriesNumberCount+h.rowHeaderLevelCount-1,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"rowHeader",h),h.frozenColCount>h.rowHeaderLevelCount+h.leftRowSeriesNumberCount&&TT(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&&TT(c,s,a,0,h.leftRowSeriesNumberCount-1,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,"rowHeader",h),h.rowHeaderLevelCount>0&&TT(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&&TT(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&&TT(o,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.rowCount-1-h.bottomFrozenRowCount+1,h.rowCount-1,h.isPivotChart()?"rowHeader":"body",h)),h.rightFrozenColCount>0&&(TT(d,s,a,h.colCount-1-h.rightFrozenColCount+1,h.colCount-1,0,h.columnHeaderLevelCount-1,"columnHeader",h),TT(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&&TT(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&&TT(n,s,a,h.frozenColCount,g-h.rightFrozenColCount,h.columnHeaderLevelCount,p-h.bottomFrozenRowCount,"body",h),n.firstChild||e.firstChild||t.firstChild||i.firstChild?(l.currentRow=n.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=n.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,o,n,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()),UT(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(uB(this.table,this.currentRow+1,e,!1),this.table.frozenColCount){let t=0;for(let i=0;i<this.table.frozenColCount;i++){const r=this.table.scenegraph.getColGroup(i),o=this.table.isListTable()?"body":"rowHeader",{height:n}=AT(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,o);t=Math.max(t,n),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),o=this.table.isPivotChart()?"rowHeader":"body",{height:n}=AT(r,i,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,o);t=Math.max(t,n),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 o=t<this.table.rowHeaderLevelCount?"rowHeader":"body",{height:n}=AT(r,t,r.attribute.width,this.currentRow+1,e,this.table.scenegraph.mergeMap,this.table.internalProps.defaultRowHeight,this.table,o);i=Math.max(i,n)}this.table.scenegraph.bodyGroup.setAttribute("height",i),this.currentRow=e,this.rowEnd=e,this.rowUpdatePos=this.rowEnd,this.table.scenegraph.updateContainer(),this.table.scenegraph.updateBorderSizeAndPosition()}createColGroup(t){const e=Math.min(this.totalCol,this.currentCol+t);bT(this.table,this.currentCol+1,e);for(let t=0;t<this.table.rowCount;t++){const e=this.highPerformanceGetCell(this.currentCol,t);"cell"===e.role&&ot(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 VA?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;TT(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 VA?this.table.scenegraph.bottomFrozenGroup.lastChild:this.table.scenegraph.bottomFrozenGroup.lastChild._prev,i=t.attribute.x+t.attribute.width,r=t.attribute.y;TT(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 VA?this.table.scenegraph.bodyGroup.lastChild:this.table.scenegraph.bodyGroup.lastChild._prev);i||(i=this.table.scenegraph.colHeaderGroup.lastChild&&(this.table.scenegraph.colHeaderGroup.lastChild instanceof VA?this.table.scenegraph.colHeaderGroup.lastChild:this.table.scenegraph.colHeaderGroup.lastChild._prev));const r=i.attribute.x+i.attribute.width,o=i.attribute.y;TT(this.table.scenegraph.bodyGroup,r,o,this.currentCol+1,e,this.rowStart,this.rowEnd,"body",this.table),this.currentCol=e,this.colEnd=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;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,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;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,e)}async dynamicSetY(t,e=!1){NT(t,e,this)}async dynamicSetX(t,e=!1){LT(t,e,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&&uB(this.table,this.rowUpdatePos,e,!1),VT(this.rowUpdatePos,e,this),"autoHeight"===this.table.heightMode&&(WT(this.bodyLeftCol,this.bodyRightCol,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),WT(0,this.table.frozenColCount-1,this.rowUpdatePos,e,this.table,this.rowUpdateDirection,!0),WT(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&&uB(this.table,t,e,!1),VT(t,e,this),"autoHeight"===this.table.heightMode&&(WT(this.bodyLeftCol,this.bodyRightCol,t,e,this.table,this.rowUpdateDirection),WT(0,this.table.frozenColCount-1,t,e,this.table,this.rowUpdateDirection),WT(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&&bT(this.table,t,e,!1),DT(t,e,this),"autoHeight"===this.table.heightMode&&HT(t,e,this.table,this.colUpdateDirection)}async updateColCellGroupsAsync(){this.updateColGroups(this.taskRowCount)}updateColGroups(t){const e=Math.min(this.bodyRightCol,this.colUpdatePos+t);bT(this.table,this.colUpdatePos,e),DT(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();uB(t.table,e,i);const o=t.table.getAllRowsHeight();r!==o&&t.table.scenegraph.updateContainerHeight(t.table.frozenRowCount,o-r),VT(e,i,t),"autoHeight"===t.table.heightMode&&WT(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);bT(t.table,e,i),DT(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 ST;if(t>=this.table.frozenColCount&&t<this.table.colCount-this.table.rightFrozenColCount&&(t<this.colStart||t>this.colEnd))return ST;if(this.cellCache.get(t)){const r=this.cellCache.get(t);if((r._next||r._prev)&&Math.abs(r.row-e)<e){let o=JT(r,e);return o&&(i||"shadow-cell"!==o.role)||(o=this.table.scenegraph.getCell(t,e,i)),o.row&&this.cellCache.set(t,o),o}const o=this.table.scenegraph.getCell(t,e,i);return o.col===t&&o.row&&this.cellCache.set(t,o),o}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(Y(e)&&Y(i)){let r=this.table.scenegraph.highPerformanceGetCell(this.colStart,i,!0);"cell"!==r.role&&(r=this.table.scenegraph.highPerformanceGetCell(0,i,!0));const o=t-this.deltaY,n=e-o,s=r.attribute.y-o+this.table.getFrozenRowsHeight();this.deltaY=n-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(Y(e)&&Y(i)){const r=this.table.scenegraph.getColGroup(i)||this.table.scenegraph.getColGroup(i,!0),o=t-this.deltaX,n=e-o,s=r.attribute.x-o+this.table.getFrozenColsWidth();this.deltaX=n-s}}release(){this.isRelease=!0}}function JT(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?JT(i,e):t.row<e&&r&&r.row===t.row+1?JT(r,e):null}function QT(t,e,i){const[r,o,n,s]=e.split("-"),a=parseInt(r,10),l=parseInt(o,10),h=parseInt(n,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,C=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:C.x2-i.tableGroup.attribute.x-3,y:C.y2-i.tableGroup.attribute.y-3,width:6,height:6,visible:!0});const w=!!i.table.frozenColCount&&a===i.table.frozenColCount,v=!!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(w&&t.rect.attribute.stroke[3]||v&&t.rect.attribute.stroke[1]||x&&t.rect.attribute.stroke[0]||_&&t.rect.attribute.stroke[2]){if(w&&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),v&&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 tM(t,e,i=!0){const r=e.start.col,o=e.start.row,n=e.end.col,s=e.end.row,a=e.skipBodyMerge;let l=Math.max(Math.min(n,r),0),h=Math.max(Math.min(s,o),0),c=Math.min(Math.max(n,r),t.table.colCount-1),d=Math.min(Math.max(s,o),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 o=ov(t.table,i,r);if(o&&o.start.col<l){l=o.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 o=ov(t.table,i,r);if(o&&Math.min(o.end.col,t.table.colCount-1)>c){c=o.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 o=ov(t.table,r,i);if(o&&o.start.row<h){h=o.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 o=ov(t.table,r,i);if(o&&Math.min(o.end.row,t.table.rowCount-1)>d){d=o.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,C=!1,w=!1,v=!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&&(C=!0),l<=t.table.frozenColCount-1&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(v=!0),c>=t.table.colCount-t.table.rightFrozenColCount&&d>=t.table.rowCount-t.table.bottomFrozenRowCount&&(w=!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(C){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(v){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(w){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),o=[!0,!C,!b,!y];t.createCellSelectBorder(e,h,i,r,"columnHeader",`${l}${h}${c}${d}`,o)}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),o=[!b,!w,!0,!v];t.createCellSelectBorder(e,r,i,d,"bottomFrozen",`${l}${h}${c}${d}`,o)}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),o=[!y,!b,!v,!0];t.createCellSelectBorder(l,e,r,i,"rowHeader",`${l}${h}${c}${d}`,o)}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),o=[!C,!0,!w,!b];t.createCellSelectBorder(r,e,c,i,"rightFrozen",`${l}${h}${c}${d}`,o)}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),o=Math.min(d,t.table.rowCount-t.table.bottomFrozenRowCount-1),n=[!f,!p,!m,!g];t.createCellSelectBorder(e,i,r,o,"body",`${l}${h}${c}${d}`,n)}}function eM(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",0)}))}function iM(t){t.selectingRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)})),t.selectedRangeComponents.forEach(((t,e)=>{t.rect.setAttribute("opacity",1)}))}function rM(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 oM(t){t.selectedRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),t.selectedRangeComponents=new Map}function nM(t,e,i,r){const o=r.scenegraph,n=JC(t.map((t=>t.row))).sort(((t,e)=>e-t)),s=JC(e.map((t=>t.row))).sort(((t,e)=>t-e)),a=JC(i.map((t=>t.row))).sort(((t,e)=>t-e));let l;if(a.length){l=lM(a[0]-1,a[a.length-1]+1,o)}if(s.length){const t=lM(s[0]-1,s[s.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}if(n.length){const t=lM(n[0]-1,n[n.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}n.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 o;r.forEachChildren((e=>e.row===t&&(o=e,!0))),o&&(r.updateColumnHeight(-o.attribute.height),r.removeChild(o))}}(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,o)}));const h=r.rowHeightsMap;if(n.forEach((t=>{h.delete(t)})),n.length){!function(t){function e(e,i){e.row=i;const r=ov(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++}))}))}(o);const t=aM(n[n.length-1]-1,n[0]-n.length+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}let c;if(o.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++,sM(t,e),t):void 0;if(i.rowEnd-i.rowStart+1<i.rowLimit)return i.rowEnd++,i.currentRow++,sM(t,e),t;return t}(t,o);c=c??e,h.insert(t)})),function(t){function e(e,i,r){e.row=i,e.setAttribute("y",r);const o=ov(t.table,e.col,e.row);o?(e.mergeStartCol=o.start.col,e.mergeEndCol=o.end.col,e.mergeStartRow=o.start.row,e.mergeEndRow=o.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,o=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.rowHeaderGroup.forEachChildren((i=>{let r=t.bodyRowStart,o=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.rightFrozenGroup.forEachChildren((i=>{let r=t.bodyRowStart,o=t.getCellGroupY(r);i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.bottomFrozenGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,o=0;i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.leftBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,o=0;i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))})),t.rightBottomCornerGroup.forEachChildren((i=>{let r=t.table.rowCount-t.table.bottomFrozenRowCount,o=0;i?.forEachChildren((t=>{e(t,r,o),r++,o+=t.attribute.height}))}))}(o),s.length){const t=aM(s[0]-1,s[s.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}for(let t=0;t<r.colCount;t++)a.forEach((e=>{const i=ov(o.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++)RR(t,e,o.table,!1);else RR(t,e,o.table,!1)}));if(a.length){const t=aM(a[0]-1,a[a.length-1]+1,o);l=Y(l)?Y(t)?Math.min(l,t):l:t}if(ot(c)){for(let t=0;t<r.colCount;t++)for(let e=c;e<r.rowCount;e++){const i=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}l=Y(l)?Y(c)?Math.min(l,c):l:c}if(ot(l)&&(o.proxy.rowUpdatePos=Math.min(o.proxy.rowUpdatePos,l)),s.length){if(!ot(c)){const t=Math.min(...s);o.proxy.rowUpdatePos=Math.min(t,o.proxy.rowUpdatePos)}o.proxy.rowUpdateDirection="up",o.proxy.updateCellGroups(2*o.proxy.screenRowCount),u()}else n.length&&(!function(t,e){if(e.table.isHasSeriesNumber())for(let i=t;i<=e.table.rowCount-1;i++)RR(0,i,e.table,!1)}(n[n.length-1],o),o.proxy.updateCellGroups(2*o.proxy.screenRowCount),u(),o.proxy.progress());o.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||n?.[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=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}o.proxy.updateBottomFrozenCellGroups()}}o.updateContainerHeight(o.table.frozenRowCount,d-o.bodyGroup.attribute.height)}function sM(t,e){for(let i=0;i<e.table.colCount;i++){const r=new VA({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 o=e.getColGroup(i);if(o)if(o.firstChild&&t<o.firstChild.row)o.insertBefore(r,o.firstChild),o.firstChild.row=o.firstChild.row+1;else if(o.lastChild&&t>o.lastChild.row)o.appendChild(r);else{const n=e.highPerformanceGetCell(i,t,!0);n!==r&&(o.insertBefore(r,n),n&&(n.row=n.row+1),n!==o.lastChild&&o.lastChild&&(o.lastChild.row=o.lastChild.row+1))}}}function aM(t,e,i){let r;for(let o=0;o<i.table.colCount;o++){const n=i.table.getCellRange(o,t);let s;n.start.row<=t+1&&n.end.row>=t+1&&(hM(n,i),s=n.start.row);const a=i.table.getCellRange(o,e);a.start.row<=e+1&&a.end.row>=e+1&&(hM(a,i),s=a.start.row),Y(s)&&(r=Y(r)?Math.min(r,s):s)}return r}function lM(t,e,i){let r;for(let o=0;o<i.table.colCount;o++){let n;const s=i.highPerformanceGetCell(o,t);s.mergeStartRow&&s.mergeEndRow&&s.mergeEndRow>t&&(hM({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),n=s.mergeStartRow);const a=i.highPerformanceGetCell(o,e);a.mergeStartRow&&a.mergeEndRow&&a.mergeStartRow<e&&(hM({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),n=a.mergeStartRow),Y(n)&&(r=Y(r)?Math.min(r,n):n)}return r}function hM(t,e){const{start:i,end:r}=t;for(let t=i.col;t<=r.col;t++)for(let o=i.row;o<=r.row;o++){const i=e.highPerformanceGetCell(t,o,!0);i&&(i.needUpdate=!0)}}function cM(t){const e=t.bodyGroup.firstChild instanceof VA?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 dM(t){const e=t.colHeaderGroup.firstChild instanceof VA?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 uM(t){const e=t.rowHeaderGroup.lastChild instanceof VA?t.rowHeaderGroup.lastChild:t.rowHeaderGroup.lastChild?._prev;e&&(mM(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 gM(t){const e=t.cornerHeaderGroup.lastChild instanceof VA?t.cornerHeaderGroup.lastChild:t.cornerHeaderGroup.lastChild?._prev;e&&(mM(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 pM(t){const e=t.bottomFrozenGroup.firstChild instanceof VA?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 fM(t){const e=t.leftBottomCornerGroup.lastChild instanceof VA?t.leftBottomCornerGroup.lastChild:t.leftBottomCornerGroup.lastChild?._prev;e&&(mM(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),o=xA(i,t.table,r?r.start.col:e.col,r?r.start.row:e.row,$A).theme;e.setAttributes({fill:o?.group?.fill??void 0,stroke:o?.group?.stroke??void 0})})))}function mM(t,e,i){e&&t&&(i?t.insertBefore(e,i):t.appendChild(e))}function bM(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 yM(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=DS($A("padding",e._getCellStyle(t.col,t.row),t.col,t.row,e)),o=new lS(i,t.attribute.width,t.attribute.height,r,e);t.clear(),t.appendChild(o.component),o.overlap()}}}))}))}function CM(t,e,i){return new VA({x:0,y:0,width:t,height:e,clip:i??!1,pickable:!1})}function wM(t,e){return t.forEachChildrenSkipChild(((t,i)=>{t.setAttribute("x",e),e+=t.attribute.width})),e}function vM(t,e,i,r,o){const n=t.name;SM(i,r,(t=>t.name===n),(t=>{fR(e,t),t.name=e.name}),o),o.updateNextFrame()}function xM(t,e,i,r,o,n,s,a){const l=a.table.internalProps.headerHelper.getSortIcon(r,a.table,t,e);if(i&&vM(i,l,t,e,a),!function(t,e,i,r,o){const n=o.getCellRange(t,e),s=o.getCellRange(i,r);return n.start.col===s.start.col&&n.start.row===s.start.row&&n.end.col===s.end.col&&n.end.row===s.end.row}(t,e,o,n,a.table)){const t=a.table.internalProps.headerHelper.getSortIcon("normal",a.table,o,n);s?vM(s,t,o,n,a):function(t,e,i,r){const o=r.getCell(t,e);if(Y(o.mergeStartCol)&&Y(o.mergeStartRow)&&Y(o.mergeEndCol)&&Y(o.mergeEndRow))for(let t=o.mergeStartCol;t<=o.mergeEndCol;t++)for(let e=o.mergeStartRow;e<=o.mergeEndRow;e++){let o;r.getCell(t,e).forEachChildren((t=>"sort"===t.attribute.funcType&&(o=t,!0))),o&&(fR(i,o),o.name=i.name)}else{let t;o.forEachChildren((e=>"sort"===e.attribute.funcType&&(t=e,!0))),t&&(fR(i,t),t.name=i.name)}}(o,n,t,a)}}function _M(t,e,i){t.forEachChildren((t=>{"group"===t.type?_M(t,e,i):e(t)&&i(t)}))}function SM(t,e,i,r,o){const n=o.getCell(t,e);if("cell"===n.role&&Y(n.mergeStartCol)&&Y(n.mergeStartRow)&&Y(n.mergeEndCol)&&Y(n.mergeEndRow)){const{colStart:t,colEnd:e,rowStart:s,rowEnd:a}=CB(n,o);for(let n=t;n<=e;n++)for(let t=s;t<=a;t++)_M(o.highPerformanceGetCell(n,t),i,r)}else _M(n,i,r)}function AM(t,e){const{bgColor:i,borderColor:r,borderLineWidth:o,borderLineDash:n}=e,s={x:0,y:0,width:0,height:0,visible:!1,pickable:!0,fill:i};return s.stroke=kB(r,void 0),s.lineWidth=o,n&&(s.lineDash=n),s.lineCap="butt",Array.isArray(r)&&(s.strokeArrayColor=DS(r)),Array.isArray(o)&&(s.strokeArrayWidth=DS(o),s.lineWidth=1),t.setAttributes(s),t.role="corner-frozen",t}function RM(t,e,i,r){const o=r.scenegraph,n=BM(t.map((t=>t.col))).sort(((t,e)=>e-t)),s=BM(e.map((t=>t.col))).sort(((t,e)=>t-e)),a=BM(i.map((t=>t.col))).sort(((t,e)=>t-e));n.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,o)}));const l=r.colWidthsMap;let h;if(n.forEach((t=>{l.delAndReorder(t)})),n.length&&TM(o),o.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++,MM(t,e),t):void 0;if(i.colEnd-i.colStart+1<i.colLimit)return i.colEnd++,i.currentCol++,MM(t,e),t;return t}(t,o);TM(o),h=h??e,l.addAndReorder(t)})),function(t){let e=t.bodyColStart,i=t.getCellGroupX(e);function r(i){i.col=e;const r=ov(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++}))}(o),a.forEach((t=>{for(let e=0;e<r.rowCount;e++){const i=ov(o.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++)RR(t,e,o.table,!1);else RR(t,e,o.table,!1)}})),ot(h)){for(let t=h;t<r.colCount;t++)for(let e=0;e<r.rowCount;e++){const i=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}o.proxy.colUpdatePos=h}if(s.length){if(!ot(h)){const t=Math.min(...s);o.proxy.colUpdatePos=t}o.proxy.colUpdateDirection="left",o.proxy.updateColGroups(2*o.proxy.screenColCount),d(),o.proxy.progress()}else n.length&&(o.proxy.updateColGroups(2*o.proxy.screenColCount),d(),o.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||n?.[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=o.highPerformanceGetCell(t,e,!0);i&&(i.needUpdate=!0)}o.proxy.updateRightFrozenCellGroups()}}o.updateContainerWidth(o.table.frozenColCount,c-o.bodyGroup.attribute.width)}function BM(t){const e=[];for(let i=0;i<t.length;i++)-1===e.indexOf(t[i])&&e.push(t[i]);return e}function TM(t){let e=t.bodyColStart;function i(i){i.col=e;const r=ov(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 MM(t,e){if(e.colHeaderGroup&&e.table.columnHeaderLevelCount>0){const r=new VA({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const o=e.getColGroup(t,!0);o?e.colHeaderGroup.insertBefore(r,o):e.colHeaderGroup.appendChild(r),i(r,t,0,e.table.columnHeaderLevelCount-1)}if(e.bodyGroup){const r=new VA({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const o=e.getColGroup(t,!1);o?e.bodyGroup.insertBefore(r,o):e.bodyGroup.appendChild(r),i(r,t,e.bodyRowStart,e.bodyRowEnd)}if(e.bottomFrozenGroup&&e.table.bottomFrozenRowCount>0){const r=new VA({x:0,y:0,width:e.table.getColWidth(t),height:0,clip:!1,pickable:!1});r.role="column",r.col=t;const o=e.getColGroupInBottom(t);o?e.bottomFrozenGroup.insertBefore(r,o):e.bottomFrozenGroup.appendChild(r),i(r,t,e.table.rowCount-e.table.bottomFrozenRowCount,e.table.rowCount-1)}function i(t,i,r,o){for(let n=r;n<=o;n++){const r=new VA({x:0,y:0,width:e.table.getColWidth(i),height:e.table.getRowHeight(n)});r.role="cell",r.col=i,r.row=n,r.needUpdate=!0,t.appendChild(r)}}}iC(),Xr.load(Lv),Xr.load(mT),Xr.load(rB);class PM{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){var e;let i,r;var o;this.table=t,this.hasFrozen=!1,this.clear=!0,this.mergeMap=new Map,e=this.table.theme.textPopTipStyle,wt(Sv.poptip,_v,e),t.options.canvas&&t.options.viewBox?(Ru.setEnv("browser"),i=t.options.viewBox.x2-t.options.viewBox.x1,r=t.options.viewBox.y2-t.options.viewBox.y1):"node"===IC.mode?(Ru.setEnv("node",t.options.modeParams),i=t.canvasWidth,r=t.canvasHeight):(Ru.setEnv("browser"),i=t.canvas.width,r=t.canvas.height),this.stage=(o={canvas:t.canvas,width:i,height:r,disableDirtyBounds:!1,background:t.theme.underlayBackgroundColor,dpr:t.internalProps.pixelRatio,enableLayout:!0,beforeRender:t=>{this.table.options.beforeRender&&this.table.options.beforeRender(t)},afterRender:t=>{this.table.options.afterRender&&this.table.options.afterRender(t),this.table.fireListeners("after_render",null)},canvasControled:!t.options.canvas,viewBox:t.options.viewBox,...t.options.renderOption},new Yu(o)),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 VA({x:0,y:0,width:e,height:i,clip:!0,pickable:!1}),t.tableGroup.role="table";const r=CM(0,0,!0);r.role="col-header",t.colHeaderGroup=r;const o=CM(0,0,!0);o.role="corner-header",t.cornerHeaderGroup=o;const n=CM(0,0,!0);n.role="row-header",t.rowHeaderGroup=n;const s=CM(e,0,!0);s.role="body",t.bodyGroup=s;const a=CM(0,0,!0);a.role="right-frozen",t.rightFrozenGroup=a;const l=CM(0,0,!0);l.role="bottom-frozen",t.bottomFrozenGroup=l;const h=CM(0,0);h.role="component",t.componentGroup=h;const c=CM(0,0,!0);c.role="corner-right-top-header",t.rightTopCornerGroup=c;const d=CM(0,0,!0);d.role="corner-right-bottom-header",t.rightBottomCornerGroup=d;const u=CM(0,0,!0);u.role="corner-left-bottom-header",t.leftBottomCornerGroup=u,t.tableGroup.addChild(s),t.tableGroup.addChild(n),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(o),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 HB(this.table),this.component.addToGroup(this.componentGroup),this.selectedRangeComponents=new Map,this.selectingRangeComponents=new Map}updateComponent(){this.component.updateStyle()}createSceneGraph(){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 ZT(this.table),EB(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0,!0),this.table.isPivotChart()&&(AM(this.rightTopCornerGroup,this.table.theme.cornerRightTopCellStyle||this.table.theme.cornerHeaderStyle||{}),AM(this.leftBottomCornerGroup,this.table.theme.cornerLeftBottomCellStyle||this.table.theme.cornerHeaderStyle||{}),AM(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||ST}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=ov(this.table,t,e);let o=i.attribute.width,n=i.attribute.height;return r&&(o/=r.end.col-r.start.col+1,n/=r.end.row-r.start.row+1),{width:o,height:n}}updateNextFrame(){this.updateContainerSync(),this.resetAllSelectComponent(),this.stage.renderNextFrame()}resetAllSelectComponent(){var t;this.table.stateManager.select?.ranges?.length>0&&((t=this).selectingRangeComponents.forEach(((e,i)=>{QT(e,i,t)})),t.selectedRangeComponents.forEach(((e,i)=>{QT(e,i,t)})))}hideHoverIcon(t,e){!function(t,e,i){-1!==t&&-1!==e&&(SM(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&&(SM(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&&(SM(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&&(SM(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,o){let n;return o.getCell(t,e).forEachChildren((t=>{t.role&&t.role.startsWith("icon")&&t.containsPoint(i,r,wi.GLOBAL)&&(n=t)})),n}(t,e,i,r,this)}setIconHoverStyle(t,e,i,r){!function(t,e,i,r,o){if((t.attribute.backgroundColor||t.attribute.hoverImage)&&SM(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=fl({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)}),o),t.tooltip){const{x1:r,x2:n,y1:s,y2:a}=t.globalAABBBounds,l={content:t.tooltip.title,referencePosition:{rect:{left:r,right:n,top:s,bottom:a,width:t.globalAABBBounds.width(),height:t.globalAABBBounds.height()},placement:t.tooltip.placement},disappearDelay:t.tooltip.disappearDelay,style:Object.assign({},o.table.internalProps.theme?.tooltipStyle,t.tooltip?.style)};o.table.internalProps.tooltipHandler.isBinded(l)||o.table.showTooltip(e,i,l)}}(t,e,i,0,this)}updateSortIcon(t,e,i,r,o,n,s){xM(t,e,i,r,o,n,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++)SM(e,i,(t=>"frozen"===t.attribute.funcType),(r=>{const o=t.table.internalProps.headerHelper.getFrozenIcon(e,i);fR(o,r),r.name=o.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),SM(t,e,(t=>t.attribute.funcType===cC.collapse||t.attribute.funcType===cC.expand),(t=>{fR(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)&&SM(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){SM(t,e,(t=>t.attribute.funcType===cC.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){SM(t,e,(t=>t.attribute.funcType===cC.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,o,n,s){!function(t,e,i,r,o,n,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,o),d=Math.max(e,r),u=Math.max(i,o),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=fl({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 C;l&&(C=fl({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:C,role:n}),t.tableGroup.insertAfter(y,"body"===n?t.bodyGroup:"columnHeader"===n?t.colHeaderGroup:"rowHeader"===n?t.rowHeaderGroup:"cornerHeader"===n?t.cornerHeaderGroup:"rightTopCorner"===n?t.rightTopCornerGroup:"rightFrozen"===n?t.rightFrozenGroup:"leftBottomCorner"===n?t.leftBottomCornerGroup:"bottomFrozen"===n?t.bottomFrozenGroup:t.rightBottomCornerGroup),l&&t.tableGroup.insertAfter(C,"body"===n?t.bodyGroup:"columnHeader"===n?t.colHeaderGroup:"rowHeader"===n?t.rowHeaderGroup:"cornerHeader"===n?t.cornerHeaderGroup:"rightTopCorner"===n?t.rightTopCornerGroup:"rightFrozen"===n?t.rightFrozenGroup:"leftBottomCorner"===n?t.leftBottomCornerGroup:"bottomFrozen"===n?t.bottomFrozenGroup:t.rightBottomCornerGroup)}(this,t,e,i,r,o,n,s)}moveSelectingRangeComponentsToSelectedRangeComponents(){rM(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(){oM(this)}updateCellSelectBorder(t,e=!0){tM(this,t,e)}removeFillHandleFromSelectComponents(){this.selectedRangeComponents.forEach(((t,e)=>{t.fillhandle?.delete(),t.fillhandle=void 0}))}recreateAllSelectRangeComponents(){oM(this),this.table.stateManager.select.ranges.forEach((t=>{tM(this,t)})),rM(this)}updateColWidth(t,e,i,r){!function(t,e,i,r){r||t.table._setColWidth(e,t.table.getColWidth(e)+i,!0);const o=t.getColGroup(e,!0),n=t.getColGroupInRightTopCorner(e);o&&!n&&xB(o,i,"col-corner",t),n&&xB(n,i,"right-top",t);const s=t.getColGroup(e);s&&xB(s,i,"row-body",t);const a=t.getColGroupInLeftBottomCorner(e);a&&xB(a,i,"left-bottom",t);const l=t.getColGroupInBottom(e);l&&xB(l,i,"bottom",t);const h=t.getColGroupInRightBottomCorner(e);h&&xB(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 o=[];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]);o.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]);o.push(t)}_t(i._selectedDataItemsInChart,o)||(i._selectedDataItemsInChart=o,i.internalProps.layoutMap.updateDataStateToChartInstance(),bM(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=yT(t,0,this.table.rowCount-1,this.table,!0);i!==e&&this.updateColWidth(t,i-e)}recalculateColWidths(){bT(this.table,0,this.table.colCount-1,!0)}recalculateRowHeights(){this.table.internalProps.useOneRowHeightFillAll=!1,uB(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){wB(this,t,e=Math.round(e),i),this.updateContainerHeight(t,e)}updateRowsHeight(t,e,i){for(let r=0;r<t.length;r++){const o=t[r];if(o>=this.proxy.rowStart&&o<=this.proxy.rowEnd){const t=e[r];wB(this,o,Math.round(t),i),this._updateContainerHeight(o,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(),UT(this.table),this.table.options.animationAppear&&function(t){if(!t.options.animationAppear)return;let e,i,r,o;!0===t.options.animationAppear?(e=500,i=0,r="one-by-one",o="column"):(e=t.options.animationAppear.duration??500,i=t.options.animationAppear.delay??0,r=t.options.animationAppear.type??"one-by-one",o=t.options.animationAppear.direction??"row");const{scenegraph:n,frozenColCount:s,frozenRowCount:a}=t,{colStart:l,colEnd:h,rowStart:c,rowEnd:d}=n.proxy;for(let t=0;t<=h;t++)for(let s=0;s<=d;s++){const a=n.highPerformanceGetCell(t,s);a&&"cell"===a.role&&a.forEachChildren((n=>{n.setAttribute("opacity",0),n.animate().wait("one-by-one"===r?("row"===o?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)}_T(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 o=t.getColWidth(e);(e<t.rowHeaderLevelCount||t.isPivotChart()&&e>=t.colCount-t.rightFrozenColCount)&&(i+=o),r+=o}if(r<e&&r>i){_T(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 o=0;this.cornerHeaderGroup.forEachChildrenSkipChild((t=>{o+=t.attribute.width})),this.cornerHeaderGroup.setAttribute("width",o),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,o=t.columnHeaderLevelCount,n=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount;let s=0;for(let e=o;e<n;e++)s+=t.getRowHeight(e);const a=r/s;for(let e=o;e<n;e++){let i;i=e===n-1?r-t.getRowsHeight(o,n-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 o=t.getRowHeight(e);(e<t.columnHeaderLevelCount||t.isPivotChart()&&e>=t.rowCount-t.bottomFrozenRowCount)&&(r+=o),i+=o}if((this._dealAutoFillHeightOriginRowsHeight??i)<e&&i-r>0){const o=t.columnHeaderLevelCount,n=t.isPivotChart()?t.rowCount-t.bottomFrozenRowCount:t.rowCount,s=(e-r)/(i-r);for(let i=o;i<n;i++){let a;a=i===n-1?e-r-t.getRowsHeight(o,n-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++)cM(t),dM(t),pM(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++)uM(t),gM(t),fM(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++)uM(t),gM(t),fM(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++)cM(t),dM(t),pM(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 o=!1;return t.forEachChildren(((t,n)=>{n+=e;const s=ov(this.table,i,n);s?t=this.getCell(s.start.col,s.start.row):t.setAttribute("width",r);const a=DS($A("padding",this.table._getCellStyle(i,n),i,n,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(n);t.attribute.height!==c&&(t.setAttribute("height",c),(d===h||c>d)&&(o=!0))})),o}updateHeaderPosition(t,e,i,r,o){!function(t,e,i,r,o,n){const s=n.scenegraph;for(let i=t;i<=e;i++){const t=n.getColWidth(i),e=n.scenegraph.getColGroup(i,!0),r=n.scenegraph.getColGroup(i),o=n.scenegraph.getColGroupInBottom(i),s=n.scenegraph.getColGroupInLeftBottomCorner(i),a=n.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)}))),o&&(o.setAttribute("width",t),o.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"===o)for(let i=t;i<=e;i++){const t=n.scenegraph.getColGroup(i);t?.setAttribute("chartInstance",void 0);for(let t=0;t<=n.frozenRowCount-1;t++)s.updateCellContent(i,t);for(let t=s.bodyRowStart;t<=s.bodyRowEnd;t++)s.updateCellContent(i,t);for(let t=n.rowCount-n.bottomFrozenRowCount;t<=n.rowCount-1;t++)s.updateCellContent(i,t)}else{for(let t=0;t<=n.frozenColCount-1;t++){const e=n.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=n.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}for(let t=n.colCount-n.rightFrozenColCount;t<=n.colCount-1;t++){const e=n.scenegraph.getColGroup(t);e?.setAttribute("chartInstance",void 0);for(let e=i;e<=r;e++)s.updateCellContent(t,e)}}}(t,e,i,r,o,this.table)}updateContainerAttrWidthAndX(){const t=wM(this.cornerHeaderGroup,0),e=wM(this.rowHeaderGroup,0),i=this.colHeaderGroup.hasChildNodes()&&this.colHeaderGroup.firstChild?wM(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?wM(this.bodyGroup,this.bodyGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bodyGroup.firstChild.col-1):0):0,o=wM(this.rightFrozenGroup,0);this.bottomFrozenGroup.hasChildNodes()&&this.bottomFrozenGroup.firstChild&&wM(this.bottomFrozenGroup,this.bottomFrozenGroup.firstChild.col>0?this.table.getColsWidth(this.table.frozenColCount??0,this.bottomFrozenGroup.firstChild.col-1):0),wM(this.leftBottomCornerGroup,0),wM(this.rightTopCornerGroup,0),wM(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(o-this.rightFrozenGroup.attribute.width),this.rightTopCornerGroup.setDeltaWidth(o-this.rightTopCornerGroup.attribute.width),this.rightBottomCornerGroup.setDeltaWidth(o-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.updateNextFrame())}updateCellContentWhileResize(t,e){const i=this.table.getBodyColumnType(t,e),r=this.getCell(t,e);"image"!==i&&"video"!==i||ZA(r,t,e,this.table)}createFrameBorder(){this.updateTableSize();const t=!this.isPivot&&!this.table.internalProps.transpose;EB(this.bodyGroup,this.table.theme.bodyStyle.frameStyle,this.bodyGroup.role,t?[!0,!0,!0,!1]:void 0),EB(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),EB(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle,this.colHeaderGroup.role,t?[!0,!0,!0,!1]:void 0),EB(this.cornerHeaderGroup,this.isPivot?this.table.theme.cornerHeaderStyle.frameStyle:this.table.theme.headerStyle.frameStyle,this.cornerHeaderGroup.role,t?[!0,!1,!0,!0]:void 0),EB(this.tableGroup,this.table.theme.frameStyle,this.tableGroup.role,void 0)}getResizeColAt(t,e,i,r=8){let o;if(!i){const i=this.table.getDrawRange();return e>=i.top&&e<=i.bottom?(o=this.table.getCellAt(t-r,e),o):{col:-1,row:-1}}return t<i.globalAABBBounds.x1+r?o={col:i.col-1,row:i.row,x:i.globalAABBBounds.x1}:i.globalAABBBounds.x2-r<t&&(o={col:i.col,row:i.row,x:i.globalAABBBounds.x2}),o&&this.table.rightFrozenColCount>0&&o.col===this.table.colCount-this.table.rightFrozenColCount-1&&this.table.tableNoFrameWidth-this.table.getFrozenColsWidth()-this.table.getRightFrozenColsWidth()+this.table.scrollLeft<this.bodyGroup.attribute.width&&(o.col=o.col+1,o.rightFrozen=!0),o||{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:o,rightFrozenGroup:n,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--)mM(n,e.getColGroup(r),n.firstChild),mM(o,e.getColGroup(r,!0),o.firstChild),mM(s,e.getColGroupInBottom(r),s.firstChild);let r=0;n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,o.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 o=e.getColGroupInRightTopCorner(r);o.setAttribute("x",h.lastChild.attribute.x+i.getColWidth(h.lastChild.col)),h.appendChild(o);const n=e.getColGroupInRightBottomCorner(r);n.setAttribute("x",a.lastChild.attribute.x+i.getColWidth(a.lastChild.col)),a.appendChild(n)}let r=0;n.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,o.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width})),r=0,s.forEachChildren((t=>{t.setAttribute("x",r),r+=t.attribute.width}))}n.setAttribute("width",i.getColsWidth(i.colCount-t,i.colCount-1)),o.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:o,leftBottomCornerGroup:n,rightBottomCornerGroup:s}=e;o.childrenCount||(r.table.isPivotChart()||(TT(n,0,0,0,i.frozenColCount-1,0,-1,"rowHeader",i),TT(s,0,0,i.colCount-i.rightFrozenColCount,i.colCount-1,0,-1,"body",i)),TT(o,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 o=e.getColGroupInLeftBottomCorner(r);for(let n=i.rowCount-a-1;n>=i.rowCount-t;n--)mM(o,e.getCell(r,n,!0),o.firstChild);let n=0;o.forEachChildren((t=>{t.setAttribute("y",n),n+=i.getRowHeight(t.row)}))}for(let o=r.colStart;o<=r.colEnd;o++){const r=e.getColGroupInBottom(o);for(let n=i.rowCount-a-1;n>=i.rowCount-t;n--)mM(r,e.getCell(o,n,!0),r.firstChild);let n=0;r.forEachChildren((t=>{t.setAttribute("y",n),n+=i.getRowHeight(t.row)}))}if(i.rightFrozenColCount>0)for(let r=i.colCount-i.rightFrozenColCount;r<i.colCount;r++){const o=e.getColGroupInRightBottomCorner(r);for(let n=i.rowCount-a-1;n>=i.rowCount-t;n--)mM(o,e.getCell(r,n,!0),o.firstChild);let n=0;o.forEachChildren((t=>{t.setAttribute("y",n),n+=i.getRowHeight(t.row)}))}}else if(t<a){for(let r=0;r<i.rowHeaderLevelCount;r++){const o=e.getColGroup(r);for(let n=i.rowCount-a;n<i.rowCount-t;n++){const t=e.getCell(r,n,!0);t.setAttribute("y",o.lastChild.attribute.y+i.getRowHeight(o.lastChild.row)),o.appendChild(t)}const n=e.getColGroupInLeftBottomCorner(r);let s=0;n.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}for(let o=r.colStart;o<=r.colEnd;o++){const r=e.getColGroup(o);for(let n=i.rowCount-a;n<i.rowCount-t;n++){const t=e.getCell(o,n,!0);t.setAttribute("y",r.lastChild.attribute.y+i.getRowHeight(r.lastChild.row)),r.appendChild(t)}const n=e.getColGroupInBottom(o);let s=0;n.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 o=e.getColGroup(r);for(let n=i.rowCount-a;n<i.rowCount-t;n++){const t=e.getCell(r,n,!0);t.setAttribute("y",o.lastChild.attribute.y+i.getRowHeight(o.lastChild.row)),o.appendChild(t)}const n=e.getColGroupInRightBottomCorner(r);let s=0;n.forEachChildren((t=>{t.setAttribute("y",s),s+=i.getRowHeight(t.row)}))}}o.setAttribute("height",i.getRowsHeight(i.rowCount-t,i.rowCount-1)),n.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),IB(this.bodyGroup),this.rowHeaderGroup.attribute.width,LB(this.bodyGroup,this.table.theme.bodyStyle.frameStyle)),this.colHeaderGroup.border&&(this.colHeaderGroup.appendChild(this.colHeaderGroup.border),IB(this.colHeaderGroup),this.cornerHeaderGroup.attribute.width,LB(this.colHeaderGroup,this.table.theme.headerStyle.frameStyle)),this.rowHeaderGroup.border&&(this.rowHeaderGroup.appendChild(this.rowHeaderGroup.border),IB(this.rowHeaderGroup)),this.cornerHeaderGroup.border&&(this.cornerHeaderGroup.appendChild(this.cornerHeaderGroup.border),IB(this.cornerHeaderGroup)),function(t){if(!t.theme.frameStyle.cornerRadius)return;const e=t.theme.frameStyle.cornerRadius,{cornerHeaderGroup:i,colHeaderGroup:r,rowHeaderGroup:o,bodyGroup:n,rightTopCornerGroup:s,leftBottomCornerGroup:a,rightBottomCornerGroup:l,rightFrozenGroup:h,bottomFrozenGroup:c}=t.scenegraph;i.setAttribute("cornerRadius",0),r.setAttribute("cornerRadius",0),o.setAttribute("cornerRadius",0),n.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?FB(i,[e,0,0,0]):r.attribute.height>0?FB(r,[e,0,0,0]):o.attribute.width>0?FB(o,[e,0,0,0]):FB(n,[e,0,0,0]),a.attribute.width>0&&a.attribute.height>0?FB(a,[0,0,0,e]):c.attribute.height>0?FB(c,[0,0,0,e]):o.attribute.width>0?FB(o,[0,0,0,e]):FB(n,[0,0,0,e]),s.attribute.width>0&&s.attribute.height>0?FB(s,[0,e,0,0]):r.attribute.height>0?FB(r,[0,e,0,0]):h.attribute.width>0?FB(h,[0,e,0,0]):FB(n,[0,e,0,0]),l.attribute.width>0&&l.attribute.height>0?FB(l,[0,0,e,0]):h.attribute.width>0?FB(h,[0,0,e,0]):c.attribute.height>0?FB(c,[0,0,e,0]):FB(n,[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=et(i.attribute.text)?i.attribute.text.join(""):i.attribute.text;let o="";if(tt(i.cache.clipedText)?o=i.cache.clipedText:i.cache.layoutData?.lines?.forEach((t=>{o+=t.str})),o!==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,o){this.component.drillIcon.update(t,e,i,r,o,this)}updateCellContent(t,e){if(!this.clear)return RR(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=JC(e.map((t=>t.row))).sort(((t,e)=>t-e)),o=JC(i.map((t=>t.row))).sort(((t,e)=>t-e)),n=this.table.getAllRowsHeight()-[...r,...o].reduce(((t,e)=>t+this.table.getRowHeight(e)),0)<=this.table.tableNoFrameHeight;if(nM(t,e,i,this.table),this.recalculateColWidths(),"adaptive"===this.table.heightMode||this.table.autoFillHeight&&(this.table.getAllRowsHeight()<=this.table.tableNoFrameHeight||n))this.table.scenegraph.recalculateRowHeights();else if("autoHeight"===this.table.heightMode)for(let t=0;t<o.length;t++){const e=o[t],i=this.table.getRowHeight(e),r=gB(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=[]){RM(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}}function HM(t,e,i){const r=t.highPerformanceGetCell(e,i);if("cell"===r.role&&Y(r.mergeStartCol)&&Y(r.mergeStartRow)&&Y(r.mergeEndCol)&&Y(r.mergeEndRow)){const{colStart:e,colEnd:i,rowStart:o,rowEnd:n}=CB(r,t);for(let r=e;r<=i;r++)for(let e=o;e<=n;e++){t.highPerformanceGetCell(r,e).addUpdateBoundTag()}}else r.addUpdateBoundTag()}function EM(t,e,i,r,o){const n=t.table;for(let i=0;i<n.columnHeaderLevelCount;i++)HM(t,e,i);const s=t.getColGroup(e);return s?.addUpdateBoundTag(),!0}function LM(t,e,i,r,o,n){const s=t.table;for(let i=0;i<s.columnHeaderLevelCount;i++)HM(t,e,i);const a=t.getColGroup(e);return a?.addUpdateBoundTag(),!0}function kM(t,e,i,r,o){const n=t.table;for(let e=0;e<n.colCount;e++)HM(t,e,i);return!0}function IM(t,e,i,r,o,n){const s=t.table;for(let e=0;e<s.colCount;e++)HM(t,e,i);return!0}function FM(t,e,i){const{table:r}=t,{scenegraph:o}=r,{highlightScope:n,singleStyle:s,disableHeader:a,cellPos:l,cellPosContainHeader:h}=t.hover,c=l.col,d=l.row;if(n===oC.none||a&&(h.col!==e||h.row!==i)){const t=h.col,r=h.row;o.hideHoverIcon(t,r),o.showHoverIcon(e,i),h.col=e,h.row=i}if((a&&r.isHeader(e,i)||n===oC.none)&&(e=-1,i=-1),c===e&&d===i)return;o.deactivateChart(c,d),o.activateChart(e,i);let u=!1;const{ranges:g,highlightScope:p}=t.select;if(-1!==c&&-1!==d&&(u=function(t,e,i,r,o,n,s){let a=!1;n===oC.single?a=!!function(t,e,i,r,o){return HM(t,e,i),!0}(t,e,i)||a:n===oC.row?a=!!kM(t,0,i)||a:n===oC.column?a=!!EM(t,e)||a:n===oC.cross&&(a=!!kM(t,0,i)||a,a=!!EM(t,e)||a);return a}(o,c,d,0,0,n),a||o.hideHoverIcon(c,d)),-1===e||-1===i)return l.col=-1,l.row=-1,void(!u||c===e&&d===i||t.table.scenegraph.updateNextFrame());n===oC.single?u=!!function(t,e,i,r,o){return HM(t,e,i),!0}(o,e,i)||u:n===oC.row?u=!!IM(o,0,i)||u:n===oC.column?u=!!LM(o,e)||u:n===oC.cross&&(u=!!IM(o,0,i)||u,u=!!LM(o,e)||u),n===oC.none||a||o.showHoverIcon(e,i),l.col=e,l.row=i,u&&t.table.scenegraph.updateNextFrame()}function zM(t,e,i,r){let o,n=null,s=!1;if(Array.isArray(i.sortState))for(let r=0;r<i.sortState.length&&(o=i.sortState[r],o&&(n=i._getHeaderCellBySortState(o)),n&&(s=OM(t,e,n.col,n.row,i)),!s);r++);else o=i.sortState,o&&(n=i._getHeaderCellBySortState(o)),n&&(s=OM(t,e,n.col,n.row,i));const a=i.getHeaderDefine(t,e);o&&s&&a?.sort?o.order="asc"===o.order?"desc":"desc"===o.order?"normal":"asc":a?.sort?o={field:i.getHeaderField(t,e),order:"asc"}:s&&a?.showSort||(o={field:i.getHeaderField(t,e),order:"normal"}),o.event=r;i.fireListeners(xw.SORT_CLICK,o).includes(!1)||(i.internalProps.sortState=o,i.stateManager.setSortState(o),a?.sort&&function(t,e,i){const r=e.internalProps.layoutMap.headerObjects.find((e=>e&&e.field===t.field));if(!r)return;const{field:o}=r;if(null===o)return;"function"==typeof i.sort?e.dataSource.sort(o,t.order||"asc",i.sort):e.dataSource.sort(o,t.order||"asc",qC)}(o,i,a),i.internalProps.useOneRowHeightFillAll=!1,i.internalProps.layoutMap.clearCellRangeMap(),i.scenegraph.sortCell(),i.stateManager.updateSelectPos(-1,-1))}function OM(t,e,i,r,o){return o._getLayoutCellId(t,e)===o._getLayoutCellId(i,r)}const DM=lw(xw,{PIVOT_SORT_CLICK:"pivot_sort_click",DRILLMENU_CLICK:"drillmenu_click"}),WM=lw(xw,{VCHART_EVENT_TYPE:"vchart_event_type"});function NM(t,e,i,r,o){for(let i=t;i<=e;i++)o._clearColRangeWidthsMap(i);for(let t=i;t<=r;t++)o._clearRowRangeHeightsMap(t)}function GM(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 jM(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 VM(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 UM{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=Sw((()=>{this.updateInteractionState(rC.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=rC.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 fe,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=rC.default,this.select={highlightScope:oC.single,ranges:[],cellPos:{col:-1,row:-1},selecting:!1},this.fillHandle={isFilling:!1,startX:void 0,startY:void 0},this.hover={highlightScope:oC.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 fe,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=oC.none:"cross"===t?this.hover.highlightScope=oC.cross:"row"===t?this.hover.highlightScope=oC.row:"column"===t?this.hover.highlightScope=oC.column:"cell"===t&&(this.hover.highlightScope=oC.single),this.hover.singleStyle=!e,this.hover.disableHeader=i,(this.hover.highlightScope===oC.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?oC.none:"cross"===r?oC.cross:"row"===r?oC.row:"column"===r?oC.column:oC.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=>{gw(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===rC.scrolling&&rC.default}updateHoverhighlightScope(t){this.hover.highlightScope!==t&&(this.hover.highlightScope=t)}updateHoverPos(t,e){FM(this,t,e)}updateSelectPos(t,e,i=!1,r=!1,o=!1,n=!1,s=!1){-1!==e&&-1!==e&&(this.select.selecting=!0),function(t,e,i,r,o,n,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===rC.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(n){t.select.ranges=[],c.deleteAllSelectBorder();let e=0,i=0;const{disableHeaderSelect:r,disableRowSeriesNumberSelect:o}=l.options.keyboardOptions?.selectAllOnCtrlA||{};r&&(e=l.rowHeaderLevelCount,i=l.columnHeaderLevelCount),(o||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 n=t.select.ranges[t.select.ranges.length-1];c.updateCellSelectBorder(n,!1)}else if(-1===g.col||-1===g.row||-1!==e&&-1!==i)if(h!==rC.default||l.eventManager.isDraging||l.stateManager.isResizeCol()){if((h===rC.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 o=t.select.ranges[t.select.ranges.length-1];if(o){if(l.internalProps.layoutMap.isSeriesNumberInBody(o.start.col,o.start.row))r=!1,o.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)o.start.row=o.end.row=i;else if(i<=t.fillHandle.beforeFillMinRow){if(o.start.row<o.end.row){const t=o.start.row;o.start.row=o.end.row,o.end.row=t}o.end.row=i}else i===t.fillHandle.beforeFillMaxRow&&(o.start.row>o.end.row?o.start.row=i:o.end.row=i);else if("bottom"===t.fillHandle.direction){if(i>=t.fillHandle.beforeFillMaxRow){if(o.start.row>o.end.row){const t=o.start.row;o.start.row=o.end.row,o.end.row=t}o.end.row=i}}else if("left"===t.fillHandle.direction)if(e===t.fillHandle.beforeFillMinCol&&e===t.fillHandle.beforeFillMaxCol)o.start.col=o.end.col=e;else if(e<=t.fillHandle.beforeFillMinCol){if(o.start.col<o.end.col){const t=o.start.col;o.start.col=o.end.col,o.end.col=t}o.end.col=e}else e===t.fillHandle.beforeFillMaxCol&&(o.start.col>o.end.col?o.start.col=e:o.end.col=e);else if("right"===t.fillHandle.direction&&e>=t.fillHandle.beforeFillMaxCol){if(o.start.col>o.end.col){const t=o.start.col;o.start.col=o.end.col,o.end.col=t}o.end.col=e}}else o.end={col:e,row:i},a&&(o.skipBodyMerge=!0);c.updateCellSelectBorder(o,r)}}}else{const n=t.select.ranges[t.select.ranges.length-1];if(r&&n){if(o||(g.col=e,g.row=i),"cell"!==t.select.headerSelectMode&&l.isColumnHeader(e,i)){const t=Math.min(n.start.col,n.end.col,e),r=Math.max(n.start.col,n.end.col,e),o=Math.min(n.start.row,n.end.row,i),s=l.rowCount-1;n.start={col:t,row:o},n.end={col:r,row:s}}else if("cell"!==t.select.headerSelectMode&&l.isRowHeader(e,i)){const t=Math.min(n.start.col,n.end.col,e),r=l.colCount-1,o=Math.min(n.start.row,n.end.row,i),s=Math.max(n.start.row,n.end.row,i);n.start={col:t,row:o},n.end={col:r,row:s}}else n.end={col:e,row:i};c.deleteLastSelectedRangeComponents(),c.updateCellSelectBorder(n)}else{let r=!0;if(-1===g.col||-1===g.row||o||(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 n=t.select.ranges?.[t.select.ranges.length-1];n&&c.updateCellSelectBorder(n,r)}}else g.col=-1,g.row=-1,t.select.ranges=[],c.deleteAllSelectBorder();c.updateNextFrame()}(this,t,e,i,r,o,n,s)}checkCellRangeInSelect(t,e){return function(t,e,i,r){for(let r=0;r<i.length;r++)if(fw(i[r],{start:t,end:e}))return!0;return!1}(t,e,this.select.ranges,this.select.highlightScope)}updateHoverIcon(t,e,i,r,o){if(this.residentHoverIcon?.icon&&i===this.residentHoverIcon?.icon)return;const n=GM(i);if(n)if("richtext-icon"===n.type){const i=n.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:n.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=n.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){if(this.select.selecting){if(this.select.selecting=!1,0===this.select.ranges.length)return;const i=this.select.ranges[this.select.ranges.length-1];let r=!1;for(let t=0;t<this.select.ranges.length-1;t++){const e=this.select.ranges[t];if(e&&e.start.col===i.start.col&&e.start.row===i.start.row&&e.end.col===i.end.col&&e.end.row===i.end.row){r=!0;break}}r?(this.select.ranges.pop(),(e=this.table.scenegraph).selectingRangeComponents.forEach(((t,e)=>{t.rect.delete(),t.fillhandle?.delete()})),e.selectingRangeComponents=new Map,this.table.scenegraph.selectingRangeComponents.clear()):this.table.scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();const o=this.select.ranges[this.select.ranges.length-1].end.col,n=this.select.ranges[this.select.ranges.length-1].end.row;t&&this.table.fireListeners(xw.SELECTED_CELL,{ranges:this.select.ranges,col:o,row:n})}else t&&0===this.select.ranges.length&&this.table.fireListeners(xw.SELECTED_CLEAR,{});var e}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),this.updateSelectPos(-1,-1),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 o=i.table.getColWidth(i.columnResize.col);let n=o;n+=r;const s=i.table.getMinColWidth(i.columnResize.col),a=i.table.getMaxColWidth(i.columnResize.col);if(n<s||n>a){if(o===s||o===a)return;r=o-s>a-o?a-o:s-o}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),o=i.table.getMaxColWidth(i.columnResize.col+1);let n=t;if(n-=r,n<e||n>o){if(t===e||t===o)return;r=t-e>o-t?o-t:e-t}n-r<i.table.internalProps.limitMinWidth&&(r=n-i.table.internalProps.limitMinWidth)}r=Math.ceil(r),i.columnResize.col<i.table.rowHeaderLevelCount||i.columnResize.col>=i.table.colCount-i.table.rightFrozenColCount?jM(r,i):"indicator"===i.table.internalProps.columnResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,o,n;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];o=r.dimensionKey,n=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&&o===a.dimensionKey&&n===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),o=i.getHeadNodeByRowOrColDimensions(r.colHeaderPaths.slice(0,r.colHeaderPaths.length-1)),n=o.startInTotal+e.table.frozenColCount,s=o.startInTotal+e.table.frozenColCount+o.size-1,a=e.table.getColsWidth(n,s),l=t;for(let t=n;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):jM(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),this.updateSelectPos(-1,-1),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 o=i.table.getRowHeight(i.rowResize.row)+r;if(o<i.table.internalProps.limitMinHeight&&(o=i.table.internalProps.limitMinHeight,r=o-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?VM(r,i):"indicator"===i.table.internalProps.rowResizeType?function(t,e){const i=e.table.internalProps.layoutMap;let r,o,n;if(i.indicatorsAsCol){const t=i.getCellHeaderPaths(e.table.rowHeaderLevelCount-1,e.rowResize.row),r=t.rowHeaderPaths?.[t.rowHeaderPaths.length-1];o=r?.dimensionKey,n=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&&o===a.dimensionKey&&n===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),o=i.getHeadNodeByRowOrColDimensions(r.rowHeaderPaths.slice(0,r.rowHeaderPaths.length-1)),n=o.startInTotal+e.table.frozenRowCount,s=o.startInTotal+e.table.frozenRowCount+o.size-1,a=e.table.getRowsHeight(n,s),l=t;for(let t=n;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):VM(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(xw.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(xw.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,o){if(!("canMoveHeaderPosition"in o.table.internalProps.layoutMap))return;o.columnMove.moving=!0,o.columnMove.colSource=t,o.columnMove.rowSource=e,o.columnMove.x=i-o.table.tableX,o.columnMove.y=r-o.table.tableY;const n=o.table.getCellLocation(t,e),s="columnHeader"===n?o.columnMove.x:"rowHeader"===n||o.table.internalProps.layoutMap.isSeriesNumberInBody(t,e)?o.columnMove.y:0;o.table.scenegraph.component.showMoveCol(t,e,s),o.table.stateManager.updateSelectPos(-1,-1),o.table.scenegraph.updateNextFrame()}(t,e,i,r,this)}updateMoveCol(t,e,i,r){!function(t,e,i,r,o){if(!("canMoveHeaderPosition"in o.table.internalProps.layoutMap))return;const n=function(t,e,i){const r=i.getCellRange(t.col,t.row);if(i.isColumnHeader(t.col,t.row)){const o=i.getCellRange(e.col,r.start.row);e.row>=i.columnHeaderLevelCount&&(e.row=i.columnHeaderLevelCount-1),e.col>=t.col?e.col=o.end.col:e.col=o.start.col}else if(i.isRowHeader(t.col,t.row)){const o=i.internalProps.layoutMap,n=i.getCellRange(r.start.col,e.row);if(e.col>=i.rowHeaderLevelCount+o.leftRowSeriesNumberColumnCount&&(e.col=i.rowHeaderLevelCount+o.leftRowSeriesNumberColumnCount-1),"tree"===o.rowHierarchyType){const r=o.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,n=o.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths;if(r.length<=n.length){const o=n[r.length-1];o&&(e.row>=t.row?e.row=o.startInTotal+o.size-1+i.columnHeaderLevelCount:e.row=o.startInTotal+i.columnHeaderLevelCount)}}else e.row>=t.row?e.row=n.end.row:e.row=n.start.row}return e}({col:o.columnMove.colSource,row:o.columnMove.rowSource},{col:t,row:e},o.table);let s,a,l,h;o.columnMove.x=i-o.table.tableX,o.columnMove.y=r-o.table.tableY,o.columnMove.colTarget=n.col,o.columnMove.rowTarget=n.row,o.table.internalProps.layoutMap.canMoveHeaderPosition({col:o.columnMove.colSource,row:o.columnMove.rowSource},{col:o.columnMove.colTarget,row:o.columnMove.rowTarget})?o.updateCursor("grabbing"):o.updateCursor("not-allowed");const c=o.table.getCellLocation(o.columnMove.colSource,o.columnMove.rowSource);"columnHeader"===c?(a=o.columnMove.x,s=o.table.isLeftFrozenColumn(t)?o.columnMove.colTarget>=o.columnMove.colSource?o.table.getColsWidth(0,o.columnMove.colTarget):o.table.getColsWidth(0,o.columnMove.colTarget-1):o.table.isRightFrozenColumn(t)?o.table.tableNoFrameWidth-o.table.getColsWidth(n.col+1,o.table.colCount-1):(o.columnMove.colTarget>=o.columnMove.colSource?o.table.getColsWidth(0,o.columnMove.colTarget):o.table.getColsWidth(0,o.columnMove.colTarget-1))-o.table.stateManager.scroll.horizontalBarPos):("rowHeader"===c||o.table.internalProps.layoutMap.isSeriesNumberInBody(t,e))&&(h=o.columnMove.y,l=o.table.isFrozenRow(e)?o.columnMove.rowTarget>=o.columnMove.rowSource?o.table.getRowsHeight(0,o.columnMove.rowTarget):o.table.getRowsHeight(0,o.columnMove.rowTarget-1):o.table.isBottomFrozenRow(e)?o.table.tableNoFrameHeight-o.table.getRowsHeight(n.row+1,o.table.rowCount-1):(o.columnMove.rowTarget>=o.columnMove.rowSource?o.table.getRowsHeight(0,o.columnMove.rowTarget):o.table.getRowsHeight(0,o.columnMove.rowTarget-1))-o.table.stateManager.scroll.verticalBarPos),o.table.scenegraph.component.updateMoveCol(a,s,h,l),o.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 o=t.table.getCellRange(t.columnMove.colSource,t.columnMove.rowSource),n=t.table.getCellRange(t.columnMove.colTarget,t.columnMove.rowTarget),s=Math.min(o.start.col,n.start.col,e.start.col,i.start.col),a=Math.max(o.end.col,n.end.col,e.end.col,i.end.col),l=Math.min(o.start.row,n.start.row,e.start.row,i.start.row);let h=Math.max(o.end.row,n.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?NM(s,a,0,-1,t.table):NM(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+=o.end.col-o.start.col+1:t.table.isLeftFrozenColumn(t.columnMove.colSource)&&!t.table.isLeftFrozenColumn(t.columnMove.colTarget)&&(t.table.frozenColCount-=o.end.col-o.start.col+1),t.table.isRightFrozenColumn(t.columnMove.colTarget)&&!t.table.isRightFrozenColumn(t.columnMove.colSource)?t.table.rightFrozenColCount+=o.end.col-o.start.col+1:t.table.isRightFrozenColumn(t.columnMove.colSource)&&!t.table.isRightFrozenColumn(t.columnMove.colTarget)&&(t.table.rightFrozenColCount-=o.end.col-o.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(xw.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(xw.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)),Y(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(xw.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)),Y(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(xw.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,Y(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(xw.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,Y(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(xw.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,SB.contextmenu)),this.table.fireListeners(xw.SHOW_MENU,{x:i,y:r,col:t,row:e,type:"contextmenu"}))}triggerDropDownMenu(t,e,i,r,o){this.table.fireListeners(xw.DROPDOWN_ICON_CLICK,{col:t,row:e,event:o}),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,SB.dropDown),this.menu.bounds=this.table.scenegraph.component.menu.bounds),this.table.fireListeners(xw.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 o=this.table.scenegraph.getCell(t,e);let n;o.forEachChildren((t=>t.attribute.funcType===cC.dropDown&&(n=t,!0))),n&&(this.residentHoverIcon={col:t,row:e,icon:n},this.table.scenegraph.setIconHoverStyle(this.residentHoverIcon.icon,this.residentHoverIcon.col,this.residentHoverIcon.row,o),this.table.scenegraph.residentHoverIcon(t,e))}hideMenu(){this.menu.isShow&&(this.table.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),this.table.fireListeners(xw.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],o=this.table.getCellRange(i,r);if(o)for(let t=o.start.col;t<=o.end.col;t++)for(let e=o.start.row;e<=o.end.row;e++)this.table.scenegraph.updateCellContent(t,e)}}dropDownMenuIsHighlight(t,e,i){const r=this.menu.dropDownMenuHighlight;if(Array.isArray(r))for(let o=0;o<r.length;o++){const n=r[o];let{col:s,row:a}=n;const{field:l,menuKey:h}=n;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(Y(s)&&Y(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(q(e)&&(e.menuKey||e.text)===(h||"")&&t===i)return!0;if(tt(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),o=i?i.toUpperCase():"DESC",n="ASC"===o?"DESC":"ASC";return this.table.sort(t,e,n),void this.table.fireListeners(DM.PIVOT_SORT_CLICK,{col:t,row:e,order:o||"normal",dimensionInfo:this.table.internalProps.layoutMap.getPivotDimensionInfo(t,e),cellLocation:this.table.getCellLocation(t,e),event:r})}const o=this.sort.col,n=this.sort.row;zM(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,o,n,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 o=this.table.internalProps.layoutMap.getHeaderCellAddressByField(t.field);this.sort.col=o.col,this.sort.row=o.row;const n=this.table.scenegraph.getCell(this.sort.col,this.sort.row).getChildByName(r,!0);this.table.scenegraph.updateSortIcon(this.sort.col,this.sort.row,n,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,o,n){this.drill.dimensionKey=t,this.drill.title=e,this.drill.drillDown=i,this.drill.drillUp=r,this.drill.col=o,this.drill.row=n,function(t,e,i,r,o){const n=o.getCellLocation(t,e);let s=0,a=0,l=!1;"columnHeader"===n?(s=o.getColsWidth(0,o.rowHeaderLevelCount-1)-(0===o.frozenColCount?o.scrollLeft:0),a=o.getRowsHeight(0,e-1)+o.getRowHeight(e)/2,l=!0):"rowHeader"===n&&(a=o.getRowsHeight(0,o.columnHeaderLevelCount-1),s=o.getColsWidth(0,t-1)+o.getColWidth(t)/2,l=!0),o.scenegraph.updateDrill(l,s,a,i,r)}(o,n,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"),o=r?.getChildByName("highlight-line"),n=r?.getChildByName("highlight-symbol");o&&o.setAttributes({visible:!1,pickable:!1}),n&&n.setAttributes({visible:!1,pickable:!1}),i.scenegraph.updateNextFrame()}(this.sparkLine.col,this.sparkLine.row,this.table);let o=!1;-1!==t&&-1!==e&&(o=function(t,e,i,r,o){const n=o.scenegraph.getCell(t,e).getChildByName("sparkline"),s=n?.getChildByName("sparkline-line"),a=n?.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-=n.globalAABBBounds.x1,n.globalAABBBounds.y1;for(let t=0;t<d.length;t++){const{x:e,y:r,defined:o,rawData:g}=d[t];if(Math.abs(i-e)<l/2&&(u={point:d[t],points:d,pointsBandWidth:l,pointData:g},o)){const t=n.getChildByName("highlight-line");if(t)t.setAttributes({points:[{x:e,y:c},{x:e,y:h}],visible:!0,pickable:!0});else{const t=ul({points:[{x:e,y:c},{x:e,y:h}],lineWidth:s.hover?.strokeWidth,stroke:s.hover?.stroke});t.name="highlight-line",n.addChild(t)}const i=n.getChildByName("highlight-symbol");if(i)i.setAttributes({x:e,y:r,visible:!0,pickable:!0});else{const t=hl({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",n.addChild(t)}break}}if(o.scenegraph.updateNextFrame(),u){const i={col:t,row:e,field:o.getHeaderField(t,e),value:o.getCellValue(t,e),dataValue:o.getCellOriginValue(t,e),cellHeaderPaths:o.internalProps.layoutMap.getCellHeaderPaths(t,e),title:o.getBodyColumnDefine(t,e).title,cellRange:o.getCellRelativeRect(t,e),sparkline:{pointData:u.pointData},scaleRatio:o.canvas.getBoundingClientRect().width/o.canvas.offsetWidth};o.fireListeners(xw.MOUSEOVER_CHART_SYMBOL,i)}return!0}(t,e,i,0,this.table)),o?(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,o){const n=o.table.getRecordShowIndexByCell(t,e);if(n>=0){const t=o.table.dataSource.getIndexKey(n);o.checkedState[t]||(o.checkedState[t]={}),o.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,o){if(o.table.isHeader(t,e)){if(Y(o.headerCheckedState[i]))return o.headerCheckedState[i];if("function"==typeof r)return;if(Y(r))o.headerCheckedState[i]=r;else if(o.checkedState?.length>0)return o.updateHeaderCheckedState(i);return o.headerCheckedState[i]}const n=o.table.getRecordShowIndexByCell(t,e);if(n>=0){const t=o.table.dataSource.getIndexKey(n);if(Y(o.checkedState[t]?.[i]))return o.checkedState[t][i];o.checkedState[t]||(o.checkedState[t]={}),o.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 o=t[r];let n;if(q(o)?n=o.checked:"boolean"==typeof o&&(n=o),null==n){const t=e._headerCheckFuncs[r];if(t){const s=e.table.getCellAddrByFieldRecord(r,i);n=dw(t,{col:s.col,row:s.row,table:e.table,context:null,value:o})}}e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][r]=n}))}))}(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 o=r[t];let n;q(o)?n=o.checked:"boolean"==typeof o&&(n=o),e.checkedState[i]||(e.checkedState[i]={}),e.checkedState[i][t]=n}))}}(t,this)}setRadioState(t,e,i,r,o){!function(t,e,i,r,o,n){const s=n.table.getRecordShowIndexByCell(t,e);if(s>=0){const t=n.table.dataSource.getIndexKey(s);"column"===r?ot(o)?(n.radioState[i]={},n.radioState[i][t]=o):n.radioState[i]=t:(n.radioState[i]||(n.radioState[i]={}),ot(o)?n.radioState[i][t]=o:n.radioState[i][t]=!0)}}(t,e,i,r,o,this)}syncRadioState(t,e,i,r,o,n){return function(t,e,i,r,o,n,s){const a=s.table.getRecordShowIndexByCell(t,e);if(a>=0){const t=s.table.dataSource.getIndexKey(a);if("column"===r){if(!Y(s.radioState[i])&&n)return ot(o)?(s.radioState[i]={},s.radioState[i][t]=o):s.radioState[i]=t,!0;if(ot(s.radioState[i])&&!ot(o))return s.radioState[i]===t;if(ot(s.radioState[i])&&ot(o))return!1;if(q(s.radioState[i])&&!ot(o))return!1;if(q(s.radioState[i])&&ot(o))return s.radioState[i][t]===o}else if("cell"===r){if(!Y(s.radioState[i])&&n)return s.radioState[i]={},ot(o)?s.radioState[i][t]=o:s.radioState[i][t]=!0,!0;if(!Y(s.radioState[i]?.[t])&&n)return ot(o)?s.radioState[i][t]=o:s.radioState[i][t]=!0,!0;if(K(s.radioState[i]?.[t])&&!ot(o))return s.radioState[i][t];if(K(s.radioState[i]?.[t])&&ot(o))return!1;if(ot(s.radioState[i]?.[t])&&!ot(o))return!1;if(ot(s.radioState[i]?.[t])&&ot(o))return s.radioState[i][t]===o}}return n}(t,e,i,r,o,n,this)}changeCheckboxAndRadioOrder(t,e){this.checkedState.length&&function(t,e,i){const{checkedState:r,table:o}=i;if(o.internalProps.transpose?(t=o.getRecordShowIndexByCell(t,0),e=o.getRecordShowIndexByCell(e,0)):(t=o.getRecordShowIndexByCell(0,t),e=o.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:o}=i;if(o.internalProps.transpose?(t=o.getRecordShowIndexByCell(t,0),e=o.getRecordShowIndexByCell(e,0)):(t=o.getRecordShowIndexByCell(0,t),e=o.getRecordShowIndexByCell(0,e)),t!==e){const i=r[t];r[t]=r[e],r[e]=i}}(t,e,this)}}function KM(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(xw.MOUSEMOVE_CELL,(e=>{const{col:i,row:r,x:o,y:n}=e;"sparkline"!==t.getBodyColumnType(i,r)&&t.stateManager.updateSparklineHoverPose(-1,-1,0,0),t.stateManager.updateSparklineHoverPose(i,r,o,n)})),t.on(xw.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateSparklineHoverPose(-1,-1,0,0)})))}function $M(t){const e=t.table,i=e.stateManager;e.scenegraph.tableGroup.addEventListener("pointermove",(r=>{const o=e.eventManager.LastPointerXY?.x??r.x,n=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=BA(r);if(i.interactionState===rC.grabing)return void(Math.abs(o-r.x)+Math.abs(n-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()&&t.dealTableSelect(s,!0);const a=r.path.find((t=>"cell"===t.role));if(e.hasListeners(xw.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(xw.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(xw.MOUSEENTER_CELL)&&("cell"!==a?.role||!Y(a.col)||!Y(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(xw.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(xw.MOUSEMOVE_CELL)){let t,i;if(s.eventArgs?.target){const e=GM(s.eventArgs?.target);e&&(t=e.icon,i=e.position)}e.fireListeners(xw.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=BA(e),r=i?.eventArgs?.target;"table"===r?.role&&t.dealTableHover()})),e.scenegraph.tableGroup.addEventListener("pointerover",(t=>{const i=BA(t),r=i?.eventArgs?.target;if(r&&e.hasListeners(xw.MOUSEOVER_CHART_SYMBOL)&&"symbol"===r.type){const r=t.composedPath().find((t=>"cell"===t.roll));if(r){const{col:o,row:n}=r,s={col:o,row:n,field:e.getHeaderField(o,n),value:e.getCellValue(o,n),dataValue:e.getCellOriginValue(o,n),cellHeaderPaths:e.internalProps.layoutMap.getCellHeaderPaths(o,n),title:e.getBodyColumnDefine(o,n).title,cellRange:e.getCellRelativeRect(o,n),event:t.nativeEvent,sparkline:{pointData:void 0},scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:i?.eventArgs?.target};e.fireListeners(xw.MOUSEOVER_CHART_SYMBOL,s)}}})),e.scenegraph.tableGroup.addEventListener("pointerenter",(t=>{"focus"===e.theme.scrollStyle.visible&&(i.showHorizontalScrollBar(),i.showVerticalScrollBar()),e.hasListeners(xw.MOUSEENTER_TABLE)&&e.fireListeners(xw.MOUSEENTER_TABLE,{event:t.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerleave",(r=>{i.isResizeCol()||i.isMoveCol()||i.isSelecting()||(i.updateInteractionState(rC.default),i.updateCursor()),"focus"===e.theme.scrollStyle.visible&&(i.hideHorizontalScrollBar(),i.hideVerticalScrollBar()),e.hasListeners(xw.MOUSELEAVE_CELL)&&-1!==e.stateManager.hover.cellPos.col&&-1!==e.stateManager.hover.cellPos.row&&e.fireListeners(xw.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 o=r.target;o&&!o.isDescendantsOf(e.scenegraph.tableGroup)&&e.fireListeners(xw.MOUSELEAVE_TABLE,{event:r.nativeEvent})})),e.scenegraph.tableGroup.addEventListener("pointerupoutside",(r=>{const o=BA(r);if(i.menu.isShow&&o.eventArgs?.target!==i.residentHoverIcon?.icon&&setTimeout((()=>{e.internalProps.menuHandler.pointInMenuElement(r.page.x,r.page.y)||i.menu.isShow&&i.hideMenu()}),0),i.isResizeCol())YM(e);else if(i.isResizeRow())qM(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(xw.CHANGE_HEADER_POSITION)&&e.fireListeners(xw.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(xw.DRAG_SELECT_END)){const o={event:r.nativeEvent,cells:[],col:t,row:i,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth,target:void 0};o.cells=e.getSelectedCellInfos(),e.fireListeners(xw.DRAG_SELECT_END,o)}}e.editorManager?.completeEdit(r.nativeEvent),i.updateInteractionState(rC.default),t.dealTableHover()})),e.scenegraph.tableGroup.addEventListener("pointerdown",(r=>{if(e.hasListeners(xw.MOUSEDOWN_TABLE)&&e.fireListeners(xw.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 o=BA(r);if(t.downIcon=void 0,i.interactionState!==rC.default)return;e.isPivotChart()&&"chart"!==o?.eventArgs?.target.type&&e.scenegraph.updateChartState(null),o.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu(),e.editorManager?.completeEdit(r.nativeEvent);const n=o?.eventArgs?.target?.role?.startsWith("icon")?o.eventArgs.target:r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=n,n&&!1!==n.attribute.interactive)n.attribute.funcType===cC.dragReorder&&(i.startMoveCol(o.eventArgs.col,o.eventArgs.row,o.abstractPos.x,o.abstractPos.y),i.updateInteractionState(rC.grabing));else if("touch"===r.pointerType)t.touchEnd=!1,t.touchSetTimeout=setTimeout((()=>{t.isTouchdown=!1,t.touchMove=!0,(t.touchEnd||!t.checkColumnResize(o,!0)&&!t.checkRowResize(o,!0))&&(t.touchEnd||!t.chechColumnMover(o))?t.dealTableSelect(o)&&!t.touchEnd&&i.updateInteractionState(rC.grabing):i.updateInteractionState(rC.grabing)}),500),t.dealTableHover(o);else{if(!t.checkCellFillhandle(o)&&(t.checkColumnResize(o,!0)||t.checkRowResize(o,!0)))return e.scenegraph.updateChartState(null),void i.updateInteractionState(rC.grabing);if(t.chechColumnMover(o))return void i.updateInteractionState(rC.grabing);if(t.checkCellFillhandle(o,!0)&&t.dealFillSelect(o))return void i.updateInteractionState(rC.grabing);t.dealTableSelect(o)&&i.updateInteractionState(rC.grabing)}if(e.hasListeners(xw.MOUSEDOWN_CELL)){const t=BA(r);t.eventArgs&&e.fireListeners(xw.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(rC.default),i.isResizeCol())YM(e);else if(i.isResizeRow())qM(e);else if(i.isMoveCol()){const i=BA(t);e.stateManager.endMoveCol(),i.eventArgs&&e.hasListeners(xw.CHANGE_HEADER_POSITION)&&e.fireListeners(xw.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=BA(t);if(e.eventManager.isDraging&&i.eventArgs&&e.hasListeners(xw.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(xw.DRAG_SELECT_END,r)}}}else i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default);if(e.hasListeners(xw.MOUSEUP_CELL)){const i=BA(t);i.eventArgs&&e.fireListeners(xw.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=BA(t);if(r.eventArgs){i.triggerContextMenu(r.eventArgs.col,r.eventArgs.row,r.abstractPos.x,r.abstractPos.y);const{col:o,row:n}=r.eventArgs;if(e.hasListeners(xw.CONTEXTMENU_CELL)){const i=e.getCellInfo(o,n);let s,a;if(r.eventArgs?.target){const t=GM(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 o=t[r],n=Math.min(o.start.col,o.end.col),s=Math.max(o.start.col,o.end.col),a=Math.min(o.start.row,o.end.row),l=Math.max(o.start.row,o.end.row);if(n<=e&&e<=s&&a<=i&&i<=l||s<=e&&e<=n&&l<=i&&i<=a)return!0}return!1}(e.stateManager.select.ranges,o,n)?l.cells=[[i]]:l.cells=e.getSelectedCellInfos(),e.fireListeners(xw.CONTEXTMENU_CELL,l)}}})),e.scenegraph.tableGroup.addEventListener("pointertap",(r=>{if(e.stateManager.columnResize.resizing||e.stateManager.columnMove.moving)return;const o=BA(r);if(t.dealIconClick(r,o),o?.eventArgs){if(t.touchSetTimeout&&"touch"===r.pointerType){const e=BA(r);t.touchSetTimeout&&(clearTimeout(t.touchSetTimeout),t.dealTableSelect(e),i.endSelectCells(),t.touchSetTimeout=void 0)}if(!t.touchMove&&0===r.button&&e.hasListeners(xw.CLICK_CELL)){const{col:t,row:i}=o.eventArgs,n=e.getCellInfo(t,i);let s,a;if(o.eventArgs?.target){const t=GM(o.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...n,event:r.nativeEvent,federatedEvent:r,cells:[],targetIcon:s?{name:s.name,position:a,funcType:s.attribute.funcType}:void 0,target:o?.eventArgs?.target,mergeCellInfo:o.eventArgs?.mergeInfo};e.fireListeners(xw.CLICK_CELL,l)}}})),e.scenegraph.stage.addEventListener("pointerdown",(r=>{const o=BA(r);o.eventArgs?.target!==i.residentHoverIcon?.icon&&i.hideMenu(),e.editorManager?.completeEdit(r.nativeEvent);const n=r.target.role?.startsWith("icon")?r.target:void 0;if(t.downIcon=n,n||t.checkCellFillhandle(o)||!t.checkColumnResize(o,!0));else{e.scenegraph.updateChartState(null),i.updateInteractionState(rC.grabing);const{eventArgs:t}=o;if(!t?.targetCell){e.getCellAt(o.abstractPos.x-8,o.abstractPos.y)&&e.hasListeners(xw.MOUSEDOWN_TABLE)&&e.fireListeners(xw.MOUSEDOWN_TABLE,{event:r.nativeEvent})}}})),e.scenegraph.stage.addEventListener("pointerup",(t=>{"grabing"===i.interactionState&&(i.updateInteractionState(rC.default),i.isResizeCol()&&YM(e))})),e.scenegraph.stage.addEventListener("pointertap",(r=>{const o=r.target;e.eventManager.isDraging||!o||!o.isDescendantsOf(e.scenegraph.stage)&&o.stage!==o||o.isDescendantsOf(e.scenegraph.tableGroup)?e.eventManager.isDraging&&i.isSelecting()&&i.endSelectCells():(i.updateInteractionState(rC.default),t.dealTableHover(),t.dealTableSelect(),i.endSelectCells(),i.updateCursor(),e.scenegraph.updateChartState(null))})),e.scenegraph.stage.addEventListener("pointermove",(r=>{const o=BA(r);i.isResizeCol()||t.checkColumnResize(o)?e.stateManager.select&&t.checkCellFillhandle(o)?i.updateCursor("crosshair"):i.updateCursor("col-resize"):i.isResizeRow()||t.checkRowResize(o)?e.stateManager.select&&t.checkCellFillhandle(o)?i.updateCursor("crosshair"):i.updateCursor("row-resize"):i.updateCursor()})),e.scenegraph.tableGroup.addEventListener("checkbox_state_change",(t=>{const i=BA(t),{col:r,row:o}=i.eventArgs,n=e.getCellInfo(r,o),s=ov(e,r,o);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={...n,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,checked:t.detail.checked};if(e.isHeader(r,o)){e.stateManager.setHeaderCheckedState(n.field,t.detail.checked);"checkbox"===e.getCellType(r,o)&&e.scenegraph.updateCheckboxCellState(r,o,t.detail.checked)}else{e.stateManager.setCheckedState(r,o,n.field,t.detail.checked);if("checkbox"===e.getCellType(r,o)){const t=e.stateManager.headerCheckedState[n.field],i=e.stateManager.updateHeaderCheckedState(n.field);t!==i&&e.scenegraph.updateHeaderCheckboxCellState(r,o,i)}}e.fireListeners(xw.CHECKBOX_STATE_CHANGE,a),e.scenegraph.updateNextFrame()})),e.scenegraph.tableGroup.addEventListener("radio_checked",(t=>{const i=BA(t),{col:r,row:o,target:n}=i.eventArgs,s=e.getCellInfo(r,o),a=PA.exec(n.id)?.[1],l=ov(e,r,o);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===n.id&&t.setAttributes({checked:!0})}))}const h=e.getBodyColumnDefine(r,o).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!==n.id&&t.setAttributes({checked:!1})}))}else{e.scenegraph.getCell(r,o).forEachChildren((t=>{"radio"===t.name&&t.id!==n.id&&t.setAttributes({checked:!1})}))}else if("column"===h){e.scenegraph.getColGroup(r).forEachChildren((t=>{t.forEachChildren((t=>{"radio"===t.name&&t.id!==n.id&&t.setAttributes({checked:!1})}))}))}const c=a?Number(a):void 0;e.stateManager.setRadioState(r,o,s.field,h,c);const d={...s,event:t.nativeEvent,target:i?.eventArgs?.target,mergeCellInfo:i?.eventArgs?.mergeInfo,radioIndexInCell:c};e.fireListeners(xw.RADIO_STATE_CHANGE,d),e.scenegraph.updateNextFrame()}))}function XM(t){const e=t.table;t.gesture=new Pp(e.scenegraph.tableGroup,{tap:{interval:300}}),t.gesture.on("doubletap",(t=>{!function(t,e){const i=BA(t);let r=-1,o=-1;i.eventArgs&&(r=i.eventArgs.col,o=i.eventArgs.row);const n=e.getCellValue(r,o),s=i.eventArgs?.targetCell?.globalAABBBounds;if(s&&e.internalProps.focusControl.setFocusRect(new Pw(s.x1+e.scrollLeft,s.y1+e.scrollTop,s.x2-s.x1,s.y2-s.y1),n),e.hasListeners(xw.DBLCLICK_CELL)){const n=e.getCellInfo(r,o);let s,a;if(i.eventArgs?.target){const t=GM(i.eventArgs?.target);t&&(s=t.icon,a=t.position)}const l={...n,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(xw.DBLCLICK_CELL,l)}}(t,e)}))}function YM(t){t.stateManager.endResizeCol();const e=[];for(let i=0;i<t.colCount;i++)e.push(t.getColWidth(i));t.fireListeners(xw.RESIZE_COLUMN_END,{col:t.stateManager.columnResize.col,colWidths:e})}function qM(t){t.stateManager.endResizeRow(),t.fireListeners(xw.RESIZE_ROW_END,{row:t.stateManager.rowResize.row,rowHeight:t.getRowHeight(t.stateManager.rowResize.row)})}function ZM(t,e,i=!0){let{deltaX:r,deltaY:o}=t;t.shiftKey&&t.deltaY&&(r=o,o=0);const[n,s]=function(t,e,i){const r=2,o=Math.abs(t/e),n=o<=1/r?0:t,s=o>r?0:e;return[Math.ceil(n*(i.horizontal??0)),Math.ceil(s*(i.vertical??0))]}(r,o,{horizontal:1,vertical:1});(n||s)&&e.interactionState!==rC.scrolling&&e.updateInteractionState(rC.scrolling),n&&(e.setScrollLeft(e.scroll.horizontalBarPos+n),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(o)>=Math.abs(r)&&0!==o&&JM(o,e)||Math.abs(o)<=Math.abs(r)&&0!==r&&QM(r,e))&&t.preventDefault()}function JM(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 QM(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 tP{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),o=r*this.speedX,n=r*this.speedY;let s=0,a=0;Math.abs(o)>.05&&(i=!1,s=(this.speedX+o)/2*e),Math.abs(n)>.05&&(i=!1,a=(this.speedY+n)/2*e),this.scrollHandle?.(s,a),i?this.runingId=null:(this.lastTime=t,this.speedX=o,this.speedY=n,this.runingId=requestAnimationFrame(this.inertia.bind(this)))}endInertia(){cancelAnimationFrame(this.runingId),this.runingId=null}isInertiaScrolling(){return!!this.runingId}}let eP,iP=1;function rP(){return QC?iP=1:(iP=Math.ceil(window.devicePixelRatio||1),iP>1&&iP%2!=0&&(iP+=1)),iP}function oP(t){return!!t.changedTouches}function nP(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"}rP();class sP{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 tP(t.stateManager),"node"===IC.mode||t.options.disableInteraction||(this.bindOuterEvent(),setTimeout((()=>{this.bindSelfEvent()}),0))}bindOuterEvent(){$M(this),function(t){const e=t.table,i=e.stateManager,r=e.internalProps.handler;function o(t){const i=e.stateManager.select.ranges,r=i.length,o=Math.min(i[r-1].start.col,i[r-1].end.col),s=Math.min(i[r-1].start.row,i[r-1].end.row),l=Math.max(i[r-1].start.col,i[r-1].end.col),h=Math.max(i[r-1].start.row,i[r-1].end.row);let c=0,d=0,u=[];t.getType("text/html").then((t=>{t.text().then((t=>{if(t&&/(<table)|(<TABLE)/g.test(t)){const i=/<tr[^>]*>(.*?)<\/tr>/gs,r=Array.from(t.matchAll(i));for(const t of r){const e=t[1],i=/<td[^>]*>(.*?)<\/td>/gs,r=Array.from(e.matchAll(i)).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," ")));u.push(r),c=Math.max(c,r?.length??0)}d=u.length??0,u=a(u,d,c,h-s+1,l-o+1),e.changeCellValues(o,s,u,!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(n)}))}))}))}))}function n(t){const i=e.stateManager.select.ranges,r=i.length,o=Math.min(i[r-1].start.col,i[r-1].end.col),n=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),l=Math.max(i[r-1].start.row,i[r-1].end.row);let h=0,c=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)})),h=Math.max(h,r?.length??0)})),c=d.length??0,d=a(d,c,h,l-n+1,s-o+1),e.changeCellValues(o,n,d,!0)}function s(t){const i=e.stateManager.select.ranges,r=i.length,o=Math.min(i[r-1].start.col,i[r-1].end.col),n=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),l=Math.max(i[r-1].start.row,i[r-1].end.row);let h=0,c=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"),o=[];r.push(o),i.forEach((function(t,e){t.includes("\n")&&(t=t.replace(/^"(.*)"$/,"$1").replace(/["]*/g,(t=>new Array(Math.floor(t.length/2)).fill('"').join("")))),o.push(t)})),h=Math.max(h,o?.length??0)})),c=r.length??0,r=a(r,c,h,l-n+1,s-o+1),e.changeCellValues(o,n,r,!0)}))}))}function a(t,e,i,r,o){if(o>i||r>e){if(o%i==0&&r%e==0){const n=[];for(let s=0;s<r;s++){const r=[];n.push(r);for(let n=0;n<o;n++){const o=s%e,a=n%i;r.push(t[o][a])}}return n}return t}return t}r.on(e.getElement(),"blur",(e=>{t.dealTableHover()})),r.on(e.getElement(),"wheel",(t=>{ZM(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,o;r.preventDefault(),r.stopPropagation(),"ArrowUp"===r.key?r.ctrlKey||r.metaKey?(t=i.select.cellPos.col,o=0):(r.shiftKey,t=i.select.cellPos.col,o=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,o=e.rowCount-1):(r.shiftKey,t=i.select.cellPos.col,o=Math.min(e.rowCount-1,Math.max(0,i.select.cellPos.row+1))):"ArrowLeft"===r.key?r.ctrlKey||r.metaKey?(t=0,o=i.select.cellPos.row):(r.shiftKey,o=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,o=i.select.cellPos.row):(r.shiftKey,o=i.select.cellPos.row,t=Math.min(e.colCount-1,Math.max(0,i.select.cellPos.col+1)))),e.selectCell(t,o,r.shiftKey),e.options.keyboardOptions?.moveEditCellOnArrowKeys&&e.editorManager.editingEditor&&(e.editorManager.completeEdit(),e.getElement().focus(),e.getEditor(t,o)&&e.editorManager.startEditCell(t,o))}else if("Escape"===r.key)e.editorManager.cancelEdit();else if("Enter"===r.key){if(e.editorManager.editingEditor)e.editorManager.completeEdit(),e.getElement().focus();else 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,o=e.stateManager.select.ranges[0].end.row;t===r&&i===o&&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))}if(e.hasListeners(xw.KEYDOWN)){const t={keyCode:r.keyCode??r.which,code:r.code,event:r,scaleRatio:e.canvas.getBoundingClientRect().width/e.canvas.offsetWidth};e.fireListeners(xw.KEYDOWN,t)}})),r.on(e.getElement(),"copy",(t=>{if(e.keyboardOptions?.copySelected){const i=e.getCopyValue();if(Y(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 o=t.split("\t"),n=[];0===i&&e.push("<tbody>"),o.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;"):" ";n.push(`<td>${i}</td>`)})),e.push("<tr>",...n,"</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 mw?window.clipboardData.setData("Text",i):t.clipboardData.setData("text/plain",i);e.fireListeners(xw.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")?o(e):1===e.types.length&&"text/plain"===e.types[0]&&s(e)}));else{const i=e.stateManager.select.ranges,r=Math.min(i[0].start.col,i[0].end.col),o=Math.min(i[0].start.row,i[0].end.row),n=(t.clipboardData||window.Clipboard).getData("text").split("\n"),s=[];n.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,o,s)}}})),r.on(e.getElement(),"contextmenu",(t=>{!1!==e.eventOptions?.preventDefaultContextMenu&&t.preventDefault()})),e.options.canvas||r.on(e.getContainer(),"resize",(t=>{0===t.width&&0===t.height||(Y(e.options.pixelRatio)||e.setPixelRatio(rP()),t.windowSizeNotChange||e.resize())}));const l=t=>{e.eventManager.LastBodyPointerXY={x:t.x,y:t.y},e.eventManager.isDown=!0};t.globalEventListeners.push({name:"pointerdown",env:"body",callback:l}),document.body.addEventListener("pointerdown",l);const h=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:h}),document.addEventListener("pointerup",h);const c=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:o,y:n}=e._getMouseAbstractPoint(r,!1);i.interactionState===rC.grabing&&(i.isResizeCol()?(t.dealColumnResize(o,n),e.hasListeners(xw.RESIZE_COLUMN)&&e.fireListeners(xw.RESIZE_COLUMN,{col:e.stateManager.columnResize.col,colWidth:e.getColWidth(e.stateManager.columnResize.col)})):i.isResizeRow()&&(t.dealRowResize(o,n),e.hasListeners(xw.RESIZE_ROW)&&e.fireListeners(xw.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((n>t.bottom-r||n<t.top+i)&&c||(o>t.right-a||o<t.left+s)&&d){e.eventManager.scrollXSpeed=0,e.eventManager.scrollYSpeed=0;let l=!1,h=!1,u=!1,g=!1;n>t.bottom-r&&c&&e.scrollTop+e.tableNoFrameWidth<e.getAllRowsHeight()?(l=!0,e.eventManager.scrollYSpeed=-(n-t.bottom+r)/50):n<t.top+i&&c&&e.scrollTop>0&&(h=!0,e.eventManager.scrollYSpeed=-(n-t.top-i)/50),o>t.right-a&&d&&e.scrollLeft+e.tableNoFrameWidth<e.getAllColsWidth()?(u=!0,e.eventManager.scrollXSpeed=-(o-t.right+a)/50):o<t.left+s&&d&&e.scrollLeft>0&&(g=!0,e.eventManager.scrollXSpeed=-(o-t.left-s)/50),e.eventManager.inertiaScroll.startInertia(e.eventManager.scrollXSpeed,e.eventManager.scrollYSpeed,1),e.eventManager.inertiaScroll.setScrollHandle(((c,d)=>{let p,f;ZM({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||(o>e.tableNoFrameWidth-e.getRightFrozenColsWidth()&&o<e.tableNoFrameWidth||o>0&&o<e.getFrozenColsWidth()?(p=o,b=!0):p=e.scrollLeft+o),l||h||(n>e.tableNoFrameHeight-e.getBottomFrozenRowsHeight()&&n<e.tableNoFrameHeight||n>0&&n<e.getFrozenRowsHeight()?(f=n,m=!0):f=e.scrollTop+n),e.stateManager.updateInteractionState(rC.grabing);const y=e.getTargetColAtConsiderRightFrozen(p,b),C=e.getTargetRowAtConsiderBottomFrozen(f,m);Y(y)&&Y(C)&&e.stateManager.updateSelectPos(y.col,C.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:c}),document.body.addEventListener("pointermove",c)}(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!==rC.scrolling&&i.hideVerticalScrollBar()})),r.component.hScrollBar.addEventListener("pointerout",(t=>{i.interactionState!==rC.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(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.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!==rC.scrolling&&i.updateInteractionState(rC.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.vScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default)})),r.component.vScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.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(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.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!==rC.scrolling&&i.updateInteractionState(rC.scrolling),r.table.stateManager.hideMenu(),r.table.editorManager?.completeEdit(),r.table.hasListeners(xw.MOUSEDOWN_TABLE)&&r.table.fireListeners(xw.MOUSEDOWN_TABLE,{event:t.nativeEvent})})),r.component.hScrollBar.addEventListener("pointerup",(()=>{i.fastScrolling=!1,r.table.eventManager.isDraging=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default)})),r.component.hScrollBar.addEventListener("pointerupoutside",(()=>{i.fastScrolling=!1,i.interactionState===rC.scrolling&&i.updateInteractionState(rC.default)})),r.component.hScrollBar.addEventListener("scrollUp",(t=>{r.table.eventManager.isDraging=!1}));const o=UC(i.updateVerticalScrollBar,20),n=UC(i.updateHorizontalScrollBar,20);r.component.vScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==rC.scrolling&&i.updateInteractionState(rC.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);o(e,t)})),r.component.hScrollBar.addEventListener("scrollDrag",(t=>{r.table.eventManager.isDown&&(r.table.eventManager.isDraging=!0),i.fastScrolling=!0,i.interactionState!==rC.scrolling&&i.updateInteractionState(rC.scrolling);const e=t.detail.value[0]/(1-t.detail.value[1]+t.detail.value[0]);n(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 o=r=>{if(t.touchMove&&r.preventDefault(),t.isTouchdown&&oP(r))if(t.downIcon?.attribute?.funcType===cC.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 o=-t.touchMovePoints[t.touchMovePoints.length-1].x+t.touchMovePoints[t.touchMovePoints.length-2].x,n=-t.touchMovePoints[t.touchMovePoints.length-1].y+t.touchMovePoints[t.touchMovePoints.length-2].y;ZM({deltaX:o,deltaY:n},i),r.cancelable&&("none"===e.internalProps.overscrollBehavior||Math.abs(n)>=Math.abs(o)&&0!==n&&JM(n,i)||Math.abs(n)<=Math.abs(o)&&0!==o&&QM(o,i))&&r.preventDefault()}};window.addEventListener("touchmove",o,{passive:!1}),t.globalEventListeners.push({name:"touchmove",env:"window",callback:o});const n=i=>{if(t.touchEnd=!0,t.touchMove=!1,t.isTouchdown&&oP(i)){if(t.downIcon?.attribute?.funcType===cC.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],o=t.touchMovePoints[t.touchMovePoints?.length-1],n=(o.x-r.x)/(o.timestamp-r.timestamp),s=(o.y-r.y)/(o.timestamp-r.timestamp);t.inertiaScroll.startInertia(n,s,.95),e.eventManager.inertiaScroll.setScrollHandle(((t,i)=>{ZM({deltaX:-t,deltaY:-i},e.stateManager)}))}t.isTouchdown=!1,t.touchMovePoints=[]}};window.addEventListener("touchend",n),t.globalEventListeners.push({name:"touchend",env:"window",callback:n});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),XM(this)}updateEventBinder(){setTimeout((()=>{qT(this.table)&&0===this.handleTextStickBindId?.length?(this.handleTextStickBindId.push(this.table.on(xw.SCROLL,(t=>{UT(this.table)}))),this.handleTextStickBindId.push(this.table.on(xw.RESIZE_COLUMN_END,(t=>{UT(this.table)}))),this.handleTextStickBindId.push(this.table.on(xw.RESIZE_ROW_END,(t=>{UT(this.table)})))):!qT(this.table)&&this.handleTextStickBindId&&(this.handleTextStickBindId.forEach((t=>{this.table.off(t)})),this.handleTextStickBindId=[]),KM(this.table)}),0)}bindSelfEvent(){if(this.table.isReleased)return;const t=this.table.stateManager;var e;this.table.on(xw.ICON_CLICK,(e=>{const{col:i,row:r,x:o,y:n,funcType:s,icon:a,event:l}=e;var h;s===cC.dropDown?t.triggerDropDownMenu(i,r,o,n,l):s===cC.sort?t.triggerSort(i,r,a,l):s===cC.frozen?t.triggerFreeze(i,r,a):s===cC.drillDown?(h=this.table).fireListeners(DM.DRILLMENU_CLICK,h.stateManager.drill):s!==cC.collapse&&s!==cC.expand||(this.table.stateManager.updateSelectPos(-1,-1),this.table.toggleHierarchyState(i,r))})),this.table.on(xw.DROPDOWN_MENU_CLICK,(()=>{t.hideMenu()})),this.updateEventBinder(),e=this.table,"browser"===IC.mode&&e.on(xw.CLICK_CELL,(t=>{const{col:i,row:r}=t;let o;o=e.internalProps.layoutMap.isHeader(i,r)?e.isPivotTable()?e._getHeaderLayoutMap(i,r).headerType:e.getHeaderDefine(i,r).headerType:e.getBodyColumnType(i,r);const n=e.isHeader(i,r)?e.getHeaderDefine(i,r):e.getBodyColumnDefine(i,r),s=e.getCellValue(i,r),a=e.getCellOriginValue(i,r);if("link"===o){if(!1===n.linkJump)return;const t=n.templateLink,o=!1!==n.linkDetect;let l;if(t){const o=e.getCellOriginRecord(i,r),n=Object.assign({__value:s,__dataValue:a},o),h=/\{\s*(\S+?)\s*\}/g;l=t.replace(h,((t,e)=>n[e]))}else if(o){if(!Dw.test(s))return;l=s}else l=s;window.open(l)}else if("image"===o){const{clickToPreview:t}=n;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"===o){const{clickToPreview:t}=n;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(xw.DBLCLICK_CELL,(t=>{if(t.federatedEvent){const e=BA(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(xw.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(xw.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(xw.MOUSEENTER_CELL,(e=>{const{col:i,row:r}=e;if(-1===i||-1===r)return;const o=t.internalProps.layoutMap.getHeaderDimension(i,r);o?.drillDown||o?.drillUp?t.stateManager.updateDrillState(o.dimensionKey,o.title,o.drillDown,o.drillUp,i,r):t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)})),t.on(xw.MOUSELEAVE_TABLE,(e=>{t.stateManager.updateDrillState(void 0,void 0,!1,!1,-1,-1)}))}(this.table),KM(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=BA(e),{col:r,row:o}=i.eventArgs,n=t.internalProps.layoutMap;let s,a;n.indicatorsAsCol?(s=n.getDimensionKeyInChartSpec(n.rowHeaderLevelCount,o),a=n.getCellHeaderPaths(n.rowHeaderLevelCount-2,o).rowHeaderPaths):(s=n.getDimensionKeyInChartSpec(r,n.columnHeaderLevelCount),a=n.getCellHeaderPaths(r,n.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,n.updateDataStateToChartInstance(),bM(t.scenegraph),t.scenegraph.updateNextFrame()}else t._selectedDimensionInChart?.length&&(t._selectedDimensionInChart.length=0,t.internalProps.layoutMap.updateDataStateToChartInstance(),bM(t.scenegraph),t.scenegraph.updateNextFrame())}))}(this.table),function(t){t.isPivotChart()&&(t.on(xw.MOUSEENTER_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=nP(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(xw.MOUSEENTER_AXIS,e)}}))})),t.on(xw.MOUSELEAVE_CELL,(e=>{t.scenegraph.getCell(e.col,e.row).forEachChildren((i=>{if("axis"===i.name){const i=nP(e.col,e.row,t.internalProps.layoutMap);e.axisPosition=i,t.fireListeners(xw.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,o;const n=this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length-1];e&&(Y(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,o=n.end.col):(r=n.end.row,o=i.col)),this.table.stateManager.updateSelectPos(e?o:n.end.col,e?r:n.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),o=this.table.scenegraph.highPerformanceGetCell(i,r).globalAABBBounds,n=Math.abs(t.abstractPos.x-o.x2),s=Math.abs(t.abstractPos.y-o.y2),a=18;if(this.table.stateManager.fillHandle?.isFilling||n<=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(gw(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;Y(e.col)&&Y(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:o,col:n,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(xw.ICON_CLICK,{name:a.name,x:(a.globalAABBBounds.x1+a.globalAABBBounds.x2)/2,y:a.globalAABBBounds.y2,col:n,row:s,funcType:a.attribute.funcType,icon:a,event:o}),!0;if(r instanceof Pl){const t=r.pickIcon(o.global);if(t)return this.table.fireListeners(xw.ICON_CLICK,{name:t.attribute.id,x:t.globalX+t.globalAABBBounds.width()/2,y:t.globalY+t.AABBBounds.height(),col:n,row:s,funcType:t.attribute.funcType,icon:t,event:o}),!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 aP=t=>{const e=t.value;return Number(e)>80?"#20a8d8":Number(e)>50?"#4dbd74":Number(e)>20?"#ffc107":"#f86c6b"};class lP extends wC{_showBar;_barColor;_barBgColor;_barPositiveColor;_barNegativeColor;_barAxisColor;_barHeight;_barBottom;_barPadding;_showBarMark;_barMarkPositiveColor;_barMarkNegativeColor;_barMarkWidth;_barMarkPosition;_barRightToLeft;static get DEFAULT(){return eP||(eP=new lP)}constructor(t={},e={}){super(t,e),this._showBar=t.showBar??!0,this._barColor=t.barColor??aP,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 lP(this,null)}}const hP=["type","content","font","color","width","height","marginRight","marginLeft","src","svg","name","path","positionType","tooltip","hover","cursor","shape","interactive"];class cP{expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=jA();this.expandIcon=e[dC.expandIconName],this.collapseIcon=e[dC.collapseIconName]}getIcons(t,e,i,r,o){const n=[],s=this.getHierarchyIcon(t,e);s&&n.push(s);const{icon:a}=this._table.getBodyColumnDefine(t,e);if(a){let o;if("function"==typeof a){o=a({col:t,row:e,value:i,dataValue:r,table:this._table})}else o=a;const s=jA(),l=t=>{let e;e="string"==typeof t?s[t]:t,e&&n.push(e)};Array.isArray(o)?o.forEach(((t,e)=>{l(t)})):l(o)}return o&&n.forEach(((i,r)=>{(i.content||i.src)&&(n[r]=this.getCellIconFromRecordValue(i,t,e))})),n}getStyleClass(t){switch(t){case"text":case"link":return xC;case"image":case"video":return vC;case"chart":case"sparkline":return wC;case"progressbar":return lP;case"checkbox":return AC;case"radio":return RC}return xC}getCellIconFromRecordValue(t,e,i){if(Array.isArray(t))return t.map((t=>this.getCellIconFromRecordValue(t,e,i)));if(!bw.isObject(t)||"function"==typeof t)return this._table.getFieldData(t,e,i);const r={},o=t;return hP.forEach((t=>{if(void 0!==o[t]){const n=this._table.getFieldData(o[t],e,i);null!=n?r[t]=n:this._table._hasField?.(o[t],e,i)||(r[t]=o[t])}})),r}getHierarchyIcon(t,e){const i=this._table.getHierarchyState(t,e);return i===sC.expand?this.expandIcon:i===sC.collapse?this.collapseIcon:void 0}getHierarchyIconWidth(){return this.expandIcon.width+(this.expandIcon.marginLeft??0)+(this.expandIcon.marginRight??0)}}function dP(t,e){const i=document.createElement(t);return e&&i.classList.add(...e),i}!function(){if("node"===IC.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 uP="vtable__menu-element",gP=`${uP}__item`,pP=`${uP}__content`,fP=`${uP}--hidden`,mP=`${uP}--shown`,bP=`${uP}--normal`,yP=`${uP}--select`,CP=`${uP}__icon`,wP=`${uP}__split`,vP=`${uP}__title`,xP=`${uP}__arrow`,_P=`${uP}__no-event`,SP=`${uP}__item-text`;function AP(){return dP("div",[uP,fP])}function RP(t,e,i,r,o,n){const s=t.getCellRange(r,o);for(let r=0;r<e.length;r++){const o=e[r];let{col:n,row:a}=o;const{field:l,menuKey:h}=o;if("number"!=typeof n||"number"!=typeof a)if(t.isPivotTable()&&(Array.isArray(l),1)){const e=t.internalProps.layoutMap.getPivotCellAdress(l);if(!e)continue;n=e.col,a=e.row}else{const e=t.internalProps.layoutMap.getHeaderCellAddressByField(l);if(!e)continue;n=e.col,a=e.row}if(Y(n)&&Y(a)&&gw(s,n,a)&&i===h)return!0}return!1}class BP{_handler;_rootElement;_secondElement;_menuInstanceInfo;_showChildrenIndex;_mouseEnterSecondElement;constructor(t){this._handler=new Bw,this._rootElement=AP(),this._secondElement=AP(),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(fP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,o);t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("click",(e=>{if(e.stopPropagation(),e.preventDefault(),this._rootElement.classList.contains(fP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,o);t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(e=>{if(this._rootElement.classList.contains(fP))return;e.stopPropagation();const{hasChildren:i,dropDownIndex:r,col:o,row:n,sub:s}=e.target;if(i){this._showChildrenIndex=r;const i=this._secondElement;i?.classList.remove(fP),i?.classList.add(mP),i.innerHTML="";const s=this._menuInstanceInfo.content[r]?.children;for(let e=0;e<s.length;e++){const r=s[e],a=TP(r,!!t.stateManager.menu.dropDownMenuHighlight&&RP(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof r?r?.menuKey||r?.text:r,o,n));a.col=o,a.row=n,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,o,n,a.right,a.top)}else if(i&&this._showChildrenIndex===r){const t=this._secondElement;t?.classList.remove(fP),t?.classList.add(mP)}else!s&&this._secondElement?.classList.contains(mP)&&setTimeout((()=>{if(!0!==this._mouseEnterSecondElement){this._showChildrenIndex=-1;const t=this._secondElement;t?.classList.remove(mP),t?.classList.add(fP)}}),300)})),this._secondElement?.addEventListener("wheel",(t=>{t.stopPropagation()})),this._secondElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(fP)||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(fP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||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,o)=>{if("object"==typeof e&&e.children&&e.children.length)for(let o=0;o<e.children.length;o++){const s=e.children[o];if(RP(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof s?s?.menuKey:s,i,r)&&n===("object"==typeof s?s?.menuKey:s))return void(h=!0)}})),t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,cellHeaderPaths:t.isPivotTable()?t.getCellHeaderPaths(i,r):void 0,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.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 o=this._rootElement,n=this._secondElement;if(this._menuInstanceInfo=r,o?.classList.remove(mP),o?.classList.add(fP),n?.classList.remove(mP),n?.classList.add(fP),this._canBindToCell(t,e,i)){if(o.innerHTML="",Array.isArray(r.content)){const n=r.content;for(let r=0;r<n?.length;r++){const s=n[r];let a=!!t.stateManager.menu.dropDownMenuHighlight&&RP(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 o=s.children[r];if(RP(t,t.stateManager.menu.dropDownMenuHighlight,"object"==typeof o?o?.menuKey||o?.text:o,e,i)){a=!0;break}}const l=TP(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)),o.appendChild(l)}}if(this._bindToCell(t,e,i,r.position,r.referencePosition))return o?.classList.add(mP),o?.classList.remove(fP),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement,e=this._secondElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(mP),t.classList.add(fP)),e?.parentElement&&(e.classList.remove(mP),e.classList.add(fP))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),o=t.getElement(),{top:n,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()||n>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=o;return!(h<n)&&!(c<a)}_bindToCell(t,e,i,r,o){const n=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(n){n.parentElement!==s&&s.appendChild(n),n.style.left="0px";const t=.8*a;n.style.maxWidth=`${t}px`;const e=n.clientWidth,i=n.clientHeight;let h,c;return r?(h=r.x,c=r.y):o&&(h=o.rect.right-e,c=o.rect.bottom),c+i>l&&(c=l-i),c<0&&(c/=2),n.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),n.style.left=`${h}px`,!0}return!1}_bindSecondElement(t,e,i,r,o){const n=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(n){n.parentElement!==a&&a.appendChild(n),n.style.left="0px";const t=.8*l;n.style.maxWidth=`${t}px`;const e=n.clientWidth,i=o-4-c,s=r-h;n.style.top=`${i}px`;let d=s;return d+e>l?d=d-e-g:d+=4,n.style.left=`${d}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:o,width:n,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+n+5&&e>o-5&&e<o+s+5)return!0;if(this._secondElement){const{x:r,y:o,width:n,height:s}=i.getBoundingClientRect();if(t>r-5&&t<r+n+5&&e>o-5&&e<o+s+5)return!0}return!1}}function TP(t,e){const i=dP("div",[gP,e?yP:bP]);if("string"==typeof t){const e=dP("span",[pP,_P,SP]);e.innerHTML=t,i.appendChild(e)}else if("object"==typeof t){const r=t.type??"item";if("split"===r)return i?.classList.add(wP),i;if(t?.icon?.svg)if(Dw.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=dP("span",[CP,_P]);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 o=dP("span",[pP,_P,SP]);if(o.innerHTML=t.text,i.appendChild(o),"title"===r)i?.classList.add(_P,vP);else if(t?.children?.length){const t=dP("span",[pP,_P,xP]);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 MP;class PP extends MC{static get DEFAULT(){return MP||(MP=new PP)}constructor(t={},e={}){super(t,e),this.textAlign=(t.textAlign??e?.textAlign)||"center"}clone(){return new PP(this)}}class HP{normalIcon;upIcon;downIcon;freezeIcon;frozenIcon;frozenCurrentIcon;dropDownAbsoluteIcon;expandIcon;collapseIcon;_table;constructor(t){this._table=t;const e=jA();this.freezeIcon=e[dC.freezeIconName],this.frozenIcon=e[dC.frozenIconName],this.frozenCurrentIcon=e[dC.frozenCurrentIconName],this.normalIcon=e[dC.normalIconName],this.upIcon=e[dC.upwardIconName],this.downIcon=e[dC.downwardIconName],this.dropDownAbsoluteIcon=e[dC.dropdownIconName],this.expandIcon=e[dC.expandIconName],this.collapseIcon=e[dC.collapseIconName]}getIcons(t,e){const i=[];if(this._table.isPivotTable()){const{showSort:r,sort:o}=this._table.internalProps.layoutMap.getHeader(t,e);if(r){let r=this._table.getPivotSortState(t,e);r&&(r=r.toUpperCase());const o="ASC"===r?this.downIcon:"DESC"===r?this.upIcon:this.normalIcon;o&&i.push(o)}else if(o){const r=this.getSortIconForPivotTable(this._table.getPivotSortState(t,e),this._table,t,e);r&&i.push(r)}}else{const r=this._table.sortState;let o;o=void 0;const n=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&&gw(n,i.col,i.row)){({order:o}=e);break}}else{const t=this._table._getHeaderCellBySortState(r);t&&gw(n,t.col,t.row)&&({order:o}=r)}const s=this.getSortIcon(o,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:o}=this._table._getHeaderLayoutMap(t,e),n=this.getHierarchyIcon(t,e);if(n&&i.push(n),o){let r;if("function"==typeof o){r=o({col:t,row:e,value:this._table.getCellValue(t,e),dataValue:this._table.getCellOriginValue(t,e),table:this._table})}else r=o;const n=jA(),s=t=>{let e;e="string"==typeof t?n[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 o="asc"===t?this.downIcon:"desc"===t?this.upIcon:this.normalIcon,n=e.getHeaderDefine(i,r);return!n||!1===n.showSort||!Y(n.showSort)&&!n.sort||n.columns&&n.columns.length>0?null:o}getSortIconForPivotTable(t,e,i,r){const o=e.getHeaderDefine(i,r);if(!o||!1===o.showSort||!Y(o.showSort)&&!o.sort||o.columns&&o.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),o=t._getHeaderLayoutMap(e,i),{dropDownMenu:n}=o,s=[];if(Array.isArray(n)&&n.length||Array.isArray(t.globalDropDownMenu)&&t.globalDropDownMenu.length&&!r?.columns?.length){const r=n||t.globalDropDownMenu;let o=-1,a=-1;for(let n=0;n<r.length;n++){const s=r[n];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&&RP(t,t.stateManager.menu?.dropDownMenuHighlight,"object"==typeof l?l?.menuKey:l,e,i)){o=n,a=r;break}}if(t._dropDownMenuIsHighlight(e,i,n)){o=n;break}}if(-1!==o){let e;e=-1!==a?(n||t.globalDropDownMenu)[o].children[a]:(n||t.globalDropDownMenu)[o],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:hC.right,marginRight:0,funcType:cC.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:hC.right,marginRight:0,funcType:cC.dropDownState,interactive:!1}))}}return s}getDropDownIconRect(t,e,i){const r=this.downIcon.hover?.width??this.downIcon?.width??0,o=this.downIcon.hover?.height??this.downIcon?.height??0,n=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:n,right:s,top:a,bottom:o+a,width:r,height:o}}getHierarchyIcon(t,e){const{hierarchyState:i}=this._table._getHeaderLayoutMap(t,e);if(i){if(i===sC.expand)return this.expandIcon;if(i===sC.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 EC;case"image":case"video":return PP;case"checkbox":return LC}}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 EP{_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,o){this._getTooltipElement()._locate(this._table,t,e,i,r,o)}}!function(){if("node"===IC.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: hidden;\n\tword-wrap: break-word;\n\tposition: relative;\n\tbackground-color: #FFF;\n\tz-index: 2;\n\tborder-radius: 4px\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 LP="vtable__bubble-tooltip-element",kP=`${LP}__content`,IP=`${LP}__triangle`,FP=`${LP}--hidden`,zP=`${LP}--shown`;class OP{_handler;_rootElement;_messageElement;_triangleElement;_disappearDelay;_disappearDelayId;constructor(){this._handler=new Bw;const t=this._rootElement=dP("div",[LP,FP]),e=dP("span",[kP]),i=dP("span",[IP]);t.appendChild(i),t.appendChild(e),this._messageElement=t.querySelector(`.${kP}`)||void 0,this._triangleElement=t.querySelector(`.${IP}`)||void 0,t.addEventListener("mousemove",(()=>{this._disappearDelayId&&clearTimeout(this._disappearDelayId)})),t.addEventListener("mouseleave",(()=>{this._disappearDelay=void 0,this.unbindFromCell()}))}bindToCell(t,e,i,r,o){this._disappearDelay=r?.disappearDelay,this._disappearDelayId&&clearTimeout(this._disappearDelayId);const n=this._rootElement,s=this._messageElement,a=this._triangleElement;if(n?.classList.remove(zP),n?.classList.add(FP),this._canBindToCell(t,e,i)){s.setAttribute("style",""),a.setAttribute("style",""),r?.className&&n.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`),s&&(s.textContent=r?.content);if(this._bindToCell(t,e,i,r?.position,r?.referencePosition,o,r?.style?.arrowMark))return n?.classList.add(zP),n?.classList.remove(FP),!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,o){const n=this._rootElement;this._canBindToCell(t,e,i)?(this._bindToCell(t,e,i,r?.position,r?.referencePosition,o),n?.classList.add(zP),n?.classList.remove(FP)):this.unbindFromCell()}unbindFromCell(){if(this._disappearDelay)this._disappearDelayId=setTimeout((()=>{const t=this._rootElement;t?.parentElement&&(t.classList.remove(zP),t.classList.add(FP))}),this._disappearDelay??0);else{const t=this._rootElement;t?.parentElement&&(t.classList.remove(zP),t.classList.add(FP))}}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),o=t.getElement(),{bottom:n,left:s,right:a,top:l}=r;if(t.isFrozenCell(e,i))return!0;if(n<t.getFrozenRowsHeight()||a<t.getFrozenColsWidth()||s>t.tableNoFrameWidth-t.getRightFrozenColsWidth()||l>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=o;return!(l>h)&&!(s>c)}_bindToCell(t,e,i,r,o,n,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&&!o)return!1;{const a=this.getComputedPosition(t,e,i,r,o,n,s);u=a.x,l=a.y}a.style.left=`${u}px`,a.style.top=`${l}px`,YC()&&(a.style.fontSize="11px");const{x1:m,x2:b,y1:y,y2:C}=t.stateManager.menu.bounds,w=u,v=w+p,x=l,_=w+f;return!(t.stateManager.menu.isShow&&m<v&&b>w&&C>x&&y<_)}return!1}getComputedPosition(t,e,i,r,o,n,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(o){let t=o.placement??nC.bottom;const e=o.rect.left+o.rect.width/2,i=o.rect.top+o.rect.height/2,r=o.rect.top,s=o.rect.bottom,a=o.rect.left,l=o.rect.right;let d=0;const p=()=>{d++,d>=4||(this.removeStyleFromTriangle(),t===nC.top?(g=e-f/2,u=r-m-b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.bottom="-5px",n&&u<0&&(t=nC.right,p())):t===nC.bottom?(g=e-f/2,u=s+b,this._triangleElement.style.left="50%",this._triangleElement.style.marginLeft="-5px",this._triangleElement.style.top="-5px",n&&u+m>c&&(t=nC.left,p())):t===nC.left?(u=i-m/2,g=a-f-b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.right="-5px",n&&g<0&&(t=nC.top,p())):t===nC.right&&(u=i-m/2,g=l+b,this._triangleElement.style.top="50%",this._triangleElement.style.marginTop="-5px",this._triangleElement.style.left="-5px",n&&g+f>h&&(t=nC.bottom,p())))};p()}return n&&(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,o,n){const s=this.getComputedPosition(t,e,i,r,o,n),a=s.x,l=s.y;this._rootElement.style.left=`${a}px`,this._rootElement.style.top=`${l}px`}}class DP extends EP{createTooltipElementInternal(){return new OP}}const WP={"bubble-tooltip":function(t){return new DP(t)}};class NP{_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,o=this._getTooltipInstanceInfo(t,e);if(!r||o&&r.instance===o||(r.instance?.unbindTooltipElement(),this._attachInfo=null),!o)return;if(o&&o.bindTooltipElement(t,e,i,this.confine)){const r=this._table.getCellRange(t,e);this._attachInfo={range:r,instance:o,tooltipOptions:i}}}_move(t,e,i){const r=this._attachInfo;if(!r||!gw(r.range,t,e))return;const{instance:o}=r;o?.moveTooltipElement(t,e,i,this.confine)}moveToPosition(t,e,i,r){const o=this._attachInfo;if(!o||!gw(o.range,t,e))return;const{instance:n}=o;this._attachInfo.tooltipOptions.position=i,this._attachInfo.tooltipOptions.referencePosition=r,n?.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&&gw(i.range,t,e)}_bindTableEvent(t){t.on(xw.MOUSEENTER_CELL,(e=>{if(YC())return;const{x1:i,x2:r,y1:o,y2:n}=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>o&&e.y<n)return;const{col:s,row:a}=e;this.showTooltip(s,a)})),t.on(xw.MOUSEMOVE_CELL,(e=>{if(!YC()){if(this._attachInfo?.tooltipOptions?.referencePosition){const i=this._attachInfo.tooltipOptions.referencePosition,{event:r}=e,{left:o,right:n,top:s,bottom:a}=i.rect,l=t._getMouseAbstractPoint(r,!1);l.inTable&&l.x>=o-5&&l.x<=n+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(xw.MOUSELEAVE_CELL,(t=>{this._unbindFromCell()})),t.on(xw.SELECTED_CELL,(t=>{this._isBindCell(t.col,t.row)&&this._unbindFromCell()})),t.on(xw.MOUSELEAVE_TABLE,(t=>{this._unbindFromCell()})),t.on(xw.SCROLL,(t=>{this._unbindFromCell()}))}showTooltip(t,e){let i;const r=this._table,o=r.getHeaderDescription(t,e);if(o){const n=r.getCellRangeRelativeRect({col:t,row:e});i={content:o,referencePosition:{placement:nC.bottom,rect:n},disappearDelay:r.internalProps.tooltip.overflowTextTooltipDisappearDelay??0,style:{arrowMark:!1}}}else if(r.internalProps.tooltip?.isShowOverflowTextTooltip){const n=r.getCellOverflowText(t,e),s=r.getCellRangeRelativeRect({col:t,row:e});n&&(i={content:o?`${o}\n ${n}`:n,referencePosition:{placement:nC.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,o="bubble-tooltip";return r&&r[o]||r&&(r[o]=WP[o](i))}isBinded(t){return JSON.stringify(t)===JSON.stringify(this._attachInfo?.tooltipOptions)}}class GP{_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 jP="vtable__menu-element",VP=`${jP}--hidden`,UP=`${jP}--shown`;class KP{_handler;_rootElement;_menuInstanceInfo;constructor(t){this._handler=new Bw,this._rootElement=dP("div",[jP,VP]),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(VP))return;const{col:i,row:r,dropDownIndex:o,menuKey:n,text:s,hasChildren:a}=e.target;if("number"!=typeof o||a)return void e.stopPropagation();const l=t.isPivotTable()?t.internalProps.layoutMap.getPivotDimensionInfo(i,r):t.getHeaderField(i,r),h=t._dropDownMenuIsHighlight(i,r,o);t.fireListeners(xw.DROPDOWN_MENU_CLICK,{col:i,row:r,field:l,menuKey:n,text:s,highlight:h,cellLocation:t.getCellLocation(i,r),event:e}),t.fireListeners(xw.DROPDOWN_MENU_CLEAR,null),t.fireListeners(xw.HIDE_MENU,null),e.stopPropagation()})),this._rootElement?.addEventListener("mousemove",(t=>{this._rootElement.classList.contains(VP)||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 o=this._rootElement;if(this._menuInstanceInfo=r,o?.classList.remove(UP),o?.classList.add(VP),this._canBindToCell(t,e,i)){o.innerHTML="",o.appendChild(r.content);if(this._bindCell(t,e,i,r.position,r.referencePosition))return o?.classList.add(UP),o?.classList.remove(VP),!0}else this.unbindFromCell();return!1}unbindFromCell(){const t=this._rootElement;this._menuInstanceInfo=void 0,t?.parentElement&&(t.classList.remove(UP),t.classList.add(VP))}_canBindToCell(t,e,i){const r=t.getCellRangeRelativeRect({col:e,row:i}),o=t.getElement(),{top:n,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()||n>t.tableNoFrameHeight-t.getBottomFrozenRowsHeight())return!1;const{offsetHeight:h,offsetWidth:c}=o;return!(h<n)&&!(c<a)}_bindCell(t,e,i,r,o){const n=this._rootElement,s=t.getElement(),{width:a,height:l}=t.internalProps.element.getBoundingClientRect();if(n){n.parentElement!==s&&s.appendChild(n),n.style.left="0px";const t=.8*a;n.style.maxWidth=`${t}px`;const e=n.clientWidth,i=n.clientHeight;let h,c;return r&&(h=r.x,c=r.y),o&&(h=o.rect.right-e,c=o.rect.bottom),c+i>l&&(c=l-i,h+=e-2),c<0&&(c/=2),n.style.top=`${c}px`,h<0?h=0:h+e>a&&(h=a-e),n.style.left=`${h}px`,!0}return!1}pointInMenuElement(t,e){const i=this._rootElement,{x:r,y:o,width:n,height:s}=i.getBoundingClientRect();return t>r-5&&t<r+n+5&&e>o-5&&e<o+s+5}}class $P extends GP{createMenuElementInternal(){return new BP(this._table)}}let XP=class extends GP{createMenuElementInternal(){return new KP(this._table)}};const YP={"dropdown-menu":function(t){return new $P(t)},"context-menu":function(t){return new $P(t)},container:t=>new XP(t)};class qP{_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 o=this._attachInfo,n=this._getMenuInstanceInfo(t,e,i,r);if(!o||n&&o.instance===n.instance||(o.instance?.unbindMenuElement(),this._attachInfo=null),!n)return;const{instance:s,info:a}=n;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&&gw(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(xw.DROPDOWN_ICON_CLICK,(t=>{this._attachInfo&&this._isBindToCell(t.col,t.row)?this._unbindFromCell():this._bindToCell(t.col,t.row,"dropdown-menu")})),t.on(xw.DROPDOWN_MENU_CLEAR,(t=>{this._unbindFromCell()})),t.on(xw.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 o=this._table,n=this._menuInstances,s=function(t,e,i,r,o){const{lineHeight:n,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,n,s||"middle")),o?.content)return{type:r,position:o.position,referencePosition:o.referencePosition??{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:o.content};if("dropdown-menu"===r){const{dropDownMenu:o=t.globalDropDownMenu,pivotInfo:n}=t._getHeaderLayoutMap(e,i);return{type:r,referencePosition:{rect:{left:h,right:c,top:u,bottom:d,width:g,height:p}},content:o,pivotInfo:n}}return null}(o,t,e,i,r);if(!s)return null;return{instance:n&&n[i]||n&&(n[i]=YP[i](o)),type:i,info:s}}}class ZP extends EventTarget{_container;_table;_input;constructor(t,e){if(super(),this._table=t,"node"===IC.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),this._container=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,o=t.left-this._table.scrollLeft;i.style.top=`${r.toFixed()}px`,i.style.left=`${o.toFixed()}px`,i.style.width=`${t.width.toFixed()}px`,i.style.height=`${t.height.toFixed()}px`}get input(){return this._input}release(){this._container.parentElement?.removeChild(this._container)}}const JP={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 QP(t,e){const{title:i={},item:r={},pager:o={},background:n={},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}=wt({},JP,t),C=y;return i.visible&&(C.title=x_(i)),ut(r.focusIconStyle)||__(r.focusIconStyle),S_(r.shape),S_(r.label),S_(r.value),S_(r.background),bA(r.maxWidth)&&(r.maxWidth=Number(r.maxWidth.substring(0,r.maxWidth.length-1))*e.width/100),bA(r.width)&&(r.width=Number(r.width.substring(0,r.width.length-1))*e.width/100),bA(r.height)&&(r.height=Number(r.height.substring(0,r.height.length-1))*e.width/100),C.item=r,ut(o.textStyle)||__(o.textStyle),S_(o.handler),C.pager=o,n.visible&&!ut(n.style)&&(wt(C,n.style),Y(n.padding)&&(C.padding=n.padding)),C}class tH{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=mt(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 c_(wt({},t,{defaultSelected:this.selectedData,disableTriggerEvent:this.table.options.disableInteraction}));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,o=this.table.tableNoFrameHeight,n=DS(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=n[3],a=0,e+=n[1]+n[3]):"top"===this.orient?(s=0,a=n[0],i+=n[0]+n[2]):"right"===this.orient?(s=r-e-n[1],a=0,e+=n[1]+n[3]):"bottom"===this.orient&&(s=0,a=o-i-n[2],i+=n[0]+n[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-n[1]:n[3]:d="middle"===h?(o-i)/2:"end"===h?o-i-n[2]:n[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,...QP(this.option,t)}}getLegendItems(){return this.option.data}initEvent(){this.legendComponent&&(this.legendComponent.addEventListener(r_.legendItemClick,(t=>{const e=gt(t,"detail.currentSelected");this.table.fireListeners(xw.LEGEND_ITEM_CLICK,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(r_.legendItemHover,(t=>{const e=gt(t,"detail");this.table.fireListeners(xw.LEGEND_ITEM_HOVER,{model:this,value:e,event:t})})),this.legendComponent.addEventListener(r_.legendItemUnHover,(t=>{const e=gt(t,"detail");this.table.fireListeners(xw.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 eH={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"}}}},iH={horizontal:{...eH,rail:{width:200,height:8,style:{fill:"rgba(0,0,0,0.04)"}}},vertical:{...eH,rail:{width:8,height:200,style:{fill:"rgba(0,0,0,0.04)"}}}},rH={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)"}},...eH},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)"}},...eH}};function oH(t,e){const{title:i={},handler:r={},rail:o={},track:n={},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:C,regionId:w,regionIndex:v,seriesIndex:x,seriesId:_,padding:S,...A}=wt({},("color"===t.type?iH:rH)["bottom"===t.orient||"top"===t.orient?"horizontal":"vertical"],t),R=A;return i.visible&&(R.title=x_(i)),R.showHandler=!1!==r.visible,ut(r.style)||(R.handlerStyle=__(r.style)),Y(o.width)&&(R.railWidth=o.width),Y(o.height)&&(R.railHeight=o.height),ut(o.style)||(R.railStyle=__(o.style)),ut(n.style)||(R.trackStyle=__(n.style)),R.startText=S_(s),R.endText=S_(a),R.handlerText=S_(l),ut(h)||(R.sizeBackground=__(h)),c.visible&&!ut(c.style)&&(wt(R,c.style),Y(c.padding)&&(R.padding=c.padding)),R}class nH{table;option;orient;visible;position;selectedData;legendComponent;constructor(t,e){this.table=e,this.option=mt(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 f_(wt({},t,{slidable:!0})):new b_(wt({},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,o=this.table.tableNoFrameHeight,n=DS(t.padding??this.option.padding??10);let s=0,a=0;"left"===this.orient?(s=n[3],a=0,e+=n[1]+n[3]):"top"===this.orient?(s=0,a=n[0],i+=n[0]+n[2]):"right"===this.orient?(s=r-e-n[1],a=0,e+=n[1]+n[3]):"bottom"===this.orient&&(s=0,a=o-i-n[2],i+=n[0]+n[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-n[1]:n[3]:d="middle"===h?(o-i)/2:"end"===h?o-i-n[2]:n[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{...oH(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=gt(t,"detail.value");this.table.fireListeners(xw.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 sH(t,e){return"color"===t.type||"size"===t.type?new nH(t,e):new tH(t,e)}class aH{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),Y(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 o=[];for(let n=lH(r,t+i-1);n>=0;n--){const s=r[n];if(s>=t)o.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,o[i-1-t])}const{length:o}=r;if(t<e){const n=[];for(let s=lH(r,t);s<o;s++){const o=r[s];if(o>=t&&o<t+i)n.push(this.get(o));else if(t+i<=o&&o<=e)this.put(o-i,this.get(o));else if(o>e)break}for(let t=0;t<i;t++)this.put(e+t,n[t])}}exchangeOrder(t,e,i,r,o){const{_keys:n}=this;if(this._sorted||(n.sort(((t,e)=>t<e?-1:t>e?1:0)),this._sorted=!0),t>i){const r=[],s=[];for(let o=lH(n,i);o<t+e;o++){const i=n[o];i>=t&&i<t+e?s.push(this.get(i)):r.push(this.get(i))}for(let t=0;t<e;t++)this.put(o+t,s[t]);for(let t=0;t<r.length;t++)this.put(o+e+t,r[t])}else{const s=[],a=[];for(let o=lH(n,t);o<i+r;o++){const i=n[o];i>=t&&i<t+e?a.push(this.get(i)):s.push(this.get(i))}for(let t=0;t<e;t++)this.put(o+t,a[t]);for(let e=0;e<s.length;e++)this.put(t+e,s[e])}}}function lH(t,e){let i=0,r=t.length-1;for(;i<=r;){const o=Math.floor((i+r)/2);if(t[o]===e)return o;t[o]>e?r=o-1:i=o+1}return r<0?0:r}class hH{dragReorderIconName;_table;constructor(t){this._table=t;const e=jA();this.dragReorderIconName=e[dC.dragReorderIconName]}getIcons(t,e){return[this.dragReorderIconName]}}class cH{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 dH(t,e){t=t.clone();for(const i in e){const r=e[i];r&&(t[`_${i}`]=r)}return t}class uH{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 Mw;dimensionKeysIncludeVirtual=new Mw;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 Mw,this.dimensionKeysIncludeVirtual=new Mw,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?Ww:t.dimensionKey)||this.dimensionKeys.put(t.level,t.indicatorKey?Ww:t.dimensionKey),this.dimensionKeysIncludeVirtual.contain(t.indicatorKey?Ww:t.dimensionKey)||this.dimensionKeysIncludeVirtual.put(t.level,t.indicatorKey?Ww:t.dimensionKey),t.id||(t.id=++this.sharedVar.seqId));let r=t.dimensionKey&&this.sizeIncludeParent?1:0;const o=t.children||t.columns;return"grid"===this.hierarchyType?o?.length>=1?o.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===sC.expand&&o?.length>=1?o.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===sC.collapse&&o?.length>=1?o.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&&(o?.length>=1||!0===o)?(t.hierarchyState=sC.expand,o?.length>=1&&o.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),r+=this.setTreeNode(e,r,t)}))):o?.length>=1||!0===o?(t.hierarchyState=sC.collapse,o?.length>=1&&o.forEach((e=>{e.level=(t.level??0)+1,this.totalLevel=Math.max(this.totalLevel,e.level+1),this.setTreeNode(e,r,t)}))):(t.hierarchyState=sC.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 o=t[r],n=this.findNodeById(i,o);if(!n)break;e.push(n),i=n.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 o=t-e.startIndex;if(this.cache.has(e.level+1)){const t=this.cache.get(e.level+1);if(o>=t.startIndex&&o<t.startIndex+t.size)return void this.searchPath(o,t,i,r)}let n=0,s=e.children.length-1;for(;n<=s;){const t=Math.floor((n+s)/2),a=e.children[t];if(o>=a.startIndex&&o<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(o,a,i,r);break}o<a.startIndex?s=t-1:n=t+1}}movePosition(t,e,i){let r,o,n;const s=(a,l)=>{if(void 0!==o&&void 0!==n)return;a.level===t&&(a.startInTotal===e&&(o=l),a.startInTotal<=i&&i<=a.startInTotal+a.size-1&&(n=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(o,1);l.unshift(n,0),Array.prototype.splice.apply(a,l)}getCopiedTree(){const t=mt(this.tree.children);return bH(t),t}}function gH(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=[],gH(i.children,e.children))}))}function pH(t,e){let i=0;return t?.forEach((t=>{e?i++:t.children&&0!==t.children.length||i++,t.children&&(i+=pH(t.children,e))})),i}function fH(t,e,i,r,o,n){const s=t.id,a=n.rowsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey))??n.columnsDefine?.find((e=>"string"!=typeof e&&e.dimensionKey===t.dimensionKey)),l=n.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),Y(n._indicators?.find((t=>t.indicatorKey===l.indicatorKey)))||n._indicators?.push({id:++n.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&&(Y(n._indicators?.find((e=>e.indicatorKey===t.indicatorKey)))||n._indicators?.push({id:++n.sharedVar.seqId,indicatorKey:t.indicatorKey,field:t.indicatorKey,cellType:"text",define:Object.assign({},t)})),i[s]=h,n._headerObjects[s]=h,e[o][n.colIndex]=s;for(let t=o-1;t>=0;t--)e[t][n.colIndex]=r[t];if(t.levelSpan>1)for(let i=1;i<t.levelSpan;i++)e[o+i]||(e[o+i]=[]),e[o+i][n.colIndex]=s;if(t.children?.length>=1)n._addHeaders(e,o+(t.levelSpan??1),t.children??[],[...r,...Array(t.levelSpan??1).fill(s)],i);else{for(let t=o+1;t<e.length;t++)e[t][n.colIndex]=s;n.colIndex++}}function mH(t,e,i,r,o,n,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===n||"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:n,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[o][l.colIndex]=h;for(let t=o-1;t>=0;t--)e[t][l.colIndex]=r[t];if(t.hierarchyState===sC.expand&&t.children?.length>=1)s&&l.colIndex++,l._addHeadersForTreeMode(e,o,t.children??[],[...r,h],n,s&&t.hierarchyState===sC.expand,a,i);else{s&&l.colIndex++;for(let t=o+1;t<e.length;t++)e[t][l.colIndex]=h}}function bH(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&&bH(r)}}function yH(t,e){let i,r;e.columnTree&&(!1!==t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.columnTree=CH(t.internalProps.columnTree,e.indicators)),i=new uH(t.internalProps.columnTree??[],t.layoutNodeId)),e.rowTree&&(!1===t.options.indicatorsAsCol&&!1!==t.options.supplementIndicatorNodes&&(t.internalProps.rowTree=CH(t.internalProps.rowTree,e.indicators)),r=new uH(t.internalProps.rowTree??[],t.layoutNodeId,t.options.rowHierarchyType,"tree"===t.options.rowHierarchyType?t.options.rowExpandLevel??1:void 0));const o=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],n=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&&(t.internalProps.dataConfig?.aggregationRules?t.internalProps.dataConfig?.aggregationRules.push({field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:aC.NONE}):t.internalProps.dataConfig?t.internalProps.dataConfig.aggregationRules=[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:aC.NONE}]:t.internalProps.dataConfig={aggregationRules:[{field:i.indicatorKey,indicatorKey:i.indicatorKey,aggregationType:aC.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)})),o.push(...e)})),{rowKeys:o,columnKeys:n,indicatorKeys:s,columnDimensionTree:i,rowDimensionTree:r}}function CH(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 wH(t,e){const i=function(t,e){if(!t.internalProps.frozenRowCount)return null;let{scrollTop:i}=t;const r=t.internalProps.frozenRowCount;for(let o=0;o<r;o++){const r=t.getRowHeight(o),n=i+r;if(n>e)return{top:i,row:o,bottom:n,height:r};i=n}return null}(e,t);if(i)return i;let r=_H(t,e);return r||(r={top:-1,row:-1,bottom:-1,height:-1}),r}function vH(t,e){const i=function(t,e){if(!t.internalProps.frozenColCount)return null;let{scrollLeft:i}=t;const r=t.internalProps.frozenColCount;for(let o=0;o<r;o++){const r=t.getColWidth(o),n=i+r;if(n>e)return{left:i,col:o,right:n,width:r};i=n}return null}(e,t);if(i)return i;let r=xH(t,e);return r||(r={left:-1,col:-1,right:-1,width:1}),r}function xH(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 o=Math.floor((i+r)/2);if(t<e._colRangeWidthsMap.get(`$0$${o}`))r=o;else{if(!(t>e._colRangeWidthsMap.get(`$0$${o}`)))return o;i=o}}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 o=r-e.getColWidth(i);const{colCount:n}=e.internalProps;for(let r=i;r<n;r++){const i=e.getColWidth(r),n=o+i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{left:o,col:r,right:n,width:i};o=n}return null})(i,r):((i,r)=>{let o=r;for(let r=i;r>=0;r--){const i=e.getColWidth(r),n=o-i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{left:n,col:r,right:o,width:i};o=n}return null})(i,r)}function _H(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 o=r-e.getRowHeight(i);const{rowCount:n}=e.internalProps;for(let r=i;r<n;r++){const i=e.getRowHeight(r),n=o+i;if(Math.round(o)<=Math.round(t)&&Math.round(t)<Math.round(n))return{top:o,row:r,bottom:n,height:i};o=n}return null})(i,r):((i,r)=>{let o=r;for(let r=i;r>=0;r--){const i=e.getRowHeight(r),n=o-i;if(Math.round(n)<=Math.round(t)&&Math.round(t)<Math.round(o))return{top:n,row:r,bottom:o,height:i};o=n}return null})(i,r)}function SH(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 xH(t,i)}function AH(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 _H(t,i)}const{toBoxArray:RH}=ww,{isTouchEvent:BH}=Cw,TH=/^\$(\d+)\$(\d+)$/;!function(){if("node"===IC.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.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 MH={};class PH extends fC{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 xw}options;version="1.3.2-alpha.3";pagination;id=`VTable${Date.now()}`;headerStyleCache;bodyStyleCache;bodyBottomStyleCache;container;isReleased=!1;_chartEventMap={};customCellStylePlugin;columnWidthComputeMode;_hasAutoImageColumn;constructor(t,e={}){if(super(),!t&&"node"!==e.mode&&!e.canvas)throw new Error("vtable's container is undefined");const{frozenColCount:i=0,defaultRowHeight:r=40,defaultHeaderRowHeight:o,defaultColWidth:n=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:C,allowFrozenColCount:w,padding:v,hover:x,menu:_,select:S,customRender:A,pixelRatio:R=iP,renderChartAsync:B,renderChartAsyncBatchCount:T,mode:M,modeParams:P,canvasWidth:H,canvasHeight:E,overscrollBehavior:L,limitMinWidth:k,limitMinHeight:I,clearDOM:F=!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},v&&("number"==typeof v?(this.padding.top=v,this.padding.left=v,this.padding.bottom=v,this.padding.right=v):(v.top&&(this.padding.top=v.top),v.bottom&&(this.padding.bottom=v.bottom),v.left&&(this.padding.left=v.left),v.right&&(this.padding.right=v.right))),this.tableNoFrameWidth=0,this.tableNoFrameHeight=0,this.canvasWidth=H,this.canvasHeight=E,this.columnWidthComputeMode=e.columnWidthComputeMode??"normal";const z=this.internalProps={};if(void 0!==C&&(this.showFrozenIcon=C),"number"==typeof w&&w<=0&&(this.showFrozenIcon=!1),this.options.canvas?(z.element=this.options.canvas.parentElement,z.element.style.position="relative",z.focusControl=new ZP(this,z.element),z.canvas=this.options.canvas,z.context=z.canvas.getContext("2d")):"node"!==IC.mode&&(z.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),z.focusControl=new ZP(this,z.element),z.canvas=document.createElement("canvas"),z.element.appendChild(z.canvas),z.context=z.canvas.getContext("2d")),z.handler=new Bw,ot(this.options.resizeTime)&&(z.handler.resizeTime=this.options.resizeTime),z.pixelRatio=R,z.frozenColCount=i,z.defaultRowHeight=r,z.defaultHeaderRowHeight=o??r,z.defaultColWidth=n,z.defaultHeaderColWidth=s??n,z.keyboardOptions=g,z.eventOptions=p,z.rowSeriesNumber=f,z.columnResizeMode=m,z.rowResizeMode=b,z.dragHeaderMode=y??"none",z.renderChartAsync=B,GB(T),z.overscrollBehavior=L??"auto",z._rowHeightsMap=new aH(this),z._rowRangeHeightsMap=new Map,z._colRangeWidthsMap=new Map,z._widthResizedColMap=new Set,z._heightResizedRowMap=new Set,this.colWidthsMap=new Mw,this.colContentWidthsMap=new Mw,this.colWidthsLimit={},z.calcWidthContext={_:z,get full(){return"node"===IC.mode?H/(R??1):this._.canvas.width/(this._.context.pixelRatio??window.devicePixelRatio)}},z.cellTextOverflows={},z.focusedTable=!1,z.theme=iv.of(e.theme??iv.DEFAULT),z.theme.isPivot=this.isPivotTable(),t?(F&&(t.innerHTML=""),t.appendChild(z.element),this._updateSize()):this._updateSize(),this.options=e,z.theme=iv.of(e.theme??iv.DEFAULT),z.theme.isPivot=this.isPivotTable(),z.bodyHelper=new cP(this),z.headerHelper=new HP(this),z.rowSeriesNumberHelper=new hH(this),z.autoWrapText=e.autoWrapText,z.enableLineBreak=e.enableLineBreak,z.allowFrozenColCount=e.allowFrozenColCount??0,z.limitMaxAutoWidth=e.limitMaxAutoWidth??450,z.limitMinWidth=null!=k?"number"==typeof k?k:k?10:0:10,z.limitMinHeight=null!=I?"number"==typeof I?I:I?10:0:10,this._vDataSet=new z_,this.scenegraph=new PM(this),this.stateManager=new UM(this),this.eventManager=new sP(this),e.legends)if(z.legends=[],Array.isArray(e.legends)){for(let t=0;t<e.legends.length;t++)z.legends.push(sH(e.legends[t],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else z.legends.push(sH(e.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});z.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},e.tooltip),"html"===z.tooltip.renderMode&&(z.tooltipHandler=new NP(this,z.tooltip.confine)),z.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"===z.menu.renderMode&&(z.menuHandler=new qP(this)),this.headerStyleCache=new Map,this.bodyStyleCache=new Map,this.bodyBottomStyleCache=new Map,z.stick={changedCells:new Map},z.customMergeCell=e.customMergeCell,this.customCellStylePlugin=new cH(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:vA(this,t)}_getColWidthLimits(t){const e=this.colWidthsLimit[t];if(!e)return null;const i={};return e.min&&(i.min=vA(this,e.min),i.minDef=e.min),e.max&&(i.max=vA(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"===IC.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(this.tableX=0,this.tableY=0,this.options.canvas&&this.options.viewBox)e=this.options.viewBox.x2-this.options.viewBox.x1,i=this.options.viewBox.y2-this.options.viewBox.y1,this?.scenegraph?.stage&&(this.options.viewBox?this.scenegraph.stage.setViewBox(this.options.viewBox,!1):this.scenegraph.stage.resize(e,i));else if("browser"===IC.mode){const r=this.getElement();let o=0,n=0;if(r.parentElement){const t=r.parentElement.style||window.getComputedStyle(r.parentElement);o=r.parentElement.offsetWidth-parseInt(t.paddingLeft||"0px",10)-parseInt(t.paddingRight||"0px",10),n=r.parentElement.offsetHeight-parseInt(t.paddingTop||"0px",10)-parseInt(t.paddingBottom||"0px",20)}const s=o??0,a=n??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`)}else"node"===IC.mode&&(e=this.canvasWidth-1,i=this.canvasHeight-1);const r=Math.floor(e-FC(this.getTheme().scrollStyle)),o=Math.floor(i-FC(this.getTheme().scrollStyle));if(this.internalProps.theme?.frameStyle){const t=RH(this.internalProps.theme.frameStyle?.borderLineWidth??[null]),e=RH(this.internalProps.theme.frameStyle?.shadowBlur??[0]);this.theme.frameStyle?.innerBorder?(this.tableX=0,this.tableY=0,this.tableNoFrameWidth=r-(e[1]??0),this.tableNoFrameHeight=o-(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=o-((t[0]??0)+(e[0]??0))-((t[2]??0)+(e[2]??0)))}}updateViewBox(t){const e=this.options?.viewBox.x2??0-this.options?.viewBox.x1??0,i=this.options?.viewBox.y2??0-this.options?.viewBox.y1??0,r=t.x2-t.x1,o=t.y2-t.y1;this.options.viewBox=t,e!==r||i!==o?this.resize():this.scenegraph.stage.setViewBox(this.options.viewBox,!0)}setViewBoxTransform(t,e,i,r,o,n){this.internalProps.modifiedViewBoxTransform=!0,this.scenegraph.stage.window.setViewBoxTransform(t,e,i,r,o,n)}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 o=0;for(let i=t;i<=e;i++)o+=this.getColWidth(i);return t>=0&&e>=0&&this._colRangeWidthsMap.set(`$${t}$${e}`,Math.round(o)),Math.round(o)}getRowHeight(t){if(Y(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 ot(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=TH.exec(i);if(e){const r=Number(e[1]),o=Number(e[2]);t>=r&&t<=o&&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=vA(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=vA(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 o=this.getColWidth(t);let n;r=i&&i.col&&this.isRightFrozenColumn(t,e)?this.tableNoFrameWidth-(this.getColsWidth(t,this.colCount-1)??0):this.getColsWidth(0,t-1)||0;const s=this.getRowHeight(e);return n=i&&i.row&&this.isBottomFrozenRow(t,e)?this.tableNoFrameHeight-(this.getRowsHeight(e,this.rowCount-1)??0):this.getRowsHeight(0,e-1),new Pw(Math.round(r),Math.round(n),Math.round(o),Math.round(s))}getMergeCellRect(t,e){const i=this.getCellRange(t,e),r=this.getColsWidth(0,i.start.col-1)||0,o=this.getColsWidth(i.start.col,i.end.col),n=this.getRowsHeight(0,i.start.row-1)||0,s=this.getRowsHeight(i.start.row,i.end.row);return new Pw(Math.round(r),Math.round(n),Math.round(o),Math.round(s))}getCellRelativeRect(t,e){const i=this.isFrozenCell(t,e);let r=!0,o=!0;i?.col&&i?.row?(r=!1,o=!1):i?.col?r=!1:i?.row&&(o=!1);const n=this.getCellRect(t,e);return this._toRelativeRect(n,r,o)}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,o=!0;return i?.col&&i?.row?(r=!1,o=!1):i?.col?r=!1:i?.row&&(o=!1),this._toRelativeRect(this.getCellsRect(e.start.col,e.start.row,e.end.col,e.end.row),r,o)}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),o=t.copy();o.left=i,o.right=r;const n=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 o.top=n,o.bottom=s,o}getCellsRect(t,e,i,r){let o=this.getColsWidth(0,t-1)||0,n=this.getColsWidth(t,i);const s=this.scrollLeft;this.isLeftFrozenColumn(t)&&this.isRightFrozenColumn(i)?n=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-o:this.isLeftFrozenColumn(t)&&!this.isLeftFrozenColumn(i)?n=Math.max(n-s,this.getColsWidth(t,this.frozenColCount-1)):!this.isRightFrozenColumn(t)&&this.isRightFrozenColumn(i)?(o=Math.min(o-s,this.tableNoFrameWidth-this.getRightFrozenColsWidth()),n=this.tableNoFrameWidth-(this.getColsWidth(t+1,this.colCount-1)??0)-o):this.isRightFrozenColumn(t)&&(o=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 Pw(Math.round(o),Math.round(a),Math.round(n),Math.round(l))}getCellsRectWidth(t,e,i,r){const o=this.isFrozenCell(t,e),n=this.isFrozenCell(i,r);let s=this.getColsWidth(t,i);if(o&&o.col){const e=this.scrollLeft;n&&n.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 wH(t,this)}getColAt(t){return vH(t,this)}getCellAt(t,e){return function(t,e,i){const r=wH(e,i),{row:o,top:n,bottom:s,height:a}=r,l=vH(t,i),{col:h,left:c,right:d,width:u}=l;return{row:o,col:h,rect:{left:c,right:d,top:n,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 o=!1;t>i.tableNoFrameWidth-i.getRightFrozenColsWidth()&&t<i.tableNoFrameWidth&&(o=!0);const n=SH(o?t:t+i.scrollLeft,o,i),s=AH(r?e:e+i.scrollTop,r,i);if(!n||!s)return;const{row:a,top:l,bottom:h,height:c}=s,{col:d,left:u,right:g,width:p}=n;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),o=function(t){let e=0,i=0;t.frozenColCount>0&&(e=t.getFrozenColsWidth()),t.rightFrozenColCount>0&&(i=t.getRightFrozenColsWidth());let r=0,o=0;return t.frozenRowCount>0&&(r=t.getFrozenRowsHeight()),t.bottomFrozenRowCount>0&&(o=t.getBottomFrozenRowsHeight()),new Pw(t.scrollLeft+e,t.scrollTop+r,t.tableNoFrameWidth-e-i,t.tableNoFrameHeight-r-o)}(this);if(o.contains(r))return;i&&i.col||this.getColsWidth(0,this.frozenColCount-1)+r.width>this.canvas.width||(r.left<o.left?this.scrollLeft-=o.left-r.left:o.right<r.right&&(this.scrollLeft-=o.right-r.right)),i&&i.row||this.getRowsHeight(0,this.frozenRowCount-1)+r.height>this.canvas.height||(r.top<o.top?this.scrollTop-=o.top-r.top:o.bottom<r.bottom&&(this.scrollTop-=o.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(),o=this.getVisibleRect();return r.offsetLeft(this.tableX-(e?o.left:0)),r.offsetTop(this.tableY-(i?o.top:0)),r.offsetLeft(this.options.viewBox?.x1??0),r.offsetTop(this.options.viewBox?.y1??0),r}getVisibleRect(){const{scrollTop:t,scrollLeft:e}=this,i=this.tableNoFrameWidth,r=this.tableNoFrameHeight;return new Pw(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 o=Math.max(r.top>=i?r.row:r.row+1,t);let n=this.getRowsHeight(0,o-1),s=0;const{rowCount:a}=this;for(let t=o;t<a;t++){const i=n+this.getRowHeight(t);if(e.bottom<i)break;s++,n=i}return s}getBodyVisibleCellRange(){const{scrollTop:t,scrollLeft:e}=this,i=this.getFrozenRowsHeight(),r=this.getFrozenColsWidth(),o=this.getBottomFrozenRowsHeight(),n=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-o).row:this.rowCount-1,h=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(e+this.tableNoFrameWidth-1-n).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),o=this.getAllRowsHeight()>this.tableNoFrameHeight?this.getRowAt(t+this.tableNoFrameHeight-1-i).row:this.rowCount-1;return o<0?null:{rowStart:r,rowEnd:o}}getBodyVisibleColRange(){const{scrollLeft:t}=this,e=this.getFrozenColsWidth(),i=this.getRightFrozenColsWidth(),{col:r}=this.getColAt(t+e+1),o=this.getAllColsWidth()>this.tableNoFrameWidth?this.getColAt(t+this.tableNoFrameWidth-1-i).col:this.colCount-1;return o<0?null:{colStart:r,colEnd:o}}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 o=Math.max(r.left>=i?r.col:r.col+1,t);let n=this.getColsWidth(0,o-1),s=0;const{colCount:a}=this;for(let t=o;t<a;t++){const i=n+this.getColWidth(t);if(e.right<i)break;s++,n=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?.(),NA.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(),t.focusControl.release();const{parentElement:e}=t.element;e&&!this.options.canvas&&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:o=80,defaultHeaderColWidth:n=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:C,heightMode:w,autoFillWidth:v,autoFillHeight:x,widthAdaptiveMode:_,heightAdaptiveMode:S,customRender:A,renderChartAsync:R,renderChartAsyncBatchCount:B,overscrollBehavior:T,limitMinWidth:M,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=C??"standard",this.heightMode=w??"standard",this._widthAdaptiveMode=_??"only-body",this._heightAdaptiveMode=S??"only-body",this.autoFillWidth=v??!1,this.autoFillHeight=x??!1,this.customRender=A;const H=this.internalProps;if("node"===IC.mode||t.canvas||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"}(H.element,this.padding),this.columnWidthComputeMode=t.columnWidthComputeMode??"normal",H.frozenColCount=e,H.defaultRowHeight=i,H.defaultHeaderRowHeight=r??i,H.defaultColWidth=o,H.defaultHeaderColWidth=n??o,H.keyboardOptions=s,H.eventOptions=a,H.rowSeriesNumber=l,H.columnResizeMode=h,H.rowResizeMode=c,H.dragHeaderMode=d??"none",H.renderChartAsync=R,GB(B),H.overscrollBehavior=T??"auto",H.cellTextOverflows={},H._rowHeightsMap=new aH(this),H._rowRangeHeightsMap=new Map,H._colRangeWidthsMap=new Map,H._widthResizedColMap=new Set,H._heightResizedRowMap=new Set,this.colWidthsMap=new Mw,this.colContentWidthsMap=new Mw,this.colWidthsLimit={},H.stick.changedCells.clear(),H.theme=iv.of(t.theme??iv.DEFAULT),H.theme.isPivot=this.isPivotTable(),this.scenegraph.updateStageBackground(),H.autoWrapText=t.autoWrapText,H.enableLineBreak=t.enableLineBreak,H.allowFrozenColCount=t.allowFrozenColCount??0,H.limitMaxAutoWidth=t.limitMaxAutoWidth??450,H.limitMinWidth=null!=M?"number"==typeof M?M:M?10:0:10,H.limitMinHeight=null!=P?"number"==typeof P?P:P?10:0:10,this._vDataSet=new z_,H.legends?.forEach((t=>{t?.release()})),H.title?.release(),H.title=null,H.emptyTip?.release(),H.emptyTip=null,H.layoutMap.release(),this.scenegraph.clearCells(),this.scenegraph.updateComponent(),this.stateManager.updateOptionSetState(),this._updateSize(),this.eventManager.updateEventBinder(),t.legends)if(H.legends=[],Array.isArray(t.legends)){for(let e=0;e<t.legends.length;e++)H.legends.push(sH(t.legends[e],this));this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY})}else H.legends.push(sH(t.legends,this)),this.scenegraph.tableGroup.setAttributes({x:this.tableX,y:this.tableY});H.tooltip=Object.assign({renderMode:"html",isShowOverflowTextTooltip:!1,confine:!0},t.tooltip),"html"!==H.tooltip.renderMode||H.tooltipHandler||(H.tooltipHandler=new NP(this,H.tooltip.confine)),H.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"!==H.menu.renderMode||H.menuHandler||(H.menuHandler=new qP(this)),this.clearCellStyleCache(),this.clearColWidthCache(),this.clearRowHeightCache(),H.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 Pw(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=BH(t)?t.changedTouches[0]:t;const o=r.clientX||r.pageX+window.scrollX,n=r.clientY||r.pageY+window.scrollY,s=i.internalProps.canvas.getBoundingClientRect();let a=!0;s.right<=o&&(a=!1),s.bottom<=n&&(a=!1);const l=s.width,h=l/(this.canvas.offsetWidth||l),c=s.height,d=c/(this.canvas.offsetHeight||c),u={x:(o-s.left)/h+(e?i.scrollLeft:0)-(this.options.viewBox?.x1??0),y:(n-s.top)/d+(e?i.scrollTop:0)-(this.options.viewBox?.y1??0),inTable:a};if(this.internalProps.modifiedViewBoxTransform&&this.scenegraph.stage.window.getViewBoxTransform()){this.scenegraph.stage.window.getViewBoxTransform().transformPoint(u,u)}return u}getTheme(){return this.internalProps.theme}getTargetColAt(t){return xH(t,this)}getTargetRowAt(t){return _H(t,this)}getTargetColAtConsiderRightFrozen(t,e){return SH(t,e,this)}getTargetRowAtConsiderBottomFrozen(t,e){return AH(t,e,this)}clearSelected(){this.stateManager.updateSelectPos(-1,-1)}selectCell(t,e,i,r){this.stateManager.updateSelectPos(t,e,i,r),this.stateManager.endSelectCells()}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(rC.grabing),this.stateManager.updateSelectPos(t.end.col,t.end.row,!1,e>=1,!1,!1,!0)),this.stateManager.endSelectCells(!1),this.stateManager.updateInteractionState(rC.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(),wA(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=iv.of(t??iv.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=iv.of(t??iv.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 $A("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,$A("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)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"),o=BC(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=o}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,o=r?.description??i?.description;if("function"==typeof o){return o({col:t,row:e,value:this.getCellValue(t,e),dataValue:this.getCellOriginValue(t,e)})}return o}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 o=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource?.hasField(o,t)}_getCellStyle(t,e){const i=this.customCellStylePlugin.getCustomCellStyle(t,e),{layoutMap:r}=this.internalProps;if(r.isHeader(t,e)){let o;if(!this.isPivotTable()||this.isBottomFrozenRow(e)||this.isRightFrozenColumn(t))o=`${t}-${e}`;else{const i=this.getHeaderDefine(t,e),r=this.isCornerHeader(t,e);o=i?.dimensionKey?r?`dim-cor-${i.dimensionKey}`:`dim-${i.dimensionKey}`:i?.indicatorKey?`ind-${i.indicatorKey}`:`${t}-${e}`}let n=this.headerStyleCache.get(o);if(n)return i?dH(n,i):n;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 MH;const l=this.internalProps.headerHelper.getStyleClass(s?.headerType||"text");if(r.isBottomFrozenRow(t,e)&&this.theme.bottomFrozenStyle)n=kC(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)n=kC(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),n=kC(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(o,n),i?dH(n,i):n}let o,n;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&&(o=i.bgColor.mapping)}));const s=this.getCellType(t,e);let a;if(n=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(n):this.bodyStyleCache.get(n),a)return i?dH(a,i):a;const l=r.getBody(t,e),h=this.internalProps.bodyHelper.getStyleClass(this.getCellType(t,e)),c=l?.style;return a=BC(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),o&&(a=dH(a,{bgColor:o})),$(c)||(r.isBottomFrozenRow(e)?this.bodyBottomStyleCache.set(n,a):this.bodyStyleCache.set(n,a)),i?dH(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 o=this.getCellValue(t,e),n=this.getCellOriginValue(t,e),s=this.internalProps.context,a=this.internalProps.bodyHelper.getIcons(t,e,o,n,s);i?.length>0?i=i.concat():a?.length>0&&(i=a)}else{const r=this.getCellValue(t,e),o=this.getCellOriginValue(t,e),n=this.internalProps.context;i=this.internalProps.bodyHelper.getIcons(t,e,r,o,n)}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=xA(i,this,t,e,$A).theme,{autoWrapText:o,lineClamp:n,textOverflow:s}=i;return{textAlign:r.text.textAlign,textBaseline:r.text.textBaseline,bgColor:K(r.group.fill)?$A("bgColor",i,t,e,this):r.group.fill,color:K(r.text.fill)?$A("color",i,t,e,this):r.text.fill,strokeColor:K(r.text.stroke)?$A("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:o??!1,lineClamp:n??"auto",textOverflow:s,borderColor:K(r.group.stroke)?$A("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:$A("linkColor",i,t,e,this)}}getAllBodyCells(t,e){const i=this.rowHeaderLevelCount,r=this.columnHeaderLevelCount,o=this.colCount-1,n=this.rowCount-1;return Array(Math.min(e??2e3,n-r+1,this.rowCount)).fill(0).map(((e,n)=>Array(Math.min(t??2e3,o-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,n+r)))))}getAllCells(t,e){const i=0,r=0,o=this.colCount-1,n=this.rowCount-1;return Array(Math.min(e??2e3,n-r+1,this.rowCount)).fill(0).map(((e,n)=>Array(Math.min(t??2e3,o-i+1,this.colCount)).fill(0).map(((t,e)=>this.getCellInfo(e+i,n+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,o)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,o+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,o)=>Array(i-t+1).fill(0).map(((i,r)=>this.getCellInfo(r+t,o+e)))))}scrollToCell(t){const e=this.getDrawRange();if(Y(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(Y(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),o=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),o=Math.max(o,t.start.row,t.end.row)}));const n=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row);r<=e&&o>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),o=Math.max(t.start.col,t.end.col);r<=e&&o>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const o=Math.min(t.start.row,t.end.row),n=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&&o<=i&&n>=i&&(r=t)})),r},l=(t,e,i)=>{const r=this.getCellRange(t,e);let o=r.start.col,n=r.start.row;if(i){const t=Math.min(i.start.col,i.end.col),e=Math.min(i.start.row,i.end.row);o=Math.max(t,r.start.col),n=Math.max(e,r.start.row)}if(o!==t||n!==e)return"";return this.getCellValue(t,e)};let h="";for(let t=r;t<=o;t++){if(n(t)){for(let r=e;r<=i;r++){if(s(r)){const e=a(r,t);if(e){const o=l(r,t,e);if("undefined"!=typeof Promise&&o instanceof Promise);else{const t=Y(o)?`${o}`:"";/^\[object .*\]$/.exec(t)||(h+=t)}(r<e.end.col||r<i)&&(h+="\t")}else h+="\t"}}t<o&&(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),o=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),o=Math.max(o,t.start.row,t.end.row)}));const n=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.row,t.end.row),o=Math.max(t.start.row,t.end.row);r<=e&&o>=e&&(i=!0)})),i},s=e=>{let i=!1;return t.forEach((t=>{const r=Math.min(t.start.col,t.end.col),o=Math.max(t.start.col,t.end.col);r<=e&&o>=e&&(i=!0)})),i},a=(e,i)=>{let r;return t.forEach((t=>{const o=Math.min(t.start.row,t.end.row),n=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&&o<=i&&n>=i&&(r=t)})),r},l=[];for(let t=r;t<=o;t++){if(n(t)){const r=[];for(let o=e;o<=i;o++){if(s(o)){if(a(o,t)){const e=this.getCellInfo(o,t);r.push(e)}}}l.push(r)}}return l}getSelectedCellRanges(){const t=this.stateManager.select.ranges;return t.length?mt(t):[]}measureText(t,e){return lB.measureText(t,e)}measureTextBounds(t){return cB(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(et(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!tt(i)&&("image"===i.headerType||"video"===i.headerType||"function"==typeof i.headerType)&&i.imageAutoSizing)return!0}if(et(i)&&i.length>0)for(let t=0;t<i.length;t++){const e=i[t];if(!tt(e)&&("image"===e.headerType||"video"===e.headerType||"function"==typeof e.headerType)&&e.imageAutoSizing)return!0}if(et(r)&&r.length>0)for(let t=0;t<r.length;t++){const e=r[t];if(!tt(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(et(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;const o=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.colCount-1,row:this.columnHeaderLevelCount}}),n=this.getCellRangeRelativeRect({start:{col:0,row:0},end:{col:this.rowHeaderLevelCount,row:this.rowCount-1}});if(r.top>=i.top&&r.bottom<=i.bottom&&r.left>=i.left&&r.right<=i.right){if(this.isHeader(t,e))return!0;if(i.top>=o.bottom&&i.left>=n.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:o,scrollLeft:n}=this;r||this.scrollToCell({col:t,row:e});const s=this.getCellRelativeRect(t,e);this.stateManager.select?.ranges?.length>0&&eM(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 me).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(o),this.setScrollLeft(n)),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&&iM(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),o=Math.min(t.start.row,t.end.row),n=Math.max(t.start.col,t.end.col),s=Math.max(t.start.row,t.end.row),a=this.cellIsInVisualView(r,o),l=this.cellIsInVisualView(n,s);a&&l||this.scrollToCell({col:r,row:o});const h=this.getCellRangeRelativeRect({start:{col:r,row:o},end:{col:n,row:s}});this.stateManager.select?.ranges?.length>0&&eM(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 me).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&&iM(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 me).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:o,maxWidth:n}=e.layoutMap.columnWidths?.[i]??{};t&&r&&("string"==typeof r&&"auto"!==r||"number"==typeof r&&r>0)&&this._setColWidth(i,r),o&&("number"==typeof o&&o>0||"string"==typeof o)&&this.setMinColWidth(i,o),n&&("number"==typeof n&&n>0||"string"==typeof n)&&this.setMaxColWidth(i,n)}}setSortedIndexMap(t,e){this.dataSource?.setSortedIndexMap(t,e)}}var HH=Object.freeze({__proto__:null,BaseTable:PH});const EH={};function LH(t){if(EH[t])return EH[t]}function kH(t,e,i){const r=t[e];return t[e]=i,r}function IH(t){for(const e in t)delete t[e]}function FH(){IH(Fw),IH(WA),IH(hR)}var zH=Object.freeze({__proto__:null,chartModule:function(t,e){return null!=e?kH(hR,t,e):hR[t]},clearAll:FH,editor:function(t,e){return null!=e?kH(EH,t,e):EH[t]},icon:function(t,e){return null!=e?kH(WA,t,e):WA[t]},theme:function(t,e){return null!=e?kH(Fw,t,e):Fw[t]}});var OH=Object.freeze({__proto__:null,dateFormat:function(t,e,i,r,o){null==i&&(i=!1),null==r&&(r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==o&&(o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);const n=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${n}FullYear`]();case"m":return s(a[`get${n}Month`]()+1);case"n":return r[a[`get${n}Month`]()];case"d":return s(a[`get${n}Date`]());case"w":return o[a[`get${n}Day`]()];case"x":return a[`get${n}Day`]();case"H":return s(a[`get${n}Hours`]());case"M":return s(a[`get${n}Minutes`]());case"S":return s(a[`get${n}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 o=r[0];const n=r.length>1?i+r[1]:"";return o=function(t,e){return t.replace(/\d+/,(function(t){return t.replace(/(\d)(?=(\d{3})+$)/g,(function(t){return`${t}${e}`}))}))}(o,e),o+n}((t.scaler*e).toFixed(t.digitsAfterDecimal),t.thousandsSep,t.decimalSep);return`${t.prefix}${i}${t.suffix}`}}});const DH="NO_AXISID_FRO_VTABLE";function WH(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 NH(t,e,i,r){let o=!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){o=!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&&(o=!0):o=!1}return o}function GH(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 jH(t,e,i,r,o,n,s){const{axisOption:a,isPercent:l,isZeroAlign:h,seriesIndice:c}=GR(t,e,r,s),d=VR(s.dataset.collectedValues,o,h,n,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}=LR(d.min,d.max,a,0,s._table.getColWidth(t));d.min=e[0],d.max=e[1]}return ot(a?.min)&&(d.min=a.min),ot(a?.max)&&(d.max=a.max),{range:d,isZeroAlign:h,axisOption:a}}function VH(t){let e=!1;for(let i=0;i<t.columnObjects.length;i++){if(t.columnObjects[i].chartSpec){e=!0;break}}return e}class UH{seqId=0;_headerObjects;_headerObjectMap;_headerCellIds;_columns;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._headerCellIds=[],this.hierarchyIndent=r??20,this.hierarchyTextStartAlignment=t.options.hierarchyTextStartAlignment,this.columnTree=new uH(e,{seqId:0}),this._headerObjects=this._addHeaders(0,e,[]),this._headerObjectMap=this._headerObjects.reduce(((t,e)=>(t[e.id]=e,t)),{}),this.rowHierarchyType=function(t){const{columns:e}=t._table.options;if(et(e)&&e.length>0)for(let t=0;t<e.length;t++){const i=e[t];if(!tt(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 o=[];if(!this.transpose){for(let r=t;r<=i;r++){const t=this.getBody(r,e);t.aggregator&&(o=o.concat(Array.isArray(t.aggregator)?t.aggregator:[t.aggregator]))}return o}for(let i=e;i<=r;i++){const e=this.getBody(t,i);e.aggregator&&(o=o.concat(Array.isArray(e.aggregator)?e.aggregator:[e.aggregator]))}return[]}getAggregatorOnTop(t,e){const i=this.getBody(t,e),r=i.aggregator,o=i.aggregation;if(Array.isArray(o)){const i=o.reduce(((t,e,i)=>(e.showOnTop&&t.push(i),t)),[]),n=i.map((t=>r[t]));return this.transpose?n[t-this.rowHeaderLevelCount]:n[e-this.columnHeaderLevelCount]}return this.transpose&&t-this.rowHeaderLevelCount==0?o?.showOnTop?r:null:this.transpose||e-this.columnHeaderLevelCount!=0?null:o?.showOnTop?r:null}getAggregatorOnBottom(t,e){const i=this.getBody(t,e),r=i.aggregator,o=i.aggregation;if(Array.isArray(o)){const i=o.reduce(((t,e,i)=>(!1===e.showOnTop&&t.push(i),t)),[]),n=i.map((t=>r[t]));return this.transpose?n[t-(this.colCount-this.hasAggregationOnBottomCount)]:n[e-(this.rowCount-this.hasAggregationOnBottomCount)]}return this.transpose&&t-(this.colCount-this.hasAggregationOnBottomCount)==0?!1===o?.showOnTop?r:null:this.transpose||e-(this.rowCount-this.hasAggregationOnBottomCount)!=0?null:!1===o?.showOnTop?r:null}getAggregatorCellAddress(t,e,i,r){const o=[],n=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<n;t++)o.push({col:this.headerLevelCount+t,row:i});for(let t=0;t<s;t++)o.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<n;t++)o.push({col:r,row:this.headerLevelCount+t});for(let t=0;t<s;t++)o.push({col:r,row:this.rowCount-s+t})}}return o}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(Y(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(Y(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(Y(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(Y(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 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(((o,n)=>{"number"==typeof o.width?r=Math.max(o.width,r):"auto"===o.width&&(t=!0),"number"==typeof o.minWidth&&(i=Math.max(o.minWidth,i)),"number"==typeof o.maxWidth&&(e=Math.max(o.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 o=e-1;o>=this.headerLevelCount;o--){const e=this._table.getCellValue(t,o);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=o}for(let o=e+1;o<this.rowCount;o++){const e=this._table.getCellValue(t,o);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=o}}}else{const r=this.getCellId(t,e);for(let o=t-1;o>=0&&r===this.getCellId(o,e);o--)i.start.col=o;for(let o=t+1;o<(this.colCount??0)&&r===this.getCellId(o,e);o++)i.end.col=o;for(let o=e-1;o>=0&&r===this.getCellId(t,o);o--)i.start.row=o;for(let o=e+1;o<this.headerLevelCount&&r===this.getCellId(t,o);o++)i.end.row=o}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 o=t-1;o>=this.headerLevelCount+this.leftRowSeriesNumberColumnCount;o--){const t=this._table.getCellValue(o,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=o}for(let o=t+1;o<(this.colCount??0);o++){const t=this._table.getCellValue(o,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=o}}return i}const r=this.getCellId(t,e);for(let o=e-1;o>=0&&r===this.getCellId(t,o);o--)i.start.row=o;for(let o=e+1;o<(this.rowCount??0)&&r===this.getCellId(t,o);o++)i.end.row=o;for(let o=t-1;o>=0&&r===this.getCellId(o,e);o--)i.start.col=o;for(let o=t+1;o<this.headerLevelCount+this.leftRowSeriesNumberColumnCount&&r===this.getCellId(o,e);o++)i.end.col=o;return i}isCellRangeEqual(t,e,i,r){const o=this.getCellRange(t,e),n=this.getCellRange(i,r);return o.start.col===n.start.col&&o.end.col===n.end.col&&o.start.row===n.start.row&&o.end.row===n.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 o=[],n=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};o[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]&&(n[s]=this._headerCellIds[t-1][s]):n[s]=a,e.columns)this._addHeaders(t+1,e.columns,[...i,a],e.hideColumnsSubHeader||r).forEach((t=>o.push(t)));else{const i=e;this._columns.push({id:this.seqId++,field:i.field,fieldFormat:i.fieldFormat,width:i.width,minWidth:i.minWidth,maxWidth:i.maxWidth,icon:i.icon,cellType:i.cellType??i.columnType??"text",chartModule:"chartModule"in i?i.chartModule:null,chartSpec:"chartSpec"in i?i.chartSpec:null,sparklineSpec:"sparklineSpec"in i?i.sparklineSpec:Nw,style:i.style,define:i,columnWidthComputeMode:i.columnWidthComputeMode,disableColumnResize:i?.disableColumnResize,aggregation:this._getAggregationForColumn(i,s),isChildNode:t>=1});for(let e=t+1;e<this._headerCellIds.length;e++)this._headerCellIds[e][s]=a}})),o}_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=>(Y(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 o;const n=this.getCellRange(e.col,i.start.row);if(o=e.col>=t.col?n.end.col-r+1:n.start.col,o===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(o-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(o-this.leftRowSeriesNumberColumnCount,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.row,i.start.col-this.leftRowSeriesNumberColumnCount,o-this.leftRowSeriesNumberColumnCount),this.columnTree.reset(this.columnTree.tree.children,!0),this._cellRangeMap=new Map,{sourceIndex:i.start.col,targetIndex:o,sourceSize:r,targetSize:n.end.col-n.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 o;const n=this.getCellRange(i.start.col,e.row);if(o=e.row>=t.row?n.end.row-r+1:n.start.row,o===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(o,0),Array.prototype.splice.apply(this._headerCellIds[t],e)}const s=this._columns.splice(i.start.row,r);return s.unshift(o,0),Array.prototype.splice.apply(this._columns,s),this.columnTree.movePosition(i.start.col-this.leftRowSeriesNumberColumnCount,i.start.row,o+(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:o,sourceSize:r,targetSize:n.end.row-n.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 VH(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 GH(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 KH{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)_t(t,this._cacheAttrs)||this._titleComponent.setAttributes(t);else{const e=new y_(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=DS(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=DS(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 $H{table;editingEditor;editCell;constructor(t){this.table=t,this.bindEvent()}bindEvent(){const t=this.table.internalProps.handler;this.table.on(xw.DBLCLICK_CELL,(t=>{if(!this.table.options.editCellTrigger||"doubleclick"===this.table.options.editCellTrigger){const{col:e,row:i}=t,r=BA(t.federatedEvent),o=this.table.scenegraph.getResizeColAt(r.abstractPos.x,r.abstractPos.y,r.eventArgs?.targetCell);if(this.table._canResizeColumn(o.col,o.row)&&o.col>=0)return;this.startEditCell(e,i)}})),this.table.on(xw.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),o=this.table.getCellRangeRelativeRect(this.table.getCellRange(t,e)),n={rect:{left:o.left,top:o.top,width:o.width,height:o.height}};i.beginEditing,i.beginEditing?.(this.table.getElement(),n,r),i.bindSuccessCallback,i.bindSuccessCallback?.((()=>{this.completeEdit()})),i.onStart?.({value:r,endEdit:()=>{this.completeEdit()},referencePosition:n,container:this.table.getElement(),col:t,row:e})}}completeEdit(t){if(!this.editingEditor)return;const e=t?.target,{editingEditor:i}=this;if(e)if(i.targetIsOnEditor){if(i.targetIsOnEditor(e))return}else if(!i.isEditorElement||i.isEditorElement(e))return;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)}this.table.changeCellValues(e.start.col,e.start.row,i),this.editingEditor.exit,this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null}}cancelEdit(){this.editingEditor&&(this.editingEditor.exit?.(),this.editingEditor.onEnd?.(),this.editingEditor=null)}}class XH{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)_t(t,this._cacheAttrs)||this._emptyTipComponent.setAttributes(t);else{const e=new v_(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.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0?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.getDrawRange().width:this.table.tableNoFrameWidth)-t,r=(this.table.rowHeaderLevelCount>0?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 YH={startInTotal:0,level:0};class qH{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=Ww;_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){if(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._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this._table.isPivotChart()&&(this.hasTwoIndicatorAxes=this._indicators.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._rowHeaderCellFullPathIds_FULL=VC(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),"column"===this.cornerSetting.titleOnDimension){const t=this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();this.cornerHeaderObjs=this._addCornerHeaders(this.columnHeaderTitle?[""].concat(t):t,this.columnsDefine)}else if("row"===this.cornerSetting.titleOnDimension)if("tree"===this.rowHierarchyType&&this.extensionRows?.length>=1){const t=[];t.push(this.rowDimensionKeys[0]),this._extensionRowDimensionKeys.forEach((e=>{t.push(e[0])}));const e=this.extensionRows.reduce(((t,e)=>t.concat(e.rows)),[]);this.cornerHeaderObjs=this._addCornerHeaders(this.rowHeaderTitle?[""].concat(t):t,this.rowsDefine.concat(e))}else{const t=this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr();this.cornerHeaderObjs=this._addCornerHeaders(this.rowHeaderTitle?[""].concat(t):t,this.rowsDefine)}else this.cornerHeaderObjs=this._addCornerHeaders(null,void 0);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=(et(e.paddingInner)?e.paddingInner[0]:e.paddingInner)??0,this._chartPaddingOuter=(et(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&&this._addHeaders(this._columnHeaderCellFullPathIds,0,this.columnDimensionTree.tree.children,[],this.columnHeaderObjs),this.columnHeaderTitle){this.sharedVar.seqId=Math.max(this.sharedVar.seqId,this._headerObjects.length);const t=++this.sharedVar.seqId,e=Array(this.colCount-this.rowHeaderLevelCount).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&&("tree"===this.rowHierarchyType?this._addHeadersForTreeMode(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowDimensionTree.totalLevel,!0,this.rowsDefine,this.rowHeaderObjs):this._addHeaders(this._rowHeaderCellFullPathIds_FULL,0,this.rowDimensionTree.tree.children,[],this.rowHeaderObjs)),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,o){const n=this;t[e]||function(e){const i=t[e]=[];if(0===n.colIndex)return i;const r=t[e-1];for(let t=0;t<r?.length;t++)i[t]=r[t]}(e);for(let n=0;n<i.length;n++){fH(i[n],t,o,r,e,this)}}_addHeadersForTreeMode(t,e,i,r,o,n,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++){mH(i[l],t,a,r,e,o,n,s,this)}}_addCornerHeaders(t,e){const i=[];if(t)t.forEach(((t,r)=>{const o=++this.sharedVar.seqId,n=e.find((e=>"string"!=typeof e&&e.dimensionKey===t)),s={id:o,title:t===this.indicatorDimensionKey?this.indicatorTitle:n?n.title:"axis"===t?"":t,field:t,style:this.cornerSetting.headerStyle,headerType:this.cornerSetting.headerType??"text",showSort:n?.showSortInCorner,sort:n?.sort,define:{showSort:n?.showSortInCorner,sort:n?.sort,dimensionKey:t,id:o,value:t,disableHeaderHover:!!this.cornerSetting.disableHeaderHover,disableHeaderSelect:!!this.cornerSetting.disableHeaderSelect},dropDownMenu:n?.cornerDropDownMenu,pivotInfo:{value:n?.title??"",dimensionKey:t,isPivotCorner:!0},description:n?.cornerDescription};if(i[o]=s,this._headerObjects[o]=s,"column"===this.cornerSetting.titleOnDimension){this._cornerHeaderCellFullPathIds[r]||(this._cornerHeaderCellFullPathIds[r]=[]);for(let t=0;t<this.rowHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[r][t]=o}else if("row"===this.cornerSetting.titleOnDimension)for(let t=0;t<this.columnHeaderLevelCount;t++)this._cornerHeaderCellFullPathIds[t]||(this._cornerHeaderCellFullPathIds[t]=[]),this._cornerHeaderCellFullPathIds[t][r]=o}));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}};i[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 i}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 o,n;if(this.colIndex=0,"function"==typeof t.rowTree){const i=this.findFullCellIds(e);o=t.rowTree(i.map((t=>({dimensionKey:this._headerObjects[t].field,value:this._headerObjects[t].title}))))}else o=mt(t.rowTree);this._rowHeaderExtensionTree[r]?(this._rowHeaderExtensionTree[r].reset(this._rowHeaderExtensionTree[r].tree.children,!0),n=this._rowHeaderExtensionTree[r]):(n=new uH(o??[],this.sharedVar,this.rowHierarchyType,void 0),this._rowHeaderExtensionTree[r]=n);const s=[];this._addHeadersForTreeMode(s,0,n.tree.children,[],n.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,o=0;this._indicators?.forEach(((t,n)=>{"number"==typeof t.width?o=Math.max(t.width,o):"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))})),o=o>0?o:r?"auto":void 0,t.fill({width:o,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(Y(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(Y(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(Y(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(Y(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&&WH(this.indicatorsDefine)&&(t-=1),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),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&&WH(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 Y(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 Y(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 o=t-1;o>=0&&r===this.getCellId(o,e);o--)i.start.col=o;for(let o=t+1;o<(this.colCount??0)&&r===this.getCellId(o,e);o++)i.end.col=o;for(let o=e-1;o>=0&&r===this.getCellId(t,o);o--)i.start.row=o;for(let o=e+1;o<(this.rowCount??0)&&!(r!==this.getCellId(t,o)||this.isSeriesNumberInHeader(t,e)&&o>=this.columnHeaderLevelCount);o++)i.end.row=o}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 o=this.getCellRange(t,e),n=this.getCellRange(i,r);return o.start.col===n.start.col&&o.end.col===n.end.col&&o.start.row===n.start.row&&o.end.row===n.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 o=[],n=[];if(e>=0&&i>=0&&(o=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 o=t[i];for(r.push(o);;){const t=this._headerObjectMap[o];if(!t?.parentCellId)break;r.unshift(t.parentCellId),o=t.parentCellId}const s=e.getTreePathByCellIds(r);n=n.concat(s),e=this._rowHeaderExtensionTree[t[i]],i++}}else n=this.rowDimensionTree.getTreePath(r,this.showHeader&&this.showRowHeader?t-(this.rowHeaderTitle?1:0)-this.leftRowSeriesNumberColumnCount:this.rowDimensionTree.totalLevel);const s={colHeaderPaths:o,rowHeaderPaths:n,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}))),o=this.getHeader(t,e);if(o.define.hierarchyState=o.define.hierarchyState===sC.collapse?sC.expand:sC.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=VC(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 n=function(t,e,i,r,o,n){const s=n.columnHeaderLevelCount,a=[],l=[];for(let t=0;t<i.length;t++)r.includes(i[t])||l.push(o[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=n.getParentCellId(t,e),c=n.getRowHeaderCellAddressByCellId(h);const d=[];for(c&&d.push(c);h;)h=n.getParentCellId(c.col,c.row),h&&(c=n.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),n}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,o=this.columnTree;for(let n=0;n<t.length;n++){const s=t[n];if((s.isPivotCorner||!s.value)&&n===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<o.length;t++){const e=o[t];if((Y(s.dimensionKey)&&e.dimensionKey===s.dimensionKey||Y(s.indicatorKey)&&e.indicatorKey===s.indicatorKey)&&e.value===s.value){o=e.children,i=e,a=!0;break}}if(!a)for(let t=0;t<r.length;t++){const i=r[t];if((Y(s.dimensionKey)&&i.dimensionKey===s.dimensionKey||Y(s.indicatorKey)&&i.indicatorKey===s.indicatorKey)&&i.value===s.value){r=i.children,e=i;break}}}let n=0,s=0;if(e){s=this.columnHeaderLevelCount;const{startInTotal:t,level:i}=e;return s+=t,n="grid"===this.rowHierarchyType?(this.rowHeaderTitle?i+1:i)+this.leftRowSeriesNumberColumnCount:0+this.leftRowSeriesNumberColumnCount,{col:n,row:s}}if(i){n=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=i;return n+=t,s=this.columnHeaderTitle?e+1:e,{col:n,row:s}}}getPivotDimensionInfo(t,e){const{colHeaderPaths:i,rowHeaderPaths:r}=this.getCellHeaderPaths(t,e),o=[];return i.length?i.forEach(((t,e)=>{o.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):r.length?r.forEach(((t,e)=>{o.push({dimensionKey:t.dimensionKey,value:t.value,isPivotCorner:!1,indicatorKey:t.indicatorKey})})):this.isCornerHeader(t,e)&&("row"===this?.cornerSetting?.titleOnDimension?o.push({dimensionKey:this.rowDimensionKeys[(this.rowHeaderTitle?t-1:t)-this.leftRowSeriesNumberColumnCount],isPivotCorner:!0}):o.push({dimensionKey:this.colDimensionKeys[this.columnHeaderTitle?e-1:e],isPivotCorner:!0})),o}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,o)=>!!r.find(((i,r)=>i===t&&(e=r,!0)))&&(i=o,!0))),Y(e)&&Y(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=mt(this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths),r=mt(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 o;const n=this.getCellRange(e.col,i.start.row);if(o=e.col>=t.col?n.end.col-r+1:n.start.col,o===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(o-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(o-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,n.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:o,sourceSize:r,targetSize:n.end.col-n.start.col+1,moveType:"column"}}if(this.isRowHeader(t.col,t.row)){let r;const o=this.getCellHeaderPathsWithTreeNode(t.col,t.row).rowHeaderPaths,n=this.getCellHeaderPathsWithTreeNode(e.col,e.row).rowHeaderPaths,s=o[o.length-1],a=n[o.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(o.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,o=!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()&&(o=!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 n,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(!Y(i.indicatorKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Y(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(!Y(e.indicatorKey)&&i.dimensionKey===e.dimensionKey&&i.value===e.value||Y(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(o||!h||(c||Y(s))&&d){if(c||o){s=this.columnHeaderLevelCount;const{startInTotal:t,level:e}=c??YH;s+=t??0,a="grid"===this.rowHierarchyType?(this.rowHeaderTitle?e+1:e)+this.leftRowSeriesNumberColumnCount:0}if(d||o){n=this.rowHeaderLevelCount+this.leftRowSeriesNumberColumnCount;const{startInTotal:t,level:e}=d??YH;n+=t??0,l=this.columnHeaderTitle?e+1:e}return Y(n)||Y(s)?{col:n??a,row:s??l}:void 0}}setChartInstance(t,e,i){const r=this.getCellHeaderPaths(t,e);let o;if(this.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=this._indicators?.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=this._indicators?.find((e=>e.indicatorKey===t))}"function"!=typeof o?.chartSpec&&o&&(o.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 VH(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))&&NH(t,e,"row",this)||(this.isFrozenRow(t,e)||this.isBottomFrozenRow(t,e))&&NH(t,e,"col",this))return NR(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&&WH(this.indicatorsDefine)){if(this.isBottomFrozenRow(t,e)&&NH(t,e,"col",this)||this.isRightFrozenColumn(t,e)&&NH(t,e,"row",this))return!0;if(this.isRowHeader(t,e)&&t===this.rowHeaderLevelCount-1&&NH(t,e,"row",this))return!0;if(this.hasTwoIndicatorAxes&&this.indicatorsAsCol&&e===this.columnHeaderLevelCount-1&&NH(t,e,"col",this))return!0}return!1}getChartAxes(t,e){if(function(t,e,i){let r=!0;const o=i.getRawChartSpec(t,e);return o&&"pie"!==o.type&&"radar"!==o.type&&"gauge"!==o.type&&"wordCloud"!==o.type&&"funnel"!==o.type&&"rose"!==o.type||(r=!1),r}(t,e,this)||this.isAxisCell(t,e))return function(t,e,i){const r=[];if(i.indicatorsAsCol){const o=i.getIndicatorKeyInChartSpec(t,e),n=i.getColKeysPath(t,e);o.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=jH(t,e,a,0===a?"bottom":"top",o,n,i);if(h){const r=jH(t,e,o.length-1-a,0===a?"top":"bottom",o,n,i);if(r){const{range:t}=r,e=WR(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}ot(c?.min)&&(l.min=c.min),ot(c?.max)&&(l.max=c.max),r.push(wt({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:DH}}))}));let s=i.getDimensionKeyInChartSpec(i.rowHeaderLevelCount,e);et(s)&&(s=s[0]);const a=(i.dataset.cacheCollectedValues[s]||i.dataset.collectedValues[s]||[])[i.getRowKeysPath(t,e)??""],{axisOption:l,isPercent:h,chartType:c}=GR(t,e,"left",i);r.push(wt({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 o=i.getIndicatorKeyInChartSpec(t,e),n=i.getRowKeysPath(t,e);o.forEach(((s,a)=>{const{range:l,isZeroAlign:h,axisOption:c}=jH(t,e,a,0===a?"left":"right",o,n,i);if(h){const r=jH(t,e,o.length-1-a,0===a?"right":"left",o,n,i);if(r){const{range:t}=r,e=WR(l,t);e&&(l.min=e.range1[0],l.max=e.range1[1])}}ot(c?.min)&&(l.min=c.min),ot(c?.max)&&(l.max=c.max),r.push(wt({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:DH}}))}));let s=i.getDimensionKeyInChartSpec(t,i.columnHeaderLevelCount);et(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}=GR(t,e,"bottom",i);r.push(wt({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 o;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}const n=o?.chartSpec;if("function"==typeof n)return n({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 n}(t,e,this)}getChartSpec(t,e){return function(t,e,i){let r=i.getRawChartSpec(t,e);return r?i._table.isPivotChart()?(r=eS(r),r.sortDataByAxis=!0,et(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 o;if(i.indicatorsAsCol){const t=r.colHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}else{const t=r.rowHeaderPaths.find((t=>t.indicatorKey))?.indicatorKey;o=i.columnObjects.find((e=>e.indicatorKey===t))}const n=o?.chartSpec;return"function"!=typeof n}(t,e,this)}getChartDataId(t,e){return GH(t,e,this)}setPagination(t){if(this.clearCellRangeMap(),this._table.internalProps.useOneRowHeightFillAll=!1,this.pagination=t,"grid"===this.rowHierarchyType&&Y(this.pagination?.perPageCount)&&Y(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,o,n=this.rowTree,s=this.columnTree;if(Y(i)&&Y(e)&&"tree"===this.rowHierarchyType&&this.extensionRows&&e>=1+this.leftRowSeriesNumberColumnCount){const t=this.getCellId(e-1,i);n=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(Y(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Y(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Y(i.value)||!Y(e.value))){s=e.children,o=e,a=!0;break}}if(!a)for(let t=0;t<n?.length;t++){const e=n[t];if(Y(i.dimensionKey)&&e.dimensionKey===i.dimensionKey&&e.value===i.value||Y(i.indicatorKey)&&e.indicatorKey===i.indicatorKey&&(e.value===i.value||!Y(i.value)||!Y(e.value))){n=e.children,r=e;break}}}return r||(o||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=ZH(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const o=DS(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+o[0]+o[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=ZH(i?.length??0,this._chartItemBandSize,this._chartPaddingInner,this._chartPaddingOuter);else{const t=this._chartItemSpanSize||25;r=(i?.length??0)*(t+t/3)}const o=DS(this._chartPadding??this._table.theme.bodyStyle.padding??0);return r+o[1]+o[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 gH(t,this.columnDimensionTree.tree.children),t}getLayoutRowTree(){const t=[];return gH(t,this.rowDimensionTree.tree.children),t}getLayoutColumnTreeCount(){return pH(this.columnDimensionTree.tree.children,"tree"===this.rowHierarchyType)}getLayoutRowTreeCount(){let t=pH(this.rowDimensionTree.tree.children,"tree"===this.rowHierarchyType);return this.extensionRows?.forEach((e=>{if("function"!=typeof e.rowTree){const i=pH(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 uH(this.columnTree??[],this.sharedVar),this.rowDimensionTree=new uH(this.rowTree??[],this.sharedVar,this.rowHierarchyType,"tree"===this.rowHierarchyType?this.rowExpandLevel:void 0),this._generateColHeaderIds(),this.colIndex=0,this._generateRowHeaderIds(),this.resetColumnHeaderLevelCount(),this._rowHeaderCellFullPathIds_FULL=VC(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}generateCellIdsConsiderHideHeader(){if(this._columnHeaderCellIds=this._columnHeaderCellFullPathIds.slice(),!this.showColumnHeader)if(this.indicatorsAsCol&&!this.hideIndicatorName){const t=this.colDimensionKeys.indexOf(Ww),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(Ww);this._rowHeaderCellIds_FULL.forEach(((e,i)=>{const r=e.slice(),o=r.splice(t,1);r.splice(0,r.length),r.push(o[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(Ww),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(Ww);this._cornerHeaderCellIds.forEach(((e,i)=>{const r=e.slice(),o=r.splice(t,1);r.splice(0,r.length),r.push(o[0]),this._cornerHeaderCellIds[i]=r}))}}}function ZH(t,e,i,r){1===i&&(i=0);const o=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),n=e/(1-i);return Math.ceil(o*n)}class JH{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 o=t[r];void 0!==o&&(this.dataConfig.indicatorsAsCol?e.push(r):i.push(r));const n=i.join(this.stringJoinChar),s=e.join(this.stringJoinChar);0!==i.length&&(this.rowFlatKeys[n]||(this.rowFlatKeys[n]=1)),0!==e.length&&(this.colFlatKeys[s]||(this.colFlatKeys[s]=1)),0===e.length&&0===i.length||(this.tree[n]||(this.tree[n]={}),void 0!==o&&(this.tree[n][s]={value:o,record:t},this.dataConfig.indicatorsAsCol?e.pop():i.pop()))}))}getTreeNode(t=[],e=[],i,r=!0){let o,n;if("string"==typeof t)o=t;else{let e=!1;t.map(((r,o)=>{r===i&&(t.splice(o,1),e=!0)})),e&&t.push(i),o=t.join(this.stringJoinChar)}if("string"==typeof e)n=e;else{let t=!1;e.map(((r,o)=>{r===i&&(e.splice(o,1),t=!0)})),t&&e.push(i),n=e.join(this.stringJoinChar)}return r?this.tree?.[o]?.[n]??void 0:Y(this.beforeChangedTree[o]?.[n])?{value:this.beforeChangedTree[o][n].value,record:this.beforeChangedTree[o][n].record}:void 0}changeTreeNodeValue(t=[],e=[],i,r){let o,n;if("string"==typeof t)o=t;else{let e=!1;t.map(((r,o)=>{r===i&&(t.splice(o,1),e=!0)})),e&&t.push(i),o=t.join(this.stringJoinChar)}if("string"==typeof e)n=e;else{let t=!1;e.map(((r,o)=>{r===i&&(e.splice(o,1),t=!0)})),t&&e.push(i),n=e.join(this.stringJoinChar)}const s=this.tree[o]?.[n]?.value,a=Object.assign({},this.tree[o]?.[n]?.record);this.tree[o]?.[n]?.record?(this.tree[o][n].record[i]=r,this.tree[o][n].value=r):(this.tree[o]||(this.tree[o]={}),this.tree[o][n]={record:this._buildRecord(t,e,i,r),value:r}),this.beforeChangedTree[o]?.[n]||(this.beforeChangedTree[o]={},this.beforeChangedTree[o][n]={record:void 0,value:void 0},this.beforeChangedTree[o][n].record=a,this.beforeChangedTree[o][n].value=s)}_buildRecord(t=[],e=[],i,r){const o={},n=this.dataConfig.rows,s=this.dataConfig.columns;return n.forEach(((e,i)=>{e!==this.dataConfig.indicatorDimensionKey&&(o[e]=t[i])})),s.forEach(((t,i)=>{t!==this.dataConfig.indicatorDimensionKey&&(o[t]=e[i])})),o[i]=r,this.records.push(o),o}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,o=this.records.length;r<o;r++){const o=this.records[r];o[t]===e&&(o[t]=i)}this.rowFlatKeys={},this.colFlatKeys={},this.tree={},this.processRecords()}}}class QH{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;totals;indicatorStatistics=[];aggregators={};stringJoinChar=String.fromCharCode(0);rowsIsTotal=[];colsIsTotal=[];colGrandTotalLabel;colSubTotalLabel;rowGrandTotalLabel;rowSubTotalLabel;needSplitPositiveAndNegative;collectValuesBy;collectedValues={};cacheCollectedValues={};rows;columns;indicatorKeys;customRowTree;customColTree;colHeaderTree;rowHeaderTree;rowHierarchyType;indicators;indicatorsAsCol;totalRecordsTree={};constructor(t,e,i,r,o,n,s,a,l,h,c){if(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.totals=this.dataConfig?.totals,this.rows=e,this.columns=i,this.indicatorKeys=r,this.indicatorsAsCol=n,this.indicators=o,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=[],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,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,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,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(aC.RECORD,dS),this.registerAggregator(aC.SUM,pS),this.registerAggregator(aC.COUNT,fS),this.registerAggregator(aC.MAX,bS),this.registerAggregator(aC.MIN,yS),this.registerAggregator(aC.AVG,mS),this.registerAggregator(aC.NONE,uS)}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 o,n;this.needSplitPositiveAndNegative&&(o=Object.values(this.collectedValues[t][e]).reduce(((t,e)=>e.positiveValue()>t?e.positiveValue():t),Number.MIN_SAFE_INTEGER),n=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=o,this.collectedValues[t][e].negativeMin=n)}}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(Y(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[aC.SUM](e,void 0,void 0,this.needSplitPositiveAndNegative)),this.collectedValues[e][i][r].push(t)}else if(this.collectValuesBy[e].range){const r=this.collectedValues[e][i],o=Math.max(t[e],r.max),n=Math.min(t[e],r.min);isNaN(o)||(r.max=o,r.min=n)}else{const r=this.collectedValues[e][i];-1===r.indexOf(t[e])&&r.push(t[e])}}const i=[],r=[];let o=!1;for(let e=0,i=this.rows.length;e<i;e++){const i=this.rows[e];if(i in t)r.push(t[i]);else if(i!==Ww){if(this.dataConfig?.totals?.row?.showGrandTotals&&0===e&&!this.rows.find((e=>e in t))){r.push(this.rowGrandTotalLabel),o=!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),o=!0;break}}}for(let e=0,r=this.columns.length;e<r;e++){const r=this.columns[e];if(r in t)i.push(t[r]);else if(r!==Ww){if(this.dataConfig?.totals?.column?.showGrandTotals&&0===e&&!this.columns.find((e=>e in t))){i.push(this.colGrandTotalLabel),o=!0;break}if(this.dataConfig?.totals?.column?.subTotalsDimensions&&this.dataConfig?.totals?.column?.subTotalsDimensions.indexOf(this.columns[e-1])>=0){i.push(this.colSubTotalLabel),o=!0;break}}}const n=r.join(this.stringJoinChar),s=i.join(this.stringJoinChar);if(o){this.totalRecordsTree[n]||(this.totalRecordsTree[n]={}),this.totalRecordsTree[n][s]||(this.totalRecordsTree[n][s]=[]);for(let e=0;e<this.indicatorKeys.length;e++){const i=this.getAggregatorRule(this.indicatorKeys[e]);this.totalRecordsTree[n]?.[s]?.[e]||(this.totalRecordsTree[n][s][e]=new this.aggregators[i?.aggregationType??aC.SUM](i?.field??this.indicatorKeys[e],i?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)),this.indicatorKeys[e]in t&&this.totalRecordsTree[n]?.[s]?.[e].push(t)}}else{0!==r.length&&(this.rowFlatKeys[n]||(this.rowKeys.push(r),this.rowFlatKeys[n]=1)),0!==i.length&&(this.colFlatKeys[s]||(this.colKeys.push(i),this.colFlatKeys[s]=1)),this.tree[n]||(this.tree[n]={}),this.tree[n]?.[s]||(this.tree[n][s]=[]);for(let i=0;i<this.indicatorKeys.length;i++){const r=this.getAggregatorRule(this.indicatorKeys[i]);let o=!1;if(e)this.indicatorKeys[i]===e&&(o=!0);else if(r?.field)if("string"==typeof r?.field)r?.field in t&&(o=!0);else{const e=r?.field.find((e=>e in t));e&&(o=!0)}else this.indicatorKeys[i]in t&&(o=!0);!this.tree[n]?.[s]?.[i]&&o&&(this.tree[n][s][i]=new this.aggregators[r?.aggregationType??aC.SUM](r?.field??this.indicatorKeys[i],r?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[i]))?.format)),o&&this.tree[n]?.[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[aC.MAX](this.indicatorKeys[e]),min:new this.aggregators[aC.MIN](this.indicatorKeys[e]),total:new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[e],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)}}this.indicatorStatistics[e].max.push(this.tree[n]?.[s]?.[e].value()),this.indicatorStatistics[e].min.push(this.tree[n]?.[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,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,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,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,o){const n=this.indicatorKeys.indexOf(i);let s,a;"string"==typeof t?s=t:(o&&"row"!==o.position||t.map(((e,r)=>{e!==i||Y(o?.index)&&r!==o.index||t.splice(r,1)})),s=t.join(this.stringJoinChar)),"string"==typeof e?a=e:(o&&"col"!==o.position||e.map(((t,r)=>{t!==i||Y(o?.index)&&r!==o.index||e.splice(r,1)})),a=e.join(this.stringJoinChar));const l=this.tree[s]?.[a]?.[n];if(r&&Y(this.changedTree[s]?.[a]?.[n])){const t=this.changedTree[s][a][n];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 wS(e(t,[]),e(i,[]))}));break;case"value_z_to_a":this.rowKeys.sort((function(t,i){return-wS(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 wS(e([],t),e([],i))}));break;case"value_z_to_a":this.colKeys.sort((function(t,i){return-wS(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,o=function(o){const n=[];for(let o=0,s=t.length;o<s;o++)if(i=t[o],r.sortRules)for(let t=0,s=r.sortRules.length;t<s;t++)r.sortRules[t].sortField===i&&n.push({field:i,fieldIndex:o,sortRule:r.sortRules[t],func:r.getSort(r.sortRules[t],e)});return n}.call(this);return function(i,n){let s,a;for(let l=0;l<o.length;l++){if(a=o[l],a.sortRule?.sortByIndicator){let o=i,l=n;a.fieldIndex<t.length-1&&(o=i.slice(0,a.fieldIndex+1),o.push(e?r.rowSubTotalLabel:r.colSubTotalLabel),l=n.slice(0,a.fieldIndex+1),l.push(e?r.rowSubTotalLabel:r.colSubTotalLabel)),s=a.func(o,l)}else s=a.func?.(i[a.fieldIndex],n[a.fieldIndex]);if(0!==s)return s*(a.sortRule?.sortType===lC.DESC?-1:1)}return 0}}getSort(t,e){const i=this;return t.sortByIndicator?(r,o)=>{const n=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?wS(n(r,t.query),n(o,t.query)):wS(n(t.query,r),n(t.query,o))}:t.sortBy?function(t){let e;const i={},r={};for(let o=0;o<t.length;o++)e=t[o],i[e]=o,"string"==typeof e&&(r[e.toLowerCase()]=o);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:wS(t,e)}}(t.sortBy):t.sortType?CS:t.sortFunc?t.sortFunc:wS}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)for(let o=0,n=t.totals?.column?.subTotalsDimensions?.length;o<n;o++){const n=t.totals.column.subTotalsDimensions[o],s=t.columns.indexOf(n);if(s>=0){const o=r.slice(0,s+1);o.push(t.colSubTotalLabel);const n=o.join(this.stringJoinChar);if(this.totalRecordsTree?.[e]?.[n])return void(this.tree[e][n]=this.totalRecordsTree?.[e]?.[n]);this.tree[e][n]||(this.tree[e][n]=[]);for(let r=0;r<this.indicatorKeys.length;r++){if(!this.tree[e][n][r]){const t=this.getAggregatorRule(this.indicatorKeys[r]);this.tree[e][n][r]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[r],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[r]))?.format)}this.tree[e][n][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]=[]);for(let o=0;o<this.indicatorKeys.length;o++){if(!this.tree[e][r][o]){const t=this.getAggregatorRule(this.indicatorKeys[o]);this.tree[e][r][o]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[o],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[o]))?.format)}this.tree[e][r][o].push(t.tree[e]?.[i]?.[o])}}};Object.keys(t.tree).forEach((r=>{const o=r.split(this.stringJoinChar);Object.keys(t.tree[r]).forEach((n=>{if(t.totals?.row?.subTotalsDimensions)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=o.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][n]||(this.tree[s][n]=[]);for(let e=0;e<this.indicatorKeys.length;e++){if(!this.tree[s][n][e]){const t=this.getAggregatorRule(this.indicatorKeys[e]);this.tree[s][n][e]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[e],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)}this.tree[s][n][e].push(t.tree[r]?.[n]?.[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][n]||(this.tree[i][n]=[]);for(let e=0;e<this.indicatorKeys.length;e++){if(!this.tree[i][n][e]){const t=this.getAggregatorRule(this.indicatorKeys[e]);this.tree[i][n][e]=new this.aggregators[t?.aggregationType??aC.SUM](t?.field??this.indicatorKeys[e],t?.formatFun??this.indicators?.find((t=>"string"!=typeof t&&t.indicatorKey===this.indicatorKeys[e]))?.format)}this.tree[i][n][e].push(t.tree[r]?.[n]?.[e])}}i(r,n)}))})),e.forEach((e=>{Object.keys(t.tree[e]).forEach((t=>{i(e,t)}))}))}}ArrToTree1(t,e,i,r,o){const n=[],s=this.stringJoinChar,a=new Map;function l(t){const r=[];let o;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),o?o.children.push(d):n.push(d)),o=d}))}return t.forEach((t=>l(t))),r&&l([o]),n}ArrToTree(t,e,i,r,o,n,s,a,l){let h=[];const c=this.stringJoinChar,d=new Map;if(t?.length?t.forEach((t=>function(t){const o=[];let n;t.forEach(((a,u)=>{o.push(a);const g=o.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 o={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(o),t=o.children??[]}d.set(g,p),n?r[u-1]&&!l?n.children.splice(n.children.length-1,0,p):n.children.push(p):h.push(p)}n=p}))}(t))):i&&(h=i?.map((t=>"string"==typeof t?{indicatorKey:t,value:t}:{indicatorKey:t.indicatorKey,value:t.title??t.indicatorKey}))),o&&t?.length){const t={value:n,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]=tE(this.collectedValues[t],this.dataConfig.dimensionSortArray):this.cacheCollectedValues[t]=this.collectedValues[t])}changeTreeNodeValue(t=[],e=[],i,r){const o=this.indicatorKeys.indexOf(i);let n,s;n="string"==typeof t?t:t.join(this.stringJoinChar),s="string"==typeof e?e:e.join(this.stringJoinChar),this.changedTree[n]?.[s]?this.changedTree[n][s][o]=r:this.changedTree[n]?(this.changedTree[n][s]=[],this.changedTree[n][s][o]=r):(this.changedTree[n]={},this.changedTree[n][s]=[],this.changedTree[n][s][o]=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,o=this.records.length;r<o;r++){const o=this.records[r];o[t]===e&&(o[t]=i)}else for(const r in this.records)for(let o=0,n=this.records[r].length;o<n;o++){const n=this.records[r][o];n[t]===e&&(n[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 tE(t,e){return t.sort(((t,i)=>{const r=e.indexOf(t),o=e.indexOf(i);return r<o?-1:r>o?1:0}))}class eE extends hs{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=et(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 iE=Object.freeze({__proto__:null,Arc:class extends Dl{constructor(t){const e=et(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:C_,Circle:class extends $s{constructor(t){const e=et(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:eE,Group:class extends hs{constructor(t){const e=et(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 eE{constructor(t){t.flexWrap="nowrap",super(t)}},Icon:class extends Sl{svg;iconName;cache;constructor(t){let e;if(tt(t.iconName)){e=jA()[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=et(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 Sl{constructor(t){t.src&&(t.image=t.src),"circle"===t.shape&&(t.cornerRadius=t.width/2);const e=et(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:dl,Radio:w_,Rect:class extends pl{constructor(t){const e=et(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 xv{constructor(t){const e=et(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 ta{constructor(t){t.textBaseline||(t.textBaseline="top");const e=et(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 rE(t){const e={seqId:0},i={isPivotChart:!0};let r,o,n,s;t.columnTree&&(!1!==t.indicatorsAsCol&&(n=CH(t.columnTree,t.indicators)),r=new uH(t.columnTree??[],e)),t.rowTree&&(!1===t.indicatorsAsCol&&(s=CH(t.rowTree,t.indicators)),o=new uH(t.rowTree??[],e));const a=o.dimensionKeys?.count?o.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 o=0,n=t.indicators?.length;o<n;o++)if("string"!=typeof t.indicators[o]&&t.indicators[o].chartSpec)if(!1===t.indicatorsAsCol){const n=t.indicators[o];if(r[n.indicatorKey]={by:i,range:!0,sumBy:!1!==n.chartSpec?.stack&&e.concat(n.chartSpec?.xField)},n.chartSpec.series)n.chartSpec.series.forEach((t=>{const o="string"==typeof t.xField?t.xField:t.xField[0];r[o]={by:e,type:"horizontal"!==t.direction?"xField":void 0,range:"horizontal"===t.direction,sortBy:"horizontal"!==t.direction?t?.data?.fields?.[o]?.domain??n.chartSpec?.data?.fields?.[o]?.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??n.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof n.chartSpec.xField?n.chartSpec.xField:n.chartSpec.xField[0];r[s]={by:e,type:"horizontal"!==n.chartSpec.direction?"xField":void 0,range:"horizontal"===n.chartSpec.direction,sortBy:"horizontal"!==n.chartSpec.direction?n.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=n.chartSpec.yField;r[a]={by:i,range:"horizontal"!==t.indicators[o].chartSpec.direction,sumBy:!1!==n.chartSpec.stack&&e.concat(n.chartSpec?.xField),sortBy:"horizontal"===n.chartSpec.direction?n.chartSpec?.data?.fields?.[a]?.domain:void 0}}}else{const n=t.indicators[o];if(r[n.indicatorKey]={by:e,range:!0,sumBy:!1!==n.chartSpec?.stack&&i.concat(n.chartSpec?.yField)},n.chartSpec.series)n.chartSpec.series.forEach((t=>{const o="string"==typeof t.yField?t.yField:t.yField[0];r[o]={by:i,type:"horizontal"===t.direction?"yField":void 0,range:"horizontal"!==t.direction,sortBy:"horizontal"===t.direction?t?.data?.fields?.[o]?.domain??n.chartSpec?.data?.fields?.[o]?.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??n.chartSpec?.data?.fields?.[s]?.domain:void 0}}));else{const s="string"==typeof n.chartSpec.yField?n.chartSpec.yField:n.chartSpec.yField[0];r[s]={by:i,type:"horizontal"===n.chartSpec.direction?"yField":void 0,range:"horizontal"!==n.chartSpec.direction,sortBy:"horizontal"===n.chartSpec.direction?n.chartSpec?.data?.fields?.[s]?.domain:void 0};const a=n.chartSpec.xField;r[a]={by:e,range:"horizontal"===t.indicators[o].chartSpec.direction,sumBy:!1!==n.chartSpec.stack&&i.concat(n.chartSpec?.yField),sortBy:"horizontal"!==n.chartSpec.direction?n.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:aC.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:aC.RECORD})}else{const r=!1===t.indicatorsAsCol?i.chartSpec.yField:i.chartSpec.xField;e.push({indicatorKey:i.indicatorKey,field:r??i.indicatorKey,aggregationType:aC.RECORD})}})),e}(t);return{dataset:new QH(i,a,l,h,t.indicators,t.indicatorsAsCol??!0,t.records,void 0,n||t.columnTree,s||t.rowTree,!0),columnDimensionTree:r,rowDimensionTree:o,layoutNodeId:e}}function oE(t,e,i,r,o,n){if(et(t))for(let l=0;l<t.length;l++)if(n?n(t[l],e):(s=t[l],a=e,JSON.stringify(s)===JSON.stringify(a)))return o.getCellHeaderPaths(i,r);var s,a}iC();t.CustomLayout=iE,t.DataStatistics=OH,t.ListTable=class extends PH{showHeader=!0;editorManager;constructor(t,e){"node"===IC.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?eS(e.columns):e.header?eS(e.header):[],this.internalProps.headerHelper.setTableColumnsEditor(),this.showHeader=e.showHeader??!0,this.transpose=e.transpose??!1,"node"!==IC.mode&&(this.editorManager=new $H(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,e.dataSource?wA(this,e.dataSource):e.records?this.setRecords(e.records,{sortState:i.sortState}):this.setRecords([]),e.title&&(i.title=new KH(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(xw.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=eS(t),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:o,fieldFormat:n}=r.internalProps.layoutMap.getBody(t,e);return r.getFieldData(n||o,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?eS(t.columns):t.header?eS(t.header):[],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?wA(this,t.dataSource):t.records?this.setRecords(t.records,{sortState:t.sortState}):(this._resetFrozenColCount(),this.scenegraph.createSceneGraph(),this.render()),t.title&&(e.title=new KH(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(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 UH(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 o=r.getRecordShowIndexByCell(r.transpose?e-r.internalProps.layoutMap.leftRowSeriesNumberColumnCount:e,i);return r.internalProps.dataSource.getField(o,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 o=r.getRecordShowIndexByCell(e,i);return r.internalProps.dataSource.getRawField(o,t,e,i,this)}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),o=this.internalProps.layoutMap.moveHeaderPosition(t,e);return o?("column"===o.moveType?(this.colWidthsMap.exchangeOrder(i.start.col,i.end.col-i.start.col+1,r.start.col,r.end.col-r.start.col+1,o.targetIndex),this.transpose||(this.colWidthsLimit={},this.setMinMaxLimitWidth())):o.targetIndex>o.sourceIndex?this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex+o.sourceSize-o.targetSize,o.targetSize,o.targetIndex):this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex,o.targetSize,o.targetIndex),o):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 o=!0;for(const e in t)if(r[e]!==t[e]){o=!1;break}o&&(i=e)}if(Y(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 o;return Y(e)&&(o=i.getRecordStartRowByRecordIndex(e)),this.transpose?{start:{row:t.start.row,col:Y(o)?o+t.start.col:void 0},end:{row:t.end.row,col:Y(o)?o+t.end.col:void 0}}:{start:{col:t.start.col,row:Y(o)?o+t.start.row:void 0},end:{col:t.end.col,row:Y(o)?o+t.end.row:void 0}}}return null}getHierarchyState(t,e){if(!this.getBodyColumnDefine(t,e).tree)return sC.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===sC.expand)this._refreshHierarchyState(t,e),this.fireListeners(xw.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.collapse});else if(i===sC.collapse){const i=this.getCellOriginRecord(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(xw.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.expand,originData:i})}}_refreshHierarchyState(t,e){let i=!1,r=!1;const o=this.internalProps.layoutMap.checkHasChart();o&&(this.autoFillWidth&&(i=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(r=this.getAllRowsHeight()<=this.tableNoFrameHeight));const n=this.getRecordShowIndexByCell(t,e),s=this.dataSource.toggleHierarchyState(n,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),o&&(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 o=t[r];if((i&&i===o.fieldKey||!i&&o.field===e)&&o.sort&&"function"==typeof o.sort)return o.sort;if(o.columns){const t=this._getSortFuncFromHeaderOption(o.columns,e,i);if(t)return t}}}updateSortState(t,e=!0){if(t)this.internalProps.sortState=t;else if(this.internalProps.sortState)if(Array.isArray(this.internalProps.sortState))for(let t=0;t<this.internalProps.sortState.length;t++){this.internalProps.sortState[t].order="normal"}else this.internalProps.sortState.order="normal";let i,r;if(Array.isArray(this.internalProps.sortState)?({order:i,field:r}=this.internalProps.sortState?.[0]):({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())}this.stateManager.updateSortState(t)}updateFilterRules(t){this.scenegraph.clearCells(),this.sortState?(this.dataSource.updateFilterRulesForSorted(t),_A(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),Y(t)?this.stateManager.checkedState.map((e=>e[t])):this.stateManager.checkedState}getCellCheckboxState(t,e){const i=this.getBodyColumnDefine(t,e),r=i?.field,o=this.getCellType(t,e);if(Y(r)&&"checkbox"===o){const i=this.dataSource.getIndexKey(this.getRecordShowIndexByCell(t,e));return this.stateManager.checkedState[i]?.[r]}}getRadioState(t){return Y(t)?this.stateManager.radioState[t]:this.stateManager.radioState}getCellRadioState(t,e){return function(t,e,i){const r=i.getBodyColumnDefine(t,e),o=r?.field,n=i.getCellType(t,e);if(Y(o)&&"checkbox"===n){const r=i.dataSource.getIndexKey(i.getRecordShowIndexByCell(t,e)),n=i.stateManager.radioState?.[o];if(ot(n)){if(n===r)return!0}else if(q(n)){const t=n[r];if(ot(t))return t}}return!1}(t,e,this)}setCellCheckboxState(t,e,i){!function(t,e,i,r){const o=r.scenegraph.getCell(t,e),n=o?.getChildByName("checkbox");if(!n)return;const{checked:s,indeterminate:a}=n.attribute;a?(i||n._handlePointerUp(),n._handlePointerUp()):s?i||n._handlePointerUp():i&&n._handlePointerUp()}(t,e,i,this)}setCellRadioState(t,e,i){!function(t,e,i,r){const o=r.scenegraph.getCell(t,e);if(o)if(ot(i)){const t=o.getChildAt(i);t?._handlePointerUp()}else{const t=o.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(CA(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.headerObjects.find((t=>t&&t.field===e));!1!==r.define.sort&&this.dataSource.sort(r.field,t,i??qC)}}this.refreshRowColCount()}else CA(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 XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),this.render(),Y(r.col)&&Y(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 o=this.getRecordShowIndexByCell(e,i);this.dataSource.setRecord(r,o),this._refreshHierarchyState(e,i)}startEditCell(t,e){if(Y(t)&&Y(e))this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Y(t)&&Y(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?LH(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 Y(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){const r=this.getRecordShowIndexByCell(t,e),{field:o}=this.internalProps.layoutMap.getBody(t,e),n=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,o,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=yT(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=gB(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:n,currentValue:s,changedValue:this.getCellOriginValue(t,e)}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let o=t,n=e;for(let s=0;s<i.length&&!(e+s>this.rowCount-1);s++){n=e+s;const a=i[s];let l=t;for(let i=0;i<a.length&&!(t+i>this.colCount-1);i++)if(l=t+i,r&&this.isHasEditorDefine(t+i,e+s)||!1===r){const r=a[i],o=this.getRecordShowIndexByCell(t+i,e+s),{field:n}=this.internalProps.layoutMap.getBody(t+i,e+s),l=this.getCellRawValue(t+i,e+s),h=this.getCellOriginValue(t+i,e+s);this.isHeader(t+i,e+s)?this.internalProps.layoutMap.updateColumnTitle(t+i,e+s,r):this.dataSource.changeFieldValue(r,o,n,t+i,e+s,this),this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t+i,row:e+s,rawValue:l,currentValue:h,changedValue:this.getCellOriginValue(t+i,e+s)})}o=Math.max(o,l)}const s=this.getCellRange(t,e),a=this.getCellRange(o,n),l=this.internalProps.layoutMap.getAggregatorsByCellRange(s.start.col,s.start.row,a.end.col,a.end.row);if(l){for(let t=0;t<l?.length;t++)l[t].recalculate();const t=this.internalProps.layoutMap.getAggregatorCellAddress(s.start.col,s.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=s.start.col;t<=a.end.col;t++)for(let e=s.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 for(let e=t;e<=a.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=yT(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<=a.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),o=gB(r,0,this.colCount-1,this);t.push(r),i.push(o-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}addRecord(t,e){if(this.sortState)this.dataSource.addRecordForSorted(t),_A(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 o=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:t,currentPage:n}=this.pagination,s=t*(n||0)+t;if(e<s)if(e<s-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const n=e-(s-t)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=n;e<o;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=n;e<Math.min(o,n+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),_A(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 o=this.transpose?this.colCount:this.rowCount;if(this.pagination){const{perPageCount:n,currentPage:s}=this.pagination,a=n*(s||0)+n;if(e<a)if(e<a-n)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const s=e-(a-n)+i;if(r-i===this.pagination.perPageCount){const t=[];for(let e=s;e<o;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(o,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 o=e+i;o<e+i+(Array.isArray(t)?t.length:1);o++)this.transpose?r.push({col:o,row:0}):r.push({col:0,row:o});this.transpose?this.scenegraph.updateCol([],r,[]):this.scenegraph.updateRow([],r,[])}}}deleteRecords(t){if(t?.length>0)if(this.sortState)this.dataSource.deleteRecordsForSorted(t),_A(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,o=e.sort(((t,e)=>t-e)),n=o[0];if(this.pagination){const{perPageCount:t,currentPage:e}=this.pagination,o=t*(e||0)+t;if(n<o)if(n<o-t)this.scenegraph.clearCells(),this.scenegraph.createSceneGraph();else{const e=[],s=[];for(let i=n-(o-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<o.length;e++){const i=o[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),_A(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,o=[];for(let e=0;e<r.length;e++){const n=r[e];if(n<i&&n>=i-t){const e=n-(i-t)+(this.transpose?this.rowHeaderLevelCount:this.columnHeaderLevelCount);o.push(e)}}if(o.length>=1){const t=[];for(let e=0;e<o.length;e++){const i=o[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 o={col:e[t].col,aggregateValue:null};if(o.aggregateValue=[],Array.isArray(r))for(let t=0;t<r.length;t++)o.aggregateValue.push({aggregationType:r[t].type,value:r[t].value()});else o.aggregateValue.push({aggregationType:r.type,value:r.value()});i.push(o)}}return i}isAggregation(t,e){return this.internalProps.layoutMap.isAggregation(t,e)}},t.PivotChart=class extends PH{layoutNodeId={seqId:0};pivotSortState;dataset;_selectedDataItemsInChart=[];_selectedDimensionInChart=[];_chartEventMap={};_axes;constructor(t,e){let i,r;"node"===IC.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=mt(e.columns),this.internalProps.rows=mt(e.rows),this.internalProps.indicators=eS(e.indicators),this.internalProps.columnTree=!e.indicatorsAsCol||e.columns?.length||e.columnTree?mt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?mt(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=et(e.axes)?e.axes:[],e.columnTree&&(!1!==e.indicatorsAsCol&&(this.internalProps.columnTree=CH(this.internalProps.columnTree,e.indicators)),i=new uH(this.internalProps.columnTree??[],this.layoutNodeId)),e.rowTree&&(!1===e.indicatorsAsCol&&(this.internalProps.rowTree=CH(this.internalProps.rowTree,e.indicators)),r=new uH(this.internalProps.rowTree??[],this.layoutNodeId));const o=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():e.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],n=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(n,o),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new QH(this.internalProps.dataConfig,o,n,s,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&WH(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=CH(this.dataset.colHeaderTree,e.indicators)),e.rowTree||!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,e.indicators)),i=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId),this.internalProps.layoutMap=new qH(this,this.dataset,i,r),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new KH(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(xw.INITIALIZED,null)}),0)}static get EVENT_TYPE(){return WM}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=mt(t.columns),this.internalProps.rows=mt(t.rows),this.internalProps.indicators=t.indicators?.length?eS(t.indicators):[],this.internalProps.columnTree=!t.indicatorsAsCol||t.columns?.length||t.columnTree?mt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?mt(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=et(t.axes)?t.axes:[],t.columnTree&&(!1!==t.indicatorsAsCol&&(this.internalProps.columnTree=CH(this.internalProps.columnTree,t.indicators)),i=new uH(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(!1===t.indicatorsAsCol&&(this.internalProps.rowTree=CH(this.internalProps.rowTree,t.indicators)),r=new uH(this.internalProps.rowTree??[],this.layoutNodeId));const o=r?.dimensionKeys?.count?r.dimensionKeys.valueArr():t.rows?.reduce(((t,e)=>("string"==typeof e?t.push(e):t.push(e.dimensionKey),t)),[])??[],n=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(n,o),this.internalProps.dataConfig.aggregationRules=this._generateAggregationRules(),this.internalProps.dataConfig.dimensionSortArray=this._getDimensionSortArray(),this.dataset=new QH(this.internalProps.dataConfig,o,n,s,this.internalProps.indicators,t.indicatorsAsCol??!0,t.records??this.internalProps.records,void 0,this.internalProps.columnTree,this.internalProps.rowTree,!0),this.options.indicatorsAsCol&&WH(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=CH(this.dataset.colHeaderTree,t.indicators)),t.rowTree||!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,t.indicators)),i=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),r=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId),e.layoutMap=new qH(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 KH(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(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),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const{fieldFormat:r}=this.internalProps.layoutMap.getBody(t,e),o=this.getBodyIndexByRow(e),n=this.getBodyIndexByCol(t),s=this.records[o]?.[n];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),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i);return s.value?s.value():void 0}const r=this.getBodyIndexByRow(e),o=this.getBodyIndexByCol(t),n=this.records[r]?.[o];return n}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),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(n,o,this.internalProps.layoutMap.getIndicatorKey(t,e),!0,i).records}}getCellRawRecord(t,e){return this.getCellOriginRecord(t,e)}updateSortRules(t){this.internalProps.dataConfig?this.internalProps.dataConfig.sortRules=t:this.internalProps.dataConfig={sortRules:t},this.dataset.updateSortRules(t),this.internalProps.layoutMap.resetHeaderTree(),this.scenegraph.clearCells(),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),this.render()}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:o}=this.pivotSortState[t];if(gw(i,e,r))return o}}_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!==Ww)),e=e.filter((t=>t!==Ww));const i=this.internalProps.indicators,r={};for(let o=0,n=i?.length;o<n;o++)if("string"!=typeof i[o]&&i[o].chartSpec){if("pie"===i[o].chartSpec?.type||"rose"===i[o].chartSpec?.type||"radar"===i[o].chartSpec?.type||"gauge"===i[o].chartSpec?.type||"wordCloud"===i[o].chartSpec?.type)continue;const n=i[o],s=n.chartSpec;if(!1===this.options.indicatorsAsCol)if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[n.indicatorKey]={by:e,range:!0,sumBy:s?.stack&&t.concat(s?.xField)},s.series)s.series.forEach((i=>{const o="string"==typeof i.xField?i.xField:i.xField[0];r[o]={by:t,type:"horizontal"!==i.direction?"xField":void 0,range:"scatter"===i.type||"horizontal"===i.direction,sortBy:"horizontal"!==i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0};const n=i.yField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[n]={by:e,range:"scatter"===i.type||"horizontal"!==i.direction,sumBy:i.stack&&t.concat(i?.xField),sortBy:"horizontal"===i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0,extendRange:AA(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 o=s.yField;r[o]={by:e,range:"horizontal"!==s.direction,sumBy:s.stack&&t.concat(s?.xField),sortBy:"horizontal"===s.direction?s?.data?.fields?.[o]?.domain:void 0,extendRange:AA(s.markLine)}}else{const n=i[o];if(!1!==s?.stack&&("bar"===s?.type||"area"===s?.type)&&(s.stack=!0),r[n.indicatorKey]={by:t,range:!0,sumBy:s?.stack&&e.concat(s?.yField)},s.series)s.series.forEach((i=>{const o="string"==typeof i.yField?i.yField:i.yField[0];r[o]={by:e,type:"horizontal"===i.direction?"yField":void 0,range:"scatter"===i.type||"horizontal"!==i.direction,sortBy:"horizontal"===i.direction?i?.data?.fields?.[o]?.domain??s?.data?.fields?.[o]?.domain:void 0};const n=i.xField;!1!==i.stack&&("bar"===i.type||"area"===i.type)&&(i.stack=!0),r[n]={by:t,range:"scatter"===i.type||"horizontal"===i.direction,sumBy:i.stack&&e.concat(i?.yField),sortBy:"horizontal"!==i.direction?i?.data?.fields?.[n]?.domain??s?.data?.fields?.[n]?.domain:void 0,extendRange:AA(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 o=s.xField;r[o]={by:t,range:"scatter"===s.type||"horizontal"===s.direction,sumBy:s.stack&&e.concat(s?.yField),sortBy:"horizontal"!==s.direction?s?.data?.fields?.[o]?.domain:void 0,extendRange:AA(s.markLine)}}}}return r}_generateAggregationRules(){const t=[];return this.internalProps.indicators?.forEach((e=>{if("string"==typeof e)t.push({indicatorKey:e,field:e,aggregationType:aC.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:aC.RECORD})}else{const i=!1===this.options.indicatorsAsCol?e.chartSpec.yField:e.chartSpec.xField;t.push({indicatorKey:e.indicatorKey,field:i??e.indicatorKey,aggregationType:aC.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),bM(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 o=e.internalProps.layoutMap.getChartAxes(i,r);t.setAttribute("axes",o);const n=t.attribute.spec;n.axes=o,t.setAttribute("spec",n)}}))}))}yM(t.rowHeaderGroup,t.table),yM(t.colHeaderGroup,t.table),yM(t.rightFrozenGroup,t.table),yM(t.bottomFrozenGroup,t.table)}(this.scenegraph),this.render()}clearChartCacheImage(t,e){ot(t)&&ot(e)?function(t,e,i){i.getCell(t,e).children.forEach((t=>{"chart"===t.type&&(t.cacheCanvas=null,t.addUpdateBoundTag())}))}(t,e,this.scenegraph):bM(this.scenegraph)}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={},o=[];this.dataset.dataConfig.aggregationRules.forEach((t=>{if("string"==typeof t.field)r[t.field]=t.indicatorKey,o.push(t.field);else for(let e=0;e<t.field.length;e++)r[t.field[e]]=t.indicatorKey,o.push(t.field[e])}));for(const n in t)this.dataset.rows.indexOf(n)>=0&&e.push({dimensionKey:n,value:t[n]}),this.dataset.columns.indexOf(n)>=0&&i.push({dimensionKey:n,value:t[n]}),o.indexOf(n)>=0&&(this.dataset.indicatorsAsCol?i.push({indicatorKey:r[n]}):e.push({indicatorKey:r[n]}));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 o=i?.getChildren()?.[0];if(o.attribute.chartInstance){r=o.attribute.chartInstance;const{dataId:t,data:e,axes:i,spec:n}=o.attribute,s=o.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-o.getRootNode().table.scrollLeft,x2:s.x2-o.getRootNode().table.scrollLeft,y1:s.y1-o.getRootNode().table.scrollTop,y2:s.y2-o.getRootNode().table.scrollTop},!1,!1),"string"==typeof t)r.updateDataSync(t,e??[]);else{const i=[];for(const o in t){const s=t[o],a=n.series.find((t=>t?.data?.id===o));i.push({id:o,values:s?e?.filter((t=>t.hasOwnProperty(s)))??[]:e??[],fields:a?.data?.fields}),r.updateFullDataSync||r.updateDataSync(o,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&&et(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 o,n;this.dataset.setRecords(t),o=i.columnTree?r.layoutMap.columnDimensionTree:new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),n=i.rowTree?r.layoutMap.rowDimensionTree:new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId),r.layoutMap=new qH(this,this.dataset,o,n),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 PH{layoutNodeId={seqId:0};pivotSortState;editorManager;dataset;flatDataToObjects;constructor(t,e){if("node"===IC.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=mt(e.columns),this.internalProps.rows=mt(e.rows),this.internalProps.indicators=eS(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?mt(e.columnTree):[],this.internalProps.rowTree=e.indicatorsAsCol||e.rows?.length||e.rowTree?mt(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=mt(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 uH(this.internalProps.columnTree??[],this.layoutNodeId),i=new uH(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0);this.internalProps.layoutMap=new qH(this,null,e,i),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new JH({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=yH(this,e),{rowKeys:i,columnKeys:r,indicatorKeys:o}=t;let{columnDimensionTree:n,rowDimensionTree:s}=t;this.dataset=new QH(this.internalProps.dataConfig,i,r,o,this.internalProps.indicators,e.indicatorsAsCol??!0,e.records,e.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),e.columnTree||(!1!==e.indicatorsAsCol&&(this.dataset.colHeaderTree=CH(this.dataset.colHeaderTree,e.indicators)),n=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId)),e.rowTree||(!1===e.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,e.indicators)),s=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),this.internalProps.layoutMap=new qH(this,this.dataset,n,s)}this._changePivotSortStateBySortRules(),(e.pivotSortState?.length??0)>0&&(this.pivotSortState=[],this.pivotSortState=e.pivotSortState),"node"!==IC.mode&&(this.editorManager=new $H(this)),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.stateManager.initCheckedState(t),this.scenegraph.createSceneGraph(),e.title&&(this.internalProps.title=new KH(e.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(this.options.emptyTip,this)),this.internalProps.emptyTip.resetVisible()),setTimeout((()=>{this.fireListeners(xw.INITIALIZED,null)}),0)}}static get EVENT_TYPE(){return DM}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=mt(t.columns),this.internalProps.rows=mt(t.rows),this.internalProps.indicators=t.indicators?.length?eS(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?mt(t.columnTree):[],this.internalProps.rowTree=t.indicatorsAsCol||t.rows?.length||t.rowTree?mt(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=mt(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,o;t.columnTree&&(r=new uH(this.internalProps.columnTree??[],this.layoutNodeId)),t.rowTree&&(o=new uH(this.internalProps.rowTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new qH(this,null,r,o),!1===this.internalProps.recordsIsTwoDimensionalArray&&(this.flatDataToObjects=new JH({rows:e.layoutMap.fullRowDimensionKeys,columns:e.layoutMap.colDimensionKeys,indicators:e.layoutMap.indicatorKeys,indicatorsAsCol:e.layoutMap.indicatorsAsCol,indicatorDimensionKey:e.layoutMap.indicatorDimensionKey},i))}else{const r=yH(this,t),{rowKeys:o,columnKeys:n,indicatorKeys:s}=r;let{columnDimensionTree:a,rowDimensionTree:l}=r;this.dataset=new QH(e.dataConfig,o,n,s,this.internalProps.indicators,t.indicatorsAsCol??!0,i,t.rowHierarchyType,this.internalProps.columnTree,this.internalProps.rowTree),t.columnTree||(!1!==t.indicatorsAsCol&&(this.dataset.colHeaderTree=CH(this.dataset.colHeaderTree,t.indicators)),a=new uH(this.dataset.colHeaderTree??[],this.layoutNodeId)),t.rowTree||(!1===t.indicatorsAsCol&&(this.dataset.rowHeaderTree=CH(this.dataset.rowHeaderTree,t.indicators)),l=new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0)),e.layoutMap=new qH(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 KH(t.title,this),this.scenegraph.resize()),this.options.emptyTip&&(this.internalProps.emptyTip||(this.internalProps.emptyTip=new XH(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 o;const n=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(o={position:"col",index:e}),t.indicatorKey??t.value))),s=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(o={position:"row",index:e}),t.indicatorKey??t.value))),a=this.dataset.getAggregator(s,n,this.internalProps.layoutMap.getIndicatorKey(e,i),!0,o);if(a.records&&a.records.length>=1)return a.records[0][t]}}else if(this.flatDataToObjects){const r=this.internalProps.layoutMap.getCellHeaderPaths(e,i),o=r.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=r.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),s=this.flatDataToObjects.getTreeNode(n,o,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),o=this.getBodyIndexByCol(t),n=this.records[r]?.[o];if("function"==typeof i){return i(n,t,e,this)}return n}if(this.dataset){const i=this.internalProps.layoutMap.getCellHeaderPaths(t,e);let r;const o=i.colHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"col",index:e}),t.indicatorKey??t.value))),n=i.rowHeaderPaths?.filter((t=>!t.virtual))?.map(((t,e)=>(t.indicatorKey&&(r={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey),{fieldFormat:s}=this.internalProps.layoutMap.getBody(t,e);return"function"==typeof s?s(n?.value,t,e,this):n?.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),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return n?.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),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value))),s=this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return n?.value}}getCellOriginRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey);return n?.record}}}getCellRawRecord(t,e){if(!this.internalProps.layoutMap.isHeader(t,e)){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),r=this.getBodyIndexByCol(t),o=this.records[i]?.[r];return o}if(this.dataset){let i;const r=this.internalProps.layoutMap.getCellHeaderPaths(t,e),o=r.colHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"col",index:e}),t.indicatorKey??t.value))),n=r.rowHeaderPaths.map(((t,e)=>(t.indicatorKey&&(i={position:"row",index:e}),t.indicatorKey??t.value)));return this.dataset.getAggregator(n,o,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)),o=i.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),n=this.flatDataToObjects.getTreeNode(o,r,this.internalProps.layoutMap.getBody(t,e).indicatorKey,!1);return n?.record}}}updateSortRules(t){this.internalProps.dataConfig?this.internalProps.dataConfig.sortRules=t:this.internalProps.dataConfig={sortRules:t},this.dataset.updateSortRules(t),this._changePivotSortStateBySortRules(),this.internalProps.layoutMap.resetHeaderTree(),this.scenegraph.clearCells(),this.refreshHeader(),this.internalProps.useOneRowHeightFillAll=!1,this.scenegraph.createSceneGraph(),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 o={isPivotCorner:!0,dimensionKey:i.value,value:i.value};r.push(o)}else r=this.isColumnHeader(t,e)?this.getCellHeaderPaths(t,e).colHeaderPaths:this.getCellHeaderPaths(t,e).rowHeaderPaths;const o=r[r.length-1].indicatorKey,n=this.getHeaderDefine(t,e);if(n.sort){if(this.dataset.sortRules){for(let t=this.dataset.sortRules.length-1;t>=0;t--){const e=this.dataset.sortRules[t];(n.dimensionKey&&e.sortField===n.dimensionKey||o&&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)}o?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:lC[i],sortByIndicator:o,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}):this.dataset.sortRules.push({sortField:n.dimensionKey,sortType:lC[i]})}else this.dataset.sortRules=o?[{sortField:this.dataset.indicatorsAsCol?this.dataset.rows[this.dataset.rows.length-1]:this.dataset.columns[this.dataset.columns.length-1],sortType:lC[i],sortByIndicator:o,query:r.reduce(((t,e)=>(e.dimensionKey&&t.push(e.value),t)),[])}]:[{sortField:n.dimensionKey,sortType:lC[i]}];this.updateSortRules(this.dataset.sortRules)}}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,o=this.getCellAddressByHeaderPaths(r),n=e.order;if(o&&gw(i,o.col,o.row))return n}}_moveHeaderPosition(t,e){const i=this.getCellRange(t.col,t.row),r=this.getCellRange(e.col,e.row),o=this.internalProps.layoutMap.moveHeaderPosition(t,e);if(o){if("column"===o.moveType){if(this.internalProps.recordsIsTwoDimensionalArray)for(let t=0;t<this.internalProps.records.length;t++){const e=this.internalProps.records[t].splice(o.sourceIndex-this.rowHeaderLevelCount,o.sourceSize);e.unshift(o.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,o.targetIndex),this.setMinMaxLimitWidth()}else if("row"===o.moveType){if(this.internalProps.recordsIsTwoDimensionalArray){const t=this.internalProps.records.splice(o.sourceIndex-this.columnHeaderLevelCount,o.sourceSize);t.unshift(o.targetIndex-this.columnHeaderLevelCount,0),Array.prototype.splice.apply(this.internalProps.records,t)}o.targetIndex>o.sourceIndex?this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex+o.sourceSize-o.targetSize,o.targetSize,o.targetIndex):this.rowHeightsMap.exchangeOrder(o.sourceIndex,o.sourceSize,o.targetIndex,o.targetSize,o.targetIndex)}return o}return null}toggleHierarchyState(t,e){const i=this.getHierarchyState(t,e);if(i===sC.expand)this._refreshHierarchyState(t,e),this.fireListeners(DM.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.collapse});else if(i===sC.collapse){const i=this.internalProps.layoutMap.getHeadNode(t,e);Array.isArray(i.children)&&this._refreshHierarchyState(t,e),this.fireListeners(DM.TREE_HIERARCHY_STATE_CHANGE,{col:t,row:e,hierarchyState:sC.expand,originData:i})}}_refreshHierarchyState(t,e,i){let r=!1,o=!1;this.stateManager.updateHoverIcon(t,e,void 0,void 0);const n=this.internalProps.layoutMap.checkHasChart();n&&(this.autoFillWidth&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&(o=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),n&&(this.autoFillWidth&&!r&&(r=this.getAllColsWidth()<=this.tableNoFrameWidth),this.autoFillHeight&&!o&&(o=this.getAllRowsHeight()<=this.tableNoFrameHeight),("adaptive"===this.widthMode||r||"adaptive"===this.heightMode||o)&&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 JH({rows:r.layoutMap.fullRowDimensionKeys,columns:r.layoutMap.colDimensionKeys,indicators:r.layoutMap.indicatorKeys,indicatorsAsCol:r.layoutMap.indicatorsAsCol,indicatorDimensionKey:r.layoutMap.indicatorDimensionKey},t));else{let e,o;this.dataset.setRecords(t),e=i.columnTree?r.layoutMap.columnDimensionTree:new uH(this.dataset.colHeaderTree??[],this.layoutNodeId),o=i.rowTree?r.layoutMap.rowDimensionTree:new uH(this.dataset.rowHeaderTree??[],this.layoutNodeId,this.options.rowHierarchyType,"tree"===this.options.rowHierarchyType?this.options.rowExpandLevel??1:void 0),r.layoutMap=new qH(this,this.dataset,e,o),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()}startEditCell(t,e){if(Y(t)&&Y(e))this.selectCell(t,e),this.editorManager.startEditCell(t,e);else if(this.stateManager.select?.cellPos){const{col:t,row:e}=this.stateManager.select.cellPos;Y(t)&&Y(e)&&this.editorManager.startEditCell(t,e)}}completeEditCell(){this.editorManager.completeEdit()}getEditor(t,e){let i;if(this.isHeader(t,e)&&!this.isCornerHeader(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?LH(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 Y(r)}changeCellValue(t,e,i,r=!1){if(r&&this.isHasEditorDefine(t,e)||!1===r){let r=i;const o=this.getCellOriginValue(t,e),n=this.getCellRawValue(t,e);"number"==typeof n&&ZC(i)&&(r=parseFloat(i)),this._changeCellValueToDataSet(t,e,o,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=yT(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=gB(e,0,this.colCount-1,this);this.scenegraph.updateRowHeight(e,i-t)}this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t,row:e,rawValue:n,currentValue:o,changedValue:r}),this.scenegraph.updateNextFrame()}}changeCellValues(t,e,i,r=!1){let o=t,n=e;for(let s=0;s<i.length&&!(e+s>this.rowCount-1);s++){n=e+s;const a=i[s];let l=t;for(let i=0;i<a.length&&!(t+i>this.colCount-1);i++)if(l=t+i,r&&this.isHasEditorDefine(t+i,e+s)||!1===r){const r=a[i];let o=r;const n=this.getCellOriginValue(t+i,e+s),l=this.getCellRawValue(t+i,e+s);"number"==typeof l&&ZC(r)&&(o=parseFloat(r)),this._changeCellValueToDataSet(t+i,e+s,n,o),this.fireListeners(xw.CHANGE_CELL_VALUE,{col:t+i,row:e+s,rawValue:l,currentValue:n,changedValue:this.getCellOriginValue(t+i,e+s)})}o=Math.max(o,l)}const s=this.getCellRange(t,e),a=this.getCellRange(o,n);for(let t=s.start.col;t<=a.end.col;t++)for(let e=s.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 for(let e=t;e<=a.end.col;e++)if(!this.internalProps._widthResizedColMap.has(e)){const t=this.getColWidth(e),i=yT(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<=a.end.row;r++)if(this.rowHeightsMap.get(r)){const e=this.getRowHeight(r),o=gB(r,0,this.colCount-1,this);t.push(r),i.push(o-e)}this.scenegraph.updateRowsHeight(t,i)}this.scenegraph.updateNextFrame()}_changeCellValueToDataSet(t,e,i,r){if(this.internalProps.recordsIsTwoDimensionalArray){const i=this.getBodyIndexByRow(e),o=this.getBodyIndexByCol(t);this.records[i][o]=r}else if(this.dataset){const o=this.internalProps.layoutMap.getCellHeaderPaths(t,e);if(this.isHeader(t,e))this.internalProps.layoutMap.changeTreeNodeTitle(t,e,r),!this.isCornerHeader(t,e)&&this.dataset.changeRecordFieldValue(o.colHeaderPaths?.length?o.colHeaderPaths[o.colHeaderPaths.length-1].indicatorKey??o.colHeaderPaths[o.colHeaderPaths.length-1].dimensionKey:o.rowHeaderPaths[o.rowHeaderPaths.length-1].indicatorKey??o.rowHeaderPaths[o.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=o.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=o.rowHeaderPaths.map((t=>t.indicatorKey??t.value));this.dataset.changeTreeNodeValue(this.internalProps.layoutMap.indicatorsAsCol?n:n.slice(0,-1),this.internalProps.layoutMap.indicatorsAsCol?i.slice(0,-1):i,this.internalProps.layoutMap.getIndicatorKey(t,e),r)}}else if(this.flatDataToObjects){const o=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(o.colHeaderPaths?.length?o.colHeaderPaths[o.colHeaderPaths.length-1].indicatorKey??o.colHeaderPaths[o.colHeaderPaths.length-1].dimensionKey:o.rowHeaderPaths[o.rowHeaderPaths.length-1].indicatorKey??o.rowHeaderPaths[o.rowHeaderPaths.length-1].dimensionKey,i,r);else{const i=o.colHeaderPaths.map((t=>t.indicatorKey??t.value)),n=o.rowHeaderPaths.map((t=>t.indicatorKey??t.value));this.flatDataToObjects.changeTreeNodeValue(n,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=uC,t.VArc=function(t){return hh.arc(t?t.attribute:{})},t.VArea=function(t){return hh.area(t?t.attribute:{})},t.VCheckBox=function(t){return new C_(t?t.attribute:{})},t.VCircle=function(t){return hh.circle(t?t.attribute:{})},t.VGlyph=function(t){return hh.glyph(t?t.attribute:{})},t.VGroup=function(t){return hh.group(t?t.attribute:{})},t.VImage=function(t){return hh.image(t?t.attribute:{})},t.VLine=function(t){return hh.line(t?t.attribute:{})},t.VPath=function(t){return hh.path(t?t.attribute:{})},t.VPolygon=function(t){return hh.polygon(t?t.attribute:{})},t.VRadio=function(t){return new w_(t?t.attribute:{})},t.VRect=function(t){return hh.rect(t?t.attribute:{})},t.VSymbol=function(t){return hh.symbol(t?t.attribute:{})},t.VTag=function(t){return new xv(t?t.attribute:{})},t.VText=function(t){return hh.text(t?t.attribute:{})},t.clearGlobal=function(){FH()},t.core=HH,t.data=TS,t.getDataCellPath=function(t,e,i){const r=rE(t);let o=r.columnDimensionTree,n=r.rowDimensionTree,s=!1,a=!1;t.columnTree&&t.indicatorsAsCol&&!o.dimensionKeys.contain(Ww)&&(s=!0),t.rowTree&&(t.indicatorsAsCol||n.dimensionKeys.contain(Ww)||(a=!0));const{dataset:l,layoutNodeId:h}=r,c={options:t,layoutNodeId:h,internalProps:t,isPivotChart:()=>!0,pivotChartAxes:[],_selectedDataItemsInChart:[],_getActiveChartInstance:()=>({updateState:()=>{}})};t.columnTree&&!s||(o=new uH(l.colHeaderTree??[],h)),t.rowTree&&!a||(n=new uH(l.rowHeaderTree??[],h));const d=new qH(c,l,o,n);for(let t=0;t<d.colCount;t++)for(let r=0;r<d.rowCount;r++){if(d.isHeader(t,r))continue;const o=d.getCellHeaderPaths(t,r),n=o.colHeaderPaths.map((t=>t.indicatorKey??t.value)),s=o.rowHeaderPaths.map((t=>t.indicatorKey??t.value)),a=l.getAggregator(d.indicatorsAsCol?s:s.slice(0,-1),d.indicatorsAsCol?n.slice(0,-1):n,d.getIndicatorKey(t,r)),h=oE(a.value?a.value():void 0,e,t,r,d,i);if(h)return h}},t.getIcons=function(){return jA()},t.graphicUtil=Bu,t.jsx=function(t,e){const i=e||{},{key:r,name:o,id:n,attribute:s,stateProxy:a}=i,l=Rp(i,["key","name","id","attribute","stateProxy"]);let h=t;tt(t)&&(h=hh[t]);const c=[];for(var d=arguments.length,u=new Array(d>2?d-2:0),g=2;g<d;g++)u[g-2]=arguments[g];u.length&&Bp(1===u.length?u[0]:u,c);const p="Group"===h.name?new h(s):h(e);return function(t,e,i){let r,o=!1;switch(t.type){case"richtext":case"rich/image":break;case"rich/text":r=t.attribute||{},e[0]&&(r.text=e[0]);break;default:o=!0}o?(e.forEach((e=>{e&&t.add(e)})),Object.keys(i).forEach((e=>{const r=Ap[e];r&&t.on(r,i[e])}))):"richtext"===t.type&&(t.attribute.textConfig=e.map((t=>t.attribute)).filter((t=>t)))}(p,c,l),a&&(p.stateProxy=a),p},t.register=zH,t.renderChart=jB,t.restoreMeasureText=function(){iB="canvas",Xr.load(oB)},t.setCustomAlphabetCharSet=function(t){eB=t,nB.clear()},t.themes=rv,t.updateCell=RR,t.version="1.3.2-alpha.3"}));