@flyfish-group/file-viewer-web 1.0.9
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.
- package/LICENSE +160 -0
- package/README.md +41 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.js +165 -0
- package/dist/node.d.ts +23 -0
- package/dist/node.js +43 -0
- package/package.json +67 -0
- package/scripts/copy-assets.mjs +59 -0
- package/viewer/assets/AudioViewer-0CSMvCtp.css +1 -0
- package/viewer/assets/AudioViewer-HHLkFx24.js +1 -0
- package/viewer/assets/CadViewer-BYC0zQ0T.js +1 -0
- package/viewer/assets/CadViewer-Cv8b95Gj.css +1 -0
- package/viewer/assets/CodeViewer-HGV-dwr6.css +1 -0
- package/viewer/assets/CodeViewer-VQE6BewI.js +4 -0
- package/viewer/assets/DrawingViewer-BtEGTvJQ.js +2 -0
- package/viewer/assets/DrawingViewer-CHm6iXmV.css +1 -0
- package/viewer/assets/EpubViewer-5hOhOgl5.js +2 -0
- package/viewer/assets/EpubViewer-Cci0l1Vm.css +1 -0
- package/viewer/assets/ImageViewer-D2_fTk_7.css +10 -0
- package/viewer/assets/ImageViewer-D8t2LOeu.js +1 -0
- package/viewer/assets/MarkdownViewer-47tSKoCN.css +1 -0
- package/viewer/assets/MarkdownViewer-CauCMix8.js +64 -0
- package/viewer/assets/OfdViewer-DZCDN3UD.css +1 -0
- package/viewer/assets/OfdViewer-d-bt92VG.js +2 -0
- package/viewer/assets/PdfView-BmvyynSl.js +558 -0
- package/viewer/assets/PdfView-CS_IFVnD.css +1 -0
- package/viewer/assets/PptxRender-BQ5mqB0E.css +1 -0
- package/viewer/assets/PptxRender-DPUrsWGR.js +32 -0
- package/viewer/assets/UmdViewer-DgDIrlID.js +3 -0
- package/viewer/assets/UmdViewer-DpObj56a.css +1 -0
- package/viewer/assets/XlsxTable-BxlH06s2.css +1 -0
- package/viewer/assets/XlsxTable-Dca8o5_N.js +5 -0
- package/viewer/assets/ar-SA-G6X2FPQ2-DWAZRxPu.js +10 -0
- package/viewer/assets/arc-Dimj_7G-.js +1 -0
- package/viewer/assets/architecture-7EHR7CIX-PuoqTBea.js +1 -0
- package/viewer/assets/architectureDiagram-3BPJPVTR-ourcMGqp.js +36 -0
- package/viewer/assets/az-AZ-76LH7QW2-CD-SA1wC.js +1 -0
- package/viewer/assets/bg-BG-XCXSNQG7-lFFvFyxW.js +5 -0
- package/viewer/assets/blockDiagram-GPEHLZMM-DETJLwVU.js +132 -0
- package/viewer/assets/bn-BD-2XOGV67Q-CuUcZaL8.js +5 -0
- package/viewer/assets/c4Diagram-AAUBKEIU-DCfnD0yS.js +10 -0
- package/viewer/assets/ca-ES-6MX7JW3Y-Cj4OlC6R.js +8 -0
- package/viewer/assets/channel-Cvj3_InT.js +1 -0
- package/viewer/assets/chunk-2J33WTMH-vXxffsmH.js +1 -0
- package/viewer/assets/chunk-3OPIFGDE-C9LtEwmG.js +62 -0
- package/viewer/assets/chunk-4BX2VUAB-CIKyExbu.js +1 -0
- package/viewer/assets/chunk-55IACEB6-uprZKw0K.js +1 -0
- package/viewer/assets/chunk-5ZQYHXKU-C2girjDc.js +2 -0
- package/viewer/assets/chunk-6U3AYISY-sM9HnDSj.js +12 -0
- package/viewer/assets/chunk-727SXJPM-BJJusOVj.js +206 -0
- package/viewer/assets/chunk-AGHRB4JF-vbzngFky.js +1 -0
- package/viewer/assets/chunk-AQP2D5EJ-BPoH0fiI.js +231 -0
- package/viewer/assets/chunk-BSJP7CBP-9m7kELGq.js +1 -0
- package/viewer/assets/chunk-CSCIHK7Q-OdsAx3G8.js +124 -0
- package/viewer/assets/chunk-EIO257PC-B13QElRc.js +22 -0
- package/viewer/assets/chunk-FMBD7UC4-DiXlV5mw.js +15 -0
- package/viewer/assets/chunk-K2UTITRG-CJkr0tXj.js +35 -0
- package/viewer/assets/chunk-KSCS5N6A-WSLcjFr5.js +10 -0
- package/viewer/assets/chunk-L5ZTLDWV-B_HlbJUe.js +1 -0
- package/viewer/assets/chunk-LZXEDZCA-Cqd1LSkM.js +2 -0
- package/viewer/assets/chunk-ND2GUHAM-28eJdx7E.js +1 -0
- package/viewer/assets/chunk-NZK2D7GU-BUIZFEFT.js +1 -0
- package/viewer/assets/chunk-O5CBEL6O-DZNjSn6F.js +70 -0
- package/viewer/assets/chunk-QZHKN3VN-DQmrlo26.js +1 -0
- package/viewer/assets/chunk-SRAX5OIU-D2mqL_eA.js +1 -0
- package/viewer/assets/chunk-WU5MYG2G-CI2E4kog.js +1 -0
- package/viewer/assets/chunk-XPW4576I-CvDbpA2d.js +32 -0
- package/viewer/assets/chunk-Z3N5DIM6-DVAc8Qv7.js +1 -0
- package/viewer/assets/chunk-ZUYEQ4TG-DaQMhOk1.js +7 -0
- package/viewer/assets/classDiagram-4FO5ZUOK-BR_8dE4R.js +1 -0
- package/viewer/assets/classDiagram-v2-Q7XG4LA2-BSPdc-Mh.js +1 -0
- package/viewer/assets/cose-bilkent-S5V4N54A-DT4OXn3T.js +1 -0
- package/viewer/assets/cs-CZ-2BRQDIVT-9YP2OnzR.js +11 -0
- package/viewer/assets/cytoscape.esm-DQPqE0MR.js +321 -0
- package/viewer/assets/da-DK-5WZEPLOC-DyH5OvyC.js +5 -0
- package/viewer/assets/dagre-BM42HDAG-BQqjetsc.js +4 -0
- package/viewer/assets/dagre-D7L3ChvY.js +1 -0
- package/viewer/assets/de-DE-XR44H4JA-Dm-lIYs8.js +8 -0
- package/viewer/assets/defaultLocale-GXPQCpCV.js +1 -0
- package/viewer/assets/diagram-2AECGRRQ-DQj687EE.js +43 -0
- package/viewer/assets/diagram-5GNKFQAL-C9cKajpJ.js +10 -0
- package/viewer/assets/diagram-KO2AKTUF-BrHr9ddz.js +3 -0
- package/viewer/assets/diagram-LMA3HP47-B_3VIpAA.js +24 -0
- package/viewer/assets/diagram-OG6HWLK6-CKGkIofl.js +24 -0
- package/viewer/assets/directory-open-01563666-DJpMaT5E.js +1 -0
- package/viewer/assets/directory-open-4ed118d0-vrMz6VGC.js +1 -0
- package/viewer/assets/dist-BWLXExfL.js +27 -0
- package/viewer/assets/dist-Bl_HJvJC.js +1 -0
- package/viewer/assets/dist-CDIdMEAB.js +7 -0
- package/viewer/assets/docx-preview-CiJ_X4bw.js +20 -0
- package/viewer/assets/el-GR-BZB4AONW-r581kidc.js +10 -0
- package/viewer/assets/en-B4ZKOASM-Crn8bm25.js +1 -0
- package/viewer/assets/erDiagram-TEJ5UH35-BEdSv6Fr.js +85 -0
- package/viewer/assets/es-ES-U4NZUMDT-Cwbu6VfM.js +9 -0
- package/viewer/assets/eu-ES-A7QVB2H4-BQQ8mY2m.js +11 -0
- package/viewer/assets/eventmodeling-FCH6USID-ClPyqCMG.js +1 -0
- package/viewer/assets/fa-IR-HGAKTJCU-eYy7h0Hx.js +8 -0
- package/viewer/assets/fi-FI-Z5N7JZ37-0dUJDB5b.js +6 -0
- package/viewer/assets/file-open-002ab408-D8YX4_im.js +1 -0
- package/viewer/assets/file-open-7c801643-ssV9zcu_.js +1 -0
- package/viewer/assets/file-save-3189631c-DxUkN-yO.js +1 -0
- package/viewer/assets/file-save-745eba88-VPL_lGKy.js +1 -0
- package/viewer/assets/flowDiagram-I6XJVG4X-BuWsqPkc.js +162 -0
- package/viewer/assets/fr-FR-RHASNOE6-CcYw1Zvt.js +9 -0
- package/viewer/assets/ganttDiagram-6RSMTGT7-CJySS69b.js +292 -0
- package/viewer/assets/gitGraph-WXDBUCRP-ce180Qdx.js +1 -0
- package/viewer/assets/gitGraphDiagram-PVQCEYII-DR2VhZO_.js +106 -0
- package/viewer/assets/gl-ES-HMX3MZ6V-C3Iv5ndX.js +10 -0
- package/viewer/assets/graphlib-Bk2wNdF0.js +1 -0
- package/viewer/assets/he-IL-6SHJWFNN-CL8Or2hC.js +10 -0
- package/viewer/assets/hi-IN-IWLTKZ5I-DgAD87B-.js +4 -0
- package/viewer/assets/hu-HU-A5ZG7DT2-B8ITrvUt.js +7 -0
- package/viewer/assets/id-ID-SAP4L64H-VQ2OqDi1.js +10 -0
- package/viewer/assets/image-GAAHSSAO-DbYjE9JA.js +1 -0
- package/viewer/assets/image-blob-reduce.esm-Co0wHMYu.js +2 -0
- package/viewer/assets/index-0hvuUhZv.js +106 -0
- package/viewer/assets/index-Bwjgtadn.css +1 -0
- package/viewer/assets/info-J43DQDTF-CMRAUPs-.js +1 -0
- package/viewer/assets/infoDiagram-5YYISTIA-DxNv4IA7.js +2 -0
- package/viewer/assets/init-Bj57mB65.js +1 -0
- package/viewer/assets/ishikawaDiagram-YF4QCWOH-2rCqsio7.js +70 -0
- package/viewer/assets/it-IT-JPQ66NNP-D777F8zf.js +11 -0
- package/viewer/assets/ja-JP-DBVTYXUO-D1PJdPJe.js +8 -0
- package/viewer/assets/journeyDiagram-JHISSGLW-DQQq5Lp7.js +139 -0
- package/viewer/assets/jszip.min-D1xSKQ08.js +2 -0
- package/viewer/assets/kaa-6HZHGXH3-fRgBr8Mi.js +1 -0
- package/viewer/assets/kab-KAB-ZGHBKWFO-DlQ49dRn.js +8 -0
- package/viewer/assets/kanban-definition-UN3LZRKU-B5eO6Mg1.js +89 -0
- package/viewer/assets/katex-C22v-RF3.js +257 -0
- package/viewer/assets/kk-KZ-P5N5QNE5-Hq_H-Gj0.js +1 -0
- package/viewer/assets/km-KH-HSX4SM5Z-BhI31DxZ.js +11 -0
- package/viewer/assets/ko-KR-MTYHY66A-ImUZQcvz.js +9 -0
- package/viewer/assets/ku-TR-6OUDTVRD-DfaC8QXn.js +9 -0
- package/viewer/assets/linear-CjCAJGt1.js +1 -0
- package/viewer/assets/logo-DG62cSZK.png +0 -0
- package/viewer/assets/lt-LT-XHIRWOB4-I-ZCC3dU.js +3 -0
- package/viewer/assets/lv-LV-5QDEKY6T-Qq5QdgfN.js +7 -0
- package/viewer/assets/mermaid-parser.core-Bdy3q53b.js +161 -0
- package/viewer/assets/mindmap-definition-RKZ34NQL-m96D2ClP.js +96 -0
- package/viewer/assets/mr-IN-CRQNXWMA-BeP3PnlU.js +13 -0
- package/viewer/assets/my-MM-5M5IBNSE-BYx0eFn7.js +1 -0
- package/viewer/assets/nb-NO-T6EIAALU-C9J5JzGe.js +10 -0
- package/viewer/assets/nl-NL-IS3SIHDZ-CMVLrD7F.js +8 -0
- package/viewer/assets/nn-NO-6E72VCQL-BBxsrvc2.js +8 -0
- package/viewer/assets/oc-FR-POXYY2M6-CHEXPovt.js +8 -0
- package/viewer/assets/ofd-D8TA6tcU.js +6 -0
- package/viewer/assets/ordinal-CEZ33b-s.js +1 -0
- package/viewer/assets/pa-IN-N4M65BXN-Bnyu119-.js +4 -0
- package/viewer/assets/packet-YPE3B663-mGtuymGQ.js +1 -0
- package/viewer/assets/pdf.worker-BZPf8fJG.js +50 -0
- package/viewer/assets/percentages-BXMCSKIN-CBvdjJLu.js +1 -0
- package/viewer/assets/pica-CB7jwGa3.js +2 -0
- package/viewer/assets/pie-DUmD7IHG.js +1 -0
- package/viewer/assets/pie-LRSECV5Y-CGMZQePM.js +1 -0
- package/viewer/assets/pieDiagram-4H26LBE5-DVleOheM.js +30 -0
- package/viewer/assets/pl-PL-T2D74RX3-Cw72z8vE.js +9 -0
- package/viewer/assets/pptx.worker-c0GnmoEE.js +23 -0
- package/viewer/assets/prod-Npfld6sP.js +149 -0
- package/viewer/assets/pt-BR-5N22H2LF-ok3TV3dt.js +9 -0
- package/viewer/assets/pt-PT-UZXXM6DQ-BX423IXU.js +9 -0
- package/viewer/assets/quadrantDiagram-W4KKPZXB-CV_EkNJ-.js +7 -0
- package/viewer/assets/radar-GUYGQ44K-C81hKZN2.js +1 -0
- package/viewer/assets/requirementDiagram-4Y6WPE33-B_kmlnjO.js +84 -0
- package/viewer/assets/ro-RO-JPDTUUEW-Pv4aDgxu.js +11 -0
- package/viewer/assets/rough.esm-BrTFrov0.js +1 -0
- package/viewer/assets/roundRect-BDOnP7qU.js +1 -0
- package/viewer/assets/ru-RU-B4JR7IUQ-BGRCDPgW.js +9 -0
- package/viewer/assets/sankeyDiagram-5OEKKPKP-CCXvqmNS.js +40 -0
- package/viewer/assets/sequenceDiagram-3UESZ5HK-CoR9l1O_.js +162 -0
- package/viewer/assets/sheet.worker-DXcmIjpw.js +68 -0
- package/viewer/assets/si-LK-N5RQ5JYF-CSeZ8jFh.js +1 -0
- package/viewer/assets/sk-SK-C5VTKIMK-BrMoO_Q1.js +6 -0
- package/viewer/assets/sl-SI-NN7IZMDC-B_x--94y.js +6 -0
- package/viewer/assets/src-BBw8FbvP.js +1 -0
- package/viewer/assets/src-BbUo_1sw.js +5 -0
- package/viewer/assets/stateDiagram-AJRCARHV-DdTaUVJA.js +1 -0
- package/viewer/assets/stateDiagram-v2-BHNVJYJU-D9_r8kG7.js +1 -0
- package/viewer/assets/subset-shared.chunk-DpZLNUjP.js +1 -0
- package/viewer/assets/subset-worker.chunk-DoDHTOze.js +1 -0
- package/viewer/assets/sv-SE-XGPEYMSR-BB4gq_Zc.js +10 -0
- package/viewer/assets/ta-IN-2NMHFXQM-9zxtttPw.js +9 -0
- package/viewer/assets/th-TH-HPSO5L25-Bu674ZxS.js +2 -0
- package/viewer/assets/time-0omzMTb_.js +1 -0
- package/viewer/assets/timeline-definition-PNZ67QCA-CLUsDmue.js +120 -0
- package/viewer/assets/tr-TR-DEFEU3FU-BOU8hW6c.js +7 -0
- package/viewer/assets/treeView-BLDUP644-NZTNRLdP.js +1 -0
- package/viewer/assets/treemap-LRROVOQU-BMknj0en.js +1 -0
- package/viewer/assets/uk-UA-QMV73CPH-DExt1pCB.js +6 -0
- package/viewer/assets/vennDiagram-CIIHVFJN-DFmAzwyu.js +34 -0
- package/viewer/assets/vi-VN-M7AON7JQ-ChzDxy_w.js +5 -0
- package/viewer/assets/wardley-L42UT6IY-D9i-Iven.js +1 -0
- package/viewer/assets/wardleyDiagram-YWT4CUSO-DpnSL_l7.js +78 -0
- package/viewer/assets/worker-ref-zQl5Zn-S.js +1 -0
- package/viewer/assets/xlsx-ff7ER-JZ.png +0 -0
- package/viewer/assets/xychartDiagram-2RQKCTM6-DTybmPGf.js +7 -0
- package/viewer/assets/zh-CN-LNUGB5OW-AIyEr3br.js +10 -0
- package/viewer/assets/zh-HK-E62DVLB3-CyQvIghB.js +1 -0
- package/viewer/assets/zh-TW-RAJ6MFWO-C9bb32Ou.js +9 -0
- package/viewer/favicon.ico +0 -0
- package/viewer/flyfish-viewer-manifest.json +5 -0
- package/viewer/index.html +14 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{A as e,D as t,E as n,S as r,_ as i,a,b as o,d as s,g as c,h as l,l as u,m as d,o as f,p,r as m,s as h,u as g,v as _,w as v}from"./index-0hvuUhZv.js";import{t as y}from"./worker-ref-zQl5Zn-S.js";var b=e=>{let t=r(!0),n=e(),i={emit:(e,r)=>{t.value=!0,n?.postMessage({type:e,payload:r})}},a={},o=[],s=[];return n?.addEventListener(`message`,e=>{let{type:t,payload:n}=e.data,r=a[t];r?.length&&r.forEach(e=>e(n)),o.forEach(t=>t(e))}),n?.addEventListener(`error`,e=>{console.error(e),s.forEach(t=>t(e))}),c(()=>{n?.terminate()}),{loading:t,worker:i,onWorkerMessage:e=>o.push(e),onWorkerError:e=>s.push(e),onWorkerEvent:(e,t)=>{let n=a[e];n||=a[e]=[],n.push(t)},mapEvents:e=>Array.isArray(e)?e.reduce((e,t)=>(e[t]=e=>i.emit(t,e),e),{}):Object.keys(e).reduce((t,n)=>{let r=e[n];return t[r]=e=>i.emit(n,e),t},{})}};``+new URL(`xlsx-ff7ER-JZ.png`,import.meta.url).href;var x=t(((e,t)=>{(function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`:root{--evt-header-font: 12px normal Arial;--evt-body-font: 12px normal Arial;--evt-color-white: #fff;--evt-color-black: #000000;--evt-color-primary: rgb(82, 146, 247);--evt-text-color-primary: #333;--evt-text-color-regular: #666;--evt-text-color-secondary: #999;--evt-box-shadow: 0 2px 12px 0 #0000001a;--evt-editor-bg-color: #fff;--evt-editor-text-color: #333;--evt-border-color: #e1e6eb;--evt-body-bg-color: #fff;--evt-stripe-color: #fafafa;--evt-placeholder-color: #cdd0dc;--evt-header-bg-color: #f8faff;--evt-header-text-color: #1d2129;--evt-body-text-color: #4e5969;--evt-footer-text-color: #4e5969;--evt-loading-icon-color: #4e5969;--evt-expand-icon-color: #4e5969;--evt-shrink-icon-color: #4e5969;--evt-error-tip-icon-color: red;--evt-required-color: #f56c6c;--evt-cell-hover-icon-bg-color: #fff;--evt-cell-hover-icon-border-color: #dde0ea;--evt-scroller-color: #dee0e3;--evt-scroller-track-color: #fff;--evt-scroller-focus-color: #bbbec4;--evt-select-border-color: var(--evt-color-primary);--evt-select-area-color: rgba(82, 146, 247, .1);--evt-select-row-col-bg-color: rgba(82, 146, 247, .1);--evt-autofill-point-border-color: #fff;--evt-edit-bg-color: #fcf6ed;--evt-checkbox-color: var(--evt-color-primary);--evt-checkbox-uncheck-color: #dde0ea;--evt-checkbox-disabled-color: #f1f2f4;--evt-checkbox-check-disabled-color: #dde0ea;--evt-icon-edit-color: #4e5969;--evt-icon-select-color: #4e5969;--evt-readonly-color: #fff;--evt-readonly-text-color: var(--evt-body-text-color);--evt-error-tip-color: #ed3f14;--evt-footer-bg-color: #fafafa;--evt-highlight-hover-row-color: rgba(186, 203, 231, .1);--evt-highlight-selected-row-color: rgba(82, 146, 247, .1);--evt-tooltip-bg-color: #303133;--evt-tooltip-text-color: #fff;--evt-resize-row-line-color: #e1e6eb;--evt-resize-column-text-color: #fff;--evt-resize-column-text-bg-color: var(--evt-color-primary);--evt-resize-column-line-color: #e1e6eb;--evt-tree-line-color: #e1e6eb;--evt-sort-icon-color: var(--evt-color-primary);--evt-drag-tip-bg-color: rgba(82, 146, 247, .1);--evt-drag-tip-line-color: var(--evt-color-primary);--evt-context-menu-min-width: 150px;--evt-context-menu-max-width: 220px;--evt-context-menu-item-padding: 8px 12px;--evt-context-menu-bg-color: #fff;--evt-context-menu-text-color: #333;--evt-context-menu-item-hover-text-color: var(--evt-color-primary);--evt-context-menu-item-hover-bg-color: #f5f5f5;--evt-context-menu-text-size: 13px}.dark{--evt-border-color: #363637;--evt-header-bg-color: #141414;--evt-body-bg-color: #141414;--evt-header-text-color: #a3a6ad;--evt-body-text-color: #cfd3dc;--evt-readonly-text-color: #cfd3dc;--evt-footer-text-color: #cfd3dc;--evt-scroller-color: #414243;--evt-scroller-track-color: #141414;--evt-scroller-focus-color: #a3a6ad;--evt-edit-bg-color: #141414;--evt-footer-bg-color: #262727;--evt-autofill-point-border-color: #fff;--evt-editor-bg-color: #434343;--evt-editor-text-color: #cfd3dc;--evt-context-menu-bg-color: #141414;--evt-context-menu-text-color: #cfd3dc;--evt-context-menu-item-hover-text-color: var(--evt-color-primary);--evt-context-menu-item-hover-bg-color: #414243}.e-virt-table-container{position:relative;outline:none}.e-virt-table-stage{position:relative;overflow:hidden;outline:none;box-sizing:border-box;z-index:10;border-radius:8px;border:1px solid var(--evt-border-color)}.e-virt-table-canvas{position:absolute;left:0;top:0;box-sizing:border-box;background-color:var(--evt-body-bg-color);border:none;outline:none;z-index:10}.e-virt-table-editor{position:absolute;top:-10000px;left:-10000px;text-align:left;height:auto;line-height:0;z-index:100;overflow:hidden;background-color:var(--evt-editor-bg-color);border:2px solid var(--evt-color-primary);box-sizing:border-box;box-shadow:var(--evt-box-shadow);display:flex;align-items:center}.e-virt-table-overlayer{position:absolute;left:0;top:0;overflow:hidden;z-index:100;pointer-events:none}.e-virt-table-editor-textarea{width:100%;box-sizing:border-box;outline:none;font-weight:400;padding:8px;font-size:12px;color:inherit;white-space:pre-wrap;word-wrap:break-word;word-break:break-all;line-height:1.5;margin:0;border:none;vertical-align:middle;background:var(--evt-editor-bg-color);color:var(--evt-editor-text-color);overflow-y:auto;resize:none}.e-virt-table-context-menu{position:absolute;font-size:14px;color:var(--evt-text-color-regular);background-color:var(--evt-color-white);border-radius:4px;border:1px solid #e4e7ed;box-shadow:var(--evt-box-shadow);width:fit-content;padding:6px 0;z-index:9999;left:-99999px;top:-99999px}.e-virt-table-context-menu-item{cursor:pointer;padding:6px 24px;color:var(--evt-text-color-regular)}.e-virt-table-context-menu-item:hover{color:var(--evt-color-primary);background-color:#f5f7fa}.e-virt-table-loading{display:none;position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%;z-index:2000;background-color:#fff6;display:flex;align-items:center;justify-content:center}.e-virt-table-loading-spinner{opacity:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.e-virt-table-loading-spinner svg{color:var(--evt-text-color-regular);animation:rotate 1s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.e-virt-table-loading-text{margin:0;font-size:12px;color:var(--evt-text-color-regular)}.e-virt-table-main-menu,.e-virt-table-submenu{position:absolute;background:var(--evt-context-menu-bg-color);border-radius:4px;box-shadow:0 2px 8px #0000001a;min-width:var(--evt-context-menu-min-width);max-width:var(--evt-context-menu-max-width);color:var(--evt-text-color-primary)}.e-virt-table-main-menu{border:1px solid var(--evt-border-color);z-index:3000;left:-99999px;top:-99999px;display:none;position:fixed;background-color:var(--evt-body-bg-color)}.e-virt-table-submenu{border:1px solid var(--evt-border-color);z-index:1000;max-height:350px;overflow-y:auto;opacity:0;visibility:hidden;transform:translate(-10px);transition:opacity .2s,visibility .2s,transform .2s;-ms-overflow-style:none;scrollbar-width:none}.e-virt-table-submenu::-webkit-scrollbar{display:none}.e-virt-table-submenu.show{opacity:1;visibility:visible;transform:translate(0)}.e-virt-table-submenu:not(.show){transition:none}.e-virt-table-menu-item,.e-virt-table-submenu-item{position:relative;-webkit-user-select:none;user-select:none;padding:var(--evt-context-menu-item-padding);cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s,color .2s;color:var(--evt-context-menu-text-color);font-size:var(--evt-context-menu-text-size)}.e-virt-table-menu-item:last-child,.e-virt-table-submenu-item:last-child{border-bottom:none}.e-virt-table-menu-item:has(.e-virt-table-menu-item-icon){padding-left:8px}.e-virt-table-menu-item-content{display:flex;align-items:center;flex:1;min-width:0}.e-virt-table-menu-item-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.e-virt-table-menu-item-icon svg{width:100%;height:100%;fill:currentColor}.e-virt-table-menu-item-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-virt-table-menu-arrow{display:inline-flex;align-items:center;justify-content:center;color:var(--evt-text-color-regular);transition:color .2s}.e-virt-table-menu-arrow svg{width:20px;height:20px;fill:currentColor}.e-virt-table-submenu-item:hover,.e-virt-table-menu-item:hover,.e-virt-table-menu-item.active{background:var(--evt-context-menu-item-hover-bg-color);color:var(--evt-context-menu-item-hover-text-color)}.e-virt-table-menu-item.disabled,.e-virt-table-submenu-item.disabled{cursor:not-allowed}.e-virt-table-finder-bar{position:absolute;top:8px;right:16px;display:none;z-index:10000;background:#fff;border:1px solid #dadce0;border-radius:12px;box-shadow:0 2px 6px #0003;padding:0 8px;height:48px;min-width:250px;align-items:center;font-size:12px}.e-virt-table-finder-bar.show{display:flex}.e-virt-table-finder-bar-input-wrapper{display:flex;align-items:center;flex:1;padding:0 8px;position:relative}.e-virt-table-finder-bar-input{border:none;outline:none;flex:1;font-size:12px;background:transparent;color:#333;min-width:150px;padding-left:0;position:relative}.e-virt-table-finder-bar-nav{display:flex;flex-direction:row;gap:8px;margin:0 8px;align-items:center}.e-virt-table-finder-bar-nav-btn{border:none;background:transparent;cursor:pointer;padding:0;color:#666;border-radius:50%;display:flex;align-items:center;justify-content:center}.e-virt-table-finder-bar-nav-btn svg{width:24px;height:24px}.e-virt-table-finder-bar-nav-btn.prev-btn{transform:rotate(-90deg)}.e-virt-table-finder-bar-nav-btn.next-btn{transform:rotate(90deg)}.e-virt-table-finder-bar-nav-btn.close-btn{font-size:24px;color:#666;line-height:1;width:24px;height:24px}.e-virt-table-finder-bar-nav-btn:hover{color:#666;background-color:#f0f0f0}.e-virt-table-finder-bar-count{color:#666;font-size:12px;margin:0 8px;white-space:nowrap;flex-shrink:0}.e-virt-table-finder-bar-count.no-results{color:#999}.e-virt-table-finder-bar-loading{display:none;position:absolute;left:8px;top:0;width:16px;height:16px;flex-shrink:0;pointer-events:none;z-index:0}.e-virt-table-finder-bar-loading.show{display:block}.e-virt-table-finder-bar-loading svg{width:100%;height:100%;color:#666;animation:rotate 1s linear infinite}.e-virt-table-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:14px;color:#666;z-index:15}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})(),(function(n,r){typeof e==`object`&&typeof t<`u`?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self,n.EVirtTable=r())})(e,(function(){var e=Object.defineProperty,t=(t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,n=(e,n,r)=>t(e,typeof n==`symbol`?n:n+``,r);class r{constructor(e){n(this,`rules`),this.rules=e}validate(e){let t=[],{column:n,row:r,key:i,rowKey:a,colIndex:o,rowIndex:s,value:c,field:l,fieldValue:u}=e;Array.isArray(this.rules)||(this.rules=[this.rules]);for(let e of this.rules){if(e.validator){let d={field:l,fieldValue:u,value:c,column:n,colIndex:o,rowIndex:s,row:r,key:i,rowKey:a,...e};e.validator(d,c,e=>{e&&t.push({...d,message:e})})}if(!e.required&&(c==null||c===``))return t;e.pattern&&!e.pattern.test(c)&&t.push({value:c,column:n,row:r,key:i,rowKey:a,colIndex:o,rowIndex:s,field:l,fieldValue:u,message:e.message||`${i} is pattern validation error`}),e.required&&(c==null||c===``)&&t.push({value:c,column:n,row:r,key:i,rowKey:a,colIndex:o,rowIndex:s,field:l,fieldValue:u,message:e.message||`${i} is required`})}return t}}function i(){return`xxxxxxxxxxxxxxxxxx`.replace(/[x]/g,function(e){let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}function a(e,t){let n=0,r;return function(...i){let a=new Date().getTime(),o=a-n,s=typeof t==`function`?t():t;!n||o>=s?(e.apply(this,i),n=a):r||=setTimeout(()=>{e.apply(this,i),n=new Date().getTime(),r=void 0},s-o)}}function o(e=[]){return e.length?e.map(e=>o(e.children)+1).sort((e,t)=>t-e)[0]:0}function s(e=[]){let t=[],n=[],r=[];return e.forEach(e=>{e.fixed===`left`?t.push(e):e.fixed===`right`?r.push(e):n.push(e)}),[...t.sort((e,t)=>(e.sort??0)-(t.sort??0)),...n.sort((e,t)=>(e.sort??0)-(t.sort??0)),...r.sort((e,t)=>(e.sort??0)-(t.sort??0))]}function c(e=[],t=1,n=0,r=``){return e.sort((e,t)=>(e.sort??0)-(t.sort??0)).map(e=>{if(e.children){let i=0,a=e.fixed;e.children.forEach(e=>{e.fixed=a});let o=c(e.children,t-1,n+1,e.key);return o&&o.forEach(e=>{i+=e.colspan??0}),{...e,width:e.width,level:n,rowspan:1,colspan:i,parentKey:r,children:o.sort((e,t)=>(e.sort??0)-(t.sort??0))}}return{...e,level:n,rowspan:t,colspan:1,parentKey:r}})}function l(e=[]){let t=[];return e.forEach(e=>{e.children?t=t.concat(l(e.children)):t.push(e)}),t}function u(e){return e.filter(e=>!e.hide).map(e=>Array.isArray(e.children)&&e.children.length>0?{...e,children:u(e.children)}:{...e})}let d=/^(\r\n|\n\r|\r|\n)/,f=/^[^\t\r\n]+/,p=/^\t/;function m(e){let t=[[``]];if(e.length===0)return t;let n=0,r=0,i;for(;e.length>0&&i!==e.length;)if(i=e.length,e.match(p))e=e.replace(p,``),n+=1,t[r][n]=``;else if(e.match(d))e=e.replace(d,``),n=0,r+=1,t[r]=[``];else{let i=``;if(e.startsWith(`"`)){let t=0,n=!0;for(;n;){let r=e.slice(0,1);r===`"`&&(t+=1),i+=r,e=e.slice(1),(e.length===0||e.match(/^[\t\r\n]/)&&t%2==0)&&(n=!1)}i=i.replace(/^"/,``).replace(/"$/,``).replace(/["]*/g,e=>Array(Math.floor(e.length/2)).fill(`"`).join(``))}else{let t=e.match(f);i=t?t[0]:``,e=e.slice(i.length)}t[r][n]=i}return Array.isArray(t)&&t.length>1&&t[t.length-1].length===1&&t[t.length-1][0]===``&&(t=t.slice(0,t.length-1)),t}function h(e){let t,n,r,i,a=``,o;for(t=0,n=e.length;t<n;t+=1){for(i=e[t].length,r=0;r<i;r+=1)r>0&&(a+=` `),o=e[t][r],typeof o==`string`?o.indexOf(`
|
|
2
|
+
`)>-1?a+=`"${o.replace(/"/g,`""`)}"`:a+=o:o==null?a+=``:a+=o;t!==n-1&&(a+=`
|
|
3
|
+
`)}return a}function g(e,t,n=[]){let r=0,i=[];return e.forEach((a,o)=>{o===0?i.push(1):(n.reduce((e,t)=>`${e}${a[t]??``}`,``)||a[t])===(n.reduce((t,n)=>`${t}${e[o-1][n]??``}`,``)||e[o-1][t])?(i[r]+=1,i.push(0)):(i.push(1),r=o)}),i}function _(e,t){let n=``,r=``,i={};return t.forEach((t,a)=>{a===0?(n=t.key,r=t.key,i[t.key]=1):e[t.key]===e[n]?(i[t.key]=0,i[r]+=1):(i[t.key]=1,n=t.key,r=t.key)}),i}function v(e,t,n=[]){let{visibleRows:r,rowIndex:i,headIndex:a}=e,o=g(r,t,n);return o[i-a]===0?{rowspan:0,colspan:0,relationRowKeys:n,mergeRow:!0}:{rowspan:o[i-a],colspan:1,relationRowKeys:n,mergeRow:!0}}function y(e,t=[]){let{column:n,row:r,visibleLeafColumns:i}=e,a=i.filter(e=>t.includes(e.key));if(t.includes(n.key)){let e=_(r,a);return e[n.key]===0?{rowspan:0,colspan:0,relationColKeys:t,mergeCol:!0}:{rowspan:1,colspan:e[n.key],relationColKeys:t,mergeCol:!0}}}function b(e,t=document.documentElement){let n=e.startsWith(`--`)?e:`--${e}`;return getComputedStyle(t).getPropertyValue(n).trim()}function x(e){if(!e)return new Date(0);if(typeof e==`number`)return new Date(e);let t=String(e).trim(),n=new Date(t);if(!isNaN(n.getTime()))return n;for(let e of[/^(\d{4})-(\d{1,2})-(\d{1,2})$/,/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,/^(\d{1,2})-(\d{1,2})-(\d{4})$/,/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,/^(\d{1,2})-(\d{1,2})-(\d{4})$/,/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,/^(\d{4})(\d{2})(\d{2})$/,/^(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/,/^(\d{4})\/(\d{1,2})\/(\d{1,2})\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/]){let n=t.match(e);if(n){let t=n.slice(1).map(Number);if(e.source.includes(`YYYY-MM-DD`)||e.source.includes(`YYYY/MM/DD`)||e.source.includes(`YYYY.MM.DD`)){let[e,n,r,i=0,a=0,o=0]=t;return new Date(e,n-1,r,i,a,o)}else if(e.source.includes(`DD-MM-YYYY`)||e.source.includes(`DD/MM/YYYY`)||e.source.includes(`DD.MM.YYYY`)){let[e,n,r,i=0,a=0,o=0]=t;return new Date(r,n-1,e,i,a,o)}else if(e.source.includes(`MM-DD-YYYY`)||e.source.includes(`MM/DD/YYYY`)||e.source.includes(`MM.DD.YYYY`)){let[e,n,r,i=0,a=0,o=0]=t;return new Date(r,e-1,n,i,a,o)}else if(e.source.includes(`YYYYMMDD`)){let[e,n,r]=t;return new Date(e,n-1,r)}}}return new Date(NaN)}function S(e,t){let n=x(e),r=x(t);return isNaN(n.getTime())&&isNaN(r.getTime())?0:isNaN(n.getTime())?-1:isNaN(r.getTime())?1:n.getTime()-r.getTime()}class C{constructor(e,t,r,i,a,o,s){n(this,`ctx`),n(this,`x`,0),n(this,`y`,0),n(this,`width`,0),n(this,`height`,0),n(this,`fixed`),n(this,`cellType`),this.ctx=e,this.x=t,this.y=r,this.width=i,this.height=a,this.fixed=s,this.cellType=o}isHorizontalVisible(){if(this.fixed)return!0;let{stageWidth:e,fixedLeftWidth:t,scrollX:n,fixedRightWidth:r}=this.ctx,i=e;return!(this.x+this.width-t-n<=0||this.x-n>=i-r)}isVerticalVisible(){let{stageHeight:e,scrollY:t}=this.ctx,n=e;return!(this.y+this.height-t<=0||this.y-t>=n)}getDrawX(){if(this.fixed===`left`)return this.x;if(this.fixed===`right`){let{stageWidth:e,config:{SCROLLER_TRACK_SIZE:t}}=this.ctx;return e-(this.ctx.header.width-this.x)-t}return this.x-this.ctx.scrollX}getDrawY(){return this.cellType===`header`||this.cellType===`footer`&&this.ctx.config.FOOTER_FIXED?this.y:this.y-this.ctx.scrollY}getLeftFixedX(){return this.x-this.ctx.scrollX}getRightFixedX(){}}class w extends C{constructor(e,t,r,i,a,o,s,c,l,u=`body`,d=!0){super(e,i,a,o,s,u,c.fixed),n(this,`formatter`),n(this,`formatterFooter`),n(this,`hoverIconName`,``),n(this,`operation`,!1),n(this,`align`),n(this,`verticalAlign`),n(this,`fixed`),n(this,`type`),n(this,`editorType`),n(this,`editorProps`),n(this,`cellType`),n(this,`level`),n(this,`colspan`,1),n(this,`rowspan`,1),n(this,`mergeRow`,!1),n(this,`mergeCol`,!1),n(this,`relationRowKeys`,[]),n(this,`relationColKeys`,[]),n(this,`key`),n(this,`column`),n(this,`rowIndex`),n(this,`colIndex`),n(this,`rowKey`),n(this,`row`),n(this,`value`),n(this,`render`),n(this,`renderFooter`),n(this,`style`,{}),n(this,`domDataset`,{}),n(this,`rules`,[]),n(this,`message`,``),n(this,`text`,``),n(this,`displayText`,``),n(this,`visibleWidth`,0),n(this,`visibleHeight`,0),n(this,`isHasChanged`,!1),n(this,`drawX`,0),n(this,`drawY`,0),n(this,`drawCellBgColor`,``),n(this,`drawCellSkyBgColor`,``),n(this,`drawTextColor`,``),n(this,`drawTextFont`,``),n(this,`drawTextX`,0),n(this,`drawTextY`,0),n(this,`drawTextWidth`,0),n(this,`drawTextHeight`,0),n(this,`drawTreeImageX`,0),n(this,`drawTreeImageY`,0),n(this,`drawTreeImageWidth`,0),n(this,`drawTreeImageHeight`,0),n(this,`drawTreeImageName`,``),n(this,`drawTreeImageSource`),n(this,`drawSelectionImageX`,0),n(this,`drawSelectionImageY`,0),n(this,`drawSelectionImageWidth`,0),n(this,`drawSelectionImageHeight`,0),n(this,`drawSelectionImageName`,``),n(this,`drawSelectionImageSource`),n(this,`drawHoverImageX`,0),n(this,`drawHoverImageY`,0),n(this,`drawHoverImageWidth`,0),n(this,`drawHoverImageHeight`,0),n(this,`drawHoverImageName`,``),n(this,`drawHoverImageSource`),n(this,`autoRowHeight`,!1),n(this,`calculatedHeight`,0),n(this,`ellipsis`,!1),n(this,`rowExpand`,!1),n(this,`rowHasChildren`,!1),n(this,`overflowTooltipShow`,!0),n(this,`selectorCellValueType`,`value`),n(this,`overflowTooltipMaxWidth`,500),n(this,`overflowTooltipPlacement`,`top`),n(this,`maxLineClamp`,`auto`),n(this,`renderType`,`default`),n(this,`renderFooterType`,`default`),this.visibleWidth=this.width,this.visibleHeight=this.height,this.colIndex=r,this.rowIndex=t,this.key=c.key,this.type=c.type||``,this.editorType=c.editorType||`text`,this.selectorCellValueType=c.selectorCellValueType||this.ctx.config.SELECTOR_CELL_VALUE_TYPE||`value`,this.editorProps=c.editorProps||{},this.cellType=u,this.align=c.align||this.ctx.config.COLUMNS_ALIGN,this.verticalAlign=c.verticalAlign||this.ctx.config.COLUMNS_VERTICAL_ALIGN,this.fixed=c.fixed||``,this.level=c.level||0,this.operation=c.operation||!1,this.column=c,this.rules=c.rules||[],this.row=l,this.rowKey=this.cellType===`body`?this.ctx.database.getRowKeyForRowIndex(t):`${this.cellType}_${this.rowIndex}`,this.value=this.getValue(),this.render=c.render,this.overflowTooltipShow=c.overflowTooltipShow!==!1,this.autoRowHeight=c.autoRowHeight===void 0?this.ctx.config.AUTO_ROW_HEIGHT:c.autoRowHeight,this.overflowTooltipMaxWidth=c.overflowTooltipMaxWidth||500,this.overflowTooltipPlacement=c.overflowTooltipPlacement||`top`,this.renderFooter=c.renderFooter,this.hoverIconName=c.hoverIconName,this.formatter=c.formatter,this.formatterFooter=c.formatterFooter,this.maxLineClamp=c.maxLineClamp||`auto`,this.renderType=c.renderType||`default`,this.renderFooterType=c.renderFooterType||`default`,d&&this.update()}setWidthHeight(e,t){this.width=e,this.height=t}getValidationMessage(){let e=this.ctx.database.getValidationError(this.rowKey,this.key);if(Array.isArray(e)&&e.length){let[t]=e;this.message=t.message||``}return this.message}update(){this.drawX=this.getDrawX(),this.drawY=this.getDrawY(),this.drawTextX=this.drawX,this.drawTextY=this.drawY,this.isHasChanged=this.ctx.database.isHasChangedData(this.rowKey,this.key),this.updateSpan(),this.drawTextWidth=this.visibleWidth,this.drawTextHeight=this.visibleHeight,this.updateStyle(),this.updateType(),this.updateHoverIcon(),this.updateSelection(),this.updateTree(),this.updateEditor(),this.updateRender(),this.getValidationMessage(),this.updateContainer(),this.text=this.getText(),this.displayText=this.getDisplayText()}updateSpan(){if(this.cellType===`footer`)return;let{SPAN_METHOD:e}=this.ctx.config;if(typeof e==`function`){let{colspan:t=1,rowspan:n=1,relationRowKeys:r,relationColKeys:i,mergeRow:a=!1,mergeCol:o=!1}=e({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue(),headIndex:this.ctx.body.headIndex,headPosition:this.ctx.database.getPositionForRowIndex(this.ctx.body.headIndex),visibleRows:this.ctx.body.visibleRows,visibleLeafColumns:this.ctx.header.visibleLeafColumns,rows:this.ctx.body.data})||{};Array.isArray(r)&&r.length>0?this.relationRowKeys=r:this.relationRowKeys=[this.key],Array.isArray(i)&&i.length>0?this.relationColKeys=i:this.relationColKeys=[this.key],this.mergeCol=o,this.mergeRow=a,this.colspan=t,this.rowspan=n,this.visibleWidth=this.getWidthByColIndexColSpan(this.colIndex,this.colspan),this.visibleHeight=this.ctx.database.getHeightByRowIndexRowSpan(this.rowIndex,this.rowspan)}}updateSpanInfo(){if(this.mergeRow||this.mergeCol){let e=this.getSpanInfo();this.height=e.height,this.width=e.width,this.drawX=this.getDrawX(),this.drawY=this.getDrawY(),this.drawY-=e.offsetTop,this.drawX-=e.offsetLeft}}updateType(){let{BODY_CELL_TYPE_METHOD:e}=this.ctx.config;if(typeof e==`function`){let t=e({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue()});t!==void 0&&(this.type=t)}}updateEditor(){let{BODY_CELL_EDITOR_METHOD:e}=this.ctx.config;if(typeof e==`function`){let t=e({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue()});if(t!==void 0){let{type:e,props:n={}}=t;this.editorType=e,this.editorProps=n}}}updateRender(){let{BODY_CELL_RENDER_METHOD:e}=this.ctx.config;if(typeof e==`function`){let t=e({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue()});t!==void 0&&(this.render=t)}}validate(){this.ctx.database.getValidator(this.rowKey,this.key).then(()=>{this.ctx.database.setValidationError(this.rowKey,this.key,[]),this.message=``}).catch(e=>{if(Array.isArray(e)&&e.length){let[t]=e;this.message=t.message,this.ctx.database.setValidationError(this.rowKey,this.key,e)}}).finally(()=>{this.ctx.emit(`draw`)})}updateStyle(){this.autoRowHeight&&(this.domDataset={"data-auto-height":!0,"data-row-index":this.rowIndex,"data-col-index":this.colIndex}),this.style=this.getOverlayerViewsStyle()}updateTree(){let{CELL_PADDING:e=0}=this.ctx.config,{rowKey:t,cellType:n}=this,r,i=0,a=``;if(!([`tree`,`selection-tree`,`tree-selection`].includes(this.type)&&n===`body`))return;let{expand:o=!1,hasChildren:s=!1,expandLoading:c=!1,level:l=0}=this.ctx.database.getRowForRowKey(t)||{};this.rowExpand=o,this.rowHasChildren=s;let{TREE_INDENT:u=16,CHECKBOX_SIZE:d,TREE_ICON_SIZE:f}=this.ctx.config;if(i=l*u,c){let e=this.ctx.icons.get(`loading`);a=`loading`,r=e}else if(s){let e=this.ctx.icons.get(`expand`),t=this.ctx.icons.get(`shrink`);r=o?t:e,a=o?`shrink`:`expand`}let p=f,m=f,h=this.drawX;(this.align===`center`||this.align===`right`)&&(h=this.drawX+(this.visibleWidth-p-2*e)/2,this.align=`left`);let g=h+i+e,_=this.drawY+(this.visibleHeight-m)/2,v=i+this.drawX+p-.5;this.type===`selection-tree`?(g=i+this.drawSelectionImageX+this.drawSelectionImageWidth,v=g+p-e/2):v=this.type===`tree-selection`?g+d+p-e/2:g+p-e/2,this.drawTextX=v,this.drawTextWidth=this.drawX+this.visibleWidth-v,!(g+p+e>this.drawX+this.visibleWidth)&&(_+m+e>this.drawY+this.visibleHeight||(this.drawTreeImageX=g,this.drawTreeImageY=_,this.drawTreeImageWidth=p,this.drawTreeImageHeight=m,r?(this.drawTreeImageName=a,this.drawTreeImageSource=r):(this.drawTreeImageName=``,this.drawTreeImageSource=void 0)))}drawTreeLine(){let{TREE_LINE:e,TREE_INDENT:t=16,TREE_ICON_SIZE:n=16,TREE_LINE_COLOR:r=`#e1e6eb`}=this.ctx.config;if(!e||this.cellType!==`body`||![`tree`,`selection-tree`,`tree-selection`].includes(this.type)||this.rowspan===0||this.colspan===0)return;let i=this.ctx.database.getRowForRowKey(this.rowKey)||{},a=i.level??0,o=this.drawTreeImageX+this.drawTreeImageWidth/2,s=this.drawTreeImageY+this.drawTreeImageHeight/2,c=this.drawTreeImageX-a*t,l=Array.isArray(i.parentRowKeys)?i.parentRowKeys:[];if(a>0){for(let e=0;e<a-1;e+=1){let i=l[e+1];if((i&&this.ctx.database.getRowForRowKey(i)||{}).isLastChild)continue;let o=Math.round(this.drawTreeImageX-(a-e)*t+n/2);this.ctx.paint.drawLine([o,this.drawY,o,this.drawY+this.visibleHeight],{borderColor:r,borderWidth:1,lineDash:[4,4],lineDashOffset:0})}let e=Math.round(this.drawTreeImageX-t+n/2),u=i.isLastChild?s:this.drawY+this.visibleHeight;this.ctx.paint.drawLine([e,this.drawY,e,u],{borderColor:r,borderWidth:1,lineDash:[4,4],lineDashOffset:0});let d=Math.round(c+(a-1)*t+n/2);this.ctx.paint.drawLine([d,s,o,s],{borderColor:r,borderWidth:1,lineDash:[4,4],lineDashOffset:0})}if(i.hasChildren&&i.expand){let e=this.drawTreeImageY+this.drawTreeImageHeight,t=this.drawY+this.visibleHeight;this.ctx.paint.drawLine([o,e,o,t],{borderColor:r,borderWidth:1,lineDash:[4,4],lineDashOffset:0})}}updateContainer(){let{BODY_BG_COLOR:e,EDIT_BG_COLOR:t,BODY_CELL_STYLE_METHOD:n,FOOTER_CELL_STYLE_METHOD:r,READONLY_TEXT_COLOR:i,BODY_TEXT_COLOR:a,FOOTER_TEXT_COLOR:o,FOOTER_BG_COLOR:s,HIGHLIGHT_SELECTED_ROW:c,HIGHLIGHT_SELECTED_ROW_COLOR:l,HIGHLIGHT_HOVER_ROW:u,HIGHLIGHT_HOVER_ROW_COLOR:d,STRIPE:f,STRIPE_COLOR:p,FINDER_CELL_BG_COLOR:m}=this.ctx.config;if(this.cellType===`footer`){let e=s,t=o;if(typeof r==`function`){let{backgroundColor:n,color:i,font:a}=r({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue()})||{};n&&(e=n),i&&(t=i),a&&(this.drawTextFont=a)}this.drawCellSkyBgColor=`transparent`,this.drawCellBgColor=e,this.drawTextColor=t;return}let h=`transparent`,g=this.ctx.hoverCell,_=this.ctx.currentCell,v=this.rowIndex,y=this.rowIndex;if(this.rowspan!==1&&(u||c)){let{yArr:e}=this.getSpanInfo();v=e[0],y=e[1]}u&&g&&(g.rowKey===this.rowKey&&(h=d),g.rowIndex>=v&&g.rowIndex<=y&&(h=d)),c&&_&&(_.rowKey===this.rowKey&&(h=l),_.rowIndex>=v&&_.rowIndex<=y&&(h=l)),this.drawCellSkyBgColor=h;let b=e,x=a;if(this.ctx.database.getReadonly(this.rowKey,this.key)||(b=t,x=i),f&&(b=this.rowIndex%2?p:e),typeof n==`function`){let{backgroundColor:e,color:t,font:r}=n({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,isHasChanged:this.isHasChanged,value:this.getValue()})||{};e&&(b=e),t&&(x=t),r&&(this.drawTextFont=r)}let{rowIndex:S,colIndex:C,type:w}=this.ctx.finderBar;S===this.rowIndex&&C===this.colIndex&&w===`body`&&(b=m),this.drawCellBgColor=b,this.drawTextColor=x}updateSelection(){let{visibleWidth:e,visibleHeight:t,rowspan:n,colspan:r,cellType:i,type:a,rowIndex:o,rowKey:s}=this;if(n===0||r===0||i===`footer`||![`index-selection`,`selection`,`selection-tree`,`tree-selection`].includes(a))return;let c=this.ctx.database.getRowSelectable(s),{CHECKBOX_SIZE:l=0,CELL_PADDING:u}=this.ctx.config,d=this.drawX+u;(this.align===`center`||this.align===`right`)&&(d=this.drawX+(e-l)/2);let f=d,p=this.drawY+(t-l)/2;if(a!==`selection-tree`&&a===`tree-selection`){let{TREE_INDENT:e=16,TREE_ICON_SIZE:t}=this.ctx.config,{level:n=0}=this.ctx.database.getRowForRowKey(s)||{},r=n*e;f=d+t+r}let m=this.ctx.icons.get(`checkbox-uncheck`),h=`checkbox-uncheck`;if(a===`selection-tree`||a===`tree-selection`){let e=this.ctx.database.getTreeSelectionState(s);e.indeterminate&&c?(m=this.ctx.icons.get(`checkbox-indeterminate`),h=`checkbox-indeterminate`):e.checked&&c?(m=this.ctx.icons.get(`checkbox-check`),h=`checkbox-check`):!e.checked&&c?(m=this.ctx.icons.get(`checkbox-uncheck`),h=`checkbox-uncheck`):(m=this.ctx.icons.get(`checkbox-disabled`),h=`checkbox-disabled`)}else{let e=this.ctx.database.getRowSelection(s);e&&c?(m=this.ctx.icons.get(`checkbox-check`),h=`checkbox-check`):e&&!c?(m=this.ctx.icons.get(`checkbox-check-disabled`),h=`checkbox-check-disabled`):!e&&c?(m=this.ctx.icons.get(`checkbox-uncheck`),h=`checkbox-uncheck`):(m=this.ctx.icons.get(`checkbox-disabled`),h=`checkbox-disabled`)}f+l+u>this.drawX+this.visibleWidth||p+l+u>this.drawY+this.visibleHeight||(a===`index-selection`?(this.ctx.hoverCell&&this.ctx.hoverCell.rowIndex===o||[`checkbox-disabled`,`checkbox-check`].includes(h))&&(this.drawSelectionImageX=f,this.drawSelectionImageY=p,this.drawSelectionImageWidth=l,this.drawSelectionImageHeight=l,this.drawSelectionImageName=h,this.drawSelectionImageSource=m):(this.drawSelectionImageX=f,this.drawSelectionImageY=p,this.drawSelectionImageWidth=l,this.drawSelectionImageHeight=l,this.drawSelectionImageName=h,this.drawSelectionImageSource=m))}updateHoverIcon(){if(this.ctx.database.getReadonly(this.rowKey,this.key))return;let{BODY_CELL_HOVER_ICON_METHOD:e,CELL_HOVER_ICON_SIZE:t,CELL_PADDING:n,ENABLE_MERGE_CELL_LINK:r}=this.ctx.config;if(typeof e==`function`){let t=e({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue()});t!==void 0&&(this.hoverIconName=t)}let{hoverCell:i}=this.ctx;if(this.hoverIconName&&!this.ctx.editing&&i){let e=0,a=0;if(i.rowKey===this.rowKey&&(e=this.drawX+this.width-t-n,a=this.drawY+(this.height-t)/2),this.rowspan!==1&&r){let r=this.getSpanInfo(),{yArr:o}=r,s=o[0],c=o[1];if(i.rowIndex>=s&&i.rowIndex<=c){let{width:i,height:o,offsetTop:s,offsetLeft:c}=r;e=this.drawX-c+i-t-n,a=this.drawY-s+(o-t)/2}}let o=this.ctx.icons.get(this.hoverIconName);this.drawHoverImageX=e,this.drawHoverImageY=a,this.drawHoverImageWidth=t,this.drawHoverImageHeight=t,this.drawHoverImageName=this.hoverIconName,this.drawHoverImageSource=o}}getAutoHeight(){if(this.cellType!==`body`||!this.autoRowHeight||this.rowspan===0)return 0;if(this.render){let e=this.ctx.database.getOverlayerAutoHeight(this.rowIndex,this.colIndex);return this.rowspan>1?e<this.visibleHeight?0:Math.round(e-(this.visibleHeight-this.height)):Math.round(e)}if(!(this.displayText&&typeof this.displayText==`string`))return 0;let{BODY_FONT:e,CELL_PADDING:t,CELL_LINE_HEIGHT:n}=this.ctx.config,r=`${this.displayText}_${this.drawTextWidth}_${this.drawTextFont}`,i=this.ctx.paint.calculateTextHeight(this.displayText,this.drawTextWidth,{font:this.drawTextFont||e,padding:t,align:this.align,verticalAlign:this.verticalAlign,color:this.drawTextColor,autoRowHeight:this.autoRowHeight,lineHeight:n,maxLineClamp:this.maxLineClamp,cacheTextKey:r});return this.rowspan>1?i<this.visibleHeight?0:Math.round(i-(this.visibleHeight-this.height)):Math.round(i)}getSpanInfo(){return this.ctx.database.getSpanInfo(this)}getDisplayText(){return this.cellType===`footer`?this.renderFooter&&this.renderFooterType===`default`||this.text===null||this.text===void 0?``:this.text:this.rowspan===0||this.colspan===0||this.render&&this.renderType===`default`||this.type===`index-selection`&&(this.ctx.hoverCell&&this.ctx.hoverCell.rowIndex===this.rowIndex||[`checkbox-disabled`,`checkbox-check`].includes(this.drawSelectionImageName))||this.text===null||this.text===void 0?``:`${this.text}`}getText(){if(this.cellType===`footer`)return typeof this.formatterFooter==`function`?this.formatterFooter({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.row[this.key]}):this.row[this.key];if(typeof this.formatter==`function`)return this.formatter({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue()});let{BODY_CELL_FORMATTER_METHOD:e}=this.ctx.config;return typeof e==`function`?e({row:this.row,rowIndex:this.rowIndex,colIndex:this.colIndex,column:this.column,value:this.getValue()}):[`index-selection`,`index`].includes(this.type)?`${this.rowIndex+1}`:(this.value=this.ctx.database.getItemValue(this.rowKey,this.key),this.value)}getValue(){return this.ctx.database.getItemValue(this.rowKey,this.key)}setValue(e){this.ctx.setItemValueByEditor(this.rowKey,this.key,e)}getOverlayerViewsStyle(){let e=this.drawX-this.ctx.fixedLeftWidth,t=this.drawY-this.ctx.body.y;if(this.fixed===`left`?e=this.drawX:this.fixed===`right`&&(e=this.drawX-(this.ctx.stageWidth-this.ctx.fixedRightWidth)),this.cellType===`footer`&&this.ctx.config.FOOTER_FIXED&&(t=this.drawY-this.ctx.footer.y),this.autoRowHeight&&this.render&&this.verticalAlign===`middle`){let e=this.ctx.database.getOverlayerAutoHeight(this.rowIndex,this.colIndex);if(e<this.visibleHeight&&e>0){let n=(this.visibleHeight-e)/2;t+=n}}this.autoRowHeight&&this.ctx.database.getOverlayerAutoHeight(this.rowIndex,this.colIndex)===0&&(e=-99999,t=-99999);let n={};return this.rowspan===0&&(n={display:`none`}),{position:`absolute`,overflow:`hidden`,left:`${Math.round(e-1)}px`,top:`${Math.round(t-1)}px`,width:`${this.visibleWidth}px`,height:this.autoRowHeight&&this.renderType===`default`?`auto`:`${this.visibleHeight}px`,pointerEvents:`initial`,userSelect:`none`,...n}}drawContainer(){let{paint:e,config:{BORDER_COLOR:t,BORDER:n}}=this.ctx,{drawX:r,drawY:i}=this;e.drawRect(r,i,this.visibleWidth,this.visibleHeight,{borderColor:n?t:`transparent`,fillColor:this.drawCellBgColor}),e.drawRect(r,i,this.width,this.height,{borderColor:`transparent`,fillColor:this.drawCellSkyBgColor}),n||this.ctx.paint.drawLine([r,i+this.visibleHeight,r+this.visibleWidth,i+this.visibleHeight],{borderColor:t,fillColor:t,borderWidth:1,lineCap:`round`,lineJoin:`round`})}drawAutofillPiont(){if(this.cellType===`footer`)return;let{SELECT_BORDER_COLOR:e,ENABLE_AUTOFILL:t,ENABLE_SELECTOR:n,AUTOFILL_POINT_BORDER_COLOR:r}=this.ctx.config;if(!n||!t||this.ctx.editing)return;let{xArr:i,yArr:a}=this.ctx.selector,o=i[1],s=a[1],{colIndex:c,rowIndex:l,drawX:u,drawY:d}=this;if(c===o&&l===s){let t=c===this.ctx.maxColIndex||l===this.ctx.maxRowIndex||c===this.ctx.lastCenterColIndex?6:4;this.ctx.paint.drawRect(u+this.width-t,d+this.height-t,6,6,{borderColor:r,fillColor:e})}}draw(){this.drawTreeLine(),this.drawText(),this.drawImage(),this.drawSelector(),this.drawAutofillPiont(),this.drawErrorTip()}getWidthByColIndexColSpan(e,t){if(t===0)return 0;let n=0;for(let r=e;r<e+t;r++){let e=this.ctx.header.leafCellHeaders[r];n+=e.width}return n}drawText(){let{CELL_PADDING:e,BODY_FONT:t,PLACEHOLDER_COLOR:n,CELL_LINE_HEIGHT:r}=this.ctx.config,{placeholder:i}=this.column,a=this.displayText,o=this.drawTextColor;if(!this.ctx.database.getReadonly(this.rowKey,this.key)&&i&&[``,null,void 0].includes(this.text)&&this.cellType===`body`&&!(this.rowspan===0||this.colspan===0)&&(a=i,o=n),[``,null,void 0].includes(a))return!1;typeof a!=`string`&&(a=`${a}`);let s=`${a}_${this.drawTextWidth}_${this.drawTextFont}`;return this.ellipsis=this.ctx.paint.drawText(a,this.drawTextX,this.drawTextY,this.drawTextWidth,this.drawTextHeight,{font:this.drawTextFont||t,padding:e,align:this.align,verticalAlign:this.verticalAlign,color:o,autoRowHeight:this.autoRowHeight,lineHeight:r,maxLineClamp:this.maxLineClamp,cacheTextKey:s}),this.ellipsis}drawImage(){if(this.drawSelectionImageSource&&this.ctx.paint.drawImage(this.drawSelectionImageSource,this.drawSelectionImageX,this.drawSelectionImageY,this.drawSelectionImageWidth,this.drawSelectionImageHeight),this.drawTreeImageSource&&this.ctx.paint.drawImage(this.drawTreeImageSource,this.drawTreeImageX,this.drawTreeImageY,this.drawTreeImageWidth,this.drawTreeImageHeight),this.drawHoverImageSource){let{CELL_HOVER_ICON_BG_COLOR:e,CELL_HOVER_ICON_BORDER_COLOR:t}=this.ctx.config;this.ctx.paint.drawRect(this.drawHoverImageX-2,this.drawHoverImageY-2,this.drawHoverImageWidth+4,this.drawHoverImageHeight+4,{borderColor:t,radius:4,borderWidth:1,fillColor:e}),this.ctx.paint.drawImage(this.drawHoverImageSource,this.drawHoverImageX,this.drawHoverImageY,this.drawHoverImageWidth,this.drawHoverImageHeight)}}drawSelector(){if(this.cellType===`footer`)return;let{ENABLE_SELECTOR:e}=this.ctx.config;if(!e)return;let{xArr:t,yArr:n,xArrCopy:r,yArrCopy:i}=this.ctx.selector;this.drawBorder({xArr:r,yArr:i,borderColor:this.ctx.config.SELECT_BORDER_COLOR||`rgb(82,146,247)`,fillColor:`transparent`,borderWidth:1,lineDash:[4,4]}),this.drawBorder({xArr:this.ctx.autofill.xArr,yArr:this.ctx.autofill.yArr,borderColor:this.ctx.config.SELECT_BORDER_COLOR||`rgb(82,146,247)`,fillColor:`transparent`,borderWidth:1,lineDash:[4,4]}),this.drawBorder({xArr:t,yArr:n,borderColor:this.ctx.config.SELECT_BORDER_COLOR||`rgb(82,146,247)`,fillColor:`transparent`,borderWidth:1});let[a,o]=t,[s,c]=n;!(a===o&&s===c)&&this.colIndex>=a&&this.colIndex<=o&&this.rowIndex>=s&&this.rowIndex<=c&&this.ctx.paint.drawRect(this.drawX,this.drawY,this.width,this.height,{borderColor:`transparent`,fillColor:this.ctx.config.SELECT_AREA_COLOR||`rgba(82,146,247,0.1)`}),this.operation&&this.rowIndex>=s&&this.rowIndex<=c&&this.ctx.paint.drawRect(this.drawX,this.drawY,this.visibleWidth,this.visibleHeight,{borderColor:`transparent`,fillColor:this.ctx.config.SELECT_ROW_COL_BG_COLOR||`transparent`})}drawErrorTip(){if(this.cellType===`footer`||!this.message||this.rowspan===0||this.colspan===0)return;let{ERROR_TIP_ICON_SIZE:e,ERROR_TIP_COLOR:t}=this.ctx.config,{width:n}=this,r=this.drawX,i=this.drawY,a=[r+n-e-.5,i,r+n-.5,i,r+n-.5,i+e];this.ctx.paint.drawLine(a,{borderColor:t,fillColor:t,borderWidth:1,lineCap:`round`,lineJoin:`round`})}drawBorder(e){let{drawX:t,drawY:n,rowIndex:r,colIndex:i,height:a,width:o}=this,s=t,c=n,{xArr:l,yArr:u,lineDash:d=[],borderWidth:f=1,borderColor:p,fillColor:m}=e,h=l[0],g=l[1],_=u[0],v=u[1];if(i>=h&&i<=g&&r===_){let e=+(i===g),t=+(i===h);this.ctx.paint.drawLine([s+t,c+1,s+o-e,c+1],{borderColor:p,fillColor:m,borderWidth:f,lineCap:`round`,lineJoin:`round`,lineDash:d})}if(i===g&&r>=_&&r<=v){let e=+(r===_),t=+(r===v);this.ctx.paint.drawLine([s+o-1,c+e,s+o-1,c+a-t],{borderColor:p,fillColor:m,borderWidth:f,lineCap:`round`,lineJoin:`round`,lineDash:d})}if(i>=h&&i<=g&&r===v){let e=+(i===g),t=+(i===h);this.ctx.paint.drawLine([s+t,c+a-1,s+o-e,c+a-1],{borderColor:p,fillColor:m,borderWidth:f,lineCap:`round`,lineJoin:`round`,lineDash:d})}if(i===h&&r>=_&&r<=v){let e=+(r===v),t=+(r===_);this.ctx.paint.drawLine([s+1,c+t,s+1,c+a-e],{borderColor:p,fillColor:m,borderWidth:f,lineCap:`round`,lineJoin:`round`,lineDash:d})}}}class T{constructor(e,t){n(this,`ctx`),n(this,`data`),n(this,`columns`),n(this,`footerData`,[]),n(this,`rowKeyMap`,new Map),n(this,`colIndexKeyMap`,new Map),n(this,`headerMap`,new Map),n(this,`rowIndexRowKeyMap`,new Map),n(this,`rowKeyRowIndexMap`,new Map),n(this,`checkboxKeyMap`,new Map),n(this,`selectionMap`,new Map),n(this,`expandMap`,new Map),n(this,`originalDataMap`,new Map),n(this,`changedDataMap`,new Map),n(this,`validationErrorMap`,new Map),n(this,`itemRowKeyMap`,new WeakMap),n(this,`bufferData`,[]),n(this,`customHeader`,{fixedData:{},sortData:{},hideData:{},resizableData:{}}),n(this,`overlayerAutoHeightMap`,new Map),n(this,`maxRowHeightCellMap`,new Map),n(this,`bufferCheckState`,{buffer:!1,check:!1,indeterminate:!1,selectable:!0}),n(this,`sumHeight`,0),n(this,`filterMethod`),n(this,`positions`,[]),n(this,`sortState`,new Map),this.ctx=e;let{data:r=[],columns:i=[],footerData:a=[]}=t;this.data=r,this.footerData=a,this.columns=i,this.init()}init(e=!0){this.ctx.paint.clearTextCache(),this.clearBufferData(),this.rowKeyMap.clear(),this.checkboxKeyMap.clear(),this.colIndexKeyMap.clear(),this.rowIndexRowKeyMap.clear(),this.rowKeyRowIndexMap.clear(),this.maxRowHeightCellMap.clear();let t=l(this.getColumns());if(this.ctx.hasSelection=t.some(e=>e.type===`selection`),this.ctx.hasTree=t.some(e=>e.type===`tree`),e){this.originalDataMap.clear(),this.changedDataMap.clear(),this.validationErrorMap.clear();let{ROW_KEY:e}=this.ctx.config;e?(this.ctx.hasSelection||this.selectionMap.clear(),this.ctx.hasTree||this.expandMap.clear()):(this.selectionMap.clear(),this.expandMap.clear())}this.itemRowKeyMap=new WeakMap,this.initData(this.data),this.getData(),this.bufferCheckState.buffer=!1}clearBufferData(){this.bufferData=[]}initData(e,t=0,n=[]){let r=e.length,{ROW_KEY:a=``,DEFAULT_EXPAND_ALL:o,CELL_HEIGHT:s,SELECTABLE_METHOD:c,CHECKBOX_KEY:l,TREE_CHILDREN_KEY:u}=this.ctx.config;e.forEach((e,d)=>{u!==`children`&&(e.children=e[u]);let f=e[a],p=f==null?i():`${f}`;this.itemRowKeyMap.set(e,p);let m=e._height||s,h=e._readonly,g=!0;if(typeof c==`function`&&(g=c),l){let t=e[l];if(this.checkboxKeyMap.has(t)){let e=this.checkboxKeyMap.get(t)||[];e.push(p),this.checkboxKeyMap.set(t,e)}else this.checkboxKeyMap.set(t,[p])}this.selectionMap.set(p,{key:l?e[l]:p,row:e,check:this.selectionMap.get(p)?.check||!1});let _=o||this.expandMap.get(p)||e._expand||!1;this.expandMap.set(p,_),this.rowKeyMap.set(p,{readonly:h,index:d,rowIndex:d,level:t,height:m,calculatedHeight:-1,check:!1,selectable:g,expand:_,expandLazy:!1,hasChildren:e._hasChildren||(Array.isArray(e.children)?e.children.length>0:!1),expandLoading:!1,item:e,parentRowKeys:n,parentRowKey:n[n.length-1]||``,isLastChild:d===r-1}),Array.isArray(e.children)&&e.children.length&&this.initData(e.children,t+1,[...n,p])})}setRowHeight(e,t){let n=this.rowIndexRowKeyMap.get(e);if(n===void 0)return;let r=this.rowKeyMap.get(n);r.height=t,r.item._height=t,this.clearBufferData()}setBatchRowHeight(e){e.forEach(({rowIndex:e,height:t})=>{let n=this.rowIndexRowKeyMap.get(e);if(n){let e=this.rowKeyMap.get(n);e.height=t,e.item._height=t}}),this.clearBufferData()}setBatchCalculatedRowHeight(e){return e.every(({height:e,rowIndex:t})=>this.getPositionForRowIndex(t).calculatedHeight===e)?!1:(e.forEach(({rowIndex:e,height:t})=>{let n=this.rowIndexRowKeyMap.get(e);if(n){let e=this.rowKeyMap.get(n),{height:r=-1}=this.getMaxRowHeightItem(n)||{};e.calculatedHeight=Math.max(t,r)}}),this.clearBufferData(),this.getData(),!0)}getAllRowsData(){let e=[],t=n=>{n.forEach(n=>{e.push(n),Array.isArray(n.children)&&t(n.children)})};return t(this.data),e}generateColumns(e){let t=e=>e.map(e=>{let n=e.children&&Array.isArray(e.children)?t(e.children):void 0,r={hide:this.customHeader?.hideData?.[e.key],fixed:this.customHeader?.fixedData?.[e.key],sort:this.customHeader?.sortData?.[e.key],width:this.customHeader?.resizableData?.[e.key]},i={};for(let[e,t]of Object.entries(r))t!==void 0&&(i[e]=t);let a=n&&n.every(e=>e.hide);return{...e,children:n,hide:a||(typeof e.hide==`function`?e.hide(e):e.hide),...i}});return t(e)}getColumns(){return this.generateColumns(this.columns)}setColumns(e){this.columns=e,this.clearBufferData()}setData(e){this.data=e,this.init()}getData(){if(this.bufferData.length>0)return{data:this.bufferData,sumHeight:this.sumHeight,positions:this.positions};let e=[],t=0;this.sumHeight=0,this.positions=[];let n=r=>{r.forEach(r=>{e.push(r);let i=this.itemRowKeyMap.get(r),{expand:a,hasChildren:o,height:s,calculatedHeight:c}=this.rowKeyMap.get(i),l=this.sumHeight,u=Math.max(c,s);this.sumHeight+=u,this.rowIndexRowKeyMap.set(t,i),this.rowKeyRowIndexMap.set(i,t),this.positions.push({top:l,height:u,bottom:this.sumHeight,calculatedHeight:c}),t+=1,a&&o&&n(r.children)})};this.rowIndexRowKeyMap.clear(),this.rowKeyRowIndexMap.clear();let r=this.data;if(typeof this.filterMethod==`function`&&(r=this.filterMethod(r)),this.sortState.size){let e=Array.from(this.sortState.entries()).sort((e,t)=>e[1].timestamp-t[1].timestamp);r=this.sortDataRecursive(r,e)}return n(r),this.bufferData=e,{data:e,sumHeight:this.sumHeight,positions:this.positions}}setFooterData(e){this.footerData=e}getFooterData(){return this.footerData}setFilterMethod(e){this.filterMethod=e}clearFilterMethod(){this.filterMethod=void 0}getSortState(e){return this.sortState.get(e)||{direction:`none`,timestamp:0}}setSortState(e,t){let n=Date.now();this.ctx.config.SORT_STRICTLY&&this.sortState.clear(),t===`none`?this.sortState.delete(e):this.sortState.set(e,{direction:t,timestamp:n}),this.ctx.emit(`sortChange`,this.sortState),this.clearBufferData(),this.ctx.emit(`draw`)}clearSort(){this.sortState.clear(),this.ctx.emit(`sortChange`,this.sortState),this.clearBufferData(),this.ctx.emit(`draw`)}sortDataRecursive(e,t){let n=[...e];for(let[e,{direction:r}]of t){if(r===`none`)continue;let t=this.getColumnByKey(e);!t||!t.column.sortBy||(n=this.applySingleColumnSort(n,e,r,t.column.sortBy))}return n.map(e=>(e.children&&Array.isArray(e.children)&&(e.children=this.sortDataRecursive(e.children,t)),e))}applySingleColumnSort(e,t,n,r){return e.sort((e,i)=>{let a=e[t],o=i[t],s=0;if(typeof r==`function`)s=r(e,i);else if(r===`number`)s=(Number(a)||0)-(Number(o)||0);else if(r===`string`){let e=String(a||``),t=String(o||``);s=e.localeCompare(t)}else r===`date`&&(s=S(a,o));return n===`asc`?s:-s})}expandItem(e,t=!1){let n=this.rowKeyMap.get(e);n.expand=t,this.expandMap.set(e,t),this.clearBufferData(),this.ctx.emit(`draw`)}setExpandRowKeys(e,t=!0){this.expandMap.clear(),e.forEach(e=>{let n=this.rowKeyMap.get(e);this.expandMap.set(e,t),n.expand=t}),this.clearBufferData(),this.ctx.emit(`draw`)}getExpandRowKeys(){let e=[];return this.rowKeyMap.forEach((t,n)=>{t.expand&&e.push(n)}),e}expandAll(e){this.expandMap.clear(),this.rowKeyMap.forEach(t=>{t.expand=e,this.expandMap.set(t.key,e)}),this.clearBufferData(),this.ctx.emit(`draw`)}expandLoading(e,t=!1){let n=this.rowKeyMap.get(e);n.expandLoading=t,this.clearBufferData(),this.ctx.emit(`draw`)}setExpandChildren(e,t){let n=this.rowKeyMap.get(e);n.expand=!0,this.expandMap.set(e,!0),n.expandLazy=!0,n.item.children=t,this.initData(n.item.children,n.level+1),this.clearBufferData()}getIsExpandLoading(e){return this.rowKeyMap.get(e).expandLoading}getIsExpandLazy(e){return this.rowKeyMap.get(e).expandLazy}getIsExpand(e){return this.rowKeyMap.get(e).expand}getRowForRowKey(e){return this.rowKeyMap.get(e)}getRowForRowIndex(e){let t=this.getRowKeyForRowIndex(e);return this.rowKeyMap.get(t)}getRowKeyForRowIndex(e){return this.rowIndexRowKeyMap.get(e)||``}getRowKeyByItem(e){return this.itemRowKeyMap.get(e)}getRowIndexForRowKey(e){return this.rowKeyRowIndexMap.get(e)}getItemValueForRowIndexAndColIndex(e,t){if(!(this.rowIndexRowKeyMap.has(e)&&this.colIndexKeyMap.get(t)))return null;let n=this.rowIndexRowKeyMap.get(e),r=this.colIndexKeyMap.get(t);return n===void 0||r===void 0?null:{rowKey:n,key:r,value:this.getItemValue(n,r)}}getItemValue(e,t){let n=this.rowKeyMap.get(e);return n&&n.item?n.item[t]===void 0?null:n.item[t]:null}async batchSetItemValue(e,t=!1,n=!0,r=`none`){let i=[],a=n,o=new Set,s=[],c=e.map(e=>{let{rowKey:t,key:n}=e,r=e.value,i=r,a=this.getRowDataItemForRowKey(t),o=this.getItemValue(t,n);return this.getVirtualBodyCellByKey(t,n)?.type===`number`&&([``,void 0,null].includes(r)?i=null:/^-?\d+(\.\d+)?$/.test(`${r}`)?i=Number(r):(i=o,s.push({...e,value:i,oldValue:o,row:a}))),{...e,value:i,oldValue:o,row:a}});if(c=c.filter(e=>!s.some(t=>e.rowKey===t.rowKey&&e.key===t.key)),s.length){let e={code:`ERR_BATCH_SET_NUMBER_VALUE`,message:`Assignment failed, not a numeric type`,data:s};this.ctx.emit(`error`,e)}if(c=c.filter(e=>e.oldValue!==e.value),!c.length)return;let{BEFORE_VALUE_CHANGE_METHOD:l}=this.ctx.config;r===`none`&&typeof l==`function`&&(c=await l(c),a=!1),c.forEach(e=>{let{value:t,rowKey:n,key:r}=e,s=this.getItemValue(n,r);o.add(n),this.setItemValue(n,r,t,!1,!1,!1,a),i.push({rowKey:n,key:r,oldValue:s,newValue:t})});let u=[];o.forEach(e=>{u.push(this.ctx.database.getRowDataItemForRowKey(e))});let d=c.map(({rowKey:e,key:t})=>this.getValidator(e,t));Promise.all(d).then(()=>{this.validationErrorMap.size===0&&this.changedDataMap.size>0&&this.ctx.emit(`validateChangedData`,this.getChangedData())});let f=c.map(e=>{let t=!!this.getValidationError(e.rowKey,e.key).length;return{...e,errorTip:t}});this.ctx.emit(`change`,f,u),t&&this.ctx.history.pushState({changeList:i,scrollX:this.ctx.scrollX,scrollY:this.ctx.scrollY,type:`multiple`}),this.ctx.emit(`draw`)}async setItemValue(e,t,n,r=!1,i=!1,a=!1,o=!0){if(!this.rowKeyMap.has(e))return{};let{item:s}=this.rowKeyMap.get(e),c=s[t],l=n;if(o&&this.ctx.database.getReadonly(e,t))return{oldValue:c,newValue:c};s[t]!==null&&typeof s[t]==`object`&&(c=JSON.parse(JSON.stringify(s[t])));let u=`${e}_${t}`;this.originalDataMap.has(u)||this.originalDataMap.set(u,c);let d=this.originalDataMap.get(u),f=this.getRowDataItemForRowKey(e);if(a){if(this.getVirtualBodyCellByKey(e,t)?.type===`number`)if([``,void 0,null].includes(n))l=null;else if(/^-?\d+(\.\d+)?$/.test(`${n}`))l=Number(n);else{l=c;let n={code:`ERR_SET_NUMBER_VALUE`,message:`Assignment failed, not a numeric type`,data:[{rowKey:e,key:t,value:l,oldValue:c,row:f}]};this.ctx.emit(`error`,n)}if(l===c)return{oldValue:c,newValue:c};let i=[{rowKey:e,key:t,value:l,oldValue:c,row:f}];this.batchSetItemValue(i,r,!1),this.ctx.emit(`editChange`,{rowKey:e,key:t,oldValue:c,value:l,originalValue:d,row:f})}else this.changedDataMap.set(u,l),s[t]=l;return this.ctx.hasEvent(`iterationChange`)&&this.ctx.emit(`iterationChange`,{rowKey:e,key:t,oldValue:c,value:l,originalValue:this.originalDataMap.get(u),row:f}),i&&this.ctx.emit(`draw`),{oldValue:c,newValue:l}}getRowDataItemForRowKey(e){if(!this.rowKeyMap.has(e))return{};let{item:t}=this.rowKeyMap.get(e);return t}setRowSelectionByCheckboxKey(e,t){let{CHECKBOX_KEY:n}=this.ctx.config;if(n){if(!this.rowKeyMap.has(e))return!1;let{item:r}=this.rowKeyMap.get(e),i=r[n];this.checkboxKeyMap.has(i)&&(this.checkboxKeyMap.get(i)||[]).forEach(e=>{let n=this.selectionMap.get(e);n&&(n.check=t)})}}toggleRowSelection(e,t){let n=this.rowKeyMap.get(e),r=this.selectionMap.get(e);if(!r)return;t===`selection-tree`||t===`tree-selection`?this.toggleTreeSelection(e):(r.check=!r.check,this.setRowSelectionByCheckboxKey(e,r.check)),this.ctx.emit(`toggleRowSelection`,n);let i=this.getSelectionRows();this.ctx.emit(`selectionChange`,i),this.bufferCheckState.buffer=!1,this.ctx.emit(`draw`)}toggleTreeSelection(e){let t=this.getTreeSelectionState(e),n=this.ctx.config.TREE_SELECT_MODE;if(n===`auto`)t.checked&&!t.indeterminate?(this.clearTreeSelectionRecursive(e),this.setRowSelection(e,!1,!1)):(this.selectTreeSelectionRecursive(e),this.setRowSelection(e,!0,!1));else if(n===`cautious`)t.checked&&!t.indeterminate?(this.clearTreeSelectionRecursive(e),this.setRowSelection(e,!1,!1)):(this.selectTreeSelectionRecursive(e),this.setRowSelection(e,!0,!1));else if(n===`strictly`){let t=this.selectionMap.get(e);t&&(t.check=!t.check,this.setRowSelectionByCheckboxKey(e,t.check))}this.ctx.emit(`selectionChange`,this.getSelectionRows()),this.ctx.emit(`draw`)}selectTreeSelectionRecursive(e){this.getTreeChildren(e).forEach(e=>{this.setRowSelectionByParent(e,!0),this.selectTreeSelectionRecursive(e)})}clearTreeSelectionRecursive(e){this.getTreeChildren(e).forEach(e=>{this.setRowSelectionByParent(e,!1),this.clearTreeSelectionRecursive(e)})}updateParentTreeSelection(e){let t=this.getTreeParent(e);if(!t)return;let n=this.getTreeChildren(t).map(e=>this.selectionMap.get(e)),r=n.filter(e=>e?.check).length,i=n.length,a=!1;i>0&&(r===0?a=!1:r===i||this.ctx.config.TREE_SELECT_MODE===`auto`?a=!0:this.ctx.config.TREE_SELECT_MODE===`cautious`&&(a=!1));let o=this.selectionMap.get(t);o&&o.check!==a&&(o.check=a,this.setRowSelectionByCheckboxKey(t,a),this.updateParentTreeSelection(t))}setRowSelection(e,t,n=!0){let r=this.selectionMap.get(e);r&&(r.check=t,this.setRowSelectionByCheckboxKey(e,r.check),this.ctx.emit(`setRowSelection`,t,r.row),(this.ctx.config.TREE_SELECT_MODE===`auto`||this.ctx.config.TREE_SELECT_MODE===`cautious`)&&this.updateParentTreeSelection(e),n&&(this.bufferCheckState.buffer=!1,this.ctx.emit(`draw`)))}setRowSelectionByParent(e,t){let n=this.selectionMap.get(e);n&&(n.check=t,this.setRowSelectionByCheckboxKey(e,n.check))}getSelectionRows(){let e=[];return this.selectionMap.forEach(t=>{t.check&&e.push(t.row)}),e}getRowSelection(e){let t=this.selectionMap.get(e);return t?t.check:!1}getTreeSelectionState(e){if(!this.getRowForRowKey(e))return{checked:!1,indeterminate:!1};let t=this.selectionMap.get(e)?.check||!1;if(this.getTreeChildren(e).length===0)return{checked:t,indeterminate:!1};let n=!1,r=t;if(this.ctx.config.TREE_SELECT_MODE===`auto`){let i=e=>{let t=this.getTreeChildren(e),n=[];for(let e of t)n.push(e),n.push(...i(e));return n},a=i(e).map(e=>this.selectionMap.get(e)),o=a.filter(e=>e?.check).length,s=a.length,c=o>0;n=c&&o!==s,r=t||c,t&&s>0&&o===0&&(r=!1,n=!1)}else if(this.ctx.config.TREE_SELECT_MODE===`cautious`){let i=e=>{let t=this.getTreeChildren(e),n=[];for(let e of t)n.push(e),n.push(...i(e));return n},a=i(e).map(e=>this.selectionMap.get(e)),o=a.filter(e=>e?.check).length,s=a.length,c=o>0,l=o===s;n=c&&!l,r=t||l,t&&s>0&&o===0&&(r=!1,n=!1)}else this.ctx.config.TREE_SELECT_MODE===`strictly`&&(n=!1,r=t);return{checked:r,indeterminate:n}}getTreeChildren(e){let t=this.getRowForRowKey(e);if(!t||!t.item||!t.item.children)return[];let n=[],r=e=>{for(let t of e){let e=this.getRowKeyByItem(t);e&&n.push(e),t.children&&t.children.length>0&&r(t.children)}};return r(t.item.children),n}getTreeParent(e){let t=(e,n)=>{for(let r of e){let e=this.getRowKeyByItem(r);if(r.children)for(let i of r.children){if(this.getRowKeyByItem(i)===n)return e;let a=t(r.children,n);if(a)return a}}return null};return t(this.data,e)}getRowSelectable(e){let{selectable:t,item:n,rowIndex:r}=this.rowKeyMap.get(e);return typeof t==`function`?t({row:n,rowIndex:r}):t}toggleAllSelection(){this.ctx.config.TREE_SELECT_MODE===`auto`||this.ctx.config.TREE_SELECT_MODE===`cautious`?this.rowKeyMap.forEach((e,t)=>{let n=e.selectable;if(typeof n==`function`&&(n=n({row:e.item,rowIndex:e.rowIndex})),n){let e=this.selectionMap.get(t);e&&(e.check=!0,this.setRowSelectionByCheckboxKey(t,!0))}}):this.rowKeyMap.forEach((e,t)=>{let n=e.selectable;typeof n==`function`&&(n=n({row:e.item,rowIndex:e.rowIndex})),n&&this.setRowSelection(t,!0,!1)});let e=this.getSelectionRows();this.ctx.emit(`toggleAllSelection`,e),this.ctx.emit(`selectionChange`,e),this.bufferCheckState.buffer=!1,this.ctx.emit(`draw`)}clearSelection(e=!1){let t=this.ctx.config.TREE_SELECT_MODE===`auto`||this.ctx.config.TREE_SELECT_MODE===`cautious`;e?t?this.rowKeyMap.forEach((e,t)=>{let n=this.selectionMap.get(t);n&&(n.check=!1,this.setRowSelectionByCheckboxKey(t,!1))}):this.rowKeyMap.forEach((e,t)=>{this.setRowSelection(t,!1,!1)}):(this.selectionMap.clear(),this.rowKeyMap.forEach((e,t)=>{this.selectionMap.set(t,{check:!1,row:e.item,key:t})}));let n=this.getSelectionRows();this.ctx.emit(`clearSelection`),this.ctx.emit(`selectionChange`,n),this.bufferCheckState.buffer=!1,this.ctx.emit(`draw`)}getCheckedState(){let{buffer:e,...t}=this.bufferCheckState;if(e)return t;let n=this.rowKeyMap.size,r=0,i=0,a=this.selectionMap.size,o=Array.from(this.selectionMap.values()).some(e=>e.check);this.rowKeyMap.forEach((e,t)=>{var n;(n=this.selectionMap.get(t))!=null&&n.check&&(r+=1);let a=e.selectable;typeof a==`function`&&(a=a({row:e.item,rowIndex:e.rowIndex})),a&&(i+=1)});let s=i&&i>r&&r>0||a>n&&r===0&&o,c=i!==0,l=!!i&&i===r;return this.bufferCheckState={buffer:!0,check:l,indeterminate:s,selectable:c},{check:l,indeterminate:s,selectable:c}}updateColIndexKeyMap(e=[]){this.colIndexKeyMap.clear(),e.forEach(e=>{this.colIndexKeyMap.set(e.colIndex,e.key)})}getColumnByColIndex(e){let t=this.colIndexKeyMap.get(e);if(t&&this.headerMap.has(t))return this.headerMap.get(t)?.column}getColumnByKey(e){let t=this.headerMap.get(e);if(t)return t}getColIndexForKey(e){if(e&&this.headerMap.has(e))return this.headerMap.get(e)?.colIndex}getColHeaderByIndex(e){let t=this.colIndexKeyMap.get(e);if(t&&this.headerMap.has(t))return this.headerMap.get(t)}getChangedData(){let e=[];return this.changedDataMap.forEach((t,n)=>{let r=this.originalDataMap.get(n),i=n.split(`_`)[0],a=n.split(`_`)[1];r!==t&&e.push({rowKey:i,colKey:a,originalValue:r,row:this.ctx.database.getRowDataItemForRowKey(i),value:t})}),e}getChangedRows(){let e=new Set;this.changedDataMap.forEach((t,n)=>{let r=this.originalDataMap.get(n),i=n.split(`_`)[0];r!==t&&e.add(i)});let t=[];return e.forEach(e=>{t.push(this.ctx.database.getRowDataItemForRowKey(e))}),t}isHasChangedData(e,t){let n=`${e}_${t}`;return this.changedDataMap.has(n)?this.originalDataMap.get(n)!==this.changedDataMap.get(n):!1}getPositionForRowIndex(e){return e<this.positions.length?this.positions[e]:{height:0,top:0,bottom:0,calculatedHeight:0}}setHeader(e,t){return e?(this.headerMap.set(e,t),!0):!1}getReadonly(e,t){let{DISABLED:n}=this.ctx.config;if(n)return!0;let r=this.rowKeyMap.get(e),i=this.headerMap.get(t);if(!r||!i)return!0;let a=r.readonly,o=i.readonly,{BODY_CELL_READONLY_METHOD:s}=this.ctx.config;if(typeof s==`function`&&i){let n=s({row:r.item,rowIndex:r.rowIndex,colIndex:i.colIndex,column:i.column,value:this.getItemValue(e,t)});if(n!==void 0)return n}return o||a}clearValidate(){this.validationErrorMap.clear()}hasValidationError(){return this.validationErrorMap.size!==0}getValidator(e,t){return this.ctx.database.getReadonly(e,t)?new Promise(e=>{e([])}):new Promise(n=>{let i=this.rowKeyMap.get(e),a=this.headerMap.get(t),{BODY_CELL_RULES_METHOD:o}=this.ctx.config;if(i===void 0||a===void 0)return n([]);let s=a.column,c=s.rules;if(typeof o==`function`){let n=o({row:i.item,rowIndex:i.rowIndex,colIndex:a.colIndex,column:s,value:this.getItemValue(e,t)});n&&(c=n)}if(c){let o={row:i.item,rowIndex:i.rowIndex,colIndex:a.colIndex,column:s,key:t,rowKey:e,value:this.getItemValue(e,t),field:t,fieldValue:this.getItemValue(e,t)},l=new r(c).validate(o);this.setValidationError(e,t,l),n(l)}else this.clearValidationError(e,t),n([])})}getHeightByRowIndexRowSpan(e,t){let n=0;for(let r=0;r<t;r++){let t=this.positions[e+r];t&&(n+=t.height)}return n}getSpanInfo(e){let{rowIndex:t,key:n,rowKey:r,row:i,value:a,colIndex:o,relationRowKeys:s,relationColKeys:c,rowspan:l,height:u,width:d,colspan:f,mergeRow:p,mergeCol:m}=e;if(l===1&&f===1)return{xArr:[o,o],yArr:[t,t],rowspan:l,colspan:f,height:u,width:d,offsetTop:0,offsetLeft:0,dataList:[{rowKey:r,key:n,row:i,value:a}]};let h=t,g=t,_=o,v=o,y=[],b=0,x=0,S=0,C=0;if(l!==1&&p){C=d;let e=s.reduce((e,t)=>`${e}${this.getItemValue(r,t)??``}`,``);for(let n=t-1;n>=0;n--){let t=this.rowIndexRowKeyMap.get(n)||``;if(e===s.reduce((e,n)=>`${e}${this.getItemValue(t,n)??``}`,``))h=n;else break}for(let n=t;n<=this.ctx.maxRowIndex;n++){let t=this.rowIndexRowKeyMap.get(n)||``;if(e===s.reduce((e,n)=>`${e}${this.getItemValue(t,n)??``}`,``))g=n;else break}for(let e=h;e<t;e++){let{height:t}=this.positions[e];b+=t}for(let e=h;e<=g;e++){let{height:t}=this.positions[e];S+=t;let r=this.rowIndexRowKeyMap.get(e)||``,{item:i}=this.rowKeyMap.get(r),a=this.getItemValue(r,n);y.push({rowKey:r,key:n,value:a,row:i})}}if(f!==1&&m){S=u;for(let e=o-1;e>=0;e--){let t=this.getColumnByColIndex(e);if(!t)break;if(this.getItemValue(r,n)===this.getItemValue(r,t.key)&&c.includes(t.key))_=e;else break}for(let e=o;e<=this.ctx.maxColIndex;e++){let t=this.getColumnByColIndex(e);if(!t)break;if(this.getItemValue(r,n)===this.getItemValue(r,t.key)&&c.includes(t.key))v=e;else break}for(let e=_;e<o;e++){let t=this.getColumnByColIndex(e);if(!t)break;x+=t.width||100}for(let e=_;e<=v;e++){let t=this.getColumnByColIndex(e);if(!t)break;C+=t.width||100,y.push({rowKey:r,key:t.key,value:this.getItemValue(r,t.key),row:i})}}return{xArr:[_,v],yArr:[h,g],rowspan:l,colspan:f,height:S,width:C,offsetTop:b,offsetLeft:x,dataList:y}}setValidationErrorByRowKey(e,t,n){let r=`${e}_${t}`,i=this.getRowForRowKey(e),a=i?.rowIndex,o=this.getColumnByKey(t);if(!e||!o||!i)return;let s=this.getItemValue(e,t),c=[{key:t,rowKey:e,rowIndex:a,colIndex:o.colIndex,column:o.column,row:i,value:s,message:n,field:t,fieldValue:s}];this.validationErrorMap.set(r,c)}setValidationError(e,t,n){let r=`${e}_${t}`;this.validationErrorMap.set(r,n)}clearValidationError(e,t){let n=`${e}_${t}`;this.validationErrorMap.has(n)&&this.validationErrorMap.delete(n)}getValidationError(e,t){let n=`${e}_${t}`;return this.validationErrorMap.get(n)||[]}getVirtualBodyCell(e,t,n=!0){let r=this.getColumnByColIndex(t),i=this.getRowForRowIndex(e);return!r||!i?void 0:new w(this.ctx,e,t,0,0,0,0,r,i.item,`body`,n)}getVirtualBodyCellByKey(e,t){let n=this.getRowIndexForRowKey(e),r=this.getColIndexForKey(t);if(!(n===void 0||r===void 0))return this.getVirtualBodyCell(n,r)}hasMergeCell(e,t){let n=!1;for(let r=t[0];r<=t[1];r++)for(let t=e[0];t<=e[1];t++){let e=this.getVirtualBodyCell(r,t);if(e&&(e.rowspan!==1||e.colspan!==1)){n=!0;break}}return n}calculateMaxTreeDepth(e,t=0){let n=t;return e.forEach(e=>{if(Array.isArray(e.children)&&e.children.length>0){let r=this.calculateMaxTreeDepth(e.children,t+1);n=Math.max(n,r)}}),n}setOverlayerAutoHeightMap(e){this.overlayerAutoHeightMap=e}getOverlayerAutoHeightMap(){return this.overlayerAutoHeightMap}getOverlayerAutoHeight(e,t){let n=`${e}_${t}`;return this.overlayerAutoHeightMap.get(n)||0}setCustomHeader(e,t=!1){if([`fixedData`,`sortData`,`hideData`,`resizableData`].forEach(t=>{let n=e[t];n!==void 0&&(this.customHeader[t]=n)}),!t){let e=this.clearCustomHeaderInvalidValues(this.columns);this.ctx.emit(`customHeaderChange`,e)}}resetCustomHeader(){this.customHeader={},this.ctx.emit(`resetHeader`),this.ctx.emit(`customHeaderChange`,this.customHeader)}getCustomHeader(){return this.customHeader}setCustomHeaderResizableData(e,t){let{resizableData:n={}}=this.customHeader;n[e]=t,this.setCustomHeader({resizableData:n})}setCustomHeaderHideData(e,t){let{hideData:n={}}=this.customHeader;e.forEach(e=>{n[e]=t}),this.setCustomHeader({hideData:n}),this.ctx.emit(`resetHeader`)}setCustomHeaderFixedData(e,t){let{fixedData:n={}}=this.customHeader;e.forEach(e=>{n[e]=t}),this.setCustomHeader({fixedData:n}),this.ctx.emit(`resetHeader`)}clearCustomHeaderInvalidValues(e){let t=(e,n={})=>{e.forEach(e=>{e.children&&e.children.length>0&&t(e.children,n);let r=(t,r)=>{var i;let a=this.customHeader[t]?.[e.key];a!==void 0&&a!==r&&(n[t]||(n[t]={}),n[t][e.key]=a,t===`fixedData`&&!a&&!r&&((i=n[t])==null||delete i[e.key]))};r(`fixedData`,e.fixed),r(`sortData`,e.sort),r(`hideData`,e.hide),r(`resizableData`,e.width)})},n={};return t(e,n),n}setMaxRowHeightItem(e,t,n){this.maxRowHeightCellMap.set(e,{key:t,height:n})}getMaxRowHeightItem(e){return this.maxRowHeightCellMap.get(e)}clearChangeData(){this.changedDataMap.clear()}}class E{constructor(e){n(this,`ctx`),n(this,`history`,[]),n(this,`historyIndex`,-1),this.ctx=e,this.init()}init(){this.ctx.on(`keydown`,e=>{if(!this.ctx.editing){if(e.ctrlKey&&!e.shiftKey&&e.code===`KeyZ`||e.metaKey&&!e.shiftKey&&e.code===`KeyZ`){e.preventDefault(),this.ctx.clearSelector(),this.ctx.clearAutofill(),this.backState();return}if(e.ctrlKey&&e.code===`KeyY`||e.ctrlKey&&e.shiftKey&&e.code===`KeyZ`||e.metaKey&&e.shiftKey&&e.code===`KeyZ`){e.preventDefault(),this.ctx.clearSelector(),this.ctx.clearAutofill(),this.forwardState();return}}})}pushState(e){let{HISTORY_NUM:t=0,ENABLE_HISTORY:n}=this.ctx.config;n&&(this.history.push(e),this.history.length>t&&this.history.splice(0,1),this.historyIndex=this.history.length-1)}backState(){if(this.historyIndex>=0){let{changeList:e,scrollX:t,scrollY:n}=this.history[this.historyIndex],r=e.map(e=>({rowKey:e.rowKey,key:e.key,value:e.oldValue,row:{}}));this.ctx.setScroll(t,n),this.ctx.database.batchSetItemValue(r,!1,!1,`back`),--this.historyIndex}}forwardState(){if(this.historyIndex<this.history.length-1){this.historyIndex+=1;let{changeList:e}=this.history[this.historyIndex],t=e.map(e=>({rowKey:e.rowKey,key:e.key,value:e.newValue,row:{}}));this.ctx.database.batchSetItemValue(t,!1,!1,`forward`)}}clear(){this.history=[],this.historyIndex=-1}}class ee{constructor(e){n(this,`eventTasks`,new Set),n(this,`ctx`),this.ctx=e,this.init()}init(){this.bind(window,`resize`,this.handleResize.bind(this)),this.bind(window,`mouseup`,this.handleMouseUp.bind(this)),this.bind(window,`mousemove`,this.handleMousemove.bind(this)),this.bind(window,`blur`,this.handleOutsideMousedown.bind(this)),this.bind(window,`mousedown`,this.handleOutsideMousedown.bind(this)),this.bind(this.ctx.stageElement,`click`,this.handleClick.bind(this)),this.bind(window,`keydown`,this.handleKeydown.bind(this)),this.bind(this.ctx.stageElement,`wheel`,this.handleWheel.bind(this),{passive:!1}),this.bind(this.ctx.stageElement,`touchstart`,this.handleTouchstart.bind(this),{passive:!1}),this.bind(this.ctx.stageElement,`touchend`,this.handleTouchend.bind(this)),this.bind(this.ctx.stageElement,`touchmove`,this.handleTouchmove.bind(this),{passive:!1}),this.bind(this.ctx.stageElement,`contextmenu`,this.handleContextMenu.bind(this)),this.bind(this.ctx.stageElement,`mousedown`,this.handleMouseDown.bind(this)),this.bind(this.ctx.stageElement,`dblclick`,this.handleDblclick.bind(this)),this.bind(this.ctx.stageElement,`mouseover`,this.handleMouseover.bind(this)),this.bind(this.ctx.stageElement,`mouseout`,this.handleMouseout.bind(this)),this.bind(document,`selectionchange`,this.selectionchange.bind(this))}selectionchange(){this.ctx.domSelectionStr=``;let e=window.getSelection();e&&e.toString()&&(this.ctx.domSelectionStr=e.toString())}clearDomSelection(){let e=window.getSelection();e&&!e.isCollapsed&&e.removeAllRanges()}destroy(){Array.from(this.eventTasks).forEach(({target:e,name:t,fn:n,options:r})=>{this.unbind(e,t,n,r)}),this.eventTasks.clear()}handleResize(e){this.ctx.emit(`resetHeader`,e),this.ctx.emit(`resize`,e)}handleMouseDown(e){this.clearDomSelection(),e.button===0&&(this.ctx.mousedown=!0),this.ctx.emit(`mousedown`,e)}handleMousemove(e){let t=e,n=this.ctx.containerElement.getBoundingClientRect(),r=t.clientX-n.left,i=t.clientY-n.top;this.ctx.mouseX=r,this.ctx.mouseY=i,this.ctx.emit(`mousemove`,e)}handleMouseUp(e){e.button===0&&(this.ctx.mousedown=!1),this.ctx.emit(`mouseup`,e)}handleClick(e){this.ctx.emit(`click`,e)}handleKeydown(e){let{ENABLE_KEYBOARD:t}=this.ctx.config;t&&this.ctx.isTarget(e)&&(this.ctx.dragHeaderIng||this.ctx.emit(`keydown`,e))}handleWheel(e){this.ctx.emit(`wheel`,e)}handleTouchstart(e){this.ctx.emit(`touchstart`,e)}handleTouchend(e){this.ctx.emit(`touchend`,e)}handleTouchmove(e){this.ctx.emit(`touchmove`,e)}handleContextMenu(e){e.preventDefault(),this.ctx.emit(`contextMenu`,e)}handleMouseover(e){this.ctx.isMouseoverTargetContainer=!0,this.ctx.emit(`mouseover`,e)}handleMouseout(e){this.ctx.isMouseoverTargetContainer=!1,this.ctx.emit(`mouseout`,e)}handleDblclick(e){this.ctx.emit(`dblclick`,e)}handleOutsideMousedown(e){this.ctx.selector.enable&&(e.target instanceof Window||e.target instanceof Node&&!this.ctx.containerElement.contains(e.target))&&this.ctx.emit(`outsideMousedown`,e)}bind(e,t,n,r){e.addEventListener(t,n,r),this.eventTasks.add({target:e,name:t,fn:n,options:r})}unbind(e,t,n,r){e.removeEventListener(t,n,r);for(let r of this.eventTasks)if(r.target===e&&r.name===t&&r.fn===n){this.eventTasks.delete(r);break}}}class D{constructor(){n(this,`events`,new Map)}has(e){return this.events.has(e)}on(e,t){let n=this.events.get(e)||[];n.push(t),this.events.set(e,n)}once(e,t){let n=(...r)=>{t(...r),this.off(e,n)};return this.on(e,n),this}off(e,t){let n=this.events.get(e);if(n){let r=n.indexOf(t);r>=0&&(n.splice(r,1),n.length===0?this.events.delete(e):this.events.set(e,n))}}emit(e,...t){let n=this.events.get(e);n&&n.forEach(e=>{e(...t)})}destroy(){this.events.clear()}}class te{constructor(e){n(this,`ctx`),n(this,`textCacheMap`,new Map);let t=e.getContext(`2d`);if(!t)throw Error(`canvas context not found`);this.ctx=t}clearTextCache(){this.textCacheMap.clear()}scale(e){this.ctx.setTransform(1,0,0,1,0,0),this.ctx.scale(e,e)}save(){this.ctx.save()}restore(){this.ctx.restore()}translate(e,t){this.ctx.translate(e,t)}setCursor(e=`default`){this.ctx.canvas.style.cursor=e}clear(e=0,t=0,n,r){this.ctx.clearRect(e,t,n||this.ctx.canvas.width,r||this.ctx.canvas.height)}drawShadow(e,t,n,r,i){let{fillColor:a,side:o,shadowWidth:s,colorStart:c,colorEnd:l}=i;this.ctx.save(),a&&(this.ctx.fillStyle=a,this.ctx.fillRect(e,t,n,r));let u;switch(o){case`left`:u=this.ctx.createLinearGradient(e-s,t,e,t),u.addColorStop(0,c),u.addColorStop(1,l),this.ctx.fillStyle=u,this.ctx.fillRect(e-s,t,s,r);break;case`right`:u=this.ctx.createLinearGradient(e+n,t,e+n+s,t),u.addColorStop(0,c),u.addColorStop(1,l),this.ctx.fillStyle=u,this.ctx.fillRect(e+n,t,s,r);break;case`top`:u=this.ctx.createLinearGradient(e,t-s,e,t),u.addColorStop(0,c),u.addColorStop(1,l),this.ctx.fillStyle=u,this.ctx.fillRect(e,t-s,n,s);break;case`bottom`:u=this.ctx.createLinearGradient(e,t+r,e,t+r+s),u.addColorStop(0,c),u.addColorStop(1,l),this.ctx.fillStyle=u,this.ctx.fillRect(e,t+r,n,s);break;default:console.error(`Invalid side specified for shadow`);break}this.ctx.restore()}drawLine(e,t){if(e.length<4||e.length%2!=0)throw Error(`A valid array of points is required to draw a line`);this.ctx.save();let{borderColor:n=`black`,borderWidth:r=1}=t;this.ctx.beginPath(),this.ctx.moveTo(e[0]-.5,e[1]-.5);for(let t=2;t<e.length;t+=2)this.ctx.lineTo(e[t]-.5,e[t+1]-.5);this.ctx.strokeStyle=n,this.ctx.lineWidth=r,t.lineDash&&(this.ctx.lineDashOffset=t.lineDashOffset??0,this.ctx.setLineDash(t.lineDash)),t.fillColor&&(this.ctx.fillStyle=t.fillColor,this.ctx.fill()),t.borderColor&&(this.ctx.strokeStyle=t.borderColor),this.ctx.stroke(),this.ctx.closePath(),this.ctx.restore()}drawImage(e,t,n,r,i){this.ctx.save(),this.ctx.drawImage(e,t,n,r,i),this.ctx.restore()}drawRect(e,t,n,r,{borderWidth:i=1,borderColor:a,fillColor:o,radius:s=0}={}){if(this.ctx.save(),this.ctx.beginPath(),o!==void 0&&(this.ctx.fillStyle=o),a!==void 0&&(this.ctx.lineWidth=i,this.ctx.strokeStyle=a),s===0)this.ctx.rect(e-.5,t-.5,n,r);else{let[i,a,o,c]=typeof s==`number`?[s,s,s,s]:s;this.ctx.moveTo(e+i,t),this.ctx.arcTo(e+n,t,e+n,t+a,a),this.ctx.arcTo(e+n,t+r,e+n-o,t+r,o),this.ctx.arcTo(e,t+r,e,t+r-c,c),this.ctx.arcTo(e,t,e+i,t,i)}o!==void 0&&this.ctx.fill(),a!==void 0&&this.ctx.stroke(),this.ctx.restore()}drawText(e=``,t,n,r,i,a={}){this.ctx.save();let{font:o=`12px Arial`,align:s=`center`,color:c=`#495060`,padding:l=0,verticalAlign:u=`middle`,maxLineClamp:d=1,autoRowHeight:f=!1,offsetLeft:p=0,offsetRight:m=0}=a;if(this.ctx.font=o,this.ctx.fillStyle=c,this.ctx.textAlign=s,[``,null,void 0].includes(e))return this.ctx.restore(),!1;let h=parseInt(o.match(/\d+/)?.[0]||`12`)*(a.lineHeight||1.2),g=r-l*2-p-m,_=!1,v=Math.round((i-2*l)/h),y=this.wrapText(e,g,a.cacheTextKey),b=Math.min(y.length,Math.max(v,1));d===`auto`&&f?b=y.length:typeof d==`number`&&d<b&&d!==1?b=d:(d===1&&(y=[e],b=1),d===`auto`&&v===1&&(y=[e],b=1));let x=n+l,S=Math.round(b*h);u===`middle`?x=n+(i-S)/2:u===`bottom`&&(x=n+i-S-l);let C=t+l+p;s===`center`?C=t+r/2:s===`right`&&(C=t+r-l-m);for(let e=0;e<y.length;e++){let t=y[e],n=x+e*h;if(this.ctx.textBaseline=`top`,e===b-1){let t=y.slice(e).join(``),{_text:i,ellipsis:a}=this.handleEllipsis(t,r,l,o);this.ctx.fillText(i,C,n),_=a;break}this.ctx.fillText(t,C,n)}if(a.textCallback&&y.length){let e=y.reduce((e,t)=>Math.max(e,this.ctx.measureText(t).width),0),t=Math.round(e),n=C,r=C+t;s===`center`?(n=C-t/2,r=C+t/2):s===`right`&&(n=C-t,r=C);let i={x:C,y:x,width:t,height:S,left:n,right:r,top:x,bottom:x+S};a.textCallback(i)}return this.ctx.restore(),_}wrapText(e,t,n=``){if(!e)return[``];if(n&&this.textCacheMap.has(n))return this.textCacheMap.get(n)||[``];let r=[],i=e.split(`
|
|
4
|
+
`);for(let e of i){if(e===``){r.push(``);continue}let n=e.split(``),i=``;for(let e of n){let n=i+e;this.ctx.measureText(n).width<=t?i=n:i?(r.push(i),i=e):(r.push(e),i=``)}i&&r.push(i)}let a=r.length>0?r:[``];return n&&this.textCacheMap.set(n,a),a}calculateTextHeight(e=``,t,n={}){let{font:r=`12px Arial`,padding:i=0,align:a=`center`,color:o=`#495060`,maxLineClamp:s=1,cacheTextKey:c=``}=n;this.ctx.save(),this.ctx.font=r,this.ctx.fillStyle=o,this.ctx.textAlign=a;let l=parseInt(r.match(/\d+/)?.[0]||`12`),u=l*(n.lineHeight||1.2),d=t-i*2,f=this.wrapText(e,d,c),p=1;return p=s===`auto`?f.length:f.length>s?s:f.length,this.ctx.restore(),Math.max(Math.floor(p*u+i*2),Math.floor(l+i*2))}handleEllipsis(e,t,n=0,r=`12px Arial`){this.ctx.save();let i=!1,a=e;if(this.ctx.font=r,e==null||e===``)return this.ctx.restore(),{_text:``,ellipsis:i};let o=this.ctx.measureText(`...`).width;if(t<=o+n*2)return this.ctx.restore(),{_text:``,ellipsis:!0};let s=this.ctx.measureText(e).width,c=t-n*2;if(s&&s>=c){i=!0;let t=0;for(let n=0;n<e.length;n++)if(t+=this.ctx.measureText(e[n]).width,t>=c-o){a=e.slice(0,n)+`...`,i=!0;break}}return this.ctx.restore(),{_text:a,ellipsis:i}}}class O{constructor(e){n(this,`_config`,{}),n(this,`CSS_PREFIX`,`e-virt-table`),n(this,`ICONS`,[]),n(this,`ROW_KEY`,``),n(this,`DISABLED`,!1),n(this,`HEADER_FONT`,`12px normal Arial`),n(this,`BODY_FONT`,`12px normal Arial`),n(this,`BORDER`,!0),n(this,`STRIPE`,!1),n(this,`STRIPE_COLOR`,`#fafafa`),n(this,`BORDER_COLOR`,`#e1e6eb`),n(this,`HEIGHT`,0),n(this,`PLACEHOLDER_COLOR`,`#CDD0DC`),n(this,`EMPTY_BODY_HEIGHT`,120),n(this,`EMPTY_CUSTOM_STYLE`,{}),n(this,`NUMBER_ERROR_TIP`,`只允许输入数字`),n(this,`EMPTY_TEXT`,`暂无数据`),n(this,`LOADING_TEXT`,`加载中...`),n(this,`MAX_HEIGHT`,1e3),n(this,`BORDER_RADIUS`,8),n(this,`ENABLE_OFFSET_HEIGHT`,!1),n(this,`OFFSET_HEIGHT`,0),n(this,`HEADER_HEIGHT`,36),n(this,`ENABLE_HEADER_STICKY`,!1),n(this,`HEADER_BG_COLOR`,`#F8FAFF`),n(this,`BODY_BG_COLOR`,`#FFF`),n(this,`HEADER_TEXT_COLOR`,`#1D2129`),n(this,`REQUIRED_COLOR`,`#F56C6C`),n(this,`BODY_TEXT_COLOR`,`#4E5969`),n(this,`FOOTER_TEXT_COLOR`,`#4E5969`),n(this,`LOADING_ICON_SVG`,``),n(this,`LOADING_ICON_COLOR`,`#4E5969`),n(this,`EXPAND_ICON_SVG`,``),n(this,`SHRINK_ICON_SVG`,``),n(this,`EXPAND_ICON_COLOR`,`#4E5969`),n(this,`SHRINK_ICON_COLOR`,`#4E5969`),n(this,`ERROR_TIP_ICON_COLOR`,`red`),n(this,`ERROR_TIP_ICON_SIZE`,6),n(this,`COLUMNS_ALIGN`,`left`),n(this,`COLUMNS_VERTICAL_ALIGN`,`middle`),n(this,`EXPAND_LAZY`,!0),n(this,`DEFAULT_EXPAND_ALL`,!1),n(this,`CELL_WIDTH`,100),n(this,`CELL_HEIGHT`,36),n(this,`CELL_PADDING`,8),n(this,`CELL_HOVER_ICON_SIZE`,14),n(this,`CELL_HOVER_ICON_BG_COLOR`,`#fff`),n(this,`CELL_HOVER_ICON_BORDER_COLOR`,`#DDE0EA`),n(this,`SCROLLER_TRACK_SIZE`,14),n(this,`SCROLLER_SIZE`,8),n(this,`SCROLLER_COLOR`,`#dee0e3`),n(this,`SCROLLER_TRACK_COLOR`,`#fff`),n(this,`SCROLLER_FOCUS_COLOR`,`#bbbec4`),n(this,`SELECT_BORDER_COLOR`,`rgb(82,146,247)`),n(this,`SELECT_AREA_COLOR`,`rgba(82,146,247,0.1)`),n(this,`SELECT_ROW_COL_BG_COLOR`,`transparent`),n(this,`AUTOFILL_POINT_BORDER_COLOR`,`#fff`),n(this,`EDIT_BG_COLOR`,`#fcf6ed`),n(this,`CHECKBOX_KEY`,``),n(this,`CHECKBOX_COLOR`,`rgb(82,146,247)`),n(this,`FINDER_CELL_BG_COLOR`,`rgb(255,229,144)`),n(this,`ENABLE_FINDER`,!0),n(this,`CHECKBOX_SIZE`,20),n(this,`CHECKBOX_DISABLED_SVG`,``),n(this,`CHECKBOX_DISABLED_COLOR`,`#F1F2F4`),n(this,`CHECKBOX_CHECK_SVG`,``),n(this,`CHECKBOX_UNCHECK_SVG`,``),n(this,`CHECKBOX_UNCHECK_COLOR`,`#DDE0EA`),n(this,`CHECKBOX_INDETERMINATE_SVG`,``),n(this,`CHECKBOX_CHECK_DISABLED_SVG`,``),n(this,`CHECKBOX_CHECK_DISABLED_COLOR`,`#DDE0EA`),n(this,`ICON_EDIT_SVG`,``),n(this,`ICON_EDIT_COLOR`,`#4E5969`),n(this,`ICON_SELECT_SVG`,``),n(this,`ICON_SELECT_COLOR`,`#4E5969`),n(this,`SORT_STRICTLY`,!0),n(this,`SORT_ASC_ICON_SVG`,``),n(this,`SORT_DESC_ICON_SVG`,``),n(this,`SORTABLE_ICON_SVG`,``),n(this,`SORT_ICON_COLOR`,`rgb(82,146,247)`),n(this,`READONLY_COLOR`,`#fff`),n(this,`READONLY_TEXT_COLOR`,`#4E5969`),n(this,`ERROR_TIP_COLOR`,`#ED3F14`),n(this,`FOOTER_BG_COLOR`,`#fafafa`),n(this,`FOOTER_FIXED`,!0),n(this,`FOOTER_POSITION`,`bottom`),n(this,`CELL_FOOTER_HEIGHT`,36),n(this,`ENABLE_SELECTOR`,!0),n(this,`TREE_SELECT_MODE`,`auto`),n(this,`TREE_CHILDREN_KEY`,`children`),n(this,`TREE_INDENT`,20),n(this,`TREE_ICON_SIZE`,20),n(this,`TREE_LINE`,!1),n(this,`TREE_LINE_COLOR`,`#e1e6eb`),n(this,`ENABLE_EDIT_SINGLE_CLICK`,!1),n(this,`ENABLE_EDIT_CLICK_SELECTOR`,!0),n(this,`SELECTOR_AREA_MIN_X`,0),n(this,`SELECTOR_AREA_MAX_X_OFFSET`,0),n(this,`SELECTOR_AREA_MAX_X`,0),n(this,`SELECTOR_AREA_MIN_Y`,0),n(this,`SELECTOR_AREA_MAX_Y`,0),n(this,`SELECTOR_AREA_MAX_Y_OFFSET`,0),n(this,`SELECTOR_CELL_VALUE_TYPE`,`value`),n(this,`ENABLE_AUTO_THEME`,!0),n(this,`ENABLE_SELECTOR_SINGLE`,!1),n(this,`ENABLE_SELECTOR_SPAN_COL`,!0),n(this,`ENABLE_SELECTOR_SPAN_ROW`,!0),n(this,`ENABLE_SELECTOR_ALL_ROWS`,!0),n(this,`ENABLE_SELECTOR_ALL_COLS`,!0),n(this,`ENABLE_MERGE_CELL_LINK`,!1),n(this,`ENABLE_AUTOFILL`,!1),n(this,`ENABLE_AUTOFILL_SPAN_COL`,!0),n(this,`ENABLE_AUTOFILL_SPAN_ROW`,!0),n(this,`ENABLE_CONTEXT_MENU`,!1),n(this,`ENABLE_HEADER_CONTEXT_MENU`,!1),n(this,`ENABLE_COPY`,!0),n(this,`ENABLE_PASTER`,!0),n(this,`ENABLE_RESIZE_ROW`,!0),n(this,`ENABLE_RESIZE_COLUMN`,!0),n(this,`RESIZE_ROW_LINE_COLOR`,`#e1e6eb`),n(this,`RESIZE_COLUMN_LINE_COLOR`,`#e1e6eb`),n(this,`ENABLE_RESIZE_COLUMN_TEXT`,!0),n(this,`RESIZE_COLUMN_TEXT_COLOR`,`#fff`),n(this,`RESIZE_COLUMN_TEXT_BG_COLOR`,`rgb(82,146,247)`),n(this,`RESIZE_ROW_MIN_HEIGHT`,36),n(this,`RESIZE_COLUMN_MIN_WIDTH`,40),n(this,`DRAG_TIP_BG_COLOR`,`rgba(82,146,247,0.1)`),n(this,`DRAG_TIP_LINE_COLOR`,`rgb(82,146,247)`),n(this,`ENABLE_KEYBOARD`,!0),n(this,`ENABLE_HISTORY`,!1),n(this,`ENABLE_VALIDATOR_IMMEDIATE`,!0),n(this,`HISTORY_NUM`,50),n(this,`HIGHLIGHT_HOVER_ROW`,!1),n(this,`HIGHLIGHT_HOVER_ROW_COLOR`,`rgba(186,203,231,0.1)`),n(this,`HIGHLIGHT_SELECTED_ROW`,!1),n(this,`HIGHLIGHT_SELECTED_ROW_COLOR`,`rgba(82,146,247,0.1)`),n(this,`TOOLTIP_BG_COLOR`,`#303133`),n(this,`TOOLTIP_TEXT_COLOR`,`#fff`),n(this,`TOOLTIP_ZINDEX`,3e3),n(this,`TOOLTIP_CUSTOM_STYLE`,{}),n(this,`CONTEXT_MENU`,[{label:`复制`,value:`copy`},{label:`剪切`,value:`cut`},{label:`粘贴`,value:`paste`},{label:`清空选中内容`,value:`clearSelected`}]),n(this,`CUSTOM_BODY_CONTEXT_MENU`,[]),n(this,`HEADER_CONTEXT_MENU`,[{label:`左固定`,value:`fixedLeft`},{label:`右固定`,value:`fixedRight`},{label:`取消固定`,value:`fixedNone`},{label:`隐藏`,value:`hide`},{label:`显示`,value:`visible`},{label:`恢复默认`,value:`resetHeader`}]),n(this,`CUSTOM_HEADER_CONTEXT_MENU`,[]),n(this,`CELL_LINE_HEIGHT`,1.3),n(this,`AUTO_ROW_HEIGHT`,!1),n(this,`ENABLE_DRAG_COLUMN`,!1),n(this,`HEADER_CELL_STYLE_METHOD`),n(this,`BODY_CELL_STYLE_METHOD`),n(this,`FOOTER_CELL_STYLE_METHOD`),n(this,`BODY_CELL_READONLY_METHOD`),n(this,`BODY_CELL_FORMATTER_METHOD`),n(this,`BODY_CELL_RULES_METHOD`),n(this,`BODY_CELL_TYPE_METHOD`),n(this,`BODY_CELL_EDITOR_METHOD`),n(this,`BODY_CELL_RENDER_METHOD`),n(this,`BODY_CELL_HOVER_ICON_METHOD`),n(this,`SPAN_METHOD`),n(this,`SELECTABLE_METHOD`),n(this,`EXPAND_LAZY_METHOD`),n(this,`BEFORE_VALUE_CHANGE_METHOD`),n(this,`BEFORE_PASTE_DATA_METHOD`),n(this,`BEFORE_AUTOFILL_DATA_METHOD`),n(this,`BEFORE_SET_SELECTOR_METHOD`),n(this,`BEFORE_SET_AUTOFILL_METHOD`),n(this,`BEFORE_HEADER_CONTEXT_MENU_METHOD`),n(this,`BEFORE_BODY_CONTEXT_MENU_METHOD`),n(this,`BEFORE_COPY_METHOD`),this._config=e,this.updateCssVar()}init(e){this._config=e,this.updateCssVar()}updateCssVar(){let e={};Object.keys(this).forEach(t=>{if(t.endsWith(`_COLOR`)||t.endsWith(`_FONT`)){let n=b(`--evt-${t.toLocaleLowerCase().replace(/_/g,`-`)}`);n&&(e[t]=n)}}),Object.assign(this,e,this._config)}}let ne=`<svg t="1724122015492" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4237" width="32" height="32"><path d="M401.472 316.992l159.04 217.664L591.488 512l-30.976-22.656-159.04 217.728q-2.24 3.008-3.84 6.464-1.6 3.456-2.496 7.104-0.896 3.648-1.024 7.424-0.192 3.84 0.384 7.552 0.64 3.712 1.92 7.296 1.28 3.52 3.2 6.784 1.984 3.2 4.544 6.016 2.56 2.752 5.632 4.992 3.072 2.24 6.464 3.84 3.456 1.6 7.168 2.496 3.648 0.896 7.424 1.024 3.776 0.192 7.488-0.448 3.776-0.576 7.296-1.856 3.584-1.28 6.784-3.264 3.2-1.92 6.016-4.48 2.816-2.56 5.056-5.632l159.04-217.728q3.584-4.928 5.504-10.752 1.92-5.76 1.92-11.904 0-6.08-1.92-11.904-1.92-5.76-5.504-10.752L463.488 271.68q-2.24-3.072-5.056-5.632-2.752-2.56-6.016-4.48-3.2-1.984-6.784-3.328-3.52-1.28-7.296-1.856-3.712-0.576-7.488-0.448-3.84 0.192-7.424 1.088-3.712 0.896-7.168 2.496-3.392 1.6-6.4 3.84-3.136 2.176-5.696 4.992-2.56 2.752-4.48 6.016-1.984 3.2-3.264 6.784-1.28 3.52-1.92 7.296-0.576 3.712-0.384 7.488 0.128 3.84 1.024 7.488 0.896 3.648 2.496 7.04 1.6 3.456 3.84 6.528z m30.976-61.056q-3.776 0-7.488 0.704-3.712 0.768-7.168 2.24-3.52 1.408-6.656 3.52-3.2 2.112-5.824 4.8-2.688 2.624-4.8 5.76-2.112 3.2-3.52 6.656-1.472 3.52-2.176 7.232-0.768 3.712-0.768 7.488 0 3.776 0.768 7.488 0.704 3.712 2.176 7.232 1.408 3.456 3.52 6.592 2.112 3.2 4.8 5.824 2.688 2.688 5.76 4.8 3.2 2.112 6.72 3.52 3.456 1.472 7.168 2.176 3.712 0.768 7.488 0.768 3.84 0 7.488-0.768 3.712-0.704 7.232-2.176 3.456-1.408 6.592-3.52 3.2-2.112 5.824-4.8 2.688-2.688 4.8-5.76 2.112-3.2 3.52-6.656 1.472-3.52 2.24-7.232 0.704-3.712 0.704-7.488 0-3.84-0.704-7.488-0.768-3.712-2.24-7.232-1.408-3.456-3.52-6.592-2.112-3.2-4.8-5.824-2.624-2.688-5.76-4.8-3.2-2.112-6.656-3.52-3.52-1.472-7.232-2.24Q436.224 256 432.448 256z m0 435.392q-3.776 0-7.488 0.704-3.712 0.768-7.168 2.176-3.52 1.472-6.656 3.584-3.2 2.112-5.824 4.736-2.688 2.688-4.8 5.824-2.112 3.2-3.52 6.656-1.472 3.52-2.176 7.232-0.768 3.712-0.768 7.488 0 3.776 0.768 7.488 0.704 3.712 2.176 7.168 1.408 3.52 3.52 6.656 2.112 3.2 4.8 5.76 2.688 2.752 5.76 4.8 3.2 2.112 6.72 3.584 3.456 1.472 7.168 2.176 3.712 0.768 7.488 0.768 3.84 0 7.488-0.768 3.712-0.704 7.232-2.176 3.456-1.472 6.592-3.584 3.2-2.048 5.824-4.736 2.688-2.688 4.8-5.824 2.112-3.2 3.52-6.656 1.472-3.456 2.24-7.168 0.704-3.712 0.704-7.488 0-3.84-0.704-7.488-0.768-3.712-2.24-7.232-1.408-3.52-3.52-6.656-2.112-3.136-4.8-5.76-2.624-2.688-5.76-4.8-3.2-2.112-6.656-3.584-3.52-1.408-7.232-2.176-3.712-0.704-7.488-0.704z" p-id="4238"></path></svg>`,k=`<svg t="1722595535853" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4551" width="32" height="32"><path d="M640 128H384c-170.496 0-256 85.504-256 256v256c0 170.496 85.504 256 256 256h256c170.496 0 256-85.504 256-256V384c0-170.496-85.504-256-256-256z m67.584 302.592c-2.048 4.608-4.608 8.704-8.192 12.288L506.88 634.88c-3.584 3.584-7.68 6.144-12.288 8.192-4.608 2.048-9.728 3.072-14.848 3.072s-10.24-1.024-14.848-3.072c-4.608-2.048-8.704-4.608-12.288-8.192l-96.256-96.256c-3.584-3.584-6.144-7.68-8.192-12.288-2.048-4.608-3.072-9.728-3.072-14.848 0-2.56 0-5.12 1.024-7.68 0.512-2.56 1.024-5.12 2.048-7.168 1.024-2.56 2.048-4.608 3.584-6.656 1.536-2.048 3.072-4.096 4.608-5.632 1.536-2.048 3.584-3.584 5.632-4.608 2.048-1.536 4.096-2.56 6.656-3.584 2.56-1.024 4.608-1.536 7.168-2.048 2.56-0.512 5.12-0.512 7.68-0.512 5.12 0 10.24 1.024 14.848 3.072 4.608 2.048 8.704 4.608 12.288 8.192l69.12 68.608L645.12 389.12c3.584-3.584 7.68-6.144 12.288-8.192 4.608-2.048 9.728-3.072 14.848-3.072 2.56 0 5.12 0 7.68 0.512s5.12 1.024 7.168 2.048c2.56 1.024 4.608 2.048 6.656 3.584 2.048 1.536 4.096 3.072 5.632 4.608 1.536 1.536 3.584 3.584 4.608 5.632 1.536 2.048 2.56 4.096 3.584 6.656 1.024 2.56 1.536 4.608 2.048 7.168 0.512 2.56 1.024 5.12 1.024 7.68 0 5.12-1.024 10.24-3.072 14.848z" p-id="4552"></path></svg>`,re=`<svg t="1724122044148" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4551" width="32" height="32"><path d="M707.648 401.28L489.28 560.704l22.656 30.976 22.656-30.976L316.16 401.216q-3.072-2.24-6.464-3.84-3.456-1.536-7.104-2.432-3.712-0.896-7.488-1.088-3.776-0.128-7.488 0.448-3.776 0.64-7.296 1.92-3.584 1.28-6.784 3.2-3.2 1.984-6.016 4.544-2.816 2.56-5.056 5.632-2.176 3.072-3.84 6.464-1.536 3.456-2.432 7.104-0.896 3.712-1.088 7.488-0.128 3.776 0.448 7.488 0.64 3.776 1.92 7.296 1.28 3.584 3.2 6.784 1.984 3.2 4.544 6.016 2.56 2.752 5.632 4.992l218.368 159.552q4.928 3.584 10.752 5.504 5.76 1.92 11.904 1.92 6.08 0 11.904-1.92 5.76-1.92 10.752-5.504l218.368-159.552q3.008-2.24 5.568-4.992 2.56-2.816 4.544-6.016 1.92-3.2 3.264-6.784 1.28-3.52 1.92-7.296 0.576-3.712 0.384-7.488-0.128-3.84-1.024-7.488-0.896-3.648-2.496-7.04-1.6-3.456-3.84-6.528-2.24-3.072-4.992-5.632-2.816-2.56-6.016-4.48-3.2-1.984-6.784-3.328-3.584-1.28-7.296-1.856-3.712-0.64-7.488-0.448-3.84 0.192-7.488 1.088-3.648 0.896-7.04 2.496-3.456 1.536-6.528 3.84z m61.056 30.976q0-3.84-0.768-7.488-0.704-3.712-2.176-7.232-1.472-3.456-3.52-6.656-2.112-3.136-4.8-5.76-2.688-2.688-5.76-4.8-3.2-2.112-6.72-3.584-3.456-1.408-7.168-2.176-3.712-0.704-7.488-0.704-3.84 0-7.488 0.704-3.712 0.768-7.232 2.176-3.456 1.472-6.656 3.584-3.136 2.112-5.76 4.8-2.688 2.624-4.8 5.76-2.112 3.2-3.584 6.656-1.408 3.52-2.176 7.232-0.704 3.712-0.704 7.488 0 3.776 0.704 7.488 0.768 3.712 2.176 7.168 1.472 3.52 3.584 6.656 2.112 3.2 4.8 5.824 2.624 2.688 5.76 4.8 3.2 2.112 6.656 3.52 3.52 1.472 7.232 2.176 3.712 0.768 7.488 0.768 3.776 0 7.488-0.768 3.712-0.704 7.168-2.176 3.52-1.408 6.656-3.52 3.2-2.112 5.824-4.8 2.688-2.688 4.8-5.76 2.048-3.2 3.52-6.72 1.472-3.456 2.176-7.168 0.768-3.712 0.768-7.488z m-436.736 0q0-3.84-0.768-7.488-0.704-3.712-2.176-7.232-1.408-3.456-3.52-6.656-2.112-3.136-4.8-5.76-2.688-2.688-5.76-4.8-3.2-2.112-6.656-3.584-3.52-1.408-7.232-2.176-3.712-0.704-7.488-0.704-3.84 0-7.488 0.704-3.712 0.768-7.232 2.176-3.456 1.472-6.592 3.584-3.2 2.112-5.824 4.8-2.688 2.624-4.8 5.76-2.112 3.2-3.52 6.656-1.472 3.52-2.24 7.232-0.704 3.712-0.704 7.488 0 3.776 0.704 7.488 0.768 3.712 2.24 7.168 1.408 3.52 3.52 6.656 2.112 3.2 4.8 5.824 2.624 2.688 5.76 4.8 3.2 2.112 6.656 3.52 3.52 1.472 7.232 2.176 3.712 0.768 7.488 0.768 3.776 0 7.488-0.768 3.712-0.704 7.232-2.176 3.456-1.408 6.592-3.52 3.2-2.112 5.824-4.8 2.688-2.688 4.8-5.76 2.112-3.2 3.52-6.72 1.472-3.456 2.176-7.168 0.768-3.712 0.768-7.488z" p-id="4552"></path></svg>`,A=`<svg t="1755138507987" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5079" width="200" height="200"><path d="M512 938.688a42.688 42.688 0 0 1-35.072-18.432l-192-277.312A42.56 42.56 0 0 1 320 576h384a42.752 42.752 0 0 1 35.072 66.944l-192 277.312a42.688 42.688 0 0 1-35.072 18.432" fill="currentColor" p-id="2016"></path><path d="M704 448H320a42.752 42.752 0 0 1-35.072-66.944l192-277.312c16-23.04 54.208-23.04 70.144 0l192 277.312A42.56 42.56 0 0 1 704 448" fill="currentColor" p-id="2015"></path></svg>`,ie=A.replace(`fill="currentColor" p-id="2016"`,`fill="#bec4c7" p-id="2016"`),ae=A.replace(`fill="currentColor" p-id="2015"`,`fill="#bec4c7" p-id="2015"`);class oe{constructor(e){n(this,`ctx`),n(this,`list`,[{name:`loading`,configName:`LOADING_ICON_SVG`,configColorName:`LOADING_ICON_COLOR`,svg:`<svg t="1724133395728" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2893" width="32" height="32"><path d="M512 226.8476541a19.82487759 19.82487759 0 0 1 14.66497778 5.70304692c3.80203107 3.82918865 5.70304692 8.71751457 5.70304693 14.66497779v122.20814825a19.82487759 19.82487759 0 0 1-5.70304693 14.66497778 19.82487759 19.82487759 0 0 1-14.66497778 5.70304691 19.82487759 19.82487759 0 0 1-14.66497778-5.70304691 19.82487759 19.82487759 0 0 1-5.70304693-14.66497778v-122.20814825a19.82487759 19.82487759 0 0 1 5.70304693-14.66497779 19.82487759 19.82487759 0 0 1 14.66497778-5.70304692z m0 407.36049415a19.82487759 19.82487759 0 0 1 14.66497778 5.70304691c3.80203107 3.82918865 5.70304692 8.71751457 5.70304693 14.66497778v122.20814827a19.82487759 19.82487759 0 0 1-5.70304693 14.66497776 19.82487759 19.82487759 0 0 1-14.66497778 5.70304693 19.82487759 19.82487759 0 0 1-14.66497778-5.70304693 19.82487759 19.82487759 0 0 1-5.70304693-14.66497776v-122.20814827a19.82487759 19.82487759 0 0 1 5.70304693-14.66497778 19.82487759 19.82487759 0 0 1 14.66497778-5.70304691zM797.1523459 512a19.82487759 19.82487759 0 0 1-5.70304692 14.66497778 19.82487759 19.82487759 0 0 1-14.66497779 5.70304693h-122.20814825a19.82487759 19.82487759 0 0 1-14.66497778-5.70304693 19.82487759 19.82487759 0 0 1-5.70304691-14.66497778 19.82487759 19.82487759 0 0 1 5.70304691-14.66497778 19.82487759 19.82487759 0 0 1 14.66497778-5.70304693h122.20814825a19.82487759 19.82487759 0 0 1 14.66497779 5.70304693c3.80203107 3.82918865 5.70304692 8.71751457 5.70304692 14.66497778z m-407.36049415 0a19.82487759 19.82487759 0 0 1-5.70304691 14.66497778 19.82487759 19.82487759 0 0 1-14.66497778 5.70304693h-122.20814827a19.82487759 19.82487759 0 0 1-14.66497776-5.70304693 19.82487759 19.82487759 0 0 1-5.70304693-14.66497778 19.82487759 19.82487759 0 0 1 5.70304693-14.66497778 19.82487759 19.82487759 0 0 1 14.66497776-5.70304693h122.20814827a19.82487759 19.82487759 0 0 1 14.66497778 5.70304693c3.80203107 3.82918865 5.70304692 8.71751457 5.70304691 14.66497778zM310.22076878 310.22076878a21.29137537 21.29137537 0 0 1 14.66497779-5.70304693c5.51294514 0 10.18401235 1.90101585 14.01320099 5.70304693l86.55052591 86.57768347a20.91117183 20.91117183 0 0 1 5.73020449 14.31193182 19.28172983 19.28172983 0 0 1-6.05609289 14.013201 19.11878565 19.11878565 0 0 1-14.013201 6.05609289 20.96548698 20.96548698 0 0 1-14.31193182-5.70304692L310.22076878 338.87178998a19.06447114 19.06447114 0 0 1-5.70304693-14.01320099c0-5.54010272 1.90101585-10.42842865 5.70304693-14.66497778z m288.32975775 288.32975775a19.79772001 19.79772001 0 0 1 14.3390894-6.35482371c5.29568642 0 10.04822572 2.11827457 14.31193182 6.38198066l86.57768347 86.55052651c3.80203107 3.80203107 5.70304692 8.47309828 5.70304691 14.01320102a19.55330372 19.55330372 0 0 1-6.05609225 14.31193182 19.66193339 19.66193339 0 0 1-14.31193245 6.05609288 19.01015661 19.01015661 0 0 1-14.01320099-5.70304692l-86.55052591-86.57768347a19.79772001 19.79772001 0 0 1-6.38198129-14.31193245c0-5.29568642 2.11827457-10.07538268 6.38198129-14.33908939zM713.77923122 310.22076878c3.80203107 4.26370672 5.70304692 9.15203265 5.70304693 14.66497779s-1.90101585 10.18401235-5.70304693 14.01320099l-86.57768347 86.55052591a20.91117183 20.91117183 0 0 1-14.31193182 5.73020449 19.28172983 19.28172983 0 0 1-14.013201-6.05609289 19.11878565 19.11878565 0 0 1-6.05609289-14.013201c0-5.29568642 1.90101585-10.07538268 5.70304692-14.31193182l86.57768348-86.57768347c3.80203107-3.80203107 8.50025585-5.70304692 14.01320099-5.70304693 5.54010272 0 10.40127108 1.90101585 14.66497779 5.70304693zM425.44947347 598.57768347a19.79772001 19.79772001 0 0 1 6.35482371 14.33908939c0 5.29568642-2.11827457 10.04822572-6.38198066 14.31193245L338.89894756 713.77923122a19.06447114 19.06447114 0 0 1-14.01320099 5.70304693 19.55330372 19.55330372 0 0 1-14.31193245-6.05609227 19.68909035 19.68909035 0 0 1-6.05609227-14.31193245 19.01015661 19.01015661 0 0 1 5.70304693-14.01320099l86.57768347-86.55052591a19.79772001 19.79772001 0 0 1 14.31193182-6.38198129c5.29568642 0 10.07538268 2.11827457 14.3390894 6.38198129z" fill="#000000" fill-opacity=".65" p-id="2894"></path></svg>`,color:`#4E5969`},{name:`expand`,configName:`EXPAND_ICON_SVG`,configColorName:`EXPAND_ICON_COLOR`,svg:ne,color:`#4E5969`},{name:`shrink`,configName:`SHRINK_ICON_SVG`,configColorName:`SHRINK_ICON_COLOR`,svg:re,color:`#4E5969`},{name:`checkbox-uncheck`,configName:`CHECKBOX_UNCHECK_SVG`,configColorName:`CHECKBOX_UNCHECK_COLOR`,svg:`<svg t="1722595639920" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4708" width="32" height="32"><path d="M128 640V384a256 256 0 0 1 256-256h256a256 256 0 0 1 256 256v256a256 256 0 0 1-256 256H384a256 256 0 0 1-256-256z m64 0q0 79.552 56.256 135.744Q304.448 832 384 832h256q79.552 0 135.744-56.256Q832 719.552 832 640V384q0-79.552-56.256-135.744Q719.552 192 640 192H384q-79.552 0-135.744 56.256Q192 304.448 192 384v256z" p-id="4709"></path></svg>`,color:``},{name:`checkbox-check`,configName:`CHECKBOX_CHECK_SVG`,configColorName:`CHECKBOX_COLOR`,svg:k,color:`rgb(82,146,247)`},{name:`checkbox-indeterminate`,configName:`CHECKBOX_INDETERMINATE_SVG`,configColorName:`CHECKBOX_COLOR`,svg:`<svg t="1722595280953" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4394" width="32" height="32"><path d="M128 384v256q0 12.608 1.28 25.088 1.216 12.544 3.648 24.832 2.432 12.352 6.08 24.384t8.448 23.68q4.864 11.584 10.752 22.72 5.952 11.072 12.928 21.504 7.04 10.496 14.976 20.224 8 9.728 16.896 18.56 8.896 8.96 18.56 16.896 9.728 8 20.224 14.976 10.432 7.04 21.504 12.928 11.136 5.888 22.72 10.688 11.648 4.864 23.68 8.512 12.032 3.648 24.32 6.08 12.352 2.432 24.896 3.712Q371.392 896 384 896h256q12.608 0 25.088-1.28 12.544-1.216 24.832-3.648 12.352-2.432 24.384-6.08t23.68-8.512q11.584-4.8 22.72-10.688 11.072-5.952 21.504-12.928 10.496-7.04 20.224-14.976 9.728-8 18.56-16.896 8.96-8.832 16.896-18.56 8-9.728 14.976-20.224 7.04-10.432 12.928-21.504 5.888-11.136 10.688-22.72 4.864-11.648 8.512-23.68 3.648-12.032 6.08-24.32 2.432-12.352 3.712-24.896Q896 652.608 896 640V384q0-12.608-1.28-25.088-1.216-12.544-3.648-24.832-2.432-12.352-6.08-24.384t-8.512-23.68q-4.8-11.584-10.688-22.72-5.952-11.072-12.928-21.504-7.04-10.496-14.976-20.224-8-9.664-16.896-18.56-8.832-8.96-18.56-16.896-9.728-8-20.224-14.976-10.432-7.04-21.504-12.928-11.136-5.888-22.72-10.752-11.648-4.8-23.68-8.448-12.032-3.648-24.32-6.08-12.352-2.432-24.896-3.712Q652.608 128 640 128H384q-12.608 0-25.088 1.28-12.544 1.216-24.832 3.648-12.352 2.432-24.384 6.08t-23.68 8.448q-11.584 4.864-22.72 10.752-11.072 5.952-21.504 12.928-10.496 7.04-20.224 14.976-9.664 8-18.56 16.896-8.96 8.896-16.896 18.56-8 9.728-14.976 20.224-7.04 10.432-12.928 21.504-5.888 11.136-10.752 22.72-4.8 11.648-8.448 23.68-3.648 12.032-6.08 24.32-2.432 12.352-3.712 24.896Q128 371.392 128 384z m566.016 166.336H330.112a38.4 38.4 0 0 1 0-76.8h363.904a38.4 38.4 0 0 1 0 76.8z" p-id="4395"></path></svg>`,color:`rgb(82,146,247)`},{name:`checkbox-check-disabled`,configName:`CHECKBOX_CHECK_DISABLED_SVG`,svg:k,color:`#DDE0EA`},{name:`checkbox-disabled`,configName:`CHECKBOX_DISABLED_SVG`,configColorName:`CHECKBOX_DISABLED_COLOR`,svg:`<svg t="1722595946663" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4865" width="32" height="32"><path d="M128 640V384a256 256 0 0 1 256-256h256a256 256 0 0 1 256 256v256a256 256 0 0 1-256 256H384a256 256 0 0 1-256-256z" p-id="4866"></path><path d="M128 640V384a256 256 0 0 1 256-256h256a256 256 0 0 1 256 256v256a256 256 0 0 1-256 256H384a256 256 0 0 1-256-256z m64 0q0 79.552 56.256 135.744Q304.448 832 384 832h256q79.552 0 135.744-56.256Q832 719.552 832 640V384q0-79.552-56.256-135.744Q719.552 192 640 192H384q-79.552 0-135.744 56.256Q192 304.448 192 384v256z" fill="#DDE0EA" p-id="4867"></path></svg>`,color:`#F1F2F4`},{name:`icon-edit`,configName:`ICON_EDIT_SVG`,configColorName:`ICON_EDIT_COLOR`,svg:`<svg t="1744798692576" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6606" width="200" height="200"><path d="M855.296 894.528H168.768v-76.8h686.528v76.8z m38.4-38.4q0 3.84-0.768 7.488-0.704 3.712-2.176 7.232-1.472 3.52-3.52 6.656-2.112 3.136-4.8 5.76-2.688 2.688-5.824 4.8-3.2 2.112-6.656 3.584-3.456 1.408-7.168 2.176-3.712 0.704-7.488 0.704-3.84 0-7.488-0.704-3.712-0.768-7.232-2.176-3.52-1.472-6.656-3.584-3.136-2.112-5.76-4.736-2.688-2.688-4.8-5.824-2.112-3.2-3.584-6.656-1.408-3.52-2.176-7.232-0.704-3.648-0.704-7.488 0-3.776 0.704-7.488 0.768-3.712 2.176-7.168 1.472-3.52 3.584-6.656 2.112-3.136 4.736-5.76 2.688-2.752 5.824-4.8 3.2-2.112 6.656-3.584 3.52-1.472 7.232-2.176 3.712-0.768 7.488-0.768 3.776 0 7.488 0.768 3.712 0.704 7.168 2.176 3.52 1.472 6.656 3.584 3.2 2.048 5.76 4.736 2.752 2.688 4.864 5.824 2.048 3.2 3.52 6.656 1.472 3.456 2.176 7.168 0.768 3.712 0.768 7.488z m-686.528 0q0 3.84-0.768 7.488-0.704 3.712-2.176 7.232-1.472 3.52-3.52 6.656-2.112 3.136-4.8 5.76-2.688 2.688-5.76 4.8-3.2 2.112-6.72 3.584-3.456 1.408-7.168 2.176-3.712 0.704-7.488 0.704-3.84 0-7.488-0.704-3.712-0.768-7.232-2.176-3.456-1.472-6.656-3.584-3.136-2.112-5.76-4.736-2.688-2.688-4.8-5.824-2.112-3.2-3.584-6.656-1.408-3.52-2.176-7.232-0.704-3.648-0.704-7.488 0-3.776 0.704-7.488 0.768-3.712 2.176-7.168 1.472-3.52 3.584-6.656 2.112-3.136 4.736-5.76 2.688-2.752 5.824-4.8 3.2-2.112 6.656-3.584 3.52-1.472 7.232-2.176 3.712-0.768 7.488-0.768 3.776 0 7.488 0.768 3.712 0.704 7.168 2.176 3.52 1.472 6.656 3.584 3.2 2.048 5.824 4.736 2.688 2.688 4.8 5.824 2.048 3.2 3.52 6.656 1.472 3.456 2.176 7.168 0.768 3.712 0.768 7.488zM652.032 211.2l-369.92 370.368v89.344h90.048l369.664-369.856L652.032 211.2z m-54.4-54.272q22.528-22.528 54.4-22.528 31.808 0 54.336 22.528l89.792 89.856q22.464 22.464 22.464 54.272t-22.464 54.272l-369.664 369.856q-22.464 22.528-54.336 22.528H282.24q-31.808 0-54.336-22.528-22.464-22.464-22.464-54.272V581.568q0-31.808 22.4-54.272l369.92-370.368z" p-id="6607"></path></svg>`,color:`#4E5969`},{name:`icon-select`,configName:`ICON_SELECT_SVG`,configColorName:`ICON_SELECT_COLOR`,svg:re,color:`#4E5969`},{name:`sort-asc`,configName:`SORT_ASC_ICON_SVG`,configColorName:`SORT_ICON_COLOR`,svg:ie,color:`rgb(82,146,247)`},{name:`sort-desc`,configName:`SORT_DESC_ICON_SVG`,configColorName:`SORT_ICON_COLOR`,svg:ae,color:`rgb(82,146,247)`},{name:`sort-default`,configName:`SORTABLE_ICON_SVG`,svg:A,color:`#bec4c7`}]),n(this,`icons`,new Map),this.ctx=e,this.init()}async init(){let e=[];for(let t=0;t<this.list.length;t++){let n=this.list[t],r=n.color,i=n.svg;if(n.configColorName){let e=this.ctx.config[n.configColorName];e&&(r=e)}if(n.configName){let e=this.ctx.config[n.configName];e&&(i=e)}let a=this.createImageFromSVG(i,r).then(e=>{this.icons.set(n.name,e)});e.push(a)}for(let t=0;t<this.ctx.config.ICONS.length;t++){let n=this.ctx.config.ICONS[t],r=n.color,i=this.createImageFromSVG(n.svg,r,n.isBlob).then(e=>{this.icons.set(n.name,e)});e.push(i)}await Promise.all(e),this.ctx.emit(`draw`)}async createImageFromSVG(e,t,n=!1){let r=new DOMParser().parseFromString(e,`image/svg+xml`).documentElement;t&&r.querySelectorAll(`*`).forEach(e=>{let n=e.getAttribute(`fill`);(n===`currentColor`||n===null)&&e.setAttribute(`fill`,t)});let i=new Image,a=``;if(n){let e=new Blob([new XMLSerializer().serializeToString(r)],{type:`image/svg+xml`});a=URL.createObjectURL(e)}else a=`data:image/svg+xml;charset=utf-8,`+encodeURIComponent(new XMLSerializer().serializeToString(r));return i.src=a,new Promise((t,n)=>{i.onerror=()=>n(Error(`Failed to load image:`+e)),i.onload=()=>{t(i)}})}get(e){return this.icons.get(e)}getSvg(e){return this.list.find(t=>t.name===e)}}class se extends C{constructor(e,t,r,a,o,s,c){super(e,r,a,o,s,`header`,c.fixed),n(this,`align`),n(this,`hideHeaderSelection`,!1),n(this,`verticalAlign`,`middle`),n(this,`fixed`),n(this,`minWidth`),n(this,`maxWidth`),n(this,`widthFillDisable`),n(this,`type`),n(this,`operation`,!1),n(this,`editorType`),n(this,`level`),n(this,`text`),n(this,`hide`,!1),n(this,`displayText`,``),n(this,`colspan`),n(this,`rowspan`),n(this,`row`),n(this,`key`),n(this,`required`,!1),n(this,`readonly`,!1),n(this,`ellipsis`,!1),n(this,`overflowTooltipShow`,!0),n(this,`children`,[]),n(this,`column`),n(this,`colIndex`),n(this,`rowKey`),n(this,`rules`),n(this,`hasChildren`),n(this,`render`),n(this,`style`,{}),n(this,`drawX`,0),n(this,`drawY`,0),n(this,`sortIconName`,`sort-default`),n(this,`sortAscIconName`,`sort-asc`),n(this,`sortDescIconName`,`sort-desc`),n(this,`visibleWidth`,0),n(this,`visibleHeight`,0),n(this,`maxLineClampHeader`,`auto`),n(this,`domDataset`,{}),n(this,`drawTextX`,0),n(this,`drawTextY`,0),n(this,`drawTextWidth`,0),n(this,`drawTextHeight`,0),n(this,`drawCellBgColor`,``),n(this,`drawTextColor`,``),n(this,`drawTextFont`,``),n(this,`drawSelectionImageX`,0),n(this,`drawSelectionImageY`,0),n(this,`drawSelectionImageWidth`,0),n(this,`drawSelectionImageHeight`,0),n(this,`drawSelectionImageName`,``),n(this,`drawSelectionImageSource`),n(this,`drawSortImageX`,0),n(this,`drawSortImageY`,0),n(this,`drawSortImageWidth`,0),n(this,`drawSortImageHeight`,0),n(this,`drawSortImageName`,``),n(this,`drawSortImageSource`),n(this,`renderHeaderType`,`default`),this.ctx=e,this.x=r,this.y=a,this.width=o,this.height=s,this.visibleWidth=o,this.visibleHeight=s,this.colIndex=t,this.key=c.key,this.minWidth=c.minWidth,this.maxWidth=c.maxWidth,this.hide=(typeof c.hide==`function`?c.hide(c):c.hide)||!1,this.type=c.type||``,this.editorType=c.editorType||`text`,this.hideHeaderSelection=c.hideHeaderSelection||!1,this.align=c.headerAlign||c.align||this.ctx.config.COLUMNS_ALIGN,this.verticalAlign=c.headerVerticalAlign||c.verticalAlign||this.ctx.config.COLUMNS_VERTICAL_ALIGN,this.fixed=c.fixed||``,this.level=c.level||0,this.operation=c.operation||!1,this.text=c.title,this.column=c,this.colspan=c.colspan||1,this.widthFillDisable=c.widthFillDisable||!1,this.rowspan=c.rowspan||1,this.rules=c.rules,this.readonly=c.readonly||!1,this.required=c.required||!1,this.sortIconName=c.sortIconName||`sort-default`,this.sortAscIconName=c.sortAscIconName||`sort-asc`,this.sortDescIconName=c.sortDescIconName||`sort-desc`,this.rowKey=i(),this.overflowTooltipShow=c.overflowTooltipHeaderShow!==!1,this.hasChildren=c.children&&c.children.length>0||!1,this.render=c.renderHeader,this.maxLineClampHeader=c.maxLineClampHeader||`auto`,this.renderHeaderType=c.renderHeaderType||`default`}isVerticalVisible(){let{stageHeight:e}=this.ctx,t=e;return!(this.y+this.height<=0||this.y>=t)}updateStyle(){this.style=this.getOverlayerViewsStyle()}updateContainer(){let{HEADER_CELL_STYLE_METHOD:e,HEADER_BG_COLOR:t,HEADER_TEXT_COLOR:n}=this.ctx.config,r=t,i=n;if(typeof e==`function`){let{backgroundColor:t,color:n,font:a}=e({colIndex:this.colIndex,column:this.column})||{};t&&(r=t),n&&(i=n),a&&(this.drawTextFont=a)}let{colKey:a,type:o}=this.ctx.finderBar;o===`header`&&a===this.key&&(r=this.ctx.config.FINDER_CELL_BG_COLOR),this.drawCellBgColor=r,this.drawTextColor=i}update(){this.updateContainer(),this.displayText=this.getText(),this.drawX=this.getDrawX(),this.drawY=this.getDrawY(),this.drawTextX=this.drawX,this.drawTextY=this.drawY,this.drawTextWidth=this.width,this.drawTextHeight=this.height,this.updateStyle()}draw(){this.drawEdge(),this.drawSelection(),this.drawText(),this.drawBg(),this.drawSortIcon()}drawEdge(){let{paint:e,config:{BORDER_COLOR:t,BORDER:n}}=this.ctx;e.drawRect(this.drawX,this.drawY,this.width,this.height,{borderColor:n?t:`transparent`,fillColor:this.drawCellBgColor})}drawText(){let{paint:e,config:{HEADER_FONT:t,CELL_PADDING:n,REQUIRED_COLOR:r}}=this.ctx,i=`${this.displayText}_${this.drawTextWidth}_${this.drawTextFont}`;this.ellipsis=e.drawText(this.displayText,this.drawTextX,this.drawTextY,this.drawTextWidth,this.drawTextHeight,{font:this.drawTextFont||t,padding:n,color:this.drawTextColor,align:this.align,verticalAlign:this.verticalAlign,maxLineClamp:this.maxLineClampHeader,offsetRight:this.column.sortBy?16:0,offsetLeft:this.required?12:0,cacheTextKey:i,textCallback:t=>{this.column.sortBy&&(this.drawSortImageX=t.right+4,this.drawSortImageY=t.top+(t.height-16)/2),this.required&&e.drawText(`*`,t.left-18,t.top+(t.height-12)/2,24,24,{color:r,font:`18px Arial`,align:`center`,verticalAlign:`middle`,padding:0})}})}drawBg(){if(this.ctx.dragHeaderIng)return;let{ENABLE_SELECTOR:e,ENABLE_SELECTOR_SINGLE:t}=this.ctx.config,n=-1,r=-1;if(this.ctx.focusCellHeader&&(n=this.ctx.focusCellHeader.colIndex,r=this.ctx.focusCellHeader.colIndex+this.ctx.focusCellHeader.colspan-1),e&&!t){let{xArr:e}=this.ctx.selector;n=e[0],r=e[1]}let i=this.colspan+this.colIndex-1;this.colIndex>=n&&this.colIndex<=r&&i<=r&&this.ctx.paint.drawRect(this.drawX,this.drawY,this.width,this.height,{borderColor:`transparent`,fillColor:this.ctx.config.SELECT_ROW_COL_BG_COLOR||`transparent`})}drawSelection(){if(!this.hideHeaderSelection&&[`index-selection`,`selection`,`selection-tree`,`tree-selection`].includes(this.type)){let{indeterminate:e,check:t,selectable:n}=this.ctx.database.getCheckedState(),{CHECKBOX_SIZE:r=0,CELL_PADDING:i}=this.ctx.config,a=this.drawX+(this.width-r)/2,o=this.drawY+(this.height-r)/2;this.drawTextX=a+r-i/2,this.drawTextWidth=this.drawX+this.visibleWidth-this.drawTextX,(this.align===`left`||this.align===`right`)&&(a=this.drawX+i,this.drawTextX=a+r-i/2,this.drawTextWidth=this.drawX+this.visibleWidth-this.drawTextX),this.verticalAlign===`top`?o=this.drawY+i/2:this.verticalAlign===`bottom`&&(o=this.drawY+this.height-r-i/2);let s=this.ctx.icons.get(`checkbox-uncheck`),c=`checkbox-uncheck`;e?(s=this.ctx.icons.get(`checkbox-indeterminate`),c=`checkbox-indeterminate`):t&&n?(s=this.ctx.icons.get(`checkbox-check`),c=`checkbox-check`):t&&!n?(s=this.ctx.icons.get(`checkbox-check-disabled`),c=`checkbox-check-disabled`):!t&&n?(s=this.ctx.icons.get(`checkbox-uncheck`),c=`checkbox-uncheck`):(s=this.ctx.icons.get(`checkbox-disabled`),c=`checkbox-disabled`),s&&(this.drawSelectionImageX=a,this.drawSelectionImageY=o,this.drawSelectionImageWidth=r,this.drawSelectionImageHeight=r,this.drawSelectionImageName=c,this.drawSelectionImageSource=s,this.ctx.paint.drawImage(this.drawSelectionImageSource,this.drawSelectionImageX,this.drawSelectionImageY,this.drawSelectionImageWidth,this.drawSelectionImageHeight))}}drawSortIcon(){if(!this.column.sortBy)return;let e=this.sortIconName,t=this.ctx.database.getSortState(this.key);t.direction===`asc`?e=this.sortAscIconName:t.direction===`desc`&&(e=this.sortDescIconName);let n=this.ctx.icons.get(e);n&&(this.drawSortImageWidth=16,this.drawSortImageHeight=16,this.drawSortImageName=e,this.drawSortImageSource=n,this.ctx.paint.drawImage(this.drawSortImageSource,this.drawSortImageX,this.drawSortImageY,this.drawSortImageWidth,this.drawSortImageHeight))}getText(){return this.render&&this.renderHeaderType===`default`||[``,null,void 0].includes(this.text)?``:`${this.text}`}getOverlayerViewsStyle(){let e=``;return e=this.fixed===`left`?`${this.drawX}px`:this.fixed===`right`?`${this.drawX-(this.ctx.stageWidth-this.ctx.fixedRightWidth)}px`:`${this.drawX-this.ctx.fixedLeftWidth}px`,{position:`absolute`,overflow:`hidden`,left:e,top:`${this.drawY+1}px`,width:`${this.width}px`,height:`${this.height-2}px`,pointerEvents:`initial`,userSelect:`none`}}}class ce{constructor(e){n(this,`ctx`),n(this,`visibleHoverCell`),n(this,`resizeObserver`),n(this,`mutationObserver`),this.ctx=e,this.init()}init(){this.resizeObserver=new ResizeObserver(e=>{this.ctx.emit(`resetHeader`),this.ctx.emit(`resizeObserver`,e),this.ctx.emit(`containerResize`,this.ctx.containerElement)}),this.resizeObserver.observe(this.ctx.containerElement),this.mutationObserver=new MutationObserver(e=>{for(let t of e)t.type===`attributes`&&t.attributeName===`class`&&(this.ctx.config.updateCssVar(),this.ctx.emit(`draw`))}),this.ctx.config.ENABLE_AUTO_THEME&&this.mutationObserver.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),this.ctx.on(`mousedown`,e=>{if(this.isBusy(e))return;let{offsetY:t,offsetX:n}=this.ctx.getOffset(e),r=t,i=n,{body:{height:a,visibleHeight:o,visibleWidth:s,y:c}}=this.ctx;i>0&&i<s&&r>c&&r<c+Math.min(a,o)||this.ctx.emit(`mousedownBodyOutside`,e),e.button===0&&(this.handleHeaderEvent(i,r,this.ctx.header.renderCellHeaders,t=>{this.ctx.focusCellHeader=t,this.ctx.focusCell=void 0,this.ctx.emit(`cellHeaderMousedown`,t,e)}),this.handleBodyEvent(i,r,this.ctx.body.renderRows,t=>{this.ctx.setFocusCell(t),this.ctx.focusCellHeader=void 0,this.ctx.emit(`cellMousedown`,t,e)}))}),this.ctx.on(`mouseup`,e=>{if(e.button!==0||this.isBusy(e))return;let{offsetY:t,offsetX:n}=this.ctx.getOffset(e),r=t,i=n;this.handleHeaderEvent(i,r,this.ctx.header.renderCellHeaders,t=>{this.ctx.focusCellHeader=t,this.ctx.emit(`cellHeaderMouseup`,t,e)}),this.handleBodyEvent(i,r,this.ctx.body.renderRows,t=>{this.ctx.setFocusCell(t),this.ctx.emit(`cellMouseup`,t,e)})}),this.ctx.on(`click`,e=>{if(e.button!==0||this.isBusy(e))return;let t=this.ctx.getOffset(e).offsetY,n=this.ctx.getOffset(e).offsetX;this.handleHeaderEvent(n,t,this.ctx.header.renderCellHeaders,t=>{this.ctx.clickCellHeader=t,this.ctx.emit(`cellHeaderClick`,t,e),this.selectionClick(t,e),this.sortClick(t,e)}),this.handleBodyEvent(n,t,this.ctx.body.renderRows,t=>{this.ctx.clickCell=t,this.ctx.emit(`cellClick`,t,e),this.selectionClick(t,e),this.treeClick(t,e)},!0),this.handleBodyEvent(n,t,this.ctx.body.renderRows,e=>{this.hoverIconClick(e)},!1)}),this.ctx.on(`dblclick`,e=>{if(e.button!==0||this.isBusy(e))return;let t=this.ctx.getOffset(e).offsetY,n=this.ctx.getOffset(e).offsetX;this.handleHeaderEvent(n,t,this.ctx.header.renderCellHeaders,t=>{this.ctx.emit(`cellHeaderDblclick`,t,e)}),this.handleBodyEvent(n,t,this.ctx.body.renderRows,t=>{this.ctx.clickCell=t,this.ctx.emit(`cellDblclick`,t,e)})}),this.ctx.on(`contextMenu`,e=>{if(this.isBusy(e))return;let{offsetY:t,offsetX:n}=this.ctx.getOffset(e),r=t,i=n;this.handleHeaderEvent(i,r,this.ctx.header.renderCellHeaders,t=>{this.ctx.emit(`cellHeaderContextMenuClick`,t,e)}),this.handleBodyEvent(i,r,this.ctx.body.renderRows,t=>{this.ctx.emit(`cellContextMenuClick`,t,e)})}),this.ctx.on(`mouseout`,e=>{!this.ctx.containerElement.contains(e.relatedTarget)&&this.ctx.hoverCell!==void 0&&(this.ctx.hoverRow=void 0,this.ctx.hoverCell=void 0,this.ctx.emit(`draw`))}),this.ctx.on(`mousemove`,e=>{if(this.isBusy(e))return;this.ctx.isPointer=!1,this.ctx.stageElement.style.cursor===`pointer`&&(this.ctx.stageElement.style.cursor=`default`);let t=this.ctx.getOffset(e).offsetY,n=this.ctx.getOffset(e).offsetX;this.handleHeaderEvent(n,t,this.ctx.header.renderCellHeaders,t=>{this.ctx.emit(`cellHeaderMouseenter`,t,e),this.ctx.hoverCellHeader&&this.ctx.hoverCellHeader!==t&&this.ctx.emit(`cellHeaderMouseleave`,this.ctx.hoverCellHeader,e),this.imageEnterAndLeave(t,e),this.ctx.hoverCellHeader!==t&&(this.ctx.hoverCellHeader=t,this.visibleHoverCell=void 0,this.ctx.emit(`cellHeaderHoverChange`,t,e))}),this.handleBodyEvent(n,t,this.ctx.body.renderRows,t=>{this.imageEnterAndLeave(t,e),this.visibleHoverCell!==t&&(this.ctx.emit(`visibleCellMouseleave`,t,e),this.visibleHoverCell=t,this.ctx.hoverCellHeader=void 0,this.ctx.emit(`visibleCellHoverChange`,t,e))},!0),this.handleBodyEvent(n,t,this.ctx.body.renderRows,t=>{this.imageEnterAndLeave(t,e),this.ctx.emit(`cellMouseenter`,t,e),this.ctx.hoverCell&&this.ctx.hoverCell!==t&&this.ctx.emit(`cellMouseleave`,t,e),this.ctx.hoverCell!==t&&(this.ctx.hoverCell?.rowKey!==t.rowKey&&(this.ctx.hoverCell=t,this.ctx.hoverRow=this.ctx.body.renderRows.find(e=>e.rowKey===t.rowKey),this.ctx.emit(`rowHoverChange`,this.ctx.hoverRow,t,e),this.ctx.emit(`draw`)),this.ctx.hoverCell=t,this.ctx.emit(`cellHoverChange`,t,e))}),this.handleFooterEvent(n,t,this.ctx.footer.renderRows,t=>{this.ctx.emit(`cellFooterMouseenter`,t,e),this.ctx.hoverCell&&this.ctx.hoverCell!==t&&this.ctx.emit(`cellFooterMouseleave`,t,e),this.ctx.emit(`cellFooterHoverChange`,t,e)})})}hoverIconClick(e){e.hoverIconName&&this.ctx.isPointer&&!this.ctx.disableHoverIconClick&&this.ctx.emit(`hoverIconClick`,e)}selectionClick(e,t){if(!([`selection`,`index-selection`,`selection-tree`,`tree-selection`].includes(e.type)&&this.ctx.isPointer))return;let{offsetY:n,offsetX:r}=this.ctx.getOffset(t),i=n,a=r;if(this.isInsideElement(a,i,e.drawSelectionImageX,e.drawSelectionImageY,e.drawSelectionImageWidth,e.drawSelectionImageHeight))if(e instanceof se)e.drawSelectionImageName===`checkbox-uncheck`||e.drawSelectionImageName===`checkbox-indeterminate`?this.ctx.database.toggleAllSelection():e.drawSelectionImageName===`checkbox-check`&&this.ctx.database.clearSelection(!0);else{if(!this.ctx.database.getRowSelectable(e.rowKey))return;this.ctx.database.toggleRowSelection(e.rowKey,e.type)}}treeClick(e,t){if(!([`tree`,`selection-tree`,`tree-selection`].includes(e.type)&&this.ctx.isPointer))return;let{offsetY:n,offsetX:r}=this.ctx.getOffset(t),i=n,a=r;if(!this.isInsideElement(a,i,e.drawTreeImageX,e.drawTreeImageY,e.drawTreeImageWidth,e.drawTreeImageHeight))return;let{expand:o=!1,expandLazy:s=!1}=this.ctx.database.getRowForRowKey(e.rowKey)||{},{EXPAND_LAZY:c,EXPAND_LAZY_METHOD:l}=this.ctx.config;if(c&&l&&!o&&!s)typeof l==`function`&&(this.ctx.database.expandLoading(e.rowKey,!0),l({row:e.row,rowIndex:e.rowIndex,colIndex:e.colIndex,column:e.column,value:e.getValue()}).then(t=>{this.ctx.database.setExpandChildren(e.rowKey,t),this.ctx.database.expandLoading(e.rowKey,!1),this.ctx.emit(`expandChange`,this.ctx.database.getExpandRowKeys())}).catch(t=>{this.ctx.database.expandLoading(e.rowKey,!1),console.error(t)}));else{let t=this.ctx.database.getIsExpand(e.rowKey);this.ctx.database.expandItem(e.rowKey,!t),this.ctx.emit(`expandChange`,this.ctx.database.getExpandRowKeys())}}sortClick(e,t){let{offsetY:n,offsetX:r}=this.ctx.getOffset(t),i=n,a=r;if(!this.isInsideElement(a,i,e.drawSortImageX,e.drawSortImageY,e.drawSortImageWidth,e.drawSortImageHeight))return;let o=this.ctx.database.getSortState(e.key),s;s=o.direction===`none`?`asc`:o.direction===`asc`?`desc`:`none`,this.ctx.database.setSortState(e.key,s)}imageEnterAndLeave(e,t){let{offsetY:n,offsetX:r}=this.ctx.getOffset(t),i=n,a=r;if(e instanceof se){if(e.drawSelectionImageSource&&this.isInsideElement(a,i,e.drawSelectionImageX,e.drawSelectionImageY,e.drawSelectionImageWidth,e.drawSelectionImageHeight)){this.ctx.stageElement.style.cursor=`pointer`,this.ctx.isPointer=!0;return}if(e.drawSortImageSource&&this.isInsideElement(a,i,e.drawSortImageX,e.drawSortImageY,e.drawSortImageWidth,e.drawSortImageHeight)){this.ctx.stageElement.style.cursor=`pointer`,this.ctx.isPointer=!0;return}}if(e instanceof w){if(e.drawSelectionImageSource&&this.isInsideElement(a,i,e.drawSelectionImageX,e.drawSelectionImageY,e.drawSelectionImageWidth,e.drawSelectionImageHeight)){this.ctx.stageElement.style.cursor=`pointer`,this.ctx.isPointer=!0,this.ctx.database.getRowSelectable(e.rowKey)||(this.ctx.stageElement.style.cursor=`not-allowed`);return}if(e.drawHoverImageSource&&this.isInsideElement(a,i,e.drawHoverImageX,e.drawHoverImageY,e.drawHoverImageWidth,e.drawHoverImageHeight)){this.ctx.stageElement.style.cursor=`pointer`,this.ctx.isPointer=!0;return}if(e.drawTreeImageSource&&this.isInsideElement(a,i,e.drawTreeImageX,e.drawTreeImageY,e.drawTreeImageWidth,e.drawTreeImageHeight)){this.ctx.stageElement.style.cursor=`pointer`,this.ctx.isPointer=!0;return}}}isInsideElement(e,t,n,r,i,a){return e>n&&e<n+i&&t>r&&t<r+a}isBusy(e){let{offsetY:t,offsetX:n}=this.ctx.getOffset(e),r=t,i=n;if(this.ctx.loading||!this.ctx.isTarget(e)||this.ctx.stageElement.style.cursor===`row-resize`||this.ctx.stageElement.style.cursor===`col-resize`||this.ctx.columnResizing||this.ctx.rowResizing)return!0;let{SCROLLER_TRACK_SIZE:a}=this.ctx.config;return!!(this.ctx.scrollerMove||this.ctx.scrollerFocus||r>this.ctx.stageHeight-a||i>this.ctx.stageWidth-a)}handleBodyEvent(e,t,n,r,i=!1){if(this.isInsideBody(t))for(let a of n){let n=a.fixedCells.concat(a.noFixedCells);for(let a of n){let n=a.getDrawX(),o=a.getDrawY();if(i){if(e>n&&e<n+a.visibleWidth&&t>o&&t<o+a.visibleHeight){r(a);return}}else if(e>n&&e<n+a.width&&t>o&&t<o+a.height){r(a);return}}}}handleHeaderEvent(e,t,n,r){for(let i of n){let n=i.getDrawX(),a=i.getDrawY();if(e>n&&e<n+i.width&&t>a&&t<a+i.height){r(i);return}}}handleFooterEvent(e,t,n,r,i=!1){for(let a of n){let n=a.fixedCells.concat(a.noFixedCells);for(let a of n){let n=a.getDrawX(),o=a.getDrawY();if(i){if(e>n&&e<n+a.visibleWidth&&t>o&&t<o+a.visibleHeight){r(a);return}}else if(e>n&&e<n+a.width&&t>o&&t<o+a.height){r(a);return}}}}isInsideBody(e){return e>this.ctx.body.y&&e<this.ctx.body.y+this.ctx.body.visibleHeight}destroy(){this.resizeObserver.unobserve(this.ctx.stageElement),this.mutationObserver.disconnect()}}class j{constructor(e,t){n(this,`eventBus`),n(this,`eventBrowser`),n(this,`eventTable`),n(this,`containerElement`),n(this,`stageElement`),n(this,`canvasElement`),n(this,`overlayerElement`),n(this,`editorElement`),n(this,`emptyElement`),n(this,`contextMenuElement`),n(this,`loadingElement`),n(this,`stageWidth`,0),n(this,`stageHeight`,0),n(this,`paint`),n(this,`icons`),n(this,`domSelectionStr`,``),n(this,`isMouseoverTargetContainer`,!1),n(this,`mousedown`,!1),n(this,`isPointer`,!1),n(this,`isEmpty`,!1),n(this,`rowResizing`,!1),n(this,`columnResizing`,!1),n(this,`scrollerMove`,!1),n(this,`scrollerFocus`,!1),n(this,`autofillMove`,!1),n(this,`selectorMove`,!1),n(this,`disableHoverIconClick`,!1),n(this,`selectColsIng`,!1),n(this,`selectRowsIng`,!1),n(this,`dragHeaderIng`,!1),n(this,`finding`,!1),n(this,`contextMenuIng`,!1),n(this,`editing`,!1),n(this,`loading`,!1),n(this,`onlyMergeCell`,!1),n(this,`selectOnlyOne`,!1),n(this,`hasSelection`,!1),n(this,`hasTree`,!1),n(this,`scrollY`,0),n(this,`scrollX`,0),n(this,`fixedLeftWidth`,0),n(this,`fixedRightWidth`,0),n(this,`lastCenterColIndex`,0),n(this,`maxColIndex`,0),n(this,`maxRowIndex`,0),n(this,`hoverRow`),n(this,`clickCell`),n(this,`focusCell`),n(this,`currentCell`),n(this,`hoverCell`),n(this,`clickCellHeader`),n(this,`focusCellHeader`),n(this,`hoverCellHeader`),n(this,`mouseX`,0),n(this,`mouseY`,0),n(this,`body`,{x:0,y:0,width:0,height:0,visibleHeight:0,visibleWidth:0,headIndex:0,tailIndex:0,visibleRows:[],renderRows:[],data:[]}),n(this,`footer`,{x:0,y:0,width:0,height:0,visibleHeight:0,visibleWidth:0,renderRows:[]}),n(this,`header`,{x:0,y:0,width:0,height:0,visibleHeight:0,visibleWidth:0,visibleLeafColumns:[],leafCellHeaders:[],allCellHeaders:[],renderLeafCellHeaders:[],renderCellHeaders:[],fixedLeftCellHeaders:[],fixedRightCellHeaders:[],renderCenterCellHeaders:[]}),n(this,`selector`,{enable:!1,xArr:[-1,-1],yArr:[-1,-1],xArrCopy:[-1,-1],yArrCopy:[-1,-1]}),n(this,`autofill`,{enable:!1,xArr:[-1,-1],yArr:[-1,-1]}),n(this,`finderBar`,{text:``,rowIndex:-1,colIndex:-1,type:`body`}),n(this,`database`),n(this,`history`),n(this,`config`);let{containerElement:r,stageElement:i,canvasElement:a,overlayerElement:o,editorElement:s,emptyElement:c,loadingElement:l,contextMenuElement:u}=e;this.containerElement=r,i.tabIndex=0,this.stageElement=i,this.canvasElement=a,this.overlayerElement=o,this.editorElement=s,this.emptyElement=c,this.loadingElement=l,this.contextMenuElement=u,this.config=new O(t.config||{}),this.eventBus=new D,this.eventBrowser=new ee(this),this.eventTable=new ce(this),this.paint=new te(this.canvasElement),this.database=new T(this,t),this.history=new E(this),this.icons=new oe(this)}setConfig(e){this.config=new O(e)}setItemValueByEditor(e,t,n,r=!0,i=!0,a=!0){if(this.config.ENABLE_MERGE_CELL_LINK){let i=this.database.getVirtualBodyCellByKey(e,t);if(i&&(i.mergeRow||i.mergeCol)){let{dataList:e}=i.getSpanInfo(),t=e.map(e=>({...e,value:n}));this.database.batchSetItemValue(t,r,a);return}}this.database.setItemValue(e,t,n,r,i,!0,a)}batchSetItemValueByEditor(e,t=!0,n=!0){if(this.config.ENABLE_MERGE_CELL_LINK){let r=[];e.forEach(e=>{let t=this.database.getRowIndexForRowKey(e.rowKey),n=this.database.getColIndexForKey(e.key);if(t===void 0||n===void 0)return;let i=this.database.getVirtualBodyCell(t,n);if(i){let{dataList:t}=i.getSpanInfo(),n=t.map(t=>({...t,value:e.value}));r.push(...n)}}),this.database.batchSetItemValue(r,t,n)}else this.database.batchSetItemValue(e,t,n)}setFocusCell(e){if(this.focusCell!==e){if(this.focusCell?.rowKey!==e.rowKey){this.currentCell=e,this.emit(`rowFocusChange`,e);let t={rowIndex:e.rowIndex,rowKey:e.rowKey,row:e.row};this.emit(`currentRowChange`,t)}this.focusCell=e,this.emit(`cellFocusChange`,e)}}clearSelector(){this.selector.enable=!1,this.selector.xArr=[-1,-1],this.selector.yArr=[-1,-1],this.emit(`clearSelector`)}clearSelectorCopy(){this.selector.xArrCopy=[-1,-1],this.selector.yArrCopy=[-1,-1]}clearAutofill(){this.autofill={enable:!1,xArr:[-1,-1],yArr:[-1,-1]}}getSelectedData(){let e=[],t=this.selector.yArr,n=this.selector.xArr,r=``;for(let i=0;i<=t[1]-t[0];i++){let a=[];for(let e=0;e<=n[1]-n[0];e++){let r=i+t[0],o=e+n[0],s=this.database.getVirtualBodyCell(r,o);s&&(s.selectorCellValueType===`displayText`?a.push(s.displayText):a.push(s.getValue()))}r+=`${a.join(` `)}\r`,e.push(a)}return r=r?r.replace(/\r$/,``):` `,{xArr:n,yArr:t,text:r,value:e}}setScroll(e,t){let n=Math.floor(e),r=this.body.width-this.body.visibleWidth;n<0?n=0:n>r&&(n=r);let i=Math.floor(t),a=this.body.height-this.body.visibleHeight;this.config.FOOTER_FIXED||(a=this.body.height+this.footer.height-this.body.visibleHeight),i<0?i=0:i>a&&(i=a),this.emit(`setScroll`,n,i)}setScrollX(e){let t=Math.floor(e),n=this.body.width-this.body.visibleWidth;t<0?t=0:t>n&&(t=n),this.emit(`setScrollX`,t)}setScrollY(e){let t=Math.floor(e),n=0;this.config.FOOTER_FIXED||(n=this.footer.height);let r=this.body.height-this.body.visibleHeight+n;t<0?t=0:t>r&&(t=r),this.emit(`setScrollY`,t)}startAdjustPosition(e){this.emit(`startAdjustPosition`,e)}stopAdjustPosition(){this.emit(`stopAdjustPosition`)}isTarget(e){return!!this.containerElement.contains(e.target)}getOffset(e){let{left:t,top:n}=this.containerElement.getBoundingClientRect();return{offsetX:e.clientX-t,offsetY:e.clientY-n}}hasEvent(e){return this.eventBus.has(e)}on(e,t){this.eventBus.on(e,t)}once(e,t){this.eventBus.once(e,t)}off(e,t){this.eventBus.off(e,t)}emit(e,...t){this.eventBus.emit(e,...t)}destroy(){this.eventTable.destroy(),this.eventBrowser.destroy(),this.eventBus.destroy()}}class le{constructor(e,t){n(this,`ctx`),n(this,`type`),n(this,`isFocus`,!1),n(this,`trackX`,0),n(this,`trackY`,0),n(this,`trackWidth`,0),n(this,`trackHeight`,0),n(this,`splitPoints`,[]),n(this,`barX`,0),n(this,`barY`,0),n(this,`barWidth`,0),n(this,`barHeight`,0),n(this,`distance`,0),n(this,`visibleDistance`,0),n(this,`clientX`,0),n(this,`clientY`,0),n(this,`dragStart`,0),n(this,`isDragging`,!1),n(this,`scroll`,0),this.ctx=e,this.type=t,this.type===`vertical`?this.scroll=this.ctx.scrollY:this.scroll=this.ctx.scrollX}onWheel(e){this.updateScroll(e)}onTouchmove(e){let{clientY:t,clientX:n}=e.touches[0],r=t-this.clientY,i=n-this.clientX,a=0;this.type===`vertical`?(a=Math.max(0,Math.min(this.dragStart-r,this.distance)),this.hasScrollbar()&&!(a===0&&r>0||a===this.distance&&r<0)&&e.preventDefault()):this.type===`horizontal`&&(a=Math.max(0,Math.min(this.dragStart-i,this.distance))),this.scroll=a}onTouchstart(e){let{clientY:t,clientX:n}=e.touches[0];this.clientX=n,this.clientY=t,this.dragStart=this.scroll}onMouseDown(e){if(!(e.target instanceof Element)||!this.ctx.isTarget(e))return;if(this.ctx.stageElement.style.cursor===`row-resize`||this.ctx.stageElement.style.cursor===`col-resize`)return!0;let{offsetX:t,offsetY:n,clientX:r,clientY:i}=e;if(!(r==this.clientX&&i==this.clientY)){if(this.isOnScrollbar(t,n))this.clientX=r,this.clientY=i,this.isDragging=!0,this.ctx.scrollerMove=!0,this.isFocus=!0,this.dragStart=this.scroll,e.preventDefault();else if(this.isOnTrack(t,n)){let e=0;e=this.type===`vertical`?(n-this.ctx.header.height-this.barHeight/2)/(this.visibleDistance-this.barHeight)*this.distance:(t-this.barWidth/2)/(this.visibleDistance-this.barWidth)*this.distance,this.scroll=Math.max(0,Math.min(e,this.distance))}}}onMouseUp(){this.isDragging=!1,this.isFocus=!1,this.clientX=0,this.clientY=0}onMouseMove(e){let{offsetX:t,offsetY:n,clientX:r,clientY:i,buttons:a}=e;if(this.isOnScrollbar(t,n)&&e.target===this.ctx.canvasElement?this.isFocus=!0:this.isFocus=!1,a===0||r==this.clientX&&i==this.clientY)return;let o=0;if(o=this.type===`horizontal`?r-this.clientX:i-this.clientY,this.isDragging&&o!==0){let e=0;e=this.type===`vertical`?this.dragStart+o/(this.visibleDistance-this.barHeight)*this.distance:this.dragStart+o/(this.visibleDistance-this.barWidth)*this.distance,this.scroll=Math.max(0,Math.min(e,this.distance))}}isPointInElement(e,t,n,r,i,a){return e>=n&&e<=n+i&&t>=r&&t<=r+a}hasScrollbar(){return this.type===`vertical`?this.barHeight>0:this.type===`horizontal`?this.barWidth>0:!1}isOnScrollbar(e,t){return this.isPointInElement(e,t,this.barX,this.barY,this.barWidth,this.barHeight)}isOnTrack(e,t){return this.isPointInElement(e,t,this.trackX,this.trackY,this.trackWidth,this.trackHeight)}updateScroll(e){let t=e.deltaX,n=e.deltaY;this.type===`vertical`&&e.shiftKey===!1?(this.hasScrollbar()&&!(this.scroll===0&&n<0||this.scroll===this.distance&&n>0)&&e.preventDefault(),this.scroll=Math.max(0,Math.min(this.scroll+n,this.distance))):this.type===`horizontal`&&(e.shiftKey?this.scroll=Math.max(0,Math.min(this.scroll+n,this.distance)):this.scroll=Math.max(0,Math.min(this.scroll+t,this.distance)))}updatedSize(){let{body:e,header:t,stageHeight:n,stageWidth:r,config:{SCROLLER_TRACK_SIZE:i=0,SCROLLER_SIZE:a=0,BORDER:o}}=this.ctx,s=r,c=n,l=t.height,u=t.width,d=e.height,f=this.ctx.footer.height;if(this.type===`vertical`){this.visibleDistance=c-i-l,this.distance=d-this.visibleDistance+f,this.trackX=s-i,this.trackY=0,this.splitPoints=[this.trackX,l,this.trackX+i,l],this.trackWidth=i,this.trackHeight=c,this.barX=this.trackX-1+(i-a)/2,this.barWidth=a;let e=this.distance?this.visibleDistance/(d+f):0,t=Math.floor(e*this.visibleDistance);t<30?t=30:t>this.visibleDistance&&(t=0),this.barHeight=t,this.barY=l+this.scroll/this.distance*(this.visibleDistance-this.barHeight),this.scroll=Math.max(0,Math.min(this.scroll,this.distance))}else{this.visibleDistance=s-i,this.distance=u-this.visibleDistance,this.splitPoints=[s-i,c-i,s-i,c];let e=o?0:.5;this.trackX=0,this.trackY=c-i+e,this.trackWidth=s,this.trackHeight=i;let t=this.distance?this.visibleDistance/u:0,n=Math.floor(t*this.visibleDistance);this.barY=this.trackY-1+(i-a)/2,n<30?n=30:n>=this.visibleDistance&&(n=0),this.barWidth=n,this.barHeight=a,this.barX=this.scroll/this.distance*(this.visibleDistance-this.barWidth),this.scroll=Math.max(0,Math.min(this.scroll,this.distance))}}draw(){let{config:{SCROLLER_FOCUS_COLOR:e,SCROLLER_COLOR:t,BORDER_COLOR:n,BORDER:r,SCROLLER_TRACK_COLOR:i}}=this.ctx;this.updatedSize();let a=n;r||(a=`transparent`),this.ctx.paint.drawRect(this.trackX,this.trackY,this.trackWidth,this.trackHeight,{borderColor:a,fillColor:i}),this.ctx.paint.drawRect(this.barX,this.barY,this.barWidth,this.barHeight,{fillColor:this.isFocus||this.isDragging?e:t,radius:4}),this.splitPoints.length>0&&this.ctx.paint.drawLine(this.splitPoints,{borderColor:a,borderWidth:1}),this.ctx.scrollerFocus=this.isFocus}}class ue{constructor(e){n(this,`ctx`),n(this,`verticalScrollbar`),n(this,`horizontalScrollbar`),n(this,`mousedownHeader`,!1),n(this,`adjustPositionX`,``),n(this,`adjustPositionY`,``),n(this,`timerX`,0),n(this,`timerY`,0),this.ctx=e,this.verticalScrollbar=new le(e,`vertical`),this.horizontalScrollbar=new le(e,`horizontal`),this.ctx.on(`wheel`,e=>this.onWheel(e)),this.ctx.on(`mousedown`,e=>this.onMouseDown(e)),this.ctx.on(`mousemove`,e=>this.onMouseMove(e)),this.ctx.on(`mouseup`,()=>this.onMouseUp()),this.ctx.on(`touchmove`,e=>this.onTouchmove(e)),this.ctx.on(`touchstart`,e=>{this.onTouchstart(e)}),this.ctx.on(`setScroll`,(e,t)=>{this.setScroll(e,t)}),this.ctx.on(`setScrollX`,e=>{this.setScrollX(e)}),this.ctx.on(`setScrollY`,e=>{this.setScrollY(e)}),this.ctx.on(`scrollToIndex`,(e,t)=>{this.scrollToIndex(e,t)}),this.ctx.on(`cellHeaderMousedown`,()=>{this.mousedownHeader=!0}),this.ctx.on(`startAdjustPosition`,e=>{this.startAdjustPosition(e)}),this.ctx.on(`stopAdjustPosition`,()=>{this.stopAdjustPosition()})}onWheel(e){this.verticalScrollbar.onWheel(e),this.horizontalScrollbar.onWheel(e),this.draw()}onTouchmove(e){this.verticalScrollbar.onTouchmove(e),this.horizontalScrollbar.onTouchmove(e),this.draw()}onTouchstart(e){this.verticalScrollbar.onTouchstart(e),this.horizontalScrollbar.onTouchstart(e),this.draw()}onMouseDown(e){this.verticalScrollbar.onMouseDown(e),this.horizontalScrollbar.onMouseDown(e),this.draw()}onMouseMove(e){this.verticalScrollbar.onMouseMove(e),this.horizontalScrollbar.onMouseMove(e),this.draw()}onMouseUp(){this.mousedownHeader=!1,this.verticalScrollbar.onMouseUp(),this.horizontalScrollbar.onMouseUp(),this.ctx.scrollerMove=!1}draw(){this.verticalScrollbar.draw(),this.horizontalScrollbar.draw();let e=Math.floor(this.horizontalScrollbar.scroll),t=Math.floor(this.verticalScrollbar.scroll);(e!==this.ctx.scrollX||t!==this.ctx.scrollY)&&(this.ctx.emit(`onScroll`,e,t),e!==this.ctx.scrollX&&this.ctx.emit(`onScrollX`,e),t!==this.ctx.scrollY&&this.ctx.emit(`onScrollY`,t),this.ctx.scrollX=e,this.ctx.scrollY=t,this.ctx.emit(`draw`))}setScroll(e,t){this.horizontalScrollbar.scroll=e,this.verticalScrollbar.scroll=t,this.ctx.emit(`draw`),this.ctx.emit(`onScroll`,e,t)}setScrollX(e){this.horizontalScrollbar.scroll=e,this.ctx.emit(`draw`)}setScrollY(e){this.verticalScrollbar.scroll=e,this.ctx.emit(`draw`)}scrollToColkey(e){let{header:t}=this.ctx,n=t.leafCellHeaders.find(t=>t.key===e);n&&this.setScrollX(n.x-t.visibleWidth/2)}scrollToColIndex(e){let{header:t}=this.ctx,n=t.leafCellHeaders.find(t=>t.colIndex===e);n&&this.setScrollX(n.x-t.visibleWidth/2)}scrollToRowIndex(e){let{body:t,database:n}=this.ctx,{top:r}=n.getPositionForRowIndex(e);this.setScrollY(r-t.visibleHeight/2)}scrollToIndex(e,t){this.scrollToRowIndex(e),this.scrollToColIndex(t)}scrollToRowKey(e){let{body:t,database:n}=this.ctx,r=n.getRowIndexForRowKey(e);if(r===void 0)return;let{top:i}=n.getPositionForRowIndex(r);this.setScrollY(i-t.visibleHeight/2)}startAdjustPosition(e){let{offsetX:t,offsetY:n}=this.ctx.getOffset(e),r=``,i=``;if(this.ctx.focusCell?.fixed!==`left`&&t<this.ctx.fixedLeftWidth?r=`left`:this.ctx.focusCell?.fixed!==`right`&&t>this.ctx.body.visibleWidth-this.ctx.fixedRightWidth?r=`right`:(r=``,this.stopAdjustPosition(!0,!1)),!this.mousedownHeader&&n<this.ctx.header.visibleHeight?i=`top`:n>this.ctx.header.visibleHeight+this.ctx.body.visibleHeight?i=`bottom`:(i=``,this.stopAdjustPosition(!1,!0)),r&&this.adjustPositionX!==r){this.adjustPositionX=r;let e=10*(r===`left`?-1:1);this.timerX&&=(clearInterval(this.timerX),0),this.timerX=setInterval(()=>{e*=1.5;let{scrollX:t}=this.ctx,n=t+e;(n<0||n>this.ctx.body.width)&&(clearInterval(this.timerX),this.timerX=0),this.ctx.setScrollX(n)},100)}if(i&&this.adjustPositionY!==i){this.adjustPositionY=i;let e=10*(i===`top`?-1:1);this.timerY&&=(clearInterval(this.timerY),0),this.timerY=setInterval(()=>{e*=1.5;let{scrollY:t}=this.ctx,n=t+e;(n<0||n>this.ctx.body.height)&&(clearInterval(this.timerY),this.timerY=0),this.ctx.setScrollY(n)},100)}}stopAdjustPosition(e=!0,t=!0){e&&(this.adjustPositionX=``,this.timerX&&=(clearInterval(this.timerX),0)),t&&(this.adjustPositionY=``,this.timerY&&=(clearInterval(this.timerY),0))}}class de{constructor(e,t){n(this,`root`),n(this,`key`),n(this,`childrenKey`),this.root=e,this.key=t?.key||`key`,this.childrenKey=t?.childrenKey||`children`}getTree(){return this.root}treeMove(e,t,n){let r=this.findNodeWithParent(this.root,e[this.key]);if(!r)throw Error(`Source node not found`);let{parent:i,index:a,node:o}=r;if(i){let e=i[this.childrenKey];e.splice(a,1),e.length===0&&delete i[this.childrenKey]}else this.root.splice(a,1);let s=this.findNodeWithParent(this.root,t[this.key]);if(!s)throw Error(`Target node not found`);let{parent:c,index:l}=s;n===`before`?c?c[this.childrenKey].splice(l,0,o):this.root.splice(l,0,o):n===`after`&&(c?c[this.childrenKey].splice(l+1,0,o):this.root.splice(l+1,0,o))}findNodeWithParent(e,t,n=null){for(let r=0;r<e.length;r++){let i=e[r];if(i[this.key]===t)return{parent:n,index:r,node:i};if(i[this.childrenKey]){let e=this.findNodeWithParent(i[this.childrenKey],t,i);if(e)return e}}return null}}class fe{constructor(e){n(this,`ctx`),n(this,`x`,0),n(this,`y`,0),n(this,`width`,0),n(this,`height`,0),n(this,`resizeTarget`,null),n(this,`dragTarget`,null),n(this,`dragingCell`),n(this,`dragCellDiff`,0),n(this,`resizeNum`,0),n(this,`isResizing`,!1),n(this,`clientX`,0),n(this,`resizeDiff`,0),n(this,`columnIndex`,0),n(this,`isMouseDown`,!1),n(this,`columns`),n(this,`visibleColumns`),n(this,`visibleLeafColumns`,[]),n(this,`visibleHeight`,0),n(this,`visibleWidth`,0),n(this,`allCellHeaders`,[]),n(this,`leafCellHeaders`,[]),n(this,`renderLeafCellHeaders`,[]),n(this,`fixedLeftCellHeaders`,[]),n(this,`centerCellHeaders`,[]),n(this,`fixedRightCellHeaders`,[]),n(this,`renderCenterCellHeaders`,[]),n(this,`renderFixedCellHeaders`,[]),this.ctx=e,this.ctx.on(`resetHeader`,a(()=>{this.init(),this.ctx.clearSelector(),this.ctx.emit(`draw`)},100)),this.init(),this.initResizeColumn(),this.initDragColumn()}init(e=!1){let{config:{HEADER_HEIGHT:t,SCROLLER_TRACK_SIZE:n}}=this.ctx;if(!e){let e=this.ctx.database.getColumns();this.columns=e}this.allCellHeaders=[],this.leafCellHeaders=[],this.fixedLeftCellHeaders=[],this.fixedRightCellHeaders=[],this.centerCellHeaders=[],this.visibleColumns=u(this.columns);let r=o(this.visibleColumns),i=l(this.visibleColumns);this.height=t*r,this.visibleHeight=this.height,this.width=i.reduce((e,t)=>{let n=t.width||100,{maxWidth:r,minWidth:i}=t;return r&&n>r?e+r:i&&n<i?e+i:e+n},0),this.columnIndex=0,this.resizeNum=0;let a=s(c(this.visibleColumns,r));this.render(a,0),this.ctx.database.updateColIndexKeyMap(this.leafCellHeaders);let d=this.ctx.containerElement.getBoundingClientRect();this.resizeNum>0?this.ctx.stageWidth=Math.floor(d.width):this.ctx.stageWidth=Math.min(Math.floor(this.width+n),Math.floor(d.width)),this.ctx.stageElement.style.width=this.ctx.stageWidth+`px`,this.visibleWidth=this.ctx.stageWidth-n;let f=this.visibleWidth-this.width;if(this.resizeNum&&f>0){let e=Math.floor(f/this.resizeNum*100)/100;this.resizeAllColumn(e)}let p=this.fixedLeftCellHeaders.filter(e=>!e.hasChildren);this.ctx.fixedLeftWidth=p.reduce((e,t)=>e+t.width,0);let m=this.fixedRightCellHeaders.filter(e=>!e.hasChildren);this.ctx.fixedRightWidth=m.reduce((e,t)=>e+t.width,n),this.ctx.maxColIndex=this.leafCellHeaders.length-1,this.ctx.header.x=this.x,this.ctx.header.y=this.y,this.ctx.header.width=this.width,this.ctx.header.height=this.height,this.ctx.header.allCellHeaders=this.allCellHeaders,this.ctx.header.visibleWidth=this.visibleWidth,this.ctx.header.visibleHeight=this.visibleHeight}initResizeColumn(){this.ctx.on(`mousedown`,e=>{this.ctx.config.ENABLE_RESIZE_COLUMN&&this.ctx.isTarget(e)&&(this.clientX=e.clientX,this.resizeTarget?(this.isResizing=!0,this.ctx.columnResizing=!0):this.isResizing=!1,this.isMouseDown=!0)}),this.ctx.on(`mouseup`,()=>{this.ctx.config.ENABLE_RESIZE_COLUMN&&(this.isMouseDown=!1,this.resizeDiff!==0&&this.resizeTarget&&this.resizeColumn(this.resizeTarget,this.resizeDiff),this.resizeTarget=null,this.isResizing=!1,this.isMouseDown=!1,this.ctx.columnResizing=!1,this.clientX=0,this.resizeDiff=0)}),this.ctx.on(`mousemove`,e=>{if(!this.ctx.config.ENABLE_RESIZE_COLUMN||this.ctx.editing)return;let{stageWidth:t,config:{RESIZE_COLUMN_MIN_WIDTH:n}}=this.ctx;if(this.isResizing&&this.resizeTarget){let t=this.resizeTarget.width,r=this.resizeTarget.minWidth,i=this.resizeTarget.maxWidth,a=e.clientX-this.clientX;a+t<n&&(a=-(t-n)),r&&a+t<r&&(a=-(t-r)),i&&a+t>i&&(a=i-t),this.resizeDiff=a,this.ctx.emit(`draw`)}else{if(this.resizeTarget=null,this.isMouseDown)return;if(e.offsetX<0||e.offsetX>this.visibleWidth){this.ctx.stageElement.style.cursor===`col-resize`&&(this.ctx.stageElement.style.cursor=`default`);return}this.ctx.stageElement.style.cursor===`col-resize`&&(this.ctx.stageElement.style.cursor=`default`);let n=[...this.renderFixedCellHeaders,...this.renderCenterCellHeaders];for(let r of n){let{offsetX:n,offsetY:i}=this.ctx.getOffset(e),a=n,o=i,s=r.getDrawX(),c=r.getDrawY();if(a>s+r.width-5&&a<s+r.width+4&&a<t-4&&o>c){let t=r.colIndex+r.colspan-1,n=this.leafCellHeaders.find(e=>e.colIndex===t);if(!n||!n.fixed&&this.ctx.stageWidth-this.ctx.fixedRightWidth<s+r.width)return;this.ctx.isTarget(e)&&i<=this.height&&(this.ctx.stageElement.style.cursor=`col-resize`,this.resizeTarget=n)}}}})}initDragColumn(){this.ctx.on(`cellHeaderMousedown`,e=>{this.ctx.config.ENABLE_DRAG_COLUMN&&(e.column.dragDisabled||(this.dragTarget===e?(this.ctx.dragHeaderIng=!0,this.dragCellDiff=this.ctx.mouseX-e.drawX,this.ctx.stageElement.style.cursor=`grabbing`):(this.dragTarget=e,this.ctx.dragHeaderIng=!1)))}),this.ctx.on(`cellMousedown`,()=>{this.ctx.config.ENABLE_DRAG_COLUMN&&(this.dragTarget=null,this.ctx.dragHeaderIng=!1)}),this.ctx.on(`mouseup`,()=>{if(this.ctx.config.ENABLE_DRAG_COLUMN){if(this.dragingCell&&this.dragTarget){let e=(t,n={})=>(t.forEach((t,r)=>{t.children&&e(t.children,n),n[t.key]=r}),n),t=this.ctx.database.getColumns(),n=c(t,o(t)),r=new de(n,{key:`key`,childrenKey:`children`}),i=this.dragTarget.colIndex>this.dragingCell.colIndex?`before`:`after`;r.treeMove(this.dragTarget.column,this.dragingCell.column,i);let a=e(r.getTree());this.ctx.database.setCustomHeader({sortData:a}),this.init();let s={source:this.dragTarget,target:this.dragingCell,columns:n};this.ctx.emit(`columnDragChange`,s)}this.ctx.dragHeaderIng&&this.dragTarget&&(this.ctx.dragHeaderIng=!1,this.dragTarget=null,this.dragingCell=void 0,this.dragCellDiff=0,this.ctx.clearSelector(),this.ctx.focusCellHeader=void 0,this.ctx.stageElement.style.cursor=`default`,this.ctx.emit(`draw`))}}),this.ctx.on(`mousemove`,e=>{this.ctx.config.ENABLE_DRAG_COLUMN&&(!this.ctx.dragHeaderIng||!this.dragTarget||(this.dragTarget.fixed||this.ctx.startAdjustPosition(e),this.ctx.emit(`draw`)))}),this.ctx.on(`cellHoverChange`,e=>{this.ctx.config.ENABLE_DRAG_COLUMN&&(e.column.dragDisabled||(this.dragingCell=this.getDragCellHeader(e.colIndex)))}),this.ctx.on(`cellHeaderHoverChange`,e=>{this.ctx.config.ENABLE_DRAG_COLUMN&&(e.column.dragDisabled||(this.dragingCell=this.getDragCellHeader(e.colIndex)))})}getDragCellHeader(e){if(!this.dragTarget||!this.ctx.dragHeaderIng)return;let{column:{parentKey:t},key:n,level:r,fixed:i}=this.dragTarget,a=this.allCellHeaders.find(a=>a.key!==n&&a.fixed===i&&a.column.level===r&&a.column.parentKey===t&&a.colIndex<=e&&a.colIndex+a.colspan-1>=e);if(this.ctx.dragHeaderIng){let e=a?`grabbing`:`not-allowed`;this.ctx.stageElement.style.cursor=e}return a}resizeColumn(e,t){let n=r=>{r.forEach(r=>{r.children&&r.children.length>0&&n(r.children),r.key===e.key&&(r.width=(r.width||100)+t)})};n(this.columns);let r=0;if(this.width<this.visibleWidth){let e=this.visibleWidth-this.width;r=Math.floor(e/this.resizeNum*100)/100,this.resizeAllColumn(r)}let i=e.width+t+r;this.ctx.emit(`resizeColumnChange`,{colIndex:e.colIndex,key:e.key,oldWidth:e.width,width:i,column:e.column,columns:this.columns}),this.ctx.database.setCustomHeaderResizableData(e.key,i),this.init(!0),this.ctx.emit(`draw`)}resizeAllColumn(e){if(e===0)return;let t=new Map,n=!0;for(let r of this.allCellHeaders)if(r.widthFillDisable)t.set(r.key,r.width);else{let i=r.width+e*r.colspan;t.set(r.key,i),i<this.ctx.config.RESIZE_COLUMN_MIN_WIDTH&&(n=!1)}if(!n)return;let r=e=>{e.forEach(e=>{t.has(e.key)&&(e.width=t.get(e.key)),e.children&&e.children.length>0&&r(e.children)})};r(this.columns),this.init(!0),this.ctx.emit(`draw`)}getCustomHeader(){let e=this.ctx.database.getColumns(),t=this.ctx.database.getCustomHeader(),{sortData:n={}}=t;return Object.keys(n).length===0?{columns:e,customHeader:t}:{columns:c(e,o(e)),customHeader:t}}render(e,t){let n=e.length,r=t,{HEADER_HEIGHT:i=0}=this.ctx.config;for(let t=0;t<n;t++){let n=e[t],a=i*(n.rowspan||0),o=i*(n.level||0),{minWidth:s,maxWidth:c}=n,u=n.width||100;s&&u<s&&(u=s),c&&u>c&&(u=c),n.children&&(u=l(n.children).reduce((e,t)=>e+(t?.width||100),0));let d=new se(this.ctx,this.columnIndex,r,o,u,a,n);this.ctx.database.setHeader(n.key,d),this.allCellHeaders.push(d),n.children||(this.leafCellHeaders.push(d),d.column.widthFillDisable||this.resizeNum++),n.fixed===`left`?this.fixedLeftCellHeaders.push(d):n.fixed===`right`?this.fixedRightCellHeaders.push(d):this.centerCellHeaders.push(d),!n.children&&this.columnIndex++,n.children&&this.render(n.children,r),r+=u}}drawTipLine(){if(this.isResizing&&this.resizeTarget){let{stageHeight:e,config:{RESIZE_COLUMN_LINE_COLOR:t,RESIZE_COLUMN_TEXT_COLOR:n,RESIZE_COLUMN_TEXT_BG_COLOR:r,ENABLE_RESIZE_COLUMN_TEXT:i}}=this.ctx,a=this.resizeTarget.getDrawX(),o=this.resizeTarget.width,s=a+o+this.resizeDiff-.5,c=[s-.5,0,s-.5,e];if(this.ctx.paint.drawLine(c,{borderColor:t}),i){let e=`${Math.floor(o+this.resizeDiff)}px`;this.ctx.paint.drawRect(s+45/2,this.ctx.mouseY-24/2,45,24,{fillColor:r,borderWidth:0,borderColor:`transparent`}),this.ctx.paint.drawText(e,s+45/2,this.ctx.mouseY-24/2,45,26,{padding:0,color:n,align:`center`,verticalAlign:`middle`})}}}drawDragTip(){if(this.dragTarget&&this.ctx.dragHeaderIng){let{DRAG_TIP_BG_COLOR:e,DRAG_TIP_LINE_COLOR:t}=this.ctx.config,n=this.dragTarget.width;if(this.ctx.paint.drawRect(this.ctx.mouseX-this.dragCellDiff,this.visibleHeight,n,this.ctx.body.visibleHeight,{fillColor:e,borderWidth:0,borderColor:`transparent`}),this.dragingCell){let{drawX:e,drawY:n,visibleWidth:r,colIndex:i}=this.dragingCell,a=e,o=n;i>this.dragTarget.colIndex&&(a=e+r),i===0&&(a+=1),i===this.ctx.maxColIndex&&--a;let s=[a,o,a,this.ctx.stageHeight],c=[a-4,o,a+4,o,a,o+6,a-4,o];this.ctx.paint.drawLine(c,{borderColor:t,borderWidth:1.2,fillColor:t}),this.ctx.paint.drawLine(s,{borderColor:t,borderWidth:1.2})}}}drawFixedShadow(){let{fixedLeftWidth:e,fixedRightWidth:t,scrollX:n,header:r,stageWidth:i,config:{HEADER_BG_COLOR:a,SCROLLER_TRACK_SIZE:o}}=this.ctx;if(n>0&&e!==0&&this.ctx.paint.drawShadow(this.x,this.y,e,this.height,{fillColor:a,side:`right`,shadowWidth:4,colorStart:`rgba(0,0,0,0.1)`,colorEnd:`rgba(0,0,0,0)`}),n<Math.floor(r.width-i-1)&&t!==o){let e=r.width-(this.x+this.width)+i-t;this.ctx.paint.drawShadow(e,this.y,t,this.height,{fillColor:a,side:`left`,shadowWidth:4,colorStart:`rgba(0,0,0,0)`,colorEnd:`rgba(0,0,0,0.1)`})}}update(){let e=[],t=[],n=[];if(this.centerCellHeaders.length){let e=this.centerCellHeaders[this.centerCellHeaders.length-1];this.ctx.lastCenterColIndex=e.colIndex}this.centerCellHeaders.forEach(n=>{n.isHorizontalVisible()&&n.isVerticalVisible()&&(t.push(n),n.hasChildren||e.push(n))}),this.fixedLeftCellHeaders.forEach(t=>{n.push(t),t.hasChildren||e.push(t)}),this.fixedRightCellHeaders.forEach(t=>{n.push(t),t.hasChildren||e.push(t)}),this.renderCenterCellHeaders=t,this.renderFixedCellHeaders=n,this.renderLeafCellHeaders=e.sort((e,t)=>e.x-t.x),this.visibleLeafColumns=this.renderLeafCellHeaders.map(e=>e.column),this.ctx.header.visibleLeafColumns=this.visibleLeafColumns,this.ctx.header.leafCellHeaders=this.leafCellHeaders,this.ctx.header.renderLeafCellHeaders=this.renderLeafCellHeaders,this.ctx.header.renderCellHeaders=this.renderFixedCellHeaders.concat(this.renderCenterCellHeaders)}drawBottomLine(){let{stageWidth:e,config:{BORDER_COLOR:t}}=this.ctx,n=[0,this.height,e,this.height];this.ctx.paint.drawLine(n,{borderColor:t,borderWidth:1})}draw(){this.renderCenterCellHeaders.forEach(e=>{e.update(),e.draw()}),this.drawFixedShadow(),this.renderFixedCellHeaders.forEach(e=>{e.update(),e.draw()}),this.drawBottomLine(),this.drawTipLine(),this.drawDragTip()}}class pe{constructor(e,t,r=0,i=0,a=0,o=0,s,c=`body`){n(this,`ctx`),n(this,`x`,0),n(this,`y`,0),n(this,`width`,0),n(this,`height`),n(this,`cells`,[]),n(this,`fixedCells`,[]),n(this,`noFixedCells`,[]),n(this,`calculatedHeightCells`,[]),n(this,`rowIndex`,0),n(this,`rowKey`,``),n(this,`rowType`,`body`),n(this,`data`),n(this,`calculatedHeight`,-1),this.ctx=e,this.x=r,this.y=i,this.width=a,this.height=o,this.rowIndex=t,this.rowKey=e.database.getRowKeyForRowIndex(t)||``,this.rowType=c,this.data=s,this.update()}update(){let{header:e}=this.ctx,t=[],n=[],r=[],i=[];e.renderLeafCellHeaders.forEach(e=>{let a=new w(this.ctx,this.rowIndex,e.colIndex,e.x,this.y,e.width,this.height,e.column,this.data,this.rowType);a.fixed?n.push(a):r.push(a),t.push(a),a.autoRowHeight&&i.push(a)}),this.cells=t,this.calculatedHeightCells=i,this.fixedCells=n,this.noFixedCells=r}updateCalculatedHeight(){let e=this.calculatedHeightCells.map(e=>{let t=e.getAutoHeight(),{key:n,height:r=-1}=this.ctx.database.getMaxRowHeightItem(this.rowKey)||{};return(t>r||e.key===n&&t<r)&&this.ctx.database.setMaxRowHeightItem(this.rowKey,e.key,t),t});return this.calculatedHeight=e.length?Math.max(...e):-1,this.calculatedHeight}drawCenter(){this.noFixedCells.forEach(e=>{e.draw()})}drawFixed(){this.fixedCells.forEach(e=>{e.draw()})}drawContainer(){this.noFixedCells.forEach(e=>{e.drawContainer()})}drawFixedContainer(){this.fixedCells.forEach(e=>{e.drawContainer()})}}class M{constructor(e){n(this,`resizeTarget`,null),n(this,`isMouseDown`,!1),n(this,`resizeDiff`,0),n(this,`clientY`,0),n(this,`ctx`),n(this,`x`,0),n(this,`y`,0),n(this,`width`,0),n(this,`height`,0),n(this,`headIndex`,0),n(this,`tailIndex`,0),n(this,`isResizing`,!1),n(this,`renderRows`,[]),n(this,`visibleRows`,[]),n(this,`visibleHeight`,0),n(this,`visibleWidth`,0),n(this,`containerRect`),n(this,`data`,[]),this.ctx=e,this.init(),this.initResizeRow()}init(){let{canvasElement:e,header:t,footer:n,database:r,config:{FOOTER_FIXED:i,SCROLLER_TRACK_SIZE:a=0,HEIGHT:o,EMPTY_BODY_HEIGHT:s=0,MAX_HEIGHT:c=0,ENABLE_OFFSET_HEIGHT:l=0,OFFSET_HEIGHT:u=0,FOOTER_POSITION:d}}=this.ctx;if(!t.width)return;this.x=0,d===`top`&&i?this.y=t.height+n.height:this.y=t.height;let{data:f,sumHeight:p}=r.getData();this.height=p,this.data=f,this.width=t.width,this.visibleWidth=this.ctx.stageWidth-a;let m=this.ctx.footer.height;this.ctx.isEmpty=!this.data.length,!this.data.length&&!o?this.height=s:!this.data.length&&o&&(this.height=o-t.height-m-a);let h=this.height+t.height+a;h+=m;let g=h,_=window.innerHeight,{top:v}=this.containerRect||this.ctx.containerElement.getBoundingClientRect();if(_>v&&l&&!o){let e=_-v-u;e>t.height+a?g=e:h>c&&(g=c)}else this.data.length&&o?g=o:this.data.length&&c&&h>c&&(g=c);g>0&&(this.ctx.stageHeight=Math.floor(g),this.ctx.stageElement.style.height=`${this.ctx.stageHeight}px`);let y=this.ctx.stageHeight-t.height-a;i?this.visibleHeight=y-m:this.visibleHeight=y,this.data.length||(this.height=this.visibleHeight),this.ctx.body.x=this.x,this.ctx.body.y=this.y,this.ctx.body.width=this.width,this.ctx.body.height=this.height,this.ctx.body.visibleWidth=this.visibleWidth,this.ctx.body.visibleHeight=this.visibleHeight,this.ctx.body.data=f;let b=window.devicePixelRatio||1,x=this.ctx.stageWidth*b,S=this.ctx.stageHeight*b;e.width=Math.round(x),e.height=Math.round(S);let C=this.data.length?`not-empty`:`empty`;this.ctx.emit(`emptyChange`,{isEmpty:C,type:C,headerHeight:t.height,bodyHeight:this.height,footerHeight:m,width:this.width,height:this.data.length?0:s+m});let w=Math.round(e.width/b*1e4)/1e4,T=Math.round(e.height/b*1e4)/1e4;this.ctx.canvasElement.setAttribute(`style`,`height:${T}px;width:${w}px;`),this.ctx.paint.scale(b)}initResizeRow(){this.ctx.on(`resize`,()=>{this.ctx.config.ENABLE_RESIZE_ROW&&(this.containerRect=this.ctx.containerElement.getBoundingClientRect())}),this.ctx.on(`resizeObserver`,()=>{this.ctx.config.ENABLE_RESIZE_ROW&&(this.containerRect=this.ctx.containerElement.getBoundingClientRect())}),this.ctx.on(`mouseup`,()=>{this.ctx.config.ENABLE_RESIZE_ROW&&(this.isMouseDown=!1,this.resizeDiff!==0&&this.resizeTarget&&this.resizeRow(this.resizeTarget,this.resizeDiff),this.resizeTarget=null,this.resizeDiff=0,this.isResizing=!1,setTimeout(()=>{this.ctx.rowResizing=!1},0),this.clientY=0)}),this.ctx.on(`mousedown`,e=>{this.ctx.config.ENABLE_RESIZE_ROW&&this.ctx.isTarget(e)&&(this.clientY=e.clientY,this.resizeTarget?(this.isResizing=!0,this.ctx.rowResizing=!0):(this.isResizing=!1,this.ctx.rowResizing=!1),this.isMouseDown=!0)}),this.ctx.on(`mousemove`,e=>{if(!this.ctx.config.ENABLE_RESIZE_ROW||this.ctx.editing)return;let{offsetY:t,offsetX:n}=this.ctx.getOffset(e),r=t,i=n,a=e.clientY,{stageHeight:o,scrollY:s,config:{RESIZE_ROW_MIN_HEIGHT:c=0}}=this.ctx;if(this.isResizing&&this.resizeTarget){let e=this.resizeTarget.height,t=a-this.clientY,{calculatedHeight:n}=this.resizeTarget,r=n===-1?c:n;t+e<r&&(t=-(e-r)),this.resizeDiff=t,this.ctx.emit(`draw`)}else{if(this.resizeTarget=null,this.isMouseDown)return;if(i<0||i>this.ctx.body.visibleWidth||r<0||r>this.ctx.header.visibleHeight+this.ctx.body.visibleHeight){this.ctx.stageElement.style.cursor===`row-resize`&&(this.ctx.stageElement.style.cursor=`default`);return}if(this.ctx.stageElement.style.cursor===`crosshair`)return;this.ctx.stageElement.style.cursor===`row-resize`&&(this.ctx.stageElement.style.cursor=`default`);for(let e=0;e<this.renderRows.length;e++){let t=this.renderRows[e];if(r>t.y-s+t.height-1.5&&r<t.y-s+t.height+1.5&&r<o-4)for(let e=0;e<t.cells.length;e++){let n=t.cells[e];i>n.drawX+10&&i<n.drawX+n.width-10&&n.rowspan===1&&(this.ctx.stageElement.style.cursor=`row-resize`,this.resizeTarget=t)}}}})}resizeRow(e,t){let{rowIndex:n,height:r,rowKey:i,data:a}=e;this.ctx.database.setRowHeight(n,r+t),this.init(),this.ctx.emit(`draw`),this.ctx.emit(`resizeRowChange`,{rowIndex:n,oldHeight:r,height:r+t,rowKey:i,row:a,data:this.data})}drawTipLine(){if(this.isResizing&&this.resizeTarget){let{stageWidth:e,scrollY:t,config:{RESIZE_ROW_LINE_COLOR:n}}=this.ctx,r=this.resizeTarget.y-t+this.resizeTarget.height+this.resizeDiff-.5,i=[0,r-.5,e,r-.5];this.ctx.paint.drawLine(i,{borderColor:n,borderWidth:1})}}drawFixedShadow(){let{fixedLeftWidth:e,fixedRightWidth:t,scrollX:n,header:r,stageWidth:i,config:{HEADER_BG_COLOR:a,SCROLLER_TRACK_SIZE:o}}=this.ctx;if(n>0&&e!==0&&!this.ctx.isEmpty&&this.ctx.paint.drawShadow(this.x,this.y,e,this.height,{fillColor:a,side:`right`,shadowWidth:4,colorStart:`rgba(0,0,0,0.1)`,colorEnd:`rgba(0,0,0,0)`}),n<Math.floor(r.width-i-1)&&t!==o&&!this.ctx.isEmpty){let e=r.width-(this.x+this.width)+i-t;this.ctx.paint.drawShadow(e,this.y,t,this.height,{fillColor:a,side:`left`,shadowWidth:4,colorStart:`rgba(0,0,0,0)`,colorEnd:`rgba(0,0,0,0.1)`})}}binarySearch(e,t){let n=0,r=e.length-1,i=-1;for(;n<=r;){let a=Math.floor((n+r)/2),o=e[a].bottom;if(o===t)return a;o<t?n=a+1:(i=a,r=a-1)}return i}update(){this.init();let{header:e,database:t,scrollY:n,config:{CELL_HEIGHT:r}}=this.ctx,i=n,{data:a,positions:o}=t.getData();this.ctx.maxRowIndex=a.length-1;let s=this.binarySearch(o,i),c=this.binarySearch(o,i+this.visibleHeight);if(c===-1&&(c=this.ctx.maxRowIndex),s===-1&&c===this.ctx.maxRowIndex){let e=Math.floor(this.visibleHeight/r);s=this.ctx.maxRowIndex-e}this.headIndex=Math.max(0,s),this.tailIndex=Math.min(this.ctx.maxRowIndex,c+1),this.visibleRows=a.slice(this.headIndex,this.tailIndex+1),this.ctx.body.headIndex=this.headIndex,this.ctx.body.tailIndex=this.tailIndex,this.ctx.body.visibleRows=this.visibleRows;let l=[];for(let t=0;t<this.visibleRows.length;t++){let n=this.headIndex+t,r=this.visibleRows[t],{height:i,top:a}=this.ctx.database.getPositionForRowIndex(n),o=new pe(this.ctx,n,0,a+this.y,e.width,i,r);l.push(o)}this.renderRows=l,this.ctx.body.renderRows=l}updateAutoHeight(){let e=this.ctx.body.renderRows;if(!e.some(e=>e.calculatedHeightCells.length>0))return!1;e.forEach(e=>{e.updateCalculatedHeight()});let t=e.map(e=>({height:e.calculatedHeight,rowIndex:e.rowIndex}));return this.ctx.database.setBatchCalculatedRowHeight(t)}draw(){this.renderRows.forEach(e=>{e.drawContainer()}),this.renderRows.forEach(e=>{e.drawCenter()}),this.drawFixedShadow(),this.renderRows.forEach(e=>{e.drawFixedContainer()}),this.renderRows.forEach(e=>{e.drawFixed()}),this.drawTipLine()}}class me{constructor(e){n(this,`ctx`),n(this,`renderRows`,[]),n(this,`data`,[]),n(this,`x`,0),n(this,`y`,0),n(this,`width`,0),n(this,`height`,0),n(this,`visibleWidth`,0),n(this,`visibleHeight`,0),this.ctx=e,this.init()}init(){this.data=this.ctx.database.getFooterData();let{header:e,body:t,config:{CELL_FOOTER_HEIGHT:n,FOOTER_FIXED:r,SCROLLER_TRACK_SIZE:i,FOOTER_POSITION:a}}=this.ctx;this.width=e.width,this.visibleWidth=e.visibleWidth,this.height=this.data.reduce(e=>e+n,0),this.visibleHeight=this.height,r?a===`top`?this.y=this.ctx.header.height:this.y=this.ctx.stageHeight-this.height-i:this.y=t.y+t.height,this.ctx.footer.x=this.x,this.ctx.footer.y=this.y,this.ctx.footer.height=this.height,this.ctx.footer.width=this.width,this.ctx.footer.visibleWidth=this.visibleWidth,this.ctx.footer.visibleHeight=this.visibleHeight}drawFixedShadow(){let{fixedLeftWidth:e,fixedRightWidth:t,scrollX:n,header:r,stageWidth:i,config:{HEADER_BG_COLOR:a,SCROLLER_TRACK_SIZE:o}}=this.ctx,s=this.y;if(this.ctx.config.FOOTER_FIXED||(s=this.y-this.ctx.scrollY),n>0&&e!==0&&this.ctx.paint.drawShadow(this.x,s,e,this.height,{fillColor:a,side:`right`,shadowWidth:4,colorStart:`rgba(0,0,0,0.1)`,colorEnd:`rgba(0,0,0,0)`}),n<Math.floor(r.width-i-1)&&t!==o){let e=r.width-(this.x+this.width)+i-t;this.ctx.paint.drawShadow(e,s,t,this.height,{fillColor:a,side:`left`,shadowWidth:4,colorStart:`rgba(0,0,0,0)`,colorEnd:`rgba(0,0,0,0.1)`})}}update(){this.init();let{CELL_FOOTER_HEIGHT:e}=this.ctx.config,t=this.y,n=[];this.data.forEach((r,i)=>{let a=new pe(this.ctx,i,0,t,this.width,e,r,`footer`);t+=e,n.push(a)}),this.renderRows=n,this.ctx.footer.renderRows=this.renderRows}drawTopLine(){let{stageWidth:e,config:{BORDER_COLOR:t}}=this.ctx,n=[0,this.y,e,this.y];this.ctx.paint.drawLine(n,{borderColor:t,borderWidth:1})}draw(){this.renderRows.forEach(e=>{e.drawContainer()}),this.renderRows.forEach(e=>{e.drawCenter()}),this.drawFixedShadow(),this.renderRows.forEach(e=>{e.drawFixedContainer()}),this.renderRows.forEach(e=>{e.drawFixed()}),this.drawTopLine()}}class he{constructor(e){n(this,`isCut`,!1),n(this,`isMultipleRow`,!1),n(this,`ctx`),this.ctx=e,this.init()}init(){this.ctx.on(`setMoveFocus`,e=>{this.moveFocus(e)}),this.ctx.on(`mousemove`,a(e=>{var t;(t=this.ctx.focusCellHeader)!=null&&t.fixed||!this.ctx.dragHeaderIng&&this.ctx.selectorMove&&this.ctx.startAdjustPosition(e)},100)),this.ctx.on(`cellHoverChange`,e=>{if(!this.ctx.autofillMove){if(e.operation){this.selectRows(e,!1);return}this.isMultipleRow||this.mouseenter()}}),this.ctx.on(`cellClick`,()=>{this.adjustBoundaryPosition()}),this.ctx.on(`cellMousedown`,(e,t)=>{if(!(!this.ctx.isTarget(t)||this.ctx.stageElement.style.cursor===`pointer`||this.ctx.isPointer||this.ctx.stageElement.style.cursor===`crosshair`)){if(e.operation){this.isMultipleRow=!0,this.selectRows(e);return}window.getComputedStyle(t.target).userSelect!==`text`&&t.preventDefault(),this.isMultipleRow=!1,this.click(t.shiftKey),this.ctx.emit(`selectorClick`,e)}}),this.ctx.on(`mouseup`,()=>{this.ctx.selectorMove=!1,this.ctx.stopAdjustPosition(),setTimeout(()=>{this.ctx.disableHoverIconClick=!1},0)}),this.ctx.on(`cellHeaderHoverChange`,e=>{this.ctx.mousedown&&this.selectCols(e)}),this.ctx.on(`cellHoverChange`,e=>{this.ctx.mousedown&&this.selectCols(e)}),this.ctx.on(`cellHeaderMousedown`,(e,t)=>{this.ctx.stageElement.style.cursor===`pointer`||this.ctx.isPointer||(window.getComputedStyle(t.target).userSelect!==`text`&&t.preventDefault(),this.ctx.clearSelector(),e.operation?this.selectAll():this.selectCols(e))}),this.ctx.on(`keydown`,e=>{if(!this.ctx.editing&&!this.ctx.finding){if(e.ctrlKey&&e.code===`KeyV`||e.metaKey&&e.code===`KeyV`){this.paste();return}if(e.ctrlKey&&e.code===`KeyC`||e.metaKey&&e.code===`KeyC`){this.copy(),this.isCut=!1;return}if(e.ctrlKey&&e.code===`KeyX`||e.metaKey&&e.code===`KeyX`){this.isCut=!0,this.copy();return}if((e.ctrlKey&&e.code===`KeyA`||e.metaKey&&e.code===`KeyA`)&&(e.preventDefault(),this.selectAll()),e.code===`ArrowLeft`||e.shiftKey&&e.code===`Tab`){e.preventDefault(),this.moveFocus(`LEFT`);return}if(e.code===`ArrowUp`){e.preventDefault(),this.moveFocus(`TOP`);return}if(e.code===`ArrowRight`||e.code===`Tab`){e.preventDefault(),this.moveFocus(`RIGHT`);return}if(e.code===`ArrowDown`){e.preventDefault(),this.moveFocus(`BOTTOM`);return}if(e.code===`Delete`||e.code===`Backspace`){e.preventDefault();let{xArr:t,yArr:n}=this.ctx.selector;this.clearSelectedData(t,n);return}}}),this.ctx.on(`contextMenuClearSelected`,()=>{let{xArr:e,yArr:t}=this.ctx.selector;this.clearSelectedData(e,t)}),this.ctx.on(`contextMenuCopy`,()=>{this.copy()}),this.ctx.on(`contextMenuPaste`,()=>{this.paste()}),this.ctx.on(`contextMenuCut`,()=>{this.isCut=!0,this.copy()}),this.ctx.on(`setSelectorCell`,e=>{this.ctx.setFocusCell(e),this.click(),this.adjustBoundaryPosition()}),this.ctx.on(`selectCols`,e=>{this.selectCols(e)})}setSelector(e,t){if(this.ctx.dragHeaderIng)return;let{ENABLE_SELECTOR_SPAN_COL:n,ENABLE_SELECTOR_SPAN_ROW:r}=this.ctx.config,i=e,a=t;if(!r){let[e]=a;a=[e,e]}if(!n){let[e]=i;i=[e,e]}if(JSON.stringify(this.ctx.selector.xArr)!==JSON.stringify(i)||JSON.stringify(this.ctx.selector.yArr)!==JSON.stringify(a)){this.ctx.mousedown&&(this.ctx.selectorMove=!0,this.ctx.disableHoverIconClick=!0),this.ctx.selector.enable=!0;let{SELECTOR_AREA_MIN_X:e,SELECTOR_AREA_MAX_X:t,SELECTOR_AREA_MIN_Y:n,SELECTOR_AREA_MAX_Y:r,SELECTOR_AREA_MAX_X_OFFSET:o,SELECTOR_AREA_MAX_Y_OFFSET:s}=this.ctx.config,c=e,l=t||this.ctx.maxColIndex-o,u=n,d=r||this.ctx.maxRowIndex-s,[f,p]=i,[m,h]=a;if(f<c||p>l||m<u||h>d)return;if(this.ctx.config.ENABLE_MERGE_CELL_LINK){let e=this.adjustMergeCells(i,a);m=e.yArr[0],h=e.yArr[1],f=e.xArr[0],p=e.xArr[1],this.ctx.onlyMergeCell=e.onlyMergeCell}f===p&&m===h?this.ctx.selectOnlyOne=!0:this.ctx.selectOnlyOne=!1,i=[Math.max(c,f),Math.min(l,p)],a=[Math.max(u,m),Math.min(d,h)];let{BEFORE_SET_SELECTOR_METHOD:g}=this.ctx.config;if(typeof g==`function`){let e=g({focusCell:this.ctx.focusCell,xArr:i,yArr:a});if(!e)return;i=e.xArr,a=e.yArr}this.ctx.selector.xArr=i,this.ctx.selector.yArr=a,h===this.ctx.maxRowIndex&&m===0?this.ctx.selectColsIng=!0:this.ctx.selectColsIng=!1,p===this.ctx.maxColIndex&&f===0?this.ctx.selectRowsIng=!0:this.ctx.selectRowsIng=!1,this.ctx.emit(`setSelector`,this.ctx.selector),this.ctx.emit(`drawView`)}}adjustMergeCells(e,t){let[n,r]=t,[i,a]=e;if(r===this.ctx.maxRowIndex&&n===0||a===this.ctx.maxColIndex&&i===0)return{xArr:e,yArr:t,onlyMergeCell:!1};let o=[],s=[];for(let c=0;c<=t[1]-t[0];c++)for(let l=0;l<=e[1]-e[0];l++){let u=c+t[0],d=l+e[0],f=this.ctx.database.getVirtualBodyCell(u,d);f&&((u===n||u===r)&&o.push(f),(d===i||d===a)&&s.push(f))}let c=o.reduce((e,t)=>{let{yArr:n}=t.getSpanInfo(),[r,i]=n;return e.minY=Math.min(e.minY,r),e.maxY=Math.max(e.maxY,i),e},{minY:n,maxY:r}),l=s.reduce((e,t)=>{let{xArr:n}=t.getSpanInfo(),[r,i]=n;return e.minX=Math.min(e.minX,r),e.maxX=Math.max(e.maxX,i),e},{minX:i,maxX:a}),u=[l.minX,l.maxX],d=[c.minY,c.maxY],f=!1;if(l.minX!==l.maxX||c.minY!==c.maxY){let e=JSON.stringify(u)+JSON.stringify(d),t=this.ctx.focusCell?.getSpanInfo();f=(t&&JSON.stringify(t.xArr)+JSON.stringify(t.yArr))===e}return{xArr:u,yArr:d,onlyMergeCell:f}}selectCols(e){if(this.ctx.config.ENABLE_SELECTOR_SINGLE||!this.ctx.config.ENABLE_SELECTOR_ALL_ROWS||this.ctx.autofillMove||this.ctx.columnResizing||this.ctx.editing)return;let{SELECTOR_AREA_MIN_Y:t,SELECTOR_AREA_MAX_Y:n,SELECTOR_AREA_MAX_Y_OFFSET:r}=this.ctx.config,i=t,a=n||this.ctx.maxRowIndex-r;if(this.ctx.focusCellHeader){let{colIndex:t}=this.ctx.focusCellHeader;if(this.ctx.clearSelector(),this.ctx.mousedown&&e.colIndex>=t){let n=[t,e.colIndex+e.colspan-1],r=[i,a];this.setSelector(n,r)}else{let n=[e.colIndex,t+e.colspan-1],r=[i,a];this.setSelector(n,r)}}}selectAll(){if(this.ctx.autofillMove||this.ctx.editing)return;let{ENABLE_SELECTOR_ALL_ROWS:e,ENABLE_SELECTOR_ALL_COLS:t}=this.ctx.config;if(e&&t){let{SELECTOR_AREA_MIN_X:e,SELECTOR_AREA_MAX_X:t,SELECTOR_AREA_MIN_Y:n,SELECTOR_AREA_MAX_Y:r,SELECTOR_AREA_MAX_X_OFFSET:i,SELECTOR_AREA_MAX_Y_OFFSET:a}=this.ctx.config,o=e,s=t||this.ctx.maxColIndex-i,c=n,l=r||this.ctx.maxRowIndex-a,u=[o,s],d=[c,l];this.setSelector(u,d)}}selectRows(e,t=!0){if(this.ctx.config.ENABLE_SELECTOR_SINGLE||!this.ctx.config.ENABLE_SELECTOR_ALL_COLS||this.ctx.autofillMove||this.ctx.editing)return;let{SELECTOR_AREA_MIN_X:n,SELECTOR_AREA_MAX_X:r,SELECTOR_AREA_MAX_X_OFFSET:i}=this.ctx.config,a=r||this.ctx.maxColIndex-i,o=n;if(t){this.ctx.setFocusCell(e);let t=[o,a],n=[e.rowIndex,e.rowIndex];this.setSelector(t,n)}if(this.ctx.focusCell&&this.ctx.mousedown){let{rowIndex:t}=this.ctx.focusCell;if(e.rowIndex>=t){let n=[o,a],r=[t,e.rowIndex];this.setSelector(n,r)}else{let n=[o,a],r=[e.rowIndex,t];this.setSelector(n,r)}}}mouseenter(){if(this.ctx.config.ENABLE_SELECTOR_SINGLE||this.ctx.editing)return;let{mousedown:e,focusCell:t,hoverCell:n}=this.ctx;if(e&&t&&n){let{rowIndex:e,colIndex:r}=t,i=Math.min(n.colIndex,r),a=Math.max(n.colIndex,r),o=Math.min(n.rowIndex,e),s=Math.max(n.rowIndex,e),c=[i,a],l=[o,s];this.setSelector(c,l)}}click(e=!1){let{focusCell:t,clickCell:n}=this.ctx;if(t&&this.isInSettingRange(t.rowIndex,t.colIndex))if(this.ctx.selector.enable=!0,n&&e){if(this.ctx.config.ENABLE_SELECTOR_SINGLE)return;let{colIndex:e,rowIndex:r}=n,{colIndex:i,rowIndex:a}=t,o=Math.min(i,e),s=Math.max(i,e),c=Math.min(a,r),l=Math.max(a,r),u=[o,s],d=[c,l];this.setSelector(u,d)}else{this.ctx.emit(`cellSelectedClick`,t);let e=[t.colIndex,t.colIndex],n=[t.rowIndex,t.rowIndex];this.setSelector(e,n)}}clearCopyLine(){this.ctx.selector.xArrCopy=[-1,-1],this.ctx.selector.yArrCopy=[-1,-1]}getCell(e,t){return this.ctx.body.renderRows.find(t=>t.rowIndex===e)?.cells.find(e=>e.colIndex===t)}copy(){if(!this.ctx.config.ENABLE_COPY||this.ctx.domSelectionStr)return;let{value:e,xArr:t,yArr:n}=this.ctx.getSelectedData();if(this.ctx.config.ENABLE_MERGE_CELL_LINK&&this.ctx.database.hasMergeCell(t,n))if(this.ctx.onlyMergeCell&&this.ctx.focusCell){let r=this.ctx.focusCell;e=[[r.getValue()]],t=[r.colIndex,r.colIndex],n=[r.rowIndex,r.rowIndex]}else{let e={code:`ERR_MERGED_CELLS_COPY`,message:`Merged cells cannot span copy data`};this.ctx.hasEvent(`error`)?this.ctx.emit(`error`,e):alert(e.message);return}let{BEFORE_COPY_METHOD:r}=this.ctx.config;if(typeof r==`function`){let i=r({focusCell:this.ctx.focusCell,data:e,xArr:t,yArr:n});if(!i)return;e=i.data}let i=h(e);navigator.clipboard?navigator.clipboard.writeText(i).then(()=>{this.ctx.selector.xArrCopy=this.ctx.selector.xArr.slice(),this.ctx.selector.yArrCopy=this.ctx.selector.yArr.slice(),this.ctx.emit(`copyChange`,{xArr:this.ctx.selector.xArrCopy,yArr:this.ctx.selector.yArrCopy,data:e}),this.ctx.emit(`draw`)}).catch(e=>console.error(`Copy Failure:`,e)):console.error(`current browser does not support the Clipboard API`)}clearSelectedData(e,t,n=!1,r=null){let i=[],a=new Set;for(let n=0;n<=t[1]-t[0];n++)for(let o=0;o<=e[1]-e[0];o++){let s=n+t[0],c=o+e[0],l=this.ctx.database.getItemValueForRowIndexAndColIndex(s,c);if(l){let{rowKey:e,key:t}=l;this.ctx.database.getReadonly(e,t)||(a.add(e),i.push({rowKey:e,key:t,value:r,row:{}}))}}if(!i.length)return[];if(n)return i;this.ctx.database.batchSetItemValue(i,!0);let o=[];return a.forEach(e=>{o.push(this.ctx.database.getRowDataItemForRowKey(e))}),this.ctx.emit(`clearSelectedDataChange`,i,o),i}paste(){if(!navigator.clipboard){console.error(`current browser does not support the Clipboard API`);return}let{ENABLE_PASTER:e}=this.ctx.config;if(this.ctx.selector.enable&&e){let e=this.ctx.selector.yArr[0],t=this.ctx.selector.xArr[0],n=new Set;navigator.clipboard.readText().then(async r=>{let i=m(r),a=[t,t+i[0].length-1],o=[e,e+i.length-1],[s,c]=o,[l,u]=a,d=c-this.ctx.maxRowIndex,f=u-this.ctx.maxColIndex;(d>0||f>0)&&this.ctx.emit(`onPastedDataOverflow`,{maxY:c,maxX:u,minY:s,minX:l,overflowRowCount:d,overflowColCount:f,textArr:i});let p=i.length===1&&i[0].length===1;if(this.ctx.config.ENABLE_MERGE_CELL_LINK&&this.ctx.database.hasMergeCell(a,o)&&!p){let e={code:`ERR_MERGED_CELLS_PASTE`,message:`Merged cells cannot span paste data`};this.ctx.hasEvent(`error`)?this.ctx.emit(`error`,e):alert(e.message);return}let h=[];for(let r=0;r<=i.length-1;r++){let a=i[r].length;for(let o=0;o<=a-1;o++){let a=r+e,s=o+t,c=i[r][o],l=this.ctx.database.getItemValueForRowIndexAndColIndex(a,s);if(l){let{rowKey:e,key:t}=l;this.ctx.database.getReadonly(e,t)||(n.add(e),h.push({rowKey:e,key:t,value:c,row:{}}))}}}if(this.isCut){let e=this.clearSelectedData(this.ctx.selector.xArrCopy,this.ctx.selector.yArrCopy,!0),t=h.map(e=>`${e.rowKey}-${e.key}`);e.forEach(e=>{t.includes(`${e.rowKey}-${e.key}`)||h.unshift(e)}),this.isCut=!1}if(!h.length)return;let{BEFORE_PASTE_DATA_METHOD:g}=this.ctx.config;if(typeof g==`function`&&(h=await g(h.map(e=>({rowKey:e.rowKey,key:e.key,value:e.value,oldValue:this.ctx.database.getItemValue(e.rowKey,e.key),row:this.ctx.database.getRowDataItemForRowKey(e.rowKey)})),a,o,i),h&&!h.length))return;this.clearCopyLine(),this.ctx.batchSetItemValueByEditor(h,!0);let _=[];n.forEach(e=>{_.push(this.ctx.database.getRowDataItemForRowKey(e))}),this.ctx.emit(`pasteChange`,h,_),this.ctx.emit(`draw`)}).catch(e=>{console.error(`Failed to get the clipboard content:`,e)})}}moveFocus(e){if(this.ctx.editing)return;let{focusCell:t}=this.ctx;if(!t)return;let{colIndex:n=0,rowIndex:r=0}=t,i=this.ctx.maxColIndex,a=this.ctx.maxRowIndex;switch(e){case`LEFT`:n>0&&n--;break;case`TOP`:r>0&&r--;break;case`RIGHT`:n<i&&n++;break;case`BOTTOM`:r<a&&r++;break}let o=[n,n],s=[r,r],c=this.getCell(r,n);c&&(c.operation||this.isInSettingRange(c.rowIndex,c.colIndex)&&(this.ctx.setFocusCell(c),this.setSelector(o,s),this.adjustBoundaryPosition(),this.ctx.emit(`moveFocus`,c),this.ctx.emit(`draw`)))}isInSettingRange(e,t){let{SELECTOR_AREA_MIN_X:n,SELECTOR_AREA_MAX_X:r,SELECTOR_AREA_MIN_Y:i,SELECTOR_AREA_MAX_Y:a,SELECTOR_AREA_MAX_X_OFFSET:o,SELECTOR_AREA_MAX_Y_OFFSET:s}=this.ctx.config,c=n,l=r||this.ctx.maxColIndex-o,u=i,d=a||this.ctx.maxRowIndex-s;return!(t<c||t>l||e<u||e>d)}adjustBoundaryPosition(){let{stageHeight:e,stageWidth:t,focusCell:n,fixedRightWidth:r,fixedLeftWidth:i,header:a,footer:o,body:s,scrollX:c,scrollY:l,config:{SCROLLER_TRACK_SIZE:u,FOOTER_FIXED:d,FOOTER_POSITION:f,ENABLE_MERGE_CELL_LINK:p}}=this.ctx;if(!n)return;p&&this.ctx.onlyMergeCell&&n.updateSpanInfo();let{drawX:m,drawY:h,width:g,height:_,fixed:v}=n,y=i-m+1,b=n.drawX+g-(t-r)+1,x=a.height-h,S=_;S>s.visibleHeight&&(S=s.visibleHeight);let C=0;d&&(f===`top`?x=a.height+o.height-h:C=o.visibleHeight);let w=h+S-(e-C-u),T=c,E=l;b>0&&!v?T=Math.floor(c+b):y>0&&!v&&(T=Math.floor(c-y)),x>0?E=Math.floor(l-x):w>0&&(E=Math.floor(l+w)),(Math.abs(c-T)>2.5||Math.abs(l-E)>2.5)&&this.ctx.setScroll(T,E)}destroy(){}}class N{constructor(e){n(this,`ctx`),n(this,`maxColRowCell`),this.ctx=e,this.init()}init(){this.ctx.on(`mousemove`,e=>{if(this.ctx.stageElement.style.cursor===`crosshair`&&(this.ctx.stageElement.style.cursor=`default`),this.ctx.editing||!this.ctx.focusCell||!this.maxColRowCell)return;let{offsetX:t,offsetY:n}=this.ctx.getOffset(e),{colIndex:r,rowIndex:i,drawX:a,drawY:o,width:s,height:c}=this.maxColRowCell,l=r===this.ctx.maxColIndex||i===this.ctx.maxRowIndex?0:2,u=a+s-6+l,d=o+c-6+l;t>u&&n>d&&t<u+6&&n<d+6&&(this.ctx.stageElement.style.cursor=`crosshair`),this.ctx.autofillMove&&this.ctx.startAdjustPosition(e)}),this.ctx.on(`cellMouseenter`,e=>{let{xArr:t,yArr:n}=this.ctx.selector,r=t[1],i=n[1],{colIndex:a,rowIndex:o}=e;this.ctx.config.ENABLE_AUTOFILL&&a===r&&o===i&&(this.maxColRowCell=e),this.mouseenter(e)}),this.ctx.on(`mousedown`,()=>{this.ctx.stageElement.style.cursor===`crosshair`&&this.setMousedown()}),this.ctx.on(`mouseup`,()=>{this.setMouseUp(),this.ctx.stopAdjustPosition()})}isAutofillIng(){let{xArr:e,yArr:t}=this.ctx.selector;return!(JSON.stringify(this.ctx.autofill.xArr)===JSON.stringify(e)&&JSON.stringify(this.ctx.autofill.yArr)===JSON.stringify(t))}setMousedown(){this.ctx.autofill.enable=!0,this.ctx.autofillMove=!0,this.ctx.disableHoverIconClick=!0}setMouseUp(){this.ctx.autofill.enable&&(this.isAutofillIng()&&this.autofillData(),this.ctx.autofill.enable=!1,this.ctx.autofillMove=!1,this.ctx.autofill.xArr=[-1,-1],this.ctx.autofill.yArr=[-1,-1],setTimeout(()=>{this.ctx.disableHoverIconClick=!1},0))}setAutofill(e,t){let{ENABLE_AUTOFILL:n,ENABLE_AUTOFILL_SPAN_COL:r,ENABLE_AUTOFILL_SPAN_ROW:i}=this.ctx.config;if(!n)return;let a=e,o=t,s=this.ctx.selector.xArr,c=this.ctx.selector.yArr;if(!(!i&&JSON.stringify(c)!==JSON.stringify(o))&&!(!r&&JSON.stringify(s)!==JSON.stringify(a))&&(JSON.stringify(this.ctx.autofill.xArr)!==JSON.stringify(a)||JSON.stringify(this.ctx.autofill.yArr)!==JSON.stringify(o))){let{SELECTOR_AREA_MIN_X:e,SELECTOR_AREA_MAX_X:t,SELECTOR_AREA_MIN_Y:n,SELECTOR_AREA_MAX_Y:r,SELECTOR_AREA_MAX_X_OFFSET:i,SELECTOR_AREA_MAX_Y_OFFSET:s}=this.ctx.config,c=e,l=t||this.ctx.maxColIndex-i,u=n,d=r||this.ctx.maxRowIndex-s,[f,p]=a,[m,h]=o;if(f<c||m<u)return;a=[Math.max(c,f),Math.min(l,p)],o=[Math.max(u,m),Math.min(d,h)];let{BEFORE_SET_AUTOFILL_METHOD:g}=this.ctx.config;if(typeof g==`function`){let e=g({focusCell:this.ctx.focusCell,xArr:a,yArr:o});if(!e)return;a=e.xArr,o=e.yArr}this.ctx.autofill.xArr=a,this.ctx.autofill.yArr=o,this.ctx.emit(`setAutofill`,this.ctx.autofill),this.ctx.emit(`draw`)}}async autofillData(){let e=new Set,t=this.ctx.getSelectedData(),n=new Map;for(let e=0;e<=t.yArr[1]-t.yArr[0];e++)for(let r=0;r<=t.xArr[1]-t.xArr[0];r++){let i=e+t.yArr[0],a=r+t.xArr[0];n.set(`${i}-${a}`,!0)}let{value:r}=t,i=r[0].length,a=r.length,o=this.ctx.autofill.xArr,s=this.ctx.autofill.yArr,c=i===1&&a===1;if(this.ctx.config.ENABLE_MERGE_CELL_LINK&&this.ctx.database.hasMergeCell(o,s)&&!c){let e={code:`ERR_MERGED_CELLS_AUTOFILL`,message:`Merged cells cannot span autofill data`};this.ctx.hasEvent(`error`)?this.ctx.emit(`error`,e):alert(e.message);return}let l=[];for(let t=0;t<=s[1]-s[0];t++)for(let c=0;c<=o[1]-o[0];c++){let u=c+o[0],d=t+s[0],f=r[t%a][c%i],p=this.ctx.database.getItemValueForRowIndexAndColIndex(d,u),m=`${d}-${u}`;if(p&&!n.has(m)){let{rowKey:t,key:n}=p;this.ctx.database.getReadonly(t,n)||(e.add(t),l.push({rowKey:t,key:n,value:f,row:{}}))}}if(!l.length)return;this.ctx.selector.xArr=this.ctx.autofill.xArr,this.ctx.selector.yArr=this.ctx.autofill.yArr;let{BEFORE_AUTOFILL_DATA_METHOD:u}=this.ctx.config;if(typeof u==`function`&&(l=await u(l.map(e=>({rowKey:e.rowKey,key:e.key,value:e.value,oldValue:this.ctx.database.getItemValue(e.rowKey,e.key),row:this.ctx.database.getRowDataItemForRowKey(e.rowKey)})),o,s),l&&!l.length))return;this.ctx.batchSetItemValueByEditor(l,!0);let d=[];e.forEach(e=>{d.push(this.ctx.database.getRowDataItemForRowKey(e))}),this.ctx.emit(`autofillChange`,l,d),this.ctx.emit(`draw`)}mouseenter(e){if([`index`,`selection`,`index-selection`].includes(e.type))return;let{selector:t,autofill:n}=this.ctx;if(this.ctx.mousedown&&t.enable&&n.enable){let{rowIndex:n,colIndex:r}=e,i=t.xArr.slice(),a=t.yArr.slice();n>=t.yArr[0]&&n<=t.yArr[1]?r>t.xArr[1]?i.splice(1,1,r):r<t.xArr[0]&&i.splice(0,1,r):n>t.yArr[1]?a.splice(1,1,n):n<t.yArr[0]&&a.splice(0,1,n),this.setAutofill(i,a)}}destroy(){}}let P=Math.min,F=Math.max,I=Math.round,L=Math.floor,R=e=>({x:e,y:e}),ge={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function _e(e,t,n){return F(e,P(t,n))}function z(e,t){return typeof e==`function`?e(t):e}function B(e){return e.split(`-`)[0]}function V(e){return e.split(`-`)[1]}function ve(e){return e===`x`?`y`:`x`}function H(e){return e===`y`?`height`:`width`}function U(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ye(e){return ve(U(e))}function be(e,t,n){n===void 0&&(n=!1);let r=V(e),i=ye(e),a=H(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Ee(o)),[o,Ee(o)]}function xe(e){let t=Ee(e);return[W(e),t,W(t)]}function W(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}let Se=[`left`,`right`],G=[`right`,`left`],Ce=[`top`,`bottom`],we=[`bottom`,`top`];function K(e,t,n){switch(e){case`top`:case`bottom`:return n?t?G:Se:t?Se:G;case`left`:case`right`:return t?Ce:we;default:return[]}}function Te(e,t,n,r){let i=V(e),a=K(B(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(W)))),a}function Ee(e){let t=B(e);return ge[t]+e.slice(t.length)}function De(e){return{top:0,right:0,bottom:0,left:0,...e}}function q(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:De(e)}function J(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Oe(e,t,n){let{reference:r,floating:i}=e,a=U(t),o=ye(t),s=H(o),c=B(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(V(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function ke(e,t){var n;t===void 0&&(t={});let{x:r,y:i,platform:a,rects:o,elements:s,strategy:c}=e,{boundary:l=`clippingAncestors`,rootBoundary:u=`viewport`,elementContext:d=`floating`,altBoundary:f=!1,padding:p=0}=z(t,e),m=q(p),h=s[f?d===`floating`?`reference`:`floating`:d],g=J(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(h)))==null||n?h:h.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(s.floating)),boundary:l,rootBoundary:u,strategy:c})),_=d===`floating`?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,v=await(a.getOffsetParent==null?void 0:a.getOffsetParent(s.floating)),y=await(a.isElement==null?void 0:a.isElement(v))&&await(a.getScale==null?void 0:a.getScale(v))||{x:1,y:1},b=J(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:_,offsetParent:v,strategy:c}):_);return{top:(g.top-b.top+m.top)/y.y,bottom:(b.bottom-g.bottom+m.bottom)/y.y,left:(g.left-b.left+m.left)/y.x,right:(b.right-g.right+m.right)/y.x}}let Ae=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:ke},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Oe(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<50&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Oe(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},je=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=z(e,t)||{};if(l==null)return{};let d=q(u),f={x:n,y:r},p=ye(i),m=H(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=P(d[_],T),ee=P(d[v],T),D=E,te=C-h[m]-ee,O=C/2-h[m]/2+w,ne=_e(D,O,te),k=!c.arrow&&V(i)!=null&&O!==ne&&a.reference[m]/2-(O<D?E:ee)-h[m]/2<0,re=k?O<D?O-D:O-te:0;return{[p]:f[p]+re,data:{[p]:ne,centerOffset:O-ne-re,...k&&{alignmentOffset:re}},reset:k}}}),Me=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=z(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=B(r),_=U(o),v=B(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Ee(o)]:xe(o)),x=p!==`none`;!d&&x&&b.push(...Te(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=be(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==U(t))||T.every(e=>U(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=U(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},Ne=new Set([`left`,`top`]);async function Pe(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=B(n),s=V(n),c=U(n)===`y`,l=Ne.has(o)?-1:1,u=a&&c?-1:1,d=z(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}let Fe=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Pe(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Ie=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=z(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=U(B(i)),p=ve(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=_e(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=_e(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}};function Le(){return typeof window<`u`}function Re(e){return ze(e)?(e.nodeName||``).toLowerCase():`#document`}function Y(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function X(e){return((ze(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function ze(e){return Le()?e instanceof Node||e instanceof Y(e).Node:!1}function Z(e){return Le()?e instanceof Element||e instanceof Y(e).Element:!1}function Q(e){return Le()?e instanceof HTMLElement||e instanceof Y(e).HTMLElement:!1}function Be(e){return!Le()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Y(e).ShadowRoot}function Ve(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=$(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function He(e){return/^(table|td|th)$/.test(Re(e))}function Ue(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}let We=/transform|translate|scale|rotate|perspective|filter/,Ge=/paint|layout|strict|content/,Ke=e=>!!e&&e!==`none`,qe;function Je(e){let t=Z(e)?$(e):e;return Ke(t.transform)||Ke(t.translate)||Ke(t.scale)||Ke(t.rotate)||Ke(t.perspective)||!Xe()&&(Ke(t.backdropFilter)||Ke(t.filter))||We.test(t.willChange||``)||Ge.test(t.contain||``)}function Ye(e){let t=$e(e);for(;Q(t)&&!Ze(t);){if(Je(t))return t;if(Ue(t))return null;t=$e(t)}return null}function Xe(){return qe??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),qe}function Ze(e){return/^(html|body|#document)$/.test(Re(e))}function $(e){return Y(e).getComputedStyle(e)}function Qe(e){return Z(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function $e(e){if(Re(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Be(e)&&e.host||X(e);return Be(t)?t.host:t}function et(e){let t=$e(e);return Ze(t)?e.ownerDocument?e.ownerDocument.body:e.body:Q(t)&&Ve(t)?t:et(t)}function tt(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=et(e),i=r===e.ownerDocument?.body,a=Y(r);if(i){let e=nt(a);return t.concat(a,a.visualViewport||[],Ve(r)?r:[],e&&n?tt(e):[])}else return t.concat(r,tt(r,[],n))}function nt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function rt(e){let t=$(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Q(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=I(n)!==a||I(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function it(e){return Z(e)?e:e.contextElement}function at(e){let t=it(e);if(!Q(t))return R(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=rt(t),o=(a?I(n.width):n.width)/r,s=(a?I(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}let ot=R(0);function st(e){let t=Y(e);return!Xe()||!t.visualViewport?ot:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ct(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Y(e)?!1:t}function lt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=it(e),o=R(1);t&&(r?Z(r)&&(o=at(r)):o=at(e));let s=ct(a,n,r)?st(a):R(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=Y(a),t=r&&Z(r)?Y(r):r,n=e,i=nt(n);for(;i&&r&&t!==n;){let e=at(i),t=i.getBoundingClientRect(),r=$(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Y(i),i=nt(n)}}return J({width:u,height:d,x:c,y:l})}function ut(e,t){let n=Qe(e).scrollLeft;return t?t.left+n:lt(X(e)).left+n}function dt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-ut(e,n),y:n.top+t.scrollTop}}function ft(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=X(r),s=t?Ue(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=R(1),u=R(0),d=Q(r);if((d||!d&&!a)&&((Re(r)!==`body`||Ve(o))&&(c=Qe(r)),d)){let e=lt(r);l=at(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?dt(o,c):R(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function pt(e){return Array.from(e.getClientRects())}function mt(e){let t=X(e),n=Qe(e),r=e.ownerDocument.body,i=F(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=F(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+ut(e),s=-n.scrollTop;return $(r).direction===`rtl`&&(o+=F(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}function ht(e,t){let n=Y(e),r=X(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Xe();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=ut(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=25&&(a-=o)}else l<=25&&(a+=l);return{width:a,height:o,x:s,y:c}}function gt(e,t){let n=lt(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Q(e)?at(e):R(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function _t(e,t,n){let r;if(t===`viewport`)r=ht(e,n);else if(t===`document`)r=mt(X(e));else if(Z(t))r=gt(t,n);else{let n=st(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return J(r)}function vt(e,t){let n=$e(e);return n===t||!Z(n)||Ze(n)?!1:$(n).position===`fixed`||vt(n,t)}function yt(e,t){let n=t.get(e);if(n)return n;let r=tt(e,[],!1).filter(e=>Z(e)&&Re(e)!==`body`),i=null,a=$(e).position===`fixed`,o=a?$e(e):e;for(;Z(o)&&!Ze(o);){let t=$(o),n=Je(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Ve(o)&&!n&&vt(e,o))?r=r.filter(e=>e!==o):i=t,o=$e(o)}return t.set(e,r),r}function bt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Ue(t)?[]:yt(t,this._c):[].concat(n),r],o=_t(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=_t(t,a[e],i);s=F(n.top,s),c=P(n.right,c),l=P(n.bottom,l),u=F(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function xt(e){let{width:t,height:n}=rt(e);return{width:t,height:n}}function St(e,t,n){let r=Q(t),i=X(t),a=n===`fixed`,o=lt(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=R(0);function l(){c.x=ut(i)}if(r||!r&&!a)if((Re(t)!==`body`||Ve(i))&&(s=Qe(t)),r){let e=lt(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?dt(i,s):R(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function Ct(e){return $(e).position===`static`}function wt(e,t){if(!Q(e)||$(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return X(e)===n&&(n=n.ownerDocument.body),n}function Tt(e,t){let n=Y(e);if(Ue(e))return n;if(!Q(e)){let t=$e(e);for(;t&&!Ze(t);){if(Z(t)&&!Ct(t))return t;t=$e(t)}return n}let r=wt(e,t);for(;r&&He(r)&&Ct(r);)r=wt(r,t);return r&&Ze(r)&&Ct(r)&&!Je(r)?n:r||Ye(e)||n}let Et=async function(e){let t=this.getOffsetParent||Tt,n=this.getDimensions,r=await n(e.floating);return{reference:St(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Dt(e){return $(e).direction===`rtl`}let Ot={convertOffsetParentRelativeRectToViewportRelativeRect:ft,getDocumentElement:X,getClippingRect:bt,getOffsetParent:Tt,getElementRects:Et,getClientRects:pt,getDimensions:xt,getScale:at,isElement:Z,isRTL:Dt};function kt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function At(e,t){let n=null,r,i=X(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=L(d),h=L(i.clientWidth-(u+f)),g=L(i.clientHeight-(d+p)),_=L(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:F(0,P(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!kt(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function jt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=it(e),u=i||a?[...l?tt(l):[],...t?tt(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?At(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?lt(e):null;c&&g();function g(){let t=lt(e);h&&!kt(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}let Mt=Fe,Nt=Ie,Pt=Me,Ft=je,It=(e,t,n)=>{let r=new Map,i={platform:Ot,...n},a={...i.platform,_c:r};return Ae(e,t,{...i,platform:a})},Lt=class{constructor(e){n(this,`ctx`),n(this,`enable`,!1),n(this,`contentEl`),n(this,`floatingEl`),n(this,`arrowEl`),this.ctx=e;let{TOOLTIP_BG_COLOR:t,TOOLTIP_TEXT_COLOR:r,TOOLTIP_ZINDEX:i,TOOLTIP_CUSTOM_STYLE:a,CSS_PREFIX:o}=this.ctx.config;this.contentEl=document.createElement(`div`),this.arrowEl=document.createElement(`div`),this.floatingEl=document.createElement(`div`),this.floatingEl.className=`${o}-tooltip`,this.contentEl.className=`${o}-tooltip-content`,this.arrowEl.className=`${o}-tooltip-arrow`;let s={display:`none`,position:`absolute`,background:t,color:r,boxSizing:`border-box`,zIndex:i,padding:`8px`,borderRadius:`4px`,fontSize:`12px`,...a},c={position:`absolute`,width:`10px`,height:`10px`,background:s.background,backgroundColor:s.backgroundColor,transform:`rotate(45deg)`,zIndex:s.zIndex};Object.assign(this.arrowEl.style,c),Object.assign(this.floatingEl.style,s),this.floatingEl.appendChild(this.contentEl),this.floatingEl.appendChild(this.arrowEl),this.ctx.containerElement.appendChild(this.floatingEl),this.init()}init(){this.floatingEl.addEventListener(`mouseleave`,()=>{this.hide()}),this.ctx.on(`mouseout`,e=>{this.floatingEl.contains(e.relatedTarget)||this.hide()}),this.ctx.on(`onScroll`,()=>{this.hide()}),this.ctx.on(`startEdit`,()=>{this.hide()}),this.ctx.on(`visibleCellHoverChange`,(e,t)=>{this.floatingEl.contains(t.target)||(e.ellipsis||e.message)&&this.show(e)}),this.ctx.on(`visibleCellMouseleave`,(e,t)=>{this.floatingEl.contains(t.target)||this.hide()}),this.ctx.on(`cellHeaderMouseleave`,(e,t)=>{this.floatingEl.contains(t.target)||this.hide()}),this.ctx.on(`cellHeaderHoverChange`,(e,t)=>{this.floatingEl.contains(t.target)||e.ellipsis&&this.show(e)}),this.ctx.on(`cellFooterMouseleave`,(e,t)=>{this.floatingEl.contains(t.target)||this.hide()}),this.ctx.on(`cellFooterHoverChange`,(e,t)=>{this.floatingEl.contains(t.target)||e.ellipsis&&this.show(e)}),this.ctx.on(`cellShowTooltip`,(e,t)=>{this.show(e,t)}),this.ctx.on(`cellHideTooltip`,()=>{this.hide()})}show(e,t){if(this.ctx.contextMenuIng||!e.overflowTooltipShow||this.ctx.mousedown)return;this.floatingEl.style.display=`block`;let n=e.getText();e.message&&(n=e.message),t&&(n=t);let r=this.ctx.containerElement.getBoundingClientRect();if(!r)return;this.enable=!0,this.contentEl.style.maxWidth=`${e.overflowTooltipMaxWidth||500}px`,this.contentEl.style.minWidth=`100px`,this.contentEl.style.width=`100%`,this.contentEl.style.display=`inline-block`,this.contentEl.style.wordBreak=`break-all`,this.contentEl.style.lineHeight=`1.5`,this.contentEl.innerText=n;let i=e.drawX+r.x,a=e.drawY+r.y;It({getBoundingClientRect(){return{width:e.visibleWidth,height:e.visibleHeight,x:i,y:a,left:i,right:i+e.visibleWidth,top:a,bottom:a+e.visibleHeight}}},this.floatingEl,{placement:e.overflowTooltipPlacement,middleware:[Nt(),Pt(),Mt(6),Ft({element:this.arrowEl})]}).then(e=>{let{x:t,y:n,placement:r,middlewareData:i}=e;if(Object.assign(this.floatingEl.style,{top:`${n}px`,left:`${t}px`}),i.arrow){let e=i.arrow;[`left`,`left-start`,`left-end`].includes(r)?Object.assign(this.arrowEl.style,{top:`${e.y}px`,bottom:``,left:``,right:`-5px`}):[`right`,`right-start`,`right-end`].includes(r)?Object.assign(this.arrowEl.style,{top:`${e.y}px`,bottom:``,left:`-5px`,right:``}):[`bottom`,`bottom-start`,`bottom-end`].includes(r)?Object.assign(this.arrowEl.style,{top:`-5px`,bottom:``,left:`${e.x}px`,right:``}):[`top`,`top-start`,`top-end`].includes(r)&&Object.assign(this.arrowEl.style,{top:``,bottom:`-5px`,left:`${e.x}px`,right:``})}})}hide(){this.enable&&(this.enable=!1,this.floatingEl.style.display=`none`)}destroy(){this.contentEl.remove(),this.arrowEl.remove(),this.floatingEl.remove()}};class Rt{constructor(e){n(this,`editorEl`),n(this,`inputEl`),n(this,`enable`,!1),n(this,`cellTarget`,null),n(this,`selectorArrStr`,``),n(this,`ctx`),n(this,`drawY`,0),n(this,`drawX`,0),n(this,`cancel`,!1),this.ctx=e,this.initTextEditor(),this.init()}init(){this.ctx.on(`outsideMousedown`,()=>{this.cellTarget&&this.cellTarget.editorType===`text`&&this.clearEditor()}),this.ctx.on(`moveFocus`,e=>{this.cellTarget=e,this.resetEditorStyle();let{xArr:t,yArr:n}=this.ctx.selector;this.selectorArrStr=JSON.stringify(t)+JSON.stringify(n),this.focusInput()}),this.ctx.on(`onScroll`,()=>{this.enable&&this.doneEdit()}),this.ctx.on(`hoverIconClick`,e=>{this.editCell(e.rowIndex,e.colIndex)}),this.ctx.on(`keydown`,e=>{if(!this.ctx.isTarget(e)||!this.ctx.focusCell||this.ctx.finding)return;let{focusCell:t}=this.ctx;if(e.code===`Escape`&&this.ctx.editing){this.cancel=!0;let{focusCell:e}=this.ctx;e&&(this.ctx.emit(`setSelectorCell`,e),this.cellTarget=e),this.doneEdit();return}if((e.altKey||e.metaKey)&&e.key===`Enter`&&this.ctx.editing&&this.inputEl){e.preventDefault();let t=this.inputEl.selectionStart,n=this.inputEl.value.substring(0,t),r=this.inputEl.value.substring(t);this.inputEl.value=n+`
|
|
5
|
+
`+r,this.inputEl.selectionStart=this.inputEl.selectionEnd=t+1,this.autoSize();return}if(e.code===`Tab`&&this.ctx.editing){if(e.preventDefault(),this.doneEdit(),e.shiftKey){this.ctx.emit(`setMoveFocus`,`LEFT`);return}this.ctx.emit(`setMoveFocus`,`RIGHT`);return}if(e.key===`Enter`&&this.ctx.editing){if(e.preventDefault(),this.doneEdit(),e.shiftKey){this.ctx.emit(`setMoveFocus`,`TOP`);return}this.ctx.emit(`setMoveFocus`,`BOTTOM`);return}if(e.key===`Enter`&&!this.ctx.editing){e.preventDefault(),this.startEdit();return}let n=e.key,r=e.ctrlKey,i=e.altKey,a=e.shiftKey,o=e.metaKey;if(!(r||i||a||o||`Enter.CapsLock.Escape.Tab.Backspace.Delete.ArrowUp.ArrowDown.ArrowLeft.ArrowRight.Home.End.PageUp.PageDown.Insert.F1.F2.F3.F4.F5.F6.F7.F8.F9.F10.F11.F12`.split(`.`).includes(n))){if(document.activeElement!==this.inputEl&&t.editorType===`text`){e.preventDefault();return}this.startEdit(!0)}}),this.ctx.on(`cellClick`,e=>{if(this.ctx.isPointer||!this.isInSelectorRange(e.rowIndex,e.colIndex))return;let{xArr:t,yArr:n}=this.ctx.selector,r=JSON.stringify(t)+JSON.stringify(n);if(this.focusInput(),this.selectorArrStr===r&&this.cellTarget){if(this.ctx.config.ENABLE_MERGE_CELL_LINK&&this.ctx.onlyMergeCell){this.startEdit();return}if(this.ctx.selectOnlyOne&&e.rowKey===this.cellTarget.rowKey&&e.key===this.cellTarget.key){this.startEdit();return}}if(this.selectorArrStr=r,this.doneEdit(),this.cellTarget=e,this.resetEditorStyle(),this.ctx.config.ENABLE_EDIT_SINGLE_CLICK){if(this.ctx.config.ENABLE_MERGE_CELL_LINK&&this.ctx.onlyMergeCell){this.startEdit();return}this.ctx.selectOnlyOne&&this.startEdit()}})}isInSelectorRange(e,t){let{xArr:n,yArr:r}=this.ctx.selector,[i,a]=n,[o,s]=r;return!(t<i||t>a||e<o||e>s)}initTextEditor(){this.inputEl=document.createElement(`textarea`),this.inputEl.id=`e-virt-table-editor-textarea`,this.inputEl.setAttribute(`rows`,`1`),this.inputEl.setAttribute(`tabindex`,`-1`),this.inputEl.addEventListener(`input`,this.autoSize.bind(this)),this.editorEl=this.ctx.editorElement,this.inputEl.className=`e-virt-table-editor-textarea`,this.editorEl.appendChild(this.inputEl),this.ctx.containerElement.appendChild(this.editorEl)}autoSize(){if(!this.ctx.editing)return;let e=this.inputEl.value;this.cellTarget&&this.cellTarget.type===`number`&&e!==``&&(this.ctx.emit(`cellHideTooltip`),/^-?\d+(\.\d+)?$/.test(e)||this.ctx.emit(`cellShowTooltip`,this.cellTarget,this.ctx.config.NUMBER_ERROR_TIP)),this.inputEl.style.height=`auto`;let t=this.inputEl.scrollHeight,n=this.ctx.body.visibleHeight;t>n&&(t=n);let{stageHeight:r,footer:i,header:a,config:{SCROLLER_TRACK_SIZE:o}}=this.ctx,s=r-i.height-o;this.editorEl.style.bottom=`auto`,this.drawY<a.height&&(this.editorEl.style.top=`${a.height-1}px`),this.drawY+t>s&&(this.editorEl.style.left=`${this.drawX-1}px`,this.editorEl.style.top=`auto`,this.editorEl.style.bottom=`${r-s}px`),this.inputEl.style.height=`${t}px`}startEditByInput(e,t=!1){let n=t?null:e.getValue(),{editorType:r}=e;if(r===`none`)return;e.update(),this.ctx.config.ENABLE_MERGE_CELL_LINK&&e.updateSpanInfo();let{height:i,width:a,drawY:o,drawX:s}=e;this.drawX=s,this.drawY=o;let{config:{CELL_PADDING:c},header:l}=this.ctx,u=this.ctx.body.visibleHeight;i>u&&(i=u),this.editorEl.style.zIndex=`100`,this.editorEl.style.left=`${this.drawX-1}px`,this.editorEl.style.top=`${this.drawY}px`,this.editorEl.style.bottom=`auto`,this.editorEl.style.maxWidth=`none`,this.editorEl.style.maxHeight=`${u}px`,[`text`].includes(r)?(this.inputEl.style.opacity=`1`,this.inputEl.style.position=`relative`,this.inputEl.style.minWidth=`${a-1}px`,this.inputEl.style.minHeight=`${i-1}px`,this.inputEl.style.maxHeight=`${u}px`,this.inputEl.style.width=`${a}px`,this.inputEl.style.height=`auto`,this.inputEl.style.padding=`${c}px`,this.inputEl.value=``,n!==null&&(this.inputEl.value=n),(this.inputEl.scrollHeight>i||this.drawY<l.height)&&this.autoSize()):(this.inputEl.style.opacity=`0`,this.inputEl.style.width=`1px`,this.inputEl.style.height=`1px`,this.inputEl.style.position=`absolute`,this.inputEl.style.left=`0px`,this.inputEl.style.top=`0px`)}doneEditByInput(){if(this.cellTarget&&this.cellTarget.editorType===`text`){let{rowKey:e,key:t}=this.cellTarget,n=this.cellTarget.getValue(),r=this.inputEl.value;r!==n&&!(r===``&&n===null)&&!this.cancel&&this.ctx.setItemValueByEditor(e,t,r,!0)}}focusInput(){document.activeElement!==this.inputEl&&this.inputEl.focus({preventScroll:!0})}startEdit(e=!1){this.cancel=!1;let{ENABLE_EDIT_CLICK_SELECTOR:t}=this.ctx.config;if(!t)return;let n=this.ctx.focusCell;n&&(n.isVerticalVisible()&&n.isHorizontalVisible()||this.ctx.emit(`scrollToIndex`,n.rowIndex,n.colIndex),this.editCell(n.rowIndex,n.colIndex,e))}editCell(e,t,n=!1){let r=this.ctx.body.renderRows.find(t=>t.rowIndex===e);if(!r)return;let i=r.cells.find(e=>e.colIndex===t);if(!i||!(i.isVerticalVisible()&&i.isHorizontalVisible()))return;this.ctx.emit(`setSelectorCell`,i);let a=this.ctx.focusCell;if(!a||[`index`,`index-selection`,`selection`].includes(a.type)||this.enable)return;let{rowKey:o,key:s}=a,c=this.ctx.database.getReadonly(o,s);a&&!c&&(this.enable=!0,this.ctx.editing=!0,this.cellTarget=a,this.startEditByInput(this.cellTarget,n),this.ctx.emit(`startEdit`,this.cellTarget),this.ctx.emit(`draw`))}doneEdit(){this.enable&&(this.doneEditByInput(),this.ctx.emit(`cellHideTooltip`),this.ctx.emit(`doneEdit`,this.cellTarget),this.enable=!1,this.ctx.editing=!1,this.resetEditorStyle(),setTimeout(()=>{this.focusInput()},0),this.ctx.emit(`draw`))}resetEditorStyle(){let e=this.cellTarget;e&&(this.editorEl.style.left=`${e.drawX}px`,this.editorEl.style.top=`${e.drawY}px`,this.editorEl.style.maxWidth=`1px`,this.editorEl.style.maxHeight=`1px`,this.editorEl.style.zIndex=`-1`)}clearEditor(){this.doneEdit(),this.cellTarget=null,this.selectorArrStr=``,this.ctx.clearSelector(),this.ctx.focusCell=void 0,this.inputEl.blur(),this.ctx.emit(`draw`)}destroy(){var e;(e=this.editorEl)==null||e.remove()}}let zt=class{constructor(e){n(this,`ctx`),n(this,`emptyEl`),this.ctx=e;let{EMPTY_TEXT:t,EMPTY_CUSTOM_STYLE:r}=this.ctx.config;this.ctx.emptyElement?this.emptyEl=this.ctx.emptyElement:(this.emptyEl=document.createElement(`div`),this.emptyEl.innerText=t),this.emptyEl.className=`e-virt-table-empty`,this.emptyEl.style.display=`none`,this.ctx.containerElement.appendChild(this.emptyEl),this.ctx.on(`emptyChange`,({type:e,headerHeight:t,bodyHeight:n,footerHeight:i})=>{let a=t+(n+i)/2,o={display:e===`empty`?`block`:`none`,top:`${a}px`,...r};Object.assign(this.emptyEl.style,o)})}destroy(){this.emptyEl.remove()}};class Bt{constructor(e){n(this,`ctx`),n(this,`observer`),this.ctx=e,this.init()}arerMapsEqual(e,t){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||t.get(n)!==r)return!1;return!0}init(){this.observer=new MutationObserver(a(()=>{let e=this.ctx.overlayerElement.querySelectorAll(`[data-auto-height="true"]`),t=new Map;e.forEach(e=>{let n=Number(e.getAttribute(`data-row-index`)),r=Number(e.getAttribute(`data-col-index`));if(isNaN(n)||isNaN(r))return;let i=e.getBoundingClientRect(),a=`${n}_${r}`;t.set(a,Math.round(i.height))});let n=this.ctx.database.getOverlayerAutoHeightMap();if(!this.arerMapsEqual(n,t)){if(this.ctx.database.setOverlayerAutoHeightMap(t),n.size===0&&t.size===0)return;this.ctx.emit(`draw`)}},16.67)),this.observer.observe(this.ctx.overlayerElement,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),this.ctx.overlayerElement.getAttribute(`data-overlayer`)===`default`&&this.ctx.on(`overlayerChange`,e=>{let t=this.ctx.overlayerElement;t.replaceChildren(),Object.assign(t.style,e.style),e.views.forEach(e=>{let n=document.createElement(`div`);n.className=e.class,Object.assign(n.style,e.style),e.views.forEach(e=>{let t=document.createElement(`div`);Object.assign(t.style,e.style),e.cells.forEach(e=>{let n=document.createElement(`div`);Object.assign(n.style,e.style),Object.keys(e.domDataset).forEach(t=>{n.setAttribute(t,e.domDataset[t])}),typeof e.render==`function`&&e.render(n,e),t.appendChild(n)}),n.appendChild(t)}),t.appendChild(n)})})}draw(){let e=this.getContainer();this.ctx.emit(`overlayerChange`,e)}destroy(){this.observer&&this.observer.disconnect(),this.ctx.emit(`overlayerChange`,{style:{},views:[]})}getContainer(){let e=this.getHeader(),t=this.getBody(),n=this.getFooter(),r=[],{FOOTER_FIXED:i,FOOTER_POSITION:a}=this.ctx.config;return r=i?a===`top`?[e,n,t]:[e,t,n]:[e,t],{views:r}}getHeader(){let{fixedLeftWidth:e,fixedRightWidth:t,config:{SCROLLER_TRACK_SIZE:n,CSS_PREFIX:r}}=this.ctx,{visibleWidth:i,visibleHeight:a,renderCellHeaders:o}=this.ctx.header,s=[],c=[],l=[];o.forEach(e=>{e.render&&(e.fixed===`left`?c.push(e):e.fixed===`right`?l.push(e):s.push(e))});let u=t-n,d={key:`left`,style:{position:`absolute`,top:`0px`,left:`0px`,overflow:`hidden`,width:`${e}px`,height:`${a}px`},cells:c},f={key:`center`,style:{position:`absolute`,top:`0px`,left:`${e}px`,overflow:`hidden`,width:`${i-e-u+1}px`,height:`${a}px`},cells:s},p={key:`right`,style:{position:`absolute`,top:`0px`,right:`0px`,overflow:`hidden`,width:`${u+1}px`,height:`${a}px`},cells:l};return{type:`header`,class:`${r}-overlayer-header`,style:{position:`relative`,overflow:`hidden`,width:`${i}px`,height:`${a}px`},views:[d,f,p]}}getBody(){let e=[],t=[],n=[],r=this.ctx.body.renderRows;this.ctx.config.FOOTER_FIXED||(r=r.concat(this.ctx.footer.renderRows)),r.forEach(r=>{r.cells.forEach(r=>{r.cellType===`footer`&&(r.render=r.renderFooter),r.render&&(r.fixed===`left`?t.push(r):r.fixed===`right`?n.push(r):e.push(r))})});let{fixedLeftWidth:i,fixedRightWidth:a,config:{SCROLLER_TRACK_SIZE:o,CSS_PREFIX:s}}=this.ctx,{visibleWidth:c,visibleHeight:l}=this.ctx.body,u=a-o,d={key:`left`,style:{position:`absolute`,top:`0.5px`,left:`0.5px`,overflow:`hidden`,width:`${i}px`,height:`${l}px`},cells:t},f={key:`center`,style:{position:`absolute`,top:`0.5px`,left:`${i-.5}px`,overflow:`hidden`,width:`${c-i-u}px`,height:`${l}px`},cells:e},p={key:`right`,style:{position:`absolute`,top:`0px`,right:`0px`,overflow:`hidden`,width:`${u}px`,height:`${l}px`},cells:n};return{type:`body`,class:`${s}-overlayer-body`,style:{position:`relative`,overflow:`hidden`,width:`${c}px`,height:`${l}px`},views:[d,f,p]}}getFooter(){let e=[],t=[],n=[];this.ctx.footer.renderRows.forEach(r=>{r.cells.forEach(r=>{r.cellType===`footer`&&r.renderFooter&&(r.render=r.renderFooter,r.fixed===`left`?t.push(r):r.fixed===`right`?n.push(r):e.push(r))})});let{fixedLeftWidth:r,fixedRightWidth:i,config:{SCROLLER_TRACK_SIZE:a,CSS_PREFIX:o}}=this.ctx,{visibleWidth:s,visibleHeight:c}=this.ctx.footer,l=i-a,u={key:`left`,style:{position:`absolute`,top:`0.5px`,left:`0.5px`,overflow:`hidden`,width:`${r}px`,height:`${c}px`},cells:t},d={key:`center`,style:{position:`absolute`,top:`0.5px`,left:`${r-.5}px`,overflow:`hidden`,width:`${s-r-l}px`,height:`${c}px`},cells:e},f={key:`right`,style:{position:`absolute`,top:`0.5px`,right:`0.5px`,overflow:`hidden`,width:`${l}px`,height:`${c}px`},cells:n};return{type:`footer`,class:`${o}-overlayer-footer`,style:{position:`relative`,overflow:`hidden`,width:`${s}px`,height:`${c}px`},views:[u,d,f]}}}class Vt{constructor(e,t=[],r={}){n(this,`container`),n(this,`menuData`),n(this,`onClick`),n(this,`activeSubmenus`,new Set),n(this,`boundMouseEnterHandler`),n(this,`boundMouseLeaveHandler`),n(this,`boundClickHandler`),this.container=e,this.menuData=t,this.onClick=r.onClick,this.boundMouseEnterHandler=e=>this.handleMouseEvent(e,`enter`),this.boundMouseLeaveHandler=e=>this.handleMouseEvent(e,`leave`),this.boundClickHandler=e=>this.handleClick(e),this.createMenu(),this.bindEvents()}createMenu(){this.container.className=`e-virt-table-main-menu`,this.container.style.display=`block`;let e=document.createDocumentFragment();this.menuData.forEach(t=>{e.appendChild(this.createMenuItem(t))}),this.container.appendChild(e)}createMenuItem(e,t=!1){var n;let r=this.createElement(`div`,t?`e-virt-table-submenu-item`:`e-virt-table-menu-item`);r.setAttribute(t?`data-submenu`:`data-menu`,e.value),e.disabled&&r.classList.add(`disabled`);let i=this.createElement(`div`,`e-virt-table-menu-item-content`);if(e.icon){let t=this.createElement(`span`,`e-virt-table-menu-item-icon`);t.innerHTML=e.icon,i.appendChild(t)}else i.classList.add(`menu-item-no-icon`);let a=this.createElement(`span`,`e-virt-table-menu-item-text`);if(a.textContent=e.label,i.appendChild(a),r.appendChild(i),(n=e.children)!=null&&n.length){let t=this.createElement(`span`,`e-virt-table-menu-arrow`);t.innerHTML=ne,r.appendChild(t);let n=this.createSubmenu(e.children);r._submenu=n,this.container.appendChild(n)}return r}createSubmenu(e){let t=this.createElement(`div`,`e-virt-table-submenu`);return e.forEach(e=>{t.appendChild(this.createMenuItem(e,!0))}),t}createElement(e,t=``){let n=document.createElement(e);return t&&(n.className=t),n}bindEvents(){this.container.addEventListener(`mouseenter`,this.boundMouseEnterHandler,!0),this.container.addEventListener(`mouseleave`,this.boundMouseLeaveHandler,!0),this.container.addEventListener(`click`,this.boundClickHandler)}handleMouseEvent(e,t){e.stopPropagation();let n=e.target.closest(`.e-virt-table-menu-item, .e-virt-table-submenu-item`);n&&(this.container.contains(n)||n.classList.contains(`e-virt-table-submenu-item`))&&(t===`enter`?this.handleHover(n):this.handleLeave(n))}handleHover(e){e.classList.contains(`e-virt-table-menu-item`)&&(this.container.querySelectorAll(`.e-virt-table-menu-item`).forEach(e=>e.classList.remove(`active`)),e.classList.contains(`disabled`)||e.classList.add(`active`));let t=e._submenu||e.querySelector(`.e-virt-table-submenu`);t&&(this.hideSiblingSubmenus(e),this.showSubmenu(e,t))}handleLeave(e){let t=e._submenu||e.querySelector(`.e-virt-table-submenu`);setTimeout(()=>{let n=t;n&&!n.matches(`:hover`)&&!e.matches(`:hover`)&&(this.hideSubmenu(n),e.classList.contains(`e-virt-table-menu-item`)&&e.classList.remove(`active`))},150)}hideSiblingSubmenus(e){let t;if(e.classList.contains(`e-virt-table-menu-item`))t=this.container.querySelectorAll(`.e-virt-table-menu-item`);else{let n=e.closest(`.e-virt-table-submenu`);if(n)t=n.querySelectorAll(`.e-virt-table-submenu-item`);else return}t.forEach(t=>{t!==e&&t._submenu&&this.hideSubmenu(t._submenu)})}async showSubmenu(e,t){this.activeSubmenus.has(t)||(this.activeSubmenus.add(t),t.classList.add(`show`),t._cleanup=jt(e,t,async()=>{let n=this.container.getBoundingClientRect(),r=window.innerWidth,i=t.offsetWidth||200,a=r-n.right,o=n.left,{x:s,y:c}=await It(e,t,{placement:a>=i||a>=o?`right-start`:`left-start`,middleware:[Mt(8),Nt({padding:8})]});Object.assign(t.style,{left:`${s}px`,top:`${c}px`})}))}hideSubmenu(e){if(!this.activeSubmenus.has(e))return;this.activeSubmenus.delete(e),e.classList.remove(`show`),this.hideAllChildSubmenus(e);let t=e;t._cleanup&&(t._cleanup(),delete t._cleanup)}hideAllChildSubmenus(e){e.querySelectorAll(`.e-virt-table-submenu-item`).forEach(e=>{if(e._submenu){let t=e._submenu;if(this.activeSubmenus.has(t)){this.activeSubmenus.delete(t),t.classList.remove(`show`);let e=t;e._cleanup&&(e._cleanup(),delete e._cleanup),this.hideAllChildSubmenus(t)}}})}handleClick(e){e.stopPropagation();let t=e.target.closest(`.e-virt-table-menu-item, .e-virt-table-submenu-item`);if(!t||t.classList.contains(`disabled`))return;if(t.classList.contains(`e-virt-table-menu-item`)){let e=t._submenu||t.querySelector(`.e-virt-table-submenu`);if(e){this.showSubmenu(t,e);return}}let n=t.getAttribute(`data-menu`)||t?.getAttribute(`data-submenu`),r=this.findMenuItem(n||``);r&&this.onClick&&this.onClick(r,n||``)}findMenuItem(e,t=this.menuData){for(let n of t){if(n.value===e)return n;if(n.children){let t=this.findMenuItem(e,n.children);if(t)return t}}return null}positionMenu(e){let t={getBoundingClientRect:()=>({width:0,height:0,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,x:e.clientX,y:e.clientY}),contextElement:document.body};jt(t,this.container,()=>{It(t,this.container,{placement:`right-start`,middleware:[Mt(),Nt(),Pt()]}).then(({x:e,y:t})=>{this.container&&Object.assign(this.container.style,{left:`${e}px`,top:`${t}px`})})})}destroy(){this.container.removeEventListener(`mouseenter`,this.boundMouseEnterHandler,!0),this.container.removeEventListener(`mouseleave`,this.boundMouseLeaveHandler,!0),this.container.removeEventListener(`click`,this.boundClickHandler),this.cleanupAllSubmenus(this.container),this.container.style.display=`none`,this.container.replaceChildren()}removeMenuItem(e){let t=this.container.querySelector(`[data-menu="${e}"]`);if(!t)return!1;let n=t.querySelector(`.e-virt-table-submenu`);return n&&this.cleanupSubmenuRecursively(n),t.remove(),!0}removeSubMenuItem(e){let t=this.container.querySelector(`[data-submenu="${e}"]`);if(!t)return!1;let n=t.closest(`.e-virt-table-submenu`),r=t._submenu;if(r&&this.cleanupSubmenuRecursively(r),t.remove(),n&&n.querySelectorAll(`.e-virt-table-submenu-item`).length===0){let e=this.container.querySelector(`[data-menu]`);if(e&&e._submenu===n)this.removeMenuItem(e.getAttribute(`data-menu`)||``);else{let e=this.container.querySelectorAll(`[data-menu], [data-submenu]`);for(let t of e)if(t._submenu===n){let e=t.getAttribute(`data-menu`)||t.getAttribute(`data-submenu`);e&&(t.hasAttribute(`data-menu`)?this.removeMenuItem(e):this.removeSubMenuItem(e));break}}}return!0}cleanupAllSubmenus(e){e.querySelectorAll(`.e-virt-table-menu-item`).forEach(e=>{e._submenu&&=(this.cleanupSubmenuRecursively(e._submenu),void 0)})}cleanupSubmenuRecursively(e){let t=e;t._cleanup&&(t._cleanup(),delete t._cleanup),e.querySelectorAll(`.e-virt-table-submenu-item`).forEach(e=>{e._submenu&&this.cleanupSubmenuRecursively(e._submenu)}),e.remove()}}class Ht{constructor(e){n(this,`ctx`),n(this,`contextMenuEl`),n(this,`currentDOMTreeMenu`),n(this,`isCustom`,!1),this.ctx=e,this.ctx.contextMenuElement?(this.contextMenuEl=this.ctx.contextMenuElement,this.contextMenuEl.className=`e-virt-table-main-menu`,this.isCustom=!0):(this.contextMenuEl=document.createElement(`div`),this.isCustom=!1),this.ctx.containerElement.appendChild(this.contextMenuEl),this.init()}init(){this.ctx.on(`outsideMousedown`,()=>{this.hide()}),this.ctx.on(`cellContextMenuClick`,async(e,t)=>{if(this.isCustom){this.contextMenuEl.style.display=`block`,this.positionMenu(t);return}let{ENABLE_CONTEXT_MENU:n,CUSTOM_BODY_CONTEXT_MENU:r,CONTEXT_MENU:i,BEFORE_BODY_CONTEXT_MENU_METHOD:a}=this.ctx.config,o=[...i,...r];if(a&&(o=await a({list:o,cell:e,hide:this.hide.bind(this)})),!n||o.length===0)return;t.preventDefault();let{xArr:s,yArr:c}=this.ctx.selector,[l,u]=s,[d,f]=c,{rowIndex:p,colIndex:m}=e;p>=d&&p<=f&&m>=l&&m<=u||this.ctx.emit(`setSelectorCell`,e,t),this.currentDOMTreeMenu&&this.currentDOMTreeMenu.destroy(),this.ctx.contextMenuIng=!0,this.currentDOMTreeMenu=new Vt(this.contextMenuEl,o,{onClick:(n,r)=>{r===`copy`?(this.ctx.emit(`contextMenuCopy`),this.hide()):r===`paste`?(this.ctx.emit(`contextMenuPaste`),this.hide()):r===`cut`?(this.ctx.emit(`contextMenuCut`),this.hide()):r===`clearSelected`?(this.ctx.emit(`contextMenuClearSelected`),this.hide()):n.event&&n.event(t,{hide:this.hide.bind(this),cell:e})}}),this.currentDOMTreeMenu.positionMenu(t)}),this.ctx.on(`cellHeaderContextMenuClick`,async(e,t)=>{if(this.isCustom){this.contextMenuEl.style.display=`block`,this.positionMenu(t);return}let{SELECTOR_AREA_MIN_X:n,SELECTOR_AREA_MAX_X:r,SELECTOR_AREA_MAX_X_OFFSET:i,BEFORE_HEADER_CONTEXT_MENU_METHOD:a}=this.ctx.config,o=n,s=r||this.ctx.maxColIndex-i;if(e.colIndex<o||e.colIndex>s)return;let{HEADER_CONTEXT_MENU:c,CUSTOM_HEADER_CONTEXT_MENU:u,ENABLE_HEADER_CONTEXT_MENU:d}=this.ctx.config,f=[...c,...u];if(a&&(f=await a({list:f,cell:e,hide:this.hide.bind(this)})),!d||f.length===0)return;t.preventDefault();let{xArr:p}=this.ctx.selector,[m,h]=p,{colIndex:g}=e;g>=m&&g<=h||(this.ctx.focusCellHeader=e,this.ctx.emit(`selectCols`,e)),this.currentDOMTreeMenu&&this.currentDOMTreeMenu.destroy();let _=this.ctx.database.getColumns(),v=f.map(e=>e.value===`visible`?{...e,children:this.filterColumns(_)}:e);this.ctx.contextMenuIng=!0,this.currentDOMTreeMenu=new Vt(this.contextMenuEl,v,{onClick:(n,r)=>{let{xArr:i}=this.ctx.selector,[a,o]=i;if(r===`fixedLeft`||r===`fixedRight`||r===`fixedNone`){let e=this.ctx.header.allCellHeaders.filter(e=>e.colIndex>=a&&e.colIndex<=o).filter(e=>e.level===0).filter(e=>!e.column.fixedDisabled).map(e=>e.key);this.ctx.database.setCustomHeaderFixedData(e,r===`fixedLeft`?`left`:r===`fixedRight`?`right`:``),this.hide()}else if(r===`hide`){let e=this.ctx.header.leafCellHeaders.filter(e=>e.colIndex>=a&&e.colIndex<=o).filter(e=>!e.children.length).filter(e=>!e.column.hideDisabled).map(e=>e.key);e.length>0&&this.ctx.database.setCustomHeaderHideData(e,!0),this.hide()}else if(r!==`visible`)if(r.startsWith(`visible_`)){if(!n.key)return;if(n.children){let e=this.getLeafKeys(n.children);this.ctx.database.setCustomHeaderHideData(e,!1)}else this.ctx.database.setCustomHeaderHideData([n.key],!1);this.currentDOMTreeMenu&&this.currentDOMTreeMenu.removeSubMenuItem(r),l(this.ctx.database.getColumns()).filter(e=>e.hide).length===0&&this.hide()}else r===`resetHeader`?(this.ctx.database.resetCustomHeader(),this.hide()):n.event&&n.event(t,{hide:this.hide.bind(this),cell:e})}}),this.positionMenu(t)}),this.ctx.on(`click`,()=>{this.hide()}),this.ctx.on(`onScroll`,this.hide.bind(this)),this.ctx.on(`resize`,this.hide.bind(this))}positionMenu(e){let t={getBoundingClientRect:()=>({width:0,height:0,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,x:e.clientX,y:e.clientY}),contextElement:document.body};jt(t,this.contextMenuEl,()=>{It(t,this.contextMenuEl,{placement:`right-start`,middleware:[Mt(),Nt(),Pt()]}).then(({x:e,y:t})=>{this.contextMenuEl&&Object.assign(this.contextMenuEl.style,{left:`${e}px`,top:`${t}px`})})})}filterColumns(e){let t=[];for(let n of e)if(n.children&&n.children.length>0){let e=this.filterColumns(n.children);e.length>0&&t.push({label:n.title,key:n.key,value:`visible_${n.key}`,children:e})}else n.hide&&t.push({label:n.title,value:`visible_${n.key}`,key:n.key});return t}getLeafKeys(e){return e.reduce((e,t)=>(!t.children||t.children.length===0?e.push(String(t.key)):e.push(...this.getLeafKeys(t.children)),e),[])}hide(){this.currentDOMTreeMenu&&=(this.currentDOMTreeMenu.destroy(),void 0),this.contextMenuEl.style.display=`none`,this.ctx.contextMenuIng=!1}destroy(){var e;this.hide(),(e=this.contextMenuEl)==null||e.remove()}}class Ut{constructor(e){if(n(this,`ctx`),n(this,`loadingEl`),this.ctx=e,this.ctx.loadingElement)this.loadingEl=this.ctx.loadingElement;else{this.loadingEl=document.createElement(`div`);let e=document.createElement(`div`);e.className=`e-virt-table-loading-spinner`;let t=this.ctx.icons.getSvg(`loading`);if(t){let n=new DOMParser().parseFromString(t.svg,`image/svg+xml`).documentElement;e.appendChild(n)}let n=document.createElement(`p`);n.className=`e-virt-table-loading-text`,n.innerText=this.ctx.config.LOADING_TEXT,e.appendChild(n),this.loadingEl.appendChild(e)}this.loadingEl.className=`e-virt-table-loading`,this.loadingEl.style.display=`none`,this.ctx.containerElement.appendChild(this.loadingEl)}show(){this.loadingEl.style.display=`flex`}hide(){this.loadingEl.style.display=`none`}destroy(){this.loadingEl.remove()}}class Wt{constructor(e){n(this,`ctx`),n(this,`container`),n(this,`input`),n(this,`prevBtn`),n(this,`nextBtn`),n(this,`closeBtn`),n(this,`countEl`),n(this,`loadingEl`),n(this,`isVisible`,!1),n(this,`searchResults`,[]),n(this,`currentIndex`,-1),n(this,`searchData`,[]),n(this,`isComposing`,!1),this.ctx=e,this.container=this.createContainer(),this.ctx.containerElement.appendChild(this.container),this.bindEvents(),this.ctx.on(`keydown`,e=>{if(this.ctx.config.ENABLE_FINDER&&!this.ctx.editing){if((e.ctrlKey||e.metaKey)&&e.code===`KeyF`){e.preventDefault(),this.show();return}if(this.ctx.finding){if(e.code===`Escape`){e.preventDefault(),this.hide();return}if(e.code===`ArrowUp`||e.shiftKey&&e.key===`Enter`){e.preventDefault(),this.navigatePrevious();return}if(e.code===`ArrowDown`||e.key===`Enter`){e.preventDefault(),this.navigateNext();return}}}}),this.ctx.on(`setSelector`,()=>{this.hide()}),this.ctx.on(`outsideMousedown`,()=>{this.hide()})}async initSearchData(){this.showLoading(),this.searchData=[],setTimeout(()=>{let{allCellHeaders:e}=this.ctx.header;for(let t=0;t<e.length;t++){let n=e[t];n&&[`string`,`number`].includes(typeof n.text)&&this.searchData.push({rowIndex:0,colIndex:n.colIndex,text:`${n.text}`,type:`header`,colKey:n.key})}let{maxColIndex:t,maxRowIndex:n}=this.ctx;for(let e=0;e<=n;e++)for(let n=0;n<=t;n++){let t=this.ctx.database.getVirtualBodyCell(e,n,!1)?.getText();[`string`,`number`].includes(typeof t)&&this.searchData.push({rowIndex:e,colIndex:n,text:`${t}`,type:`body`})}this.hideLoading()},0)}createContainer(){let e=document.createElement(`div`);e.className=`e-virt-table-finder-bar`;let t=document.createElement(`div`);t.className=`e-virt-table-finder-bar-input-wrapper`,this.input=document.createElement(`input`),this.input.type=`text`,this.input.className=`e-virt-table-finder-bar-input`,this.input.placeholder=``,t.appendChild(this.input),this.loadingEl=document.createElement(`div`),this.loadingEl.className=`e-virt-table-finder-bar-loading`,this.loadingEl.innerHTML=`<svg t="1724133395728" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2893" width="32" height="32"><path d="M512 226.8476541a19.82487759 19.82487759 0 0 1 14.66497778 5.70304692c3.80203107 3.82918865 5.70304692 8.71751457 5.70304693 14.66497779v122.20814825a19.82487759 19.82487759 0 0 1-5.70304693 14.66497778 19.82487759 19.82487759 0 0 1-14.66497778 5.70304691 19.82487759 19.82487759 0 0 1-14.66497778-5.70304691 19.82487759 19.82487759 0 0 1-5.70304693-14.66497778v-122.20814825a19.82487759 19.82487759 0 0 1 5.70304693-14.66497779 19.82487759 19.82487759 0 0 1 14.66497778-5.70304692z m0 407.36049415a19.82487759 19.82487759 0 0 1 14.66497778 5.70304691c3.80203107 3.82918865 5.70304692 8.71751457 5.70304693 14.66497778v122.20814827a19.82487759 19.82487759 0 0 1-5.70304693 14.66497776 19.82487759 19.82487759 0 0 1-14.66497778 5.70304693 19.82487759 19.82487759 0 0 1-14.66497778-5.70304693 19.82487759 19.82487759 0 0 1-5.70304693-14.66497776v-122.20814827a19.82487759 19.82487759 0 0 1 5.70304693-14.66497778 19.82487759 19.82487759 0 0 1 14.66497778-5.70304691zM797.1523459 512a19.82487759 19.82487759 0 0 1-5.70304692 14.66497778 19.82487759 19.82487759 0 0 1-14.66497779 5.70304693h-122.20814825a19.82487759 19.82487759 0 0 1-14.66497778-5.70304693 19.82487759 19.82487759 0 0 1-5.70304691-14.66497778 19.82487759 19.82487759 0 0 1 5.70304691-14.66497778 19.82487759 19.82487759 0 0 1 14.66497778-5.70304693h122.20814825a19.82487759 19.82487759 0 0 1 14.66497779 5.70304693c3.80203107 3.82918865 5.70304692 8.71751457 5.70304692 14.66497778z m-407.36049415 0a19.82487759 19.82487759 0 0 1-5.70304691 14.66497778 19.82487759 19.82487759 0 0 1-14.66497778 5.70304693h-122.20814827a19.82487759 19.82487759 0 0 1-14.66497776-5.70304693 19.82487759 19.82487759 0 0 1-5.70304693-14.66497778 19.82487759 19.82487759 0 0 1 5.70304693-14.66497778 19.82487759 19.82487759 0 0 1 14.66497776-5.70304693h122.20814827a19.82487759 19.82487759 0 0 1 14.66497778 5.70304693c3.80203107 3.82918865 5.70304692 8.71751457 5.70304691 14.66497778zM310.22076878 310.22076878a21.29137537 21.29137537 0 0 1 14.66497779-5.70304693c5.51294514 0 10.18401235 1.90101585 14.01320099 5.70304693l86.55052591 86.57768347a20.91117183 20.91117183 0 0 1 5.73020449 14.31193182 19.28172983 19.28172983 0 0 1-6.05609289 14.013201 19.11878565 19.11878565 0 0 1-14.013201 6.05609289 20.96548698 20.96548698 0 0 1-14.31193182-5.70304692L310.22076878 338.87178998a19.06447114 19.06447114 0 0 1-5.70304693-14.01320099c0-5.54010272 1.90101585-10.42842865 5.70304693-14.66497778z m288.32975775 288.32975775a19.79772001 19.79772001 0 0 1 14.3390894-6.35482371c5.29568642 0 10.04822572 2.11827457 14.31193182 6.38198066l86.57768347 86.55052651c3.80203107 3.80203107 5.70304692 8.47309828 5.70304691 14.01320102a19.55330372 19.55330372 0 0 1-6.05609225 14.31193182 19.66193339 19.66193339 0 0 1-14.31193245 6.05609288 19.01015661 19.01015661 0 0 1-14.01320099-5.70304692l-86.55052591-86.57768347a19.79772001 19.79772001 0 0 1-6.38198129-14.31193245c0-5.29568642 2.11827457-10.07538268 6.38198129-14.33908939zM713.77923122 310.22076878c3.80203107 4.26370672 5.70304692 9.15203265 5.70304693 14.66497779s-1.90101585 10.18401235-5.70304693 14.01320099l-86.57768347 86.55052591a20.91117183 20.91117183 0 0 1-14.31193182 5.73020449 19.28172983 19.28172983 0 0 1-14.013201-6.05609289 19.11878565 19.11878565 0 0 1-6.05609289-14.013201c0-5.29568642 1.90101585-10.07538268 5.70304692-14.31193182l86.57768348-86.57768347c3.80203107-3.80203107 8.50025585-5.70304692 14.01320099-5.70304693 5.54010272 0 10.40127108 1.90101585 14.66497779 5.70304693zM425.44947347 598.57768347a19.79772001 19.79772001 0 0 1 6.35482371 14.33908939c0 5.29568642-2.11827457 10.04822572-6.38198066 14.31193245L338.89894756 713.77923122a19.06447114 19.06447114 0 0 1-14.01320099 5.70304693 19.55330372 19.55330372 0 0 1-14.31193245-6.05609227 19.68909035 19.68909035 0 0 1-6.05609227-14.31193245 19.01015661 19.01015661 0 0 1 5.70304693-14.01320099l86.57768347-86.55052591a19.79772001 19.79772001 0 0 1 14.31193182-6.38198129c5.29568642 0 10.07538268 2.11827457 14.3390894 6.38198129z" fill="#000000" fill-opacity=".65" p-id="2894"></path></svg>`,t.appendChild(this.loadingEl),this.countEl=document.createElement(`span`),this.countEl.className=`e-virt-table-finder-bar-count`;let n=document.createElement(`div`);return n.className=`e-virt-table-finder-bar-nav`,this.prevBtn=document.createElement(`button`),this.prevBtn.className=`e-virt-table-finder-bar-nav-btn prev-btn`,this.prevBtn.innerHTML=ne,this.nextBtn=document.createElement(`button`),this.nextBtn.className=`e-virt-table-finder-bar-nav-btn next-btn`,this.nextBtn.innerHTML=ne,n.appendChild(this.prevBtn),n.appendChild(this.nextBtn),this.closeBtn=document.createElement(`button`),this.closeBtn.className=`e-virt-table-finder-bar-nav-btn close-btn`,this.closeBtn.innerHTML=`×`,e.appendChild(t),e.appendChild(this.countEl),e.appendChild(n),e.appendChild(this.closeBtn),e}bindEvents(){this.input.addEventListener(`input`,()=>{this.isComposing||this.performSearch()}),this.input.addEventListener(`compositionstart`,()=>{this.isComposing=!0}),this.input.addEventListener(`compositionend`,()=>{this.isComposing=!1,this.performSearch()}),this.prevBtn.addEventListener(`click`,()=>{this.navigatePrevious()}),this.nextBtn.addEventListener(`click`,()=>{this.navigateNext()}),this.closeBtn.addEventListener(`click`,()=>{this.hide()})}performSearch(){let e=this.input.value.trim();if(this.searchResults=[],this.currentIndex=-1,!e){this.cearFinderBar(),this.updateCount();return}this.showLoading(),setTimeout(()=>{this.searchResults=this.searchData.filter(t=>t.text.toLowerCase().includes(e.toLowerCase())),this.searchResults.length>0?(this.currentIndex=0,this.scrollToCurrentResult()):this.cearFinderBar(),this.updateCount(),this.hideLoading()},0)}scrollToCurrentResult(){if(this.currentIndex<0||this.currentIndex>=this.searchResults.length)return;let e=this.searchResults[this.currentIndex];this.ctx.finderBar=e;let{rowIndex:t,colIndex:n}=e;this.ctx.emit(`scrollToIndex`,t,n)}navigateNext(){this.searchResults.length!==0&&(this.currentIndex=(this.currentIndex+1)%this.searchResults.length,this.scrollToCurrentResult(),this.updateCount())}navigatePrevious(){this.searchResults.length!==0&&(this.currentIndex=this.currentIndex<=0?this.searchResults.length-1:this.currentIndex-1,this.scrollToCurrentResult(),this.updateCount())}updateCount(){if(this.searchResults.length===0)this.input.value.trim()?(this.countEl.textContent=`0/0`,this.countEl.classList.add(`no-results`)):(this.countEl.textContent=``,this.countEl.classList.remove(`no-results`));else{let e=this.currentIndex+1,t=this.searchResults.length;this.countEl.textContent=`${e}/${t}`,this.countEl.classList.remove(`no-results`)}}show(){this.isVisible||(this.isVisible=!0,this.ctx.finding=!0,this.container.classList.add(`show`),this.input.focus(),this.initSearchData())}showLoading(){var e;this.loadingEl.classList.add(`show`),(e=this.loadingEl.parentElement)==null||e.classList.add(`loading`),this.input.readOnly=!0}hideLoading(){var e;this.loadingEl.classList.remove(`show`),(e=this.loadingEl.parentElement)==null||e.classList.remove(`loading`),this.input.readOnly=!1}cearFinderBar(){this.ctx.finderBar={rowIndex:-1,colIndex:-1,text:``,type:`header`},this.ctx.emit(`draw`)}hide(){this.isVisible&&(this.isVisible=!1,this.container.classList.remove(`show`),this.ctx.finding=!1,this.input.value=``,this.searchResults=[],this.searchData=[],this.currentIndex=-1,this.hideLoading(),this.ctx.finderBar={rowIndex:-1,colIndex:-1,text:``,type:`header`},this.updateCount(),this.ctx.emit(`draw`))}destroy(){this.hide(),this.container.remove()}}class Gt{constructor(e,t){n(this,`options`),n(this,`scroller`),n(this,`header`),n(this,`body`),n(this,`footer`),n(this,`selector`),n(this,`autofill`),n(this,`tooltip`),n(this,`editor`),n(this,`empty`),n(this,`overlayer`),n(this,`contextMenu`),n(this,`loading`),n(this,`finderBar`),n(this,`animationFrameId`),n(this,`ctx`),this.options=t;let{overlayerElement:r,editorElement:i,emptyElement:a,contextMenuElement:o}=this.options,s=this.createContainer(e,r,i,a,o);this.ctx=new j(s,this.options),this.header=new fe(this.ctx),this.footer=new me(this.ctx),this.body=new M(this.ctx),this.scroller=new ue(this.ctx),this.selector=new he(this.ctx),this.autofill=new N(this.ctx),this.tooltip=new Lt(this.ctx),this.empty=new zt(this.ctx),this.editor=new Rt(this.ctx),this.overlayer=new Bt(this.ctx),this.contextMenu=new Ht(this.ctx),this.loading=new Ut(this.ctx),this.finderBar=new Wt(this.ctx),this.ctx.on(`draw`,()=>{this.draw()}),this.ctx.on(`drawView`,()=>{this.draw(!0)}),this.draw()}createContainer(e,t,n,r,i){e.className=`e-virt-table-container`;let a=document.createElement(`div`),o=document.createElement(`canvas`),s=t||document.createElement(`div`);a.className=`e-virt-table-stage`,e.tabIndex=0,o.className=`e-virt-table-canvas`,s.className=`e-virt-table-overlayer`,s.setAttribute(`data-overlayer`,t?`custom`:`default`);let c=n||document.createElement(`div`);c.className=`e-virt-table-editor`;let l=r,u=i;return a.appendChild(o),a.appendChild(s),e.appendChild(a),{containerElement:e,stageElement:a,canvasElement:o,overlayerElement:s,editorElement:c,emptyElement:l,contextMenuElement:u}}doDraw(e=!1){this.header.update(),this.footer.update(),this.body.update(),this.ctx.paint.clear(),this.body.draw(),this.footer.draw(),this.header.draw(),this.scroller.draw(),e||this.overlayer.draw()}draw(e=!1){this.animationFrameId&&cancelAnimationFrame(this.animationFrameId),this.animationFrameId=requestAnimationFrame(()=>{this.doDraw(e),this.body.updateAutoHeight()&&this.doDraw(e)})}loadConfig(e){this.ctx.config.init(e),this.ctx.database.init(!1),this.header.init(),this.ctx.emit(`draw`)}loadColumns(e){this.editor.doneEdit(),this.ctx.database.setColumns(e),this.header.init(),this.ctx.emit(`draw`)}loadData(e){this.editor.doneEdit(),this.ctx.database.setData(e),this.header.init(),this.tooltip.hide(),this.ctx.emit(`draw`)}loadFooterData(e){this.ctx.database.setFooterData(e),this.ctx.emit(`draw`)}setCustomHeader(e,t=!0){this.ctx.database.setCustomHeader(e,t),this.header.init(),this.ctx.emit(`draw`)}getCustomHeader(){return this.header.getCustomHeader()}showColumns(e,t=!0){this.ctx.database.setCustomHeaderHideData(e,!t),this.header.init(),this.ctx.emit(`draw`)}fixedColumns(e,t){this.ctx.database.setCustomHeaderFixedData(e,t),this.header.init(),this.ctx.emit(`draw`)}setLoading(e){this.ctx.loading=e,e?this.loading.show():this.loading.hide()}on(e,t){this.ctx.on(e,t)}emit(e,...t){this.ctx.emit(e,...t)}off(e,t){this.ctx.off(e,t)}filterMethod(e){this.ctx.database.setFilterMethod(e),this.ctx.database.init(!1),this.header.init(),this.ctx.emit(`draw`)}editCell(e,t){this.editor.editCell(e,t)}setItemValue(e,t,n,r=!0,i=!0,a=!1){this.ctx.database.setItemValue(e,t,n,r,i,a)}batchSetItemValue(e,t=!0){this.ctx.database.batchSetItemValue(e,t)}setItemValueByEditor(e,t,n,r=!0,i=!0){this.ctx.setItemValueByEditor(e,t,n,r,i),this.editor.doneEdit()}clearEditableData(e=null){let t=[0,this.ctx.maxColIndex],n=[0,this.ctx.maxRowIndex];return this.selector.clearSelectedData(t,n,!1,e)}clearEditor(){this.editor.clearEditor()}doLayout(){this.ctx.emit(`draw`)}getChangedData(){return this.ctx.database.getChangedData()}getChangedRows(){return this.ctx.database.getChangedRows()}setCurrentRowByRowIndex(e){this.ctx.currentCell=this.ctx.database.getVirtualBodyCell(e,0),this.ctx.emit(`draw`)}setCurrentRow(e){let t=this.ctx.database.getColumnByColIndex(0);t&&(this.ctx.currentCell=this.ctx.database.getVirtualBodyCellByKey(e,t.key),this.ctx.emit(`draw`))}getCurrentRow(){let e=this.ctx.currentCell;return e?{row:e.row,rowIndex:e.rowIndex,rowKey:e.rowKey}:void 0}clearValidate(){this.ctx.database.clearValidate(),this.ctx.emit(`draw`)}validateFields(e,t=!0){return new Promise(async(n,r)=>{let i=[];for(let t=0;t<e.length;t++){let{rowKey:n,key:r}=e[t],a=await this.ctx.database.getValidator(n,r);Array.isArray(a)&&a.length&&i.push(a)}if(i.length){if(r(i),t){let[e]=i;if(Array.isArray(e)&&e.length){let[t]=e,{rowKey:n,key:r}=t;this.scrollToRowkey(n),this.scrollToColkey(r)}}this.ctx.emit(`draw`)}else n([]),this.ctx.emit(`draw`)})}async validate(e=!0){return new Promise(async(t,n)=>{try{t(await this.getValidations())}catch(t){if(e&&Array.isArray(t)&&t.length){let[e]=t;if(Array.isArray(e)&&e.length){let[t]=e,{rowKey:n,key:r}=t,i=this.ctx.database.getRowForRowKey(n);if(i){let{parentRowKeys:e=[]}=i;e&&e.length&&this.setExpandRowKeys(e,!0)}this.scrollToRowkey(n),this.scrollToColkey(r)}}n(t)}})}setValidations(e){if(e.forEach(e=>{let{rowIndex:t,key:n,message:r,rowKey:i}=e;if(t!==void 0&&i===void 0){let e=this.ctx.database.getRowKeyForRowIndex(t);this.ctx.database.setValidationErrorByRowKey(e,n,r)}i&&this.ctx.database.setValidationErrorByRowKey(i,n,r)}),e&&Array.isArray(e)&&e.length){let[t]=e;if(t&&t.rowKey)this.scrollToRowkey(t.rowKey),this.scrollToColkey(t.key);else if(t&&t.rowIndex!==void 0&&t.rowIndex>=0&&t.key){let{rowIndex:e,key:n}=t;this.scrollToRowIndex(e),this.scrollToColkey(n)}}}getValidations(){return this.ctx.config.DISABLED?new Promise(e=>{e([])}):new Promise(async(e,t)=>{let n=this.ctx.database.getAllRowsData(),r=this.ctx.header.leafCellHeaders,i=[];for(let e=0;e<n.length;e++)for(let t=0;t<r.length;t++){let a=this.ctx.database.getRowKeyByItem(n[e]),o=r[t].key,s=await this.ctx.database.getValidator(a,o);Array.isArray(s)&&s.length&&i.push(s)}i.length?(t(i),this.ctx.emit(`draw`)):(e([]),this.ctx.emit(`draw`))})}hasValidationError(){return this.ctx.database.hasValidationError()}scrollTo(e,t){this.scroller.setScroll(e,t)}scrollXTo(e){this.scroller.setScrollX(e)}scrollToColkey(e){this.scroller.scrollToColkey(e)}scrollToRowkey(e){this.scroller.scrollToRowKey(e)}scrollToColIndex(e){this.scroller.scrollToColIndex(e)}scrollToRowIndex(e){this.scroller.scrollToRowIndex(e)}scrollYTo(e){this.scroller.setScrollY(e)}setExpandRowKeys(e,t=!0){this.ctx.database.setExpandRowKeys(e,t)}getExpandRowKeys(){return this.ctx.database.getExpandRowKeys()}clearSelection(){this.ctx.database.clearSelection(),this.ctx.emit(`draw`)}toggleRowSelection(e){let t=this.ctx.database.getRowKeyByItem(e);this.ctx.database.toggleRowSelection(t),this.ctx.emit(`draw`)}setSelectionByRows(e,t=!0){e.forEach(e=>{let n=this.ctx.database.getRowKeyByItem(e);this.ctx.database.setRowSelection(n,t,!1)}),this.ctx.emit(`selectionChange`,this.getSelectionRows()),this.ctx.emit(`draw`)}setSelectionByRowKeys(e,t=!0){e.forEach(e=>{this.ctx.database.setRowSelection(e,t,!1)}),this.ctx.emit(`selectionChange`,this.getSelectionRows()),this.ctx.emit(`draw`)}toggleAllSelection(){this.ctx.database.toggleAllSelection(),this.ctx.emit(`draw`)}toggleRowExpand(e,t){this.ctx.database.expandItem(e,t),this.ctx.emit(`draw`)}toggleExpandAll(e){this.ctx.database.expandAll(e),this.ctx.emit(`draw`)}getSelectionRows(){return this.ctx.database.getSelectionRows()}getPositionForRowIndex(e){return this.ctx.database.getPositionForRowIndex(e)}getCellValue(e,t){return this.ctx.database.getItemValue(e,t)}getCellValueByIndex(e,t){return this.ctx.database.getItemValueForRowIndexAndColIndex(e,t)}clearSort(){this.ctx.database.clearSort()}contextMenuHide(){this.contextMenu.hide()}getUtils(){return{mergeColCell:y,mergeRowCell:v,getSpanArrByRow:g,getSpanObjByColumn:_}}getColumnByKey(e){return this.ctx.database.getColumnByKey(e)?.column}clearChangeData(){this.ctx.database.clearChangeData(),this.ctx.emit(`draw`)}getReadonly(e,t){return this.ctx.database.getReadonly(e,t)}destroy(){this.overlayer.destroy(),this.empty.destroy(),this.editor.destroy(),this.tooltip.destroy(),this.selector.destroy(),this.autofill.destroy(),this.contextMenu.destroy(),this.loading.destroy(),this.finderBar.destroy(),this.ctx.destroy(),this.ctx.containerElement.remove()}}return Gt}))})),S={create(){return y(`sheetjs.worker.js`).defaults(()=>new Worker(new URL(``+new URL(`sheet.worker-DXcmIjpw.js`,import.meta.url).href,``+import.meta.url),{type:`module`}))}},C=e(x(),1),w=`__index`,T={rowHeight:20,colWidth:64},E={Placeholder:0,Loading:1,Loaded:2},ee=()=>({active:!1,totalRows:0,totalCols:0,indexOffset:0,defaults:{...T},dataKeys:[],rows:[],columns:[],cellCache:new Map,mergeStartMap:new Map,mergeCoveredMap:new Map,rowHeightCache:new Map,windowRows:new Map,windowCells:new Map,loadedWindows:new Set,loadingWindows:new Set}),D=(e,t)=>`${e}-${t}`,te=e=>`c${e}`,O=e=>e?.__s??E.Placeholder,ne=e=>{let t=Array(e);for(let n=0;n<e;n+=1)t[n]={__k:`${n}`,__s:E.Placeholder};return t},k=e=>e?Math.floor(Math.max(e-1,0)/500)*500:0,re=(e=0,t=0)=>Math.min(Math.max(e,0),k(t)),A=(e=0,t=0)=>re(Math.floor(Math.max(e,0)/500)*500,t),ie=({startRow:e,endRow:t,direction:n,totalRows:r,far:i=!1})=>{let a=new Set,o=A(e,r),s=A(t,r);for(let e=o;e<=s;e+=500)a.add(e);let c=i?4:3,l=i?2:1,u=n>0?s:o;for(let e=1;e<=c;e+=1)a.add(re(u+n*e*500,r));for(let e=1;e<=l;e+=1)a.add(re(u-n*e*500,r));return Array.from(a)},ae=(e,t,n,r)=>{let i=Math.min(n+500,t);for(let t=n;t<i;t+=1){let n=e[t];n&&(n.__s=r)}};function oe(e){"@babel/helpers - typeof";return oe=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},oe(e)}var se=/^\s+/,ce=/\s+$/;function j(e,t){if(e||=``,t||={},e instanceof j)return e;if(!(this instanceof j))return new j(e,t);var n=le(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}j.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3},getLuminance:function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,r=e.b/255,i=t<=.03928?t/12.92:((t+.055)/1.055)**2.4,a=n<=.03928?n/12.92:((n+.055)/1.055)**2.4,o=r<=.03928?r/12.92:((r+.055)/1.055)**2.4;return .2126*i+.7152*a+.0722*o},setAlpha:function(e){return this._a=xe(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=pe(this._r,this._g,this._b);return{h:e.h*360,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=pe(this._r,this._g,this._b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.v*100);return this._a==1?`hsv(`+t+`, `+n+`%, `+r+`%)`:`hsva(`+t+`, `+n+`%, `+r+`%, `+this._roundA+`)`},toHsl:function(){var e=de(this._r,this._g,this._b);return{h:e.h*360,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=de(this._r,this._g,this._b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.l*100);return this._a==1?`hsl(`+t+`, `+n+`%, `+r+`%)`:`hsla(`+t+`, `+n+`%, `+r+`%, `+this._roundA+`)`},toHex:function(e){return me(this._r,this._g,this._b,e)},toHexString:function(e){return`#`+this.toHex(e)},toHex8:function(e){return he(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return`#`+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?`rgb(`+Math.round(this._r)+`, `+Math.round(this._g)+`, `+Math.round(this._b)+`)`:`rgba(`+Math.round(this._r)+`, `+Math.round(this._g)+`, `+Math.round(this._b)+`, `+this._roundA+`)`},toPercentageRgb:function(){return{r:Math.round(W(this._r,255)*100)+`%`,g:Math.round(W(this._g,255)*100)+`%`,b:Math.round(W(this._b,255)*100)+`%`,a:this._a}},toPercentageRgbString:function(){return this._a==1?`rgb(`+Math.round(W(this._r,255)*100)+`%, `+Math.round(W(this._g,255)*100)+`%, `+Math.round(W(this._b,255)*100)+`%)`:`rgba(`+Math.round(W(this._r,255)*100)+`%, `+Math.round(W(this._g,255)*100)+`%, `+Math.round(W(this._b,255)*100)+`%, `+this._roundA+`)`},toName:function(){return this._a===0?`transparent`:this._a<1?!1:ye[me(this._r,this._g,this._b,!0)]||!1},toFilter:function(e){var t=`#`+N(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?`GradientType = 1, `:``;if(e){var i=j(e);n=`#`+N(i._r,i._g,i._b,i._a)}return`progid:DXImageTransform.Microsoft.gradient(`+r+`startColorstr=`+t+`,endColorstr=`+n+`)`},toString:function(e){var t=!!e;e||=this._format;var n=!1,r=this._a<1&&this._a>=0;return!t&&r&&(e===`hex`||e===`hex6`||e===`hex3`||e===`hex4`||e===`hex8`||e===`name`)?e===`name`&&this._a===0?this.toName():this.toRgbString():(e===`rgb`&&(n=this.toRgbString()),e===`prgb`&&(n=this.toPercentageRgbString()),(e===`hex`||e===`hex6`)&&(n=this.toHexString()),e===`hex3`&&(n=this.toHexString(!0)),e===`hex4`&&(n=this.toHex8String(!0)),e===`hex8`&&(n=this.toHex8String()),e===`name`&&(n=this.toName()),e===`hsl`&&(n=this.toHslString()),e===`hsv`&&(n=this.toHsvString()),n||this.toHexString())},clone:function(){return j(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(L,arguments)},brighten:function(){return this._applyModification(R,arguments)},darken:function(){return this._applyModification(ge,arguments)},desaturate:function(){return this._applyModification(P,arguments)},saturate:function(){return this._applyModification(F,arguments)},greyscale:function(){return this._applyModification(I,arguments)},spin:function(){return this._applyModification(_e,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(ve,arguments)},complement:function(){return this._applyCombination(z,arguments)},monochromatic:function(){return this._applyCombination(H,arguments)},splitcomplement:function(){return this._applyCombination(V,arguments)},triad:function(){return this._applyCombination(B,[3])},tetrad:function(){return this._applyCombination(B,[4])}},j.fromRatio=function(e,t){if(oe(e)==`object`){var n={};for(var r in e)e.hasOwnProperty(r)&&(r===`a`?n[r]=e[r]:n[r]=Te(e[r]));e=n}return j(e,t)};function le(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,a=null,o=!1,s=!1;return typeof e==`string`&&(e=Oe(e)),oe(e)==`object`&&(J(e.r)&&J(e.g)&&J(e.b)?(t=ue(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)===`%`?`prgb`:`rgb`):J(e.h)&&J(e.s)&&J(e.v)?(r=Te(e.s),i=Te(e.v),t=M(e.h,r,i),o=!0,s=`hsv`):J(e.h)&&J(e.s)&&J(e.l)&&(r=Te(e.s),a=Te(e.l),t=fe(e.h,r,a),o=!0,s=`hsl`),e.hasOwnProperty(`a`)&&(n=e.a)),n=xe(n),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function ue(e,t,n){return{r:W(e,255)*255,g:W(t,255)*255,b:W(n,255)*255}}function de(e,t,n){e=W(e,255),t=W(t,255),n=W(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a,o,s=(r+i)/2;if(r==i)a=o=0;else{var c=r-i;switch(o=s>.5?c/(2-r-i):c/(r+i),r){case e:a=(t-n)/c+(t<n?6:0);break;case t:a=(n-e)/c+2;break;case n:a=(e-t)/c+4;break}a/=6}return{h:a,s:o,l:s}}function fe(e,t,n){var r,i,a;e=W(e,360),t=W(t,100),n=W(n,100);function o(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(t===0)r=i=a=n;else{var s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return{r:r*255,g:i*255,b:a*255}}function pe(e,t,n){e=W(e,255),t=W(t,255),n=W(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a,o,s=r,c=r-i;if(o=r===0?0:c/r,r==i)a=0;else{switch(r){case e:a=(t-n)/c+(t<n?6:0);break;case t:a=(n-e)/c+2;break;case n:a=(e-t)/c+4;break}a/=6}return{h:a,s:o,v:s}}function M(e,t,n){e=W(e,360)*6,t=W(t,100),n=W(n,100);var r=Math.floor(e),i=e-r,a=n*(1-t),o=n*(1-i*t),s=n*(1-(1-i)*t),c=r%6,l=[n,o,a,a,s,n][c],u=[s,n,n,o,a,a][c],d=[a,a,s,n,n,o][c];return{r:l*255,g:u*255,b:d*255}}function me(e,t,n,r){var i=[K(Math.round(e).toString(16)),K(Math.round(t).toString(16)),K(Math.round(n).toString(16))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join(``)}function he(e,t,n,r,i){var a=[K(Math.round(e).toString(16)),K(Math.round(t).toString(16)),K(Math.round(n).toString(16)),K(Ee(r))];return i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join(``)}function N(e,t,n,r){return[K(Ee(r)),K(Math.round(e).toString(16)),K(Math.round(t).toString(16)),K(Math.round(n).toString(16))].join(``)}j.equals=function(e,t){return!e||!t?!1:j(e).toRgbString()==j(t).toRgbString()},j.random=function(){return j.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function P(e,t){t=t===0?0:t||10;var n=j(e).toHsl();return n.s-=t/100,n.s=Se(n.s),j(n)}function F(e,t){t=t===0?0:t||10;var n=j(e).toHsl();return n.s+=t/100,n.s=Se(n.s),j(n)}function I(e){return j(e).desaturate(100)}function L(e,t){t=t===0?0:t||10;var n=j(e).toHsl();return n.l+=t/100,n.l=Se(n.l),j(n)}function R(e,t){t=t===0?0:t||10;var n=j(e).toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),j(n)}function ge(e,t){t=t===0?0:t||10;var n=j(e).toHsl();return n.l-=t/100,n.l=Se(n.l),j(n)}function _e(e,t){var n=j(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,j(n)}function z(e){var t=j(e).toHsl();return t.h=(t.h+180)%360,j(t)}function B(e,t){if(isNaN(t)||t<=0)throw Error(`Argument to polyad must be a positive number`);for(var n=j(e).toHsl(),r=[j(e)],i=360/t,a=1;a<t;a++)r.push(j({h:(n.h+a*i)%360,s:n.s,l:n.l}));return r}function V(e){var t=j(e).toHsl(),n=t.h;return[j(e),j({h:(n+72)%360,s:t.s,l:t.l}),j({h:(n+216)%360,s:t.s,l:t.l})]}function ve(e,t,n){t||=6,n||=30;var r=j(e).toHsl(),i=360/n,a=[j(e)];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,a.push(j(r));return a}function H(e,t){t||=6;for(var n=j(e).toHsv(),r=n.h,i=n.s,a=n.v,o=[],s=1/t;t--;)o.push(j({h:r,s:i,v:a})),a=(a+s)%1;return o}j.mix=function(e,t,n){n=n===0?0:n||50;var r=j(e).toRgb(),i=j(t).toRgb(),a=n/100;return j({r:(i.r-r.r)*a+r.r,g:(i.g-r.g)*a+r.g,b:(i.b-r.b)*a+r.b,a:(i.a-r.a)*a+r.a})},j.readability=function(e,t){var n=j(e),r=j(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},j.isReadable=function(e,t,n){var r=j.readability(e,t),i,a=!1;switch(i=ke(n),i.level+i.size){case`AAsmall`:case`AAAlarge`:a=r>=4.5;break;case`AAlarge`:a=r>=3;break;case`AAAsmall`:a=r>=7;break}return a},j.mostReadable=function(e,t,n){var r=null,i=0,a,o,s,c;n||={},o=n.includeFallbackColors,s=n.level,c=n.size;for(var l=0;l<t.length;l++)a=j.readability(e,t[l]),a>i&&(i=a,r=j(t[l]));return j.isReadable(e,r,{level:s,size:c})||!o?r:(n.includeFallbackColors=!1,j.mostReadable(e,[`#fff`,`#000`],n))};var U=j.names={aliceblue:`f0f8ff`,antiquewhite:`faebd7`,aqua:`0ff`,aquamarine:`7fffd4`,azure:`f0ffff`,beige:`f5f5dc`,bisque:`ffe4c4`,black:`000`,blanchedalmond:`ffebcd`,blue:`00f`,blueviolet:`8a2be2`,brown:`a52a2a`,burlywood:`deb887`,burntsienna:`ea7e5d`,cadetblue:`5f9ea0`,chartreuse:`7fff00`,chocolate:`d2691e`,coral:`ff7f50`,cornflowerblue:`6495ed`,cornsilk:`fff8dc`,crimson:`dc143c`,cyan:`0ff`,darkblue:`00008b`,darkcyan:`008b8b`,darkgoldenrod:`b8860b`,darkgray:`a9a9a9`,darkgreen:`006400`,darkgrey:`a9a9a9`,darkkhaki:`bdb76b`,darkmagenta:`8b008b`,darkolivegreen:`556b2f`,darkorange:`ff8c00`,darkorchid:`9932cc`,darkred:`8b0000`,darksalmon:`e9967a`,darkseagreen:`8fbc8f`,darkslateblue:`483d8b`,darkslategray:`2f4f4f`,darkslategrey:`2f4f4f`,darkturquoise:`00ced1`,darkviolet:`9400d3`,deeppink:`ff1493`,deepskyblue:`00bfff`,dimgray:`696969`,dimgrey:`696969`,dodgerblue:`1e90ff`,firebrick:`b22222`,floralwhite:`fffaf0`,forestgreen:`228b22`,fuchsia:`f0f`,gainsboro:`dcdcdc`,ghostwhite:`f8f8ff`,gold:`ffd700`,goldenrod:`daa520`,gray:`808080`,green:`008000`,greenyellow:`adff2f`,grey:`808080`,honeydew:`f0fff0`,hotpink:`ff69b4`,indianred:`cd5c5c`,indigo:`4b0082`,ivory:`fffff0`,khaki:`f0e68c`,lavender:`e6e6fa`,lavenderblush:`fff0f5`,lawngreen:`7cfc00`,lemonchiffon:`fffacd`,lightblue:`add8e6`,lightcoral:`f08080`,lightcyan:`e0ffff`,lightgoldenrodyellow:`fafad2`,lightgray:`d3d3d3`,lightgreen:`90ee90`,lightgrey:`d3d3d3`,lightpink:`ffb6c1`,lightsalmon:`ffa07a`,lightseagreen:`20b2aa`,lightskyblue:`87cefa`,lightslategray:`789`,lightslategrey:`789`,lightsteelblue:`b0c4de`,lightyellow:`ffffe0`,lime:`0f0`,limegreen:`32cd32`,linen:`faf0e6`,magenta:`f0f`,maroon:`800000`,mediumaquamarine:`66cdaa`,mediumblue:`0000cd`,mediumorchid:`ba55d3`,mediumpurple:`9370db`,mediumseagreen:`3cb371`,mediumslateblue:`7b68ee`,mediumspringgreen:`00fa9a`,mediumturquoise:`48d1cc`,mediumvioletred:`c71585`,midnightblue:`191970`,mintcream:`f5fffa`,mistyrose:`ffe4e1`,moccasin:`ffe4b5`,navajowhite:`ffdead`,navy:`000080`,oldlace:`fdf5e6`,olive:`808000`,olivedrab:`6b8e23`,orange:`ffa500`,orangered:`ff4500`,orchid:`da70d6`,palegoldenrod:`eee8aa`,palegreen:`98fb98`,paleturquoise:`afeeee`,palevioletred:`db7093`,papayawhip:`ffefd5`,peachpuff:`ffdab9`,peru:`cd853f`,pink:`ffc0cb`,plum:`dda0dd`,powderblue:`b0e0e6`,purple:`800080`,rebeccapurple:`663399`,red:`f00`,rosybrown:`bc8f8f`,royalblue:`4169e1`,saddlebrown:`8b4513`,salmon:`fa8072`,sandybrown:`f4a460`,seagreen:`2e8b57`,seashell:`fff5ee`,sienna:`a0522d`,silver:`c0c0c0`,skyblue:`87ceeb`,slateblue:`6a5acd`,slategray:`708090`,slategrey:`708090`,snow:`fffafa`,springgreen:`00ff7f`,steelblue:`4682b4`,tan:`d2b48c`,teal:`008080`,thistle:`d8bfd8`,tomato:`ff6347`,turquoise:`40e0d0`,violet:`ee82ee`,wheat:`f5deb3`,white:`fff`,whitesmoke:`f5f5f5`,yellow:`ff0`,yellowgreen:`9acd32`},ye=j.hexNames=be(U);function be(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function xe(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function W(e,t){Ce(e)&&(e=`100%`);var n=we(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Se(e){return Math.min(1,Math.max(0,e))}function G(e){return parseInt(e,16)}function Ce(e){return typeof e==`string`&&e.indexOf(`.`)!=-1&&parseFloat(e)===1}function we(e){return typeof e==`string`&&e.indexOf(`%`)!=-1}function K(e){return e.length==1?`0`+e:``+e}function Te(e){return e<=1&&(e=e*100+`%`),e}function Ee(e){return Math.round(parseFloat(e)*255).toString(16)}function De(e){return G(e)/255}var q=function(){var e=`(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)`,t=`[\\s|\\(]+(`+e+`)[,|\\s]+(`+e+`)[,|\\s]+(`+e+`)\\s*\\)?`,n=`[\\s|\\(]+(`+e+`)[,|\\s]+(`+e+`)[,|\\s]+(`+e+`)[,|\\s]+(`+e+`)\\s*\\)?`;return{CSS_UNIT:new RegExp(e),rgb:RegExp(`rgb`+t),rgba:RegExp(`rgba`+n),hsl:RegExp(`hsl`+t),hsla:RegExp(`hsla`+n),hsv:RegExp(`hsv`+t),hsva:RegExp(`hsva`+n),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function J(e){return!!q.CSS_UNIT.exec(e)}function Oe(e){e=e.replace(se,``).replace(ce,``).toLowerCase();var t=!1;if(U[e])e=U[e],t=!0;else if(e==`transparent`)return{r:0,g:0,b:0,a:0,format:`name`};var n;return(n=q.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=q.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=q.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=q.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=q.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=q.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=q.hex8.exec(e))?{r:G(n[1]),g:G(n[2]),b:G(n[3]),a:De(n[4]),format:t?`name`:`hex8`}:(n=q.hex6.exec(e))?{r:G(n[1]),g:G(n[2]),b:G(n[3]),format:t?`name`:`hex`}:(n=q.hex4.exec(e))?{r:G(n[1]+``+n[1]),g:G(n[2]+``+n[2]),b:G(n[3]+``+n[3]),a:De(n[4]+``+n[4]),format:t?`name`:`hex8`}:(n=q.hex3.exec(e))?{r:G(n[1]+``+n[1]),g:G(n[2]+``+n[2]),b:G(n[3]+``+n[3]),format:t?`name`:`hex`}:!1}function ke(e){var t,n;return e||={level:`AA`,size:`small`},t=(e.level||`AA`).toUpperCase(),n=(e.size||`small`).toLowerCase(),t!==`AA`&&t!==`AAA`&&(t=`AA`),n!==`small`&&n!==`large`&&(n=`small`),{level:t,size:n}}var Ae=68,je=`Aptos, Calibri, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif`,Me=11,Ne=8,Pe=.1,Fe=2,Ie=1.2,Le=34,Re=`#f3f3f3`,Y=`#5f6368`,X=`#d7dbe0`,ze=`#21a366`,Z=`rgba(33, 163, 102, 0.1)`,Q=1,Be=`#000000`,Ve={double:8,solid:7,dashed:5,dotted:4},He=`bold 12px ${je}`,Ue=`${Me}px ${je}`,We=32,Ge={backgroundColor:Re,color:Y,font:He},Ke={backgroundColor:`#f4f7f9`,color:`#73808d`,font:`italic ${Me}px ${je}`},qe,Je=new Map,Ye=e=>e.map(e=>({...e,...e.children?.length?{children:Ye(e.children)}:{}})),Xe=e=>{if(typeof e.font==`string`&&e.font.trim())return e.font;if(!(e.fontFamily!==void 0||e.fontSize!==void 0||e.fontWeight!==void 0||e.fontStyle!==void 0))return;let t=(()=>{let{fontWeight:t}=e;if(typeof t==`number`)return t>=600?`bold`:`normal`;if(typeof t==`string`){let e=t.trim();return/^\d+$/.test(e)?Number(e)>=600?`bold`:`normal`:e}return`normal`})();return[e.fontStyle||`normal`,t,`${Number.parseInt(e.fontSize,10)||Me}px`,e.fontFamily||je].join(` `)},Ze=e=>{if(e){if(e.includes(`htLeft`))return`left`;if(e.includes(`htRight`))return`right`;if(e.includes(`htCenter`))return`center`}},$=e=>{if(e){if(e.includes(`htTop`))return`top`;if(e.includes(`htBottom`))return`bottom`;if(e.includes(`htMiddle`))return`middle`}},Qe=(e,t)=>!!e?.split(/\s+/).includes(t),$e=(e,t,n)=>typeof e==`number`?e:e?.[t]??n,et=e=>{let t=Number(e?.width);return Number.isFinite(t)&&t>0?t:0},tt=e=>!!e&&!e.hide&&et(e)>0,nt=e=>e.structure?.columns?.length?e.structure.columns:e.columns,rt=e=>e.structure?.colWidths??e.colWidths,it=(e,t,n)=>typeof e==`number`?e:e?.[t]??n,at=(e,t)=>typeof e==`number`&&Number.isFinite(e)?e<=0?Pe:Math.max(Math.ceil(e),Ne):Math.max(Math.ceil(t),Ne),ot=e=>{if(e==null)return!1;let t=`${e}`.trim();return t?!/^\d+([./:-]\d+)*$/.test(t):!1},st=e=>{let t=e.meta,n=e.data||[];if(!t||n.length<2||(e.merge||[]).length)return 0;let r=n[0]||[],i=n[1]||[],a=r.filter(e=>`${e??``}`.trim()!==``),o=i.filter(e=>`${e??``}`.trim()!==``);return a.length<Math.min(Math.max(Math.floor(t.totalCols/2),3),6)||!a.every(ot)||o.length<2?0:1},ct=e=>{let t=nt(e),n=rt(e),r=[{key:w,title:``,type:`index`,fixed:`left`,width:Ae,minWidth:Ae,maxWidth:Ae,widthFillDisable:!0,headerAlign:`center`,align:`center`,headerVerticalAlign:`middle`,verticalAlign:`middle`,overflowTooltipShow:!1,overflowTooltipHeaderShow:!1}],i=[];for(let a=0;a<(e.meta?.totalCols||0);a+=1){let o=te(a),s=t?.[a],c=$e(n,a,e.defaults.colWidth),l=!!s?.hidden||c<=0,u=$(s?.className)||`middle`;i.push(o),r.push({key:o,title:s?.title||`${a+1}`,width:l?0:Math.max(Math.ceil(c),1),hide:l,widthFillDisable:!0,renderType:`both`,headerAlign:`center`,headerVerticalAlign:`middle`,align:Ze(s?.className)||`left`,verticalAlign:u,overflowTooltipShow:!0,overflowTooltipHeaderShow:!0})}return{columns:r,dataKeys:i}},lt=e=>Ye(e),ut=e=>{if(typeof e==`number`&&Number.isFinite(e))return Math.max(e,0);if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isFinite(t)?Math.max(t,0):0}return 0},dt=e=>{if(typeof e!=`string`)return`solid`;let t=e.trim();switch(t){case`double`:case`dashed`:case`dotted`:case`solid`:return t;default:return`solid`}},ft=(e,t)=>{let n=ut(e[`border${t}Width`]);if(n)return{width:n,style:dt(e[`border${t}Style`]),color:e[`border${t}Color`]||Be}},pt=e=>e?!!(e.borderTop||e.borderRight||e.borderBottom||e.borderLeft):!1,mt=e=>e?!!(e.horizontalAlign||e.verticalAlign||e.wrapText||e.shrinkToFit):!1,ht=(e,t)=>mt(e)?!!(e?.wrapText||e?.shrinkToFit||e?.horizontalAlign&&e.horizontalAlign!==(t?.align||`left`)||e?.verticalAlign&&e.verticalAlign!==(t?.verticalAlign||`middle`)):!1,gt=e=>{switch(e){case`center`:return`center`;case`right`:return`flex-end`;default:return`flex-start`}},_t=e=>{switch(e){case`top`:return`flex-start`;case`bottom`:return`flex-end`;default:return`center`}},vt=(e,t,n,r)=>{switch(e){case`right`:return t-n;case`center`:return-Math.min(r,Math.max((n-t)/2,0));default:return 0}},yt=e=>typeof e._height==`number`&&e._height<=Pe,bt=(e,t)=>{let n=e?.key;if(typeof n==`string`&&n.startsWith(`c`)){let e=Number(n.slice(1));if(Number.isInteger(e)&&e>=0)return e}return Math.max(t-1,0)},xt=(e,t,n)=>D(e,bt(n,t)+1),St=(e,t)=>D(e,t+1),Ct=e=>e==null?``:`${e}`,wt=e=>Ct(e).trim()!==``,Tt=e=>/^[+-]?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?%?$/.test(e.trim()),Et=(e,t)=>{let n=`${t}\n${e}`,r=Je.get(n);if(r!==void 0)return r;!qe&&typeof document<`u`&&(qe=document.createElement(`canvas`));let i=qe?.getContext(`2d`);if(!i)return e.length*Me;i.font=t;let a=i.measureText(e).width+Fe*2;return Je.set(n,a),a},Dt=(e,t,n,r)=>{let i=e.columns[r+1];if(!tt(i))return!1;let a=St(n,r);return e.mergeStartMap.has(a)||e.mergeCoveredMap.has(a)?!1:!wt(t[te(r)])},Ot=(e,t,n,r,i)=>{let a=0;for(let o=1;o<=We;o+=1){let s=r+o*i;if(s<0||s>=e.totalCols||!Dt(e,t,n,s))break;a+=et(e.columns[s+1])}return a},kt=(e,t,n,r,i,a,o)=>{let s=Ct(o);if(!s||a?.wrapText||a?.shrinkToFit||Tt(s))return;let c=St(n,r);if(e.mergeStartMap.has(c)||e.mergeCoveredMap.has(c))return;let l=et(i);if(!l)return;let u=a?.font||Ue,d=Math.ceil(Et(s,u));if(d<=l)return;let f=a?.horizontalAlign||i?.align||`left`,p=f===`right`||f===`center`?Ot(e,t,n,r,-1):0,m=f===`right`?0:Ot(e,t,n,r,1),h=l+p+m;if(h<=l)return;let g=Math.min(d,h);return{left:vt(f,l,g,p),width:g}},At=e=>e?e.width*100+(Ve[e.style]||1):0,jt=(e,t,n,r)=>{let i=e.cellCache.get(D(t-1,n+1)),a=e.cellCache.get(D(t+1,n+1)),o=e.cellCache.get(D(t,n)),s=e.cellCache.get(D(t,n+2)),c=At(r.borderTop)>=At(i?.borderBottom)?r.borderTop:void 0,l=At(r.borderBottom)>At(a?.borderTop)?r.borderBottom:void 0,u=At(r.borderLeft)>=At(o?.borderRight)?r.borderLeft:void 0,d=At(r.borderRight)>At(s?.borderLeft)?r.borderRight:void 0;return{...r,borderTop:c,borderRight:d,borderBottom:l,borderLeft:u}},Mt=(e,t)=>{let n=document.createElement(`span`),r=t.width/2;return Object.assign(n.style,{position:`absolute`,pointerEvents:`none`,boxSizing:`border-box`}),e===`top`||e===`bottom`?(Object.assign(n.style,{left:`${-r}px`,width:`calc(100% + ${t.width}px)`,height:`0`}),n.style[e]=`${-r}px`,n.style.borderTop=`${t.width}px ${t.style} ${t.color}`):(Object.assign(n.style,{top:`${-r}px`,height:`calc(100% + ${t.width}px)`,width:`0`}),n.style[e]=`${-r}px`,n.style.borderLeft=`${t.width}px ${t.style} ${t.color}`),n},Nt=(e,t)=>{let n=document.createElement(`span`);return n.textContent=Ct(e),Object.assign(n.style,{position:`relative`,zIndex:`1`,width:`100%`,height:`100%`,boxSizing:`border-box`,display:`flex`,alignItems:_t(t.verticalAlign),justifyContent:gt(t.horizontalAlign),padding:`0 ${Fe}px`,overflow:`hidden`,textOverflow:t.wrapText?`clip`:`ellipsis`,whiteSpace:t.wrapText?`pre-wrap`:`nowrap`,wordBreak:t.wrapText?`break-word`:`normal`,lineHeight:`${Ie}`,textAlign:t.horizontalAlign||`left`,color:t.color||`inherit`,font:t.font||Ue,transform:t.shrinkToFit?`scale(0.92)`:`none`,transformOrigin:`${t.horizontalAlign||`left`} center`}),n},Pt=(e,t)=>{t&&Object.assign(e.style,{position:`absolute`,left:`${t.left}px`,top:`0`,width:`${t.width}px`,overflow:`hidden`,textOverflow:`clip`})},Ft=(e,t,n,r,i)=>{e.replaceChildren(),Object.assign(e.style,{pointerEvents:`none`,overflow:`visible`,background:`transparent`});let a=document.createDocumentFragment();if(r){let e=Nt(n,t);Pt(e,i),a.appendChild(e)}t.borderTop&&a.appendChild(Mt(`top`,t.borderTop)),t.borderRight&&a.appendChild(Mt(`right`,t.borderRight)),t.borderBottom&&a.appendChild(Mt(`bottom`,t.borderBottom)),t.borderLeft&&a.appendChild(Mt(`left`,t.borderLeft)),e.appendChild(a)},It=e=>{if(!e)return;let t=e.style||{},n={};t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.color?n.color=t.color:t.backgroundColor&&j(t.backgroundColor).isDark()&&(n.color=`#ffffff`);let r=Xe(t);r?n.font=r:t.backgroundColor&&j(t.backgroundColor).isDark()&&(n.font=`bold ${Me}px ${je}`);let i=ft(t,`Top`);i&&(n.borderTop=i);let a=ft(t,`Right`);a&&(n.borderRight=a);let o=ft(t,`Bottom`);o&&(n.borderBottom=o);let s=ft(t,`Left`);s&&(n.borderLeft=s);let c=Ze(e.className);c&&(n.horizontalAlign=c);let l=$(e.className);if(l&&(n.verticalAlign=l),Qe(e.className,`htWrap`)&&(n.wrapText=!0),Qe(e.className,`htShrink`)&&(n.shrinkToFit=!0),!(!n.backgroundColor&&!n.color&&!n.font&&!pt(n)&&!mt(n)))return n},Lt=({hostHeight:e,sheetDefaults:t,virtualState:n})=>({ROW_KEY:`__k`,DISABLED:!0,HEIGHT:Math.max(e,240),MAX_HEIGHT:Math.max(e,240),HEADER_HEIGHT:Le,CELL_HEIGHT:at(t.rowHeight,t.rowHeight),CELL_WIDTH:t.colWidth,CELL_PADDING:Fe,CELL_LINE_HEIGHT:Ie,COLUMNS_VERTICAL_ALIGN:`middle`,HEADER_FONT:He,BODY_FONT:Ue,BORDER_RADIUS:0,BORDER_COLOR:X,HEADER_BG_COLOR:Re,BODY_BG_COLOR:`#ffffff`,HEADER_TEXT_COLOR:Y,BODY_TEXT_COLOR:`#202124`,READONLY_COLOR:`#ffffff`,READONLY_TEXT_COLOR:`#202124`,EDIT_BG_COLOR:`#ffffff`,PLACEHOLDER_COLOR:`#8a94a3`,SCROLLER_COLOR:`#c1c7d0`,SCROLLER_FOCUS_COLOR:`#9aa0a6`,SELECT_ROW_COL_BG_COLOR:Z,SELECT_AREA_COLOR:`rgba(33, 163, 102, 0.14)`,SELECT_BORDER_COLOR:ze,AUTOFILL_POINT_BORDER_COLOR:ze,ENABLE_SELECTOR:!0,ENABLE_SELECTOR_SINGLE:!1,ENABLE_SELECTOR_SPAN_COL:!0,ENABLE_SELECTOR_SPAN_ROW:!0,ENABLE_SELECTOR_ALL_ROWS:!0,ENABLE_SELECTOR_ALL_COLS:!0,SELECTOR_AREA_MIN_X:Q,ENABLE_CONTEXT_MENU:!1,ENABLE_HEADER_CONTEXT_MENU:!1,ENABLE_AUTOFILL:!0,ENABLE_AUTOFILL_SPAN_COL:!0,ENABLE_AUTOFILL_SPAN_ROW:!0,ENABLE_PASTER:!1,ENABLE_HISTORY:!1,ENABLE_RESIZE_COLUMN:!1,ENABLE_RESIZE_ROW:!1,ENABLE_KEYBOARD:!0,ENABLE_COPY:!0,BEFORE_AUTOFILL_DATA_METHOD:()=>[],SPAN_METHOD:({rowIndex:e,colIndex:t,column:r})=>{if(t===0)return;let i=xt(e,t,r);if(n.mergeCoveredMap.has(i))return{rowspan:0,colspan:0};let a=n.mergeStartMap.get(i);if(a)return{rowspan:a.rowspan,colspan:a.colspan}},HEADER_CELL_STYLE_METHOD:()=>Ge,BODY_CELL_STYLE_METHOD:({row:e,rowIndex:t,colIndex:r,column:i})=>{if(r===0)return Ge;let a=e;if(!yt(a))return O(a)===E.Loaded?n.cellCache.get(xt(t,r,i)):Ke},BODY_CELL_RENDER_METHOD:({row:e,rowIndex:t,colIndex:r,column:i,value:a})=>{let o=e;if(r===0||yt(o)||O(o)!==E.Loaded)return;let s=xt(t,r,i);if(n.mergeCoveredMap.has(s))return;let c=n.cellCache.get(s),l=bt(i,r),u=kt(n,o,t,l,i,c,a),d=ht(c,i)||!!u;if(!(!pt(c)&&!d))return(e=>{let r={...c||{},horizontalAlign:c?.horizontalAlign||i?.align,verticalAlign:c?.verticalAlign||i?.verticalAlign};Ft(e,pt(c)?jt(n,t,l,r):r,a,d,u)})},BODY_CELL_FORMATTER_METHOD:({row:e,rowIndex:t,colIndex:r,column:i,value:a})=>{if(yt(e))return``;if(r===0){let e=t+1-n.indexOffset;return e>0?`${e}`:``}if(O(e)!==E.Loaded)return``;let o=e,s=n.cellCache.get(xt(t,r,i)),c=kt(n,o,t,bt(i,r),i,s,a);return ht(s,i)||c||a==null?``:`${a}`}}),Rt={class:`excel-wrapper`},zt={key:0,class:`loading`},Bt={class:`loading-card`},Vt={class:`loading-copy`},Ht={key:1,class:`error`},Ut={class:`table-wrapper`},Wt={key:0,class:`sheet-loading`},Gt={key:0,class:`sheet-loading-summary`},Kt={class:`table-host`},qt={class:`toolbar`},Jt={class:`btn-group`},Yt=[`onClick`],Xt={key:0,class:`summary`},Zt=m(s({__name:`XlsxTable`,props:{data:{}},setup(e){let t=e,s=r(null),c=r([]),m=r(0),y=r(``),x=r(0),w=r(0),O=r({...T}),k=r(!0),A=r(!1),oe=r(0),se=r(0),ce=f(()=>c.value.find(e=>e.id===m.value)),j=f(()=>{let e=c.value.filter(e=>!e.hidden);return e.length?e:c.value}),le=f(()=>!y.value&&!A.value&&(M.value||k.value)),ue=f(()=>!le.value&&!y.value&&A.value&&se.value>0),de=f(()=>c.value.length?ce.value?.name?`正在准备「${ce.value.name}」...`:`正在准备工作表内容...`:`正在解析 Excel 工作簿,请耐心等待...`),fe=f(()=>x.value?`已缓存 ${Math.min(oe.value*500,x.value).toLocaleString()} / ${x.value.toLocaleString()} 行`:``),pe=f(()=>{let e=x.value||ce.value?.rowCount||0,t=w.value||ce.value?.colCount||0;return e?t?`共 ${e} 行,${t} 列,按视口预取平滑加载`:`共 ${e} 行,按视口预取平滑加载`:``}),{loading:M,worker:me,onWorkerEvent:he}=b(()=>S.create()),N=ee(),P=new Map,F=null,I=null,L=0,R=0,ge={start:0,end:0},_e=1,z=0,B=0,V=()=>m.value??c.value[0]?.id,ve=()=>s.value?.clientHeight||0,H=()=>{oe.value=N.loadedWindows.size,se.value=N.loadingWindows.size},U=()=>({config:Lt({hostHeight:ve(),sheetDefaults:O.value,virtualState:N}),columns:lt(N.columns)}),ye=()=>{ge={start:0,end:0},_e=1,z=0},be=()=>{F&&(R&&cancelAnimationFrame(R),R=requestAnimationFrame(()=>{if(R=0,!F||!N.active||!N.totalRows)return;let e=Math.max(F.ctx.body.headIndex||0,0),t=Math.max(F.ctx.body.tailIndex||e,e),n=F.ctx.scrollY||0;_e=n>=z?1:-1,z=n,ge={start:e,end:t},Ce(e,t)}))},xe=()=>F||!s.value?F:(F=new C.default(s.value,{data:[],columns:[],config:Lt({hostHeight:ve(),sheetDefaults:O.value,virtualState:N})}),F.on(`onScrollY`,be),F.on(`resize`,be),F),W=(e,t=N.columns,n=N.rows,r=!1)=>{let i={config:Lt({hostHeight:ve(),sheetDefaults:O.value,virtualState:N}),columns:lt(t)};if(e.loadConfig(i.config),e.loadColumns(i.columns),e.loadData(n),e.draw(),r){requestAnimationFrame(()=>{e.scrollTo(0,0),e.draw(),be()});return}be()},Se=()=>{let e=xe();if(!e)return;let{config:t,columns:n}=U();e.loadConfig(t),N.active&&n.length&&e.loadColumns(n),e.doLayout(),e.draw(),be()},G=(e=0,t=!0)=>{let n=V();if(n===void 0)return;let r=re(e,N.totalRows);N.loadedWindows.has(r)||N.loadingWindows.has(r)||(N.loadingWindows.add(r),H(),N.active&&(ae(N.rows,N.totalRows,r,E.Loading),F?.draw()),y.value=``,me.emit(`parseSheet`,{sheet:n,startRow:r,pageSize:500,sessionId:B}),t&&(M.value=!1))},Ce=(e,t)=>{!N.active||!N.totalRows||ie({startRow:e,endRow:t,direction:_e,totalRows:N.totalRows}).forEach(e=>G(e,!0))},we=e=>{let t=e.meta;if(!t)return;let{columns:n,dataKeys:r}=ct(e);N={...ee(),active:!0,totalRows:t.totalRows,totalCols:t.totalCols,indexOffset:st(e),defaults:e.defaults,dataKeys:r,rows:ne(t.totalRows),columns:n},O.value=e.defaults,x.value=t.totalRows,w.value=t.totalCols,H(),p(()=>{let e=xe();e&&W(e,n,N.rows,!0)})},K=e=>{N.dataKeys.forEach(t=>{delete e[t]})},Te=e=>{Array.isArray(e)&&e.forEach((e,t)=>{if(e===void 0)return;let n=N.rows[t];if(!n)return;let r=at(e,N.defaults.rowHeight);n._height=r,N.rowHeightCache.set(t,r)})},Ee=e=>{let t=e.meta;if(!t)return;let n=[],r=Math.min(t.endRow,N.totalRows);for(let i=t.startRow;i<r;i+=1){let r=N.rows[i],a=i-t.startRow;if(!r)continue;K(r),(e.data?.[a]||[]).forEach((e,t)=>{e===``||e==null||(r[te(t)]=e)});let o=it(e.rowHeights,a,N.defaults.rowHeight),s=at(it(e.structure?.rowHeights,i,o),N.defaults.rowHeight);r._height=s,r.__s=E.Loaded,N.rowHeightCache.set(i,s),n.push(i)}N.windowRows.set(t.startRow,n)},De=e=>{let t=e.meta;if(!t)return;let n=[];Object.entries(e.cell||{}).forEach(([e,r])=>{let[i,a]=e.split(`-`).map(Number),o=D(t.startRow+i,a+1),s=It(r);s&&(N.cellCache.set(o,s),n.push(o))}),N.windowCells.set(t.startRow,n)},q=e=>{N.mergeStartMap.clear(),N.mergeCoveredMap.clear(),e.forEach(e=>{let t=D(e.row,e.col+1);N.mergeStartMap.set(t,{...e,col:e.col+1});for(let t=0;t<e.rowspan;t+=1)for(let n=0;n<e.colspan;n+=1){if(t===0&&n===0)continue;let r=D(e.row+t,e.col+n+1);N.mergeCoveredMap.set(r,!0)}})},J=e=>{let t=e.structure,n=t?.merge;if(n)q(n);else{let t=e.meta;t&&!N.mergeStartMap.size&&q((e.merge||[]).map(e=>({...e,row:e.row+t.startRow})))}Te(t?.rowHeights)},Oe=e=>{let t=e.meta;if(!t)return;N.active||we(e),J(e),Ee(e),De(e),N.loadedWindows.add(t.startRow),N.loadingWindows.delete(t.startRow),H(),A.value=!0;let n=V();n!==void 0&&P.set(n,N),F?.draw(),M.value=!1,k.value=!1,Ce(ge.start||t.startRow,Math.max(ge.end,t.endRow-1,t.startRow))},ke=()=>{y.value=``,x.value=0,w.value=0,O.value={...T},N=ee(),A.value=!1,ye(),H(),F&&(F.loadColumns([]),F.loadData([]),F.scrollTo(0,0),F.draw())},Ae=()=>{let e=V();e===void 0||!N.active||P.set(e,N)},je=e=>{let t=P.get(e);return t?(t.loadingWindows.clear(),N=t,y.value=``,x.value=t.totalRows,w.value=t.totalCols,O.value=t.defaults,A.value=t.loadedWindows.size>0,k.value=!A.value,H(),p(()=>{let e=xe();e&&W(e,t.columns,t.rows)}),!0):!1},Me=()=>{let e=V();if(e===void 0){M.value=!1,k.value=!1;return}if(B+=1,je(e)){M.value=!1;return}k.value=!0,ke(),G(0,!1)},Ne=e=>{m.value!==e&&(Ae(),m.value=e,Me())},Pe=()=>{me.emit(`parseWorkbook`,{workbook:t.data})};return he(`sheets`,({sheets:e})=>{c.value=e;let t=e.find(e=>!e.hidden)||e[0];if(t){m.value=t.id,Me();return}k.value=!1,M.value=!1}),he(`parseSheet`,({sessionId:e,sheet:t,sheetData:n})=>{e!==B||t!==V()||Oe(n)}),he(`parseError`,({sessionId:e,startRow:t,message:n})=>{e&&e!==B||(k.value=!1,M.value=!1,typeof t==`number`?(N.loadingWindows.delete(t),H(),N.active&&(ae(N.rows,N.totalRows,t,E.Placeholder),F?.draw())):(N.loadingWindows.clear(),H()),y.value=n||`Excel 解析失败`)}),o(()=>t.data,()=>{B+=1,c.value=[],m.value=0,P.clear(),k.value=!0,ke(),Pe()}),l(()=>{xe(),s.value&&(I=new ResizeObserver(()=>{L&&cancelAnimationFrame(L),L=requestAnimationFrame(()=>{L=0,Se()})}),I.observe(s.value)),Pe()}),d(()=>{L&&cancelAnimationFrame(L),R&&cancelAnimationFrame(R),I?.disconnect(),I=null,F?.destroy(),F=null}),(e,t)=>(i(),g(`div`,Rt,[le.value?(i(),g(`div`,zt,[h(`div`,Bt,[t[2]||=h(`div`,{class:`loading-brand`},[h(`img`,{class:`lg`,src:``+new URL(`xlsx-ff7ER-JZ.png`,import.meta.url).href,alt:`xlsx`})],-1),h(`div`,Vt,[t[0]||=h(`span`,{class:`loading-kicker`},`Excel 表格`,-1),h(`strong`,null,n(de.value),1),t[1]||=h(`p`,null,`正在准备工作表、样式和大数据视口,请稍候。`,-1)]),t[3]||=h(`span`,{class:`loading-spinner`},null,-1)])])):y.value?(i(),g(`div`,Ht,n(y.value),1)):u(``,!0),h(`div`,Ut,[ue.value?(i(),g(`div`,Wt,[t[4]||=h(`span`,{class:`sheet-loading-dot`},null,-1),t[5]||=h(`span`,null,`正在平滑补充可视区数据`,-1),fe.value?(i(),g(`span`,Gt,n(fe.value),1)):u(``,!0)])):u(``,!0),h(`div`,Kt,[h(`div`,{ref_key:`tableHost`,ref:s,class:`table-target`,style:{width:`100%`,height:`100%`}},null,512)])]),h(`div`,qt,[h(`div`,Jt,[(i(!0),g(a,null,_(j.value,e=>(i(),g(`button`,{key:e.id,style:{padding:`0 30px`},class:v({active:m.value===e.id}),onClick:t=>Ne(e.id)},n(e.name),11,Yt))),128))]),pe.value?(i(),g(`div`,Xt,n(pe.value),1)):u(``,!0)])]))}}),[[`__scopeId`,`data-v-8465aa04`]]);export{Zt as default};
|