@jxsuite/studio 10.2.0 → 10.3.0
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/dist/chunks/{2020-bx702wqa.js → 2020-906vx2dq.js} +3 -3
- package/dist/chunks/adapter-hnvad61x.js +4 -0
- package/dist/chunks/add-new-flow-3tkn72ey.js +4 -0
- package/dist/chunks/cf-account-picker-xb8vvt2h.js +4 -0
- package/dist/chunks/cf-settings-mkbcz4z2.js +4 -0
- package/dist/chunks/components-w5zqwva1.js +4 -0
- package/dist/chunks/content-source-1vzxq1ba.js +4 -0
- package/dist/chunks/convert-to-repeater-gwzh9gar.js +4 -0
- package/dist/chunks/editor-wvf5e6j9.js +4 -0
- package/dist/chunks/entry-commands-mx2whrjx.js +4 -0
- package/dist/chunks/extension-sections-338ee35t.js +4 -0
- package/dist/chunks/file-ops-9bxvk59j.js +4 -0
- package/dist/chunks/files-t07yqqej.js +4 -0
- package/dist/chunks/format-host-5ja5gxyk.js +4 -0
- package/dist/chunks/fs-events-3424ezp3.js +4 -0
- package/dist/chunks/grid-open-1mpq9mzb.js +4 -0
- package/dist/chunks/{grid-view-tghcwrrt.js → grid-view-w9nfy203.js} +16 -16
- package/dist/chunks/icons-gb967qc8.js +4 -0
- package/dist/chunks/iframe-host-wsg0bn73.js +4 -0
- package/dist/chunks/image-bake-4afr4y6a.js +4 -0
- package/dist/chunks/image-editor-x7t8jbjn.js +4 -0
- package/dist/chunks/index-f9qr7kzh.js +4 -0
- package/dist/chunks/{index-vr006kbt.js → index-yjrfeks8.js} +3 -3
- package/dist/chunks/{javascript-z1g3s9fd.js → javascript-hy2mws8v.js} +3 -3
- package/dist/chunks/{jsonMode-7szwg8c4.js → jsonMode-vj30te2h.js} +6 -6
- package/dist/chunks/jx-validate-ttr5ewf0.js +4 -0
- package/dist/chunks/layers-m49nmwvx.js +4 -0
- package/dist/chunks/layers-panel-hvy2e549.js +4 -0
- package/dist/chunks/lit-html-k2mb9k0r.js +4 -0
- package/dist/chunks/media-library-ae67q4at.js +4 -0
- package/dist/chunks/media-open-yp9jm834.js +4 -0
- package/dist/chunks/media-picker-s41ngdfr.js +4 -0
- package/dist/chunks/{monaco-binding-v42w9c1v.js → monaco-binding-a51py33c.js} +3 -3
- package/dist/chunks/monaco-buffer-pa0g6ax7.js +4 -0
- package/dist/chunks/{monaco-setup-7bffxd6v.js → monaco-setup-g9kterhx.js} +3 -3
- package/dist/chunks/notify-bwehrp7q.js +4 -0
- package/dist/chunks/parse-hee7ne9b.js +4 -0
- package/dist/chunks/platform-kv0k65cy.js +4 -0
- package/dist/chunks/publish-panel-gzfxcm0t.js +4 -0
- package/dist/chunks/publish-quick-w3nxd7q4.js +4 -0
- package/dist/chunks/publish-workspace-dppd82tc.js +4 -0
- package/dist/chunks/quick-search-tdxaam55.js +4 -0
- package/dist/chunks/references-vqyr5s9x.js +4 -0
- package/dist/chunks/right-panel-0yrw4cgz.js +4 -0
- package/dist/chunks/source-control-6fk72me2.js +4 -0
- package/dist/chunks/{studio-j3d2fjqz.js → studio-0939t1q1.js} +4 -4
- package/dist/chunks/studio-0gvvqj3h.js +5 -0
- package/dist/chunks/studio-0khd8xtx.js +4 -0
- package/dist/chunks/studio-0w3541dg.js +7 -0
- package/dist/chunks/{studio-9b7177jq.js → studio-0x6f3nk9.js} +4 -4
- package/dist/chunks/studio-1410q5dw.js +5 -0
- package/dist/chunks/{studio-awxwjawq.js → studio-15hwqgd8.js} +4 -4
- package/dist/chunks/studio-1ks5d9y4.js +5 -0
- package/dist/chunks/{studio-881z1xrx.js → studio-2ggfzrrd.js} +4 -4
- package/dist/chunks/{studio-4jhw38b2.js → studio-321ym1tt.js} +4 -4
- package/dist/chunks/studio-3c10v2q1.js +5 -0
- package/dist/chunks/{studio-bvs9kpst.js → studio-3na1r48j.js} +8 -8
- package/dist/chunks/{studio-86r8hp7r.js → studio-3q7mhbgx.js} +5 -5
- package/dist/chunks/studio-3qr08sxq.js +4 -0
- package/dist/chunks/studio-3xk9zdgb.js +5 -0
- package/dist/chunks/{studio-qh8berdz.js → studio-423tfdte.js} +4 -4
- package/dist/chunks/{studio-75kcdbsk.js → studio-45mj4jqe.js} +4 -4
- package/dist/chunks/studio-4f7thq0p.js +5 -0
- package/dist/chunks/studio-4fnb5648.js +5 -0
- package/dist/chunks/studio-4zd6an2b.js +5 -0
- package/dist/chunks/studio-53wy9ek3.js +5 -0
- package/dist/chunks/studio-5n193zqd.js +5 -0
- package/dist/chunks/{studio-9rbe2xpw.js → studio-5tet77de.js} +3 -3
- package/dist/chunks/{studio-ybnwymxw.js → studio-7rrdbvex.js} +4 -4
- package/dist/chunks/studio-8kx6m0rg.js +5 -0
- package/dist/chunks/{studio-sxdb9h3q.js → studio-90zkgne5.js} +7 -7
- package/dist/chunks/studio-9c6cbq2c.js +4 -0
- package/dist/chunks/studio-9dq7rwc7.js +5 -0
- package/dist/chunks/{studio-cg1bfyhf.js → studio-9qx1ywbv.js} +8 -8
- package/dist/chunks/studio-a65kbs2e.js +9 -0
- package/dist/chunks/studio-aam8zt8z.js +5 -0
- package/dist/chunks/{studio-er5f383a.js → studio-abh9kfdh.js} +4 -4
- package/dist/chunks/studio-b4e0ftkt.js +5 -0
- package/dist/chunks/studio-b68k0z00.js +5 -0
- package/dist/chunks/{studio-399a25za.js → studio-bct64zmj.js} +4 -4
- package/dist/chunks/studio-bz0b5brj.js +6 -0
- package/dist/chunks/studio-cfnn70h1.js +5 -0
- package/dist/chunks/studio-daksw8kh.js +5 -0
- package/dist/chunks/{studio-r7pf0rkv.js → studio-e7vjyp04.js} +7 -7
- package/dist/chunks/studio-ea6r1zyr.js +5 -0
- package/dist/chunks/studio-egnjpyde.js +9 -0
- package/dist/chunks/studio-ejrypvmq.js +5 -0
- package/dist/chunks/studio-eqcddvc2.js +928 -0
- package/dist/chunks/studio-f8tyeyzt.js +5 -0
- package/dist/chunks/studio-fj6c905s.js +5 -0
- package/dist/chunks/{studio-646nn2ys.js → studio-fkrr7kgg.js} +5 -5
- package/dist/chunks/studio-fspe7m9t.js +5 -0
- package/dist/chunks/studio-g0hxtcga.js +5 -0
- package/dist/chunks/{studio-th7z3fg7.js → studio-g9brbewz.js} +4 -4
- package/dist/chunks/studio-ggx3j7nd.js +5 -0
- package/dist/chunks/{studio-43y04qck.js → studio-hfxttkyr.js} +4 -4
- package/dist/chunks/studio-hh394phe.js +5 -0
- package/dist/chunks/{studio-pjtntksy.js → studio-j0zf5x2x.js} +4 -4
- package/dist/chunks/studio-jeb7hth3.js +5 -0
- package/dist/chunks/studio-k0xzrse2.js +64 -0
- package/dist/chunks/studio-k1xqrgm5.js +5 -0
- package/dist/chunks/studio-k2evngrj.js +7 -0
- package/dist/chunks/studio-k3we3kqb.js +5 -0
- package/dist/chunks/{studio-sevbc3xv.js → studio-n9qba0gx.js} +4 -4
- package/dist/chunks/{studio-6hzdjfv0.js → studio-nf8esxxc.js} +4 -4
- package/dist/chunks/studio-nn4f9m9c.js +5 -0
- package/dist/chunks/studio-nskxe9q1.js +6 -0
- package/dist/chunks/{studio-ea74s8c1.js → studio-nvcn2ykc.js} +4 -4
- package/dist/chunks/studio-nwynxqtb.js +5 -0
- package/dist/chunks/studio-nzemfbkk.js +14 -0
- package/dist/chunks/studio-p2a03pgm.js +5 -0
- package/dist/chunks/{studio-4g8yb6jn.js → studio-pm17wdc4.js} +4 -4
- package/dist/chunks/{studio-71m92v9s.js → studio-q80fg1d6.js} +7 -7
- package/dist/chunks/studio-r050sez0.js +6 -0
- package/dist/chunks/studio-s7t4vp1d.js +6 -0
- package/dist/chunks/studio-s9fng7m8.js +7 -0
- package/dist/chunks/studio-sce30r7b.js +4 -0
- package/dist/chunks/studio-stahswgb.js +7 -0
- package/dist/chunks/studio-swedpd82.js +5 -0
- package/dist/chunks/studio-thz5t120.js +5 -0
- package/dist/chunks/studio-tpxcryf2.js +5 -0
- package/dist/chunks/{studio-wc6za3zs.js → studio-v5wktj6f.js} +4 -4
- package/dist/chunks/{studio-kg1abnz0.js → studio-vpevkfxw.js} +4 -4
- package/dist/chunks/studio-waekn290.js +5 -0
- package/dist/chunks/studio-wfct4h6n.js +5 -0
- package/dist/chunks/studio-wgc54sxf.js +5 -0
- package/dist/chunks/studio-wqfaqw4m.js +5 -0
- package/dist/chunks/studio-wse1rs8t.js +7 -0
- package/dist/chunks/studio-x0gsfr1d.js +16 -0
- package/dist/chunks/{studio-hhp4x8xf.js → studio-xpx91fby.js} +5 -5
- package/dist/chunks/studio-y1b86ast.js +5 -0
- package/dist/chunks/studio-yrcrncev.js +5 -0
- package/dist/chunks/{studio-rzqaz21g.js → studio-yzpskb0j.js} +4 -4
- package/dist/chunks/studio-zfdbmhp3.js +5 -0
- package/dist/chunks/{tsMode-f54j66ym.js → tsMode-jg1dtphj.js} +7 -7
- package/dist/chunks/workspace-9btkc8tk.js +4 -0
- package/dist/chunks/workspace-home-qcc4z5ag.js +4 -0
- package/dist/chunks/{ws-client-e8kj684q.js → ws-client-arz2qsy9.js} +3 -3
- package/dist/iframe-entry.js +13 -13
- package/dist/manifest.json +83 -78
- package/dist/studio.js +84 -84
- package/package.json +2 -2
- package/src/browse/library-pane.ts +44 -29
- package/src/browse/library-preview.ts +6 -2
- package/src/canvas/asset-refs.ts +13 -4
- package/src/canvas/asset-resolve.ts +54 -11
- package/src/canvas/canvas-render.ts +25 -0
- package/src/canvas/iframe-entry.ts +5 -1
- package/src/canvas/iframe-host.ts +16 -6
- package/src/canvas/iframe-protocol.ts +9 -1
- package/src/commands/context.ts +5 -0
- package/src/commands/live-context.ts +5 -2
- package/src/editor/shortcuts.ts +3 -0
- package/src/files/asset-versions.ts +108 -2
- package/src/files/file-ops.ts +11 -1
- package/src/files/files.ts +111 -48
- package/src/files/media-paths.ts +12 -4
- package/src/files/media-upload.ts +195 -21
- package/src/files/new-file-name.ts +39 -1
- package/src/media/image-bake.ts +164 -0
- package/src/media/image-editor.ts +846 -0
- package/src/media/image-format.ts +262 -0
- package/src/media/image-recipe.ts +651 -0
- package/src/media/media-commands.ts +65 -1
- package/src/media/media-library-model.ts +1 -1
- package/src/media/media-library.ts +175 -15
- package/src/media/media-open.ts +156 -3
- package/src/media/media-pane.ts +8 -4
- package/src/panels/pane-context.ts +6 -1
- package/src/panels/tab-strip.ts +12 -3
- package/src/studio.ts +13 -2
- package/src/surfaces/image-editor.json +1390 -0
- package/src/surfaces/image-editor.ts +272 -0
- package/src/surfaces/media-library.json +129 -1
- package/src/surfaces/media-library.ts +17 -2
- package/src/types.ts +2 -1
- package/src/workspace/tab-workspace.ts +2 -1
- package/src/workspace/workspace-switch.ts +3 -1
- package/src/workspace/workspace.ts +22 -1
- package/dist/chunks/adapter-pp011m5x.js +0 -4
- package/dist/chunks/add-new-flow-ecqmzz76.js +0 -4
- package/dist/chunks/cf-account-picker-c07znkqt.js +0 -4
- package/dist/chunks/cf-settings-0v2bmqy0.js +0 -4
- package/dist/chunks/components-yn0dn2pq.js +0 -4
- package/dist/chunks/content-source-g0j41yy6.js +0 -4
- package/dist/chunks/convert-to-repeater-sbjk7tgn.js +0 -4
- package/dist/chunks/editor-xz02jeh1.js +0 -4
- package/dist/chunks/entry-commands-kmt02crp.js +0 -4
- package/dist/chunks/extension-sections-0rprf12d.js +0 -4
- package/dist/chunks/file-ops-mexj5qed.js +0 -4
- package/dist/chunks/files-b2tcppdd.js +0 -4
- package/dist/chunks/format-host-btsevv0c.js +0 -4
- package/dist/chunks/fs-events-r0apejva.js +0 -4
- package/dist/chunks/grid-open-n2a8xkht.js +0 -4
- package/dist/chunks/icons-853n6qt3.js +0 -4
- package/dist/chunks/iframe-host-gx0ypyh3.js +0 -4
- package/dist/chunks/index-bs4k9tr6.js +0 -4
- package/dist/chunks/jx-validate-ymf10teh.js +0 -4
- package/dist/chunks/layers-p9nfya38.js +0 -4
- package/dist/chunks/layers-panel-tt1hzhhf.js +0 -4
- package/dist/chunks/lit-html-x18n2sfz.js +0 -4
- package/dist/chunks/media-library-0n45gv8r.js +0 -4
- package/dist/chunks/media-picker-s09at95z.js +0 -4
- package/dist/chunks/monaco-buffer-een2ea0v.js +0 -4
- package/dist/chunks/notify-qwb8radt.js +0 -4
- package/dist/chunks/parse-v77xtwv7.js +0 -4
- package/dist/chunks/platform-8jnez0wr.js +0 -4
- package/dist/chunks/publish-panel-aysnj611.js +0 -4
- package/dist/chunks/publish-quick-kpbqs9mz.js +0 -4
- package/dist/chunks/publish-workspace-nd0a8q99.js +0 -4
- package/dist/chunks/quick-search-vg0jkhk2.js +0 -4
- package/dist/chunks/references-a7v6a0e2.js +0 -4
- package/dist/chunks/right-panel-cvk1vxx5.js +0 -4
- package/dist/chunks/source-control-fsqzc6he.js +0 -4
- package/dist/chunks/studio-05jfwbmf.js +0 -5
- package/dist/chunks/studio-0q5jwddh.js +0 -9
- package/dist/chunks/studio-0w2dr0q8.js +0 -5
- package/dist/chunks/studio-1tzpds97.js +0 -9
- package/dist/chunks/studio-216b27sv.js +0 -4
- package/dist/chunks/studio-2ejhqns4.js +0 -5
- package/dist/chunks/studio-2r90cts3.js +0 -16
- package/dist/chunks/studio-399xknkb.js +0 -6
- package/dist/chunks/studio-4ncmwqw5.js +0 -5
- package/dist/chunks/studio-5atwjgkj.js +0 -7
- package/dist/chunks/studio-5frqk7c0.js +0 -5
- package/dist/chunks/studio-6cwj6xrx.js +0 -5
- package/dist/chunks/studio-78pywnp2.js +0 -6
- package/dist/chunks/studio-886t6ztg.js +0 -5
- package/dist/chunks/studio-8wnvtr4z.js +0 -5
- package/dist/chunks/studio-8z66jk4z.js +0 -5
- package/dist/chunks/studio-b2qpt0xy.js +0 -14
- package/dist/chunks/studio-c71806xz.js +0 -7
- package/dist/chunks/studio-cbwks69x.js +0 -928
- package/dist/chunks/studio-cg710sk9.js +0 -5
- package/dist/chunks/studio-cw0wb9qk.js +0 -7
- package/dist/chunks/studio-cyheys7k.js +0 -5
- package/dist/chunks/studio-ea5m9kg5.js +0 -5
- package/dist/chunks/studio-efdxjwyp.js +0 -64
- package/dist/chunks/studio-egmw2837.js +0 -5
- package/dist/chunks/studio-f746039f.js +0 -5
- package/dist/chunks/studio-fmdymd9v.js +0 -5
- package/dist/chunks/studio-gcm12z00.js +0 -6
- package/dist/chunks/studio-gj98m8gy.js +0 -7
- package/dist/chunks/studio-hasbgjah.js +0 -5
- package/dist/chunks/studio-hz5n7x27.js +0 -5
- package/dist/chunks/studio-jeraxdgv.js +0 -7
- package/dist/chunks/studio-jvgek9xt.js +0 -5
- package/dist/chunks/studio-jws1a87n.js +0 -5
- package/dist/chunks/studio-k2sz13zg.js +0 -5
- package/dist/chunks/studio-k3m4jkdk.js +0 -5
- package/dist/chunks/studio-kg5ya5r2.js +0 -5
- package/dist/chunks/studio-khwbgrtg.js +0 -5
- package/dist/chunks/studio-mx6wzh25.js +0 -5
- package/dist/chunks/studio-mxs3ar9t.js +0 -5
- package/dist/chunks/studio-nm4szey4.js +0 -5
- package/dist/chunks/studio-nqxqf8p2.js +0 -4
- package/dist/chunks/studio-qn7z4krm.js +0 -5
- package/dist/chunks/studio-qyed0ah6.js +0 -5
- package/dist/chunks/studio-r4bcdwhq.js +0 -5
- package/dist/chunks/studio-rtfnhrdg.js +0 -5
- package/dist/chunks/studio-s5tzw84t.js +0 -5
- package/dist/chunks/studio-t51y8v1d.js +0 -5
- package/dist/chunks/studio-t98vq4r6.js +0 -5
- package/dist/chunks/studio-tsxpqvh0.js +0 -6
- package/dist/chunks/studio-v1yascv2.js +0 -5
- package/dist/chunks/studio-wxq6v5sv.js +0 -5
- package/dist/chunks/studio-y60sts62.js +0 -4
- package/dist/chunks/studio-zndrqawb.js +0 -5
- package/dist/chunks/studio-zwaxn5s2.js +0 -5
- package/dist/chunks/workspace-home-x1787wpv.js +0 -4
- package/dist/chunks/workspace-zpe1np43.js +0 -4
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import"./studio-jws1a87n.js";import"./studio-hz5n7x27.js";import"./studio-ea74s8c1.js";import{Vr,Gc,ft,x$,io}from"./studio-9rbe2xpw.js";import"./studio-b2qpt0xy.js";import{L}from"./studio-0w2dr0q8.js";import{g}from"./studio-y60sts62.js";import"./studio-nqxqf8p2.js";import{Bu,Wl}from"./studio-egmw2837.js";import"./studio-t98vq4r6.js";import"./studio-k2sz13zg.js";import"./studio-qn7z4krm.js";import"./studio-mx6wzh25.js";import{He}from"./studio-8wnvtr4z.js";import"./studio-f746039f.js";import{vb}from"./studio-r7pf0rkv.js";import"./studio-399a25za.js";import"./studio-hhp4x8xf.js";import"./studio-th7z3fg7.js";import"./studio-2r90cts3.js";import"./studio-cw0wb9qk.js";import"./studio-0q5jwddh.js";import"./studio-86r8hp7r.js";import"./studio-rtfnhrdg.js";import"./studio-sevbc3xv.js";import"./studio-sxdb9h3q.js";import{Ew,yp,Qo,wS}from"./studio-qyed0ah6.js";import{Cd,rm,KR}from"./studio-75kcdbsk.js";import{ZD}from"./studio-zndrqawb.js";import"./studio-78pywnp2.js";import"./studio-5frqk7c0.js";import{n}from"./studio-8z66jk4z.js";class H{constructor(e){this.table=e}reloadData(e,t,i){return this.table.dataLoader.load(e,void 0,void 0,void 0,t,i)}langText(){return this.table.modules.localize.getText(...arguments)}langBind(){return this.table.modules.localize.bind(...arguments)}langLocale(){return this.table.modules.localize.getLocale(...arguments)}commsConnections(){return this.table.modules.comms.getConnections(...arguments)}commsSend(){return this.table.modules.comms.send(...arguments)}layoutMode(){return this.table.modules.layout.getMode()}layoutRefresh(e){return this.table.modules.layout.layout(e)}subscribe(){return this.table.eventBus.subscribe(...arguments)}unsubscribe(){return this.table.eventBus.unsubscribe(...arguments)}subscribed(e){return this.table.eventBus.subscribed(e)}subscriptionChange(){return this.table.eventBus.subscriptionChange(...arguments)}dispatch(){return this.table.eventBus.dispatch(...arguments)}chain(){return this.table.eventBus.chain(...arguments)}confirm(){return this.table.eventBus.confirm(...arguments)}dispatchExternal(){return this.table.externalEvents.dispatch(...arguments)}subscribedExternal(e){return this.table.externalEvents.subscribed(e)}subscriptionChangeExternal(){return this.table.externalEvents.subscriptionChange(...arguments)}options(e){return this.table.options[e]}setOption(e,t){if(typeof t<"u")this.table.options[e]=t;return this.table.options[e]}deprecationCheck(e,t,i){return this.table.deprecationAdvisor.check(e,t,i)}deprecationCheckMsg(e,t){return this.table.deprecationAdvisor.checkMsg(e,t)}deprecationMsg(e){return this.table.deprecationAdvisor.msg(e)}module(e){return this.table.module(e)}}class M{static elVisible(e){return!(e.offsetWidth<=0&&e.offsetHeight<=0)}static elOffset(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset-document.documentElement.clientTop,left:t.left+window.pageXOffset-document.documentElement.clientLeft}}static retrieveNestedData(e,t,i){var s=e?t.split(e):[t],r=s.length,o;for(let a=0;a<r;a++)if(i=i[s[a]],o=i,!i)break;return o}static deepClone(e,t,i=[]){var s={}.__proto__,r=[].__proto__;if(!t)t=Object.assign(Array.isArray(e)?[]:{},e);for(var o in e){let a=e[o],l,h;if(a!=null&&typeof a==="object"&&(a.__proto__===s||a.__proto__===r))if(l=i.findIndex((d)=>d.subject===a),l>-1)t[o]=i[l].copy;else h=Object.assign(Array.isArray(a)?[]:{},a),i.unshift({subject:a,copy:h}),t[o]=this.deepClone(a,h,i)}return t}}var et=class e extends H{constructor(t,i,s){super(t);this.element=i,this.container=this._lookupContainer(),this.parent=s,this.reversedX=!1,this.childPopup=null,this.blurable=!1,this.blurCallback=null,this.blurEventsBound=!1,this.renderedCallback=null,this.offset={top:null,right:null,bottom:null,left:null},this.visible=!1,this.hideable=!0,this.element.classList.add("tabulator-popup-container"),this.blurEvent=this.hide.bind(this,!1),this.escEvent=this._escapeCheck.bind(this),this.destroyBinding=this.tableDestroyed.bind(this),this.destroyed=!1}tableDestroyed(){this.destroyed=!0,this.hide(!0)}_lookupContainer(){var t=this.table.options.popupContainer;if(typeof t==="string"){if(t=document.querySelector(t),!t)console.warn("Menu Error - no container element found matching selector:",this.table.options.popupContainer,"(defaulting to document body)")}else if(t===!0)t=this.table.element;if(t&&!this._checkContainerIsParent(t))t=!1,console.warn("Menu Error - container element does not contain this table:",this.table.options.popupContainer,"(defaulting to document body)");if(!t)t=document.body;return t}_checkContainerIsParent(t,i=this.table.element){if(t===i)return!0;else return i.parentNode?this._checkContainerIsParent(t,i.parentNode):!1}renderCallback(t){this.renderedCallback=t}containerEventCoords(t){var i=!(t instanceof MouseEvent),s=i?t.touches[0].pageX:t.pageX,r=i?t.touches[0].pageY:t.pageY;if(this.container!==document.body){let o=M.elOffset(this.container);s-=o.left,r-=o.top}return{x:s,y:r}}elementPositionCoords(t,i="right"){var s=M.elOffset(t),r,o,a;if(this.container!==document.body)r=M.elOffset(this.container),s.left-=r.left,s.top-=r.top;switch(i){case"right":o=s.left+t.offsetWidth,a=s.top-1;break;case"bottom":o=s.left,a=s.top+t.offsetHeight;break;case"left":o=s.left,a=s.top-1;break;case"top":o=s.left,a=s.top;break;case"center":o=s.left+t.offsetWidth/2,a=s.top+t.offsetHeight/2;break}return{x:o,y:a,offset:s}}show(t,i){var s,r;if(this.destroyed||this.table.destroyed)return this;if(!this.parent)this.reversedX=!1;if(t instanceof HTMLElement)s=t,r=this.elementPositionCoords(t,i).offset;else if(typeof t==="number")r={top:0,left:0};let o=this.resolveCoordsByOrigin(t,i);if(this.offset.top=o.y,this.offset.left=o.x,this.offset.right=null,this.applyOffset(),this.container.appendChild(this.element),typeof this.renderedCallback==="function")this.renderedCallback();return this._fitToScreen(o.x,o.y,s,r,i),this.visible=!0,this.subscribe("table-destroy",this.destroyBinding),this.element.addEventListener("mousedown",(a)=>{a.stopPropagation()}),this}resolveCoordsByOrigin(t,i){if(t instanceof HTMLElement){let s=this.elementPositionCoords(t,i);return{x:s.x,y:s.y}}if(typeof t==="number")return{x:t,y:i};return this.containerEventCoords(t)}_elementWidth(){return this.element.getBoundingClientRect().width||this.element.offsetWidth}_elementHeight(){return this.element.getBoundingClientRect().height||this.element.offsetHeight}_fitToScreen(t,i,s,r,o){var a=this.container===document.body?document.documentElement.scrollTop:this.container.scrollTop,l=this.container===document.body?document.documentElement.scrollLeft:this.container.scrollLeft,h=this.container===document.body?l:0,d=this.container===document.body?l+document.documentElement.clientWidth:this.container.offsetWidth,u=this.container===document.body?a:0,c=this.container===document.body?a+document.documentElement.clientHeight:Math.max(this.container.offsetHeight,a?this.container.scrollHeight:0),f=this._elementWidth(),p=t;if(p+f>d||this.reversedX){if(s&&o==="right")p=r.left-f;else if(s&&o==="left")p=r.left+s.offsetWidth;else if(s)p=r.left-f;else p=d-f;this.reversedX=!0}if(p+f>d)p=d-f;if(p<h)p=h;if(this.offset.left=p,this.offset.right=null,i+this._elementHeight()>c)if(s)switch(o){case"bottom":this.offset.top=this.offset.top-this._elementHeight()-s.offsetHeight-1;break;default:this.offset.top=this.offset.top-this._elementHeight()+s.offsetHeight+1}else{let m=this._elementHeight();if(m>c-u)this.offset.top=u,this.element.style.height=c-u+"px";else{let b=i-m;if(b<u)b=c-m;this.offset.top=b}}if(this.offset.top+this._elementHeight()>c)this.offset.top=c-this._elementHeight();if(this.offset.top<u)this.offset.top=u;this.applyOffset()}applyOffset(){this.element.style.top=this.offset.top==null?"":this.offset.top+"px",this.element.style.right=this.offset.right==null?"":this.offset.right+"px",this.element.style.bottom=this.offset.bottom==null?"":this.offset.bottom+"px",this.element.style.left=this.offset.left==null?"":this.offset.left+"px"}isVisible(){return this.visible}hideOnBlur(t){if(this.blurable=!0,this.visible)setTimeout(()=>{if(this.visible)this.table.rowManager.element.addEventListener("scroll",this.blurEvent),this.subscribe("cell-editing",this.blurEvent),document.body.addEventListener("click",this.blurEvent),document.body.addEventListener("contextmenu",this.blurEvent),document.body.addEventListener("mousedown",this.blurEvent),window.addEventListener("resize",this.blurEvent),document.body.addEventListener("keydown",this.escEvent),this.blurEventsBound=!0},100),this.blurCallback=t;return this}_escapeCheck(t){if(t.key==27)this.hide()}blockHide(){this.hideable=!1}restoreHide(){this.hideable=!0}hide(t=!1){if(this.visible&&this.hideable){if(this.blurable&&this.blurEventsBound)document.body.removeEventListener("keydown",this.escEvent),document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),document.body.removeEventListener("mousedown",this.blurEvent),window.removeEventListener("resize",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent),this.unsubscribe("cell-editing",this.blurEvent),this.blurEventsBound=!1;if(this.childPopup)this.childPopup.hide();if(this.parent)this.parent.childPopup=null;if(this.element.parentNode)this.element.parentNode.removeChild(this.element);if(this.visible=!1,this.blurCallback&&!t)this.blurCallback();this.unsubscribe("table-destroy",this.destroyBinding)}return this}child(t){if(this.childPopup)this.childPopup.hide();return this.childPopup=new e(this.table,t,this),this.childPopup}};class F extends H{constructor(e,t){super(e);this._handler=null}initialize(){}registerTableOption(e,t){this.table.optionsList.register(e,t)}registerColumnOption(e,t){this.table.columnManager.optionsList.register(e,t)}registerTableFunction(e,t){if(typeof this.table[e]>"u")this.table[e]=(...i)=>(this.table.initGuard(e),t(...i));else console.warn("Unable to bind table function, name already in use",e)}registerComponentFunction(e,t,i){return this.table.componentFunctionBinder.bind(e,t,i)}registerDataHandler(e,t){this.table.rowManager.registerDataPipelineHandler(e,t),this._handler=e}registerDisplayHandler(e,t){this.table.rowManager.registerDisplayPipelineHandler(e,t),this._handler=e}displayRows(e){var t=this.table.rowManager.displayRows.length-1,i;if(this._handler){if(i=this.table.rowManager.displayPipeline.findIndex((s)=>s.handler===this._handler),i>-1)t=i}if(e)t=t+e;if(this._handler)if(t>-1)return this.table.rowManager.getDisplayRows(t);else return this.activeRows()}activeRows(){return this.table.rowManager.activeRows}refreshData(e,t){if(!t)t=this._handler;if(t)this.table.rowManager.refreshActiveData(t,!1,e)}footerAppend(e){return this.table.footerManager.append(e)}footerPrepend(e){return this.table.footerManager.prepend(e)}footerRemove(e){return this.table.footerManager.remove(e)}popup(e,t){return new et(this.table,e,t)}alert(e,t){return this.table.alertManager.alert(e,t)}clearAlert(){return this.table.alertManager.clear()}}function ne(e,t){var i=[];if(t=t||"",Array.isArray(e))e.forEach((r,o)=>{i=i.concat(ne(r,t?t+"["+o+"]":o))});else if(typeof e==="object")for(var s in e)i=i.concat(ne(e[s],t?t+"["+s+"]":s));else i.push({key:t,value:e});return i}function tt(e){var t=ne(e),i=[];return t.forEach(function(s){i.push(encodeURIComponent(s.key)+"="+encodeURIComponent(s.value))}),i.join("&")}function it(e,t,i){if(e){if(i&&Object.keys(i).length){if(!t.method||t.method.toLowerCase()=="get")t.method="get",e+=(e.includes("?")?"&":"?")+tt(i)}}return e}var st={replace:function(e){return this.table.setData(e)},update:function(e){return this.table.updateOrAddData(e)},insert:function(e){return this.table.addData(e)}},nt={table:function(e){var t=[],i=!0,s=this.table.columnManager.columns,r=[],o=[];if(e=e.split(`
|
|
1
|
+
import"./studio-4fnb5648.js";import"./studio-aam8zt8z.js";import"./studio-nvcn2ykc.js";import{Wr,Zc,ft,eI,io}from"./studio-5tet77de.js";import"./studio-nzemfbkk.js";import"./studio-tpxcryf2.js";import"./studio-sce30r7b.js";import"./studio-wqfaqw4m.js";import"./studio-9c6cbq2c.js";import{qu,Kl}from"./studio-waekn290.js";import"./studio-hh394phe.js";import"./studio-yrcrncev.js";import"./studio-swedpd82.js";import"./studio-4zd6an2b.js";import"./studio-bct64zmj.js";import"./studio-1ks5d9y4.js";import"./studio-y1b86ast.js";import{Db}from"./studio-e7vjyp04.js";import"./studio-xpx91fby.js";import"./studio-g9brbewz.js";import"./studio-x0gsfr1d.js";import"./studio-stahswgb.js";import"./studio-a65kbs2e.js";import"./studio-3q7mhbgx.js";import"./studio-1410q5dw.js";import"./studio-ggx3j7nd.js";import"./studio-53wy9ek3.js";import"./studio-n9qba0gx.js";import"./studio-90zkgne5.js";import{zw,Lp,Qo,WS}from"./studio-thz5t120.js";import{Pd,Sm,IN}from"./studio-45mj4jqe.js";import"./studio-nskxe9q1.js";import{QN}from"./studio-ejrypvmq.js";import"./studio-zfdbmhp3.js";import{E}from"./studio-9dq7rwc7.js";import{Me}from"./studio-0gvvqj3h.js";import{g}from"./studio-3qr08sxq.js";import{n}from"./studio-k3we3kqb.js";class H{constructor(e){this.table=e}reloadData(e,t,i){return this.table.dataLoader.load(e,void 0,void 0,void 0,t,i)}langText(){return this.table.modules.localize.getText(...arguments)}langBind(){return this.table.modules.localize.bind(...arguments)}langLocale(){return this.table.modules.localize.getLocale(...arguments)}commsConnections(){return this.table.modules.comms.getConnections(...arguments)}commsSend(){return this.table.modules.comms.send(...arguments)}layoutMode(){return this.table.modules.layout.getMode()}layoutRefresh(e){return this.table.modules.layout.layout(e)}subscribe(){return this.table.eventBus.subscribe(...arguments)}unsubscribe(){return this.table.eventBus.unsubscribe(...arguments)}subscribed(e){return this.table.eventBus.subscribed(e)}subscriptionChange(){return this.table.eventBus.subscriptionChange(...arguments)}dispatch(){return this.table.eventBus.dispatch(...arguments)}chain(){return this.table.eventBus.chain(...arguments)}confirm(){return this.table.eventBus.confirm(...arguments)}dispatchExternal(){return this.table.externalEvents.dispatch(...arguments)}subscribedExternal(e){return this.table.externalEvents.subscribed(e)}subscriptionChangeExternal(){return this.table.externalEvents.subscriptionChange(...arguments)}options(e){return this.table.options[e]}setOption(e,t){if(typeof t<"u")this.table.options[e]=t;return this.table.options[e]}deprecationCheck(e,t,i){return this.table.deprecationAdvisor.check(e,t,i)}deprecationCheckMsg(e,t){return this.table.deprecationAdvisor.checkMsg(e,t)}deprecationMsg(e){return this.table.deprecationAdvisor.msg(e)}module(e){return this.table.module(e)}}class L{static elVisible(e){return!(e.offsetWidth<=0&&e.offsetHeight<=0)}static elOffset(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset-document.documentElement.clientTop,left:t.left+window.pageXOffset-document.documentElement.clientLeft}}static retrieveNestedData(e,t,i){var s=e?t.split(e):[t],r=s.length,o;for(let a=0;a<r;a++)if(i=i[s[a]],o=i,!i)break;return o}static deepClone(e,t,i=[]){var s={}.__proto__,r=[].__proto__;if(!t)t=Object.assign(Array.isArray(e)?[]:{},e);for(var o in e){let a=e[o],l,h;if(a!=null&&typeof a==="object"&&(a.__proto__===s||a.__proto__===r))if(l=i.findIndex((d)=>d.subject===a),l>-1)t[o]=i[l].copy;else h=Object.assign(Array.isArray(a)?[]:{},a),i.unshift({subject:a,copy:h}),t[o]=this.deepClone(a,h,i)}return t}}var et=class e extends H{constructor(t,i,s){super(t);this.element=i,this.container=this._lookupContainer(),this.parent=s,this.reversedX=!1,this.childPopup=null,this.blurable=!1,this.blurCallback=null,this.blurEventsBound=!1,this.renderedCallback=null,this.offset={top:null,right:null,bottom:null,left:null},this.visible=!1,this.hideable=!0,this.element.classList.add("tabulator-popup-container"),this.blurEvent=this.hide.bind(this,!1),this.escEvent=this._escapeCheck.bind(this),this.destroyBinding=this.tableDestroyed.bind(this),this.destroyed=!1}tableDestroyed(){this.destroyed=!0,this.hide(!0)}_lookupContainer(){var t=this.table.options.popupContainer;if(typeof t==="string"){if(t=document.querySelector(t),!t)console.warn("Menu Error - no container element found matching selector:",this.table.options.popupContainer,"(defaulting to document body)")}else if(t===!0)t=this.table.element;if(t&&!this._checkContainerIsParent(t))t=!1,console.warn("Menu Error - container element does not contain this table:",this.table.options.popupContainer,"(defaulting to document body)");if(!t)t=document.body;return t}_checkContainerIsParent(t,i=this.table.element){if(t===i)return!0;else return i.parentNode?this._checkContainerIsParent(t,i.parentNode):!1}renderCallback(t){this.renderedCallback=t}containerEventCoords(t){var i=!(t instanceof MouseEvent),s=i?t.touches[0].pageX:t.pageX,r=i?t.touches[0].pageY:t.pageY;if(this.container!==document.body){let o=L.elOffset(this.container);s-=o.left,r-=o.top}return{x:s,y:r}}elementPositionCoords(t,i="right"){var s=L.elOffset(t),r,o,a;if(this.container!==document.body)r=L.elOffset(this.container),s.left-=r.left,s.top-=r.top;switch(i){case"right":o=s.left+t.offsetWidth,a=s.top-1;break;case"bottom":o=s.left,a=s.top+t.offsetHeight;break;case"left":o=s.left,a=s.top-1;break;case"top":o=s.left,a=s.top;break;case"center":o=s.left+t.offsetWidth/2,a=s.top+t.offsetHeight/2;break}return{x:o,y:a,offset:s}}show(t,i){var s,r;if(this.destroyed||this.table.destroyed)return this;if(!this.parent)this.reversedX=!1;if(t instanceof HTMLElement)s=t,r=this.elementPositionCoords(t,i).offset;else if(typeof t==="number")r={top:0,left:0};let o=this.resolveCoordsByOrigin(t,i);if(this.offset.top=o.y,this.offset.left=o.x,this.offset.right=null,this.applyOffset(),this.container.appendChild(this.element),typeof this.renderedCallback==="function")this.renderedCallback();return this._fitToScreen(o.x,o.y,s,r,i),this.visible=!0,this.subscribe("table-destroy",this.destroyBinding),this.element.addEventListener("mousedown",(a)=>{a.stopPropagation()}),this}resolveCoordsByOrigin(t,i){if(t instanceof HTMLElement){let s=this.elementPositionCoords(t,i);return{x:s.x,y:s.y}}if(typeof t==="number")return{x:t,y:i};return this.containerEventCoords(t)}_elementWidth(){return this.element.getBoundingClientRect().width||this.element.offsetWidth}_elementHeight(){return this.element.getBoundingClientRect().height||this.element.offsetHeight}_fitToScreen(t,i,s,r,o){var a=this.container===document.body?document.documentElement.scrollTop:this.container.scrollTop,l=this.container===document.body?document.documentElement.scrollLeft:this.container.scrollLeft,h=this.container===document.body?l:0,d=this.container===document.body?l+document.documentElement.clientWidth:this.container.offsetWidth,u=this.container===document.body?a:0,c=this.container===document.body?a+document.documentElement.clientHeight:Math.max(this.container.offsetHeight,a?this.container.scrollHeight:0),f=this._elementWidth(),p=t;if(p+f>d||this.reversedX){if(s&&o==="right")p=r.left-f;else if(s&&o==="left")p=r.left+s.offsetWidth;else if(s)p=r.left-f;else p=d-f;this.reversedX=!0}if(p+f>d)p=d-f;if(p<h)p=h;if(this.offset.left=p,this.offset.right=null,i+this._elementHeight()>c)if(s)switch(o){case"bottom":this.offset.top=this.offset.top-this._elementHeight()-s.offsetHeight-1;break;default:this.offset.top=this.offset.top-this._elementHeight()+s.offsetHeight+1}else{let m=this._elementHeight();if(m>c-u)this.offset.top=u,this.element.style.height=c-u+"px";else{let b=i-m;if(b<u)b=c-m;this.offset.top=b}}if(this.offset.top+this._elementHeight()>c)this.offset.top=c-this._elementHeight();if(this.offset.top<u)this.offset.top=u;this.applyOffset()}applyOffset(){this.element.style.top=this.offset.top==null?"":this.offset.top+"px",this.element.style.right=this.offset.right==null?"":this.offset.right+"px",this.element.style.bottom=this.offset.bottom==null?"":this.offset.bottom+"px",this.element.style.left=this.offset.left==null?"":this.offset.left+"px"}isVisible(){return this.visible}hideOnBlur(t){if(this.blurable=!0,this.visible)setTimeout(()=>{if(this.visible)this.table.rowManager.element.addEventListener("scroll",this.blurEvent),this.subscribe("cell-editing",this.blurEvent),document.body.addEventListener("click",this.blurEvent),document.body.addEventListener("contextmenu",this.blurEvent),document.body.addEventListener("mousedown",this.blurEvent),window.addEventListener("resize",this.blurEvent),document.body.addEventListener("keydown",this.escEvent),this.blurEventsBound=!0},100),this.blurCallback=t;return this}_escapeCheck(t){if(t.key==27)this.hide()}blockHide(){this.hideable=!1}restoreHide(){this.hideable=!0}hide(t=!1){if(this.visible&&this.hideable){if(this.blurable&&this.blurEventsBound)document.body.removeEventListener("keydown",this.escEvent),document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),document.body.removeEventListener("mousedown",this.blurEvent),window.removeEventListener("resize",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent),this.unsubscribe("cell-editing",this.blurEvent),this.blurEventsBound=!1;if(this.childPopup)this.childPopup.hide();if(this.parent)this.parent.childPopup=null;if(this.element.parentNode)this.element.parentNode.removeChild(this.element);if(this.visible=!1,this.blurCallback&&!t)this.blurCallback();this.unsubscribe("table-destroy",this.destroyBinding)}return this}child(t){if(this.childPopup)this.childPopup.hide();return this.childPopup=new e(this.table,t,this),this.childPopup}};class F extends H{constructor(e,t){super(e);this._handler=null}initialize(){}registerTableOption(e,t){this.table.optionsList.register(e,t)}registerColumnOption(e,t){this.table.columnManager.optionsList.register(e,t)}registerTableFunction(e,t){if(typeof this.table[e]>"u")this.table[e]=(...i)=>(this.table.initGuard(e),t(...i));else console.warn("Unable to bind table function, name already in use",e)}registerComponentFunction(e,t,i){return this.table.componentFunctionBinder.bind(e,t,i)}registerDataHandler(e,t){this.table.rowManager.registerDataPipelineHandler(e,t),this._handler=e}registerDisplayHandler(e,t){this.table.rowManager.registerDisplayPipelineHandler(e,t),this._handler=e}displayRows(e){var t=this.table.rowManager.displayRows.length-1,i;if(this._handler){if(i=this.table.rowManager.displayPipeline.findIndex((s)=>s.handler===this._handler),i>-1)t=i}if(e)t=t+e;if(this._handler)if(t>-1)return this.table.rowManager.getDisplayRows(t);else return this.activeRows()}activeRows(){return this.table.rowManager.activeRows}refreshData(e,t){if(!t)t=this._handler;if(t)this.table.rowManager.refreshActiveData(t,!1,e)}footerAppend(e){return this.table.footerManager.append(e)}footerPrepend(e){return this.table.footerManager.prepend(e)}footerRemove(e){return this.table.footerManager.remove(e)}popup(e,t){return new et(this.table,e,t)}alert(e,t){return this.table.alertManager.alert(e,t)}clearAlert(){return this.table.alertManager.clear()}}function ne(e,t){var i=[];if(t=t||"",Array.isArray(e))e.forEach((r,o)=>{i=i.concat(ne(r,t?t+"["+o+"]":o))});else if(typeof e==="object")for(var s in e)i=i.concat(ne(e[s],t?t+"["+s+"]":s));else i.push({key:t,value:e});return i}function tt(e){var t=ne(e),i=[];return t.forEach(function(s){i.push(encodeURIComponent(s.key)+"="+encodeURIComponent(s.value))}),i.join("&")}function it(e,t,i){if(e){if(i&&Object.keys(i).length){if(!t.method||t.method.toLowerCase()=="get")t.method="get",e+=(e.includes("?")?"&":"?")+tt(i)}}return e}var st={replace:function(e){return this.table.setData(e)},update:function(e){return this.table.updateOrAddData(e)},insert:function(e){return this.table.addData(e)}},nt={table:function(e){var t=[],i=!0,s=this.table.columnManager.columns,r=[],o=[];if(e=e.split(`
|
|
2
2
|
`),e.forEach(function(a){t.push(a.split("\t"))}),t.length&&!(t.length===1&&t[0].length<2)){if(t[0].forEach(function(a){var l=s.find(function(h){return a&&h.definition.title&&a.trim()&&h.definition.title.trim()===a.trim()});if(l)r.push(l);else i=!1}),!i){if(i=!0,r=[],t[0].forEach(function(a){var l=s.find(function(h){return a&&h.field&&a.trim()&&h.field.trim()===a.trim()});if(l)r.push(l);else i=!1}),!i)r=this.table.columnManager.columnsByIndex}if(i)t.shift();return t.forEach(function(a){var l={};a.forEach(function(h,d){if(r[d])l[r[d].field]=h}),o.push(l)}),o}else return!1}},rt={copyToClipboard:["ctrl + 67","meta + 67"]},ot={copyToClipboard:function(e){if(!this.table.modules.edit.currentCell){if(this.table.modExists("clipboard",!0))this.table.modules.clipboard.copy(!1,!0)}}},at={keybindings:{bindings:rt,actions:ot}};class X extends F{static moduleName="clipboard";static moduleExtensions=at;static pasteActions=st;static pasteParsers=nt;constructor(e){super(e);this.mode=!0,this.pasteParser=function(){},this.pasteAction=function(){},this.customSelection=!1,this.rowRange=!1,this.blocked=!0,this.registerTableOption("clipboard",!1),this.registerTableOption("clipboardCopyStyled",!0),this.registerTableOption("clipboardCopyConfig",!1),this.registerTableOption("clipboardCopyFormatter",!1),this.registerTableOption("clipboardCopyRowRange","active"),this.registerTableOption("clipboardPasteParser","table"),this.registerTableOption("clipboardPasteAction","insert"),this.registerColumnOption("clipboard"),this.registerColumnOption("titleClipboard")}initialize(){if(this.mode=this.table.options.clipboard,this.rowRange=this.table.options.clipboardCopyRowRange,this.mode===!0||this.mode==="copy")this.table.element.addEventListener("copy",(e)=>{var t,i,s;if(!this.blocked){if(e.preventDefault(),this.customSelection){if(t=this.customSelection,this.table.options.clipboardCopyFormatter)t=this.table.options.clipboardCopyFormatter("plain",t)}else if(s=this.table.modules.export.generateExportList(this.table.options.clipboardCopyConfig,this.table.options.clipboardCopyStyled,this.rowRange,"clipboard"),i=this.table.modules.export.generateHTMLTable(s),t=i?this.generatePlainContent(s):"",this.table.options.clipboardCopyFormatter)t=this.table.options.clipboardCopyFormatter("plain",t),i=this.table.options.clipboardCopyFormatter("html",i);if(window.clipboardData&&window.clipboardData.setData)window.clipboardData.setData("Text",t);else if(e.clipboardData&&e.clipboardData.setData){if(e.clipboardData.setData("text/plain",t),i)e.clipboardData.setData("text/html",i)}else if(e.originalEvent&&e.originalEvent.clipboardData.setData){if(e.originalEvent.clipboardData.setData("text/plain",t),i)e.originalEvent.clipboardData.setData("text/html",i)}this.dispatchExternal("clipboardCopied",t,i),this.reset()}});if(this.mode===!0||this.mode==="paste")this.table.element.addEventListener("paste",(e)=>{this.paste(e)});this.setPasteParser(this.table.options.clipboardPasteParser),this.setPasteAction(this.table.options.clipboardPasteAction),this.registerTableFunction("copyToClipboard",this.copy.bind(this))}reset(){this.blocked=!0,this.customSelection=!1}generatePlainContent(e){var t=[];return e.forEach((i)=>{var s=[];i.columns.forEach((r)=>{var o="";if(r){if(i.type==="group")r.value=r.component.getKey();if(r.value===null)o="";else switch(typeof r.value){case"object":o=JSON.stringify(r.value);break;case"undefined":o="";break;default:o=r.value}}s.push(o)}),t.push(s.join("\t"))}),t.join(`
|
|
3
|
-
`)}copy(e,t){var i,s;if(this.blocked=!1,this.customSelection=!1,this.mode===!0||this.mode==="copy"){if(this.rowRange=e||this.table.options.clipboardCopyRowRange,typeof window.getSelection<"u"&&typeof document.createRange<"u"){if(e=document.createRange(),e.selectNodeContents(this.table.element),i=window.getSelection(),i.toString()&&t)this.customSelection=i.toString();i.removeAllRanges(),i.addRange(e)}else if(typeof document.selection<"u"&&typeof document.body.createTextRange<"u")s=document.body.createTextRange(),s.moveToElementText(this.table.element),s.select();if(document.execCommand("copy"),i)i.removeAllRanges()}}setPasteAction(e){switch(typeof e){case"string":if(this.pasteAction=X.pasteActions[e],!this.pasteAction)console.warn("Clipboard Error - No such paste action found:",e);break;case"function":this.pasteAction=e;break}}setPasteParser(e){switch(typeof e){case"string":if(this.pasteParser=X.pasteParsers[e],!this.pasteParser)console.warn("Clipboard Error - No such paste parser found:",e);break;case"function":this.pasteParser=e;break}}paste(e){var t,i,s;if(this.checkPasteOrigin(e))if(t=this.getPasteData(e),i=this.pasteParser.call(this,t),i){if(e.preventDefault(),this.table.modExists("mutator"))i=this.mutateData(i);s=this.pasteAction.call(this,i),this.dispatchExternal("clipboardPasted",t,i,s)}else this.dispatchExternal("clipboardPasteError",t)}mutateData(e){var t=[];if(Array.isArray(e))e.forEach((i)=>{t.push(this.table.modules.mutator.transformRow(i,"clipboard"))});else t=e;return t}checkPasteOrigin(e){var t=!0,i=this.confirm("clipboard-paste",[e]);if(i||!["DIV","SPAN"].includes(e.target.tagName))t=!1;return t}getPasteData(e){var t;if(window.clipboardData&&window.clipboardData.getData)t=window.clipboardData.getData("Text");else if(e.clipboardData&&e.clipboardData.getData)t=e.clipboardData.getData("text/plain");else if(e.originalEvent&&e.originalEvent.clipboardData.getData)t=e.originalEvent.clipboardData.getData("text/plain");return t}}class oe{constructor(e){return this._cell=e,new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._cell.table.componentFunctionBinder.handle("cell",t._cell,i)}})}getValue(){return this._cell.getValue()}getOldValue(){return this._cell.getOldValue()}getInitialValue(){return this._cell.initialValue}getElement(){return this._cell.getElement()}getRow(){return this._cell.row.getComponent()}getData(e){return this._cell.row.getData(e)}getType(){return"cell"}getField(){return this._cell.column.getField()}getColumn(){return this._cell.column.getComponent()}setValue(e,t){if(typeof t>"u")t=!0;this._cell.setValue(e,t)}restoreOldValue(){this._cell.setValueActual(this._cell.getOldValue())}restoreInitialValue(){this._cell.setValueActual(this._cell.initialValue)}checkHeight(){this._cell.checkHeight()}getTable(){return this._cell.table}_getSelf(){return this._cell}}class ee extends H{constructor(e,t){super(e.table);this.table=e.table,this.column=e,this.row=t,this.element=null,this.value=null,this.initialValue,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.component=null,this.loaded=!1,this.build()}build(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data)),this.initialValue=this.value}generateElement(){if(this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.column.isRowHeader)this.element.classList.add("tabulator-row-header")}_configureCell(){var e=this.element,t=this.column.getField(),i={top:"flex-start",bottom:"flex-end",middle:"center"},s={left:"flex-start",right:"flex-end",center:"center"};if(e.style.textAlign=this.column.hozAlign,this.column.vertAlign){if(e.style.display="inline-flex",e.style.alignItems=i[this.column.vertAlign]||"",this.column.hozAlign)e.style.justifyContent=s[this.column.hozAlign]||""}if(t)e.setAttribute("tabulator-field",t);if(this.column.definition.cssClass){var r=this.column.definition.cssClass.split(" ");r.forEach((o)=>{e.classList.add(o)})}if(this.dispatch("cell-init",this),!this.column.visible)this.hide()}_generateContents(){var e=this.chain("cell-format",this,null,()=>this.element.innerHTML=this.value);switch(typeof e){case"object":if(e instanceof Node){while(this.element.firstChild)this.element.removeChild(this.element.firstChild);this.element.appendChild(e)}else if(this.element.innerHTML="",e!=null)console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",e);break;case"undefined":this.element.innerHTML="";break;default:this.element.innerHTML=e}}cellRendered(){this.dispatch("cell-rendered",this)}getElement(e){if(!this.loaded){if(this.loaded=!0,!e)this.layoutElement()}return this.element}getValue(){return this.value}getOldValue(){return this.oldValue}setValue(e,t,i){var s=this.setValueProcessData(e,t,i);if(s){if(this.dispatch("cell-value-updated",this),this.cellRendered(),this.column.definition.cellEdited)this.column.definition.cellEdited.call(this.table,this.getComponent());if(this.dispatchExternal("cellEdited",this.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData())}}setValueProcessData(e,t,i){var s=!1;if(this.value!==e||i){if(s=!0,t)e=this.chain("cell-value-changing",[this,e],null,e)}if(this.setValueActual(e),s)this.dispatch("cell-value-changed",this);return s}setValueActual(e){if(this.oldValue=this.value,this.value=e,this.dispatch("cell-value-save-before",this),this.column.setFieldValue(this.row.data,e),this.dispatch("cell-value-save-after",this),this.loaded)this.layoutElement()}layoutElement(){this._generateContents(),this.dispatch("cell-layout",this)}setWidth(){this.width=this.column.width,this.element.style.width=this.column.widthStyled}clearWidth(){this.width="",this.element.style.width=""}getWidth(){return this.width||this.element.offsetWidth}setMinWidth(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled}setMaxWidth(){this.maxWidth=this.column.maxWidth,this.element.style.maxWidth=this.column.maxWidthStyled}checkHeight(){this.row.reinitializeHeight()}clearHeight(){this.element.style.height="",this.height=null,this.dispatch("cell-height",this,"")}setHeight(){this.height=this.row.height,this.element.style.height=this.row.heightStyled,this.dispatch("cell-height",this,this.row.heightStyled)}getHeight(){return this.height||this.element.offsetHeight}show(){this.element.style.display=this.column.vertAlign?"inline-flex":""}hide(){this.element.style.display="none"}delete(){if(this.dispatch("cell-delete",this),!this.table.rowManager.redrawBlock&&this.element.parentNode)this.element.parentNode.removeChild(this.element);this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}}getIndex(){return this.row.getCellIndex(this)}getComponent(){if(!this.component)this.component=new oe(this);return this.component}}class ae{constructor(e){return this._column=e,this.type="ColumnComponent",new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._column.table.componentFunctionBinder.handle("column",t._column,i)}})}getElement(){return this._column.getElement()}getDefinition(){return this._column.getDefinition()}getField(){return this._column.getField()}getTitleDownload(){return this._column.getTitleDownload()}getCells(){var e=[];return this._column.cells.forEach(function(t){e.push(t.getComponent())}),e}isVisible(){return this._column.visible}show(){if(this._column.isGroup)this._column.columns.forEach(function(e){e.show()});else this._column.show()}hide(){if(this._column.isGroup)this._column.columns.forEach(function(e){e.hide()});else this._column.hide()}toggle(){if(this._column.visible)this.hide();else this.show()}delete(){return this._column.delete()}getSubColumns(){var e=[];if(this._column.columns.length)this._column.columns.forEach(function(t){e.push(t.getComponent())});return e}getParentColumn(){return this._column.getParentComponent()}_getSelf(){return this._column}scrollTo(e,t){return this._column.table.columnManager.scrollToColumn(this._column,e,t)}getTable(){return this._column.table}move(e,t){var i=this._column.table.columnManager.findColumn(e);if(i)this._column.table.columnManager.moveColumn(this._column,i,t);else console.warn("Move Error - No matching column found:",i)}getNextColumn(){var e=this._column.nextColumn();return e?e.getComponent():!1}getPrevColumn(){var e=this._column.prevColumn();return e?e.getComponent():!1}updateDefinition(e){return this._column.updateDefinition(e)}getWidth(){return this._column.getWidth()}setWidth(e){var t;if(e===!0)t=this._column.reinitializeWidth(!0);else t=this._column.setWidth(e);return this._column.table.columnManager.rerenderColumns(!0),t}}var Te={title:void 0,field:void 0,columns:void 0,visible:void 0,hozAlign:void 0,vertAlign:void 0,width:void 0,minWidth:40,maxWidth:void 0,maxInitialWidth:void 0,cssClass:void 0,variableHeight:void 0,headerVertical:void 0,headerHozAlign:void 0,headerWordWrap:!1,editableTitle:void 0};class V extends H{static defaultOptionList=Te;constructor(e,t,i){super(t.table);if(this.definition=e,this.parent=t,this.type="column",this.columns=[],this.cells=[],this.isGroup=!1,this.isRowHeader=i,this.element=this.createElement(),this.contentElement=!1,this.titleHolderElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleDownload=null,this.titleFormatterRendered=!1,this.mapDefinitions(),this.setField(this.definition.field),this.modules={},this.width=null,this.widthStyled="",this.maxWidth=null,this.maxWidthStyled="",this.maxInitialWidth=null,this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this.component=null,this.definition.columns)this.isGroup=!0,this.definition.columns.forEach((s,r)=>{var o=new V(s,this);this.attachColumn(o)}),this.checkColumnVisibility();else t.registerColumnField(this);this._initialize()}createElement(){var e=document.createElement("div");if(e.classList.add("tabulator-col"),e.setAttribute("role","columnheader"),e.setAttribute("aria-sort","none"),this.isRowHeader)e.classList.add("tabulator-row-header");switch(this.table.options.columnHeaderVertAlign){case"middle":e.style.justifyContent="center";break;case"bottom":e.style.justifyContent="flex-end";break}return e}createGroupElement(){var e=document.createElement("div");return e.classList.add("tabulator-col-group-cols"),e}mapDefinitions(){var e=this.table.options.columnDefaults;if(e){for(let t in e)if(typeof this.definition[t]>"u")this.definition[t]=e[t]}this.definition=this.table.columnManager.optionsList.generate(V.defaultOptionList,this.definition)}checkDefinition(){Object.keys(this.definition).forEach((e)=>{if(V.defaultOptionList.indexOf(e)===-1)console.warn("Invalid column definition option in '"+(this.field||this.definition.title)+"' column:",e)})}setField(e){this.field=e,this.fieldStructure=e?this.table.options.nestedFieldSeparator?e.split(this.table.options.nestedFieldSeparator):[e]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData}registerColumnPosition(e){this.parent.registerColumnPosition(e)}registerColumnField(e){this.parent.registerColumnField(e)}reRegisterPosition(){if(this.isGroup)this.columns.forEach(function(e){e.reRegisterPosition()});else this.registerColumnPosition(this)}_initialize(){var e=this.definition;while(this.element.firstChild)this.element.removeChild(this.element.firstChild);if(e.headerVertical){if(this.element.classList.add("tabulator-col-vertical"),e.headerVertical==="flip")this.element.classList.add("tabulator-col-vertical-flip")}if(this.contentElement=this._buildColumnHeaderContent(),this.element.appendChild(this.contentElement),this.isGroup)this._buildGroupHeader();else this._buildColumnHeader();this.dispatch("column-init",this)}_buildColumnHeader(){var e=this.definition;if(this.dispatch("column-layout",this),typeof e.visible<"u")if(e.visible)this.show(!0);else this.hide(!0);if(e.cssClass){var t=e.cssClass.split(" ");t.forEach((i)=>{this.element.classList.add(i)})}if(e.field)this.element.setAttribute("tabulator-field",e.field);if(this.setMinWidth(parseInt(e.minWidth)),e.maxInitialWidth)this.maxInitialWidth=parseInt(e.maxInitialWidth);if(e.maxWidth)this.setMaxWidth(parseInt(e.maxWidth));this.reinitializeWidth(),this.hozAlign=this.definition.hozAlign,this.vertAlign=this.definition.vertAlign,this.titleElement.style.textAlign=this.definition.headerHozAlign}_buildColumnHeaderContent(){var e=document.createElement("div");return e.classList.add("tabulator-col-content"),this.titleHolderElement=document.createElement("div"),this.titleHolderElement.classList.add("tabulator-col-title-holder"),e.appendChild(this.titleHolderElement),this.titleElement=this._buildColumnHeaderTitle(),this.titleHolderElement.appendChild(this.titleElement),e}_buildColumnHeaderTitle(){var e=this.definition,t=document.createElement("div");if(t.classList.add("tabulator-col-title"),e.headerWordWrap)t.classList.add("tabulator-col-title-wrap");if(e.editableTitle){var i=document.createElement("input");if(i.classList.add("tabulator-title-editor"),i.addEventListener("click",(s)=>{s.stopPropagation(),i.focus()}),i.addEventListener("mousedown",(s)=>{s.stopPropagation()}),i.addEventListener("change",()=>{e.title=i.value,this.dispatchExternal("columnTitleChanged",this.getComponent())}),t.appendChild(i),e.field)this.langBind("columns|"+e.field,(s)=>{i.value=s||(e.title||" ")});else i.value=e.title||" "}else if(e.field)this.langBind("columns|"+e.field,(s)=>{this._formatColumnHeaderTitle(t,s||(e.title||" "))});else this._formatColumnHeaderTitle(t,e.title||" ");return t}_formatColumnHeaderTitle(e,t){var i=this.chain("column-format",[this,t,e],null,()=>t);switch(typeof i){case"object":if(i instanceof Node)e.appendChild(i);else e.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",i);break;case"undefined":e.innerHTML="";break;default:e.innerHTML=i}}_buildGroupHeader(){if(this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass){var e=this.definition.cssClass.split(" ");e.forEach((t)=>{this.element.classList.add(t)})}this.titleElement.style.textAlign=this.definition.headerHozAlign,this.element.appendChild(this.groupElement)}_getFlatData(e){return e[this.field]}_getNestedData(e){var t=e,i=this.fieldStructure,s=i.length,r;for(let o=0;o<s;o++)if(t=t[i[o]],r=t,!t)break;return r}_setFlatData(e,t){if(this.field)e[this.field]=t}_setNestedData(e,t){var i=e,s=this.fieldStructure,r=s.length;for(let o=0;o<r;o++)if(o==r-1)i[s[o]]=t;else{if(!i[s[o]])if(typeof t<"u")i[s[o]]={};else break;i=i[s[o]]}}attachColumn(e){if(this.groupElement)this.columns.push(e),this.groupElement.appendChild(e.getElement()),e.columnRendered();else console.warn("Column Warning - Column being attached to another column instead of column group")}verticalAlign(e,t){var i=this.parent.isGroup?this.parent.getGroupElement().clientHeight:t||this.parent.getHeadersElement().clientHeight;if(this.element.style.height=i+"px",this.dispatch("column-height",this,this.element.style.height),this.isGroup)this.groupElement.style.minHeight=i-this.contentElement.offsetHeight+"px";this.columns.forEach(function(s){s.verticalAlign(e)})}clearVerticalAlign(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(e){e.clearVerticalAlign()}),this.dispatch("column-height",this,"")}getElement(){return this.element}getGroupElement(){return this.groupElement}getField(){return this.field}getTitleDownload(){return this.titleDownload}getFirstColumn(){if(!this.isGroup)return this;else if(this.columns.length)return this.columns[0].getFirstColumn();else return!1}getLastColumn(){if(!this.isGroup)return this;else if(this.columns.length)return this.columns[this.columns.length-1].getLastColumn();else return!1}getColumns(e){var t=[];if(e)this.columns.forEach((i)=>{t.push(i),t=t.concat(i.getColumns(!0))});else t=this.columns;return t}getCells(){return this.cells}getTopColumn(){if(this.parent.isGroup)return this.parent.getTopColumn();else return this}getDefinition(e){var t=[];if(this.isGroup&&e)this.columns.forEach(function(i){t.push(i.getDefinition(!0))}),this.definition.columns=t;return this.definition}checkColumnVisibility(){var e=!1;if(this.columns.forEach(function(t){if(t.visible)e=!0}),e)this.show(),this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1);else this.hide()}show(e,t){if(!this.visible){if(this.visible=!0,this.element.style.display="",this.parent.isGroup)this.parent.checkColumnVisibility();if(this.cells.forEach(function(i){i.show()}),!this.isGroup&&this.width===null)this.reinitializeWidth();if(this.table.columnManager.verticalAlignHeaders(),this.dispatch("column-show",this,t),!e)this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!0);if(this.parent.isGroup)this.parent.matchChildWidths();if(!this.silent)this.table.columnManager.rerenderColumns()}}hide(e,t){if(this.visible){if(this.visible=!1,this.element.style.display="none",this.table.columnManager.verticalAlignHeaders(),this.parent.isGroup)this.parent.checkColumnVisibility();if(this.cells.forEach(function(i){i.hide()}),this.dispatch("column-hide",this,t),!e)this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1);if(this.parent.isGroup)this.parent.matchChildWidths();if(!this.silent)this.table.columnManager.rerenderColumns()}}matchChildWidths(){var e=0;if(this.contentElement&&this.columns.length){if(this.columns.forEach(function(t){if(t.visible)e+=t.getWidth()}),this.contentElement.style.maxWidth=e-1+"px",this.table.initialized)this.element.style.width=e+"px";if(this.parent.isGroup)this.parent.matchChildWidths()}}removeChild(e){var t=this.columns.indexOf(e);if(t>-1)this.columns.splice(t,1);if(!this.columns.length)this.delete()}setWidth(e){this.widthFixed=!0,this.setWidthActual(e)}setWidthActual(e){if(isNaN(e))e=Math.floor(this.table.element.clientWidth/100*parseInt(e));if(e=Math.max(this.minWidth,e),this.maxWidth)e=Math.min(this.maxWidth,e);if(this.width=e,this.widthStyled=e?e+"px":"",this.element.style.width=this.widthStyled,!this.isGroup)this.cells.forEach(function(t){t.setWidth()});if(this.parent.isGroup)this.parent.matchChildWidths();if(this.dispatch("column-width",this),this.subscribedExternal("columnWidth"))this.dispatchExternal("columnWidth",this.getComponent())}checkCellHeights(){var e=[];this.cells.forEach(function(t){if(t.row.heightInitialized)if(t.row.getElement().offsetParent!==null)e.push(t.row),t.row.clearCellHeight();else t.row.heightInitialized=!1}),e.forEach(function(t){t.calcHeight()}),e.forEach(function(t){t.setCellHeight()})}getWidth(){var e=0;if(this.isGroup)this.columns.forEach(function(t){if(t.visible)e+=t.getWidth()});else e=this.width;return e}getLeftOffset(){var e=this.element.offsetLeft;if(this.parent.isGroup)e+=this.parent.getLeftOffset();return e}getHeight(){return Math.ceil(this.element.getBoundingClientRect().height)}setMinWidth(e){if(this.maxWidth&&e>this.maxWidth)e=this.maxWidth,console.warn("the minWidth ("+e+"px) for column '"+this.field+"' cannot be bigger that its maxWidth ("+this.maxWidthStyled+")");this.minWidth=e,this.minWidthStyled=e?e+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(t){t.setMinWidth()})}setMaxWidth(e){if(this.minWidth&&e<this.minWidth)e=this.minWidth,console.warn("the maxWidth ("+e+"px) for column '"+this.field+"' cannot be smaller that its minWidth ("+this.minWidthStyled+")");this.maxWidth=e,this.maxWidthStyled=e?e+"px":"",this.element.style.maxWidth=this.maxWidthStyled,this.cells.forEach(function(t){t.setMaxWidth()})}delete(){return new Promise((e,t)=>{if(this.isGroup)this.columns.forEach(function(s){s.delete()});this.dispatch("column-delete",this);var i=this.cells.length;for(let s=0;s<i;s++)this.cells[0].delete();if(this.element.parentNode)this.element.parentNode.removeChild(this.element);if(this.element=!1,this.contentElement=!1,this.titleElement=!1,this.groupElement=!1,this.parent.isGroup)this.parent.removeChild(this);this.table.columnManager.deregisterColumn(this),this.table.columnManager.rerenderColumns(!0),this.dispatch("column-deleted",this),e()})}columnRendered(){if(this.titleFormatterRendered)this.titleFormatterRendered();this.dispatch("column-rendered",this)}generateCell(e){var t=new ee(this,e);return this.cells.push(t),t}nextColumn(){var e=this.table.columnManager.findColumnIndex(this);return e>-1?this._nextVisibleColumn(e+1):!1}_nextVisibleColumn(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._nextVisibleColumn(e+1)}prevColumn(){var e=this.table.columnManager.findColumnIndex(this);return e>-1?this._prevVisibleColumn(e-1):!1}_prevVisibleColumn(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._prevVisibleColumn(e-1)}reinitializeWidth(e){if(this.widthFixed=!1,typeof this.definition.width<"u"&&!e)this.setWidth(this.definition.width);this.dispatch("column-width-fit-before",this),this.fitToData(e),this.dispatch("column-width-fit-after",this)}fitToData(e){if(this.isGroup)return;if(!this.widthFixed)this.element.style.width="",this.cells.forEach((s)=>{s.clearWidth()});var t=this.element.offsetWidth;if(!this.width||!this.widthFixed){if(this.cells.forEach((s)=>{var r=s.getWidth();if(r>t)t=r}),t){var i=t+1;if(e)this.setWidth(i);else{if(this.maxInitialWidth&&!e)i=Math.min(i,this.maxInitialWidth);this.setWidthActual(i)}}}}updateDefinition(e){var t;if(!this.isGroup)if(!this.parent.isGroup)return t=Object.assign({},this.getDefinition()),t=Object.assign(t,e),this.table.columnManager.addColumn(t,!1,this).then((i)=>{if(t.field==this.field)this.field=!1;return this.delete().then(()=>i.getComponent())});else return console.error("Column Update Error - The updateDefinition function is only available on ungrouped columns"),Promise.reject("Column Update Error - The updateDefinition function is only available on columns, not column groups");else return console.error("Column Update Error - The updateDefinition function is only available on ungrouped columns"),Promise.reject("Column Update Error - The updateDefinition function is only available on columns, not column groups")}deleteCell(e){var t=this.cells.indexOf(e);if(t>-1)this.cells.splice(t,1)}getComponent(){if(!this.component)this.component=new ae(this);return this.component}getPosition(){return this.table.columnManager.getVisibleColumnsByIndex().indexOf(this)+1}getParentComponent(){return this.parent instanceof V?this.parent.getComponent():!1}}class le{constructor(e){return this._row=e,new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._row.table.componentFunctionBinder.handle("row",t._row,i)}})}getData(e){return this._row.getData(e)}getElement(){return this._row.getElement()}getCells(){var e=[];return this._row.getCells().forEach(function(t){e.push(t.getComponent())}),e}getCell(e){var t=this._row.getCell(e);return t?t.getComponent():!1}getIndex(){return this._row.getData("data")[this._row.table.options.index]}getPosition(){return this._row.getPosition()}watchPosition(e){return this._row.watchPosition(e)}delete(){return this._row.delete()}scrollTo(e,t){return this._row.table.rowManager.scrollToRow(this._row,e,t)}move(e,t){this._row.moveToRow(e,t)}update(e){return this._row.updateData(e)}normalizeHeight(){this._row.normalizeHeight(!0)}_getSelf(){return this._row}reformat(){return this._row.reinitialize()}getTable(){return this._row.table}getNextRow(){var e=this._row.nextRow();return e?e.getComponent():e}getPrevRow(){var e=this._row.prevRow();return e?e.getComponent():e}}class O extends H{static rowTemplate=O.createRowTemplate();constructor(e,t,i="row"){super(t.table);this.parent=t,this.data={},this.type=i,this.element=!1,this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.position=0,this.positionWatchers=[],this.component=null,this.created=!1,this.setData(e)}create(){if(!this.created)this.created=!0,this.generateElement()}createElement(){this.element=O.rowTemplate.cloneNode(!1)}getElement(){return this.create(),this.element}detachElement(){if(this.element&&this.element.parentNode)this.element.parentNode.removeChild(this.element)}generateElement(){this.createElement(),this.dispatch("row-init",this)}generateCells(){this.cells=this.table.columnManager.generateCells(this)}initialize(e,t){if(this.create(),!this.initialized||e){this.deleteCells();while(this.element.firstChild)this.element.removeChild(this.element.firstChild);if(this.dispatch("row-layout-before",this),this.generateCells(),this.initialized=!0,this.table.columnManager.renderer.renderRowCells(this,t),e)this.normalizeHeight();if(this.dispatch("row-layout",this),this.table.options.rowFormatter)this.table.options.rowFormatter(this.getComponent());this.dispatch("row-layout-after",this)}else this.table.columnManager.renderer.rerenderRowCells(this,t)}rendered(){this.cells.forEach((e)=>{e.cellRendered()})}reinitializeHeight(){if(this.heightInitialized=!1,this.element&&this.element.offsetParent!==null)this.normalizeHeight(!0)}deinitialize(){this.initialized=!1}deinitializeHeight(){this.heightInitialized=!1}reinitialize(e){if(this.initialized=!1,this.heightInitialized=!1,!this.manualHeight)this.height=0,this.heightStyled="";if(this.element&&this.element.offsetParent!==null)this.initialize(!0);this.dispatch("row-relayout",this)}calcHeight(e){var t=0,i=0;if(this.table.options.rowHeight)this.height=this.table.options.rowHeight;else if(i=this.calcMinHeight(),t=this.calcMaxHeight(),e)this.height=Math.max(t,i);else this.height=this.manualHeight?this.height:Math.max(t,i);this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight}calcMinHeight(){return this.table.options.resizableRows?this.element.clientHeight:0}calcMaxHeight(){var e=0;return this.cells.forEach(function(t){var i=t.getHeight();if(i>e)e=i}),e}setCellHeight(){this.cells.forEach(function(e){e.setHeight()}),this.heightInitialized=!0}clearCellHeight(){this.cells.forEach(function(e){e.clearHeight()})}normalizeHeight(e){if(e&&!this.table.options.rowHeight)this.clearCellHeight();this.calcHeight(e),this.setCellHeight()}setHeight(e,t){if(this.height!=e||t){if(this.manualHeight=!0,this.height=e,this.heightStyled=e?e+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight,this.subscribedExternal("rowHeight"))this.dispatchExternal("rowHeight",this.getComponent())}}getHeight(){return this.outerHeight}getWidth(){return this.element.offsetWidth}deleteCell(e){var t=this.cells.indexOf(e);if(t>-1)this.cells.splice(t,1)}setData(e){this.data=this.chain("row-data-init-before",[this,e],void 0,e),this.dispatch("row-data-init-after",this)}updateData(e){var t=this.element&&M.elVisible(this.element),i={},s;return new Promise((r,o)=>{if(typeof e==="string")e=JSON.parse(e);if(this.dispatch("row-data-save-before",this),this.subscribed("row-data-changing"))i=Object.assign(i,this.data),i=Object.assign(i,e);s=this.chain("row-data-changing",[this,i,e],null,e);let a=[];for(let l in e)this.table.columnManager.getColumnsByFieldRoot(l).forEach((d)=>{let u=this.getCell(d.getField());if(u){let c=d.getFieldValue(s);if(u.getValue()!==c)a.push([u,c])}});for(let l in s)this.data[l]=s[l];if(this.dispatch("row-data-save-after",this),a.forEach(([l,h])=>{if(l.setValueProcessData(h),t)l.cellRendered()}),t){if(this.normalizeHeight(!0),this.table.options.rowFormatter)this.table.options.rowFormatter(this.getComponent())}else this.initialized=!1,this.height=0,this.heightStyled="";if(this.dispatch("row-data-changed",this,t,e),this.dispatchExternal("rowUpdated",this.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData());r()})}getData(e){if(e)return this.chain("row-data-retrieve",[this,e],null,this.data);return this.data}getCell(e){var t=!1;if(e=this.table.columnManager.findColumn(e),!this.initialized&&this.cells.length===0)this.generateCells();return t=this.cells.find(function(i){return i.column===e}),t}getCellIndex(e){return this.cells.findIndex(function(t){return t===e})}findCell(e){return this.cells.find((t)=>t.element===e)}getCells(){if(!this.initialized&&this.cells.length===0)this.generateCells();return this.cells}nextRow(){var e=this.table.rowManager.nextDisplayRow(this,!0);return e||!1}prevRow(){var e=this.table.rowManager.prevDisplayRow(this,!0);return e||!1}moveToRow(e,t){var i=this.table.rowManager.findRow(e);if(i)this.table.rowManager.moveRowActual(this,i,!t),this.table.rowManager.refreshActiveData("display",!1,!0);else console.warn("Move Error - No matching row found:",e)}delete(){return this.dispatch("row-delete",this),this.deleteActual(),Promise.resolve()}deleteActual(e){this.detachModules(),this.table.rowManager.deleteRow(this,e),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.element=!1,this.dispatch("row-deleted",this)}detachModules(){this.dispatch("row-deleting",this)}deleteCells(){var e=this.cells.length;for(let t=0;t<e;t++)this.cells[0].delete()}wipe(){if(this.detachModules(),this.deleteCells(),this.element){while(this.element.firstChild)this.element.removeChild(this.element.firstChild);if(this.element.parentNode)this.element.parentNode.removeChild(this.element)}this.element=!1,this.modules={}}isDisplayed(){return this.table.rowManager.getDisplayRows().includes(this)}getPosition(){return this.isDisplayed()?this.position:!1}setPosition(e){if(e!=this.position)this.position=e,this.positionWatchers.forEach((t)=>{t(this.position)})}watchPosition(e){this.positionWatchers.push(e),e(this.position)}getGroup(){return this.modules.group||!1}getComponent(){if(!this.component)this.component=new le(this);return this.component}static createRowTemplate(){let e=document.createElement("div");return e.classList.add("tabulator-row"),e.setAttribute("role","row"),e}}function te(e,t){var i=t.mask,s=typeof t.maskLetterChar<"u"?t.maskLetterChar:"A",r=typeof t.maskNumberChar<"u"?t.maskNumberChar:"9",o=typeof t.maskWildcardChar<"u"?t.maskWildcardChar:"*";function a(l){var h=i[l];if(typeof h<"u"&&h!==o&&h!==s&&h!==r)e.value=e.value+""+h,a(l+1)}if(e.addEventListener("keydown",(l)=>{var h=e.value.length,d=l.key;if(l.key.length===1&&!l.ctrlKey&&!l.metaKey)if(h>=i.length)return l.preventDefault(),l.stopPropagation(),!1;else switch(i[h]){case s:if(d.toUpperCase()==d.toLowerCase())return l.preventDefault(),l.stopPropagation(),!1;break;case r:if(isNaN(d))return l.preventDefault(),l.stopPropagation(),!1;break;case o:break;default:if(d!==i[h])return l.preventDefault(),l.stopPropagation(),!1}return}),e.addEventListener("keyup",(l)=>{if(l.key.length===1){if(t.maskAutoFill)a(e.value.length)}}),!e.placeholder)e.placeholder=i;if(t.maskAutoFill)a(e.value.length)}function lt(e,t,i,s,r){var o=e.getValue(),a=document.createElement("input");if(a.setAttribute("type",r.search?"search":"text"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let h in r.elementAttributes)if(h.charAt(0)=="+")h=h.slice(1),a.setAttribute(h,a.getAttribute(h)+r.elementAttributes["+"+h]);else a.setAttribute(h,r.elementAttributes[h]);a.value=r.initialValue??(typeof o<"u"?o:""),t(function(){if(e.getType()==="cell"){if(a.focus({preventScroll:!0}),a.style.height="100%",r.selectContents)a.select()}});function l(h){if((o===null||typeof o>"u")&&a.value!==""||a.value!==o){if(i(a.value,h))o=a.value}else s(h)}if(a.addEventListener("change",l),a.addEventListener("blur",l),a.addEventListener("keydown",function(h){switch(h.key){case"Enter":l(h);break;case"Escape":s(h);break;case"End":case"Home":h.stopPropagation();break}}),r.mask)te(a,r);return a}function ht(e,t,i,s,r){var o=e.getValue(),a=r.verticalNavigation||"hybrid",l=String(o!==null&&typeof o<"u"?o:""),h=document.createElement("textarea"),d=0;if(h.style.display="block",h.style.padding="2px",h.style.height="100%",h.style.width="100%",h.style.boxSizing="border-box",h.style.whiteSpace="pre-wrap",h.style.resize="none",r.elementAttributes&&typeof r.elementAttributes=="object")for(let c in r.elementAttributes)if(c.charAt(0)=="+")c=c.slice(1),h.setAttribute(c,h.getAttribute(c)+r.elementAttributes["+"+c]);else h.setAttribute(c,r.elementAttributes[c]);h.value=r.initialValue??l,t(function(){if(e.getType()==="cell"){if(h.focus({preventScroll:!0}),h.style.height="100%",h.scrollHeight,h.style.height=h.scrollHeight+"px",e.getRow().normalizeHeight(),r.selectContents)h.select()}});function u(c){if((o===null||typeof o>"u")&&h.value!==""||h.value!==o){if(i(h.value,c))o=h.value;setTimeout(function(){e.getRow().normalizeHeight()},300)}else s(c)}if(h.addEventListener("change",u),h.addEventListener("blur",u),h.addEventListener("keyup",function(){h.style.height="";var c=h.scrollHeight;if(h.style.height=c+"px",c!=d)d=c,e.getRow().normalizeHeight()}),h.addEventListener("keydown",function(c){switch(c.key){case"Enter":if(c.shiftKey&&r.shiftEnterSubmit)u(c);else if(c.shiftKey&&r.shiftEnterNewLine||c.altKey&&r.altEnterNewLine||c.ctrlKey&&r.ctrlEnterNewLine||c.metaKey&&r.metaEnterNewLine)c.preventDefault(),h.setRangeText(`
|
|
4
|
-
`,h.selectionStart,h.selectionEnd,"end");else if(r.enterSubmit)c.preventDefault(),u(c);break;case"Escape":s(c);break;case"ArrowUp":if(a=="editor"||a=="hybrid"&&h.selectionStart)c.stopImmediatePropagation(),c.stopPropagation();break;case"ArrowDown":if(a=="editor"||a=="hybrid"&&h.selectionStart!==h.value.length)c.stopImmediatePropagation(),c.stopPropagation();break;case"End":case"Home":c.stopPropagation();break}}),r.mask)te(h,r);return h}function dt(e,t,i,s,r){var o=e.getValue(),a=r.verticalNavigation||"editor",l=document.createElement("input");if(l.setAttribute("type","number"),typeof r.max<"u")l.setAttribute("max",r.max);if(typeof r.min<"u")l.setAttribute("min",r.min);if(typeof r.step<"u")l.setAttribute("step",r.step);if(l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let u in r.elementAttributes)if(u.charAt(0)=="+")u=u.slice(1),l.setAttribute(u,l.getAttribute(u)+r.elementAttributes["+"+u]);else l.setAttribute(u,r.elementAttributes[u]);l.value=o;var h=function(u){d(u)};t(function(){if(e.getType()==="cell"){if(l.removeEventListener("blur",h),l.focus({preventScroll:!0}),l.style.height="100%",l.addEventListener("blur",h),r.selectContents)l.select()}});function d(u){var c=l.value;if(!isNaN(c)&&c!=="")c=Number(c);if(c!==o){if(i(c,u))o=c}else s(u)}if(l.addEventListener("keydown",function(u){switch(u.key){case"Enter":d(u);break;case"Escape":s(u);break;case"ArrowUp":case"ArrowDown":if(a=="editor")u.stopImmediatePropagation(),u.stopPropagation();break;case"End":case"Home":u.stopPropagation();break}}),r.mask)te(l,r);return l}function ut(e,t,i,s,r){var o=e.getValue(),a=document.createElement("input");if(a.setAttribute("type","range"),typeof r.max<"u")a.setAttribute("max",r.max);if(typeof r.min<"u")a.setAttribute("min",r.min);if(typeof r.step<"u")a.setAttribute("step",r.step);if(a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let h in r.elementAttributes)if(h.charAt(0)=="+")h=h.slice(1),a.setAttribute(h,a.getAttribute(h)+r.elementAttributes["+"+h]);else a.setAttribute(h,r.elementAttributes[h]);a.value=o,t(function(){if(e.getType()==="cell")a.focus({preventScroll:!0}),a.style.height="100%"});function l(h){var d=a.value;if(!isNaN(d)&&d!=="")d=Number(d);if(d!=o){if(i(d,h))o=d}else s(h)}return a.addEventListener("blur",function(h){l(h)}),a.addEventListener("keydown",function(h){switch(h.key){case"Enter":l(h);break;case"Escape":s(h);break}}),a}function ct(e,t,i,s,r){var o=r.format,a=r.verticalNavigation||"editor",l=o?window.DateTime||luxon.DateTime:null,h=e.getValue(),d=document.createElement("input");function u(f){var p;if(l.isDateTime(f))p=f;else if(o==="x")p=l.fromMillis(f);else if(o==="iso")p=l.fromISO(String(f));else p=l.fromFormat(String(f),o);return p.toFormat("yyyy-MM-dd")}if(d.type="date",d.style.padding="4px",d.style.width="100%",d.style.boxSizing="border-box",r.max)d.setAttribute("max",o?u(r.max):r.max);if(r.min)d.setAttribute("min",o?u(r.min):r.min);if(r.elementAttributes&&typeof r.elementAttributes=="object")for(let f in r.elementAttributes)if(f.charAt(0)=="+")f=f.slice(1),d.setAttribute(f,d.getAttribute(f)+r.elementAttributes["+"+f]);else d.setAttribute(f,r.elementAttributes[f]);if(h=typeof h<"u"?h:"",o)if(l)h=u(h);else console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js");d.value=h,t(function(){if(e.getType()==="cell"){if(d.focus({preventScroll:!0}),d.style.height="100%",r.selectContents)d.select()}});function c(f){var p=d.value,m;if((h===null||typeof h>"u")&&p!==""||p!==h){if(p&&o)switch(m=l.fromFormat(String(p),"yyyy-MM-dd"),o){case!0:p=m;break;case"x":p=m.toMillis();break;case"iso":p=m.toISO();break;default:p=m.toFormat(o)}if(i(p,f))h=d.value}else s(f)}return d.addEventListener("blur",function(f){if(f.relatedTarget||f.rangeParent||f.explicitOriginalTarget!==d)c(f)}),d.addEventListener("keydown",function(f){switch(f.key){case"Enter":c(f);break;case"Escape":s(f);break;case"End":case"Home":f.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(a=="editor")f.stopImmediatePropagation(),f.stopPropagation();break}}),d}function pt(e,t,i,s,r){var o=r.format,a=r.verticalNavigation||"editor",l=o?window.DateTime||luxon.DateTime:null,h,d=e.getValue(),u=document.createElement("input");if(u.type="time",u.style.padding="4px",u.style.width="100%",u.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let f in r.elementAttributes)if(f.charAt(0)=="+")f=f.slice(1),u.setAttribute(f,u.getAttribute(f)+r.elementAttributes["+"+f]);else u.setAttribute(f,r.elementAttributes[f]);if(d=typeof d<"u"?d:"",o)if(l){if(l.isDateTime(d))h=d;else if(o==="x")h=l.fromMillis(d);else if(o==="iso")h=l.fromISO(String(d));else h=l.fromFormat(String(d),o);d=h.toFormat("HH:mm")}else console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js");u.value=d,t(function(){if(e.getType()=="cell"){if(u.focus({preventScroll:!0}),u.style.height="100%",r.selectContents)u.select()}});function c(f){var p=u.value,m;if((d===null||typeof d>"u")&&p!==""||p!==d){if(p&&o)switch(m=l.fromFormat(String(p),"hh:mm"),o){case!0:p=m;break;case"x":p=m.toMillis();break;case"iso":p=m.toISO();break;default:p=m.toFormat(o)}if(i(p,f))d=u.value}else s(f)}return u.addEventListener("blur",function(f){if(f.relatedTarget||f.rangeParent||f.explicitOriginalTarget!==u)c(f)}),u.addEventListener("keydown",function(f){switch(f.key){case"Enter":c(f);break;case"Escape":s(f);break;case"End":case"Home":f.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(a=="editor")f.stopImmediatePropagation(),f.stopPropagation();break}}),u}function mt(e,t,i,s,r){var o=r.format,a=r.verticalNavigation||"editor",l=o?this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"):null,h,d=e.getValue(),u=document.createElement("input");if(u.type="datetime-local",u.style.padding="4px",u.style.width="100%",u.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let f in r.elementAttributes)if(f.charAt(0)=="+")f=f.slice(1),u.setAttribute(f,u.getAttribute(f)+r.elementAttributes["+"+f]);else u.setAttribute(f,r.elementAttributes[f]);if(d=typeof d<"u"?d:"",o)if(l){if(l.isDateTime(d))h=d;else if(o==="x")h=l.fromMillis(d);else if(o==="iso")h=l.fromISO(String(d));else h=l.fromFormat(String(d),o);d=h.toFormat("yyyy-MM-dd")+"T"+h.toFormat("HH:mm")}else console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js");u.value=d,t(function(){if(e.getType()==="cell"){if(u.focus({preventScroll:!0}),u.style.height="100%",r.selectContents)u.select()}});function c(f){var p=u.value,m;if((d===null||typeof d>"u")&&p!==""||p!==d){if(p&&o)switch(m=l.fromISO(String(p)),o){case!0:p=m;break;case"x":p=m.toMillis();break;case"iso":p=m.toISO();break;default:p=m.toFormat(o)}if(i(p,f))d=u.value}else s(f)}return u.addEventListener("blur",function(f){if(f.relatedTarget||f.rangeParent||f.explicitOriginalTarget!==u)c(f)}),u.addEventListener("keydown",function(f){switch(f.key){case"Enter":c(f);break;case"Escape":s(f);break;case"End":case"Home":f.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(a=="editor")f.stopImmediatePropagation(),f.stopPropagation();break}}),u}var gt=class e{constructor(t,i,s,r,o,a){this.edit=t,this.table=t.table,this.cell=i,this.params=this._initializeParams(a),this.data=[],this.displayItems=[],this.currentItems=[],this.focusedItem=null,this.input=this._createInputElement(),this.listEl=this._createListElement(),this.initialValues=null,this.isFilter=i.getType()==="header",this.filterTimeout=null,this.filtered=!1,this.typing=!1,this.values=[],this.popup=null,this.listIteration=0,this.lastAction="",this.filterTerm="",this.blurable=!0,this.actions={success:r,cancel:o},this._deprecatedOptionsCheck(),this._initializeValue(),s(this._onRendered.bind(this))}_deprecatedOptionsCheck(){}_initializeValue(){var t=this.cell.getValue();if(typeof t>"u"&&typeof this.params.defaultValue<"u")t=this.params.defaultValue;if(this.initialValues=this.params.multiselect?t:[t],this.isFilter)this.input.value=this.initialValues?this.initialValues.join(","):"",this.headerFilterInitialListGen()}_onRendered(){var t=this.cell.getElement();function i(s){s.stopPropagation()}if(!this.isFilter)this.input.style.height="100%",this.input.focus({preventScroll:!0});t.addEventListener("click",i),setTimeout(()=>{t.removeEventListener("click",i)},1000),this.input.addEventListener("mousedown",this._preventPopupBlur.bind(this))}_createListElement(){var t=document.createElement("div");return t.classList.add("tabulator-edit-list"),t.addEventListener("mousedown",this._preventBlur.bind(this)),t.addEventListener("keydown",this._inputKeyDown.bind(this)),t}_setListWidth(){var t=this.isFilter?this.input:this.cell.getElement();if(this.listEl.style.minWidth=t.offsetWidth+"px",this.params.maxWidth)if(this.params.maxWidth===!0)this.listEl.style.maxWidth=t.offsetWidth+"px";else if(typeof this.params.maxWidth==="number")this.listEl.style.maxWidth=this.params.maxWidth+"px";else this.listEl.style.maxWidth=this.params.maxWidth}_createInputElement(){var t=this.params.elementAttributes,i=document.createElement("input");if(i.setAttribute("type",this.params.clearable?"search":"text"),i.style.padding="4px",i.style.width="100%",i.style.boxSizing="border-box",!this.params.autocomplete)i.style.cursor="default",i.style.caretColor="transparent";if(t&&typeof t=="object")for(let s in t)if(s.charAt(0)=="+")s=s.slice(1),i.setAttribute(s,i.getAttribute(s)+t["+"+s]);else i.setAttribute(s,t[s]);if(this.params.mask)te(i,this.params);return this._bindInputEvents(i),i}_initializeParams(t){var i=["values","valuesURL","valuesLookup"],s;if(t=Object.assign({},t),t.verticalNavigation=t.verticalNavigation||"editor",t.placeholderLoading=typeof t.placeholderLoading>"u"?"Searching ...":t.placeholderLoading,t.placeholderEmpty=typeof t.placeholderEmpty>"u"?"No Results Found":t.placeholderEmpty,t.filterDelay=typeof t.filterDelay>"u"?300:t.filterDelay,t.emptyValue=Object.keys(t).includes("emptyValue")?t.emptyValue:"",s=Object.keys(t).filter((r)=>i.includes(r)).length,!s)console.warn("list editor config error - either the values, valuesURL, or valuesLookup option must be set");else if(s>1)console.warn("list editor config error - only one of the values, valuesURL, or valuesLookup options can be set on the same editor");if(t.autocomplete){if(t.multiselect)t.multiselect=!1,console.warn("list editor config error - multiselect option is not available when autocomplete is enabled")}else{if(t.freetext)t.freetext=!1,console.warn("list editor config error - freetext option is only available when autocomplete is enabled");if(t.filterFunc)t.filterFunc=!1,console.warn("list editor config error - filterFunc option is only available when autocomplete is enabled");if(t.filterRemote)t.filterRemote=!1,console.warn("list editor config error - filterRemote option is only available when autocomplete is enabled");if(t.mask)t.mask=!1,console.warn("list editor config error - mask option is only available when autocomplete is enabled");if(t.allowEmpty)t.allowEmpty=!1,console.warn("list editor config error - allowEmpty option is only available when autocomplete is enabled");if(t.listOnEmpty)t.listOnEmpty=!1,console.warn("list editor config error - listOnEmpty option is only available when autocomplete is enabled")}if(t.filterRemote&&!(typeof t.valuesLookup==="function"||t.valuesURL))t.filterRemote=!1,console.warn("list editor config error - filterRemote option should only be used when values list is populated from a remote source");return t}_bindInputEvents(t){if(t.addEventListener("focus",this._inputFocus.bind(this)),t.addEventListener("click",this._inputClick.bind(this)),t.addEventListener("blur",this._inputBlur.bind(this)),t.addEventListener("keydown",this._inputKeyDown.bind(this)),t.addEventListener("search",this._inputSearch.bind(this)),this.params.autocomplete)t.addEventListener("keyup",this._inputKeyUp.bind(this))}_inputFocus(t){this.rebuildOptionsList()}_filter(){if(this.params.filterRemote)clearTimeout(this.filterTimeout),this.filterTimeout=setTimeout(()=>{this.rebuildOptionsList()},this.params.filterDelay);else this._filterList()}_inputClick(t){t.stopPropagation()}_inputBlur(t){if(this.blurable)if(this.popup)this.popup.hide();else this._resolveValue(!0,t)}_inputSearch(){this._clearChoices()}_inputKeyDown(t){switch(t.key){case"ArrowUp":this._keyUp(t);break;case"ArrowDown":this._keyDown(t);break;case"ArrowLeft":case"ArrowRight":this._keySide(t);break;case"Enter":this._keyEnter(t);break;case"Escape":this._keyEsc(t);break;case"Home":case"End":this._keyHomeEnd(t);break;case"Tab":this._keyTab(t);break;default:this._keySelectLetter(t)}}_inputKeyUp(t){switch(t.key){case"ArrowUp":case"ArrowLeft":case"ArrowRight":case"ArrowDown":case"Enter":case"Escape":break;default:this._keyAutoCompLetter(t)}}_preventPopupBlur(){if(this.popup)this.popup.blockHide();setTimeout(()=>{if(this.popup)this.popup.restoreHide()},10)}_preventBlur(){this.blurable=!1,setTimeout(()=>{this.blurable=!0},10)}_keyTab(t){if(this.params.autocomplete&&this.lastAction==="typing")this._resolveValue(!0,t);else if(this.focusedItem)this._chooseItem(this.focusedItem,!0)}_keyUp(t){var i=this.displayItems.indexOf(this.focusedItem);if(this.params.verticalNavigation=="editor"||this.params.verticalNavigation=="hybrid"&&i){if(t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),i>0)this._focusItem(this.displayItems[i-1])}}_keyDown(t){var i=this.displayItems.indexOf(this.focusedItem);if(this.params.verticalNavigation=="editor"||this.params.verticalNavigation=="hybrid"&&i<this.displayItems.length-1){if(t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),i<this.displayItems.length-1)if(i==-1)this._focusItem(this.displayItems[0]);else this._focusItem(this.displayItems[i+1])}}_keySide(t){if(!this.params.autocomplete)t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault()}_keyEnter(t){if(this.params.autocomplete&&this.lastAction==="typing")this._resolveValue(!0,t);else if(this.focusedItem)if(this.isFilter&&!this.params.multiselect&&this.focusedItem.selected)this._resolveValue(!1,t);else this._chooseItem(this.focusedItem,!1,t)}_keyEsc(t){this._cancel(t)}_keyHomeEnd(t){if(this.params.autocomplete)t.stopImmediatePropagation()}_keySelectLetter(t){if(!this.params.autocomplete){if(t.preventDefault(),t.key.length===1)this._scrollToValue(t.key.toUpperCase().charCodeAt(0))}}_keyAutoCompLetter(t){this._filter(),this.lastAction="typing",this.typing=!0}_scrollToValue(t){clearTimeout(this.filterTimeout);var i=String.fromCharCode(t).toLowerCase();this.filterTerm+=i.toLowerCase();var s=this.displayItems.find((r)=>typeof r.label<"u"&&r.label.toLowerCase().startsWith(this.filterTerm));if(s)this._focusItem(s);this.filterTimeout=setTimeout(()=>{this.filterTerm=""},800)}_focusItem(t){if(this.lastAction="focus",this.focusedItem&&this.focusedItem.element)this.focusedItem.element.classList.remove("focused");if(this.focusedItem=t,t&&t.element)t.element.classList.add("focused"),t.element.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})}headerFilterInitialListGen(){this._generateOptions(!0)}rebuildOptionsList(){this._generateOptions().then(this._sortOptions.bind(this)).then(this._buildList.bind(this)).then(this._showList.bind(this)).catch((t)=>{if(!Number.isInteger(t))console.error("List generation error",t)})}_filterList(){this._buildList(this._filterOptions()),this._showList()}_generateOptions(t){var i=[],s=++this.listIteration;if(this.filtered=!1,this.params.values)i=this.params.values;else if(this.params.valuesURL)i=this._ajaxRequest(this.params.valuesURL,this.input.value);else if(typeof this.params.valuesLookup==="function")i=this.params.valuesLookup(this.cell,this.input.value);else if(this.params.valuesLookup)i=this._uniqueColumnValues(this.params.valuesLookupField);if(i instanceof Promise){if(!t)this._addPlaceholder(this.params.placeholderLoading);return i.then().then((r)=>{if(this.listIteration===s)return this._parseList(r);else return Promise.reject(s)})}else return Promise.resolve(this._parseList(i))}_addPlaceholder(t){var i=document.createElement("div");if(typeof t==="function")t=t(this.cell.getComponent(),this.listEl);if(t){if(this._clearList(),t instanceof HTMLElement)i=t;else i.classList.add("tabulator-edit-list-placeholder"),i.innerHTML=t;this.listEl.appendChild(i),this._showList()}}_ajaxRequest(t,i){var s=this.params.filterRemote?{term:i}:{};return t=it(t,{},s),fetch(t).then((r)=>{if(r.ok)return r.json().catch((o)=>(console.warn("List Ajax Load Error - Invalid JSON returned",o),Promise.reject(o)));else return console.error("List Ajax Load Error - Connection Error: "+r.status,r.statusText),Promise.reject(r)}).catch((r)=>(console.error("List Ajax Load Error - Connection Error: ",r),Promise.reject(r)))}_uniqueColumnValues(t){var i={},s=this.table.getData(this.params.valuesLookup),r;if(t)r=this.table.columnManager.getColumnByField(t);else r=this.cell.getColumn()._getSelf();if(r)s.forEach((o)=>{var a=r.getFieldValue(o);if(!this._emptyValueCheck(a))if(this.params.multiselect&&Array.isArray(a))a.forEach((l)=>{if(!this._emptyValueCheck(l))i[l]=!0});else i[a]=!0});else console.warn("unable to find matching column to create select lookup list:",t),i=[];return Object.keys(i)}_emptyValueCheck(t){return t===null||typeof t>"u"||t===""}_parseList(t){var i=[];if(!Array.isArray(t))t=Object.entries(t).map(([s,r])=>({label:r,value:s}));if(t.forEach((s)=>{if(typeof s!=="object")s={label:s,value:s};this._parseListItem(s,i,0)}),!this.currentItems.length&&this.params.freetext)this.input.value=this.initialValues,this.typing=!0,this.lastAction="typing";if(this.params.multiselect)this.initialValues=null;return this.data=i,i}_parseListItem(t,i,s){var r={};if(t.options)r=this._parseListGroup(t,s+1);else if(r={label:t.label,value:t.value,itemParams:t.itemParams,elementAttributes:t.elementAttributes,element:!1,selected:!1,visible:!0,level:s,original:t},this.params.multiselect){var o=this.currentItems.findIndex((a)=>a.value===t.value);if(o>-1){if(this.focusedItem===this.currentItems[o])this.focusedItem=r;this.currentItems[o]=r,r.selected=!0}else if(this.initialValues&&this.initialValues.indexOf(t.value)>-1)this._chooseItem(r,!0)}else if(this.initialValues&&this.initialValues.indexOf(t.value)>-1)this._chooseItem(r,!0);i.push(r)}_parseListGroup(t,i){var s={label:t.label,group:!0,itemParams:t.itemParams,elementAttributes:t.elementAttributes,element:!1,visible:!0,level:i,options:[],original:t};return t.options.forEach((r)=>{this._parseListItem(r,s.options,i)}),s}_sortOptions(t){var i;if(this.params.sort)i=typeof this.params.sort==="function"?this.params.sort:this._defaultSortFunction.bind(this),this._sortGroup(i,t);return t}_sortGroup(t,i){i.sort((s,r)=>t(s.label,r.label,s.value,r.value,s.original,r.original)),i.forEach((s)=>{if(s.group)this._sortGroup(t,s.options)})}_defaultSortFunction(t,i){var s,r,o,a,l=0,h,d=/(\d+)|(\D+)/g,u=/\d/,c=0;if(this.params.sort==="desc")[t,i]=[i,t];if(!t&&t!==0)c=!i&&i!==0?0:-1;else if(!i&&i!==0)c=1;else{if(isFinite(t)&&isFinite(i))return t-i;if(s=String(t).toLowerCase(),r=String(i).toLowerCase(),s===r)return 0;if(!(u.test(s)&&u.test(r)))return s>r?1:-1;s=s.match(d),r=r.match(d),h=s.length>r.length?r.length:s.length;while(l<h)if(o=s[l],a=r[l++],o!==a)if(isFinite(o)&&isFinite(a)){if(o.charAt(0)==="0")o="."+o;if(a.charAt(0)==="0")a="."+a;return o-a}else return o>a?1:-1;return s.length>r.length}return c}_filterOptions(){var t=this.params.filterFunc||this._defaultFilterFunc,i=this.input.value;if(i)this.filtered=!0,this.data.forEach((s)=>{this._filterItem(t,i,s)});else this.filtered=!1;return this.data}_filterItem(t,i,s){var r=!1;if(!s.group)s.visible=t(i,s.label,s.value,s.original);else s.options.forEach((o)=>{if(this._filterItem(t,i,o))r=!0}),s.visible=r;return s.visible}_defaultFilterFunc(t,i,s,r){if(t=String(t).toLowerCase(),i!==null&&typeof i<"u"){if(String(i).toLowerCase().indexOf(t)>-1||String(s).toLowerCase().indexOf(t)>-1)return!0}return!1}_clearList(){while(this.listEl.firstChild)this.listEl.removeChild(this.listEl.firstChild);this.displayItems=[]}_buildList(t){if(this._clearList(),t.forEach((i)=>{this._buildItem(i)}),!this.displayItems.length)this._addPlaceholder(this.params.placeholderEmpty)}_buildItem(t){var i=t.element,s;if(!this.filtered||t.visible){if(!i){if(i=document.createElement("div"),i.tabIndex=0,s=this.params.itemFormatter?this.params.itemFormatter(t.label,t.value,t.original,i):t.label,s instanceof HTMLElement)i.appendChild(s);else i.innerHTML=s;if(t.group)i.classList.add("tabulator-edit-list-group");else i.classList.add("tabulator-edit-list-item");if(i.classList.add("tabulator-edit-list-group-level-"+t.level),t.elementAttributes&&typeof t.elementAttributes=="object")for(let r in t.elementAttributes)if(r.charAt(0)=="+")r=r.slice(1),i.setAttribute(r,this.input.getAttribute(r)+t.elementAttributes["+"+r]);else i.setAttribute(r,t.elementAttributes[r]);if(t.group)i.addEventListener("click",this._groupClick.bind(this,t));else i.addEventListener("click",this._itemClick.bind(this,t));i.addEventListener("mousedown",this._preventBlur.bind(this)),t.element=i}if(this._styleItem(t),this.listEl.appendChild(i),t.group)t.options.forEach((r)=>{this._buildItem(r)});else this.displayItems.push(t)}}_showList(){var t=this.popup&&this.popup.isVisible();if(this.input.parentNode){if(this.params.autocomplete&&this.input.value===""&&!this.params.listOnEmpty){if(this.popup)this.popup.hide(!0);return}if(this._setListWidth(),!this.popup)this.popup=this.edit.popup(this.listEl);if(this.popup.show(this.cell.getElement(),"bottom"),!t)setTimeout(()=>{this.popup.hideOnBlur(this._resolveValue.bind(this,!0))},10)}}_styleItem(t){if(t&&t.element)if(t.selected)t.element.classList.add("active");else t.element.classList.remove("active")}_itemClick(t,i){i.stopPropagation(),this._chooseItem(t,!1,i)}_groupClick(t,i){i.stopPropagation()}_cancel(t){this.popup.hide(!0),this.actions.cancel(t)}_clearChoices(){this.typing=!0,this.currentItems.forEach((t)=>{t.selected=!1,this._styleItem(t)}),this.currentItems=[],this.focusedItem=null}_chooseItem(t,i,s){var r;if(this.typing=!1,this.params.multiselect){if(r=this.currentItems.indexOf(t),r>-1)this.currentItems.splice(r,1),t.selected=!1;else this.currentItems.push(t),t.selected=!0;this.input.value=this.currentItems.map((o)=>o.label).join(","),this._styleItem(t)}else{if(this.isFilter&&!i&&t.selected){this._clearChoices(),this.input.value="",this._resolveValue(!1,s);return}if(this.currentItems=[t],t.selected=!0,this.input.value=t.label,this._styleItem(t),!i)this._resolveValue(!1,s)}this._focusItem(t)}_resolveValue(t,i){var s,r;if(this.popup)this.popup.hide(!0);if(this.params.multiselect)s=this.currentItems.map((o)=>o.value);else if(t&&this.params.autocomplete&&this.typing)if(this.params.freetext||this.params.allowEmpty&&this.input.value==="")s=this.input.value;else{this.actions.cancel(i);return}else if(this.currentItems[0])s=this.currentItems[0].value;else if(this.isFilter&&this.focusedItem&&this.focusedItem.selected)s=this.focusedItem.value;else if(r=Array.isArray(this.initialValues)?this.initialValues[0]:this.initialValues,r===null||typeof r>"u"||r==="")s=r;else s=this.params.emptyValue;if(s==="")s=this.params.emptyValue;if(this.actions.success(s,i),this.isFilter)this.initialValues=s&&!Array.isArray(s)?[s]:s,this.currentItems=[]}};function bt(e,t,i,s,r){var o=new gt(this,e,t,i,s,r);return o.input}function vt(e,t,i,s,r){var o=this,a=e.getElement(),l=e.getValue(),h=a.getElementsByTagName("svg").length||5,d=a.getElementsByTagName("svg")[0]?a.getElementsByTagName("svg")[0].getAttribute("width"):14,u=[],c=document.createElement("div"),f=document.createElementNS("http://www.w3.org/2000/svg","svg");function p(w){u.forEach(function(R,S){if(S<w){if(o.table.browser=="ie")R.setAttribute("class","tabulator-star-active");else R.classList.replace("tabulator-star-inactive","tabulator-star-active");R.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'}else{if(o.table.browser=="ie")R.setAttribute("class","tabulator-star-inactive");else R.classList.replace("tabulator-star-active","tabulator-star-inactive");R.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'}})}function m(w){var R=document.createElement("span"),S=f.cloneNode(!0);u.push(S),R.addEventListener("mouseenter",function(T){T.stopPropagation(),T.stopImmediatePropagation(),p(w)}),R.addEventListener("mousemove",function(T){T.stopPropagation(),T.stopImmediatePropagation()}),R.addEventListener("click",function(T){T.stopPropagation(),T.stopImmediatePropagation(),i(w,T),a.blur()}),R.appendChild(S),c.appendChild(R)}function b(w){l=w,p(w)}if(a.style.whiteSpace="nowrap",a.style.overflow="hidden",a.style.textOverflow="ellipsis",c.style.verticalAlign="middle",c.style.display="inline-block",c.style.padding="4px",f.setAttribute("width",d),f.setAttribute("height",d),f.setAttribute("viewBox","0 0 512 512"),f.setAttribute("xml:space","preserve"),f.style.padding="0 1px",r.elementAttributes&&typeof r.elementAttributes=="object")for(let w in r.elementAttributes)if(w.charAt(0)=="+")w=w.slice(1),c.setAttribute(w,c.getAttribute(w)+r.elementAttributes["+"+w]);else c.setAttribute(w,r.elementAttributes[w]);for(var v=1;v<=h;v++)m(v);return l=Math.min(parseInt(l),h),p(l),c.addEventListener("mousemove",function(w){p(0)}),c.addEventListener("click",function(w){i(0,w)}),a.addEventListener("blur",function(w){s(w)}),a.addEventListener("keydown",function(w){switch(w.key){case"ArrowRight":b(l+1);break;case"ArrowLeft":b(l-1);break;case"Enter":i(l,w);break;case"Escape":s(w);break}}),c}function wt(e,t,i,s,r){var o=e.getElement(),a=typeof r.max>"u"?o.getElementsByTagName("div")[0]&&o.getElementsByTagName("div")[0].getAttribute("max")||100:r.max,l=typeof r.min>"u"?o.getElementsByTagName("div")[0]&&o.getElementsByTagName("div")[0].getAttribute("min")||0:r.min,h=(a-l)/100,d=e.getValue()||0,u=document.createElement("div"),c=document.createElement("div"),f,p;function m(b){var v=window.getComputedStyle(o,null),w=h*Math.round(c.offsetWidth/((o.clientWidth-parseInt(v.getPropertyValue("padding-left"))-parseInt(v.getPropertyValue("padding-right")))/100))+l;i(w,b),o.setAttribute("aria-valuenow",w),o.setAttribute("aria-label",d)}if(u.style.position="absolute",u.style.right="0",u.style.top="0",u.style.bottom="0",u.style.width="5px",u.classList.add("tabulator-progress-handle"),c.style.display="inline-block",c.style.position="relative",c.style.height="100%",c.style.backgroundColor="#488CE9",c.style.maxWidth="100%",c.style.minWidth="0%",r.elementAttributes&&typeof r.elementAttributes=="object")for(let b in r.elementAttributes)if(b.charAt(0)=="+")b=b.slice(1),c.setAttribute(b,c.getAttribute(b)+r.elementAttributes["+"+b]);else c.setAttribute(b,r.elementAttributes[b]);return o.style.padding="4px 4px",d=Math.min(parseFloat(d),a),d=Math.max(parseFloat(d),l),d=Math.round((d-l)/h),c.style.width=d+"%",o.setAttribute("aria-valuemin",l),o.setAttribute("aria-valuemax",a),c.appendChild(u),u.addEventListener("mousedown",function(b){f=b.screenX,p=c.offsetWidth}),u.addEventListener("mouseover",function(){u.style.cursor="ew-resize"}),o.addEventListener("mousemove",function(b){if(f)c.style.width=p+b.screenX-f+"px"}),o.addEventListener("mouseup",function(b){if(f)b.stopPropagation(),b.stopImmediatePropagation(),f=!1,p=!1,m(b)}),o.addEventListener("keydown",function(b){switch(b.key){case"ArrowRight":b.preventDefault(),c.style.width=c.clientWidth+o.clientWidth/100+"px";break;case"ArrowLeft":b.preventDefault(),c.style.width=c.clientWidth-o.clientWidth/100+"px";break;case"Tab":case"Enter":m(b);break;case"Escape":s(b);break}}),o.addEventListener("blur",function(b){s(b)}),c}function Ct(e,t,i,s,r){var o=e.getValue(),a=document.createElement("input"),l=r.tristate,h=typeof r.indeterminateValue>"u"?null:r.indeterminateValue,d=!1,u=Object.keys(r).includes("trueValue"),c=Object.keys(r).includes("falseValue");if(a.setAttribute("type","checkbox"),a.style.marginTop="5px",a.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let p in r.elementAttributes)if(p.charAt(0)=="+")p=p.slice(1),a.setAttribute(p,a.getAttribute(p)+r.elementAttributes["+"+p]);else a.setAttribute(p,r.elementAttributes[p]);if(a.value=o,l&&(typeof o>"u"||o===h||o===""))d=!0,a.indeterminate=!0;if(this.table.browser!="firefox"&&this.table.browser!="safari")t(function(){if(e.getType()==="cell")a.focus({preventScroll:!0})});a.checked=u?o===r.trueValue:o===!0||o==="true"||o==="True"||o===1;function f(p){var m=a.checked;if(u&&m)m=r.trueValue;else if(c&&!m)m=r.falseValue;if(l)if(!p)if(a.checked&&!d)return a.checked=!1,a.indeterminate=!0,d=!0,h;else return d=!1,m;else if(d)return h;else return m;else return m}return a.addEventListener("change",function(p){i(f(),p)}),a.addEventListener("blur",function(p){i(f(!0),p)}),a.addEventListener("keydown",function(p){if(p.key=="Enter")i(f(),p);if(p.key=="Escape")s(p)}),a}function Et(e,t,i,s,r){var o=e._getSelf().column,a,l,h;function d(u){var c=u.getValue(),f="input";switch(typeof c){case"number":f="number";break;case"boolean":f="tickCross";break;case"string":if(c.includes(`
|
|
5
|
-
`))f="textarea";break}return f}if(a=r.editorLookup?r.editorLookup(e):d(e),r.paramsLookup)h=typeof r.paramsLookup==="function"?r.paramsLookup(a,e):r.paramsLookup[a];return l=this.table.modules.edit.lookupEditor(a,o),l.call(this,e,t,i,s,h||{})}var yt={input:lt,textarea:ht,number:dt,range:ut,date:ct,time:pt,datetime:mt,list:bt,star:vt,progress:wt,tickCross:Ct,adaptable:Et};class ie extends F{static moduleName="edit";static editors=yt;constructor(e){super(e);this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1,this.editedCells=[],this.convertEmptyValues=!1,this.editors=ie.editors,this.registerTableOption("editTriggerEvent","focus"),this.registerTableOption("editorEmptyValue"),this.registerTableOption("editorEmptyValueFunc",this.emptyValueCheck.bind(this)),this.registerColumnOption("editable"),this.registerColumnOption("editor"),this.registerColumnOption("editorParams"),this.registerColumnOption("editorEmptyValue"),this.registerColumnOption("editorEmptyValueFunc"),this.registerColumnOption("cellEditing"),this.registerColumnOption("cellEdited"),this.registerColumnOption("cellEditCancelled"),this.registerTableFunction("getEditedCells",this.getEditedCells.bind(this)),this.registerTableFunction("clearCellEdited",this.clearCellEdited.bind(this)),this.registerTableFunction("setCellEdited",this.setCellEdited.bind(this)),this.registerTableFunction("navigatePrev",this.navigatePrev.bind(this)),this.registerTableFunction("navigateNext",this.navigateNext.bind(this)),this.registerTableFunction("navigateLeft",this.navigateLeft.bind(this)),this.registerTableFunction("navigateRight",this.navigateRight.bind(this)),this.registerTableFunction("navigateUp",this.navigateUp.bind(this)),this.registerTableFunction("navigateDown",this.navigateDown.bind(this)),this.registerComponentFunction("cell","isEdited",this.cellIsEdited.bind(this)),this.registerComponentFunction("cell","clearEdited",this.clearEdited.bind(this)),this.registerComponentFunction("cell","setEdited",this.setEdited.bind(this)),this.registerComponentFunction("cell","edit",this.editCell.bind(this)),this.registerComponentFunction("cell","cancelEdit",this.cellCancelEdit.bind(this)),this.registerComponentFunction("cell","navigatePrev",this.navigatePrev.bind(this)),this.registerComponentFunction("cell","navigateNext",this.navigateNext.bind(this)),this.registerComponentFunction("cell","navigateLeft",this.navigateLeft.bind(this)),this.registerComponentFunction("cell","navigateRight",this.navigateRight.bind(this)),this.registerComponentFunction("cell","navigateUp",this.navigateUp.bind(this)),this.registerComponentFunction("cell","navigateDown",this.navigateDown.bind(this))}initialize(){if(this.subscribe("cell-init",this.bindEditor.bind(this)),this.subscribe("cell-delete",this.clearEdited.bind(this)),this.subscribe("cell-value-changed",this.updateCellClass.bind(this)),this.subscribe("column-layout",this.initializeColumnCheck.bind(this)),this.subscribe("column-delete",this.columnDeleteCheck.bind(this)),this.subscribe("row-deleting",this.rowDeleteCheck.bind(this)),this.subscribe("row-layout",this.rowEditableCheck.bind(this)),this.subscribe("data-refreshing",this.cancelEdit.bind(this)),this.subscribe("clipboard-paste",this.pasteBlocker.bind(this)),!this.confirm("edit-nav-disabled"))this.subscribe("keybinding-nav-prev",this.navigatePrev.bind(this,void 0)),this.subscribe("keybinding-nav-next",this.keybindingNavigateNext.bind(this)),this.subscribe("keybinding-nav-up",this.navigateUp.bind(this,void 0)),this.subscribe("keybinding-nav-down",this.navigateDown.bind(this,void 0));if(this.subscribe("edit-check-editing",this.checkEditing.bind(this)),this.subscribe("edit-cancel-cell",this.cancelEditEvent.bind(this)),Object.keys(this.table.options).includes("editorEmptyValue"))this.convertEmptyValues=!0}pasteBlocker(e){if(this.currentCell)return!0}keybindingNavigateNext(e){var t=this.currentCell,i=this.options("tabEndNewRow");if(t){if(!this.navigateNext(t,e)){if(i){if(t.getElement().firstChild.blur(),!this.invalidEdit){if(i===!0)i=this.table.addRow({});else if(typeof i=="function")i=this.table.addRow(i(t.row.getComponent()));else i=this.table.addRow(Object.assign({},i));i.then(()=>{setTimeout(()=>{t.getComponent().navigateNext()})})}}}}}cellIsEdited(e){return!!e.modules.edit&&e.modules.edit.edited}cellCancelEdit(e){if(e===this.currentCell)this.table.modules.edit.cancelEdit();else console.warn("Cancel Editor Error - This cell is not currently being edited ")}updateCellClass(e){if(this.allowEdit(e))e.getElement().classList.add("tabulator-editable");else e.getElement().classList.remove("tabulator-editable")}clearCellEdited(e){if(!e)e=this.table.modules.edit.getEditedCells();if(!Array.isArray(e))e=[e];e.forEach((t)=>{this.table.modules.edit.clearEdited(t._getSelf())})}setCellEdited(e){if(!e)return;if(!Array.isArray(e))e=[e];e.forEach((t)=>{this.table.modules.edit.setEdited(t._getSelf())})}navigatePrev(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=this.navigateLeft(),i)return!0;else if(s=this.table.rowManager.prevDisplayRow(e.row,!0),s){if(i=this.findPrevEditableCell(s,s.cells.length),i)return i.getComponent().edit(),!0}}return!1}navigateNext(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=this.navigateRight(),i)return!0;else if(s=this.table.rowManager.nextDisplayRow(e.row,!0),s){if(i=this.findNextEditableCell(s,-1),i)return i.getComponent().edit(),!0}}return!1}navigateLeft(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.findPrevEditableCell(e.row,i),s)return s.getComponent().edit(),!0}return!1}navigateRight(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.findNextEditableCell(e.row,i),s)return s.getComponent().edit(),!0}return!1}navigateUp(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.table.rowManager.prevDisplayRow(e.row,!0),s)return s.cells[i].getComponent().edit(),!0}return!1}navigateDown(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.table.rowManager.nextDisplayRow(e.row,!0),s)return s.cells[i].getComponent().edit(),!0}return!1}findNextEditableCell(e,t){var i=!1;if(t<e.cells.length-1)for(var s=t+1;s<e.cells.length;s++){let r=e.cells[s];if(r.column.modules.edit&&M.elVisible(r.getElement())){if(this.allowEdit(r)){i=r;break}}}return i}findPrevEditableCell(e,t){var i=!1;if(t>0)for(var s=t-1;s>=0;s--){let r=e.cells[s];if(r.column.modules.edit&&M.elVisible(r.getElement())){if(this.allowEdit(r)){i=r;break}}}return i}initializeColumnCheck(e){if(typeof e.definition.editor<"u")this.initializeColumn(e)}columnDeleteCheck(e){if(this.currentCell&&this.currentCell.column===e)this.cancelEdit()}rowDeleteCheck(e){if(this.currentCell&&this.currentCell.row===e)this.cancelEdit()}rowEditableCheck(e){e.getCells().forEach((t)=>{if(t.column.modules.edit&&typeof t.column.modules.edit.check==="function")this.updateCellClass(t)})}initializeColumn(e){var t=Object.keys(e.definition).includes("editorEmptyValue"),i={editor:!1,blocked:!1,check:e.definition.editable,params:e.definition.editorParams||{},convertEmptyValues:t,editorEmptyValue:e.definition.editorEmptyValue,editorEmptyValueFunc:e.definition.editorEmptyValueFunc};if(i.editor=this.lookupEditor(e.definition.editor,e),i.editor)e.modules.edit=i}lookupEditor(e,t){var i;switch(typeof e){case"string":if(this.editors[e])i=this.editors[e];else console.warn("Editor Error - No such editor found: ",e);break;case"function":i=e;break;case"boolean":if(e===!0)if(typeof t.definition.formatter!=="function")if(this.editors[t.definition.formatter])i=this.editors[t.definition.formatter];else i=this.editors.input;else console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",t.definition.formatter);break}return i}getCurrentCell(){return this.currentCell?this.currentCell.getComponent():!1}checkEditing(){return!!this.currentCell}cancelEditEvent(){if(this.currentCell)return this.cancelEdit(),!0;return!1}clearEditor(e,t){var i=this.currentCell,s;if(this.invalidEdit=!1,i){this.currentCell=!1,s=i.getElement(),this.dispatch("edit-editor-clear",i,e,t),s.classList.remove("tabulator-editing");while(s.firstChild)s.removeChild(s.firstChild);i.row.getElement().classList.remove("tabulator-editing"),i.table.element.classList.remove("tabulator-editing")}if(this.table.getRedrawBlock())this.table.restoreRedraw()}cancelEdit(e){if(this.currentCell){var t=this.currentCell,i=this.currentCell.getComponent();if(this.clearEditor(!0,e),t.setValueActual(t.getValue()),t.cellRendered(),t.column.definition.editor=="textarea"||t.column.definition.variableHeight)t.row.normalizeHeight(!0);if(t.column.definition.cellEditCancelled)t.column.definition.cellEditCancelled.call(this.table,i);this.dispatch("edit-cancelled",t),this.dispatchExternal("cellEditCancelled",i)}}bindEditor(e){if(e.column.modules.edit){var t=this,i=e.getElement(!0);if(this.updateCellClass(e),i.setAttribute("tabindex",0),i.addEventListener("mousedown",function(s){if(s.button===2)s.preventDefault();else t.mouseClick=!0}),this.options("editTriggerEvent")==="dblclick")i.addEventListener("dblclick",function(s){if(!i.classList.contains("tabulator-editing"))i.focus({preventScroll:!0}),t.edit(e,s,!1)});if(this.options("editTriggerEvent")==="focus"||this.options("editTriggerEvent")==="click")i.addEventListener("click",function(s){if(!i.classList.contains("tabulator-editing"))i.focus({preventScroll:!0}),t.edit(e,s,!1)});if(this.options("editTriggerEvent")==="focus")i.addEventListener("focus",function(s){if(!t.recursionBlock)t.edit(e,s,!1)})}}focusCellNoEvent(e,t){if(this.recursionBlock=!0,!(t&&this.table.browser==="ie"))e.getElement().focus({preventScroll:!0});this.recursionBlock=!1}editCell(e,t,i){this.focusCellNoEvent(e),this.edit(e,!1,t,i)}focusScrollAdjust(e){if(this.table.rowManager.getRenderMode()=="virtual"){var t=this.table.rowManager.element.scrollTop,i=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,s=e.row.getElement();if(s.offsetTop<t)this.table.rowManager.element.scrollTop-=t-s.offsetTop;else if(s.offsetTop+s.offsetHeight>i)this.table.rowManager.element.scrollTop+=s.offsetTop+s.offsetHeight-i;var r=this.table.rowManager.element.scrollLeft,o=this.table.rowManager.element.clientWidth+this.table.rowManager.element.scrollLeft,a=e.getElement();if(this.table.modExists("frozenColumns"))r+=parseInt(this.table.modules.frozenColumns.leftMargin||0),o-=parseInt(this.table.modules.frozenColumns.rightMargin||0);if(this.table.options.renderHorizontal==="virtual")r-=parseInt(this.table.columnManager.renderer.vDomPadLeft),o-=parseInt(this.table.columnManager.renderer.vDomPadLeft);if(a.offsetLeft<r)this.table.rowManager.element.scrollLeft-=r-a.offsetLeft;else if(a.offsetLeft+a.offsetWidth>o)this.table.rowManager.element.scrollLeft+=a.offsetLeft+a.offsetWidth-o}}allowEdit(e){var t=e.column.modules.edit?!0:!1;if(e.column.modules.edit)switch(typeof e.column.modules.edit.check){case"function":if(e.row.initialized)t=e.column.modules.edit.check(e.getComponent());break;case"string":t=!!e.row.data[e.column.modules.edit.check];break;case"boolean":t=e.column.modules.edit.check;break}return t}edit(e,t,i,s){var r=this,o=!0,a=function(){},l=e.getElement(),h=!1,d,u,c;if(this.currentCell){if(this.invalidEdit||this.currentCell===e)return;this.cancelEdit()}function f(w,R){if(r.currentCell===e&&!h){var S=r.chain("edit-success",[e,w],!0,!0);if(S===!0||r.table.options.validationMode==="highlight"){if(h=!0,r.clearEditor(!1,R),!e.modules.edit)e.modules.edit={};if(e.modules.edit.edited=!0,r.editedCells.indexOf(e)==-1)r.editedCells.push(e);return w=r.transformEmptyValues(w,e),e.setValue(w,!0),S===!0}else return h=!0,r.invalidEdit=!0,r.focusCellNoEvent(e,!0),a(),setTimeout(()=>{h=!1},10),!1}}function p(w){if(r.currentCell===e&&!h)r.cancelEdit(w)}function m(w){a=w}if(!e.column.modules.edit.blocked)if(o=this.allowEdit(e),o||i){if(t)t.stopPropagation();if(r.cancelEdit(),r.currentCell=e,this.focusScrollAdjust(e),u=e.getComponent(),this.mouseClick){if(this.mouseClick=!1,e.column.definition.cellClick)e.column.definition.cellClick.call(this.table,t,u)}if(e.column.definition.cellEditing)e.column.definition.cellEditing.call(this.table,u);if(this.dispatch("cell-editing",e),this.dispatchExternal("cellEditing",u),c=typeof e.column.modules.edit.params==="function"?e.column.modules.edit.params(u):e.column.modules.edit.params,s)c={...c,...s};if(d=e.column.modules.edit.editor.call(r,u,m,f,p,c),this.currentCell&&d!==!1)if(d instanceof Node){this.dispatch("edit-editor-created",e,d),l.classList.add("tabulator-editing"),e.row.getElement().classList.add("tabulator-editing"),e.table.element.classList.add("tabulator-editing");while(l.firstChild)l.removeChild(l.firstChild);l.appendChild(d),this.table.blockRedraw(),a();var b=l.children;for(var v=0;v<b.length;v++)b[v].addEventListener("click",function(w){w.stopPropagation()}),b[v].addEventListener("mousedown",function(w){w.stopPropagation()}),b[v].addEventListener("mouseup",function(w){w.stopPropagation()})}else return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",d),this.blur(l),!1;else return this.blur(l),!1;return!0}else return this.mouseClick=!1,this.blur(l),!1;else return this.mouseClick=!1,this.blur(l),!1}emptyValueCheck(e){return e===""||e===null||typeof e>"u"}transformEmptyValues(e,t){var i=t.column.modules.edit,s=i.convertEmptyValues||this.convertEmptyValues,r;if(s){if(r=i.editorEmptyValueFunc||this.options("editorEmptyValueFunc"),r&&r(e))e=i.convertEmptyValues?i.editorEmptyValue:this.options("editorEmptyValue")}return e}blur(e){if(!this.confirm("edit-blur",[e]))e.blur()}getEditedCells(){var e=[];return this.editedCells.forEach((t)=>{e.push(t.getComponent())}),e}clearEdited(e){var t;if(e.modules.edit&&e.modules.edit.edited)e.modules.edit.edited=!1,this.dispatch("edit-edited-clear",e);if(t=this.editedCells.indexOf(e),t>-1)this.editedCells.splice(t,1)}setEdited(e){if(!e.modules.edit)e.modules.edit={};if(!e.modules.edit.edited)e.modules.edit.edited=!0,this.dispatch("edit-edited-set",e);if(this.editedCells.indexOf(e)==-1)this.editedCells.push(e)}}class re{constructor(e,t,i,s){this.type=e,this.columns=t,this.component=i||!1,this.indent=s||0}}class Y{constructor(e,t,i,s,r){this.value=e,this.component=t||!1,this.width=i,this.height=s,this.depth=r}}var Rt={},xt={visible:function(){return this.rowManager.getVisibleRows(!1,!0)},all:function(){return this.rowManager.rows},selected:function(){return this.modules.selectRow.selectedRows},active:function(){if(this.options.pagination)return this.rowManager.getDisplayRows(this.rowManager.displayRows.length-2);else return this.rowManager.getDisplayRows()}};class j extends F{static moduleName="export";static columnLookups=Rt;static rowLookups=xt;constructor(e){super(e);this.config={},this.cloneTableStyle=!0,this.colVisProp="",this.colVisPropAttach="",this.registerTableOption("htmlOutputConfig",!1),this.registerColumnOption("htmlOutput"),this.registerColumnOption("titleHtmlOutput")}initialize(){this.registerTableFunction("getHtml",this.getHtml.bind(this))}generateExportList(e,t,i,s){var r,o,a,l;if(this.cloneTableStyle=t,this.config=e||{},this.colVisProp=s,this.colVisPropAttach=this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1),l=j.columnLookups[i],l)a=l.call(this.table),a=a.filter((h)=>this.columnVisCheck(h));if(r=this.config.columnHeaders!==!1?this.headersToExportRows(this.generateColumnGroupHeaders(a)):[],a)a=a.map((h)=>h.getComponent());return o=this.bodyToExportRows(this.rowLookup(i),a),r.concat(o)}generateTable(e,t,i,s){var r=this.generateExportList(e,t,i,s);return this.generateTableElement(r)}rowLookup(e){var t=[],i;if(typeof e=="function")e.call(this.table).forEach((s)=>{if(s=this.table.rowManager.findRow(s),s)t.push(s)});else i=j.rowLookups[e]||j.rowLookups.active,t=i.call(this.table);return Object.assign([],t)}generateColumnGroupHeaders(e){var t=[];if(!e)e=this.config.columnGroups!==!1?this.table.columnManager.columns:this.table.columnManager.columnsByIndex;return e.forEach((i)=>{var s=this.processColumnGroup(i);if(s)t.push(s)}),t}processColumnGroup(e){var t=e.columns,i=0,s=e.definition["title"+this.colVisPropAttach]||e.definition.title,r={title:s,column:e,depth:1};if(t.length){if(r.subGroups=[],r.width=0,t.forEach((o)=>{var a=this.processColumnGroup(o);if(a){if(r.width+=a.width,r.subGroups.push(a),a.depth>i)i=a.depth}}),r.depth+=i,!r.width)return!1}else if(this.columnVisCheck(e))r.width=1;else return!1;return r}columnVisCheck(e){var t=e.definition[this.colVisProp];if(this.config.rowHeaders===!1&&e.isRowHeader)return!1;if(typeof t==="function")t=t.call(this.table,e.getComponent());if(t===!1||t===!0)return t;return e.visible&&e.field}headersToExportRows(e){var t=[],i=0,s=[];function r(o,a){var l=i-a;if(typeof t[a]>"u")t[a]=[];if(o.height=o.subGroups?1:l-o.depth+1,t[a].push(o),o.height>1)for(let h=1;h<o.height;h++){if(typeof t[a+h]>"u")t[a+h]=[];t[a+h].push(!1)}if(o.width>1)for(let h=1;h<o.width;h++)t[a].push(!1);if(o.subGroups)o.subGroups.forEach(function(h){r(h,a+1)})}return e.forEach(function(o){if(o.depth>i)i=o.depth}),e.forEach(function(o){r(o,0)}),t.forEach((o)=>{var a=[];o.forEach((l)=>{if(l){let h=typeof l.title>"u"?"":l.title;a.push(new Y(h,l.column.getComponent(),l.width,l.height,l.depth))}else a.push(null)}),s.push(new re("header",a))}),s}bodyToExportRows(e,t=[]){var i=[];if(t.length===0)this.table.columnManager.columnsByIndex.forEach((s)=>{if(this.columnVisCheck(s))t.push(s.getComponent())});if(this.config.columnCalcs!==!1&&this.table.modExists("columnCalcs")){if(this.table.modules.columnCalcs.topInitialized)e.unshift(this.table.modules.columnCalcs.topRow);if(this.table.modules.columnCalcs.botInitialized)e.push(this.table.modules.columnCalcs.botRow)}return e=e.filter((s)=>{switch(s.type){case"group":return this.config.rowGroups!==!1;case"calc":return this.config.columnCalcs!==!1;case"row":return!(this.table.options.dataTree&&this.config.dataTree===!1&&s.modules.dataTree.parent)}return!0}),e.forEach((s,r)=>{var o=s.getData(this.colVisProp),a=[],l=0;switch(s.type){case"group":l=s.level,a.push(new Y(s.key,s.getComponent(),t.length,1));break;case"calc":case"row":if(t.forEach((h)=>{a.push(new Y(h._column.getFieldValue(o),h,1,1))}),this.table.options.dataTree&&this.config.dataTree!==!1)l=s.modules.dataTree.index;break}i.push(new re(s.type,a,s.getComponent(),l))}),i}generateTableElement(e){var t=document.createElement("table"),i=document.createElement("thead"),s=document.createElement("tbody"),r=this.lookupTableStyles(),o=this.table.options["rowFormatter"+this.colVisPropAttach],a={};if(a.rowFormatter=o!==null?o:this.table.options.rowFormatter,this.table.options.dataTree&&this.config.dataTree!==!1&&this.table.modExists("columnCalcs"))a.treeElementField=this.table.modules.dataTree.elementField;if(a.groupHeader=this.table.options["groupHeader"+this.colVisPropAttach],a.groupHeader&&!Array.isArray(a.groupHeader))a.groupHeader=[a.groupHeader];if(t.classList.add("tabulator-print-table"),this.mapElementStyles(this.table.columnManager.getHeadersElement(),i,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),e.length>1000)console.warn("It may take a long time to render an HTML table with more than 1000 rows");if(e.forEach((l,h)=>{let d;switch(l.type){case"header":i.appendChild(this.generateHeaderElement(l,a,r));break;case"group":s.appendChild(this.generateGroupElement(l,a,r));break;case"calc":s.appendChild(this.generateCalcElement(l,a,r));break;case"row":d=this.generateRowElement(l,a,r),this.mapElementStyles(h%2&&r.evenRow?r.evenRow:r.oddRow,d,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),s.appendChild(d);break}}),i.innerHTML)t.appendChild(i);return t.appendChild(s),this.mapElementStyles(this.table.element,t,["border-top","border-left","border-right","border-bottom"]),t}lookupTableStyles(){var e={};if(this.cloneTableStyle&&window.getComputedStyle){if(e.oddRow=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),e.evenRow=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),e.calcRow=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),e.firstRow=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),e.firstGroup=this.table.element.getElementsByClassName("tabulator-group")[0],e.firstRow)e.styleCells=e.firstRow.getElementsByClassName("tabulator-cell"),e.styleRowHeader=e.firstRow.getElementsByClassName("tabulator-row-header")[0],e.firstCell=e.styleCells[0],e.lastCell=e.styleCells[e.styleCells.length-1]}return e}generateHeaderElement(e,t,i){var s=document.createElement("tr");return e.columns.forEach((r)=>{if(r){var o=document.createElement("th"),a=r.component._column.definition.cssClass?r.component._column.definition.cssClass.split(" "):[];if(o.colSpan=r.width,o.rowSpan=r.height,o.innerHTML=r.value,this.cloneTableStyle)o.style.boxSizing="border-box";if(a.forEach(function(l){o.classList.add(l)}),this.mapElementStyles(r.component.getElement(),o,["text-align","border-left","border-right","background-color","color","font-weight","font-family","font-size"]),this.mapElementStyles(r.component._column.contentElement,o,["padding-top","padding-left","padding-right","padding-bottom"]),r.component._column.visible)this.mapElementStyles(r.component.getElement(),o,["width"]);else if(r.component._column.definition.width)o.style.width=r.component._column.definition.width+"px";if(r.component._column.parent&&r.component._column.parent.isGroup)this.mapElementStyles(r.component._column.parent.groupElement,o,["border-top"]);else this.mapElementStyles(r.component.getElement(),o,["border-top"]);if(r.component._column.isGroup)this.mapElementStyles(r.component.getElement(),o,["border-bottom"]);else this.mapElementStyles(this.table.columnManager.getElement(),o,["border-bottom"]);s.appendChild(o)}}),s}generateGroupElement(e,t,i){var s=document.createElement("tr"),r=document.createElement("td"),o=e.columns[0];if(s.classList.add("tabulator-print-table-row"),t.groupHeader&&t.groupHeader[e.indent])o.value=t.groupHeader[e.indent](o.value,e.component._group.getRowCount(),e.component._group.getData(),e.component);else if(t.groupHeader!==!1)o.value=e.component._group.generator(o.value,e.component._group.getRowCount(),e.component._group.getData(),e.component);if(r.colSpan=o.width,r.innerHTML=o.value,s.classList.add("tabulator-print-table-group"),s.classList.add("tabulator-group-level-"+e.indent),o.component.isVisible())s.classList.add("tabulator-group-visible");return this.mapElementStyles(i.firstGroup,s,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),this.mapElementStyles(i.firstGroup,r,["padding-top","padding-left","padding-right","padding-bottom"]),s.appendChild(r),s}generateCalcElement(e,t,i){var s=this.generateRowElement(e,t,i);return s.classList.add("tabulator-print-table-calcs"),this.mapElementStyles(i.calcRow,s,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),s}generateRowElement(e,t,i){var s=document.createElement("tr");if(s.classList.add("tabulator-print-table-row"),e.columns.forEach((r,o)=>{if(r){var a=document.createElement("td"),l=r.component._column,h=this.table,d=h.columnManager.findColumnIndex(l),u=r.value,c,f,p={modules:{},getValue:function(){return u},getField:function(){return l.definition.field},getElement:function(){return a},getType:function(){return"cell"},getColumn:function(){return l.getComponent()},getData:function(){return e.component.getData()},getRow:function(){return e.component},getTable:function(){return h},getComponent:function(){return p},column:l},m=l.definition.cssClass?l.definition.cssClass.split(" "):[];if(m.forEach(function(b){a.classList.add(b)}),this.table.modExists("format")&&this.config.formatCells!==!1)u=this.table.modules.format.formatExportValue(p,this.colVisProp);else switch(typeof u){case"object":u=u!==null?JSON.stringify(u):"";break;case"undefined":u="";break}if(u instanceof Node)a.appendChild(u);else a.innerHTML=u;if(f=["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","text-align"],l.isRowHeader)c=i.styleRowHeader,f.push("background-color");else c=i.styleCells&&i.styleCells[d]?i.styleCells[d]:i.firstCell;if(c){if(this.mapElementStyles(c,a,f),l.definition.align)a.style.textAlign=l.definition.align}if(this.table.options.dataTree&&this.config.dataTree!==!1){if(t.treeElementField&&t.treeElementField==l.field||!t.treeElementField&&o==0){if(e.component._row.modules.dataTree.controlEl)a.insertBefore(e.component._row.modules.dataTree.controlEl.cloneNode(!0),a.firstChild);if(e.component._row.modules.dataTree.branchEl)a.insertBefore(e.component._row.modules.dataTree.branchEl.cloneNode(!0),a.firstChild)}}if(s.appendChild(a),p.modules.format&&p.modules.format.renderedCallback)p.modules.format.renderedCallback()}}),t.rowFormatter&&e.type==="row"&&this.config.formatCells!==!1){let r=Object.assign(e.component);r.getElement=function(){return s},t.rowFormatter(e.component)}return s}generateHTMLTable(e){var t=document.createElement("div");return t.appendChild(this.generateTableElement(e)),t.innerHTML}getHtml(e,t,i,s){var r=this.generateExportList(i||this.table.options.htmlOutputConfig,t,e,s||"htmlOutput");return this.generateHTMLTable(r)}mapElementStyles(e,t,i){if(this.cloneTableStyle&&e&&t){var s={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var r=window.getComputedStyle(e);i.forEach(function(o){if(!t.style[s[o]])t.style[s[o]]=r.getPropertyValue(o)})}}}}var Tt={"=":function(e,t,i,s){return t==e?!0:!1},"<":function(e,t,i,s){return t<e?!0:!1},"<=":function(e,t,i,s){return t<=e?!0:!1},">":function(e,t,i,s){return t>e?!0:!1},">=":function(e,t,i,s){return t>=e?!0:!1},"!=":function(e,t,i,s){return t!=e?!0:!1},regex:function(e,t,i,s){if(typeof e=="string")e=new RegExp(e);return e.test(t)},like:function(e,t,i,s){if(e===null||typeof e>"u")return t===e?!0:!1;else if(typeof t<"u"&&t!==null)return String(t).toLowerCase().indexOf(e.toLowerCase())>-1;else return!1},keywords:function(e,t,i,s){var r=e.toLowerCase().split(typeof s.separator>"u"?" ":s.separator),o=String(t===null||typeof t>"u"?"":t).toLowerCase(),a=[];return r.forEach((l)=>{if(o.includes(l))a.push(!0)}),s.matchAll?a.length===r.length:!!a.length},starts:function(e,t,i,s){if(e===null||typeof e>"u")return t===e?!0:!1;else if(typeof t<"u"&&t!==null)return String(t).toLowerCase().startsWith(e.toLowerCase());else return!1},ends:function(e,t,i,s){if(e===null||typeof e>"u")return t===e?!0:!1;else if(typeof t<"u"&&t!==null)return String(t).toLowerCase().endsWith(e.toLowerCase());else return!1},in:function(e,t,i,s){if(Array.isArray(e))return e.length?e.indexOf(t)>-1:!0;else return console.warn("Filter Error - filter value is not an array:",e),!1},smart:function(e,t,i,s){let r=e.trim();if(r===".")return!(t===null||t=="");if(r==="!")return t===null||t=="";if(r.indexOf("<=")===0)return this["<="](parseFloat(r.substring(2)),t,i,s);if(r.indexOf(">=")===0)return this[">="](parseFloat(r.substring(2)),t,i,s);if(r.indexOf("<")===0)return this["<"](parseFloat(r.substring(1)),t,i,s);if(r.indexOf(">")===0)return this[">"](parseFloat(r.substring(1)),t,i,s);if(r.indexOf("=")===0)return this["="](r.substring(1).trim(),t,i,s);if(r.includes(" ")){let o=r.split(/\s+/).filter((a)=>a.length>0);if(o.length>1){let a=o.join(" AND ");return this.smarter(a,t,i,s)}}return this.like(r,t,i,s)},smarter:function(e,t,i,s){let r=e.trim();if(!r)return!0;let o=r.split(/\s+(AND|OR)\s+/i);if(o.length===1)return this.smart(r,t,i,s);let a=null,l=null;for(let h=0;h<o.length;h++){let d=o[h].trim();if(d==="AND"||d==="OR"){l=d;continue}let u=this.smart(d,t,i,s);if(a===null)a=u;else if(l==="AND")a=a&&u;else if(l==="OR")a=a||u}return a!==null?a:!0}};class N extends F{static moduleName="filter";static filters=Tt;constructor(e){super(e);this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1,this.tableInitialized=!1,this.registerTableOption("filterMode","local"),this.registerTableOption("initialFilter",!1),this.registerTableOption("initialHeaderFilter",!1),this.registerTableOption("headerFilterLiveFilterDelay",300),this.registerTableOption("placeholderHeaderFilter",!1),this.registerColumnOption("headerFilter"),this.registerColumnOption("headerFilterPlaceholder"),this.registerColumnOption("headerFilterParams"),this.registerColumnOption("headerFilterEmptyCheck"),this.registerColumnOption("headerFilterFunc"),this.registerColumnOption("headerFilterFuncParams"),this.registerColumnOption("headerFilterLiveFilter"),this.registerTableFunction("searchRows",this.searchRows.bind(this)),this.registerTableFunction("searchData",this.searchData.bind(this)),this.registerTableFunction("setFilter",this.userSetFilter.bind(this)),this.registerTableFunction("refreshFilter",this.userRefreshFilter.bind(this)),this.registerTableFunction("addFilter",this.userAddFilter.bind(this)),this.registerTableFunction("getFilters",this.getFilters.bind(this)),this.registerTableFunction("setHeaderFilterFocus",this.userSetHeaderFilterFocus.bind(this)),this.registerTableFunction("getHeaderFilterValue",this.userGetHeaderFilterValue.bind(this)),this.registerTableFunction("setHeaderFilterValue",this.userSetHeaderFilterValue.bind(this)),this.registerTableFunction("getHeaderFilters",this.getHeaderFilters.bind(this)),this.registerTableFunction("removeFilter",this.userRemoveFilter.bind(this)),this.registerTableFunction("clearFilter",this.userClearFilter.bind(this)),this.registerTableFunction("clearHeaderFilter",this.userClearHeaderFilter.bind(this)),this.registerComponentFunction("column","headerFilterFocus",this.setHeaderFilterFocus.bind(this)),this.registerComponentFunction("column","reloadHeaderFilter",this.reloadHeaderFilter.bind(this)),this.registerComponentFunction("column","getHeaderFilterValue",this.getHeaderFilterValue.bind(this)),this.registerComponentFunction("column","setHeaderFilterValue",this.setHeaderFilterValue.bind(this))}initialize(){if(this.subscribe("column-init",this.initializeColumnHeaderFilter.bind(this)),this.subscribe("column-width-fit-before",this.hideHeaderFilterElements.bind(this)),this.subscribe("column-width-fit-after",this.showHeaderFilterElements.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.subscribe("placeholder",this.generatePlaceholder.bind(this)),this.table.options.filterMode==="remote")this.subscribe("data-params",this.remoteFilterParams.bind(this));this.registerDataHandler(this.filter.bind(this),10)}tableBuilt(){if(this.table.options.initialFilter)this.setFilter(this.table.options.initialFilter);if(this.table.options.initialHeaderFilter)this.table.options.initialHeaderFilter.forEach((e)=>{var t=this.table.columnManager.findColumn(e.field);if(t)this.setHeaderFilterValue(t,e.value);else return console.warn("Column Filter Error - No matching column found:",e.field),!1});this.tableInitialized=!0}remoteFilterParams(e,t,i,s){return s.filter=this.getFilters(!0,!0),s}generatePlaceholder(e){if(this.table.options.placeholderHeaderFilter&&Object.keys(this.headerFilters).length)return this.table.options.placeholderHeaderFilter}userSetFilter(e,t,i,s){this.setFilter(e,t,i,s),this.refreshFilter()}userRefreshFilter(){this.refreshFilter()}userAddFilter(e,t,i,s){this.addFilter(e,t,i,s),this.refreshFilter()}userSetHeaderFilterFocus(e){var t=this.table.columnManager.findColumn(e);if(t)this.setHeaderFilterFocus(t);else return console.warn("Column Filter Focus Error - No matching column found:",e),!1}userGetHeaderFilterValue(e){var t=this.table.columnManager.findColumn(e);if(t)return this.getHeaderFilterValue(t);else console.warn("Column Filter Error - No matching column found:",e)}userSetHeaderFilterValue(e,t){var i=this.table.columnManager.findColumn(e);if(i)this.setHeaderFilterValue(i,t);else return console.warn("Column Filter Error - No matching column found:",e),!1}userRemoveFilter(e,t,i){this.removeFilter(e,t,i),this.refreshFilter()}userClearFilter(e){this.clearFilter(e),this.refreshFilter()}userClearHeaderFilter(){this.clearHeaderFilter(),this.refreshFilter()}searchRows(e,t,i){return this.search("rows",e,t,i)}searchData(e,t,i){return this.search("data",e,t,i)}initializeColumnHeaderFilter(e){var t=e.definition;if(t.headerFilter)this.initializeColumn(e)}initializeColumn(e,t){var i=this,s=e.getField();function r(o){var a=e.modules.filter.tagType=="input"&&e.modules.filter.attrType=="text"||e.modules.filter.tagType=="textarea"?"partial":"match",l="",h="",d;if(typeof e.modules.filter.prevSuccess>"u"||e.modules.filter.prevSuccess!==o){if(e.modules.filter.prevSuccess=o,!e.modules.filter.emptyFunc(o)){switch(e.modules.filter.value=o,typeof e.definition.headerFilterFunc){case"string":if(N.filters[e.definition.headerFilterFunc])l=e.definition.headerFilterFunc,d=function(u){var c=e.definition.headerFilterFuncParams||{},f=e.getFieldValue(u);return c=typeof c==="function"?c(o,f,u):c,N.filters[e.definition.headerFilterFunc](o,f,u,c)};else console.warn("Header Filter Error - Matching filter function not found: ",e.definition.headerFilterFunc);break;case"function":d=function(u){var c=e.definition.headerFilterFuncParams||{},f=e.getFieldValue(u);return c=typeof c==="function"?c(o,f,u):c,e.definition.headerFilterFunc(o,f,u,c)},l=d;break}if(!d)switch(a){case"partial":d=function(u){var c=e.getFieldValue(u);if(typeof c<"u"&&c!==null)return String(c).toLowerCase().indexOf(String(o).toLowerCase())>-1;else return!1},l="like";break;default:d=function(u){return e.getFieldValue(u)==o},l="="}i.headerFilters[s]={value:o,func:d,type:l}}else delete i.headerFilters[s];if(e.modules.filter.value=o,h=JSON.stringify(i.headerFilters),i.prevHeaderFilterChangeCheck!==h)i.prevHeaderFilterChangeCheck=h,i.trackChanges(),i.refreshFilter()}return!0}e.modules.filter={success:r,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(e)}generateHeaderFilterElement(e,t,i){var s=this,r=e.modules.filter.success,o=e.getField(),a,l,h,d,u,c,f,p;e.modules.filter.value=t;function m(){}function b(v){p=v}if(e.modules.filter.headerElement&&e.modules.filter.headerElement.parentNode)e.contentElement.removeChild(e.modules.filter.headerElement.parentNode);if(o){switch(e.modules.filter.emptyFunc=e.definition.headerFilterEmptyCheck||function(v){return!v&&v!==0},a=document.createElement("div"),a.classList.add("tabulator-header-filter"),typeof e.definition.headerFilter){case"string":if(s.table.modules.edit.editors[e.definition.headerFilter]){if(l=s.table.modules.edit.editors[e.definition.headerFilter],(e.definition.headerFilter==="tick"||e.definition.headerFilter==="tickCross")&&!e.definition.headerFilterEmptyCheck)e.modules.filter.emptyFunc=function(v){return v!==!0&&v!==!1}}else console.warn("Filter Error - Cannot build header filter, No such editor found: ",e.definition.editor);break;case"function":l=e.definition.headerFilter;break;case"boolean":if(e.modules.edit&&e.modules.edit.editor)l=e.modules.edit.editor;else if(e.definition.formatter&&s.table.modules.edit.editors[e.definition.formatter]){if(l=s.table.modules.edit.editors[e.definition.formatter],(e.definition.formatter==="tick"||e.definition.formatter==="tickCross")&&!e.definition.headerFilterEmptyCheck)e.modules.filter.emptyFunc=function(v){return v!==!0&&v!==!1}}else l=s.table.modules.edit.editors.input;break}if(l){if(d={getValue:function(){return typeof t<"u"?t:""},getField:function(){return e.definition.field},getElement:function(){return a},getColumn:function(){return e.getComponent()},getTable:()=>this.table,getType:()=>"header",getRow:function(){return{normalizeHeight:function(){}}}},f=e.definition.headerFilterParams||{},f=typeof f==="function"?f.call(s.table,d):f,h=l.call(this.table.modules.edit,d,b,r,m,f),!h){console.warn("Filter Error - Cannot add filter to "+o+" column, editor returned a value of false");return}if(!(h instanceof Node)){console.warn("Filter Error - Cannot add filter to "+o+" column, editor should return an instance of Node, the editor returned:",h);return}if(s.langBind("headerFilters|columns|"+e.definition.field,function(v){h.setAttribute("placeholder",typeof v<"u"&&v?v:e.definition.headerFilterPlaceholder||s.langText("headerFilters|default"))}),h.addEventListener("click",function(v){v.stopPropagation(),h.focus()}),h.addEventListener("focus",(v)=>{var w=this.table.columnManager.contentsElement.scrollLeft,R=this.table.rowManager.element.scrollLeft;if(w!==R)this.table.rowManager.scrollHorizontal(w),this.table.columnManager.scrollHorizontal(w)}),u=!1,c=function(v){if(u)clearTimeout(u);u=setTimeout(function(){r(h.value)},s.table.options.headerFilterLiveFilterDelay)},e.modules.filter.headerElement=h,e.modules.filter.attrType=h.hasAttribute("type")?h.getAttribute("type").toLowerCase():"",e.modules.filter.tagType=h.tagName.toLowerCase(),e.definition.headerFilterLiveFilter!==!1){if(!(e.definition.headerFilter==="autocomplete"||e.definition.headerFilter==="tickCross"||(e.definition.editor==="autocomplete"||e.definition.editor==="tickCross")&&e.definition.headerFilter===!0)){if(h.addEventListener("keyup",c),h.addEventListener("search",c),e.modules.filter.attrType=="number")h.addEventListener("change",function(v){r(h.value)});if(e.modules.filter.attrType=="text"&&this.table.browser!=="ie")h.setAttribute("type","search")}if(e.modules.filter.tagType=="input"||e.modules.filter.tagType=="select"||e.modules.filter.tagType=="textarea")h.addEventListener("mousedown",function(v){v.stopPropagation()})}if(a.appendChild(h),e.contentElement.appendChild(a),!i)s.headerFilterColumns.push(e);if(p)p()}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",e.definition.title)}hideHeaderFilterElements(){this.headerFilterColumns.forEach(function(e){if(e.modules.filter&&e.modules.filter.headerElement)e.modules.filter.headerElement.style.display="none"})}showHeaderFilterElements(){this.headerFilterColumns.forEach(function(e){if(e.modules.filter&&e.modules.filter.headerElement)e.modules.filter.headerElement.style.display=""})}setHeaderFilterFocus(e){if(e.modules.filter&&e.modules.filter.headerElement)e.modules.filter.headerElement.focus();else console.warn("Column Filter Focus Error - No header filter set on column:",e.getField())}getHeaderFilterValue(e){if(e.modules.filter&&e.modules.filter.headerElement)return e.modules.filter.value;else console.warn("Column Filter Error - No header filter set on column:",e.getField())}setHeaderFilterValue(e,t){if(e)if(e.modules.filter&&e.modules.filter.headerElement)this.generateHeaderFilterElement(e,t,!0),e.modules.filter.success(t);else console.warn("Column Filter Error - No header filter set on column:",e.getField())}reloadHeaderFilter(e){if(e)if(e.modules.filter&&e.modules.filter.headerElement)this.generateHeaderFilterElement(e,e.modules.filter.value,!0);else console.warn("Column Filter Error - No header filter set on column:",e.getField())}refreshFilter(){if(this.tableInitialized)if(this.table.options.filterMode==="remote")this.reloadData(null,!1,!1);else this.refreshData(!0)}trackChanges(){this.changed=!0,this.dispatch("filter-changed")}hasChanged(){var e=this.changed;return this.changed=!1,e}setFilter(e,t,i,s){if(this.filterList=[],!Array.isArray(e))e=[{field:e,type:t,value:i,params:s}];this.addFilter(e)}addFilter(e,t,i,s){var r=!1;if(!Array.isArray(e))e=[{field:e,type:t,value:i,params:s}];if(e.forEach((o)=>{if(o=this.findFilter(o),o)this.filterList.push(o),r=!0}),r)this.trackChanges()}findFilter(e){var t;if(Array.isArray(e))return this.findSubFilters(e);var i=!1;if(typeof e.field=="function")i=function(s){return e.field(s,e.type||{})};else if(N.filters[e.type])if(t=this.table.columnManager.getColumnByField(e.field),t)i=function(s){return N.filters[e.type](e.value,t.getFieldValue(s),s,e.params||{})};else i=function(s){return N.filters[e.type](e.value,s[e.field],s,e.params||{})};else console.warn("Filter Error - No such filter type found, ignoring: ",e.type);return e.func=i,e.func?e:!1}findSubFilters(e){var t=[];return e.forEach((i)=>{if(i=this.findFilter(i),i)t.push(i)}),t.length?t:!1}getFilters(e,t){var i=[];if(e)i=this.getHeaderFilters();if(t)i.forEach(function(s){if(typeof s.type=="function")s.type="function"});return i=i.concat(this.filtersToArray(this.filterList,t)),i}filtersToArray(e,t){var i=[];return e.forEach((s)=>{var r;if(Array.isArray(s))i.push(this.filtersToArray(s,t));else{if(r={field:s.field,type:s.type,value:s.value},t){if(typeof r.type=="function")r.type="function"}i.push(r)}}),i}getHeaderFilters(){var e=[];for(var t in this.headerFilters)e.push({field:t,type:this.headerFilters[t].type,value:this.headerFilters[t].value});return e}removeFilter(e,t,i){if(!Array.isArray(e))e=[{field:e,type:t,value:i}];e.forEach((s)=>{var r=-1;if(typeof s.field=="object")r=this.filterList.findIndex((o)=>s===o);else r=this.filterList.findIndex((o)=>s.field===o.field&&s.type===o.type&&s.value===o.value);if(r>-1)this.filterList.splice(r,1);else console.warn("Filter Error - No matching filter type found, ignoring: ",s.type)}),this.trackChanges()}clearFilter(e){if(this.filterList=[],e)this.clearHeaderFilter();this.trackChanges()}clearHeaderFilter(){this.headerFilters={},this.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach((e)=>{if(typeof e.modules.filter.value<"u")delete e.modules.filter.value;e.modules.filter.prevSuccess=void 0,this.reloadHeaderFilter(e)}),this.trackChanges()}search(e,t,i,s){var r=[],o=[];if(!Array.isArray(t))t=[{field:t,type:i,value:s}];return t.forEach((a)=>{if(a=this.findFilter(a),a)o.push(a)}),this.table.rowManager.rows.forEach((a)=>{var l=!0;if(o.forEach((h)=>{if(!this.filterRecurse(h,a.getData()))l=!1}),l)r.push(e==="data"?a.getData("data"):a.getComponent())}),r}filter(e,t){var i=[],s=[];if(this.subscribedExternal("dataFiltering"))this.dispatchExternal("dataFiltering",this.getFilters(!0));if(this.table.options.filterMode!=="remote"&&(this.filterList.length||Object.keys(this.headerFilters).length))e.forEach((r)=>{if(this.filterRow(r))i.push(r)});else i=e.slice(0);if(this.subscribedExternal("dataFiltered"))i.forEach((r)=>{s.push(r.getComponent())}),this.dispatchExternal("dataFiltered",this.getFilters(!0),s);return i}filterRow(e,t){var i=!0,s=e.getData();this.filterList.forEach((o)=>{if(!this.filterRecurse(o,s))i=!1});for(var r in this.headerFilters)if(!this.headerFilters[r].func(s))i=!1;return i}filterRecurse(e,t){var i=!1;if(Array.isArray(e))e.forEach((s)=>{if(this.filterRecurse(s,t))i=!0});else i=e.func(t);return i}}function kt(e,t,i){return this.emptyToSpace(this.sanitizeHTML(e.getValue()))}function Mt(e,t,i){return e.getValue()}function Lt(e,t,i){return e.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(e.getValue()))}function St(e,t,i){var s=parseFloat(e.getValue()),r="",o,a,l,h,d,u=t.decimal||".",c=t.thousand||",",f=t.negativeSign||"-",p=t.symbol||"",m=!!t.symbolAfter,b=typeof t.precision<"u"?t.precision:2;if(Number.isNaN(s))return this.emptyToSpace(this.sanitizeHTML(e.getValue()));if(s<0)s=Math.abs(s),r=f;if(o=b!==!1?s.toFixed(b):s,o=String(o).split("."),a=o[0],l=o.length>1?u+o[1]:"",t.thousand!==!1){h=/(\d+)(\d{3})/;while(h.test(a))a=a.replace(h,"$1"+c+"$2")}if(d=a+l,r===!0)return d="("+d+")",m?d+p:p+d;else return m?r+d+p:r+p+d}function Dt(e,t,i){var s=e.getValue(),r=t.urlPrefix||"",o=t.download,a=s,l=document.createElement("a"),h;function d(u,c){var f=u.shift(),p=c[f];if(u.length&&typeof p==="object")return d(u,p);return p}if(t.labelField)h=e.getData(),a=d(t.labelField.split(this.table.options.nestedFieldSeparator),h);if(t.label)switch(typeof t.label){case"string":a=t.label;break;case"function":a=t.label(e);break}if(a){if(t.urlField)h=e.getData(),s=M.retrieveNestedData(this.table.options.nestedFieldSeparator,t.urlField,h);if(t.url)switch(typeof t.url){case"string":s=t.url;break;case"function":s=t.url(e);break}if(l.setAttribute("href",r+s),t.target)l.setAttribute("target",t.target);if(t.download){if(typeof o=="function")o=o(e);else o=o===!0?"":o;l.setAttribute("download",o)}return l.innerHTML=this.emptyToSpace(this.sanitizeHTML(a)),l}else return" "}function zt(e,t,i){var s=document.createElement("img"),r=e.getValue();if(t.urlPrefix)r=t.urlPrefix+e.getValue();if(t.urlSuffix)r=r+t.urlSuffix;switch(s.setAttribute("src",r),typeof t.height){case"number":s.style.height=t.height+"px";break;case"string":s.style.height=t.height;break}switch(typeof t.width){case"number":s.style.width=t.width+"px";break;case"string":s.style.width=t.width;break}return s.addEventListener("load",function(){e.getRow().normalizeHeight()}),s}function Ht(e,t,i){var s=e.getValue(),r=e.getElement(),{allowEmpty:o,allowTruthy:a}=t,l=Object.keys(t).includes("trueValue"),h=typeof t.tickElement<"u"?t.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path class="tabulator-tick" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',d=typeof t.crossElement<"u"?t.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path class="tabulator-cross" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';if(l&&s===t.trueValue||!l&&(a&&s||(s===!0||s==="true"||s==="True"||s===1||s==="1")))return r.setAttribute("aria-checked",!0),h||"";else if(o&&(s==="null"||s===""||s===null||typeof s>"u"))return r.setAttribute("aria-checked","mixed"),"";else return r.setAttribute("aria-checked",!1),d||""}function Ft(e,t,i){var s=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),r=t.inputFormat||"yyyy-MM-dd HH:mm:ss",o=t.outputFormat||"dd/MM/yyyy HH:mm:ss",a=typeof t.invalidPlaceholder<"u"?t.invalidPlaceholder:"",l=e.getValue();if(typeof s<"u"){var h;if(s.isDateTime(l))h=l;else if(r==="x")h=s.fromMillis(l);else if(r==="iso")h=s.fromISO(String(l));else h=s.fromFormat(String(l),r);if(h.isValid){if(t.timezone)h=h.setZone(t.timezone);return h.toFormat(o)}else if(a===!0||!l)return l;else if(typeof a==="function")return a(l);else return a}else console.error("Format Error - 'datetime' formatter is dependant on luxon.js")}function At(e,t,i){var s=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),r=t.inputFormat||"yyyy-MM-dd HH:mm:ss",o=typeof t.invalidPlaceholder<"u"?t.invalidPlaceholder:"",a=typeof t.suffix<"u"?t.suffix:!1,l=typeof t.unit<"u"?t.unit:"days",h=typeof t.humanize<"u"?t.humanize:!1,d=typeof t.date<"u"?t.date:s.now(),u=e.getValue();if(typeof s<"u"){var c;if(s.isDateTime(u))c=u;else if(r==="x")c=s.fromMillis(u);else if(r==="iso")c=s.fromISO(String(u));else c=s.fromFormat(String(u),r);if(c.isValid)if(h)return c.diff(d,l).toHuman()+(a?" "+a:"");else return parseInt(c.diff(d,l)[l])+(a?" "+a:"");else if(o===!0)return u;else if(typeof o==="function")return o(u);else return o}else console.error("Format Error - 'datetimediff' formatter is dependant on luxon.js")}function _t(e,t,i){var s=e.getValue();if(typeof t[s]>"u")return console.warn("Missing display value for "+s),s;return t[s]}function Ot(e,t,i){var s=e.getValue(),r=e.getElement(),o=t&&t.stars?t.stars:5,a=document.createElement("span"),l=document.createElementNS("http://www.w3.org/2000/svg","svg"),h='<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',d='<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';a.style.verticalAlign="middle",l.setAttribute("width","14"),l.setAttribute("height","14"),l.setAttribute("viewBox","0 0 512 512"),l.setAttribute("xml:space","preserve"),l.style.padding="0 1px",s=s&&!Number.isNaN(s)?parseInt(s):0,s=Math.max(0,Math.min(s,o));for(var u=1;u<=o;u++){var c=l.cloneNode(!0);c.innerHTML=u<=s?h:d,a.appendChild(c)}return r.style.whiteSpace="nowrap",r.style.overflow="hidden",r.style.textOverflow="ellipsis",r.setAttribute("aria-label",s),a}function Pt(e,t,i){var s=this.sanitizeHTML(e.getValue())||0,r=document.createElement("span"),o=t&&t.max?t.max:100,a=t&&t.min?t.min:0,l=t&&typeof t.color<"u"?t.color:["red","orange","green"],h="#666666",d,u;if(Number.isNaN(s)||typeof e.getValue()>"u")return;switch(r.classList.add("tabulator-traffic-light"),u=parseFloat(s)<=o?parseFloat(s):o,u=parseFloat(u)>=a?parseFloat(u):a,d=(o-a)/100,u=Math.round((u-a)/d),typeof l){case"string":h=l;break;case"function":h=l(s);break;case"object":if(Array.isArray(l)){var c=100/l.length,f=Math.floor(u/c);f=Math.min(f,l.length-1),f=Math.max(f,0),h=l[f];break}}return r.style.backgroundColor=h,r}function Bt(e,t={},i){var s=this.sanitizeHTML(e.getValue())||0,r=e.getElement(),o=t.max?t.max:100,a=t.min?t.min:0,l=t.legendAlign?t.legendAlign:"center",h,d,u,c,f;switch(d=parseFloat(s)<=o?parseFloat(s):o,d=parseFloat(d)>=a?parseFloat(d):a,h=(o-a)/100,d=Math.round((d-a)/h),typeof t.color){case"string":u=t.color;break;case"function":u=t.color(s);break;case"object":if(Array.isArray(t.color)){let v=100/t.color.length,w=Math.floor(d/v);w=Math.min(w,t.color.length-1),w=Math.max(w,0),u=t.color[w];break}default:u="#2DC214"}switch(typeof t.legend){case"string":c=t.legend;break;case"function":c=t.legend(s);break;case"boolean":c=s;break;default:c=!1}switch(typeof t.legendColor){case"string":f=t.legendColor;break;case"function":f=t.legendColor(s);break;case"object":if(Array.isArray(t.legendColor)){let v=100/t.legendColor.length,w=Math.floor(d/v);w=Math.min(w,t.legendColor.length-1),w=Math.max(w,0),f=t.legendColor[w]}break;default:f="#000"}r.style.minWidth="30px",r.style.position="relative",r.setAttribute("aria-label",d);var p=document.createElement("div");p.style.display="inline-block",p.style.width=d+"%",p.style.backgroundColor=u,p.style.height="100%",p.setAttribute("data-max",o),p.setAttribute("data-min",a);var m=document.createElement("div");if(m.style.position="relative",m.style.width="100%",m.style.height="100%",c){var b=document.createElement("div");b.style.position="absolute",b.style.top=0,b.style.left=0,b.style.textAlign=l,b.style.width="100%",b.style.color=f,b.innerHTML=c}return i(function(){if(!(e instanceof oe)){var v=document.createElement("div");v.style.position="absolute",v.style.top="4px",v.style.bottom="4px",v.style.left="4px",v.style.right="4px",r.appendChild(v),r=v}if(r.appendChild(m),m.appendChild(p),c)m.appendChild(b)}),""}function Vt(e,t,i){return e.getElement().style.backgroundColor=this.sanitizeHTML(e.getValue()),""}function Nt(e,t,i){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'}function It(e,t,i){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'}function Wt(e,t,i){var s=e.getValue(),r=t.size||15,o=r+"px",a,l,h=t.hasOwnProperty("onValue")?t.onValue:!0,d=t.hasOwnProperty("offValue")?t.offValue:!1,u=t.onTruthy?s:s===h;if(a=document.createElement("div"),a.classList.add("tabulator-toggle"),u){if(a.classList.add("tabulator-toggle-on"),a.style.flexDirection="row-reverse",t.onColor)a.style.background=t.onColor}else if(t.offColor)a.style.background=t.offColor;if(a.style.width=2.5*r+"px",a.style.borderRadius=o,t.clickable)a.addEventListener("click",(c)=>{e.setValue(u?d:h)});return l=document.createElement("div"),l.classList.add("tabulator-toggle-switch"),l.style.height=o,l.style.width=o,l.style.borderRadius=o,a.appendChild(l),a}function Gt(e,t,i){var s=document.createElement("span"),r=e.getRow(),o=e.getTable();return r.watchPosition((a)=>{if(t.relativeToPage)a+=o.modules.page.getPageSize()*(o.modules.page.getPage()-1);s.innerText=a}),s}function jt(e,t,i){return e.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"}function Ut(e,t,i){var s,r,o;function a(l){var h=l.getValue(),d="plaintext";switch(typeof h){case"boolean":d="tickCross";break;case"string":if(h.includes(`
|
|
6
|
-
`))d="textarea";break}return d}if(s=t.formatterLookup?t.formatterLookup(e):a(e),t.paramsLookup)o=typeof t.paramsLookup==="function"?t.paramsLookup(s,e):t.paramsLookup[s];return r=this.table.modules.format.lookupFormatter(s),r.call(this,e,o||{},i)}function $t(e,t,i){var s=t.delimiter||",",r=e.getValue(),o=this.table,a;if(t.valueMap)if(typeof t.valueMap==="string")a=function(l){return l.map((h)=>M.retrieveNestedData(o.options.nestedFieldSeparator,t.valueMap,h))};else a=t.valueMap;if(Array.isArray(r)){if(a)r=a(r);return r.join(s)}else return r}function Kt(e,t,i){var s=t.indent||"\t",r=typeof t.multiline>"u"?!0:t.multiline,o=t.replacer||null,a=e.getValue();if(r)e.getElement().style.whiteSpace="pre-wrap";return JSON.stringify(a,o,s)}var Xt={plaintext:kt,html:Mt,textarea:Lt,money:St,link:Dt,image:zt,tickCross:Ht,datetime:Ft,datetimediff:At,lookup:_t,star:Ot,traffic:Pt,progress:Bt,color:Vt,buttonTick:Nt,buttonCross:It,toggle:Wt,rownum:Gt,handle:jt,adaptable:Ut,array:$t,json:Kt};class I extends F{static moduleName="format";static formatters=Xt;constructor(e){super(e);this.registerColumnOption("formatter"),this.registerColumnOption("formatterParams"),this.registerColumnOption("formatterPrint"),this.registerColumnOption("formatterPrintParams"),this.registerColumnOption("formatterClipboard"),this.registerColumnOption("formatterClipboardParams"),this.registerColumnOption("formatterHtmlOutput"),this.registerColumnOption("formatterHtmlOutputParams"),this.registerColumnOption("titleFormatter"),this.registerColumnOption("titleFormatterParams")}initialize(){this.subscribe("cell-format",this.formatValue.bind(this)),this.subscribe("cell-rendered",this.cellRendered.bind(this)),this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("column-format",this.formatHeader.bind(this))}initializeColumn(e){if(e.modules.format=this.lookupTypeFormatter(e,""),typeof e.definition.formatterPrint<"u")e.modules.format.print=this.lookupTypeFormatter(e,"Print");if(typeof e.definition.formatterClipboard<"u")e.modules.format.clipboard=this.lookupTypeFormatter(e,"Clipboard");if(typeof e.definition.formatterHtmlOutput<"u")e.modules.format.htmlOutput=this.lookupTypeFormatter(e,"HtmlOutput")}lookupTypeFormatter(e,t){var i={params:e.definition["formatter"+t+"Params"]||{}},s=e.definition["formatter"+t];return i.formatter=this.lookupFormatter(s),i}lookupFormatter(e){var t;switch(typeof e){case"string":if(I.formatters[e])t=I.formatters[e];else console.warn("Formatter Error - No such formatter found: ",e),t=I.formatters.plaintext;break;case"function":t=e;break;default:t=I.formatters.plaintext;break}return t}cellRendered(e){if(e.modules.format&&e.modules.format.renderedCallback&&!e.modules.format.rendered)e.modules.format.renderedCallback(),e.modules.format.rendered=!0}formatHeader(e,t,i){var s,r,o,a;if(e.definition.titleFormatter)return s=this.lookupFormatter(e.definition.titleFormatter),o=(l)=>{e.titleFormatterRendered=l},a={getValue:function(){return t},getElement:function(){return i},getType:function(){return"header"},getColumn:function(){return e.getComponent()},getTable:()=>this.table},r=e.definition.titleFormatterParams||{},r=typeof r==="function"?r():r,s.call(this,a,r,o);else return t}formatValue(e){var t=e.getComponent(),i=typeof e.column.modules.format.params==="function"?e.column.modules.format.params(t):e.column.modules.format.params;function s(r){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=r,e.modules.format.rendered=!1}return e.column.modules.format.formatter.call(this,t,i,s)}formatExportValue(e,t){var i=e.column.modules.format[t],s;if(i){let r=function(o){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=o,e.modules.format.rendered=!1};return s=typeof i.params==="function"?i.params(e.getComponent()):i.params,i.formatter.call(this,e.getComponent(),s,r)}else return this.formatValue(e)}sanitizeHTML(e){if(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(e).replace(/[&<>"'`=/]/g,function(i){return t[i]})}else return e}emptyToSpace(e){return e===null||typeof e>"u"||e===""?" ":e}}class he extends F{static moduleName="frozenColumns";constructor(e){super(e);this.leftColumns=[],this.rightColumns=[],this.initializationMode="left",this.active=!1,this.blocked=!0,this.registerColumnOption("frozen")}reset(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.active=!1}initialize(){this.subscribe("cell-layout",this.layoutCell.bind(this)),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-width",this.layout.bind(this)),this.subscribe("row-layout-after",this.layoutRow.bind(this)),this.subscribe("table-layout",this.layout.bind(this)),this.subscribe("columns-loading",this.reset.bind(this)),this.subscribe("column-add",this.reinitializeColumns.bind(this)),this.subscribe("column-deleted",this.reinitializeColumns.bind(this)),this.subscribe("column-hide",this.reinitializeColumns.bind(this)),this.subscribe("column-show",this.reinitializeColumns.bind(this)),this.subscribe("columns-loaded",this.reinitializeColumns.bind(this)),this.subscribe("table-redraw",this.layout.bind(this)),this.subscribe("layout-refreshing",this.blockLayout.bind(this)),this.subscribe("layout-refreshed",this.unblockLayout.bind(this)),this.subscribe("scrollbar-vertical",this.adjustForScrollbar.bind(this))}blockLayout(){this.blocked=!0}unblockLayout(){this.blocked=!1}layoutCell(e){this.layoutElement(e.element,e.column)}reinitializeColumns(){this.reset(),this.table.columnManager.columnsByIndex.forEach((e)=>{this.initializeColumn(e)}),this.layout()}initializeColumn(e){var t={margin:0,edge:!1};if(!e.isGroup)if(this.frozenCheck(e)){if(t.position=this.initializationMode,this.initializationMode=="left")this.leftColumns.push(e);else this.rightColumns.unshift(e);this.active=!0,e.modules.frozen=t}else this.initializationMode="right"}frozenCheck(e){if(e.parent.isGroup&&e.definition.frozen)console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups");if(e.parent.isGroup)return this.frozenCheck(e.parent);else return e.definition.frozen}layoutCalcRows(){if(this.table.modExists("columnCalcs")){if(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow)this.layoutRow(this.table.modules.columnCalcs.topRow);if(this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow)this.layoutRow(this.table.modules.columnCalcs.botRow);if(this.table.modExists("groupRows"))this.layoutGroupCalcs(this.table.modules.groupRows.getGroups())}}layoutGroupCalcs(e){e.forEach((t)=>{if(t.calcs.top)this.layoutRow(t.calcs.top);if(t.calcs.bottom)this.layoutRow(t.calcs.bottom);if(t.groupList&&t.groupList.length)this.layoutGroupCalcs(t.groupList)})}layoutColumnPosition(e){var t=[],i=0,s=0;this.leftColumns.forEach((r,o)=>{if(r.modules.frozen.marginValue=i,r.modules.frozen.margin=r.modules.frozen.marginValue+"px",r.visible)i+=r.getWidth();if(o==this.leftColumns.length-1)r.modules.frozen.edge=!0;else r.modules.frozen.edge=!1;if(r.parent.isGroup){var a=this.getColGroupParentElement(r);if(!t.includes(a))this.layoutElement(a,r),t.push(a);a.classList.toggle("tabulator-frozen-left",r.modules.frozen.edge&&r.modules.frozen.position==="left"),a.classList.toggle("tabulator-frozen-right",r.modules.frozen.edge&&r.modules.frozen.position==="right")}else this.layoutElement(r.getElement(),r);if(e)r.cells.forEach((l)=>{this.layoutElement(l.getElement(!0),r)})}),this.rightColumns.forEach((r,o)=>{if(r.modules.frozen.marginValue=s,r.modules.frozen.margin=r.modules.frozen.marginValue+"px",r.visible)s+=r.getWidth();if(o==this.rightColumns.length-1)r.modules.frozen.edge=!0;else r.modules.frozen.edge=!1;if(r.parent.isGroup)this.layoutElement(this.getColGroupParentElement(r),r);else this.layoutElement(r.getElement(),r);if(e)r.cells.forEach((a)=>{this.layoutElement(a.getElement(!0),r)})})}getColGroupParentElement(e){return e.parent.isGroup?this.getColGroupParentElement(e.parent):e.getElement()}layout(){if(this.active&&!this.blocked)this.layoutColumnPosition(),this.reinitializeRows(),this.layoutCalcRows()}reinitializeRows(){var e=this.table.rowManager.getVisibleRows(!0),t=this.table.rowManager.getRows().filter((i)=>!e.includes(i));t.forEach((i)=>{i.deinitialize()}),e.forEach((i)=>{if(i.type==="row")this.layoutRow(i)})}layoutRow(e){if(this.table.options.layout==="fitDataFill"&&this.rightColumns.length)this.table.rowManager.getTableElement().style.minWidth="calc(100% - "+this.rightMargin+")";this.leftColumns.forEach((t)=>{var i=e.getCell(t);if(i)this.layoutElement(i.getElement(!0),t)}),this.rightColumns.forEach((t)=>{var i=e.getCell(t);if(i)this.layoutElement(i.getElement(!0),t)})}layoutElement(e,t){var i;if(t.modules.frozen&&e){if(e.style.position="sticky",this.table.rtl)i=t.modules.frozen.position==="left"?"right":"left";else i=t.modules.frozen.position;e.style[i]=t.modules.frozen.margin,e.classList.add("tabulator-frozen"),e.classList.toggle("tabulator-frozen-left",t.modules.frozen.edge&&t.modules.frozen.position==="left"),e.classList.toggle("tabulator-frozen-right",t.modules.frozen.edge&&t.modules.frozen.position==="right")}}adjustForScrollbar(e){if(this.rightColumns.length)this.table.columnManager.getContentsElement().style.width="calc(100% - "+e+"px)"}getFrozenColumns(){return this.leftColumns.concat(this.rightColumns)}_calcSpace(e,t){var i=0;for(let s=0;s<t;s++)if(e[s].visible)i+=e[s].getWidth();return i}}class de extends F{static moduleName="interaction";constructor(e){super(e);this.eventMap={rowClick:"row-click",rowDblClick:"row-dblclick",rowContext:"row-contextmenu",rowMouseEnter:"row-mouseenter",rowMouseLeave:"row-mouseleave",rowMouseOver:"row-mouseover",rowMouseOut:"row-mouseout",rowMouseMove:"row-mousemove",rowMouseDown:"row-mousedown",rowMouseUp:"row-mouseup",rowTap:"row",rowDblTap:"row",rowTapHold:"row",cellClick:"cell-click",cellDblClick:"cell-dblclick",cellContext:"cell-contextmenu",cellMouseEnter:"cell-mouseenter",cellMouseLeave:"cell-mouseleave",cellMouseOver:"cell-mouseover",cellMouseOut:"cell-mouseout",cellMouseMove:"cell-mousemove",cellMouseDown:"cell-mousedown",cellMouseUp:"cell-mouseup",cellTap:"cell",cellDblTap:"cell",cellTapHold:"cell",headerClick:"column-click",headerDblClick:"column-dblclick",headerContext:"column-contextmenu",headerMouseEnter:"column-mouseenter",headerMouseLeave:"column-mouseleave",headerMouseOver:"column-mouseover",headerMouseOut:"column-mouseout",headerMouseMove:"column-mousemove",headerMouseDown:"column-mousedown",headerMouseUp:"column-mouseup",headerTap:"column",headerDblTap:"column",headerTapHold:"column",groupClick:"group-click",groupDblClick:"group-dblclick",groupContext:"group-contextmenu",groupMouseEnter:"group-mouseenter",groupMouseLeave:"group-mouseleave",groupMouseOver:"group-mouseover",groupMouseOut:"group-mouseout",groupMouseMove:"group-mousemove",groupMouseDown:"group-mousedown",groupMouseUp:"group-mouseup",groupTap:"group",groupDblTap:"group",groupTapHold:"group"},this.subscribers={},this.touchSubscribers={},this.columnSubscribers={},this.touchWatchers={row:{tap:null,tapDbl:null,tapHold:null},cell:{tap:null,tapDbl:null,tapHold:null},column:{tap:null,tapDbl:null,tapHold:null},group:{tap:null,tapDbl:null,tapHold:null}},this.registerColumnOption("headerClick"),this.registerColumnOption("headerDblClick"),this.registerColumnOption("headerContext"),this.registerColumnOption("headerMouseEnter"),this.registerColumnOption("headerMouseLeave"),this.registerColumnOption("headerMouseOver"),this.registerColumnOption("headerMouseOut"),this.registerColumnOption("headerMouseMove"),this.registerColumnOption("headerMouseDown"),this.registerColumnOption("headerMouseUp"),this.registerColumnOption("headerTap"),this.registerColumnOption("headerDblTap"),this.registerColumnOption("headerTapHold"),this.registerColumnOption("cellClick"),this.registerColumnOption("cellDblClick"),this.registerColumnOption("cellContext"),this.registerColumnOption("cellMouseEnter"),this.registerColumnOption("cellMouseLeave"),this.registerColumnOption("cellMouseOver"),this.registerColumnOption("cellMouseOut"),this.registerColumnOption("cellMouseMove"),this.registerColumnOption("cellMouseDown"),this.registerColumnOption("cellMouseUp"),this.registerColumnOption("cellTap"),this.registerColumnOption("cellDblTap"),this.registerColumnOption("cellTapHold")}initialize(){this.initializeExternalEvents(),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("cell-dblclick",this.cellContentsSelectionFixer.bind(this)),this.subscribe("scroll-horizontal",this.clearTouchWatchers.bind(this)),this.subscribe("scroll-vertical",this.clearTouchWatchers.bind(this))}clearTouchWatchers(){var e=Object.values(this.touchWatchers);e.forEach((t)=>{clearTimeout(t.tapDbl),clearTimeout(t.tapHold);for(let i in t)t[i]=null})}cellContentsSelectionFixer(e,t){var i;if(this.table.modExists("edit")){if(this.table.modules.edit.currentCell===t)return}e.preventDefault();try{if(document.selection)i=document.body.createTextRange(),i.moveToElementText(t.getElement()),i.select();else if(window.getSelection)i=document.createRange(),i.selectNode(t.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(i)}catch(s){}}initializeExternalEvents(){for(let e in this.eventMap)this.subscriptionChangeExternal(e,this.subscriptionChanged.bind(this,e))}subscriptionChanged(e,t){if(t){if(!this.subscribers[e])if(this.eventMap[e].includes("-"))this.subscribers[e]=this.handle.bind(this,e),this.subscribe(this.eventMap[e],this.subscribers[e]);else this.subscribeTouchEvents(e)}else if(this.eventMap[e].includes("-")){if(this.subscribers[e]&&!this.columnSubscribers[e]&&!this.subscribedExternal(e))this.unsubscribe(this.eventMap[e],this.subscribers[e]),delete this.subscribers[e]}else this.unsubscribeTouchEvents(e)}subscribeTouchEvents(e){var t=this.eventMap[e];if(!this.touchSubscribers[t+"-touchstart"])this.touchSubscribers[t+"-touchstart"]=this.handleTouch.bind(this,t,"start"),this.touchSubscribers[t+"-touchend"]=this.handleTouch.bind(this,t,"end"),this.subscribe(t+"-touchstart",this.touchSubscribers[t+"-touchstart"]),this.subscribe(t+"-touchend",this.touchSubscribers[t+"-touchend"]);this.subscribers[e]=!0}unsubscribeTouchEvents(e){var t=!0,i=this.eventMap[e];if(this.subscribers[e]&&!this.subscribedExternal(e)){delete this.subscribers[e];for(let s in this.eventMap)if(this.eventMap[s]===i){if(this.subscribers[s])t=!1}if(t)this.unsubscribe(i+"-touchstart",this.touchSubscribers[i+"-touchstart"]),this.unsubscribe(i+"-touchend",this.touchSubscribers[i+"-touchend"]),delete this.touchSubscribers[i+"-touchstart"],delete this.touchSubscribers[i+"-touchend"]}}initializeColumn(e){var t=e.definition;for(let i in this.eventMap)if(t[i]){if(this.subscriptionChanged(i,!0),!this.columnSubscribers[i])this.columnSubscribers[i]=[];this.columnSubscribers[i].push(e)}}handle(e,t,i){this.dispatchEvent(e,t,i)}handleTouch(e,t,i,s){var r=this.touchWatchers[e];if(e==="column")e="header";switch(t){case"start":r.tap=!0,clearTimeout(r.tapHold),r.tapHold=setTimeout(()=>{clearTimeout(r.tapHold),r.tapHold=null,r.tap=null,clearTimeout(r.tapDbl),r.tapDbl=null,this.dispatchEvent(e+"TapHold",i,s)},1000);break;case"end":if(r.tap)r.tap=null,this.dispatchEvent(e+"Tap",i,s);if(r.tapDbl)clearTimeout(r.tapDbl),r.tapDbl=null,this.dispatchEvent(e+"DblTap",i,s);else r.tapDbl=setTimeout(()=>{clearTimeout(r.tapDbl),r.tapDbl=null},300);clearTimeout(r.tapHold),r.tapHold=null;break}}dispatchEvent(e,t,i){var s=i.getComponent(),r;if(this.columnSubscribers[e]){if(i instanceof ee)r=i.column.definition[e];else if(i instanceof V)r=i.definition[e];if(r)r(t,s)}this.dispatchExternal(e,t,s)}}var Jt={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,navLeft:37,navRight:39,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35},qt={keyBlock:function(e){e.stopPropagation(),e.preventDefault()},scrollPageUp:function(e){var t=this.table.rowManager,i=t.scrollTop-t.element.clientHeight;if(e.preventDefault(),t.displayRowsCount)if(i>=0)t.element.scrollTop=i;else t.scrollToRow(t.getDisplayRows()[0]);this.table.element.focus()},scrollPageDown:function(e){var t=this.table.rowManager,i=t.scrollTop+t.element.clientHeight,s=t.element.scrollHeight;if(e.preventDefault(),t.displayRowsCount)if(i<=s)t.element.scrollTop=i;else t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1]);this.table.element.focus()},scrollToStart:function(e){var t=this.table.rowManager;if(e.preventDefault(),t.displayRowsCount)t.scrollToRow(t.getDisplayRows()[0]);this.table.element.focus()},scrollToEnd:function(e){var t=this.table.rowManager;if(e.preventDefault(),t.displayRowsCount)t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1]);this.table.element.focus()},navPrev:function(e){this.dispatch("keybinding-nav-prev",e)},navNext:function(e){this.dispatch("keybinding-nav-next",e)},navLeft:function(e){this.dispatch("keybinding-nav-left",e)},navRight:function(e){this.dispatch("keybinding-nav-right",e)},navUp:function(e){this.dispatch("keybinding-nav-up",e)},navDown:function(e){this.dispatch("keybinding-nav-down",e)}};class U extends F{static moduleName="keybindings";static bindings=Jt;static actions=qt;constructor(e){super(e);this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1,this.registerTableOption("keybindings",{}),this.registerTableOption("tabEndNewRow",!1)}initialize(){var e=this.table.options.keybindings,t={};if(this.watchKeys={},this.pressedKeys=[],e!==!1)Object.assign(t,U.bindings),Object.assign(t,e),this.mapBindings(t),this.bindEvents();this.subscribe("table-destroy",this.clearBindings.bind(this))}mapBindings(e){for(let t in e)if(U.actions[t]){if(e[t]){if(typeof e[t]!=="object")e[t]=[e[t]];e[t].forEach((i)=>{var s=Array.isArray(i)?i:[i];s.forEach((r)=>{this.mapBinding(t,r)})})}}else console.warn("Key Binding Error - no such action:",t)}getKeyCode(e){if(e.key.length===1)return e.key.toUpperCase().charCodeAt(0);var t={Enter:13,Escape:27,Tab:9,Backspace:8,Delete:46,ArrowUp:38,ArrowDown:40,ArrowLeft:37,ArrowRight:39,Home:36,End:35,PageUp:33,PageDown:34,Insert:45};return t[e.key]||e.keyCode||0}mapBinding(e,t){var i={action:U.actions[e],keys:[],ctrl:!1,shift:!1,meta:!1},s=t.toString().toLowerCase().split(" ").join("").split("+");s.forEach((r)=>{switch(r){case"ctrl":i.ctrl=!0;break;case"shift":i.shift=!0;break;case"meta":i.meta=!0;break;default:if(r=isNaN(r)?r.toUpperCase().charCodeAt(0):parseInt(r),i.keys.push(r),!this.watchKeys[r])this.watchKeys[r]=[];this.watchKeys[r].push(i)}})}bindEvents(){var e=this;this.keyupBinding=function(t){var i=e.getKeyCode(t),s=e.watchKeys[i];if(s)e.pressedKeys.push(i),s.forEach(function(r){e.checkBinding(t,r)})},this.keydownBinding=function(t){var i=e.getKeyCode(t),s=e.watchKeys[i];if(s){var r=e.pressedKeys.indexOf(i);if(r>-1)e.pressedKeys.splice(r,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)}clearBindings(){if(this.keyupBinding)this.table.element.removeEventListener("keydown",this.keyupBinding);if(this.keydownBinding)this.table.element.removeEventListener("keyup",this.keydownBinding)}checkBinding(e,t){var i=!0;if(e.ctrlKey==t.ctrl&&e.shiftKey==t.shift&&e.metaKey==t.meta){if(t.keys.forEach((s)=>{var r=this.pressedKeys.indexOf(s);if(r==-1)i=!1}),i)t.action.call(this,e);return!0}return!1}}class ue extends F{static moduleName="moveColumn";constructor(e){super(e);this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.registerTableOption("movableColumns",!1)}createPlaceholderElement(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.classList.add("tabulator-col-placeholder"),e}initialize(){if(this.table.options.movableColumns)this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("alert-show",this.abortMove.bind(this))}abortMove(){clearTimeout(this.checkTimeout)}initializeColumn(e){var t=this,i={},s;if(!e.modules.frozen&&!e.isGroup&&!e.isRowHeader)s=e.getElement(),i.mousemove=function(r){if(e.parent===t.moving.parent){if((t.touchMove?r.touches[0].pageX:r.pageX)-M.elOffset(s).left+t.table.columnManager.contentsElement.scrollLeft>e.getWidth()/2){if(t.toCol!==e||!t.toColAfter)s.parentNode.insertBefore(t.placeholderElement,s.nextSibling),t.moveColumn(e,!0)}else if(t.toCol!==e||t.toColAfter)s.parentNode.insertBefore(t.placeholderElement,s),t.moveColumn(e,!1)}}.bind(t),s.addEventListener("mousedown",function(r){if(t.touchMove=!1,r.which===1)t.checkTimeout=setTimeout(function(){t.startMove(r,e)},t.checkPeriod)}),s.addEventListener("mouseup",function(r){if(r.which===1){if(t.checkTimeout)clearTimeout(t.checkTimeout)}}),t.bindTouchEvents(e);e.modules.moveColumn=i}bindTouchEvents(e){var t=e.getElement(),i=!1,s,r,o,a,l,h;t.addEventListener("touchstart",(d)=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,s=e.nextColumn(),o=s?s.getWidth()/2:0,r=e.prevColumn(),a=r?r.getWidth()/2:0,l=0,h=0,i=!1,this.startMove(d,e)},this.checkPeriod)},{passive:!0}),t.addEventListener("touchmove",(d)=>{var u,c;if(this.moving){if(this.moveHover(d),!i)i=d.touches[0].pageX;if(u=d.touches[0].pageX-i,u>0){if(s&&u-l>o){if(c=s,c!==e)i=d.touches[0].pageX,c.getElement().parentNode.insertBefore(this.placeholderElement,c.getElement().nextSibling),this.moveColumn(c,!0)}}else if(r&&-u-h>a){if(c=r,c!==e)i=d.touches[0].pageX,c.getElement().parentNode.insertBefore(this.placeholderElement,c.getElement()),this.moveColumn(c,!1)}if(c)s=c.nextColumn(),l=o,o=s?s.getWidth()/2:0,r=c.prevColumn(),h=a,a=r?r.getWidth()/2:0}},{passive:!0}),t.addEventListener("touchend",(d)=>{if(this.checkTimeout)clearTimeout(this.checkTimeout);if(this.moving)this.endMove(d)})}startMove(e,t){var i=t.getElement(),s=this.table.columnManager.getContentsElement(),r=this.table.columnManager.getHeadersElement();if(this.table.modules.selectRange&&this.table.modules.selectRange.columnSelection){if(this.table.modules.selectRange.mousedown&&this.table.modules.selectRange.selecting==="column")return}if(this.moving=t,this.startX=(this.touchMove?e.touches[0].pageX:e.pageX)-M.elOffset(i).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",i.parentNode.insertBefore(this.placeholderElement,i),i.parentNode.removeChild(i),this.hoverElement=i.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),s.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom=s.clientHeight-r.offsetHeight+"px",!this.touchMove)this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove);this.moveHover(e),this.dispatch("column-moving",e,this.moving)}_bindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(e){if(e.modules.moveColumn.mousemove)e.getElement().addEventListener("mousemove",e.modules.moveColumn.mousemove)})}_unbindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(e){if(e.modules.moveColumn.mousemove)e.getElement().removeEventListener("mousemove",e.modules.moveColumn.mousemove)})}moveColumn(e,t){var i=this.moving.getCells();if(this.toCol=e,this.toColAfter=t,t)e.getCells().forEach(function(s,r){var o=s.getElement(!0);if(o.parentNode&&i[r])o.parentNode.insertBefore(i[r].getElement(),o.nextSibling)});else e.getCells().forEach(function(s,r){var o=s.getElement(!0);if(o.parentNode&&i[r])o.parentNode.insertBefore(i[r].getElement(),o)})}endMove(e){if(e.which===1||this.touchMove){if(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol)this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter);if(this.moving=!1,this.toCol=!1,this.toColAfter=!1,!this.touchMove)document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)}}moveHover(e){var t=this.table.columnManager.getContentsElement(),i=t.scrollLeft,s=(this.touchMove?e.touches[0].pageX:e.pageX)-M.elOffset(t).left+i,r;if(this.hoverElement.style.left=s-this.startX+"px",s-i<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{r=Math.max(0,i-5),this.table.rowManager.getElement().scrollLeft=r,this.autoScrollTimeout=!1},1)}if(i+t.clientWidth-s<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{r=Math.min(t.clientWidth,i+5),this.table.rowManager.getElement().scrollLeft=r,this.autoScrollTimeout=!1},1)}}}class ce extends F{static moduleName="resizeColumns";constructor(e){super(e);this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.latestX=!1,this.handle=null,this.initialNextColumn=null,this.nextColumn=null,this.initialized=!1,this.registerColumnOption("resizable",!0),this.registerTableOption("resizableColumnFit",!1),this.registerTableOption("resizableColumnGuide",!1)}initialize(){this.subscribe("column-rendered",this.layoutColumnHeader.bind(this))}initializeEventWatchers(){if(!this.initialized)this.subscribe("cell-rendered",this.layoutCellHandles.bind(this)),this.subscribe("cell-delete",this.deInitializeComponent.bind(this)),this.subscribe("cell-height",this.resizeHandle.bind(this)),this.subscribe("column-moved",this.columnLayoutUpdated.bind(this)),this.subscribe("column-hide",this.deInitializeColumn.bind(this)),this.subscribe("column-show",this.columnLayoutUpdated.bind(this)),this.subscribe("column-width",this.columnWidthUpdated.bind(this)),this.subscribe("column-delete",this.deInitializeComponent.bind(this)),this.subscribe("column-height",this.resizeHandle.bind(this)),this.initialized=!0}layoutCellHandles(e){if(e.row.type==="row")this.deInitializeComponent(e),this.initializeColumn("cell",e,e.column,e.element)}layoutColumnHeader(e){if(e.definition.resizable)this.initializeEventWatchers(),this.deInitializeComponent(e),this.initializeColumn("header",e,e,e.element)}columnLayoutUpdated(e){var t=e.prevColumn();if(this.reinitializeColumn(e),t)this.reinitializeColumn(t)}columnWidthUpdated(e){if(e.modules.frozen){if(this.table.modules.frozenColumns.leftColumns.includes(e))this.table.modules.frozenColumns.leftColumns.forEach((t)=>{this.reinitializeColumn(t)});else if(this.table.modules.frozenColumns.rightColumns.includes(e))this.table.modules.frozenColumns.rightColumns.forEach((t)=>{this.reinitializeColumn(t)})}}frozenColumnOffset(e){var t=!1;if(e.modules.frozen){if(t=e.modules.frozen.marginValue,e.modules.frozen.position==="left")t+=e.getWidth()-3;else if(t)t-=3}return t!==!1?t+"px":!1}reinitializeColumn(e){var t=this.frozenColumnOffset(e);if(e.cells.forEach((i)=>{if(i.modules.resize&&i.modules.resize.handleEl){if(t)i.modules.resize.handleEl.style[e.modules.frozen.position]=t,i.modules.resize.handleEl.style["z-index"]=11;i.element.after(i.modules.resize.handleEl)}}),e.modules.resize&&e.modules.resize.handleEl){if(t)e.modules.resize.handleEl.style[e.modules.frozen.position]=t;e.element.after(e.modules.resize.handleEl)}}initializeColumn(e,t,i,s){var r=this,o=!1,a=i.definition.resizable,l={},h=i.getLastColumn();if(e==="header")o=i.definition.formatter=="textarea"||i.definition.variableHeight,l={variableHeight:o};if((a===!0||a==e)&&this._checkResizability(h)){var d=document.createElement("span");d.className="tabulator-col-resize-handle",d.addEventListener("click",function(c){c.stopPropagation()});var u=function(c){r.startColumn=i,r.initialNextColumn=r.nextColumn=h.nextColumn(),r._mouseDown(c,h,d)};if(d.addEventListener("mousedown",u),d.addEventListener("touchstart",u,{passive:!0}),d.addEventListener("dblclick",(c)=>{var f=h.getWidth();if(c.stopPropagation(),h.reinitializeWidth(!0),f!==h.getWidth())r.dispatch("column-resized",h),r.dispatchExternal("columnResized",h.getComponent())}),i.modules.frozen)d.style.position="sticky",d.style[i.modules.frozen.position]=this.frozenColumnOffset(i);if(e==="cell")d.style.height=t.row.heightStyled;if(l.handleEl=d,s.parentNode&&i.visible)s.after(d)}t.modules.resize=l}deInitializeColumn(e){this.deInitializeComponent(e),e.cells.forEach((t)=>{this.deInitializeComponent(t)})}deInitializeComponent(e){var t;if(e.modules.resize){if(t=e.modules.resize.handleEl,t&&t.parentElement)t.parentElement.removeChild(t)}}resizeHandle(e,t){if(e.modules.resize&&e.modules.resize.handleEl)e.modules.resize.handleEl.style.height=t}getResizingClientX(e){if(typeof e.clientX<"u")return e.clientX;return(this.table.options.resizableColumnGuide?e.changedTouches?.[0]:e.touches?.[0])?.clientX}resize(e,t){var i=this.getResizingClientX(e);if(typeof i!=="number"||!isFinite(i)){console.warn("ResizeColumns: could not resolve pointer X from event",e);return}var s=i-this.startX,r=i-this.latestX,o,a;if(this.latestX=i,this.table.rtl)s=-s,r=-r;if(o=t.width==t.minWidth||t.width==t.maxWidth,t.setWidth(this.startWidth+s),a=t.width==t.minWidth||t.width==t.maxWidth,r<0)this.nextColumn=this.initialNextColumn;if(this.table.options.resizableColumnFit&&this.nextColumn&&!(o&&a)){let l=this.nextColumn.getWidth();if(r>0){if(l<=this.nextColumn.minWidth)this.nextColumn=this.nextColumn.nextColumn()}if(this.nextColumn)this.nextColumn.setWidth(this.nextColumn.getWidth()-r)}if(this.table.columnManager.rerenderColumns(!0),!this.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight)t.checkCellHeights()}calcGuidePosition(e,t,i){var s=typeof e.clientX>"u"?e.touches[0].clientX:e.clientX,r=i.getBoundingClientRect().x-this.table.element.getBoundingClientRect().x,o=this.table.element.getBoundingClientRect().x,a=t.element.getBoundingClientRect().left-o,l=s-this.startX,h=Math.max(r+l,a+t.minWidth);if(t.maxWidth)h=Math.min(h,a+t.maxWidth);return h}_checkResizability(e){return e.definition.resizable}_mouseDown(e,t,i){var s=this,r;if(this.dispatchExternal("columnResizing",t.getComponent()),s.table.options.resizableColumnGuide)r=document.createElement("span"),r.classList.add("tabulator-col-resize-guide"),s.table.element.appendChild(r),setTimeout(()=>{r.style.left=s.calcGuidePosition(e,t,i)+"px"});s.table.element.classList.add("tabulator-block-select");function o(l){if(s.table.options.resizableColumnGuide)r.style.left=s.calcGuidePosition(l,t,i)+"px";else s.resize(l,t)}function a(l){if(s.table.options.resizableColumnGuide)s.resize(l,t),r.remove();if(s.startColumn.modules.edit)s.startColumn.modules.edit.blocked=!1;if(s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight)t.checkCellHeights();if(document.body.removeEventListener("mouseup",a),document.body.removeEventListener("mousemove",o),i.removeEventListener("touchmove",o),i.removeEventListener("touchend",a),s.table.element.classList.remove("tabulator-block-select"),s.startWidth!==t.getWidth())s.table.columnManager.verticalAlignHeaders(),s.dispatch("column-resized",t),s.dispatchExternal("columnResized",t.getComponent())}if(e.stopPropagation(),s.startColumn.modules.edit)s.startColumn.modules.edit.blocked=!0;s.startX=typeof e.clientX>"u"?e.touches[0].clientX:e.clientX,s.latestX=s.startX,s.startWidth=t.getWidth(),document.body.addEventListener("mousemove",o),document.body.addEventListener("mouseup",a),i.addEventListener("touchmove",o,{passive:!0}),i.addEventListener("touchend",a)}}class ke{constructor(e){return this._range=e,new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._range.table.componentFunctionBinder.handle("range",t._range,i)}})}getElement(){return this._range.element}getData(){return this._range.getData()}getCells(){return this._range.getCells(!0,!0)}getModifiedCells(){return this._range.modifiedCells}getStructuredCells(){return this._range.getStructuredCells()}getRows(){return this._range.getRows().map((e)=>e.getComponent())}getColumns(){return this._range.getColumns().map((e)=>e.getComponent())}getBounds(){return this._range.getBounds()}getTopEdge(){return this._range.rect.top}getBottomEdge(){return this._range.rect.bottom}getLeftEdge(){return this._range.rect.left}getRightEdge(){return this._range.rect.right}setBounds(e,t){if(this._range.destroyedGuard("setBounds"))this._range.setBounds(e?e._cell:e,t?t._cell:t)}setStartBound(e){if(this._range.destroyedGuard("setStartBound"))this._range.setEndBound(e?e._cell:e),this._range.rangeManager.layoutElement()}setEndBound(e){if(this._range.destroyedGuard("setEndBound"))this._range.setEndBound(e?e._cell:e),this._range.rangeManager.layoutElement()}clearValues(){if(this._range.destroyedGuard("clearValues"))this._range.clearValues()}setData(e){if(this._range.destroyedGuard("setData"))this._range.setData(e)}fill(e){if(this._range.destroyedGuard("fill"))this._range.fill(e)}remove(){if(this._range.destroyedGuard("remove"))this._range.destroy(!0)}}class J{constructor(e,t,i,s){this.top=e,this.bottom=t,this.left=i,this.right=s}static zero(){return new J(0,0,0,0)}clone(){return new J(this.top,this.bottom,this.left,this.right)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}hasPoint(e,t){return e>=this.left&&e<=this.right&&t>=this.top&&t<=this.bottom}forEach(e){for(let t=this.top;t<=this.bottom;t++)for(let i=this.left;i<=this.right;i++)e(i,t)}}class fe extends H{constructor(e,t,i){super(e);if(this.rangeManager=t,this.element=null,this.initialized=!1,this.initializing={start:!1,end:!1},this.destroyed=!1,this.skipEvents=i.skipEvents||!1,this.rect=i.rect?i.rect.clone():J.zero(),this.table=e,this.modifiedCells=[],this.start={row:void 0,col:void 0},this.end={row:void 0,col:void 0},i.rect)this.start.row=i.rect.top,this.start.col=i.rect.left,this.end.row=i.rect.bottom,this.end.col=i.rect.right;else if(this.rangeManager.rowHeader)this.rect.left=1,this.rect.right=1,this.start.col=1,this.end.col=1;if(this.initElement(i.classNames),!i.rect)setTimeout(()=>{this.initBounds(i.start,i.end)})}initElement(e){if(this.element=document.createElement("div"),this.element.classList.add("tabulator-range"),e)this.element.classList.add(...e)}initBounds(e,t){if(this._updateMinMax(),e)this.setBounds(e,t||e)}setStart(e,t){if(this.start.row!==e||this.start.col!==t)this.start.row=e,this.start.col=t,this.initializing.start=!0,this._updateMinMax()}setEnd(e,t){if(this.end.row!==e||this.end.col!==t)this.end.row=e,this.end.col=t,this.initializing.end=!0,this._updateMinMax()}setRect(e){let t=this.start.row===this.rect.top?e.top:e.bottom,i=this.start.col===this.rect.left?e.left:e.right;this.setStart(t,i),this.setEnd(t===e.top?e.bottom:e.top,i===e.left?e.right:e.left)}setBounds(e,t,i){if(e)this.setStartBound(e);this.setEndBound(t||e),this.rangeManager.layoutElement(i)}setStartBound(e){var t,i;if(e.type==="column"){if(this.rangeManager.columnSelection)this.setStart(0,e.getPosition()-1)}else if(t=e.row.position-1,i=e.column.getPosition()-1,e.column===this.rangeManager.rowHeader)this.setStart(t,1);else this.setStart(t,i)}setEndBound(e){var t=this._getTableRows().length,i,s,r;if(e.type==="column"){if(this.rangeManager.columnSelection){if(this.rangeManager.selecting==="column")this.setEnd(t-1,e.getPosition()-1);else if(this.rangeManager.selecting==="cell")this.setEnd(0,e.getPosition()-1)}}else if(i=e.row.position-1,s=e.column.getPosition()-1,r=e.column===this.rangeManager.rowHeader,this.rangeManager.selecting==="row")this.setEnd(i,this._getTableColumns().length-1);else if(this.rangeManager.selecting!=="row"&&r)this.setEnd(i,0);else if(this.rangeManager.selecting==="column")this.setEnd(t-1,s);else this.setEnd(i,s)}_updateMinMax(){if(this.rect.top=Math.min(this.start.row,this.end.row),this.rect.bottom=Math.max(this.start.row,this.end.row),this.rect.left=Math.min(this.start.col,this.end.col),this.rect.right=Math.max(this.start.col,this.end.col),this.initialized){if(!this.skipEvents)this.dispatchExternal("rangeChanged",this.getComponent())}else if(this.initializing.start&&this.initializing.end){if(this.initialized=!0,!this.skipEvents)this.dispatch("range-added",this),this.dispatchExternal("rangeAdded",this.getComponent())}}_getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}_getTableRows(){return this.table.rowManager.getDisplayRows().filter((e)=>e.type==="row")}layout(){var e=this.table.rowManager.renderer.vDomTop,t=this.table.rowManager.renderer.vDomBottom,i=this.table.columnManager.renderer.leftCol,s=this.table.columnManager.renderer.rightCol,r=this.table.modules.frozenColumns.leftColumns,o=r.length,a=this.table.modules.frozenColumns.rightColumns,l=a.length,h,d,u,c,f,p,m,b,v,w;if(this.table.options.renderHorizontal==="virtual"&&this.rangeManager.rowHeader)s+=1;if(e==null)e=0;if(t==null)t=1/0;if(i==null)i=0;if(s==null)s=1/0;if(o>0&&r[0].isRowHeader===!0)o-=1;if(this.overlaps(i,e,s,t)){h=Math.max(this.rect.top,e),d=Math.min(this.rect.bottom,t),u=Math.max(this.rect.left,i),c=Math.min(this.rect.right,s+o+l),f=this.rangeManager.getCell(h,u),p=this.rangeManager.getCell(d,c),m=f.getElement(),b=p.getElement(),v=f.row.getElement(),w=p.row.getElement(),this.element.classList.add("tabulator-range-active");let R=0;if(this.rangeManager.getTableColumns().forEach((S)=>{if(this.occupiesColumn(S)&&S.definition.frozen)R+=S.width}),this.table.rtl){let S=Math.max(m.offsetLeft+m.offsetWidth-b.offsetLeft,R);this.element.style.right=v.offsetWidth-m.offsetLeft-m.offsetWidth+"px",this.element.style.width=S+"px"}else{let S=Math.max(b.offsetLeft+b.offsetWidth-m.offsetLeft,R);this.element.style.left=v.offsetLeft+m.offsetLeft+"px",this.element.style.width=S+"px"}this.element.style.top=v.offsetTop+"px",this.element.style.height=w.offsetTop+w.offsetHeight-v.offsetTop+"px"}}atTopLeft(e){return e.row.position-1===this.rect.top&&e.column.getPosition()-1===this.rect.left}atBottomRight(e){return e.row.position-1===this.rect.bottom&&e.column.getPosition()-1===this.rect.right}occupies(e){return this.occupiesRow(e.row)&&this.occupiesColumn(e.column)}occupiesRow(e){return this.rect.top<=e.position-1&&e.position-1<=this.rect.bottom}occupiesColumn(e){return this.rect.left<=e.getPosition()-1&&e.getPosition()-1<=this.rect.right}overlaps(e,t,i,s){if(this.rect.left>i||e>this.rect.right||(this.rect.top>s||t>this.rect.bottom))return!1;return!0}getData(){var e=[],t=this.getRows(),i=this.getColumns();return t.forEach((s)=>{var r=s.getData(),o={};i.forEach((a)=>{o[a.field]=r[a.field]}),e.push(o)}),e}getCells(e,t){var i=[],s=this.getRows(),r=this.getColumns();if(e)i=s.map((o)=>{var a=[];return o.getCells().forEach((l)=>{if(r.includes(l.column))a.push(t?l.getComponent():l)}),a});else s.forEach((o)=>{o.getCells().forEach((a)=>{if(r.includes(a.column))i.push(t?a.getComponent():a)})});return i}getStructuredCells(){return this.getCells(!0,!0)}getRows(){return this._getTableRows().slice(this.rect.top,this.rect.bottom+1)}getColumns(){return this._getTableColumns().slice(this.rect.left,this.rect.right+1)}clearValues(){var e=this.getCells(),t=this.table.options.selectableRangeClearCellsValue;this.table.blockRedraw(),e.forEach((i)=>{i.setValue(t)}),this.table.restoreRedraw()}setData(e){let t=this.getCells(!0),i=new Map,s=[],r=!1;if(this.modifiedCells=[],this.table.blockRedraw(),t.forEach((o,a)=>{let l=e[a];o.forEach((h,d)=>{let u=h.column.getField(),c=h.getValue(),f=!this.table.modExists("edit")||this.table.modules.edit.allowEdit(h),p=c;if(f&&u&&d<l.length){if(p=l[d],c!==p)r=!0,this.modifiedCells.push(h.getComponent());if(!i.has(h.row))i.set(h.row,{});i.get(h.row)[u]=p}s.push({oldValue:c,newValue:p})})}),i.forEach((o,a)=>a.updateData(o)),r&&this.table.modExists("history"))this.table.modules.history.action("rangeEdit",this,{cells:s});if(r)this.dispatchExternal("rangeEdited",this.getComponent());this.table.restoreRedraw()}fill(e){let t=this.getColumns(),i=this.getRows().map(()=>t.map(()=>e));this.setData(i)}getBounds(e){var t=this.getCells(!1,e),i={start:null,end:null};if(t.length)i.start=t[0],i.end=t[t.length-1];else console.warn("No bounds defined on range");return i}getStartCell(){return this.rangeManager.getCell(this.start.row,this.start.col)}getEndCell(){return this.rangeManager.getCell(this.end.row,this.end.col)}getComponent(){if(!this.component)this.component=new ke(this);return this.component}destroy(e){if(this.destroyed=!0,this.element.remove(),e)this.rangeManager.rangeRemoved(this);if(this.initialized&&!this.skipEvents)this.dispatchExternal("rangeRemoved",this.getComponent())}destroyedGuard(e){if(this.destroyed)console.warn("You cannot call the "+e+" function on a destroyed range");return!this.destroyed}}class Q extends H{constructor(e,t){super(e);this.rangeManager=t,this.element=null,this.preview=null,this.source=null,this.pointerRow=0,this.pointerCol=0,this.isActive=!1,this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleCellMouseMove=this.handleCellMouseMove.bind(this),this.element=document.createElement("div"),this.element.classList.add("tabulator-range-fill-handle"),this.element.addEventListener("mousedown",this.handleMouseDown),this.subscribe("range-active-changed",(i)=>this.attach(i))}attach(e){if(this.element.parentNode!==e.element)e.element.appendChild(this.element)}handleMouseDown(e){let t=this.rangeManager.activeRange;if(e.button!==0||!t)return;e.preventDefault(),e.stopPropagation(),this.isActive=!0,this.source=t.rect.clone(),this.pointerRow=this.source.bottom,this.pointerCol=this.source.right,this.preview=new fe(this.table,this.rangeManager,{rect:this.source,skipEvents:!0,classNames:["tabulator-range-fill-preview"]}),this.rangeManager.rangeContainer.appendChild(this.preview.element),this.preview.layout(),this.subscribe("cell-mousemove",this.handleCellMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}handleCellMouseMove(e,t){if(t.column===this.rangeManager.rowHeader)return;let i=t.row.position-1,s=t.column.getPosition()-1;if(i===this.pointerRow&&s===this.pointerCol)return;this.pointerRow=i,this.pointerCol=s;let r=Q.extendAlongAxis(this.source,this.pointerRow,this.pointerCol);this.preview.setRect(r),this.preview.layout()}async handleMouseUp(){this.isActive=!1,this.unsubscribe("cell-mousemove",this.handleCellMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.rangeManager.clearRanges();let e=await this.addInitializedRange(this.preview.getStartCell(),this.preview.getEndCell()),t=this.buildFillData(this.source,this.pointerRow,this.pointerCol);e.setData(t),this.preview.destroy()}buildFillData(e,t,i){let s=Q.extendAlongAxis(e,t,i),r=e.bottom-e.top+1,o=e.right-e.left+1,a=this.rangeManager.getTableRows(),l=this.rangeManager.getTableColumns(),h=[];for(let d=s.top;d<=s.bottom;d++){let u=[];for(let c=s.left;c<=s.right;c++){let f=e.top+((d-e.top)%r+r)%r,p=e.left+((c-e.left)%o+o)%o,m=a[f],b=l[p];u.push(m.getData()[b.getField()])}h.push(u)}return h}addInitializedRange(e,t){let i=this.rangeManager.addRange(e,t);if(!i.initialized)return new Promise((s)=>{let r=(o)=>{if(o!==i)return;this.unsubscribe("range-added",r),s(i)};this.subscribe("range-added",r)});return Promise.resolve(i)}static extendAlongAxis(e,t,i){let s=0,r=0,{top:o,bottom:a,left:l,right:h}=e;if(t<e.top)s=e.top-t;else if(t>e.bottom)s=t-e.bottom;if(i<e.left)r=e.left-i;else if(i>e.right)r=i-e.right;if(s&&s>=r)o=Math.min(o,t),a=Math.max(a,t);else if(r)l=Math.min(l,i),h=Math.max(h,i);return new J(o,a,l,h)}destroy(){document.removeEventListener("mouseup",this.handleMouseUp),this.element.remove(),this.preview?.destroy()}}var Yt={rangeJumpUp:["ctrl + 38","meta + 38"],rangeJumpDown:["ctrl + 40","meta + 40"],rangeJumpLeft:["ctrl + 37","meta + 37"],rangeJumpRight:["ctrl + 39","meta + 39"],rangeExpandUp:"shift + 38",rangeExpandDown:"shift + 40",rangeExpandLeft:"shift + 37",rangeExpandRight:"shift + 39",rangeExpandJumpUp:["ctrl + shift + 38","meta + shift + 38"],rangeExpandJumpDown:["ctrl + shift + 40","meta + shift + 40"],rangeExpandJumpLeft:["ctrl + shift + 37","meta + shift + 37"],rangeExpandJumpRight:["ctrl + shift + 39","meta + shift + 39"]},Qt={rangeJumpLeft:function(e){this.dispatch("keybinding-nav-range",e,"left",!0,!1)},rangeJumpRight:function(e){this.dispatch("keybinding-nav-range",e,"right",!0,!1)},rangeJumpUp:function(e){this.dispatch("keybinding-nav-range",e,"up",!0,!1)},rangeJumpDown:function(e){this.dispatch("keybinding-nav-range",e,"down",!0,!1)},rangeExpandLeft:function(e){this.dispatch("keybinding-nav-range",e,"left",!1,!0)},rangeExpandRight:function(e){this.dispatch("keybinding-nav-range",e,"right",!1,!0)},rangeExpandUp:function(e){this.dispatch("keybinding-nav-range",e,"up",!1,!0)},rangeExpandDown:function(e){this.dispatch("keybinding-nav-range",e,"down",!1,!0)},rangeExpandJumpLeft:function(e){this.dispatch("keybinding-nav-range",e,"left",!0,!0)},rangeExpandJumpRight:function(e){this.dispatch("keybinding-nav-range",e,"right",!0,!0)},rangeExpandJumpUp:function(e){this.dispatch("keybinding-nav-range",e,"up",!0,!0)},rangeExpandJumpDown:function(e){this.dispatch("keybinding-nav-range",e,"down",!0,!0)}},Zt={range:function(e){var t=[],i=this.table.modules.selectRange.activeRange,s=!1,r,o,a,l,h;if(h=e.length,i){if(r=i.getBounds(),o=r.start,r.start===r.end)s=!0;if(o){if(t=this.table.rowManager.activeRows.slice(),a=t.indexOf(o.row),s)l=e.length;else l=t.indexOf(r.end.row)-a+1;if(a>-1)this.table.blockRedraw(),t=t.slice(a,a+l),t.forEach((d,u)=>{d.updateData(e[u%h])}),this.table.restoreRedraw()}}return t}},ei={range:function(e){var t=[],i=[],s=this.table.modules.selectRange.activeRange,r=!1,o,a,l,h,d;if(s){if(o=s.getBounds(),a=o.start,o.start===o.end)r=!0;if(a){if(e=e.split(`
|
|
7
|
-
`),e.forEach(function(u){t.push(u.split("\t"))}),t.length){if(h=this.table.columnManager.getVisibleColumnsByIndex(),d=h.indexOf(a.column),d>-1){if(r)l=t[0].length;else l=h.indexOf(o.end.column)-d+1;return h=h.slice(d,d+l),t.forEach((u)=>{var c={},f=u.length;h.forEach(function(p,m){c[p.field]=u[m%f]}),i.push(c)}),i}}}}return!1}},ti={range:function(){var e=this.modules.selectRange.selectedColumns();if(this.columnManager.rowHeader)e.unshift(this.columnManager.rowHeader);return e}},ii={range:function(){return this.modules.selectRange.selectedRows()}},si={rangeEdit:function(e){e.component.getCells().forEach((t,i)=>{t.setValueProcessData(e.data.cells[i].oldValue),t.cellRendered()})}},ni={rangeEdit:function(e){e.component.getCells().forEach((t,i)=>{t.setValueProcessData(e.data.cells[i].newValue),t.cellRendered()})}},ri={keybindings:{bindings:Yt,actions:Qt},clipboard:{pasteActions:Zt,pasteParsers:ei},export:{columnLookups:ti,rowLookups:ii},history:{undoers:si,redoers:ni}};class pe extends F{static moduleName="selectRange";static moduleInitOrder=1;static moduleExtensions=ri;constructor(e){super(e);this.selecting="cell",this.mousedown=!1,this.ranges=[],this.overlay=null,this.rowHeader=null,this.layoutChangeTimeout=null,this.columnSelection=!1,this.rowSelection=!1,this.maxRanges=0,this.activeRange=!1,this.blockKeydown=!1,this.tabAnchorCol=null,this.fillHandle=null,this.keyDownEvent=this._handleKeyDown.bind(this),this.editKeyDownEvent=this._handleEditKeyDown.bind(this),this.mouseUpEvent=this._handleMouseUp.bind(this),this.registerTableOption("selectableRange",!1),this.registerTableOption("selectableRangeColumns",!1),this.registerTableOption("selectableRangeRows",!1),this.registerTableOption("selectableRangeClearCells",!1),this.registerTableOption("selectableRangeClearCellsValue",void 0),this.registerTableOption("selectableRangeAutoFocus",!0),this.registerTableOption("selectableRangeInitializeDefault",!0),this.registerTableOption("selectableRangeBlurEditOnNavigate",void 0),this.registerTableOption("selectableRangeCommitEditOnNavigate",!1),this.registerTableOption("selectableRangeFill",!1),this.registerTableFunction("getRangesData",this.getRangesData.bind(this)),this.registerTableFunction("getRanges",this.getRanges.bind(this)),this.registerTableFunction("addRange",this.addRangeFromComponent.bind(this)),this.registerComponentFunction("cell","getRanges",this.cellGetRanges.bind(this)),this.registerComponentFunction("row","getRanges",this.rowGetRanges.bind(this)),this.registerComponentFunction("column","getRanges",this.colGetRanges.bind(this))}initialize(){if(this.options("selectableRange")){if(!this.options("selectableRows"))this.maxRanges=this.options("selectableRange"),this.initializeTable(),this.initializeWatchers();else console.warn("SelectRange functionality cannot be used in conjunction with row selection");if(this.options("columns").findIndex((e)=>e.frozen)>0)console.warn("Having frozen column in arbitrary position with selectRange option may result in unpredictable behavior.");if(this.options("columns").filter((e)=>e.frozen)>1)console.warn("Having multiple frozen columns with selectRange option may result in unpredictable behavior.")}this.subscribe("edit-nav-disabled",()=>!0)}initializeTable(){if(this.overlay=document.createElement("div"),this.overlay.classList.add("tabulator-range-overlay"),this.rangeContainer=document.createElement("div"),this.rangeContainer.classList.add("tabulator-range-container"),this.activeRangeCellElement=document.createElement("div"),this.activeRangeCellElement.classList.add("tabulator-range-cell-active"),this.overlay.appendChild(this.rangeContainer),this.overlay.appendChild(this.activeRangeCellElement),this.options("selectableRangeFill"))this.fillHandle=new Q(this.table,this);this.table.rowManager.element.addEventListener("keydown",this.keyDownEvent),this.setDefaultRange(),this.table.rowManager.element.appendChild(this.overlay),this.table.columnManager.element.setAttribute("tabindex",0),this.table.element.classList.add("tabulator-ranges")}initializeWatchers(){this.columnSelection=this.options("selectableRangeColumns"),this.rowSelection=this.options("selectableRangeRows"),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-mousedown",this.handleColumnMouseDown.bind(this)),this.subscribe("column-mousemove",this.handleColumnMouseMove.bind(this)),this.subscribe("column-resized",this.handleColumnResized.bind(this)),this.subscribe("column-moving",this.handleColumnMoving.bind(this)),this.subscribe("column-moved",this.handleColumnMoved.bind(this)),this.subscribe("column-width",this.layoutChange.bind(this)),this.subscribe("column-height",this.layoutChange.bind(this)),this.subscribe("column-resized",this.layoutChange.bind(this)),this.subscribe("columns-loaded",this.updateHeaderColumn.bind(this)),this.subscribe("cell-height",this.layoutChange.bind(this)),this.subscribe("cell-rendered",this.renderCell.bind(this)),this.subscribe("cell-mousedown",this.handleCellMouseDown.bind(this)),this.subscribe("cell-mousemove",this.handleCellMouseMove.bind(this)),this.subscribe("cell-click",this.handleCellClick.bind(this)),this.subscribe("cell-editing",this.handleEditingCell.bind(this)),this.subscribe("page-changed",this.redraw.bind(this)),this.subscribe("scroll-vertical",this.layoutChange.bind(this)),this.subscribe("scroll-horizontal",this.layoutChange.bind(this)),this.subscribe("data-destroy",this.tableDestroyed.bind(this)),this.subscribe("data-processed",this.setDefaultRange.bind(this)),this.subscribe("table-layout",this.layoutElement.bind(this)),this.subscribe("table-redraw",this.redraw.bind(this)),this.subscribe("table-destroy",this.tableDestroyed.bind(this)),this.subscribe("edit-editor-created",this.handleEditorCreated.bind(this)),this.subscribe("edit-editor-clear",this.finishEditingCell.bind(this)),this.subscribe("edit-blur",this.restoreFocus.bind(this)),this.subscribe("keybinding-nav-prev",this.keyNavigate.bind(this,"prev"),20),this.subscribe("keybinding-nav-next",this.setTabAnchor.bind(this),10),this.subscribe("keybinding-nav-next",this.keyNavigate.bind(this,"next"),20),this.subscribe("keybinding-nav-left",this.keyNavigate.bind(this,"left")),this.subscribe("keybinding-nav-right",this.keyNavigate.bind(this,"right")),this.subscribe("keybinding-nav-up",this.keyNavigate.bind(this,"up")),this.subscribe("keybinding-nav-down",this.keyNavigate.bind(this,"down")),this.subscribe("keybinding-nav-range",this.keyNavigateRange.bind(this))}initializeColumn(e){if(this.columnSelection&&e.definition.headerSort&&this.options("headerSortClickElement")!=="icon")console.warn("Using column headerSort with selectableRangeColumns option may result in unpredictable behavior. Consider using headerSortClickElement: 'icon'.")}updateHeaderColumn(){var e;if(this.rowSelection){if(this.rowHeader=this.table.columnManager.getVisibleColumnsByIndex()[0],this.rowHeader){if(this.rowHeader.definition.cssClass=this.rowHeader.definition.cssClass+" tabulator-range-row-header",this.rowHeader.definition.headerSort)console.warn("Using column headerSort with selectableRangeRows option may result in unpredictable behavior");if(this.rowHeader.definition.editor)console.warn("Using column editor with selectableRangeRows option may result in unpredictable behavior")}}if(this.table.modules.frozenColumns&&this.table.modules.frozenColumns.active){if(e=this.table.modules.frozenColumns.getFrozenColumns(),e.length>1||e.length===1&&e[0]!==this.rowHeader)console.warn("Using frozen columns that are not the range header in combination with the selectRange option may result in unpredictable behavior")}}getRanges(){return this.ranges.map((e)=>e.getComponent())}getRangesData(){return this.ranges.map((e)=>e.getData())}addRangeFromComponent(e,t){return e=e?e._cell:null,t=t?t._cell:null,this.addRange(e,t)}cellGetRanges(e){var t=[];if(e.column===this.rowHeader)t=this.ranges.filter((i)=>i.occupiesRow(e.row));else t=this.ranges.filter((i)=>i.occupies(e));return t.map((i)=>i.getComponent())}rowGetRanges(e){var t=this.ranges.filter((i)=>i.occupiesRow(e));return t.map((i)=>i.getComponent())}colGetRanges(e){var t=this.ranges.filter((i)=>i.occupiesColumn(e));return t.map((i)=>i.getComponent())}_handleMouseUp(e){this.mousedown=!1,document.removeEventListener("mouseup",this.mouseUpEvent)}_handleKeyDown(e){if(!this.blockKeydown&&(!this.table.modules.edit||this.table.modules.edit&&!this.table.modules.edit.currentCell)){if(e.key==="Enter"){if(this.table.modules.edit&&this.table.modules.edit.currentCell)return;var t=this.getActiveCell();if(!t)return;this.table.modules.edit.editCell(t),e.preventDefault()}if((e.key==="Backspace"||e.key==="Delete")&&this.options("selectableRangeClearCells")){if(this.activeRange)this.activeRange.clearValues()}}}_handleEditKeyDown(e){if(e.key!=="Enter")return;if(e.ctrlKey||e.altKey||e.metaKey)return;if(this.table.modules.edit.checkEditing())return;if(e.shiftKey)this.navigateToTabAnchor("up");else this.navigateToTabAnchor("down");e.preventDefault()}initializeFocus(e){var t;this.restoreFocus();try{if(document.selection)t=document.body.createTextRange(),t.moveToElementText(e.getElement()),t.select();else if(window.getSelection)t=document.createRange(),t.selectNode(e.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(t)}catch(i){}}restoreFocus(e){return this.table.rowManager.element.focus(),!0}handleColumnResized(e){var t;if(this.selecting!=="column"&&this.selecting!=="all")return;if(t=this.ranges.some((i)=>i.occupiesColumn(e)),!t)return;this.ranges.forEach((i)=>{var s=i.getColumns(!0);s.forEach((r)=>{if(r!==e)r.setWidth(e.width)})})}handleColumnMoving(e,t){this.resetRanges().setBounds(t),this.overlay.style.visibility="hidden"}handleColumnMoved(e,t,i){this.activeRange.setBounds(e),this.layoutElement()}handleColumnMouseDown(e,t){if(e.button===2&&(this.selecting==="column"||this.selecting==="all")&&this.activeRange.occupiesColumn(t))return;if(this.table.options.movableColumns&&this.selecting==="column"&&this.activeRange.occupiesColumn(t))return;this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(e,t)}handleColumnMouseMove(e,t){if(t===this.rowHeader||!this.mousedown||this.selecting==="all")return;this.activeRange.setBounds(!1,t,!0)}renderCell(e){var t=e.getElement(),i=this.ranges.findIndex((s)=>s.occupies(e));t.classList.toggle("tabulator-range-selected",i!==-1),t.classList.toggle("tabulator-range-only-cell-selected",this.ranges.length===1&&this.ranges[0].atTopLeft(e)&&this.ranges[0].atBottomRight(e)),t.dataset.range=i}handleCellMouseDown(e,t){if(e.button===2&&(this.activeRange.occupies(t)||(this.selecting==="row"||this.selecting==="all")&&this.activeRange.occupiesRow(t.row)))return;this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(e,t)}handleCellMouseMove(e,t){if(!this.mousedown||this.selecting==="all")return;this.activeRange.setBounds(!1,t,!0)}handleCellClick(e,t){this.initializeFocus(t)}handleEditingCell(e){if(this.activeRange)this.activeRange.setBounds(e)}handleEditorCreated(e,t){t.addEventListener("keydown",this.editKeyDownEvent)}finishEditingCell(e,t,i){this.blockKeydown=!0,this.table.rowManager.element.focus(),setTimeout(()=>{this.blockKeydown=!1},10)}keyNavigate(e,t){if(this.options("selectableRangeBlurEditOnNavigate")){if(this.chain("edit-check-editing"))if(e==="next"||e==="prev")if(this.options("selectableRangeCommitEditOnNavigate"))this.restoreFocus();else this.dispatch("edit-cancel-cell");else return!1}if(e!=="next")this.tabAnchorCol=null;if(e==="prev")e="left";else if(e==="next")e="right";if(this.navigate(!1,!1,e))t.preventDefault()}setTabAnchor(){if(this.tabAnchorCol===null)this.tabAnchorCol=this.activeRange.start.col}navigateToTabAnchor(e){let t=this.activeRange;if(this.tabAnchorCol!==null)t.setStart(t.start.row,this.tabAnchorCol),t.setEnd(t.start.row,this.tabAnchorCol),this.tabAnchorCol=null,this.layoutElement();this.navigate(!1,!1,e)}keyNavigateRange(e,t,i,s){if(this.tabAnchorCol=null,this.navigate(i,s,t))e.preventDefault()}navigate(e,t,i){var s=!1,r,o,a,l,h,d,u,c,f,p,m;if(this.table.modules.edit&&this.table.modules.edit.currentCell)return!1;if(this.ranges.length>1)this.ranges=this.ranges.filter((b)=>{if(b===this.activeRange)return b.setEnd(b.start.row,b.start.col),!0;return b.destroy(),!1});if(r=this.activeRange,a=r.rect.clone(),o=t?r.end:r.start,l=o.row,h=o.col,e)switch(i){case"left":h=this.findJumpCellLeft(r.start.row,o.col);break;case"right":h=this.findJumpCellRight(r.start.row,o.col);break;case"up":l=this.findJumpCellUp(o.row,r.start.col);break;case"down":l=this.findJumpCellDown(o.row,r.start.col);break}else{if(t){if(this.selecting==="row"&&(i==="left"||i==="right")||this.selecting==="column"&&(i==="up"||i==="down"))return}switch(i){case"left":h=Math.max(h-1,0);break;case"right":h=Math.min(h+1,this.getTableColumns().length-1);break;case"up":l=Math.max(l-1,0);break;case"down":l=Math.min(l+1,this.getTableRows().length-1);break}}if(this.rowHeader&&h===0)h=1;if(!t)r.setStart(l,h);if(r.setEnd(l,h),!t)this.selecting="cell";if(s=!a.equals(r.rect),s){if(d=this.getRowByRangePos(r.end.row),u=this.getColumnByRangePos(r.end.col),c=d.getElement().getBoundingClientRect(),p=u.getElement().getBoundingClientRect(),f=this.table.rowManager.getElement().getBoundingClientRect(),m=this.table.columnManager.getElement().getBoundingClientRect(),!(c.top>=f.top&&c.bottom<=f.bottom))if(d.getElement().parentNode&&u.getElement().parentNode)this.autoScroll(r,d.getElement(),u.getElement());else d.getComponent().scrollTo(void 0,!1);if(!(p.left>=m.left+this.getRowHeaderWidth()&&p.right<=m.right))if(d.getElement().parentNode&&u.getElement().parentNode)this.autoScroll(r,d.getElement(),u.getElement());else u.getComponent().scrollTo(void 0,!1);this.layoutElement()}return!0}rangeRemoved(e){if(this.ranges=this.ranges.filter((t)=>t!==e),this.activeRange===e)if(this.ranges.length)this.setActiveRange(this.ranges[this.ranges.length-1]);else this.addRange();this.layoutElement(!0)}findJumpRow(e,t,i,s,r){if(i)t=t.reverse();return this.findJumpItem(s,r,t,function(o){return o.getData()[e.getField()]})}findJumpCol(e,t,i,s,r){if(i)t=t.reverse();return this.findJumpItem(s,r,t,function(o){return e.getData()[o.getField()]})}findJumpItem(e,t,i,s){var r;for(let o of i){let a=s(o);if(e){if(r=o,a)break}else if(t){if(r=o,a)break}else if(a)r=o;else break}return r}findJumpCellLeft(e,t){var i=this.getRowByRangePos(e),s=this.getTableColumns(),r=this.isEmpty(i.getData()[s[t].getField()]),o=s[t-1]?this.isEmpty(i.getData()[s[t-1].getField()]):!1,a=this.rowHeader?s.slice(1,t):s.slice(0,t),l=this.findJumpCol(i,a,!0,r,o);if(l)return l.getPosition()-1;return t}findJumpCellRight(e,t){var i=this.getRowByRangePos(e),s=this.getTableColumns(),r=this.isEmpty(i.getData()[s[t].getField()]),o=s[t+1]?this.isEmpty(i.getData()[s[t+1].getField()]):!1,a=this.findJumpCol(i,s.slice(t+1,s.length),!1,r,o);if(a)return a.getPosition()-1;return t}findJumpCellUp(e,t){var i=this.getColumnByRangePos(t),s=this.getTableRows(),r=this.isEmpty(s[e].getData()[i.getField()]),o=s[e-1]?this.isEmpty(s[e-1].getData()[i.getField()]):!1,a=this.findJumpRow(i,s.slice(0,e),!0,r,o);if(a)return a.position-1;return e}findJumpCellDown(e,t){var i=this.getColumnByRangePos(t),s=this.getTableRows(),r=this.isEmpty(s[e].getData()[i.getField()]),o=s[e+1]?this.isEmpty(s[e+1].getData()[i.getField()]):!1,a=this.findJumpRow(i,s.slice(e+1,s.length),!1,r,o);if(a)return a.position-1;return e}newSelection(e,t){var i;if(t.type==="column"){if(!this.columnSelection)return;if(t===this.rowHeader){i=this.resetRanges(),this.selecting="all";var s,r=this.getCell(-1,-1);if(this.rowHeader)s=this.getCell(0,1);else s=this.getCell(0,0);i.setBounds(s,r);return}else this.selecting="column"}else if(t.column===this.rowHeader)this.selecting="row";else this.selecting="cell";if(e.shiftKey)this.activeRange.setBounds(!1,t,!0);else if(e.ctrlKey)this.addRange().setBounds(t,void 0,!0);else this.resetRanges().setBounds(t,void 0,!0)}autoScroll(e,t,i){var s=this.table.rowManager.element,r,o,a,l;if(typeof t>"u")t=this.getRowByRangePos(e.end.row).getElement();if(typeof i>"u")i=this.getColumnByRangePos(e.end.col).getElement();if(r={left:i.offsetLeft,right:i.offsetLeft+i.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight},o={left:s.scrollLeft+this.getRowHeaderWidth(),right:Math.ceil(s.scrollLeft+s.clientWidth),top:s.scrollTop,bottom:s.scrollTop+s.offsetHeight-this.table.rowManager.scrollbarWidth},a=o.left<r.left&&r.left<o.right&&o.left<r.right&&r.right<o.right,l=o.top<r.top&&r.top<o.bottom&&o.top<r.bottom&&r.bottom<o.bottom,!a){if(r.left<o.left)s.scrollLeft=r.left-this.getRowHeaderWidth();else if(r.right>o.right)s.scrollLeft=Math.min(r.right-s.clientWidth,r.left-this.getRowHeaderWidth())}if(!l){if(r.top<o.top)s.scrollTop=r.top;else if(r.bottom>o.bottom)s.scrollTop=r.bottom-s.clientHeight}}layoutChange(){this.overlay.style.visibility="hidden",clearTimeout(this.layoutChangeTimeout),this.layoutChangeTimeout=setTimeout(this.layoutRanges.bind(this),200)}redraw(e){if(e)this.selecting="cell",this.setDefaultRange(),this.layoutElement()}layoutElement(e){var t;if(e)t=this.table.rowManager.getVisibleRows(!0);else t=this.table.rowManager.getRows();t.forEach((i)=>{if(i.type==="row")this.layoutRow(i),i.cells.forEach((s)=>this.renderCell(s))}),this.getTableColumns().forEach((i)=>{this.layoutColumn(i)}),this.layoutRanges()}layoutRow(e){var t=e.getElement(),i=!1,s=this.ranges.some((r)=>r.occupiesRow(e));if(this.selecting==="row")i=s;else if(this.selecting==="all")i=!0;t.classList.toggle("tabulator-range-selected",i),t.classList.toggle("tabulator-range-highlight",s)}layoutColumn(e){var t=e.getElement(),i=!1,s=this.ranges.some((r)=>r.occupiesColumn(e));if(this.selecting==="column")i=s;else if(this.selecting==="all")i=!0;t.classList.toggle("tabulator-range-selected",i),t.classList.toggle("tabulator-range-highlight",s)}layoutRanges(){var e,t,i;if(!this.table.initialized)return;if(e=this.getActiveCell(),!e)return;if(t=e.getElement(),i=e.row.getElement(),this.table.rtl)this.activeRangeCellElement.style.right=i.offsetWidth-t.offsetLeft-t.offsetWidth+"px";else this.activeRangeCellElement.style.left=i.offsetLeft+t.offsetLeft+"px";this.activeRangeCellElement.style.top=i.offsetTop+"px",this.activeRangeCellElement.style.width=t.offsetWidth+"px",this.activeRangeCellElement.style.height=i.offsetHeight+"px",this.ranges.forEach((s)=>s.layout()),this.overlay.style.visibility="visible"}getCell(e,t){var i;if(t<0){if(t=this.getTableColumns().length+t,t<0)return null}if(e<0)e=this.getTableRows().length+e;return i=this.table.rowManager.getRowFromPosition(e+1),i?i.getCells(!1,!0).filter((s)=>s.column.visible)[t]:null}getActiveCell(){if(!this.activeRange)return;return this.getCell(this.activeRange.start.row,this.activeRange.start.col)}getRowByRangePos(e){return this.getTableRows()[e]}getColumnByRangePos(e){return this.getTableColumns()[e]}getTableRows(){return this.table.rowManager.getDisplayRows().filter((e)=>e.type==="row")}getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}setActiveRange(e){this.activeRange=e,this.dispatch("range-active-changed",e)}addRange(e,t){var i;if(this.maxRanges!==!0&&this.ranges.length>=this.maxRanges)this.ranges.shift().destroy();return i=new fe(this.table,this,{start:e,end:t}),this.tabAnchorCol=null,this.setActiveRange(i),this.ranges.push(i),this.rangeContainer.appendChild(i.element),i}createDefaultRange(){var e,t,i;if(e=this.addRange(),this.table.rowManager.activeRows.length){if(i=this.table.rowManager.activeRows[0].cells.filter((s)=>s.column.visible),t=i[this.rowHeader?1:0],t){if(e.setBounds(t),this.options("selectableRangeAutoFocus"))this.initializeFocus(t)}}return e}clearRanges(){this.ranges.forEach((e)=>e.destroy()),this.ranges=[]}setDefaultRange(){if(this.clearRanges(),this.options("selectableRangeInitializeDefault"))this.createDefaultRange()}resetRanges(){return this.clearRanges(),this.createDefaultRange()}tableDestroyed(){document.removeEventListener("mouseup",this.mouseUpEvent),this.fillHandle?.destroy(),this.table.rowManager.element.removeEventListener("keydown",this.keyDownEvent)}selectedRows(e){return e?this.activeRange.getRows().map((t)=>t.getComponent()):this.activeRange.getRows()}selectedColumns(e){return e?this.activeRange.getColumns().map((t)=>t.getComponent()):this.activeRange.getColumns()}getRowHeaderWidth(){if(!this.rowHeader)return 0;return this.rowHeader.getElement().offsetWidth}isEmpty(e){return e===null||e===void 0||e===""}}function oi(e,t,i,s,r,o,a){var{alignEmptyValues:l,decimalSeparator:h,thousandSeparator:d}=a,u=0;if(e=String(e),t=String(t),d)e=e.split(d).join(""),t=t.split(d).join("");if(h)e=e.split(h).join("."),t=t.split(h).join(".");if(e=parseFloat(e),t=parseFloat(t),isNaN(e))u=isNaN(t)?0:-1;else if(isNaN(t))u=1;else return e-t;if(l==="top"&&o==="desc"||l==="bottom"&&o==="asc")u*=-1;return u}function ai(e,t,i,s,r,o,a){var l=a.alignEmptyValues,h=0,d;if(!e)h=!t?0:-1;else if(!t)h=1;else{switch(typeof a.locale){case"boolean":if(a.locale)d=this.langLocale();break;case"string":d=a.locale;break}return String(e).toLowerCase().localeCompare(String(t).toLowerCase(),d)}if(l==="top"&&o==="desc"||l==="bottom"&&o==="asc")h*=-1;return h}function me(e,t,i,s,r,o,a){var l=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),h=a.format||"dd/MM/yyyy HH:mm:ss",d=a.alignEmptyValues,u=0;if(typeof l<"u"){if(!l.isDateTime(e))if(h==="iso")e=l.fromISO(String(e));else if(h==="x")e=l.fromMillis(e);else e=l.fromFormat(String(e),h);if(!l.isDateTime(t))if(h==="iso")t=l.fromISO(String(t));else if(h==="x")t=l.fromMillis(t);else t=l.fromFormat(String(t),h);if(!e.isValid)u=!t.isValid?0:-1;else if(!t.isValid)u=1;else return e-t;if(d==="top"&&o==="desc"||d==="bottom"&&o==="asc")u*=-1;return u}else console.error("Sort Error - 'datetime' sorter is dependant on luxon.js")}function li(e,t,i,s,r,o,a){if(!a.format)a.format="dd/MM/yyyy";return me.call(this,e,t,i,s,r,o,a)}function hi(e,t,i,s,r,o,a){if(!a.format)a.format="HH:mm";return me.call(this,e,t,i,s,r,o,a)}function di(e,t,i,s,r,o,a){var l=e===!0||e==="true"||e==="True"||e===1?1:0,h=t===!0||t==="true"||t==="True"||t===1?1:0;return l-h}function ui(e,t,i,s,r,o,a){var l=a.type||"length",h=a.alignEmptyValues,d=0,u=this.table,c;if(a.valueMap)if(typeof a.valueMap==="string")c=function(p){return p.map((m)=>M.retrieveNestedData(u.options.nestedFieldSeparator,a.valueMap,m))};else c=a.valueMap;function f(p){var m;if(c)p=c(p);switch(l){case"length":m=p.length;break;case"sum":m=p.reduce(function(b,v){return b+v});break;case"max":m=Math.max.apply(null,p);break;case"min":m=Math.min.apply(null,p);break;case"avg":m=p.reduce(function(b,v){return b+v})/p.length;break;case"string":m=p.join("");break}return m}if(!Array.isArray(e))d=!Array.isArray(t)?0:-1;else if(!Array.isArray(t))d=1;else if(l==="string")return String(f(e)).toLowerCase().localeCompare(String(f(t)).toLowerCase());else return f(t)-f(e);if(h==="top"&&o==="desc"||h==="bottom"&&o==="asc")d*=-1;return d}function ci(e,t,i,s,r,o,a){var l=typeof e>"u"?0:1,h=typeof t>"u"?0:1;return l-h}function fi(e,t,i,s,r,o,a){var l,h,d,u,c=0,f,p=/(\d+)|(\D+)/g,m=/\d/,b=a.alignEmptyValues,v=0;if(!e&&e!==0)v=!t&&t!==0?0:-1;else if(!t&&t!==0)v=1;else{if(isFinite(e)&&isFinite(t))return e-t;if(l=String(e).toLowerCase(),h=String(t).toLowerCase(),l===h)return 0;if(!(m.test(l)&&m.test(h)))return l>h?1:-1;l=l.match(p),h=h.match(p),f=l.length>h.length?h.length:l.length;while(c<f)if(d=l[c],u=h[c++],d!==u)if(isFinite(d)&&isFinite(u)){if(d.charAt(0)==="0")d="."+d;if(u.charAt(0)==="0")u="."+u;return d-u}else return d>u?1:-1;return l.length>h.length}if(b==="top"&&o==="desc"||b==="bottom"&&o==="asc")v*=-1;return v}var pi={number:oi,string:ai,date:li,time:hi,datetime:me,boolean:di,array:ui,exists:ci,alphanum:fi};class K extends F{static moduleName="sort";static sorters=pi;constructor(e){super(e);this.sortList=[],this.changed=!1,this.registerTableOption("sortMode","local"),this.registerTableOption("initialSort",!1),this.registerTableOption("columnHeaderSortMulti",!0),this.registerTableOption("sortOrderReverse",!1),this.registerTableOption("headerSortElement","<div class='tabulator-arrow'></div>"),this.registerTableOption("headerSortClickElement","header"),this.registerColumnOption("sorter"),this.registerColumnOption("sorterParams"),this.registerColumnOption("headerSort",!0),this.registerColumnOption("headerSortStartingDir"),this.registerColumnOption("headerSortTristate")}initialize(){if(this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.registerDataHandler(this.sort.bind(this),20),this.registerTableFunction("setSort",this.userSetSort.bind(this)),this.registerTableFunction("getSorters",this.getSort.bind(this)),this.registerTableFunction("clearSort",this.clearSort.bind(this)),this.table.options.sortMode==="remote")this.subscribe("data-params",this.remoteSortParams.bind(this))}tableBuilt(){if(this.table.options.initialSort)this.setSort(this.table.options.initialSort)}remoteSortParams(e,t,i,s){var r=this.getSort();return r.forEach((o)=>{delete o.column}),s.sort=r,s}userSetSort(e,t){this.setSort(e,t),this.refreshSort()}clearSort(){this.clear(),this.refreshSort()}initializeColumn(e){var t=!1,i,s;switch(typeof e.definition.sorter){case"string":if(K.sorters[e.definition.sorter])t=K.sorters[e.definition.sorter];else console.warn("Sort Error - No such sorter found: ",e.definition.sorter);break;case"function":t=e.definition.sorter;break}if(e.modules.sort={sorter:t,dir:"none",params:e.definition.sorterParams||{},startingDir:e.definition.headerSortStartingDir||"asc",tristate:e.definition.headerSortTristate},e.definition.headerSort!==!1){switch(i=e.getElement(),i.classList.add("tabulator-sortable"),s=document.createElement("div"),s.classList.add("tabulator-col-sorter"),this.table.options.headerSortClickElement){case"icon":s.classList.add("tabulator-col-sorter-element");break;case"header":i.classList.add("tabulator-col-sorter-element");break;default:i.classList.add("tabulator-col-sorter-element");break}switch(this.table.options.headerSortElement){case"function":break;case"object":s.appendChild(this.table.options.headerSortElement);break;default:s.innerHTML=this.table.options.headerSortElement}if(e.titleHolderElement.appendChild(s),e.modules.sort.element=s,this.setColumnHeaderSortIcon(e,"none"),this.table.options.headerSortClickElement==="icon")s.addEventListener("mousedown",(r)=>{r.stopPropagation()});(this.table.options.headerSortClickElement==="icon"?s:i).addEventListener("click",(r)=>{var o="",a=[],l=!1;if(e.modules.sort){if(e.modules.sort.tristate)if(e.modules.sort.dir=="none")o=e.modules.sort.startingDir;else if(e.modules.sort.dir==e.modules.sort.startingDir)o=e.modules.sort.dir=="asc"?"desc":"asc";else o="none";else switch(e.modules.sort.dir){case"asc":o="desc";break;case"desc":o="asc";break;default:o=e.modules.sort.startingDir}if(this.table.options.columnHeaderSortMulti&&(r.shiftKey||r.ctrlKey)){if(a=this.getSort(),l=a.findIndex((h)=>h.field===e.getField()),l>-1){if(a[l].dir=o,l=a.splice(l,1)[0],o!="none")a.push(l)}else if(o!="none")a.push({column:e,dir:o});this.setSort(a)}else if(o=="none")this.clear();else this.setSort(e,o);this.refreshSort()}})}}refreshSort(){if(this.table.options.sortMode==="remote")this.reloadData(null,!1,!1);else this.refreshData(!0)}hasChanged(){var e=this.changed;return this.changed=!1,e}getSort(){var e=this,t=[];return e.sortList.forEach(function(i){if(i.column)t.push({column:i.column.getComponent(),field:i.column.getField(),dir:i.dir})}),t}setSort(e,t){var i=this,s=[];if(!Array.isArray(e))e=[{column:e,dir:t}];e.forEach(function(r){var o=i.table.columnManager.findColumn(r.column);if(o)r.column=o,s.push(r),i.changed=!0;else console.warn("Sort Warning - Sort field does not exist and is being ignored: ",r.column)}),i.sortList=s,this.dispatch("sort-changed")}clear(){this.setSort([])}findSorter(e){var t=this.table.rowManager.activeRows[0],i="string",s,r;if(t){if(t=t.getData(),s=e.getField(),s)switch(r=e.getFieldValue(t),typeof r){case"undefined":i="string";break;case"boolean":i="boolean";break;default:if(!isNaN(Number(r))&&r!=="")i="number";else if(r.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i))i="alphanum";break}}return K.sorters[i]}sort(e,t){var i=this,s=this.table.options.sortOrderReverse?i.sortList.slice().reverse():i.sortList,r=[],o=[];if(this.subscribedExternal("dataSorting"))this.dispatchExternal("dataSorting",i.getSort());if(!t)i.clearColumnHeaders();if(this.table.options.sortMode!=="remote"){if(s.forEach(function(a,l){var h;if(a.column){if(h=a.column.modules.sort,h){if(!h.sorter)h.sorter=i.findSorter(a.column);a.params=typeof h.params==="function"?h.params(a.column.getComponent(),a.dir):h.params,r.push(a)}if(!t)i.setColumnHeader(a.column,a.dir)}}),r.length)i._sortItems(e,r)}else if(!t)s.forEach(function(a,l){i.setColumnHeader(a.column,a.dir)});if(this.subscribedExternal("dataSorted"))e.forEach((a)=>{o.push(a.getComponent())}),this.dispatchExternal("dataSorted",i.getSort(),o);return e}clearColumnHeaders(){this.table.columnManager.getRealColumns().forEach((e)=>{if(e.modules.sort)e.modules.sort.dir="none",e.getElement().setAttribute("aria-sort","none"),this.setColumnHeaderSortIcon(e,"none")})}setColumnHeader(e,t){e.modules.sort.dir=t,e.getElement().setAttribute("aria-sort",t==="asc"?"ascending":"descending"),this.setColumnHeaderSortIcon(e,t)}setColumnHeaderSortIcon(e,t){var i=e.modules.sort.element,s;if(e.definition.headerSort&&typeof this.table.options.headerSortElement==="function"){while(i.firstChild)i.removeChild(i.firstChild);if(s=this.table.options.headerSortElement.call(this.table,e.getComponent(),t),typeof s==="object")i.appendChild(s);else i.innerHTML=s}}_sortItems(e,t){var i=t.length-1;e.sort((s,r)=>{var o;for(var a=i;a>=0;a--){let l=t[a];if(o=this._sortRow(s,r,l.column,l.dir,l.params),o!==0)break}return o})}_sortRow(e,t,i,s,r){var o,a,l=s=="asc"?e:t,h=s=="asc"?t:e;return e=i.getFieldValue(l.getData()),t=i.getFieldValue(h.getData()),e=typeof e<"u"?e:"",t=typeof t<"u"?t:"",o=l.getComponent(),a=h.getComponent(),i.modules.sort.sorter.call(this,e,t,o,a,i.getComponent(),s,r)}}class ge extends F{static moduleName="tooltip";constructor(e){super(e);this.tooltipSubscriber=null,this.headerSubscriber=null,this.timeout=null,this.popupInstance=null,this.registerTableOption("tooltipDelay",300),this.registerColumnOption("tooltip"),this.registerColumnOption("headerTooltip")}initialize(){this.deprecatedOptionsCheck(),this.subscribe("column-init",this.initializeColumn.bind(this))}deprecatedOptionsCheck(){}initializeColumn(e){if(e.definition.headerTooltip&&!this.headerSubscriber)this.headerSubscriber=!0,this.subscribe("column-mousemove",this.mousemoveCheck.bind(this,"headerTooltip")),this.subscribe("column-mouseout",this.mouseoutCheck.bind(this,"headerTooltip"));if(e.definition.tooltip&&!this.tooltipSubscriber)this.tooltipSubscriber=!0,this.subscribe("cell-mousemove",this.mousemoveCheck.bind(this,"tooltip")),this.subscribe("cell-mouseout",this.mouseoutCheck.bind(this,"tooltip"))}mousemoveCheck(e,t,i){var s=e==="tooltip"?i.column.definition.tooltip:i.definition.headerTooltip;if(s)this.clearPopup(),this.timeout=setTimeout(this.loadTooltip.bind(this,t,i,s),this.table.options.tooltipDelay)}mouseoutCheck(e,t,i){if(!this.popupInstance)this.clearPopup()}clearPopup(e,t,i){if(clearTimeout(this.timeout),this.timeout=null,this.popupInstance)this.popupInstance.hide()}loadTooltip(e,t,i){var s,r,o;function a(l){r=l}if(typeof i==="function")i=i(e,t.getComponent(),a);if(i instanceof HTMLElement)s=i;else{if(s=document.createElement("div"),i===!0)if(t instanceof ee)i=t.value;else if(t.definition.field)this.langBind("columns|"+t.definition.field,(l)=>{s.innerHTML=i=l||t.definition.title});else i=t.definition.title;s.innerHTML=i}if(i||i===0||i===!1){if(s.classList.add("tabulator-tooltip"),s.addEventListener("mousemove",(l)=>l.preventDefault()),this.popupInstance=this.popup(s),typeof r==="function")this.popupInstance.renderCallback(r);o=this.popupInstance.containerEventCoords(e),this.popupInstance.show(o.x+15,o.y+15).hideOnBlur(()=>{this.dispatchExternal("TooltipClosed",t.getComponent()),this.popupInstance=null}),this.dispatchExternal("TooltipOpened",t.getComponent())}}}var mi={debugEventsExternal:!1,debugEventsInternal:!1,debugInvalidOptions:!0,debugInvalidComponentFuncs:!0,debugInitialization:!0,debugDeprecation:!0,height:!1,minHeight:!1,maxHeight:!1,columnHeaderVertAlign:"top",popupContainer:!1,columns:[],columnDefaults:{},rowHeader:!1,data:!1,autoColumns:!1,autoColumnsDefinitions:!1,nestedFieldSeparator:".",footerElement:!1,index:"id",textDirection:"auto",addRowPos:"bottom",headerVisible:!0,renderVertical:"virtual",renderHorizontal:"basic",renderVerticalBuffer:0,scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,rowHeight:null,placeholder:!1,dataLoader:!0,dataLoaderLoading:!1,dataLoaderError:!1,dataLoaderErrorTimeout:3000,dataSendParams:{},dataReceiveParams:{},dependencies:{}};class be{constructor(e,t,i={}){this.table=e,this.msgType=t,this.registeredDefaults=Object.assign({},i)}register(e,t){this.registeredDefaults[e]=t}generate(e,t={}){var i=Object.assign({},this.registeredDefaults),s=this.table.options.debugInvalidOptions||t.debugInvalidOptions===!0;Object.assign(i,e);for(let r in t)if(!i.hasOwnProperty(r)){if(s)console.warn("Invalid "+this.msgType+" option:",r);i[r]=t.key}for(let r in i)if(r in t)i[r]=t[r];else if(Array.isArray(i[r]))i[r]=Object.assign([],i[r]);else if(typeof i[r]==="object"&&i[r]!==null)i[r]=Object.assign({},i[r]);else if(typeof i[r]>"u")delete i[r];return i}}class q extends H{constructor(e){super(e);this.elementVertical=e.rowManager.element,this.elementHorizontal=e.columnManager.element,this.tableElement=e.rowManager.tableElement,this.verticalFillMode="fit"}initialize(){}clearRows(){}clearColumns(){}reinitializeColumnWidths(e){}renderRows(){}renderColumns(){}rerenderRows(e){if(e)e()}rerenderColumns(e,t){}renderRowCells(e){}rerenderRowCells(e,t){}scrollColumns(e,t){}scrollRows(e,t){}resize(){}scrollToRow(e){}scrollToRowNearestTop(e){}visibleRows(e){return[]}rows(){return this.table.rowManager.getDisplayRows()}styleRow(e,t){var i=e.getElement();if(t%2)i.classList.add("tabulator-row-even"),i.classList.remove("tabulator-row-odd");else i.classList.add("tabulator-row-odd"),i.classList.remove("tabulator-row-even")}clear(){this.clearRows(),this.clearColumns()}render(){this.renderRows(),this.renderColumns()}rerender(e){this.rerenderRows(),this.rerenderColumns()}scrollToRowPosition(e,t,i){var s=this.rows().indexOf(e),r=e.getElement(),o=0;return new Promise((a,l)=>{if(s>-1){if(typeof i>"u")i=this.table.options.scrollToRowIfVisible;if(!i){if(M.elVisible(r)){if(o=M.elOffset(r).top-M.elOffset(this.elementVertical).top,o>0&&o<this.elementVertical.clientHeight-r.offsetHeight)return a(),!1}}if(typeof t>"u")t=this.table.options.scrollToRowPosition;if(t==="nearest")t=this.scrollToRowNearestTop(e)?"top":"bottom";switch(this.scrollToRow(e),t){case"middle":case"center":if(this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight)this.elementVertical.scrollTop=this.elementVertical.scrollTop+(r.offsetTop-this.elementVertical.scrollTop)-(this.elementVertical.scrollHeight-r.offsetTop)/2;else this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight/2;break;case"bottom":if(this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight)this.elementVertical.scrollTop=this.elementVertical.scrollTop-(this.elementVertical.scrollHeight-r.offsetTop)+r.offsetHeight;else this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight+r.offsetHeight;break;case"top":this.elementVertical.scrollTop=r.offsetTop;break}a()}else console.warn("Scroll Error - Row not visible"),l("Scroll Error - Row not visible")})}}class Me extends q{constructor(e){super(e)}renderRowCells(e,t){let i=document.createDocumentFragment();if(e.cells.forEach((s)=>{i.appendChild(s.getElement())}),e.element.appendChild(i),!t)e.cells.forEach((s)=>{s.cellRendered()})}reinitializeColumnWidths(e){e.forEach(function(t){t.reinitializeWidth()})}}class Le extends q{constructor(e){super(e);this.leftCol=0,this.rightCol=0,this.scrollLeft=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0,this.fitDataColAvg=0,this.windowBuffer=200,this.visibleRows=null,this.initialized=!1,this.isFitData=!1,this.columns=[]}initialize(){this.compatibilityCheck(),this.layoutCheck(),this.vertScrollListen()}compatibilityCheck(){if(this.options("layout")=="fitDataTable")console.warn("Horizontal Virtual DOM is not compatible with fitDataTable layout mode");if(this.options("responsiveLayout"))console.warn("Horizontal Virtual DOM is not compatible with responsive columns");if(this.options("rtl"))console.warn("Horizontal Virtual DOM is not currently compatible with RTL text direction")}layoutCheck(){this.isFitData=this.options("layout").startsWith("fitData")}vertScrollListen(){this.subscribe("scroll-vertical",this.clearVisRowCache.bind(this)),this.subscribe("data-refreshed",this.clearVisRowCache.bind(this))}clearVisRowCache(){this.visibleRows=null}renderColumns(e,t){this.dataChange()}scrollColumns(e,t){if(this.scrollLeft!=e)this.scrollLeft=e,this.scroll(e-(this.vDomScrollPosLeft+this.windowBuffer))}calcWindowBuffer(){var e=this.elementVertical.clientWidth;this.table.columnManager.columnsByIndex.forEach((t)=>{if(t.visible){var i=t.getWidth();if(i>e)e=i}}),this.windowBuffer=e*2}rerenderColumns(e,t){var i={cols:this.columns,leftCol:this.leftCol,rightCol:this.rightCol},s=0;if(e&&!this.initialized)return;if(this.clear(),this.calcWindowBuffer(),this.scrollLeft=this.elementVertical.scrollLeft,this.vDomScrollPosLeft=this.scrollLeft-this.windowBuffer,this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,this.table.columnManager.columnsByIndex.forEach((r)=>{var o={},a;if(r.visible){if(!r.modules.frozen){if(a=r.getWidth(),o.leftPos=s,o.rightPos=s+a,o.width=a,this.isFitData)o.fitDataCheck=r.modules.vdomHoz?r.modules.vdomHoz.fitDataCheck:!0;if(s+a>this.vDomScrollPosLeft&&s<this.vDomScrollPosRight){if(this.leftCol==-1)this.leftCol=this.columns.length,this.vDomPadLeft=s;this.rightCol=this.columns.length}else if(this.leftCol!==-1)this.vDomPadRight+=a;this.columns.push(r),r.modules.vdomHoz=o,s+=a}}}),this.tableElement.style.paddingLeft=this.vDomPadLeft+"px",this.tableElement.style.paddingRight=this.vDomPadRight+"px",this.initialized=!0,!t){if(!e||this.reinitChanged(i))this.reinitializeRows()}this.elementVertical.scrollLeft=this.scrollLeft}renderRowCells(e){if(this.initialized)this.initializeRow(e);else{let t=document.createDocumentFragment();e.cells.forEach((i)=>{t.appendChild(i.getElement())}),e.element.appendChild(t),e.cells.forEach((i)=>{i.cellRendered()})}}rerenderRowCells(e,t){this.reinitializeRow(e,t)}reinitializeColumnWidths(e){for(let t=this.leftCol;t<=this.rightCol;t++){let i=this.columns[t];if(i)i.reinitializeWidth()}}deinitialize(){this.initialized=!1}clear(){this.columns=[],this.leftCol=-1,this.rightCol=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0}dataChange(){var e=!1,t,i;if(this.isFitData){if(this.table.columnManager.columnsByIndex.forEach((s)=>{if(!s.definition.width&&s.visible)e=!0}),e&&this.table.rowManager.getDisplayRows().length){if(this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,t=this.chain("rows-sample",[1],[],()=>this.table.rowManager.getDisplayRows())[0],t){i=t.getElement(),t.generateCells(),this.tableElement.appendChild(i);for(let s=0;s<t.cells.length;s++){let r=t.cells[s];i.appendChild(r.getElement()),r.column.reinitializeWidth()}i.parentNode.removeChild(i),this.rerenderColumns(!1,!0)}}}else if(this.options("layout")==="fitColumns")this.layoutRefresh(),this.rerenderColumns(!1,!0)}reinitChanged(e){var t=!0;if(e.cols.length!==this.columns.length||e.leftCol!==this.leftCol||e.rightCol!==this.rightCol)return!0;return e.cols.forEach((i,s)=>{if(i!==this.columns[s])t=!1}),!t}reinitializeRows(){var e=this.getVisibleRows(),t=this.table.rowManager.getRows().filter((i)=>!e.includes(i));e.forEach((i)=>{this.reinitializeRow(i,!0)}),t.forEach((i)=>{i.deinitialize()})}getVisibleRows(){if(!this.visibleRows)this.visibleRows=this.table.rowManager.getVisibleRows();return this.visibleRows}scroll(e){if(this.vDomScrollPosLeft+=e,this.vDomScrollPosRight+=e,Math.abs(e)>this.windowBuffer/2)this.rerenderColumns();else if(e>0)this.addColRight(),this.removeColLeft();else this.addColLeft(),this.removeColRight()}colPositionAdjust(e,t,i){for(let s=e;s<t;s++){let r=this.columns[s];r.modules.vdomHoz.leftPos+=i,r.modules.vdomHoz.rightPos+=i}}addColRight(){var e=!1,t=!0;while(t){let i=this.columns[this.rightCol+1];if(i)if(i.modules.vdomHoz.leftPos<=this.vDomScrollPosRight)if(e=!0,this.getVisibleRows().forEach((s)=>{if(s.type!=="group"){var r=s.getCell(i);s.getElement().insertBefore(r.getElement(),s.getCell(this.columns[this.rightCol]).getElement().nextSibling),r.cellRendered()}}),this.fitDataColActualWidthCheck(i),this.rightCol++,this.getVisibleRows().forEach((s)=>{if(s.type!=="group")s.modules.vdomHoz.rightCol=this.rightCol}),this.rightCol>=this.columns.length-1)this.vDomPadRight=0;else this.vDomPadRight-=i.getWidth();else t=!1;else t=!1}if(e)this.tableElement.style.paddingRight=this.vDomPadRight+"px"}addColLeft(){var e=!1,t=!0;while(t){let i=this.columns[this.leftCol-1];if(i)if(i.modules.vdomHoz.rightPos>=this.vDomScrollPosLeft){if(e=!0,this.getVisibleRows().forEach((r)=>{if(r.type!=="group"){var o=r.getCell(i);r.getElement().insertBefore(o.getElement(),r.getCell(this.columns[this.leftCol]).getElement()),o.cellRendered()}}),this.leftCol--,this.getVisibleRows().forEach((r)=>{if(r.type!=="group")r.modules.vdomHoz.leftCol=this.leftCol}),this.leftCol<=0)this.vDomPadLeft=0;else this.vDomPadLeft-=i.getWidth();let s=this.fitDataColActualWidthCheck(i);if(s)this.scrollLeft=this.elementVertical.scrollLeft=this.elementVertical.scrollLeft+s,this.vDomPadRight-=s}else t=!1;else t=!1}if(e)this.tableElement.style.paddingLeft=this.vDomPadLeft+"px"}removeColRight(){var e=!1,t=!0;while(t){let i=this.columns[this.rightCol];if(i)if(i.modules.vdomHoz.leftPos>this.vDomScrollPosRight)e=!0,this.getVisibleRows().forEach((s)=>{if(s.type!=="group"){var r=s.getCell(i);try{s.getElement().removeChild(r.getElement())}catch(o){console.warn("Could not removeColRight",o.message)}}}),this.vDomPadRight+=i.getWidth(),this.rightCol--,this.getVisibleRows().forEach((s)=>{if(s.type!=="group")s.modules.vdomHoz.rightCol=this.rightCol});else t=!1;else t=!1}if(e)this.tableElement.style.paddingRight=this.vDomPadRight+"px"}removeColLeft(){var e=!1,t=!0;while(t){let i=this.columns[this.leftCol];if(i)if(i.modules.vdomHoz.rightPos<this.vDomScrollPosLeft)e=!0,this.getVisibleRows().forEach((s)=>{if(s.type!=="group"){var r=s.getCell(i);try{s.getElement().removeChild(r.getElement())}catch(o){console.warn("Could not removeColLeft",o.message)}}}),this.vDomPadLeft+=i.getWidth(),this.leftCol++,this.getVisibleRows().forEach((s)=>{if(s.type!=="group")s.modules.vdomHoz.leftCol=this.leftCol});else t=!1;else t=!1}if(e)this.tableElement.style.paddingLeft=this.vDomPadLeft+"px"}fitDataColActualWidthCheck(e){var t,i;if(e.modules.vdomHoz.fitDataCheck){if(e.reinitializeWidth(),t=e.getWidth(),i=t-e.modules.vdomHoz.width,i)e.modules.vdomHoz.rightPos+=i,e.modules.vdomHoz.width=t,this.colPositionAdjust(this.columns.indexOf(e)+1,this.columns.length,i);e.modules.vdomHoz.fitDataCheck=!1}return i}initializeRow(e){if(e.type!=="group"){if(e.modules.vdomHoz={leftCol:this.leftCol,rightCol:this.rightCol},this.table.modules.frozenColumns)this.table.modules.frozenColumns.leftColumns.forEach((t)=>{this.appendCell(e,t)});for(let t=this.leftCol;t<=this.rightCol;t++)this.appendCell(e,this.columns[t]);if(this.table.modules.frozenColumns)this.table.modules.frozenColumns.rightColumns.forEach((t)=>{this.appendCell(e,t)})}}appendCell(e,t){if(t&&t.visible){let i=e.getCell(t);e.getElement().appendChild(i.getElement()),i.cellRendered()}}reinitializeRow(e,t){if(e.type!=="group"){if(t||!e.modules.vdomHoz||e.modules.vdomHoz.leftCol!==this.leftCol||e.modules.vdomHoz.rightCol!==this.rightCol){var i=e.getElement();while(i.firstChild)i.removeChild(i.firstChild);this.initializeRow(e)}}}}class Se extends H{constructor(e){super(e);this.blockHozScrollEvent=!1,this.headersElement=null,this.contentsElement=null,this.rowHeader=null,this.element=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.optionsList=new be(this.table,"column definition",Te),this.redrawBlock=!1,this.redrawBlockUpdate=null,this.renderer=null}initialize(){this.initializeRenderer(),this.headersElement=this.createHeadersElement(),this.contentsElement=this.createHeaderContentsElement(),this.element=this.createHeaderElement(),this.contentsElement.insertBefore(this.headersElement,this.contentsElement.firstChild),this.element.insertBefore(this.contentsElement,this.element.firstChild),this.initializeScrollWheelWatcher(),this.subscribe("scroll-horizontal",this.scrollHorizontal.bind(this)),this.subscribe("scrollbar-vertical",this.padVerticalScrollbar.bind(this))}padVerticalScrollbar(e){if(this.table.rtl)this.headersElement.style.marginLeft=e+"px";else this.headersElement.style.marginRight=e+"px"}initializeRenderer(){var e,t={virtual:Le,basic:Me};if(typeof this.table.options.renderHorizontal==="string")e=t[this.table.options.renderHorizontal];else e=this.table.options.renderHorizontal;if(e)this.renderer=new e(this.table,this.element,this.tableElement),this.renderer.initialize();else console.error("Unable to find matching renderer:",this.table.options.renderHorizontal)}createHeadersElement(){var e=document.createElement("div");return e.classList.add("tabulator-headers"),e.setAttribute("role","row"),e}createHeaderContentsElement(){var e=document.createElement("div");return e.classList.add("tabulator-header-contents"),e}createHeaderElement(){var e=document.createElement("div");if(e.classList.add("tabulator-header"),e.setAttribute("role","rowgroup"),!this.table.options.headerVisible)e.classList.add("tabulator-header-hidden");return e}getElement(){return this.element}getContentsElement(){return this.contentsElement}getHeadersElement(){return this.headersElement}scrollHorizontal(e){this.contentsElement.scrollLeft=e,this.scrollLeft=e,this.renderer.scrollColumns(e)}initializeScrollWheelWatcher(){this.contentsElement.addEventListener("wheel",(e)=>{var t;if(e.deltaX)t=this.contentsElement.scrollLeft+e.deltaX,this.table.rowManager.scrollHorizontal(t),this.table.columnManager.scrollHorizontal(t)})}generateColumnsFromRowData(e){var t=[],i={},s=this.table.options.autoColumns==="full"?e:[e[0]],r=this.table.options.autoColumnsDefinitions;if(e&&e.length){if(s.forEach((o)=>{Object.keys(o).forEach((a,l)=>{let h=o[a],d;if(!i[a])d={field:a,title:a,sorter:this.calculateSorterFromValue(h)},t.splice(l,0,d),i[a]=typeof h>"u"?d:!0;else if(i[a]!==!0){if(typeof h<"u")i[a].sorter=this.calculateSorterFromValue(h),i[a]=!0}})}),r)switch(typeof r){case"function":this.table.options.columns=r.call(this.table,t);break;case"object":if(Array.isArray(r))t.forEach((o)=>{var a=r.find((l)=>l.field===o.field);if(a)Object.assign(o,a)});else t.forEach((o)=>{if(r[o.field])Object.assign(o,r[o.field])});this.table.options.columns=t;break}else this.table.options.columns=t;this.setColumns(this.table.options.columns)}}calculateSorterFromValue(e){var t;switch(typeof e){case"undefined":t="string";break;case"boolean":t="boolean";break;case"number":t="number";break;case"object":if(Array.isArray(e))t="array";else t="string";break;default:if(!isNaN(Number(e))&&e!=="")t="number";else if(e.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i))t="alphanum";else t="string";break}return t}setColumns(e,t){while(this.headersElement.firstChild)this.headersElement.removeChild(this.headersElement.firstChild);if(this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.dispatch("columns-loading"),this.dispatchExternal("columnsLoading"),this.table.options.rowHeader)this.rowHeader=new V(this.table.options.rowHeader===!0?{}:this.table.options.rowHeader,this,!0),this.columns.push(this.rowHeader),this.headersElement.appendChild(this.rowHeader.getElement()),this.rowHeader.columnRendered();if(e.forEach((i,s)=>{this._addColumn(i)}),this._reIndexColumns(),this.dispatch("columns-loaded"),this.subscribedExternal("columnsLoaded"))this.dispatchExternal("columnsLoaded",this.getComponents());this.rerenderColumns(!1,!0),this.redraw(!0)}_addColumn(e,t,i){var s=new V(e,this),r=s.getElement(),o=i?this.findColumnIndex(i):i;if(t&&this.rowHeader&&(!i||i===this.rowHeader))t=!1,i=this.rowHeader,o=0;if(i&&o>-1){var a=i.getTopColumn(),l=this.columns.indexOf(a),h=a.getElement();if(t)this.columns.splice(l,0,s),h.parentNode.insertBefore(r,h);else this.columns.splice(l+1,0,s),h.parentNode.insertBefore(r,h.nextSibling)}else if(t)this.columns.unshift(s),this.headersElement.insertBefore(s.getElement(),this.headersElement.firstChild);else this.columns.push(s),this.headersElement.appendChild(s.getElement());return s.columnRendered(),s}registerColumnField(e){if(e.definition.field)this.columnsByField[e.definition.field]=e}registerColumnPosition(e){this.columnsByIndex.push(e)}_reIndexColumns(){this.columnsByIndex=[],this.columns.forEach(function(e){e.reRegisterPosition()})}verticalAlignHeaders(){var e=0;if(!this.redrawBlock)this.headersElement.style.height="",this.columns.forEach((t)=>{t.clearVerticalAlign()}),this.columns.forEach((t)=>{var i=t.getHeight();if(i>e)e=i}),this.headersElement.style.height=e+"px",this.columns.forEach((t)=>{t.verticalAlign(this.table.options.columnHeaderVertAlign,e)}),this.table.rowManager.adjustTableSize()}findColumn(e){var t;if(typeof e=="object"){if(e instanceof V)return e;else if(e instanceof ae)return e._getSelf()||!1;else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)return t=[],this.columns.forEach((s)=>{t.push(s),t=t.concat(s.getColumns(!0))}),t.find((s)=>s.element===e)||!1}else return this.columnsByField[e]||!1;return!1}getColumnByField(e){return this.columnsByField[e]}getColumnsByFieldRoot(e){var t=[];return Object.keys(this.columnsByField).forEach((i)=>{var s=this.table.options.nestedFieldSeparator?i.split(this.table.options.nestedFieldSeparator)[0]:i;if(s===e)t.push(this.columnsByField[i])}),t}getColumnByIndex(e){return this.columnsByIndex[e]}getFirstVisibleColumn(){var e=this.columnsByIndex.findIndex((t)=>t.visible);return e>-1?this.columnsByIndex[e]:!1}getVisibleColumnsByIndex(){return this.columnsByIndex.filter((e)=>e.visible)}getColumns(){return this.columns}findColumnIndex(e){return this.columnsByIndex.findIndex((t)=>e===t)}getRealColumns(){return this.columnsByIndex}traverse(e){this.columnsByIndex.forEach((t,i)=>{e(t,i)})}getDefinitions(e){var t=[];return this.columnsByIndex.forEach((i)=>{if(!e||e&&i.visible)t.push(i.getDefinition())}),t}getDefinitionTree(){var e=[];return this.columns.forEach((t)=>{e.push(t.getDefinition(!0))}),e}getComponents(e){var t=[],i=e?this.columns:this.columnsByIndex;return i.forEach((s)=>{t.push(s.getComponent())}),t}getWidth(){var e=0;return this.columnsByIndex.forEach((t)=>{if(t.visible)e+=t.getWidth()}),e}moveColumn(e,t,i){if(t.element.parentNode.insertBefore(e.element,t.element),i)t.element.parentNode.insertBefore(t.element,e.element);this.moveColumnActual(e,t,i),this.verticalAlignHeaders(),this.table.rowManager.reinitialize()}moveColumnActual(e,t,i){if(e.parent.isGroup)this._moveColumnInArray(e.parent.columns,e,t,i);else this._moveColumnInArray(this.columns,e,t,i);if(this._moveColumnInArray(this.columnsByIndex,e,t,i,!0),this.rerenderColumns(!0),this.dispatch("column-moved",e,t,i),this.subscribedExternal("columnMoved"))this.dispatchExternal("columnMoved",e.getComponent(),this.table.columnManager.getComponents())}_moveColumnInArray(e,t,i,s,r){var o=e.indexOf(t),a,l=[];if(o>-1){if(e.splice(o,1),a=e.indexOf(i),a>-1){if(s)a=a+1}else a=o;if(e.splice(a,0,t),r)l=this.chain("column-moving-rows",[t,i,s],null,[])||[],l=l.concat(this.table.rowManager.rows),l.forEach(function(h){if(h.cells.length){var d=h.cells.splice(o,1)[0];h.cells.splice(a,0,d)}})}}scrollToColumn(e,t,i){var s=0,r=e.getLeftOffset(),o=0,a=e.getElement();return new Promise((l,h)=>{if(typeof t>"u")t=this.table.options.scrollToColumnPosition;if(typeof i>"u")i=this.table.options.scrollToColumnIfVisible;if(e.visible){switch(t){case"middle":case"center":o=-this.element.clientWidth/2;break;case"right":o=a.clientWidth-this.headersElement.clientWidth;break}if(!i){if(r>0&&r+a.offsetWidth<this.element.clientWidth)return!1}s=r+o,s=Math.max(Math.min(s,this.table.rowManager.element.scrollWidth-this.table.rowManager.element.clientWidth),0),this.table.rowManager.scrollHorizontal(s),this.scrollHorizontal(s),l()}else console.warn("Scroll Error - Column not visible"),h("Scroll Error - Column not visible")})}generateCells(e){var t=[];return this.columnsByIndex.forEach((i)=>{t.push(i.generateCell(e))}),t}getFlexBaseWidth(){var e=this.table.element.clientWidth,t=0;if(this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight)e-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth;return this.columnsByIndex.forEach(function(i){var s,r,o;if(i.visible){if(s=i.definition.width||0,r=parseInt(i.minWidth),typeof s=="string")if(s.indexOf("%")>-1)o=e/100*parseInt(s);else o=parseInt(s);else o=s;t+=o>r?o:r}}),t}addColumn(e,t,i){return new Promise((s,r)=>{var o=this._addColumn(e,t,i);if(this._reIndexColumns(),this.dispatch("column-add",e,t,i),this.layoutMode()!="fitColumns")o.reinitializeWidth();this.redraw(!0),this.table.rowManager.reinitialize(),this.rerenderColumns(),s(o)})}deregisterColumn(e){var t=e.getField(),i;if(t)delete this.columnsByField[t];if(i=this.columnsByIndex.indexOf(e),i>-1)this.columnsByIndex.splice(i,1);if(i=this.columns.indexOf(e),i>-1)this.columns.splice(i,1);this.verticalAlignHeaders(),this.redraw()}rerenderColumns(e,t){if(!this.redrawBlock)this.renderer.rerenderColumns(e,t);else if(e===!1||e===!0&&this.redrawBlockUpdate===null)this.redrawBlockUpdate=e}blockRedraw(){this.redrawBlock=!0,this.redrawBlockUpdate=null}restoreRedraw(){this.redrawBlock=!1,this.verticalAlignHeaders(),this.renderer.rerenderColumns(this.redrawBlockUpdate)}redraw(e){if(M.elVisible(this.element))this.verticalAlignHeaders();if(e)this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize();if(!this.confirm("table-redrawing",e))this.layoutRefresh(e);this.dispatch("table-redraw",e),this.table.footerManager.redraw()}}class De extends q{constructor(e){super(e);this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0}clearRows(){var e=this.tableElement;while(e.firstChild)e.removeChild(e.firstChild);e.scrollTop=0,e.scrollLeft=0,e.style.minWidth="",e.style.minHeight="",e.style.display="",e.style.visibility=""}renderRows(){var e=this.tableElement,t=!0,i=document.createDocumentFragment(),s=this.rows();if(s.forEach((r,o)=>{if(this.styleRow(r,o),r.initialize(!1,!0),r.type!=="group")t=!1;i.appendChild(r.getElement())}),e.appendChild(i),s.forEach((r)=>{if(r.rendered(),!r.heightInitialized)r.calcHeight(!0)}),s.forEach((r)=>{if(!r.heightInitialized)r.setCellHeight()}),t)e.style.minWidth=this.table.columnManager.getWidth()+"px";else e.style.minWidth=""}rerenderRows(e){let t=this.elementVertical.scrollTop;if(this.clearRows(),e)e();if(this.renderRows(),!this.rows().length)this.table.rowManager.tableEmpty();else this.elementVertical.scrollTop=t}scrollToRowNearestTop(e){var t=M.elOffset(e.getElement()).top;return!(Math.abs(this.elementVertical.scrollTop-t)>Math.abs(this.elementVertical.scrollTop+this.elementVertical.clientHeight-t))}scrollToRow(e){var t=e.getElement();this.elementVertical.scrollTop=M.elOffset(t).top-M.elOffset(this.elementVertical).top+this.elementVertical.scrollTop}visibleRows(e){return this.rows()}}class ze extends q{constructor(e){super(e);this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[]}clearRows(){var e=this.tableElement;while(e.firstChild)e.removeChild(e.firstChild);e.style.paddingTop="",e.style.paddingBottom="",e.style.minHeight="",e.style.display="",e.style.visibility="",this.elementVertical.scrollTop=0,this.elementVertical.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0}renderRows(){this._virtualRenderFill()}rerenderRows(e){var t=this.elementVertical.scrollTop,i=!1,s=!1,r=this.table.rowManager.scrollLeft,o=this.rows();for(var a=this.vDomTop;a<=this.vDomBottom;a++)if(o[a]){var l=t-o[a].getElement().offsetTop;if(s===!1||Math.abs(l)<s)s=l,i=a;else break}if(o.forEach((h)=>{h.deinitializeHeight()}),e)e();if(this.rows().length){if(i===!1)i=o.length?this.rows().length-1:0;this._virtualRenderFill(i,!0,s||0)}else this.clear(),this.table.rowManager.tableEmpty();this.scrollColumns(r)}scrollColumns(e){this.table.rowManager.scrollHorizontal(e)}scrollRows(e,t){var i=e-this.vDomScrollPosTop,s=e-this.vDomScrollPosBottom,r=this.vDomWindowBuffer*2,o=this.rows();if(this.scrollTop=e,-i>r||s>r){var a=this.table.rowManager.scrollLeft;this._virtualRenderFill(Math.floor(this.elementVertical.scrollTop/this.elementVertical.scrollHeight*o.length)),this.scrollColumns(a)}else if(t){if(i<0)this._addTopRow(o,-i);if(s<0)if(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer)this._removeBottomRow(o,-s);else this.vDomScrollPosBottom=this.scrollTop}else{if(s>=0)this._addBottomRow(o,s);if(i>=0)if(this.scrollTop>this.vDomWindowBuffer)this._removeTopRow(o,i);else this.vDomScrollPosTop=this.scrollTop}}resize(){this.vDomWindowBuffer=this.table.options.renderVerticalBuffer||this.elementVertical.clientHeight}scrollToRowNearestTop(e){var t=this.rows().indexOf(e);return!(Math.abs(this.vDomTop-t)>Math.abs(this.vDomBottom-t))}scrollToRow(e){var t=this.rows().indexOf(e);if(t>-1)this._virtualRenderFill(t,!0)}visibleRows(e){var t=this.elementVertical.scrollTop,i=this.elementVertical.clientHeight+t,s=!1,r=0,o=0,a=this.rows();if(e)r=this.vDomTop,o=this.vDomBottom;else for(var l=this.vDomTop;l<=this.vDomBottom;l++)if(a[l])if(!s)if(t-a[l].getElement().offsetTop>=0)r=l;else if(s=!0,i-a[l].getElement().offsetTop>=0)o=l;else break;else if(i-a[l].getElement().offsetTop>=0)o=l;else break;return a.slice(r,o+1)}_virtualRenderFill(e,t,i){var s=this.tableElement,r=this.elementVertical,o=0,a=0,l=0,h=0,d=0,u=0,c=this.rows(),f=c.length,p=0,m,b,v=[],w=0,R=0,S=this.table.rowManager.fixedHeight,T=this.elementVertical.clientHeight,A=this.table.options.rowHeight,B=!0;if(e=e||0,i=i||0,!e)this.clear();else{while(s.firstChild)s.removeChild(s.firstChild);if(h=(f-e+1)*this.vDomRowHeight,h<T){if(e-=Math.ceil((T-h)/this.vDomRowHeight),e<0)e=0}o=Math.min(Math.max(Math.floor(this.vDomWindowBuffer/this.vDomRowHeight),this.vDomWindowMinMarginRows),e),e-=o}if(f&&M.elVisible(this.elementVertical)){if(this.vDomTop=e,this.vDomBottom=e-1,S||this.table.options.maxHeight){if(A)R=T/A+this.vDomWindowBuffer/A;R=Math.max(this.vDomWindowMinTotalRows,Math.ceil(R))}else R=f;while((R==f||a<=T+this.vDomWindowBuffer||w<this.vDomWindowMinTotalRows)&&this.vDomBottom<f-1){v=[],b=document.createDocumentFragment(),u=0;while(u<R&&this.vDomBottom<f-1){if(p=this.vDomBottom+1,m=c[p],this.styleRow(m,p),m.initialize(!1,!0),!m.heightInitialized&&!this.table.options.rowHeight)m.clearCellHeight();b.appendChild(m.getElement()),v.push(m),this.vDomBottom++,u++}if(!v.length)break;s.appendChild(b),v.forEach((E)=>{E.rendered()});let C=[];if(v.forEach((E)=>{if(!E.heightInitialized||!E.getHeight())E.calcHeight(!0),C.push(E)}),C.forEach((E)=>{E.setCellHeight()}),v.forEach((E)=>{if(l=E.getHeight()||this.vDomRowHeight,w<o)d+=l;else a+=l;if(l>this.vDomWindowBuffer)this.vDomWindowBuffer=l*2;w++}),B=this.table.rowManager.adjustTableSize(!0),T=this.elementVertical.clientHeight,B&&(S||this.table.options.maxHeight))A=a/w,R=Math.max(this.vDomWindowMinTotalRows,Math.ceil(T/A+this.vDomWindowBuffer/A))}if(!e)this.vDomTopPad=0,this.vDomRowHeight=Math.floor((a+d)/w),this.vDomBottomPad=this.vDomRowHeight*(f-this.vDomBottom-1),this.vDomScrollHeight=d+a+this.vDomBottomPad-T;else this.vDomTopPad=!t?this.scrollTop-d:this.vDomRowHeight*this.vDomTop+i,this.vDomBottomPad=this.vDomBottom==f-1?0:Math.max(this.vDomScrollHeight-this.vDomTopPad-a-d,0);if(s.style.paddingTop=this.vDomTopPad+"px",s.style.paddingBottom=this.vDomBottomPad+"px",t)this.scrollTop=this.vDomTopPad+d+i-(this.elementVertical.scrollWidth>this.elementVertical.clientWidth?this.elementVertical.offsetHeight-T:0);if(this.scrollTop=Math.min(this.scrollTop,this.elementVertical.scrollHeight-T),this.elementVertical.scrollWidth>this.elementVertical.clientWidth&&t)this.scrollTop+=this.elementVertical.offsetHeight-T;this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,r.scrollTop=this.scrollTop,this.dispatch("render-virtual-fill")}}_addTopRow(e,t){var i=this.tableElement,s=[],r=0,o=this.vDomTop-1,a=0,l=!0;while(l)if(this.vDomTop){let h=e[o],d,u;if(h&&a<this.vDomMaxRenderChain)if(d=h.getHeight()||this.vDomRowHeight,u=h.initialized,t>=d){if(this.styleRow(h,o),i.insertBefore(h.getElement(),i.firstChild),!h.initialized||!h.heightInitialized)s.push(h);if(h.initialize(),!u){if(d=h.getElement().offsetHeight,d>this.vDomWindowBuffer)this.vDomWindowBuffer=d*2}t-=d,r+=d,this.vDomTop--,o--,a++}else l=!1;else l=!1}else l=!1;for(let h of s)h.clearCellHeight();if(this._quickNormalizeRowHeight(s),r){if(this.vDomTopPad-=r,this.vDomTopPad<0)this.vDomTopPad=o*this.vDomRowHeight;if(o<1)this.vDomTopPad=0;i.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=r}}_removeTopRow(e,t){var i=[],s=0,r=0,o=!0;while(o){let a=e[this.vDomTop],l;if(a&&r<this.vDomMaxRenderChain)if(l=a.getHeight()||this.vDomRowHeight,t>=l)this.vDomTop++,t-=l,s+=l,i.push(a),r++;else o=!1;else o=!1}for(let a of i){let l=a.getElement();if(l.parentNode)l.parentNode.removeChild(l)}if(s)this.vDomTopPad+=s,this.tableElement.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?s:s+this.vDomWindowBuffer}_addBottomRow(e,t){var i=this.tableElement,s=[],r=0,o=this.vDomBottom+1,a=0,l=!0;while(l){let h=e[o],d,u;if(h&&a<this.vDomMaxRenderChain)if(d=h.getHeight()||this.vDomRowHeight,u=h.initialized,t>=d){if(this.styleRow(h,o),i.appendChild(h.getElement()),!h.initialized||!h.heightInitialized)s.push(h);if(h.initialize(),!u){if(d=h.getElement().offsetHeight,d>this.vDomWindowBuffer)this.vDomWindowBuffer=d*2}t-=d,r+=d,this.vDomBottom++,o++,a++}else l=!1;else l=!1}for(let h of s)h.clearCellHeight();if(this._quickNormalizeRowHeight(s),r){if(this.vDomBottomPad-=r,this.vDomBottomPad<0||o==e.length-1)this.vDomBottomPad=0;i.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=r}}_removeBottomRow(e,t){var i=[],s=0,r=0,o=!0;while(o){let a=e[this.vDomBottom],l;if(a&&r<this.vDomMaxRenderChain)if(l=a.getHeight()||this.vDomRowHeight,t>=l)this.vDomBottom--,t-=l,s+=l,i.push(a),r++;else o=!1;else o=!1}for(let a of i){let l=a.getElement();if(l.parentNode)l.parentNode.removeChild(l)}if(s){if(this.vDomBottomPad+=s,this.vDomBottomPad<0)this.vDomBottomPad=0;this.tableElement.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=s}}_quickNormalizeRowHeight(e){for(let t of e)t.calcHeight();for(let t of e)t.setCellHeight()}}class Fe extends H{constructor(e){super(e);this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.placeholder=null,this.placeholderContents=null,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRowsPipeline=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRenderInPosition=!1,this.dataPipeline=[],this.displayPipeline=[],this.scrollbarWidth=0,this.renderer=null}createHolderElement(){var e=document.createElement("div");return e.classList.add("tabulator-tableholder"),e.setAttribute("tabindex",0),e}createTableElement(){var e=document.createElement("div");return e.classList.add("tabulator-table"),e.setAttribute("role","rowgroup"),e.setAttribute("id","tabulator-table-body-"+this.table.instanceId),e}initializePlaceholder(){var e=this.table.options.placeholder;if(typeof e==="function")e=e.call(this.table);if(e=this.chain("placeholder",[e],e,e)||e,e){let t=document.createElement("div");if(t.classList.add("tabulator-placeholder"),typeof e=="string"){let i=document.createElement("div");i.classList.add("tabulator-placeholder-contents"),i.innerHTML=e,t.appendChild(i),this.placeholderContents=i}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)t.appendChild(e),this.placeholderContents=e;else console.warn("Invalid placeholder provided, must be string or HTML Element",e),this.el=null;this.placeholder=t}}getElement(){return this.element}getTableElement(){return this.tableElement}initialize(){this.initializePlaceholder(),this.initializeRenderer(),this.element.appendChild(this.tableElement),this.firstRender=!0,this.element.addEventListener("scroll",()=>{var e=this.element.scrollLeft,t=this.scrollLeft>e,i=this.element.scrollTop,s=this.scrollTop>i;if(this.scrollLeft!=e)this.scrollLeft=e,this.dispatch("scroll-horizontal",e,t),this.dispatchExternal("scrollHorizontal",e,t),this._positionPlaceholder();if(this.scrollTop!=i)this.scrollTop=i,this.renderer.scrollRows(i,s),this.dispatch("scroll-vertical",i,s),this.dispatchExternal("scrollVertical",i,s)})}findRow(e){if(typeof e=="object"){if(e instanceof O)return e;else if(e instanceof le)return e._getSelf()||!1;else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)return this.rows.find((i)=>i.getElement()===e)||!1;else if(e===null)return!1}else if(typeof e>"u")return!1;else return this.rows.find((i)=>i.data[this.table.options.index]==e)||!1;return!1}getRowFromDataObject(e){var t=this.rows.find((i)=>i.data===e);return t||!1}getRowFromPosition(e){return this.getDisplayRows().find((t)=>t.type==="row"&&t.getPosition()===e&&t.isDisplayed())}scrollToRow(e,t,i){return this.renderer.scrollToRowPosition(e,t,i)}setData(e,t,i){return new Promise((s,r)=>{if(t&&this.getDisplayRows().length)if(this.table.options.pagination)this._setDataActual(e,!0);else this.reRenderInPosition(()=>{this._setDataActual(e)});else{if(this.table.options.autoColumns&&i&&this.table.initialized)this.table.columnManager.generateColumnsFromRowData(e);this.resetScroll(),this._setDataActual(e)}s()})}_setDataActual(e,t){if(this.dispatchExternal("dataProcessing",e),this._wipeElements(),Array.isArray(e))this.dispatch("data-processing",e),e.forEach((i,s)=>{if(i&&typeof i==="object"){var r=new O(i,this);this.rows.push(r)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",i)}),this.refreshActiveData(!1,!1,t),this.dispatch("data-processed",e),this.dispatchExternal("dataProcessed",e);else console.error(`Data Loading Error - Unable to process data due to invalid data type
|
|
3
|
+
`)}copy(e,t){var i,s;if(this.blocked=!1,this.customSelection=!1,this.mode===!0||this.mode==="copy"){if(this.rowRange=e||this.table.options.clipboardCopyRowRange,typeof window.getSelection<"u"&&typeof document.createRange<"u"){if(e=document.createRange(),e.selectNodeContents(this.table.element),i=window.getSelection(),i.toString()&&t)this.customSelection=i.toString();i.removeAllRanges(),i.addRange(e)}else if(typeof document.selection<"u"&&typeof document.body.createTextRange<"u")s=document.body.createTextRange(),s.moveToElementText(this.table.element),s.select();if(document.execCommand("copy"),i)i.removeAllRanges()}}setPasteAction(e){switch(typeof e){case"string":if(this.pasteAction=X.pasteActions[e],!this.pasteAction)console.warn("Clipboard Error - No such paste action found:",e);break;case"function":this.pasteAction=e;break}}setPasteParser(e){switch(typeof e){case"string":if(this.pasteParser=X.pasteParsers[e],!this.pasteParser)console.warn("Clipboard Error - No such paste parser found:",e);break;case"function":this.pasteParser=e;break}}paste(e){var t,i,s;if(this.checkPasteOrigin(e))if(t=this.getPasteData(e),i=this.pasteParser.call(this,t),i){if(e.preventDefault(),this.table.modExists("mutator"))i=this.mutateData(i);s=this.pasteAction.call(this,i),this.dispatchExternal("clipboardPasted",t,i,s)}else this.dispatchExternal("clipboardPasteError",t)}mutateData(e){var t=[];if(Array.isArray(e))e.forEach((i)=>{t.push(this.table.modules.mutator.transformRow(i,"clipboard"))});else t=e;return t}checkPasteOrigin(e){var t=!0,i=this.confirm("clipboard-paste",[e]);if(i||!["DIV","SPAN"].includes(e.target.tagName))t=!1;return t}getPasteData(e){var t;if(window.clipboardData&&window.clipboardData.getData)t=window.clipboardData.getData("Text");else if(e.clipboardData&&e.clipboardData.getData)t=e.clipboardData.getData("text/plain");else if(e.originalEvent&&e.originalEvent.clipboardData.getData)t=e.originalEvent.clipboardData.getData("text/plain");return t}}class oe{constructor(e){return this._cell=e,new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._cell.table.componentFunctionBinder.handle("cell",t._cell,i)}})}getValue(){return this._cell.getValue()}getOldValue(){return this._cell.getOldValue()}getInitialValue(){return this._cell.initialValue}getElement(){return this._cell.getElement()}getRow(){return this._cell.row.getComponent()}getData(e){return this._cell.row.getData(e)}getType(){return"cell"}getField(){return this._cell.column.getField()}getColumn(){return this._cell.column.getComponent()}setValue(e,t){if(typeof t>"u")t=!0;this._cell.setValue(e,t)}restoreOldValue(){this._cell.setValueActual(this._cell.getOldValue())}restoreInitialValue(){this._cell.setValueActual(this._cell.initialValue)}checkHeight(){this._cell.checkHeight()}getTable(){return this._cell.table}_getSelf(){return this._cell}}class ee extends H{constructor(e,t){super(e.table);this.table=e.table,this.column=e,this.row=t,this.element=null,this.value=null,this.initialValue,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.component=null,this.loaded=!1,this.build()}build(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data)),this.initialValue=this.value}generateElement(){if(this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.column.isRowHeader)this.element.classList.add("tabulator-row-header")}_configureCell(){var e=this.element,t=this.column.getField(),i={top:"flex-start",bottom:"flex-end",middle:"center"},s={left:"flex-start",right:"flex-end",center:"center"};if(e.style.textAlign=this.column.hozAlign,this.column.vertAlign){if(e.style.display="inline-flex",e.style.alignItems=i[this.column.vertAlign]||"",this.column.hozAlign)e.style.justifyContent=s[this.column.hozAlign]||""}if(t)e.setAttribute("tabulator-field",t);if(this.column.definition.cssClass){var r=this.column.definition.cssClass.split(" ");r.forEach((o)=>{e.classList.add(o)})}if(this.dispatch("cell-init",this),!this.column.visible)this.hide()}_generateContents(){var e=this.chain("cell-format",this,null,()=>this.element.innerHTML=this.value);switch(typeof e){case"object":if(e instanceof Node){while(this.element.firstChild)this.element.removeChild(this.element.firstChild);this.element.appendChild(e)}else if(this.element.innerHTML="",e!=null)console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",e);break;case"undefined":this.element.innerHTML="";break;default:this.element.innerHTML=e}}cellRendered(){this.dispatch("cell-rendered",this)}getElement(e){if(!this.loaded){if(this.loaded=!0,!e)this.layoutElement()}return this.element}getValue(){return this.value}getOldValue(){return this.oldValue}setValue(e,t,i){var s=this.setValueProcessData(e,t,i);if(s){if(this.dispatch("cell-value-updated",this),this.cellRendered(),this.column.definition.cellEdited)this.column.definition.cellEdited.call(this.table,this.getComponent());if(this.dispatchExternal("cellEdited",this.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData())}}setValueProcessData(e,t,i){var s=!1;if(this.value!==e||i){if(s=!0,t)e=this.chain("cell-value-changing",[this,e],null,e)}if(this.setValueActual(e),s)this.dispatch("cell-value-changed",this);return s}setValueActual(e){if(this.oldValue=this.value,this.value=e,this.dispatch("cell-value-save-before",this),this.column.setFieldValue(this.row.data,e),this.dispatch("cell-value-save-after",this),this.loaded)this.layoutElement()}layoutElement(){this._generateContents(),this.dispatch("cell-layout",this)}setWidth(){this.width=this.column.width,this.element.style.width=this.column.widthStyled}clearWidth(){this.width="",this.element.style.width=""}getWidth(){return this.width||this.element.offsetWidth}setMinWidth(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled}setMaxWidth(){this.maxWidth=this.column.maxWidth,this.element.style.maxWidth=this.column.maxWidthStyled}checkHeight(){this.row.reinitializeHeight()}clearHeight(){this.element.style.height="",this.height=null,this.dispatch("cell-height",this,"")}setHeight(){this.height=this.row.height,this.element.style.height=this.row.heightStyled,this.dispatch("cell-height",this,this.row.heightStyled)}getHeight(){return this.height||this.element.offsetHeight}show(){this.element.style.display=this.column.vertAlign?"inline-flex":""}hide(){this.element.style.display="none"}delete(){if(this.dispatch("cell-delete",this),!this.table.rowManager.redrawBlock&&this.element.parentNode)this.element.parentNode.removeChild(this.element);this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}}getIndex(){return this.row.getCellIndex(this)}getComponent(){if(!this.component)this.component=new oe(this);return this.component}}class ae{constructor(e){return this._column=e,this.type="ColumnComponent",new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._column.table.componentFunctionBinder.handle("column",t._column,i)}})}getElement(){return this._column.getElement()}getDefinition(){return this._column.getDefinition()}getField(){return this._column.getField()}getTitleDownload(){return this._column.getTitleDownload()}getCells(){var e=[];return this._column.cells.forEach(function(t){e.push(t.getComponent())}),e}isVisible(){return this._column.visible}show(){if(this._column.isGroup)this._column.columns.forEach(function(e){e.show()});else this._column.show()}hide(){if(this._column.isGroup)this._column.columns.forEach(function(e){e.hide()});else this._column.hide()}toggle(){if(this._column.visible)this.hide();else this.show()}delete(){return this._column.delete()}getSubColumns(){var e=[];if(this._column.columns.length)this._column.columns.forEach(function(t){e.push(t.getComponent())});return e}getParentColumn(){return this._column.getParentComponent()}_getSelf(){return this._column}scrollTo(e,t){return this._column.table.columnManager.scrollToColumn(this._column,e,t)}getTable(){return this._column.table}move(e,t){var i=this._column.table.columnManager.findColumn(e);if(i)this._column.table.columnManager.moveColumn(this._column,i,t);else console.warn("Move Error - No matching column found:",i)}getNextColumn(){var e=this._column.nextColumn();return e?e.getComponent():!1}getPrevColumn(){var e=this._column.prevColumn();return e?e.getComponent():!1}updateDefinition(e){return this._column.updateDefinition(e)}getWidth(){return this._column.getWidth()}setWidth(e){var t;if(e===!0)t=this._column.reinitializeWidth(!0);else t=this._column.setWidth(e);return this._column.table.columnManager.rerenderColumns(!0),t}}var Te={title:void 0,field:void 0,columns:void 0,visible:void 0,hozAlign:void 0,vertAlign:void 0,width:void 0,minWidth:40,maxWidth:void 0,maxInitialWidth:void 0,cssClass:void 0,variableHeight:void 0,headerVertical:void 0,headerHozAlign:void 0,headerWordWrap:!1,editableTitle:void 0};class V extends H{static defaultOptionList=Te;constructor(e,t,i){super(t.table);if(this.definition=e,this.parent=t,this.type="column",this.columns=[],this.cells=[],this.isGroup=!1,this.isRowHeader=i,this.element=this.createElement(),this.contentElement=!1,this.titleHolderElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleDownload=null,this.titleFormatterRendered=!1,this.mapDefinitions(),this.setField(this.definition.field),this.modules={},this.width=null,this.widthStyled="",this.maxWidth=null,this.maxWidthStyled="",this.maxInitialWidth=null,this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this.component=null,this.definition.columns)this.isGroup=!0,this.definition.columns.forEach((s,r)=>{var o=new V(s,this);this.attachColumn(o)}),this.checkColumnVisibility();else t.registerColumnField(this);this._initialize()}createElement(){var e=document.createElement("div");if(e.classList.add("tabulator-col"),e.setAttribute("role","columnheader"),e.setAttribute("aria-sort","none"),this.isRowHeader)e.classList.add("tabulator-row-header");switch(this.table.options.columnHeaderVertAlign){case"middle":e.style.justifyContent="center";break;case"bottom":e.style.justifyContent="flex-end";break}return e}createGroupElement(){var e=document.createElement("div");return e.classList.add("tabulator-col-group-cols"),e}mapDefinitions(){var e=this.table.options.columnDefaults;if(e){for(let t in e)if(typeof this.definition[t]>"u")this.definition[t]=e[t]}this.definition=this.table.columnManager.optionsList.generate(V.defaultOptionList,this.definition)}checkDefinition(){Object.keys(this.definition).forEach((e)=>{if(V.defaultOptionList.indexOf(e)===-1)console.warn("Invalid column definition option in '"+(this.field||this.definition.title)+"' column:",e)})}setField(e){this.field=e,this.fieldStructure=e?this.table.options.nestedFieldSeparator?e.split(this.table.options.nestedFieldSeparator):[e]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData}registerColumnPosition(e){this.parent.registerColumnPosition(e)}registerColumnField(e){this.parent.registerColumnField(e)}reRegisterPosition(){if(this.isGroup)this.columns.forEach(function(e){e.reRegisterPosition()});else this.registerColumnPosition(this)}_initialize(){var e=this.definition;while(this.element.firstChild)this.element.removeChild(this.element.firstChild);if(e.headerVertical){if(this.element.classList.add("tabulator-col-vertical"),e.headerVertical==="flip")this.element.classList.add("tabulator-col-vertical-flip")}if(this.contentElement=this._buildColumnHeaderContent(),this.element.appendChild(this.contentElement),this.isGroup)this._buildGroupHeader();else this._buildColumnHeader();this.dispatch("column-init",this)}_buildColumnHeader(){var e=this.definition;if(this.dispatch("column-layout",this),typeof e.visible<"u")if(e.visible)this.show(!0);else this.hide(!0);if(e.cssClass){var t=e.cssClass.split(" ");t.forEach((i)=>{this.element.classList.add(i)})}if(e.field)this.element.setAttribute("tabulator-field",e.field);if(this.setMinWidth(parseInt(e.minWidth)),e.maxInitialWidth)this.maxInitialWidth=parseInt(e.maxInitialWidth);if(e.maxWidth)this.setMaxWidth(parseInt(e.maxWidth));this.reinitializeWidth(),this.hozAlign=this.definition.hozAlign,this.vertAlign=this.definition.vertAlign,this.titleElement.style.textAlign=this.definition.headerHozAlign}_buildColumnHeaderContent(){var e=document.createElement("div");return e.classList.add("tabulator-col-content"),this.titleHolderElement=document.createElement("div"),this.titleHolderElement.classList.add("tabulator-col-title-holder"),e.appendChild(this.titleHolderElement),this.titleElement=this._buildColumnHeaderTitle(),this.titleHolderElement.appendChild(this.titleElement),e}_buildColumnHeaderTitle(){var e=this.definition,t=document.createElement("div");if(t.classList.add("tabulator-col-title"),e.headerWordWrap)t.classList.add("tabulator-col-title-wrap");if(e.editableTitle){var i=document.createElement("input");if(i.classList.add("tabulator-title-editor"),i.addEventListener("click",(s)=>{s.stopPropagation(),i.focus()}),i.addEventListener("mousedown",(s)=>{s.stopPropagation()}),i.addEventListener("change",()=>{e.title=i.value,this.dispatchExternal("columnTitleChanged",this.getComponent())}),t.appendChild(i),e.field)this.langBind("columns|"+e.field,(s)=>{i.value=s||(e.title||" ")});else i.value=e.title||" "}else if(e.field)this.langBind("columns|"+e.field,(s)=>{this._formatColumnHeaderTitle(t,s||(e.title||" "))});else this._formatColumnHeaderTitle(t,e.title||" ");return t}_formatColumnHeaderTitle(e,t){var i=this.chain("column-format",[this,t,e],null,()=>t);switch(typeof i){case"object":if(i instanceof Node)e.appendChild(i);else e.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",i);break;case"undefined":e.innerHTML="";break;default:e.innerHTML=i}}_buildGroupHeader(){if(this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass){var e=this.definition.cssClass.split(" ");e.forEach((t)=>{this.element.classList.add(t)})}this.titleElement.style.textAlign=this.definition.headerHozAlign,this.element.appendChild(this.groupElement)}_getFlatData(e){return e[this.field]}_getNestedData(e){var t=e,i=this.fieldStructure,s=i.length,r;for(let o=0;o<s;o++)if(t=t[i[o]],r=t,!t)break;return r}_setFlatData(e,t){if(this.field)e[this.field]=t}_setNestedData(e,t){var i=e,s=this.fieldStructure,r=s.length;for(let o=0;o<r;o++)if(o==r-1)i[s[o]]=t;else{if(!i[s[o]])if(typeof t<"u")i[s[o]]={};else break;i=i[s[o]]}}attachColumn(e){if(this.groupElement)this.columns.push(e),this.groupElement.appendChild(e.getElement()),e.columnRendered();else console.warn("Column Warning - Column being attached to another column instead of column group")}verticalAlign(e,t){var i=this.parent.isGroup?this.parent.getGroupElement().clientHeight:t||this.parent.getHeadersElement().clientHeight;if(this.element.style.height=i+"px",this.dispatch("column-height",this,this.element.style.height),this.isGroup)this.groupElement.style.minHeight=i-this.contentElement.offsetHeight+"px";this.columns.forEach(function(s){s.verticalAlign(e)})}clearVerticalAlign(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(e){e.clearVerticalAlign()}),this.dispatch("column-height",this,"")}getElement(){return this.element}getGroupElement(){return this.groupElement}getField(){return this.field}getTitleDownload(){return this.titleDownload}getFirstColumn(){if(!this.isGroup)return this;else if(this.columns.length)return this.columns[0].getFirstColumn();else return!1}getLastColumn(){if(!this.isGroup)return this;else if(this.columns.length)return this.columns[this.columns.length-1].getLastColumn();else return!1}getColumns(e){var t=[];if(e)this.columns.forEach((i)=>{t.push(i),t=t.concat(i.getColumns(!0))});else t=this.columns;return t}getCells(){return this.cells}getTopColumn(){if(this.parent.isGroup)return this.parent.getTopColumn();else return this}getDefinition(e){var t=[];if(this.isGroup&&e)this.columns.forEach(function(i){t.push(i.getDefinition(!0))}),this.definition.columns=t;return this.definition}checkColumnVisibility(){var e=!1;if(this.columns.forEach(function(t){if(t.visible)e=!0}),e)this.show(),this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1);else this.hide()}show(e,t){if(!this.visible){if(this.visible=!0,this.element.style.display="",this.parent.isGroup)this.parent.checkColumnVisibility();if(this.cells.forEach(function(i){i.show()}),!this.isGroup&&this.width===null)this.reinitializeWidth();if(this.table.columnManager.verticalAlignHeaders(),this.dispatch("column-show",this,t),!e)this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!0);if(this.parent.isGroup)this.parent.matchChildWidths();if(!this.silent)this.table.columnManager.rerenderColumns()}}hide(e,t){if(this.visible){if(this.visible=!1,this.element.style.display="none",this.table.columnManager.verticalAlignHeaders(),this.parent.isGroup)this.parent.checkColumnVisibility();if(this.cells.forEach(function(i){i.hide()}),this.dispatch("column-hide",this,t),!e)this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1);if(this.parent.isGroup)this.parent.matchChildWidths();if(!this.silent)this.table.columnManager.rerenderColumns()}}matchChildWidths(){var e=0;if(this.contentElement&&this.columns.length){if(this.columns.forEach(function(t){if(t.visible)e+=t.getWidth()}),this.contentElement.style.maxWidth=e-1+"px",this.table.initialized)this.element.style.width=e+"px";if(this.parent.isGroup)this.parent.matchChildWidths()}}removeChild(e){var t=this.columns.indexOf(e);if(t>-1)this.columns.splice(t,1);if(!this.columns.length)this.delete()}setWidth(e){this.widthFixed=!0,this.setWidthActual(e)}setWidthActual(e){if(isNaN(e))e=Math.floor(this.table.element.clientWidth/100*parseInt(e));if(e=Math.max(this.minWidth,e),this.maxWidth)e=Math.min(this.maxWidth,e);if(this.width=e,this.widthStyled=e?e+"px":"",this.element.style.width=this.widthStyled,!this.isGroup)this.cells.forEach(function(t){t.setWidth()});if(this.parent.isGroup)this.parent.matchChildWidths();if(this.dispatch("column-width",this),this.subscribedExternal("columnWidth"))this.dispatchExternal("columnWidth",this.getComponent())}checkCellHeights(){var e=[];this.cells.forEach(function(t){if(t.row.heightInitialized)if(t.row.getElement().offsetParent!==null)e.push(t.row),t.row.clearCellHeight();else t.row.heightInitialized=!1}),e.forEach(function(t){t.calcHeight()}),e.forEach(function(t){t.setCellHeight()})}getWidth(){var e=0;if(this.isGroup)this.columns.forEach(function(t){if(t.visible)e+=t.getWidth()});else e=this.width;return e}getLeftOffset(){var e=this.element.offsetLeft;if(this.parent.isGroup)e+=this.parent.getLeftOffset();return e}getHeight(){return Math.ceil(this.element.getBoundingClientRect().height)}setMinWidth(e){if(this.maxWidth&&e>this.maxWidth)e=this.maxWidth,console.warn("the minWidth ("+e+"px) for column '"+this.field+"' cannot be bigger that its maxWidth ("+this.maxWidthStyled+")");this.minWidth=e,this.minWidthStyled=e?e+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(t){t.setMinWidth()})}setMaxWidth(e){if(this.minWidth&&e<this.minWidth)e=this.minWidth,console.warn("the maxWidth ("+e+"px) for column '"+this.field+"' cannot be smaller that its minWidth ("+this.minWidthStyled+")");this.maxWidth=e,this.maxWidthStyled=e?e+"px":"",this.element.style.maxWidth=this.maxWidthStyled,this.cells.forEach(function(t){t.setMaxWidth()})}delete(){return new Promise((e,t)=>{if(this.isGroup)this.columns.forEach(function(s){s.delete()});this.dispatch("column-delete",this);var i=this.cells.length;for(let s=0;s<i;s++)this.cells[0].delete();if(this.element.parentNode)this.element.parentNode.removeChild(this.element);if(this.element=!1,this.contentElement=!1,this.titleElement=!1,this.groupElement=!1,this.parent.isGroup)this.parent.removeChild(this);this.table.columnManager.deregisterColumn(this),this.table.columnManager.rerenderColumns(!0),this.dispatch("column-deleted",this),e()})}columnRendered(){if(this.titleFormatterRendered)this.titleFormatterRendered();this.dispatch("column-rendered",this)}generateCell(e){var t=new ee(this,e);return this.cells.push(t),t}nextColumn(){var e=this.table.columnManager.findColumnIndex(this);return e>-1?this._nextVisibleColumn(e+1):!1}_nextVisibleColumn(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._nextVisibleColumn(e+1)}prevColumn(){var e=this.table.columnManager.findColumnIndex(this);return e>-1?this._prevVisibleColumn(e-1):!1}_prevVisibleColumn(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._prevVisibleColumn(e-1)}reinitializeWidth(e){if(this.widthFixed=!1,typeof this.definition.width<"u"&&!e)this.setWidth(this.definition.width);this.dispatch("column-width-fit-before",this),this.fitToData(e),this.dispatch("column-width-fit-after",this)}fitToData(e){if(this.isGroup)return;if(!this.widthFixed)this.element.style.width="",this.cells.forEach((s)=>{s.clearWidth()});var t=this.element.offsetWidth;if(!this.width||!this.widthFixed){if(this.cells.forEach((s)=>{var r=s.getWidth();if(r>t)t=r}),t){var i=t+1;if(e)this.setWidth(i);else{if(this.maxInitialWidth&&!e)i=Math.min(i,this.maxInitialWidth);this.setWidthActual(i)}}}}updateDefinition(e){var t;if(!this.isGroup)if(!this.parent.isGroup)return t=Object.assign({},this.getDefinition()),t=Object.assign(t,e),this.table.columnManager.addColumn(t,!1,this).then((i)=>{if(t.field==this.field)this.field=!1;return this.delete().then(()=>i.getComponent())});else return console.error("Column Update Error - The updateDefinition function is only available on ungrouped columns"),Promise.reject("Column Update Error - The updateDefinition function is only available on columns, not column groups");else return console.error("Column Update Error - The updateDefinition function is only available on ungrouped columns"),Promise.reject("Column Update Error - The updateDefinition function is only available on columns, not column groups")}deleteCell(e){var t=this.cells.indexOf(e);if(t>-1)this.cells.splice(t,1)}getComponent(){if(!this.component)this.component=new ae(this);return this.component}getPosition(){return this.table.columnManager.getVisibleColumnsByIndex().indexOf(this)+1}getParentComponent(){return this.parent instanceof V?this.parent.getComponent():!1}}class le{constructor(e){return this._row=e,new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._row.table.componentFunctionBinder.handle("row",t._row,i)}})}getData(e){return this._row.getData(e)}getElement(){return this._row.getElement()}getCells(){var e=[];return this._row.getCells().forEach(function(t){e.push(t.getComponent())}),e}getCell(e){var t=this._row.getCell(e);return t?t.getComponent():!1}getIndex(){return this._row.getData("data")[this._row.table.options.index]}getPosition(){return this._row.getPosition()}watchPosition(e){return this._row.watchPosition(e)}delete(){return this._row.delete()}scrollTo(e,t){return this._row.table.rowManager.scrollToRow(this._row,e,t)}move(e,t){this._row.moveToRow(e,t)}update(e){return this._row.updateData(e)}normalizeHeight(){this._row.normalizeHeight(!0)}_getSelf(){return this._row}reformat(){return this._row.reinitialize()}getTable(){return this._row.table}getNextRow(){var e=this._row.nextRow();return e?e.getComponent():e}getPrevRow(){var e=this._row.prevRow();return e?e.getComponent():e}}class O extends H{static rowTemplate=O.createRowTemplate();constructor(e,t,i="row"){super(t.table);this.parent=t,this.data={},this.type=i,this.element=!1,this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.position=0,this.positionWatchers=[],this.component=null,this.created=!1,this.setData(e)}create(){if(!this.created)this.created=!0,this.generateElement()}createElement(){this.element=O.rowTemplate.cloneNode(!1)}getElement(){return this.create(),this.element}detachElement(){if(this.element&&this.element.parentNode)this.element.parentNode.removeChild(this.element)}generateElement(){this.createElement(),this.dispatch("row-init",this)}generateCells(){this.cells=this.table.columnManager.generateCells(this)}initialize(e,t){if(this.create(),!this.initialized||e){this.deleteCells();while(this.element.firstChild)this.element.removeChild(this.element.firstChild);if(this.dispatch("row-layout-before",this),this.generateCells(),this.initialized=!0,this.table.columnManager.renderer.renderRowCells(this,t),e)this.normalizeHeight();if(this.dispatch("row-layout",this),this.table.options.rowFormatter)this.table.options.rowFormatter(this.getComponent());this.dispatch("row-layout-after",this)}else this.table.columnManager.renderer.rerenderRowCells(this,t)}rendered(){this.cells.forEach((e)=>{e.cellRendered()})}reinitializeHeight(){if(this.heightInitialized=!1,this.element&&this.element.offsetParent!==null)this.normalizeHeight(!0)}deinitialize(){this.initialized=!1}deinitializeHeight(){this.heightInitialized=!1}reinitialize(e){if(this.initialized=!1,this.heightInitialized=!1,!this.manualHeight)this.height=0,this.heightStyled="";if(this.element&&this.element.offsetParent!==null)this.initialize(!0);this.dispatch("row-relayout",this)}calcHeight(e){var t=0,i=0;if(this.table.options.rowHeight)this.height=this.table.options.rowHeight;else if(i=this.calcMinHeight(),t=this.calcMaxHeight(),e)this.height=Math.max(t,i);else this.height=this.manualHeight?this.height:Math.max(t,i);this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight}calcMinHeight(){return this.table.options.resizableRows?this.element.clientHeight:0}calcMaxHeight(){var e=0;return this.cells.forEach(function(t){var i=t.getHeight();if(i>e)e=i}),e}setCellHeight(){this.cells.forEach(function(e){e.setHeight()}),this.heightInitialized=!0}clearCellHeight(){this.cells.forEach(function(e){e.clearHeight()})}normalizeHeight(e){if(e&&!this.table.options.rowHeight)this.clearCellHeight();this.calcHeight(e),this.setCellHeight()}setHeight(e,t){if(this.height!=e||t){if(this.manualHeight=!0,this.height=e,this.heightStyled=e?e+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight,this.subscribedExternal("rowHeight"))this.dispatchExternal("rowHeight",this.getComponent())}}getHeight(){return this.outerHeight}getWidth(){return this.element.offsetWidth}deleteCell(e){var t=this.cells.indexOf(e);if(t>-1)this.cells.splice(t,1)}setData(e){this.data=this.chain("row-data-init-before",[this,e],void 0,e),this.dispatch("row-data-init-after",this)}updateData(e){var t=this.element&&L.elVisible(this.element),i={},s;return new Promise((r,o)=>{if(typeof e==="string")e=JSON.parse(e);if(this.dispatch("row-data-save-before",this),this.subscribed("row-data-changing"))i=Object.assign(i,this.data),i=Object.assign(i,e);s=this.chain("row-data-changing",[this,i,e],null,e);let a=[];for(let l in e)this.table.columnManager.getColumnsByFieldRoot(l).forEach((d)=>{let u=this.getCell(d.getField());if(u){let c=d.getFieldValue(s);if(u.getValue()!==c)a.push([u,c])}});for(let l in s)this.data[l]=s[l];if(this.dispatch("row-data-save-after",this),a.forEach(([l,h])=>{if(l.setValueProcessData(h),t)l.cellRendered()}),t){if(this.normalizeHeight(!0),this.table.options.rowFormatter)this.table.options.rowFormatter(this.getComponent())}else this.initialized=!1,this.height=0,this.heightStyled="";if(this.dispatch("row-data-changed",this,t,e),this.dispatchExternal("rowUpdated",this.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData());r()})}getData(e){if(e)return this.chain("row-data-retrieve",[this,e],null,this.data);return this.data}getCell(e){var t=!1;if(e=this.table.columnManager.findColumn(e),!this.initialized&&this.cells.length===0)this.generateCells();return t=this.cells.find(function(i){return i.column===e}),t}getCellIndex(e){return this.cells.findIndex(function(t){return t===e})}findCell(e){return this.cells.find((t)=>t.element===e)}getCells(){if(!this.initialized&&this.cells.length===0)this.generateCells();return this.cells}nextRow(){var e=this.table.rowManager.nextDisplayRow(this,!0);return e||!1}prevRow(){var e=this.table.rowManager.prevDisplayRow(this,!0);return e||!1}moveToRow(e,t){var i=this.table.rowManager.findRow(e);if(i)this.table.rowManager.moveRowActual(this,i,!t),this.table.rowManager.refreshActiveData("display",!1,!0);else console.warn("Move Error - No matching row found:",e)}delete(){return this.dispatch("row-delete",this),this.deleteActual(),Promise.resolve()}deleteActual(e){this.detachModules(),this.table.rowManager.deleteRow(this,e),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.element=!1,this.dispatch("row-deleted",this)}detachModules(){this.dispatch("row-deleting",this)}deleteCells(){var e=this.cells.length;for(let t=0;t<e;t++)this.cells[0].delete()}wipe(){if(this.detachModules(),this.deleteCells(),this.element){while(this.element.firstChild)this.element.removeChild(this.element.firstChild);if(this.element.parentNode)this.element.parentNode.removeChild(this.element)}this.element=!1,this.modules={}}isDisplayed(){return this.table.rowManager.getDisplayRows().includes(this)}getPosition(){return this.isDisplayed()?this.position:!1}setPosition(e){if(e!=this.position)this.position=e,this.positionWatchers.forEach((t)=>{t(this.position)})}watchPosition(e){this.positionWatchers.push(e),e(this.position)}getGroup(){return this.modules.group||!1}getComponent(){if(!this.component)this.component=new le(this);return this.component}static createRowTemplate(){let e=document.createElement("div");return e.classList.add("tabulator-row"),e.setAttribute("role","row"),e}}function te(e,t){var i=t.mask,s=typeof t.maskLetterChar<"u"?t.maskLetterChar:"A",r=typeof t.maskNumberChar<"u"?t.maskNumberChar:"9",o=typeof t.maskWildcardChar<"u"?t.maskWildcardChar:"*";function a(l){var h=i[l];if(typeof h<"u"&&h!==o&&h!==s&&h!==r)e.value=e.value+""+h,a(l+1)}if(e.addEventListener("keydown",(l)=>{var h=e.value.length,d=l.key;if(l.key.length===1&&!l.ctrlKey&&!l.metaKey)if(h>=i.length)return l.preventDefault(),l.stopPropagation(),!1;else switch(i[h]){case s:if(d.toUpperCase()==d.toLowerCase())return l.preventDefault(),l.stopPropagation(),!1;break;case r:if(isNaN(d))return l.preventDefault(),l.stopPropagation(),!1;break;case o:break;default:if(d!==i[h])return l.preventDefault(),l.stopPropagation(),!1}return}),e.addEventListener("keyup",(l)=>{if(l.key.length===1){if(t.maskAutoFill)a(e.value.length)}}),!e.placeholder)e.placeholder=i;if(t.maskAutoFill)a(e.value.length)}function lt(e,t,i,s,r){var o=e.getValue(),a=document.createElement("input");if(a.setAttribute("type",r.search?"search":"text"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let h in r.elementAttributes)if(h.charAt(0)=="+")h=h.slice(1),a.setAttribute(h,a.getAttribute(h)+r.elementAttributes["+"+h]);else a.setAttribute(h,r.elementAttributes[h]);a.value=r.initialValue??(typeof o<"u"?o:""),t(function(){if(e.getType()==="cell"){if(a.focus({preventScroll:!0}),a.style.height="100%",r.selectContents)a.select()}});function l(h){if((o===null||typeof o>"u")&&a.value!==""||a.value!==o){if(i(a.value,h))o=a.value}else s(h)}if(a.addEventListener("change",l),a.addEventListener("blur",l),a.addEventListener("keydown",function(h){switch(h.key){case"Enter":l(h);break;case"Escape":s(h);break;case"End":case"Home":h.stopPropagation();break}}),r.mask)te(a,r);return a}function ht(e,t,i,s,r){var o=e.getValue(),a=r.verticalNavigation||"hybrid",l=String(o!==null&&typeof o<"u"?o:""),h=document.createElement("textarea"),d=0;if(h.style.display="block",h.style.padding="2px",h.style.height="100%",h.style.width="100%",h.style.boxSizing="border-box",h.style.whiteSpace="pre-wrap",h.style.resize="none",r.elementAttributes&&typeof r.elementAttributes=="object")for(let c in r.elementAttributes)if(c.charAt(0)=="+")c=c.slice(1),h.setAttribute(c,h.getAttribute(c)+r.elementAttributes["+"+c]);else h.setAttribute(c,r.elementAttributes[c]);h.value=r.initialValue??l,t(function(){if(e.getType()==="cell"){if(h.focus({preventScroll:!0}),h.style.height="100%",h.scrollHeight,h.style.height=h.scrollHeight+"px",e.getRow().normalizeHeight(),r.selectContents)h.select()}});function u(c){if((o===null||typeof o>"u")&&h.value!==""||h.value!==o){if(i(h.value,c))o=h.value;setTimeout(function(){e.getRow().normalizeHeight()},300)}else s(c)}if(h.addEventListener("change",u),h.addEventListener("blur",u),h.addEventListener("keyup",function(){h.style.height="";var c=h.scrollHeight;if(h.style.height=c+"px",c!=d)d=c,e.getRow().normalizeHeight()}),h.addEventListener("keydown",function(c){switch(c.key){case"Enter":if(c.shiftKey&&r.shiftEnterSubmit)u(c);else if(c.shiftKey&&r.shiftEnterNewLine||c.altKey&&r.altEnterNewLine||c.ctrlKey&&r.ctrlEnterNewLine||c.metaKey&&r.metaEnterNewLine)c.preventDefault(),h.setRangeText(`
|
|
4
|
+
`,h.selectionStart,h.selectionEnd,"end");else if(r.enterSubmit)c.preventDefault(),u(c);break;case"Escape":s(c);break;case"ArrowUp":if(a=="editor"||a=="hybrid"&&h.selectionStart)c.stopImmediatePropagation(),c.stopPropagation();break;case"ArrowDown":if(a=="editor"||a=="hybrid"&&h.selectionStart!==h.value.length)c.stopImmediatePropagation(),c.stopPropagation();break;case"End":case"Home":c.stopPropagation();break}}),r.mask)te(h,r);return h}function dt(e,t,i,s,r){var o=e.getValue(),a=r.verticalNavigation||"editor",l=document.createElement("input");if(l.setAttribute("type","number"),typeof r.max<"u")l.setAttribute("max",r.max);if(typeof r.min<"u")l.setAttribute("min",r.min);if(typeof r.step<"u")l.setAttribute("step",r.step);if(l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let u in r.elementAttributes)if(u.charAt(0)=="+")u=u.slice(1),l.setAttribute(u,l.getAttribute(u)+r.elementAttributes["+"+u]);else l.setAttribute(u,r.elementAttributes[u]);l.value=o;var h=function(u){d(u)};t(function(){if(e.getType()==="cell"){if(l.removeEventListener("blur",h),l.focus({preventScroll:!0}),l.style.height="100%",l.addEventListener("blur",h),r.selectContents)l.select()}});function d(u){var c=l.value;if(!isNaN(c)&&c!=="")c=Number(c);if(c!==o){if(i(c,u))o=c}else s(u)}if(l.addEventListener("keydown",function(u){switch(u.key){case"Enter":d(u);break;case"Escape":s(u);break;case"ArrowUp":case"ArrowDown":if(a=="editor")u.stopImmediatePropagation(),u.stopPropagation();break;case"End":case"Home":u.stopPropagation();break}}),r.mask)te(l,r);return l}function ut(e,t,i,s,r){var o=e.getValue(),a=document.createElement("input");if(a.setAttribute("type","range"),typeof r.max<"u")a.setAttribute("max",r.max);if(typeof r.min<"u")a.setAttribute("min",r.min);if(typeof r.step<"u")a.setAttribute("step",r.step);if(a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let h in r.elementAttributes)if(h.charAt(0)=="+")h=h.slice(1),a.setAttribute(h,a.getAttribute(h)+r.elementAttributes["+"+h]);else a.setAttribute(h,r.elementAttributes[h]);a.value=o,t(function(){if(e.getType()==="cell")a.focus({preventScroll:!0}),a.style.height="100%"});function l(h){var d=a.value;if(!isNaN(d)&&d!=="")d=Number(d);if(d!=o){if(i(d,h))o=d}else s(h)}return a.addEventListener("blur",function(h){l(h)}),a.addEventListener("keydown",function(h){switch(h.key){case"Enter":l(h);break;case"Escape":s(h);break}}),a}function ct(e,t,i,s,r){var o=r.format,a=r.verticalNavigation||"editor",l=o?window.DateTime||luxon.DateTime:null,h=e.getValue(),d=document.createElement("input");function u(f){var p;if(l.isDateTime(f))p=f;else if(o==="x")p=l.fromMillis(f);else if(o==="iso")p=l.fromISO(String(f));else p=l.fromFormat(String(f),o);return p.toFormat("yyyy-MM-dd")}if(d.type="date",d.style.padding="4px",d.style.width="100%",d.style.boxSizing="border-box",r.max)d.setAttribute("max",o?u(r.max):r.max);if(r.min)d.setAttribute("min",o?u(r.min):r.min);if(r.elementAttributes&&typeof r.elementAttributes=="object")for(let f in r.elementAttributes)if(f.charAt(0)=="+")f=f.slice(1),d.setAttribute(f,d.getAttribute(f)+r.elementAttributes["+"+f]);else d.setAttribute(f,r.elementAttributes[f]);if(h=typeof h<"u"?h:"",o)if(l)h=u(h);else console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js");d.value=h,t(function(){if(e.getType()==="cell"){if(d.focus({preventScroll:!0}),d.style.height="100%",r.selectContents)d.select()}});function c(f){var p=d.value,m;if((h===null||typeof h>"u")&&p!==""||p!==h){if(p&&o)switch(m=l.fromFormat(String(p),"yyyy-MM-dd"),o){case!0:p=m;break;case"x":p=m.toMillis();break;case"iso":p=m.toISO();break;default:p=m.toFormat(o)}if(i(p,f))h=d.value}else s(f)}return d.addEventListener("blur",function(f){if(f.relatedTarget||f.rangeParent||f.explicitOriginalTarget!==d)c(f)}),d.addEventListener("keydown",function(f){switch(f.key){case"Enter":c(f);break;case"Escape":s(f);break;case"End":case"Home":f.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(a=="editor")f.stopImmediatePropagation(),f.stopPropagation();break}}),d}function pt(e,t,i,s,r){var o=r.format,a=r.verticalNavigation||"editor",l=o?window.DateTime||luxon.DateTime:null,h,d=e.getValue(),u=document.createElement("input");if(u.type="time",u.style.padding="4px",u.style.width="100%",u.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let f in r.elementAttributes)if(f.charAt(0)=="+")f=f.slice(1),u.setAttribute(f,u.getAttribute(f)+r.elementAttributes["+"+f]);else u.setAttribute(f,r.elementAttributes[f]);if(d=typeof d<"u"?d:"",o)if(l){if(l.isDateTime(d))h=d;else if(o==="x")h=l.fromMillis(d);else if(o==="iso")h=l.fromISO(String(d));else h=l.fromFormat(String(d),o);d=h.toFormat("HH:mm")}else console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js");u.value=d,t(function(){if(e.getType()=="cell"){if(u.focus({preventScroll:!0}),u.style.height="100%",r.selectContents)u.select()}});function c(f){var p=u.value,m;if((d===null||typeof d>"u")&&p!==""||p!==d){if(p&&o)switch(m=l.fromFormat(String(p),"hh:mm"),o){case!0:p=m;break;case"x":p=m.toMillis();break;case"iso":p=m.toISO();break;default:p=m.toFormat(o)}if(i(p,f))d=u.value}else s(f)}return u.addEventListener("blur",function(f){if(f.relatedTarget||f.rangeParent||f.explicitOriginalTarget!==u)c(f)}),u.addEventListener("keydown",function(f){switch(f.key){case"Enter":c(f);break;case"Escape":s(f);break;case"End":case"Home":f.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(a=="editor")f.stopImmediatePropagation(),f.stopPropagation();break}}),u}function mt(e,t,i,s,r){var o=r.format,a=r.verticalNavigation||"editor",l=o?this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"):null,h,d=e.getValue(),u=document.createElement("input");if(u.type="datetime-local",u.style.padding="4px",u.style.width="100%",u.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let f in r.elementAttributes)if(f.charAt(0)=="+")f=f.slice(1),u.setAttribute(f,u.getAttribute(f)+r.elementAttributes["+"+f]);else u.setAttribute(f,r.elementAttributes[f]);if(d=typeof d<"u"?d:"",o)if(l){if(l.isDateTime(d))h=d;else if(o==="x")h=l.fromMillis(d);else if(o==="iso")h=l.fromISO(String(d));else h=l.fromFormat(String(d),o);d=h.toFormat("yyyy-MM-dd")+"T"+h.toFormat("HH:mm")}else console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js");u.value=d,t(function(){if(e.getType()==="cell"){if(u.focus({preventScroll:!0}),u.style.height="100%",r.selectContents)u.select()}});function c(f){var p=u.value,m;if((d===null||typeof d>"u")&&p!==""||p!==d){if(p&&o)switch(m=l.fromISO(String(p)),o){case!0:p=m;break;case"x":p=m.toMillis();break;case"iso":p=m.toISO();break;default:p=m.toFormat(o)}if(i(p,f))d=u.value}else s(f)}return u.addEventListener("blur",function(f){if(f.relatedTarget||f.rangeParent||f.explicitOriginalTarget!==u)c(f)}),u.addEventListener("keydown",function(f){switch(f.key){case"Enter":c(f);break;case"Escape":s(f);break;case"End":case"Home":f.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(a=="editor")f.stopImmediatePropagation(),f.stopPropagation();break}}),u}var gt=class e{constructor(t,i,s,r,o,a){this.edit=t,this.table=t.table,this.cell=i,this.params=this._initializeParams(a),this.data=[],this.displayItems=[],this.currentItems=[],this.focusedItem=null,this.input=this._createInputElement(),this.listEl=this._createListElement(),this.initialValues=null,this.isFilter=i.getType()==="header",this.filterTimeout=null,this.filtered=!1,this.typing=!1,this.values=[],this.popup=null,this.listIteration=0,this.lastAction="",this.filterTerm="",this.blurable=!0,this.actions={success:r,cancel:o},this._deprecatedOptionsCheck(),this._initializeValue(),s(this._onRendered.bind(this))}_deprecatedOptionsCheck(){}_initializeValue(){var t=this.cell.getValue();if(typeof t>"u"&&typeof this.params.defaultValue<"u")t=this.params.defaultValue;if(this.initialValues=this.params.multiselect?t:[t],this.isFilter)this.input.value=this.initialValues?this.initialValues.join(","):"",this.headerFilterInitialListGen()}_onRendered(){var t=this.cell.getElement();function i(s){s.stopPropagation()}if(!this.isFilter)this.input.style.height="100%",this.input.focus({preventScroll:!0});t.addEventListener("click",i),setTimeout(()=>{t.removeEventListener("click",i)},1000),this.input.addEventListener("mousedown",this._preventPopupBlur.bind(this))}_createListElement(){var t=document.createElement("div");return t.classList.add("tabulator-edit-list"),t.addEventListener("mousedown",this._preventBlur.bind(this)),t.addEventListener("keydown",this._inputKeyDown.bind(this)),t}_setListWidth(){var t=this.isFilter?this.input:this.cell.getElement();if(this.listEl.style.minWidth=t.offsetWidth+"px",this.params.maxWidth)if(this.params.maxWidth===!0)this.listEl.style.maxWidth=t.offsetWidth+"px";else if(typeof this.params.maxWidth==="number")this.listEl.style.maxWidth=this.params.maxWidth+"px";else this.listEl.style.maxWidth=this.params.maxWidth}_createInputElement(){var t=this.params.elementAttributes,i=document.createElement("input");if(i.setAttribute("type",this.params.clearable?"search":"text"),i.style.padding="4px",i.style.width="100%",i.style.boxSizing="border-box",!this.params.autocomplete)i.style.cursor="default",i.style.caretColor="transparent";if(t&&typeof t=="object")for(let s in t)if(s.charAt(0)=="+")s=s.slice(1),i.setAttribute(s,i.getAttribute(s)+t["+"+s]);else i.setAttribute(s,t[s]);if(this.params.mask)te(i,this.params);return this._bindInputEvents(i),i}_initializeParams(t){var i=["values","valuesURL","valuesLookup"],s;if(t=Object.assign({},t),t.verticalNavigation=t.verticalNavigation||"editor",t.placeholderLoading=typeof t.placeholderLoading>"u"?"Searching ...":t.placeholderLoading,t.placeholderEmpty=typeof t.placeholderEmpty>"u"?"No Results Found":t.placeholderEmpty,t.filterDelay=typeof t.filterDelay>"u"?300:t.filterDelay,t.emptyValue=Object.keys(t).includes("emptyValue")?t.emptyValue:"",s=Object.keys(t).filter((r)=>i.includes(r)).length,!s)console.warn("list editor config error - either the values, valuesURL, or valuesLookup option must be set");else if(s>1)console.warn("list editor config error - only one of the values, valuesURL, or valuesLookup options can be set on the same editor");if(t.autocomplete){if(t.multiselect)t.multiselect=!1,console.warn("list editor config error - multiselect option is not available when autocomplete is enabled")}else{if(t.freetext)t.freetext=!1,console.warn("list editor config error - freetext option is only available when autocomplete is enabled");if(t.filterFunc)t.filterFunc=!1,console.warn("list editor config error - filterFunc option is only available when autocomplete is enabled");if(t.filterRemote)t.filterRemote=!1,console.warn("list editor config error - filterRemote option is only available when autocomplete is enabled");if(t.mask)t.mask=!1,console.warn("list editor config error - mask option is only available when autocomplete is enabled");if(t.allowEmpty)t.allowEmpty=!1,console.warn("list editor config error - allowEmpty option is only available when autocomplete is enabled");if(t.listOnEmpty)t.listOnEmpty=!1,console.warn("list editor config error - listOnEmpty option is only available when autocomplete is enabled")}if(t.filterRemote&&!(typeof t.valuesLookup==="function"||t.valuesURL))t.filterRemote=!1,console.warn("list editor config error - filterRemote option should only be used when values list is populated from a remote source");return t}_bindInputEvents(t){if(t.addEventListener("focus",this._inputFocus.bind(this)),t.addEventListener("click",this._inputClick.bind(this)),t.addEventListener("blur",this._inputBlur.bind(this)),t.addEventListener("keydown",this._inputKeyDown.bind(this)),t.addEventListener("search",this._inputSearch.bind(this)),this.params.autocomplete)t.addEventListener("keyup",this._inputKeyUp.bind(this))}_inputFocus(t){this.rebuildOptionsList()}_filter(){if(this.params.filterRemote)clearTimeout(this.filterTimeout),this.filterTimeout=setTimeout(()=>{this.rebuildOptionsList()},this.params.filterDelay);else this._filterList()}_inputClick(t){t.stopPropagation()}_inputBlur(t){if(this.blurable)if(this.popup)this.popup.hide();else this._resolveValue(!0,t)}_inputSearch(){this._clearChoices()}_inputKeyDown(t){switch(t.key){case"ArrowUp":this._keyUp(t);break;case"ArrowDown":this._keyDown(t);break;case"ArrowLeft":case"ArrowRight":this._keySide(t);break;case"Enter":this._keyEnter(t);break;case"Escape":this._keyEsc(t);break;case"Home":case"End":this._keyHomeEnd(t);break;case"Tab":this._keyTab(t);break;default:this._keySelectLetter(t)}}_inputKeyUp(t){switch(t.key){case"ArrowUp":case"ArrowLeft":case"ArrowRight":case"ArrowDown":case"Enter":case"Escape":break;default:this._keyAutoCompLetter(t)}}_preventPopupBlur(){if(this.popup)this.popup.blockHide();setTimeout(()=>{if(this.popup)this.popup.restoreHide()},10)}_preventBlur(){this.blurable=!1,setTimeout(()=>{this.blurable=!0},10)}_keyTab(t){if(this.params.autocomplete&&this.lastAction==="typing")this._resolveValue(!0,t);else if(this.focusedItem)this._chooseItem(this.focusedItem,!0)}_keyUp(t){var i=this.displayItems.indexOf(this.focusedItem);if(this.params.verticalNavigation=="editor"||this.params.verticalNavigation=="hybrid"&&i){if(t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),i>0)this._focusItem(this.displayItems[i-1])}}_keyDown(t){var i=this.displayItems.indexOf(this.focusedItem);if(this.params.verticalNavigation=="editor"||this.params.verticalNavigation=="hybrid"&&i<this.displayItems.length-1){if(t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault(),i<this.displayItems.length-1)if(i==-1)this._focusItem(this.displayItems[0]);else this._focusItem(this.displayItems[i+1])}}_keySide(t){if(!this.params.autocomplete)t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault()}_keyEnter(t){if(this.params.autocomplete&&this.lastAction==="typing")this._resolveValue(!0,t);else if(this.focusedItem)if(this.isFilter&&!this.params.multiselect&&this.focusedItem.selected)this._resolveValue(!1,t);else this._chooseItem(this.focusedItem,!1,t)}_keyEsc(t){this._cancel(t)}_keyHomeEnd(t){if(this.params.autocomplete)t.stopImmediatePropagation()}_keySelectLetter(t){if(!this.params.autocomplete){if(t.preventDefault(),t.key.length===1)this._scrollToValue(t.key.toUpperCase().charCodeAt(0))}}_keyAutoCompLetter(t){this._filter(),this.lastAction="typing",this.typing=!0}_scrollToValue(t){clearTimeout(this.filterTimeout);var i=String.fromCharCode(t).toLowerCase();this.filterTerm+=i.toLowerCase();var s=this.displayItems.find((r)=>typeof r.label<"u"&&r.label.toLowerCase().startsWith(this.filterTerm));if(s)this._focusItem(s);this.filterTimeout=setTimeout(()=>{this.filterTerm=""},800)}_focusItem(t){if(this.lastAction="focus",this.focusedItem&&this.focusedItem.element)this.focusedItem.element.classList.remove("focused");if(this.focusedItem=t,t&&t.element)t.element.classList.add("focused"),t.element.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})}headerFilterInitialListGen(){this._generateOptions(!0)}rebuildOptionsList(){this._generateOptions().then(this._sortOptions.bind(this)).then(this._buildList.bind(this)).then(this._showList.bind(this)).catch((t)=>{if(!Number.isInteger(t))console.error("List generation error",t)})}_filterList(){this._buildList(this._filterOptions()),this._showList()}_generateOptions(t){var i=[],s=++this.listIteration;if(this.filtered=!1,this.params.values)i=this.params.values;else if(this.params.valuesURL)i=this._ajaxRequest(this.params.valuesURL,this.input.value);else if(typeof this.params.valuesLookup==="function")i=this.params.valuesLookup(this.cell,this.input.value);else if(this.params.valuesLookup)i=this._uniqueColumnValues(this.params.valuesLookupField);if(i instanceof Promise){if(!t)this._addPlaceholder(this.params.placeholderLoading);return i.then().then((r)=>{if(this.listIteration===s)return this._parseList(r);else return Promise.reject(s)})}else return Promise.resolve(this._parseList(i))}_addPlaceholder(t){var i=document.createElement("div");if(typeof t==="function")t=t(this.cell.getComponent(),this.listEl);if(t){if(this._clearList(),t instanceof HTMLElement)i=t;else i.classList.add("tabulator-edit-list-placeholder"),i.innerHTML=t;this.listEl.appendChild(i),this._showList()}}_ajaxRequest(t,i){var s=this.params.filterRemote?{term:i}:{};return t=it(t,{},s),fetch(t).then((r)=>{if(r.ok)return r.json().catch((o)=>(console.warn("List Ajax Load Error - Invalid JSON returned",o),Promise.reject(o)));else return console.error("List Ajax Load Error - Connection Error: "+r.status,r.statusText),Promise.reject(r)}).catch((r)=>(console.error("List Ajax Load Error - Connection Error: ",r),Promise.reject(r)))}_uniqueColumnValues(t){var i={},s=this.table.getData(this.params.valuesLookup),r;if(t)r=this.table.columnManager.getColumnByField(t);else r=this.cell.getColumn()._getSelf();if(r)s.forEach((o)=>{var a=r.getFieldValue(o);if(!this._emptyValueCheck(a))if(this.params.multiselect&&Array.isArray(a))a.forEach((l)=>{if(!this._emptyValueCheck(l))i[l]=!0});else i[a]=!0});else console.warn("unable to find matching column to create select lookup list:",t),i=[];return Object.keys(i)}_emptyValueCheck(t){return t===null||typeof t>"u"||t===""}_parseList(t){var i=[];if(!Array.isArray(t))t=Object.entries(t).map(([s,r])=>({label:r,value:s}));if(t.forEach((s)=>{if(typeof s!=="object")s={label:s,value:s};this._parseListItem(s,i,0)}),!this.currentItems.length&&this.params.freetext)this.input.value=this.initialValues,this.typing=!0,this.lastAction="typing";if(this.params.multiselect)this.initialValues=null;return this.data=i,i}_parseListItem(t,i,s){var r={};if(t.options)r=this._parseListGroup(t,s+1);else if(r={label:t.label,value:t.value,itemParams:t.itemParams,elementAttributes:t.elementAttributes,element:!1,selected:!1,visible:!0,level:s,original:t},this.params.multiselect){var o=this.currentItems.findIndex((a)=>a.value===t.value);if(o>-1){if(this.focusedItem===this.currentItems[o])this.focusedItem=r;this.currentItems[o]=r,r.selected=!0}else if(this.initialValues&&this.initialValues.indexOf(t.value)>-1)this._chooseItem(r,!0)}else if(this.initialValues&&this.initialValues.indexOf(t.value)>-1)this._chooseItem(r,!0);i.push(r)}_parseListGroup(t,i){var s={label:t.label,group:!0,itemParams:t.itemParams,elementAttributes:t.elementAttributes,element:!1,visible:!0,level:i,options:[],original:t};return t.options.forEach((r)=>{this._parseListItem(r,s.options,i)}),s}_sortOptions(t){var i;if(this.params.sort)i=typeof this.params.sort==="function"?this.params.sort:this._defaultSortFunction.bind(this),this._sortGroup(i,t);return t}_sortGroup(t,i){i.sort((s,r)=>t(s.label,r.label,s.value,r.value,s.original,r.original)),i.forEach((s)=>{if(s.group)this._sortGroup(t,s.options)})}_defaultSortFunction(t,i){var s,r,o,a,l=0,h,d=/(\d+)|(\D+)/g,u=/\d/,c=0;if(this.params.sort==="desc")[t,i]=[i,t];if(!t&&t!==0)c=!i&&i!==0?0:-1;else if(!i&&i!==0)c=1;else{if(isFinite(t)&&isFinite(i))return t-i;if(s=String(t).toLowerCase(),r=String(i).toLowerCase(),s===r)return 0;if(!(u.test(s)&&u.test(r)))return s>r?1:-1;s=s.match(d),r=r.match(d),h=s.length>r.length?r.length:s.length;while(l<h)if(o=s[l],a=r[l++],o!==a)if(isFinite(o)&&isFinite(a)){if(o.charAt(0)==="0")o="."+o;if(a.charAt(0)==="0")a="."+a;return o-a}else return o>a?1:-1;return s.length>r.length}return c}_filterOptions(){var t=this.params.filterFunc||this._defaultFilterFunc,i=this.input.value;if(i)this.filtered=!0,this.data.forEach((s)=>{this._filterItem(t,i,s)});else this.filtered=!1;return this.data}_filterItem(t,i,s){var r=!1;if(!s.group)s.visible=t(i,s.label,s.value,s.original);else s.options.forEach((o)=>{if(this._filterItem(t,i,o))r=!0}),s.visible=r;return s.visible}_defaultFilterFunc(t,i,s,r){if(t=String(t).toLowerCase(),i!==null&&typeof i<"u"){if(String(i).toLowerCase().indexOf(t)>-1||String(s).toLowerCase().indexOf(t)>-1)return!0}return!1}_clearList(){while(this.listEl.firstChild)this.listEl.removeChild(this.listEl.firstChild);this.displayItems=[]}_buildList(t){if(this._clearList(),t.forEach((i)=>{this._buildItem(i)}),!this.displayItems.length)this._addPlaceholder(this.params.placeholderEmpty)}_buildItem(t){var i=t.element,s;if(!this.filtered||t.visible){if(!i){if(i=document.createElement("div"),i.tabIndex=0,s=this.params.itemFormatter?this.params.itemFormatter(t.label,t.value,t.original,i):t.label,s instanceof HTMLElement)i.appendChild(s);else i.innerHTML=s;if(t.group)i.classList.add("tabulator-edit-list-group");else i.classList.add("tabulator-edit-list-item");if(i.classList.add("tabulator-edit-list-group-level-"+t.level),t.elementAttributes&&typeof t.elementAttributes=="object")for(let r in t.elementAttributes)if(r.charAt(0)=="+")r=r.slice(1),i.setAttribute(r,this.input.getAttribute(r)+t.elementAttributes["+"+r]);else i.setAttribute(r,t.elementAttributes[r]);if(t.group)i.addEventListener("click",this._groupClick.bind(this,t));else i.addEventListener("click",this._itemClick.bind(this,t));i.addEventListener("mousedown",this._preventBlur.bind(this)),t.element=i}if(this._styleItem(t),this.listEl.appendChild(i),t.group)t.options.forEach((r)=>{this._buildItem(r)});else this.displayItems.push(t)}}_showList(){var t=this.popup&&this.popup.isVisible();if(this.input.parentNode){if(this.params.autocomplete&&this.input.value===""&&!this.params.listOnEmpty){if(this.popup)this.popup.hide(!0);return}if(this._setListWidth(),!this.popup)this.popup=this.edit.popup(this.listEl);if(this.popup.show(this.cell.getElement(),"bottom"),!t)setTimeout(()=>{this.popup.hideOnBlur(this._resolveValue.bind(this,!0))},10)}}_styleItem(t){if(t&&t.element)if(t.selected)t.element.classList.add("active");else t.element.classList.remove("active")}_itemClick(t,i){i.stopPropagation(),this._chooseItem(t,!1,i)}_groupClick(t,i){i.stopPropagation()}_cancel(t){this.popup.hide(!0),this.actions.cancel(t)}_clearChoices(){this.typing=!0,this.currentItems.forEach((t)=>{t.selected=!1,this._styleItem(t)}),this.currentItems=[],this.focusedItem=null}_chooseItem(t,i,s){var r;if(this.typing=!1,this.params.multiselect){if(r=this.currentItems.indexOf(t),r>-1)this.currentItems.splice(r,1),t.selected=!1;else this.currentItems.push(t),t.selected=!0;this.input.value=this.currentItems.map((o)=>o.label).join(","),this._styleItem(t)}else{if(this.isFilter&&!i&&t.selected){this._clearChoices(),this.input.value="",this._resolveValue(!1,s);return}if(this.currentItems=[t],t.selected=!0,this.input.value=t.label,this._styleItem(t),!i)this._resolveValue(!1,s)}this._focusItem(t)}_resolveValue(t,i){var s,r;if(this.popup)this.popup.hide(!0);if(this.params.multiselect)s=this.currentItems.map((o)=>o.value);else if(t&&this.params.autocomplete&&this.typing)if(this.params.freetext||this.params.allowEmpty&&this.input.value==="")s=this.input.value;else{this.actions.cancel(i);return}else if(this.currentItems[0])s=this.currentItems[0].value;else if(this.isFilter&&this.focusedItem&&this.focusedItem.selected)s=this.focusedItem.value;else if(r=Array.isArray(this.initialValues)?this.initialValues[0]:this.initialValues,r===null||typeof r>"u"||r==="")s=r;else s=this.params.emptyValue;if(s==="")s=this.params.emptyValue;if(this.actions.success(s,i),this.isFilter)this.initialValues=s&&!Array.isArray(s)?[s]:s,this.currentItems=[]}};function bt(e,t,i,s,r){var o=new gt(this,e,t,i,s,r);return o.input}function vt(e,t,i,s,r){var o=this,a=e.getElement(),l=e.getValue(),h=a.getElementsByTagName("svg").length||5,d=a.getElementsByTagName("svg")[0]?a.getElementsByTagName("svg")[0].getAttribute("width"):14,u=[],c=document.createElement("div"),f=document.createElementNS("http://www.w3.org/2000/svg","svg");function p(w){u.forEach(function(x,S){if(S<w){if(o.table.browser=="ie")x.setAttribute("class","tabulator-star-active");else x.classList.replace("tabulator-star-inactive","tabulator-star-active");x.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'}else{if(o.table.browser=="ie")x.setAttribute("class","tabulator-star-inactive");else x.classList.replace("tabulator-star-active","tabulator-star-inactive");x.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'}})}function m(w){var x=document.createElement("span"),S=f.cloneNode(!0);u.push(S),x.addEventListener("mouseenter",function(k){k.stopPropagation(),k.stopImmediatePropagation(),p(w)}),x.addEventListener("mousemove",function(k){k.stopPropagation(),k.stopImmediatePropagation()}),x.addEventListener("click",function(k){k.stopPropagation(),k.stopImmediatePropagation(),i(w,k),a.blur()}),x.appendChild(S),c.appendChild(x)}function b(w){l=w,p(w)}if(a.style.whiteSpace="nowrap",a.style.overflow="hidden",a.style.textOverflow="ellipsis",c.style.verticalAlign="middle",c.style.display="inline-block",c.style.padding="4px",f.setAttribute("width",d),f.setAttribute("height",d),f.setAttribute("viewBox","0 0 512 512"),f.setAttribute("xml:space","preserve"),f.style.padding="0 1px",r.elementAttributes&&typeof r.elementAttributes=="object")for(let w in r.elementAttributes)if(w.charAt(0)=="+")w=w.slice(1),c.setAttribute(w,c.getAttribute(w)+r.elementAttributes["+"+w]);else c.setAttribute(w,r.elementAttributes[w]);for(var v=1;v<=h;v++)m(v);return l=Math.min(parseInt(l),h),p(l),c.addEventListener("mousemove",function(w){p(0)}),c.addEventListener("click",function(w){i(0,w)}),a.addEventListener("blur",function(w){s(w)}),a.addEventListener("keydown",function(w){switch(w.key){case"ArrowRight":b(l+1);break;case"ArrowLeft":b(l-1);break;case"Enter":i(l,w);break;case"Escape":s(w);break}}),c}function wt(e,t,i,s,r){var o=e.getElement(),a=typeof r.max>"u"?o.getElementsByTagName("div")[0]&&o.getElementsByTagName("div")[0].getAttribute("max")||100:r.max,l=typeof r.min>"u"?o.getElementsByTagName("div")[0]&&o.getElementsByTagName("div")[0].getAttribute("min")||0:r.min,h=(a-l)/100,d=e.getValue()||0,u=document.createElement("div"),c=document.createElement("div"),f,p;function m(b){var v=window.getComputedStyle(o,null),w=h*Math.round(c.offsetWidth/((o.clientWidth-parseInt(v.getPropertyValue("padding-left"))-parseInt(v.getPropertyValue("padding-right")))/100))+l;i(w,b),o.setAttribute("aria-valuenow",w),o.setAttribute("aria-label",d)}if(u.style.position="absolute",u.style.right="0",u.style.top="0",u.style.bottom="0",u.style.width="5px",u.classList.add("tabulator-progress-handle"),c.style.display="inline-block",c.style.position="relative",c.style.height="100%",c.style.backgroundColor="#488CE9",c.style.maxWidth="100%",c.style.minWidth="0%",r.elementAttributes&&typeof r.elementAttributes=="object")for(let b in r.elementAttributes)if(b.charAt(0)=="+")b=b.slice(1),c.setAttribute(b,c.getAttribute(b)+r.elementAttributes["+"+b]);else c.setAttribute(b,r.elementAttributes[b]);return o.style.padding="4px 4px",d=Math.min(parseFloat(d),a),d=Math.max(parseFloat(d),l),d=Math.round((d-l)/h),c.style.width=d+"%",o.setAttribute("aria-valuemin",l),o.setAttribute("aria-valuemax",a),c.appendChild(u),u.addEventListener("mousedown",function(b){f=b.screenX,p=c.offsetWidth}),u.addEventListener("mouseover",function(){u.style.cursor="ew-resize"}),o.addEventListener("mousemove",function(b){if(f)c.style.width=p+b.screenX-f+"px"}),o.addEventListener("mouseup",function(b){if(f)b.stopPropagation(),b.stopImmediatePropagation(),f=!1,p=!1,m(b)}),o.addEventListener("keydown",function(b){switch(b.key){case"ArrowRight":b.preventDefault(),c.style.width=c.clientWidth+o.clientWidth/100+"px";break;case"ArrowLeft":b.preventDefault(),c.style.width=c.clientWidth-o.clientWidth/100+"px";break;case"Tab":case"Enter":m(b);break;case"Escape":s(b);break}}),o.addEventListener("blur",function(b){s(b)}),c}function Ct(e,t,i,s,r){var o=e.getValue(),a=document.createElement("input"),l=r.tristate,h=typeof r.indeterminateValue>"u"?null:r.indeterminateValue,d=!1,u=Object.keys(r).includes("trueValue"),c=Object.keys(r).includes("falseValue");if(a.setAttribute("type","checkbox"),a.style.marginTop="5px",a.style.boxSizing="border-box",r.elementAttributes&&typeof r.elementAttributes=="object")for(let p in r.elementAttributes)if(p.charAt(0)=="+")p=p.slice(1),a.setAttribute(p,a.getAttribute(p)+r.elementAttributes["+"+p]);else a.setAttribute(p,r.elementAttributes[p]);if(a.value=o,l&&(typeof o>"u"||o===h||o===""))d=!0,a.indeterminate=!0;if(this.table.browser!="firefox"&&this.table.browser!="safari")t(function(){if(e.getType()==="cell")a.focus({preventScroll:!0})});a.checked=u?o===r.trueValue:o===!0||o==="true"||o==="True"||o===1;function f(p){var m=a.checked;if(u&&m)m=r.trueValue;else if(c&&!m)m=r.falseValue;if(l)if(!p)if(a.checked&&!d)return a.checked=!1,a.indeterminate=!0,d=!0,h;else return d=!1,m;else if(d)return h;else return m;else return m}return a.addEventListener("change",function(p){i(f(),p)}),a.addEventListener("blur",function(p){i(f(!0),p)}),a.addEventListener("keydown",function(p){if(p.key=="Enter")i(f(),p);if(p.key=="Escape")s(p)}),a}function Et(e,t,i,s,r){var o=e._getSelf().column,a,l,h;function d(u){var c=u.getValue(),f="input";switch(typeof c){case"number":f="number";break;case"boolean":f="tickCross";break;case"string":if(c.includes(`
|
|
5
|
+
`))f="textarea";break}return f}if(a=r.editorLookup?r.editorLookup(e):d(e),r.paramsLookup)h=typeof r.paramsLookup==="function"?r.paramsLookup(a,e):r.paramsLookup[a];return l=this.table.modules.edit.lookupEditor(a,o),l.call(this,e,t,i,s,h||{})}var yt={input:lt,textarea:ht,number:dt,range:ut,date:ct,time:pt,datetime:mt,list:bt,star:vt,progress:wt,tickCross:Ct,adaptable:Et};class ie extends F{static moduleName="edit";static editors=yt;constructor(e){super(e);this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1,this.editedCells=[],this.convertEmptyValues=!1,this.editors=ie.editors,this.registerTableOption("editTriggerEvent","focus"),this.registerTableOption("editorEmptyValue"),this.registerTableOption("editorEmptyValueFunc",this.emptyValueCheck.bind(this)),this.registerColumnOption("editable"),this.registerColumnOption("editor"),this.registerColumnOption("editorParams"),this.registerColumnOption("editorEmptyValue"),this.registerColumnOption("editorEmptyValueFunc"),this.registerColumnOption("cellEditing"),this.registerColumnOption("cellEdited"),this.registerColumnOption("cellEditCancelled"),this.registerTableFunction("getEditedCells",this.getEditedCells.bind(this)),this.registerTableFunction("clearCellEdited",this.clearCellEdited.bind(this)),this.registerTableFunction("setCellEdited",this.setCellEdited.bind(this)),this.registerTableFunction("navigatePrev",this.navigatePrev.bind(this)),this.registerTableFunction("navigateNext",this.navigateNext.bind(this)),this.registerTableFunction("navigateLeft",this.navigateLeft.bind(this)),this.registerTableFunction("navigateRight",this.navigateRight.bind(this)),this.registerTableFunction("navigateUp",this.navigateUp.bind(this)),this.registerTableFunction("navigateDown",this.navigateDown.bind(this)),this.registerComponentFunction("cell","isEdited",this.cellIsEdited.bind(this)),this.registerComponentFunction("cell","clearEdited",this.clearEdited.bind(this)),this.registerComponentFunction("cell","setEdited",this.setEdited.bind(this)),this.registerComponentFunction("cell","edit",this.editCell.bind(this)),this.registerComponentFunction("cell","cancelEdit",this.cellCancelEdit.bind(this)),this.registerComponentFunction("cell","navigatePrev",this.navigatePrev.bind(this)),this.registerComponentFunction("cell","navigateNext",this.navigateNext.bind(this)),this.registerComponentFunction("cell","navigateLeft",this.navigateLeft.bind(this)),this.registerComponentFunction("cell","navigateRight",this.navigateRight.bind(this)),this.registerComponentFunction("cell","navigateUp",this.navigateUp.bind(this)),this.registerComponentFunction("cell","navigateDown",this.navigateDown.bind(this))}initialize(){if(this.subscribe("cell-init",this.bindEditor.bind(this)),this.subscribe("cell-delete",this.clearEdited.bind(this)),this.subscribe("cell-value-changed",this.updateCellClass.bind(this)),this.subscribe("column-layout",this.initializeColumnCheck.bind(this)),this.subscribe("column-delete",this.columnDeleteCheck.bind(this)),this.subscribe("row-deleting",this.rowDeleteCheck.bind(this)),this.subscribe("row-layout",this.rowEditableCheck.bind(this)),this.subscribe("data-refreshing",this.cancelEdit.bind(this)),this.subscribe("clipboard-paste",this.pasteBlocker.bind(this)),!this.confirm("edit-nav-disabled"))this.subscribe("keybinding-nav-prev",this.navigatePrev.bind(this,void 0)),this.subscribe("keybinding-nav-next",this.keybindingNavigateNext.bind(this)),this.subscribe("keybinding-nav-up",this.navigateUp.bind(this,void 0)),this.subscribe("keybinding-nav-down",this.navigateDown.bind(this,void 0));if(this.subscribe("edit-check-editing",this.checkEditing.bind(this)),this.subscribe("edit-cancel-cell",this.cancelEditEvent.bind(this)),Object.keys(this.table.options).includes("editorEmptyValue"))this.convertEmptyValues=!0}pasteBlocker(e){if(this.currentCell)return!0}keybindingNavigateNext(e){var t=this.currentCell,i=this.options("tabEndNewRow");if(t){if(!this.navigateNext(t,e)){if(i){if(t.getElement().firstChild.blur(),!this.invalidEdit){if(i===!0)i=this.table.addRow({});else if(typeof i=="function")i=this.table.addRow(i(t.row.getComponent()));else i=this.table.addRow(Object.assign({},i));i.then(()=>{setTimeout(()=>{t.getComponent().navigateNext()})})}}}}}cellIsEdited(e){return!!e.modules.edit&&e.modules.edit.edited}cellCancelEdit(e){if(e===this.currentCell)this.table.modules.edit.cancelEdit();else console.warn("Cancel Editor Error - This cell is not currently being edited ")}updateCellClass(e){if(this.allowEdit(e))e.getElement().classList.add("tabulator-editable");else e.getElement().classList.remove("tabulator-editable")}clearCellEdited(e){if(!e)e=this.table.modules.edit.getEditedCells();if(!Array.isArray(e))e=[e];e.forEach((t)=>{this.table.modules.edit.clearEdited(t._getSelf())})}setCellEdited(e){if(!e)return;if(!Array.isArray(e))e=[e];e.forEach((t)=>{this.table.modules.edit.setEdited(t._getSelf())})}navigatePrev(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=this.navigateLeft(),i)return!0;else if(s=this.table.rowManager.prevDisplayRow(e.row,!0),s){if(i=this.findPrevEditableCell(s,s.cells.length),i)return i.getComponent().edit(),!0}}return!1}navigateNext(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=this.navigateRight(),i)return!0;else if(s=this.table.rowManager.nextDisplayRow(e.row,!0),s){if(i=this.findNextEditableCell(s,-1),i)return i.getComponent().edit(),!0}}return!1}navigateLeft(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.findPrevEditableCell(e.row,i),s)return s.getComponent().edit(),!0}return!1}navigateRight(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.findNextEditableCell(e.row,i),s)return s.getComponent().edit(),!0}return!1}navigateUp(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.table.rowManager.prevDisplayRow(e.row,!0),s)return s.cells[i].getComponent().edit(),!0}return!1}navigateDown(e=this.currentCell,t){var i,s;if(e){if(t)t.preventDefault();if(i=e.getIndex(),s=this.table.rowManager.nextDisplayRow(e.row,!0),s)return s.cells[i].getComponent().edit(),!0}return!1}findNextEditableCell(e,t){var i=!1;if(t<e.cells.length-1)for(var s=t+1;s<e.cells.length;s++){let r=e.cells[s];if(r.column.modules.edit&&L.elVisible(r.getElement())){if(this.allowEdit(r)){i=r;break}}}return i}findPrevEditableCell(e,t){var i=!1;if(t>0)for(var s=t-1;s>=0;s--){let r=e.cells[s];if(r.column.modules.edit&&L.elVisible(r.getElement())){if(this.allowEdit(r)){i=r;break}}}return i}initializeColumnCheck(e){if(typeof e.definition.editor<"u")this.initializeColumn(e)}columnDeleteCheck(e){if(this.currentCell&&this.currentCell.column===e)this.cancelEdit()}rowDeleteCheck(e){if(this.currentCell&&this.currentCell.row===e)this.cancelEdit()}rowEditableCheck(e){e.getCells().forEach((t)=>{if(t.column.modules.edit&&typeof t.column.modules.edit.check==="function")this.updateCellClass(t)})}initializeColumn(e){var t=Object.keys(e.definition).includes("editorEmptyValue"),i={editor:!1,blocked:!1,check:e.definition.editable,params:e.definition.editorParams||{},convertEmptyValues:t,editorEmptyValue:e.definition.editorEmptyValue,editorEmptyValueFunc:e.definition.editorEmptyValueFunc};if(i.editor=this.lookupEditor(e.definition.editor,e),i.editor)e.modules.edit=i}lookupEditor(e,t){var i;switch(typeof e){case"string":if(this.editors[e])i=this.editors[e];else console.warn("Editor Error - No such editor found: ",e);break;case"function":i=e;break;case"boolean":if(e===!0)if(typeof t.definition.formatter!=="function")if(this.editors[t.definition.formatter])i=this.editors[t.definition.formatter];else i=this.editors.input;else console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",t.definition.formatter);break}return i}getCurrentCell(){return this.currentCell?this.currentCell.getComponent():!1}checkEditing(){return!!this.currentCell}cancelEditEvent(){if(this.currentCell)return this.cancelEdit(),!0;return!1}clearEditor(e,t){var i=this.currentCell,s;if(this.invalidEdit=!1,i){this.currentCell=!1,s=i.getElement(),this.dispatch("edit-editor-clear",i,e,t),s.classList.remove("tabulator-editing");while(s.firstChild)s.removeChild(s.firstChild);i.row.getElement().classList.remove("tabulator-editing"),i.table.element.classList.remove("tabulator-editing")}if(this.table.getRedrawBlock())this.table.restoreRedraw()}cancelEdit(e){if(this.currentCell){var t=this.currentCell,i=this.currentCell.getComponent();if(this.clearEditor(!0,e),t.setValueActual(t.getValue()),t.cellRendered(),t.column.definition.editor=="textarea"||t.column.definition.variableHeight)t.row.normalizeHeight(!0);if(t.column.definition.cellEditCancelled)t.column.definition.cellEditCancelled.call(this.table,i);this.dispatch("edit-cancelled",t),this.dispatchExternal("cellEditCancelled",i)}}bindEditor(e){if(e.column.modules.edit){var t=this,i=e.getElement(!0);if(this.updateCellClass(e),i.setAttribute("tabindex",0),i.addEventListener("mousedown",function(s){if(s.button===2)s.preventDefault();else t.mouseClick=!0}),this.options("editTriggerEvent")==="dblclick")i.addEventListener("dblclick",function(s){if(!i.classList.contains("tabulator-editing"))i.focus({preventScroll:!0}),t.edit(e,s,!1)});if(this.options("editTriggerEvent")==="focus"||this.options("editTriggerEvent")==="click")i.addEventListener("click",function(s){if(!i.classList.contains("tabulator-editing"))i.focus({preventScroll:!0}),t.edit(e,s,!1)});if(this.options("editTriggerEvent")==="focus")i.addEventListener("focus",function(s){if(!t.recursionBlock)t.edit(e,s,!1)})}}focusCellNoEvent(e,t){if(this.recursionBlock=!0,!(t&&this.table.browser==="ie"))e.getElement().focus({preventScroll:!0});this.recursionBlock=!1}editCell(e,t,i){this.focusCellNoEvent(e),this.edit(e,!1,t,i)}focusScrollAdjust(e){if(this.table.rowManager.getRenderMode()=="virtual"){var t=this.table.rowManager.element.scrollTop,i=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,s=e.row.getElement();if(s.offsetTop<t)this.table.rowManager.element.scrollTop-=t-s.offsetTop;else if(s.offsetTop+s.offsetHeight>i)this.table.rowManager.element.scrollTop+=s.offsetTop+s.offsetHeight-i;var r=this.table.rowManager.element.scrollLeft,o=this.table.rowManager.element.clientWidth+this.table.rowManager.element.scrollLeft,a=e.getElement();if(this.table.modExists("frozenColumns"))r+=parseInt(this.table.modules.frozenColumns.leftMargin||0),o-=parseInt(this.table.modules.frozenColumns.rightMargin||0);if(this.table.options.renderHorizontal==="virtual")r-=parseInt(this.table.columnManager.renderer.vDomPadLeft),o-=parseInt(this.table.columnManager.renderer.vDomPadLeft);if(a.offsetLeft<r)this.table.rowManager.element.scrollLeft-=r-a.offsetLeft;else if(a.offsetLeft+a.offsetWidth>o)this.table.rowManager.element.scrollLeft+=a.offsetLeft+a.offsetWidth-o}}allowEdit(e){var t=e.column.modules.edit?!0:!1;if(e.column.modules.edit)switch(typeof e.column.modules.edit.check){case"function":if(e.row.initialized)t=e.column.modules.edit.check(e.getComponent());break;case"string":t=!!e.row.data[e.column.modules.edit.check];break;case"boolean":t=e.column.modules.edit.check;break}return t}edit(e,t,i,s){var r=this,o=!0,a=function(){},l=e.getElement(),h=!1,d,u,c;if(this.currentCell){if(this.invalidEdit||this.currentCell===e)return;this.cancelEdit()}function f(w,x){if(r.currentCell===e&&!h){var S=r.chain("edit-success",[e,w],!0,!0);if(S===!0||r.table.options.validationMode==="highlight"){if(h=!0,r.clearEditor(!1,x),!e.modules.edit)e.modules.edit={};if(e.modules.edit.edited=!0,r.editedCells.indexOf(e)==-1)r.editedCells.push(e);return w=r.transformEmptyValues(w,e),e.setValue(w,!0),S===!0}else return h=!0,r.invalidEdit=!0,r.focusCellNoEvent(e,!0),a(),setTimeout(()=>{h=!1},10),!1}}function p(w){if(r.currentCell===e&&!h)r.cancelEdit(w)}function m(w){a=w}if(!e.column.modules.edit.blocked)if(o=this.allowEdit(e),o||i){if(t)t.stopPropagation();if(r.cancelEdit(),r.currentCell=e,this.focusScrollAdjust(e),u=e.getComponent(),this.mouseClick){if(this.mouseClick=!1,e.column.definition.cellClick)e.column.definition.cellClick.call(this.table,t,u)}if(e.column.definition.cellEditing)e.column.definition.cellEditing.call(this.table,u);if(this.dispatch("cell-editing",e),this.dispatchExternal("cellEditing",u),c=typeof e.column.modules.edit.params==="function"?e.column.modules.edit.params(u):e.column.modules.edit.params,s)c={...c,...s};if(d=e.column.modules.edit.editor.call(r,u,m,f,p,c),this.currentCell&&d!==!1)if(d instanceof Node){this.dispatch("edit-editor-created",e,d),l.classList.add("tabulator-editing"),e.row.getElement().classList.add("tabulator-editing"),e.table.element.classList.add("tabulator-editing");while(l.firstChild)l.removeChild(l.firstChild);l.appendChild(d),this.table.blockRedraw(),a();var b=l.children;for(var v=0;v<b.length;v++)b[v].addEventListener("click",function(w){w.stopPropagation()}),b[v].addEventListener("mousedown",function(w){w.stopPropagation()}),b[v].addEventListener("mouseup",function(w){w.stopPropagation()})}else return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",d),this.blur(l),!1;else return this.blur(l),!1;return!0}else return this.mouseClick=!1,this.blur(l),!1;else return this.mouseClick=!1,this.blur(l),!1}emptyValueCheck(e){return e===""||e===null||typeof e>"u"}transformEmptyValues(e,t){var i=t.column.modules.edit,s=i.convertEmptyValues||this.convertEmptyValues,r;if(s){if(r=i.editorEmptyValueFunc||this.options("editorEmptyValueFunc"),r&&r(e))e=i.convertEmptyValues?i.editorEmptyValue:this.options("editorEmptyValue")}return e}blur(e){if(!this.confirm("edit-blur",[e]))e.blur()}getEditedCells(){var e=[];return this.editedCells.forEach((t)=>{e.push(t.getComponent())}),e}clearEdited(e){var t;if(e.modules.edit&&e.modules.edit.edited)e.modules.edit.edited=!1,this.dispatch("edit-edited-clear",e);if(t=this.editedCells.indexOf(e),t>-1)this.editedCells.splice(t,1)}setEdited(e){if(!e.modules.edit)e.modules.edit={};if(!e.modules.edit.edited)e.modules.edit.edited=!0,this.dispatch("edit-edited-set",e);if(this.editedCells.indexOf(e)==-1)this.editedCells.push(e)}}class re{constructor(e,t,i,s){this.type=e,this.columns=t,this.component=i||!1,this.indent=s||0}}class Y{constructor(e,t,i,s,r){this.value=e,this.component=t||!1,this.width=i,this.height=s,this.depth=r}}var Rt={},xt={visible:function(){return this.rowManager.getVisibleRows(!1,!0)},all:function(){return this.rowManager.rows},selected:function(){return this.modules.selectRow.selectedRows},active:function(){if(this.options.pagination)return this.rowManager.getDisplayRows(this.rowManager.displayRows.length-2);else return this.rowManager.getDisplayRows()}};class j extends F{static moduleName="export";static columnLookups=Rt;static rowLookups=xt;constructor(e){super(e);this.config={},this.cloneTableStyle=!0,this.colVisProp="",this.colVisPropAttach="",this.registerTableOption("htmlOutputConfig",!1),this.registerColumnOption("htmlOutput"),this.registerColumnOption("titleHtmlOutput")}initialize(){this.registerTableFunction("getHtml",this.getHtml.bind(this))}generateExportList(e,t,i,s){var r,o,a,l;if(this.cloneTableStyle=t,this.config=e||{},this.colVisProp=s,this.colVisPropAttach=this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1),l=j.columnLookups[i],l)a=l.call(this.table),a=a.filter((h)=>this.columnVisCheck(h));if(r=this.config.columnHeaders!==!1?this.headersToExportRows(this.generateColumnGroupHeaders(a)):[],a)a=a.map((h)=>h.getComponent());return o=this.bodyToExportRows(this.rowLookup(i),a),r.concat(o)}generateTable(e,t,i,s){var r=this.generateExportList(e,t,i,s);return this.generateTableElement(r)}rowLookup(e){var t=[],i;if(typeof e=="function")e.call(this.table).forEach((s)=>{if(s=this.table.rowManager.findRow(s),s)t.push(s)});else i=j.rowLookups[e]||j.rowLookups.active,t=i.call(this.table);return Object.assign([],t)}generateColumnGroupHeaders(e){var t=[];if(!e)e=this.config.columnGroups!==!1?this.table.columnManager.columns:this.table.columnManager.columnsByIndex;return e.forEach((i)=>{var s=this.processColumnGroup(i);if(s)t.push(s)}),t}processColumnGroup(e){var t=e.columns,i=0,s=e.definition["title"+this.colVisPropAttach]||e.definition.title,r={title:s,column:e,depth:1};if(t.length){if(r.subGroups=[],r.width=0,t.forEach((o)=>{var a=this.processColumnGroup(o);if(a){if(r.width+=a.width,r.subGroups.push(a),a.depth>i)i=a.depth}}),r.depth+=i,!r.width)return!1}else if(this.columnVisCheck(e))r.width=1;else return!1;return r}columnVisCheck(e){var t=e.definition[this.colVisProp];if(this.config.rowHeaders===!1&&e.isRowHeader)return!1;if(typeof t==="function")t=t.call(this.table,e.getComponent());if(t===!1||t===!0)return t;return e.visible&&e.field}headersToExportRows(e){var t=[],i=0,s=[];function r(o,a){var l=i-a;if(typeof t[a]>"u")t[a]=[];if(o.height=o.subGroups?1:l-o.depth+1,t[a].push(o),o.height>1)for(let h=1;h<o.height;h++){if(typeof t[a+h]>"u")t[a+h]=[];t[a+h].push(!1)}if(o.width>1)for(let h=1;h<o.width;h++)t[a].push(!1);if(o.subGroups)o.subGroups.forEach(function(h){r(h,a+1)})}return e.forEach(function(o){if(o.depth>i)i=o.depth}),e.forEach(function(o){r(o,0)}),t.forEach((o)=>{var a=[];o.forEach((l)=>{if(l){let h=typeof l.title>"u"?"":l.title;a.push(new Y(h,l.column.getComponent(),l.width,l.height,l.depth))}else a.push(null)}),s.push(new re("header",a))}),s}bodyToExportRows(e,t=[]){var i=[];if(t.length===0)this.table.columnManager.columnsByIndex.forEach((s)=>{if(this.columnVisCheck(s))t.push(s.getComponent())});if(this.config.columnCalcs!==!1&&this.table.modExists("columnCalcs")){if(this.table.modules.columnCalcs.topInitialized)e.unshift(this.table.modules.columnCalcs.topRow);if(this.table.modules.columnCalcs.botInitialized)e.push(this.table.modules.columnCalcs.botRow)}return e=e.filter((s)=>{switch(s.type){case"group":return this.config.rowGroups!==!1;case"calc":return this.config.columnCalcs!==!1;case"row":return!(this.table.options.dataTree&&this.config.dataTree===!1&&s.modules.dataTree.parent)}return!0}),e.forEach((s,r)=>{var o=s.getData(this.colVisProp),a=[],l=0;switch(s.type){case"group":l=s.level,a.push(new Y(s.key,s.getComponent(),t.length,1));break;case"calc":case"row":if(t.forEach((h)=>{a.push(new Y(h._column.getFieldValue(o),h,1,1))}),this.table.options.dataTree&&this.config.dataTree!==!1)l=s.modules.dataTree.index;break}i.push(new re(s.type,a,s.getComponent(),l))}),i}generateTableElement(e){var t=document.createElement("table"),i=document.createElement("thead"),s=document.createElement("tbody"),r=this.lookupTableStyles(),o=this.table.options["rowFormatter"+this.colVisPropAttach],a={};if(a.rowFormatter=o!==null?o:this.table.options.rowFormatter,this.table.options.dataTree&&this.config.dataTree!==!1&&this.table.modExists("columnCalcs"))a.treeElementField=this.table.modules.dataTree.elementField;if(a.groupHeader=this.table.options["groupHeader"+this.colVisPropAttach],a.groupHeader&&!Array.isArray(a.groupHeader))a.groupHeader=[a.groupHeader];if(t.classList.add("tabulator-print-table"),this.mapElementStyles(this.table.columnManager.getHeadersElement(),i,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),e.length>1000)console.warn("It may take a long time to render an HTML table with more than 1000 rows");if(e.forEach((l,h)=>{let d;switch(l.type){case"header":i.appendChild(this.generateHeaderElement(l,a,r));break;case"group":s.appendChild(this.generateGroupElement(l,a,r));break;case"calc":s.appendChild(this.generateCalcElement(l,a,r));break;case"row":d=this.generateRowElement(l,a,r),this.mapElementStyles(h%2&&r.evenRow?r.evenRow:r.oddRow,d,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),s.appendChild(d);break}}),i.innerHTML)t.appendChild(i);return t.appendChild(s),this.mapElementStyles(this.table.element,t,["border-top","border-left","border-right","border-bottom"]),t}lookupTableStyles(){var e={};if(this.cloneTableStyle&&window.getComputedStyle){if(e.oddRow=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),e.evenRow=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),e.calcRow=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),e.firstRow=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),e.firstGroup=this.table.element.getElementsByClassName("tabulator-group")[0],e.firstRow)e.styleCells=e.firstRow.getElementsByClassName("tabulator-cell"),e.styleRowHeader=e.firstRow.getElementsByClassName("tabulator-row-header")[0],e.firstCell=e.styleCells[0],e.lastCell=e.styleCells[e.styleCells.length-1]}return e}generateHeaderElement(e,t,i){var s=document.createElement("tr");return e.columns.forEach((r)=>{if(r){var o=document.createElement("th"),a=r.component._column.definition.cssClass?r.component._column.definition.cssClass.split(" "):[];if(o.colSpan=r.width,o.rowSpan=r.height,o.innerHTML=r.value,this.cloneTableStyle)o.style.boxSizing="border-box";if(a.forEach(function(l){o.classList.add(l)}),this.mapElementStyles(r.component.getElement(),o,["text-align","border-left","border-right","background-color","color","font-weight","font-family","font-size"]),this.mapElementStyles(r.component._column.contentElement,o,["padding-top","padding-left","padding-right","padding-bottom"]),r.component._column.visible)this.mapElementStyles(r.component.getElement(),o,["width"]);else if(r.component._column.definition.width)o.style.width=r.component._column.definition.width+"px";if(r.component._column.parent&&r.component._column.parent.isGroup)this.mapElementStyles(r.component._column.parent.groupElement,o,["border-top"]);else this.mapElementStyles(r.component.getElement(),o,["border-top"]);if(r.component._column.isGroup)this.mapElementStyles(r.component.getElement(),o,["border-bottom"]);else this.mapElementStyles(this.table.columnManager.getElement(),o,["border-bottom"]);s.appendChild(o)}}),s}generateGroupElement(e,t,i){var s=document.createElement("tr"),r=document.createElement("td"),o=e.columns[0];if(s.classList.add("tabulator-print-table-row"),t.groupHeader&&t.groupHeader[e.indent])o.value=t.groupHeader[e.indent](o.value,e.component._group.getRowCount(),e.component._group.getData(),e.component);else if(t.groupHeader!==!1)o.value=e.component._group.generator(o.value,e.component._group.getRowCount(),e.component._group.getData(),e.component);if(r.colSpan=o.width,r.innerHTML=o.value,s.classList.add("tabulator-print-table-group"),s.classList.add("tabulator-group-level-"+e.indent),o.component.isVisible())s.classList.add("tabulator-group-visible");return this.mapElementStyles(i.firstGroup,s,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),this.mapElementStyles(i.firstGroup,r,["padding-top","padding-left","padding-right","padding-bottom"]),s.appendChild(r),s}generateCalcElement(e,t,i){var s=this.generateRowElement(e,t,i);return s.classList.add("tabulator-print-table-calcs"),this.mapElementStyles(i.calcRow,s,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),s}generateRowElement(e,t,i){var s=document.createElement("tr");if(s.classList.add("tabulator-print-table-row"),e.columns.forEach((r,o)=>{if(r){var a=document.createElement("td"),l=r.component._column,h=this.table,d=h.columnManager.findColumnIndex(l),u=r.value,c,f,p={modules:{},getValue:function(){return u},getField:function(){return l.definition.field},getElement:function(){return a},getType:function(){return"cell"},getColumn:function(){return l.getComponent()},getData:function(){return e.component.getData()},getRow:function(){return e.component},getTable:function(){return h},getComponent:function(){return p},column:l},m=l.definition.cssClass?l.definition.cssClass.split(" "):[];if(m.forEach(function(b){a.classList.add(b)}),this.table.modExists("format")&&this.config.formatCells!==!1)u=this.table.modules.format.formatExportValue(p,this.colVisProp);else switch(typeof u){case"object":u=u!==null?JSON.stringify(u):"";break;case"undefined":u="";break}if(u instanceof Node)a.appendChild(u);else a.innerHTML=u;if(f=["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","text-align"],l.isRowHeader)c=i.styleRowHeader,f.push("background-color");else c=i.styleCells&&i.styleCells[d]?i.styleCells[d]:i.firstCell;if(c){if(this.mapElementStyles(c,a,f),l.definition.align)a.style.textAlign=l.definition.align}if(this.table.options.dataTree&&this.config.dataTree!==!1){if(t.treeElementField&&t.treeElementField==l.field||!t.treeElementField&&o==0){if(e.component._row.modules.dataTree.controlEl)a.insertBefore(e.component._row.modules.dataTree.controlEl.cloneNode(!0),a.firstChild);if(e.component._row.modules.dataTree.branchEl)a.insertBefore(e.component._row.modules.dataTree.branchEl.cloneNode(!0),a.firstChild)}}if(s.appendChild(a),p.modules.format&&p.modules.format.renderedCallback)p.modules.format.renderedCallback()}}),t.rowFormatter&&e.type==="row"&&this.config.formatCells!==!1){let r=Object.assign(e.component);r.getElement=function(){return s},t.rowFormatter(e.component)}return s}generateHTMLTable(e){var t=document.createElement("div");return t.appendChild(this.generateTableElement(e)),t.innerHTML}getHtml(e,t,i,s){var r=this.generateExportList(i||this.table.options.htmlOutputConfig,t,e,s||"htmlOutput");return this.generateHTMLTable(r)}mapElementStyles(e,t,i){if(this.cloneTableStyle&&e&&t){var s={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var r=window.getComputedStyle(e);i.forEach(function(o){if(!t.style[s[o]])t.style[s[o]]=r.getPropertyValue(o)})}}}}var Tt={"=":function(e,t,i,s){return t==e?!0:!1},"<":function(e,t,i,s){return t<e?!0:!1},"<=":function(e,t,i,s){return t<=e?!0:!1},">":function(e,t,i,s){return t>e?!0:!1},">=":function(e,t,i,s){return t>=e?!0:!1},"!=":function(e,t,i,s){return t!=e?!0:!1},regex:function(e,t,i,s){if(typeof e=="string")e=new RegExp(e);return e.test(t)},like:function(e,t,i,s){if(e===null||typeof e>"u")return t===e?!0:!1;else if(typeof t<"u"&&t!==null)return String(t).toLowerCase().indexOf(e.toLowerCase())>-1;else return!1},keywords:function(e,t,i,s){var r=e.toLowerCase().split(typeof s.separator>"u"?" ":s.separator),o=String(t===null||typeof t>"u"?"":t).toLowerCase(),a=[];return r.forEach((l)=>{if(o.includes(l))a.push(!0)}),s.matchAll?a.length===r.length:!!a.length},starts:function(e,t,i,s){if(e===null||typeof e>"u")return t===e?!0:!1;else if(typeof t<"u"&&t!==null)return String(t).toLowerCase().startsWith(e.toLowerCase());else return!1},ends:function(e,t,i,s){if(e===null||typeof e>"u")return t===e?!0:!1;else if(typeof t<"u"&&t!==null)return String(t).toLowerCase().endsWith(e.toLowerCase());else return!1},in:function(e,t,i,s){if(Array.isArray(e))return e.length?e.indexOf(t)>-1:!0;else return console.warn("Filter Error - filter value is not an array:",e),!1},smart:function(e,t,i,s){let r=e.trim();if(r===".")return!(t===null||t=="");if(r==="!")return t===null||t=="";if(r.indexOf("<=")===0)return this["<="](parseFloat(r.substring(2)),t,i,s);if(r.indexOf(">=")===0)return this[">="](parseFloat(r.substring(2)),t,i,s);if(r.indexOf("<")===0)return this["<"](parseFloat(r.substring(1)),t,i,s);if(r.indexOf(">")===0)return this[">"](parseFloat(r.substring(1)),t,i,s);if(r.indexOf("=")===0)return this["="](r.substring(1).trim(),t,i,s);if(r.includes(" ")){let o=r.split(/\s+/).filter((a)=>a.length>0);if(o.length>1){let a=o.join(" AND ");return this.smarter(a,t,i,s)}}return this.like(r,t,i,s)},smarter:function(e,t,i,s){let r=e.trim();if(!r)return!0;let o=r.split(/\s+(AND|OR)\s+/i);if(o.length===1)return this.smart(r,t,i,s);let a=null,l=null;for(let h=0;h<o.length;h++){let d=o[h].trim();if(d==="AND"||d==="OR"){l=d;continue}let u=this.smart(d,t,i,s);if(a===null)a=u;else if(l==="AND")a=a&&u;else if(l==="OR")a=a||u}return a!==null?a:!0}};class N extends F{static moduleName="filter";static filters=Tt;constructor(e){super(e);this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1,this.tableInitialized=!1,this.registerTableOption("filterMode","local"),this.registerTableOption("initialFilter",!1),this.registerTableOption("initialHeaderFilter",!1),this.registerTableOption("headerFilterLiveFilterDelay",300),this.registerTableOption("placeholderHeaderFilter",!1),this.registerColumnOption("headerFilter"),this.registerColumnOption("headerFilterPlaceholder"),this.registerColumnOption("headerFilterParams"),this.registerColumnOption("headerFilterEmptyCheck"),this.registerColumnOption("headerFilterFunc"),this.registerColumnOption("headerFilterFuncParams"),this.registerColumnOption("headerFilterLiveFilter"),this.registerTableFunction("searchRows",this.searchRows.bind(this)),this.registerTableFunction("searchData",this.searchData.bind(this)),this.registerTableFunction("setFilter",this.userSetFilter.bind(this)),this.registerTableFunction("refreshFilter",this.userRefreshFilter.bind(this)),this.registerTableFunction("addFilter",this.userAddFilter.bind(this)),this.registerTableFunction("getFilters",this.getFilters.bind(this)),this.registerTableFunction("setHeaderFilterFocus",this.userSetHeaderFilterFocus.bind(this)),this.registerTableFunction("getHeaderFilterValue",this.userGetHeaderFilterValue.bind(this)),this.registerTableFunction("setHeaderFilterValue",this.userSetHeaderFilterValue.bind(this)),this.registerTableFunction("getHeaderFilters",this.getHeaderFilters.bind(this)),this.registerTableFunction("removeFilter",this.userRemoveFilter.bind(this)),this.registerTableFunction("clearFilter",this.userClearFilter.bind(this)),this.registerTableFunction("clearHeaderFilter",this.userClearHeaderFilter.bind(this)),this.registerComponentFunction("column","headerFilterFocus",this.setHeaderFilterFocus.bind(this)),this.registerComponentFunction("column","reloadHeaderFilter",this.reloadHeaderFilter.bind(this)),this.registerComponentFunction("column","getHeaderFilterValue",this.getHeaderFilterValue.bind(this)),this.registerComponentFunction("column","setHeaderFilterValue",this.setHeaderFilterValue.bind(this))}initialize(){if(this.subscribe("column-init",this.initializeColumnHeaderFilter.bind(this)),this.subscribe("column-width-fit-before",this.hideHeaderFilterElements.bind(this)),this.subscribe("column-width-fit-after",this.showHeaderFilterElements.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.subscribe("placeholder",this.generatePlaceholder.bind(this)),this.table.options.filterMode==="remote")this.subscribe("data-params",this.remoteFilterParams.bind(this));this.registerDataHandler(this.filter.bind(this),10)}tableBuilt(){if(this.table.options.initialFilter)this.setFilter(this.table.options.initialFilter);if(this.table.options.initialHeaderFilter)this.table.options.initialHeaderFilter.forEach((e)=>{var t=this.table.columnManager.findColumn(e.field);if(t)this.setHeaderFilterValue(t,e.value);else return console.warn("Column Filter Error - No matching column found:",e.field),!1});this.tableInitialized=!0}remoteFilterParams(e,t,i,s){return s.filter=this.getFilters(!0,!0),s}generatePlaceholder(e){if(this.table.options.placeholderHeaderFilter&&Object.keys(this.headerFilters).length)return this.table.options.placeholderHeaderFilter}userSetFilter(e,t,i,s){this.setFilter(e,t,i,s),this.refreshFilter()}userRefreshFilter(){this.refreshFilter()}userAddFilter(e,t,i,s){this.addFilter(e,t,i,s),this.refreshFilter()}userSetHeaderFilterFocus(e){var t=this.table.columnManager.findColumn(e);if(t)this.setHeaderFilterFocus(t);else return console.warn("Column Filter Focus Error - No matching column found:",e),!1}userGetHeaderFilterValue(e){var t=this.table.columnManager.findColumn(e);if(t)return this.getHeaderFilterValue(t);else console.warn("Column Filter Error - No matching column found:",e)}userSetHeaderFilterValue(e,t){var i=this.table.columnManager.findColumn(e);if(i)this.setHeaderFilterValue(i,t);else return console.warn("Column Filter Error - No matching column found:",e),!1}userRemoveFilter(e,t,i){this.removeFilter(e,t,i),this.refreshFilter()}userClearFilter(e){this.clearFilter(e),this.refreshFilter()}userClearHeaderFilter(){this.clearHeaderFilter(),this.refreshFilter()}searchRows(e,t,i){return this.search("rows",e,t,i)}searchData(e,t,i){return this.search("data",e,t,i)}initializeColumnHeaderFilter(e){var t=e.definition;if(t.headerFilter)this.initializeColumn(e)}initializeColumn(e,t){var i=this,s=e.getField();function r(o){var a=e.modules.filter.tagType=="input"&&e.modules.filter.attrType=="text"||e.modules.filter.tagType=="textarea"?"partial":"match",l="",h="",d;if(typeof e.modules.filter.prevSuccess>"u"||e.modules.filter.prevSuccess!==o){if(e.modules.filter.prevSuccess=o,!e.modules.filter.emptyFunc(o)){switch(e.modules.filter.value=o,typeof e.definition.headerFilterFunc){case"string":if(N.filters[e.definition.headerFilterFunc])l=e.definition.headerFilterFunc,d=function(u){var c=e.definition.headerFilterFuncParams||{},f=e.getFieldValue(u);return c=typeof c==="function"?c(o,f,u):c,N.filters[e.definition.headerFilterFunc](o,f,u,c)};else console.warn("Header Filter Error - Matching filter function not found: ",e.definition.headerFilterFunc);break;case"function":d=function(u){var c=e.definition.headerFilterFuncParams||{},f=e.getFieldValue(u);return c=typeof c==="function"?c(o,f,u):c,e.definition.headerFilterFunc(o,f,u,c)},l=d;break}if(!d)switch(a){case"partial":d=function(u){var c=e.getFieldValue(u);if(typeof c<"u"&&c!==null)return String(c).toLowerCase().indexOf(String(o).toLowerCase())>-1;else return!1},l="like";break;default:d=function(u){return e.getFieldValue(u)==o},l="="}i.headerFilters[s]={value:o,func:d,type:l}}else delete i.headerFilters[s];if(e.modules.filter.value=o,h=JSON.stringify(i.headerFilters),i.prevHeaderFilterChangeCheck!==h)i.prevHeaderFilterChangeCheck=h,i.trackChanges(),i.refreshFilter()}return!0}e.modules.filter={success:r,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(e)}generateHeaderFilterElement(e,t,i){var s=this,r=e.modules.filter.success,o=e.getField(),a,l,h,d,u,c,f,p;e.modules.filter.value=t;function m(){}function b(v){p=v}if(e.modules.filter.headerElement&&e.modules.filter.headerElement.parentNode)e.contentElement.removeChild(e.modules.filter.headerElement.parentNode);if(o){switch(e.modules.filter.emptyFunc=e.definition.headerFilterEmptyCheck||function(v){return!v&&v!==0},a=document.createElement("div"),a.classList.add("tabulator-header-filter"),typeof e.definition.headerFilter){case"string":if(s.table.modules.edit.editors[e.definition.headerFilter]){if(l=s.table.modules.edit.editors[e.definition.headerFilter],(e.definition.headerFilter==="tick"||e.definition.headerFilter==="tickCross")&&!e.definition.headerFilterEmptyCheck)e.modules.filter.emptyFunc=function(v){return v!==!0&&v!==!1}}else console.warn("Filter Error - Cannot build header filter, No such editor found: ",e.definition.editor);break;case"function":l=e.definition.headerFilter;break;case"boolean":if(e.modules.edit&&e.modules.edit.editor)l=e.modules.edit.editor;else if(e.definition.formatter&&s.table.modules.edit.editors[e.definition.formatter]){if(l=s.table.modules.edit.editors[e.definition.formatter],(e.definition.formatter==="tick"||e.definition.formatter==="tickCross")&&!e.definition.headerFilterEmptyCheck)e.modules.filter.emptyFunc=function(v){return v!==!0&&v!==!1}}else l=s.table.modules.edit.editors.input;break}if(l){if(d={getValue:function(){return typeof t<"u"?t:""},getField:function(){return e.definition.field},getElement:function(){return a},getColumn:function(){return e.getComponent()},getTable:()=>this.table,getType:()=>"header",getRow:function(){return{normalizeHeight:function(){}}}},f=e.definition.headerFilterParams||{},f=typeof f==="function"?f.call(s.table,d):f,h=l.call(this.table.modules.edit,d,b,r,m,f),!h){console.warn("Filter Error - Cannot add filter to "+o+" column, editor returned a value of false");return}if(!(h instanceof Node)){console.warn("Filter Error - Cannot add filter to "+o+" column, editor should return an instance of Node, the editor returned:",h);return}if(s.langBind("headerFilters|columns|"+e.definition.field,function(v){h.setAttribute("placeholder",typeof v<"u"&&v?v:e.definition.headerFilterPlaceholder||s.langText("headerFilters|default"))}),h.addEventListener("click",function(v){v.stopPropagation(),h.focus()}),h.addEventListener("focus",(v)=>{var w=this.table.columnManager.contentsElement.scrollLeft,x=this.table.rowManager.element.scrollLeft;if(w!==x)this.table.rowManager.scrollHorizontal(w),this.table.columnManager.scrollHorizontal(w)}),u=!1,c=function(v){if(u)clearTimeout(u);u=setTimeout(function(){r(h.value)},s.table.options.headerFilterLiveFilterDelay)},e.modules.filter.headerElement=h,e.modules.filter.attrType=h.hasAttribute("type")?h.getAttribute("type").toLowerCase():"",e.modules.filter.tagType=h.tagName.toLowerCase(),e.definition.headerFilterLiveFilter!==!1){if(!(e.definition.headerFilter==="autocomplete"||e.definition.headerFilter==="tickCross"||(e.definition.editor==="autocomplete"||e.definition.editor==="tickCross")&&e.definition.headerFilter===!0)){if(h.addEventListener("keyup",c),h.addEventListener("search",c),e.modules.filter.attrType=="number")h.addEventListener("change",function(v){r(h.value)});if(e.modules.filter.attrType=="text"&&this.table.browser!=="ie")h.setAttribute("type","search")}if(e.modules.filter.tagType=="input"||e.modules.filter.tagType=="select"||e.modules.filter.tagType=="textarea")h.addEventListener("mousedown",function(v){v.stopPropagation()})}if(a.appendChild(h),e.contentElement.appendChild(a),!i)s.headerFilterColumns.push(e);if(p)p()}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",e.definition.title)}hideHeaderFilterElements(){this.headerFilterColumns.forEach(function(e){if(e.modules.filter&&e.modules.filter.headerElement)e.modules.filter.headerElement.style.display="none"})}showHeaderFilterElements(){this.headerFilterColumns.forEach(function(e){if(e.modules.filter&&e.modules.filter.headerElement)e.modules.filter.headerElement.style.display=""})}setHeaderFilterFocus(e){if(e.modules.filter&&e.modules.filter.headerElement)e.modules.filter.headerElement.focus();else console.warn("Column Filter Focus Error - No header filter set on column:",e.getField())}getHeaderFilterValue(e){if(e.modules.filter&&e.modules.filter.headerElement)return e.modules.filter.value;else console.warn("Column Filter Error - No header filter set on column:",e.getField())}setHeaderFilterValue(e,t){if(e)if(e.modules.filter&&e.modules.filter.headerElement)this.generateHeaderFilterElement(e,t,!0),e.modules.filter.success(t);else console.warn("Column Filter Error - No header filter set on column:",e.getField())}reloadHeaderFilter(e){if(e)if(e.modules.filter&&e.modules.filter.headerElement)this.generateHeaderFilterElement(e,e.modules.filter.value,!0);else console.warn("Column Filter Error - No header filter set on column:",e.getField())}refreshFilter(){if(this.tableInitialized)if(this.table.options.filterMode==="remote")this.reloadData(null,!1,!1);else this.refreshData(!0)}trackChanges(){this.changed=!0,this.dispatch("filter-changed")}hasChanged(){var e=this.changed;return this.changed=!1,e}setFilter(e,t,i,s){if(this.filterList=[],!Array.isArray(e))e=[{field:e,type:t,value:i,params:s}];this.addFilter(e)}addFilter(e,t,i,s){var r=!1;if(!Array.isArray(e))e=[{field:e,type:t,value:i,params:s}];if(e.forEach((o)=>{if(o=this.findFilter(o),o)this.filterList.push(o),r=!0}),r)this.trackChanges()}findFilter(e){var t;if(Array.isArray(e))return this.findSubFilters(e);var i=!1;if(typeof e.field=="function")i=function(s){return e.field(s,e.type||{})};else if(N.filters[e.type])if(t=this.table.columnManager.getColumnByField(e.field),t)i=function(s){return N.filters[e.type](e.value,t.getFieldValue(s),s,e.params||{})};else i=function(s){return N.filters[e.type](e.value,s[e.field],s,e.params||{})};else console.warn("Filter Error - No such filter type found, ignoring: ",e.type);return e.func=i,e.func?e:!1}findSubFilters(e){var t=[];return e.forEach((i)=>{if(i=this.findFilter(i),i)t.push(i)}),t.length?t:!1}getFilters(e,t){var i=[];if(e)i=this.getHeaderFilters();if(t)i.forEach(function(s){if(typeof s.type=="function")s.type="function"});return i=i.concat(this.filtersToArray(this.filterList,t)),i}filtersToArray(e,t){var i=[];return e.forEach((s)=>{var r;if(Array.isArray(s))i.push(this.filtersToArray(s,t));else{if(r={field:s.field,type:s.type,value:s.value},t){if(typeof r.type=="function")r.type="function"}i.push(r)}}),i}getHeaderFilters(){var e=[];for(var t in this.headerFilters)e.push({field:t,type:this.headerFilters[t].type,value:this.headerFilters[t].value});return e}removeFilter(e,t,i){if(!Array.isArray(e))e=[{field:e,type:t,value:i}];e.forEach((s)=>{var r=-1;if(typeof s.field=="object")r=this.filterList.findIndex((o)=>s===o);else r=this.filterList.findIndex((o)=>s.field===o.field&&s.type===o.type&&s.value===o.value);if(r>-1)this.filterList.splice(r,1);else console.warn("Filter Error - No matching filter type found, ignoring: ",s.type)}),this.trackChanges()}clearFilter(e){if(this.filterList=[],e)this.clearHeaderFilter();this.trackChanges()}clearHeaderFilter(){this.headerFilters={},this.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach((e)=>{if(typeof e.modules.filter.value<"u")delete e.modules.filter.value;e.modules.filter.prevSuccess=void 0,this.reloadHeaderFilter(e)}),this.trackChanges()}search(e,t,i,s){var r=[],o=[];if(!Array.isArray(t))t=[{field:t,type:i,value:s}];return t.forEach((a)=>{if(a=this.findFilter(a),a)o.push(a)}),this.table.rowManager.rows.forEach((a)=>{var l=!0;if(o.forEach((h)=>{if(!this.filterRecurse(h,a.getData()))l=!1}),l)r.push(e==="data"?a.getData("data"):a.getComponent())}),r}filter(e,t){var i=[],s=[];if(this.subscribedExternal("dataFiltering"))this.dispatchExternal("dataFiltering",this.getFilters(!0));if(this.table.options.filterMode!=="remote"&&(this.filterList.length||Object.keys(this.headerFilters).length))e.forEach((r)=>{if(this.filterRow(r))i.push(r)});else i=e.slice(0);if(this.subscribedExternal("dataFiltered"))i.forEach((r)=>{s.push(r.getComponent())}),this.dispatchExternal("dataFiltered",this.getFilters(!0),s);return i}filterRow(e,t){var i=!0,s=e.getData();this.filterList.forEach((o)=>{if(!this.filterRecurse(o,s))i=!1});for(var r in this.headerFilters)if(!this.headerFilters[r].func(s))i=!1;return i}filterRecurse(e,t){var i=!1;if(Array.isArray(e))e.forEach((s)=>{if(this.filterRecurse(s,t))i=!0});else i=e.func(t);return i}}function kt(e,t,i){return this.emptyToSpace(this.sanitizeHTML(e.getValue()))}function Mt(e,t,i){return e.getValue()}function Lt(e,t,i){return e.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(e.getValue()))}function St(e,t,i){var s=parseFloat(e.getValue()),r="",o,a,l,h,d,u=t.decimal||".",c=t.thousand||",",f=t.negativeSign||"-",p=t.symbol||"",m=!!t.symbolAfter,b=typeof t.precision<"u"?t.precision:2;if(Number.isNaN(s))return this.emptyToSpace(this.sanitizeHTML(e.getValue()));if(s<0)s=Math.abs(s),r=f;if(o=b!==!1?s.toFixed(b):s,o=String(o).split("."),a=o[0],l=o.length>1?u+o[1]:"",t.thousand!==!1){h=/(\d+)(\d{3})/;while(h.test(a))a=a.replace(h,"$1"+c+"$2")}if(d=a+l,r===!0)return d="("+d+")",m?d+p:p+d;else return m?r+d+p:r+p+d}function Dt(e,t,i){var s=e.getValue(),r=t.urlPrefix||"",o=t.download,a=s,l=document.createElement("a"),h;function d(u,c){var f=u.shift(),p=c[f];if(u.length&&typeof p==="object")return d(u,p);return p}if(t.labelField)h=e.getData(),a=d(t.labelField.split(this.table.options.nestedFieldSeparator),h);if(t.label)switch(typeof t.label){case"string":a=t.label;break;case"function":a=t.label(e);break}if(a){if(t.urlField)h=e.getData(),s=L.retrieveNestedData(this.table.options.nestedFieldSeparator,t.urlField,h);if(t.url)switch(typeof t.url){case"string":s=t.url;break;case"function":s=t.url(e);break}if(l.setAttribute("href",r+s),t.target)l.setAttribute("target",t.target);if(t.download){if(typeof o=="function")o=o(e);else o=o===!0?"":o;l.setAttribute("download",o)}return l.innerHTML=this.emptyToSpace(this.sanitizeHTML(a)),l}else return" "}function zt(e,t,i){var s=document.createElement("img"),r=e.getValue();if(t.urlPrefix)r=t.urlPrefix+e.getValue();if(t.urlSuffix)r=r+t.urlSuffix;switch(s.setAttribute("src",r),typeof t.height){case"number":s.style.height=t.height+"px";break;case"string":s.style.height=t.height;break}switch(typeof t.width){case"number":s.style.width=t.width+"px";break;case"string":s.style.width=t.width;break}return s.addEventListener("load",function(){e.getRow().normalizeHeight()}),s}function Ht(e,t,i){var s=e.getValue(),r=e.getElement(),{allowEmpty:o,allowTruthy:a}=t,l=Object.keys(t).includes("trueValue"),h=typeof t.tickElement<"u"?t.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path class="tabulator-tick" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',d=typeof t.crossElement<"u"?t.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path class="tabulator-cross" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';if(l&&s===t.trueValue||!l&&(a&&s||(s===!0||s==="true"||s==="True"||s===1||s==="1")))return r.setAttribute("aria-checked",!0),h||"";else if(o&&(s==="null"||s===""||s===null||typeof s>"u"))return r.setAttribute("aria-checked","mixed"),"";else return r.setAttribute("aria-checked",!1),d||""}function Ft(e,t,i){var s=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),r=t.inputFormat||"yyyy-MM-dd HH:mm:ss",o=t.outputFormat||"dd/MM/yyyy HH:mm:ss",a=typeof t.invalidPlaceholder<"u"?t.invalidPlaceholder:"",l=e.getValue();if(typeof s<"u"){var h;if(s.isDateTime(l))h=l;else if(r==="x")h=s.fromMillis(l);else if(r==="iso")h=s.fromISO(String(l));else h=s.fromFormat(String(l),r);if(h.isValid){if(t.timezone)h=h.setZone(t.timezone);return h.toFormat(o)}else if(a===!0||!l)return l;else if(typeof a==="function")return a(l);else return a}else console.error("Format Error - 'datetime' formatter is dependant on luxon.js")}function At(e,t,i){var s=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),r=t.inputFormat||"yyyy-MM-dd HH:mm:ss",o=typeof t.invalidPlaceholder<"u"?t.invalidPlaceholder:"",a=typeof t.suffix<"u"?t.suffix:!1,l=typeof t.unit<"u"?t.unit:"days",h=typeof t.humanize<"u"?t.humanize:!1,d=typeof t.date<"u"?t.date:s.now(),u=e.getValue();if(typeof s<"u"){var c;if(s.isDateTime(u))c=u;else if(r==="x")c=s.fromMillis(u);else if(r==="iso")c=s.fromISO(String(u));else c=s.fromFormat(String(u),r);if(c.isValid)if(h)return c.diff(d,l).toHuman()+(a?" "+a:"");else return parseInt(c.diff(d,l)[l])+(a?" "+a:"");else if(o===!0)return u;else if(typeof o==="function")return o(u);else return o}else console.error("Format Error - 'datetimediff' formatter is dependant on luxon.js")}function _t(e,t,i){var s=e.getValue();if(typeof t[s]>"u")return console.warn("Missing display value for "+s),s;return t[s]}function Ot(e,t,i){var s=e.getValue(),r=e.getElement(),o=t&&t.stars?t.stars:5,a=document.createElement("span"),l=document.createElementNS("http://www.w3.org/2000/svg","svg"),h='<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',d='<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';a.style.verticalAlign="middle",l.setAttribute("width","14"),l.setAttribute("height","14"),l.setAttribute("viewBox","0 0 512 512"),l.setAttribute("xml:space","preserve"),l.style.padding="0 1px",s=s&&!Number.isNaN(s)?parseInt(s):0,s=Math.max(0,Math.min(s,o));for(var u=1;u<=o;u++){var c=l.cloneNode(!0);c.innerHTML=u<=s?h:d,a.appendChild(c)}return r.style.whiteSpace="nowrap",r.style.overflow="hidden",r.style.textOverflow="ellipsis",r.setAttribute("aria-label",s),a}function Pt(e,t,i){var s=this.sanitizeHTML(e.getValue())||0,r=document.createElement("span"),o=t&&t.max?t.max:100,a=t&&t.min?t.min:0,l=t&&typeof t.color<"u"?t.color:["red","orange","green"],h="#666666",d,u;if(Number.isNaN(s)||typeof e.getValue()>"u")return;switch(r.classList.add("tabulator-traffic-light"),u=parseFloat(s)<=o?parseFloat(s):o,u=parseFloat(u)>=a?parseFloat(u):a,d=(o-a)/100,u=Math.round((u-a)/d),typeof l){case"string":h=l;break;case"function":h=l(s);break;case"object":if(Array.isArray(l)){var c=100/l.length,f=Math.floor(u/c);f=Math.min(f,l.length-1),f=Math.max(f,0),h=l[f];break}}return r.style.backgroundColor=h,r}function Bt(e,t={},i){var s=this.sanitizeHTML(e.getValue())||0,r=e.getElement(),o=t.max?t.max:100,a=t.min?t.min:0,l=t.legendAlign?t.legendAlign:"center",h,d,u,c,f;switch(d=parseFloat(s)<=o?parseFloat(s):o,d=parseFloat(d)>=a?parseFloat(d):a,h=(o-a)/100,d=Math.round((d-a)/h),typeof t.color){case"string":u=t.color;break;case"function":u=t.color(s);break;case"object":if(Array.isArray(t.color)){let v=100/t.color.length,w=Math.floor(d/v);w=Math.min(w,t.color.length-1),w=Math.max(w,0),u=t.color[w];break}default:u="#2DC214"}switch(typeof t.legend){case"string":c=t.legend;break;case"function":c=t.legend(s);break;case"boolean":c=s;break;default:c=!1}switch(typeof t.legendColor){case"string":f=t.legendColor;break;case"function":f=t.legendColor(s);break;case"object":if(Array.isArray(t.legendColor)){let v=100/t.legendColor.length,w=Math.floor(d/v);w=Math.min(w,t.legendColor.length-1),w=Math.max(w,0),f=t.legendColor[w]}break;default:f="#000"}r.style.minWidth="30px",r.style.position="relative",r.setAttribute("aria-label",d);var p=document.createElement("div");p.style.display="inline-block",p.style.width=d+"%",p.style.backgroundColor=u,p.style.height="100%",p.setAttribute("data-max",o),p.setAttribute("data-min",a);var m=document.createElement("div");if(m.style.position="relative",m.style.width="100%",m.style.height="100%",c){var b=document.createElement("div");b.style.position="absolute",b.style.top=0,b.style.left=0,b.style.textAlign=l,b.style.width="100%",b.style.color=f,b.innerHTML=c}return i(function(){if(!(e instanceof oe)){var v=document.createElement("div");v.style.position="absolute",v.style.top="4px",v.style.bottom="4px",v.style.left="4px",v.style.right="4px",r.appendChild(v),r=v}if(r.appendChild(m),m.appendChild(p),c)m.appendChild(b)}),""}function Vt(e,t,i){return e.getElement().style.backgroundColor=this.sanitizeHTML(e.getValue()),""}function Nt(e,t,i){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'}function It(e,t,i){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'}function Wt(e,t,i){var s=e.getValue(),r=t.size||15,o=r+"px",a,l,h=t.hasOwnProperty("onValue")?t.onValue:!0,d=t.hasOwnProperty("offValue")?t.offValue:!1,u=t.onTruthy?s:s===h;if(a=document.createElement("div"),a.classList.add("tabulator-toggle"),u){if(a.classList.add("tabulator-toggle-on"),a.style.flexDirection="row-reverse",t.onColor)a.style.background=t.onColor}else if(t.offColor)a.style.background=t.offColor;if(a.style.width=2.5*r+"px",a.style.borderRadius=o,t.clickable)a.addEventListener("click",(c)=>{e.setValue(u?d:h)});return l=document.createElement("div"),l.classList.add("tabulator-toggle-switch"),l.style.height=o,l.style.width=o,l.style.borderRadius=o,a.appendChild(l),a}function Gt(e,t,i){var s=document.createElement("span"),r=e.getRow(),o=e.getTable();return r.watchPosition((a)=>{if(t.relativeToPage)a+=o.modules.page.getPageSize()*(o.modules.page.getPage()-1);s.innerText=a}),s}function jt(e,t,i){return e.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"}function Ut(e,t,i){var s,r,o;function a(l){var h=l.getValue(),d="plaintext";switch(typeof h){case"boolean":d="tickCross";break;case"string":if(h.includes(`
|
|
6
|
+
`))d="textarea";break}return d}if(s=t.formatterLookup?t.formatterLookup(e):a(e),t.paramsLookup)o=typeof t.paramsLookup==="function"?t.paramsLookup(s,e):t.paramsLookup[s];return r=this.table.modules.format.lookupFormatter(s),r.call(this,e,o||{},i)}function $t(e,t,i){var s=t.delimiter||",",r=e.getValue(),o=this.table,a;if(t.valueMap)if(typeof t.valueMap==="string")a=function(l){return l.map((h)=>L.retrieveNestedData(o.options.nestedFieldSeparator,t.valueMap,h))};else a=t.valueMap;if(Array.isArray(r)){if(a)r=a(r);return r.join(s)}else return r}function Kt(e,t,i){var s=t.indent||"\t",r=typeof t.multiline>"u"?!0:t.multiline,o=t.replacer||null,a=e.getValue();if(r)e.getElement().style.whiteSpace="pre-wrap";return JSON.stringify(a,o,s)}var Xt={plaintext:kt,html:Mt,textarea:Lt,money:St,link:Dt,image:zt,tickCross:Ht,datetime:Ft,datetimediff:At,lookup:_t,star:Ot,traffic:Pt,progress:Bt,color:Vt,buttonTick:Nt,buttonCross:It,toggle:Wt,rownum:Gt,handle:jt,adaptable:Ut,array:$t,json:Kt};class I extends F{static moduleName="format";static formatters=Xt;constructor(e){super(e);this.registerColumnOption("formatter"),this.registerColumnOption("formatterParams"),this.registerColumnOption("formatterPrint"),this.registerColumnOption("formatterPrintParams"),this.registerColumnOption("formatterClipboard"),this.registerColumnOption("formatterClipboardParams"),this.registerColumnOption("formatterHtmlOutput"),this.registerColumnOption("formatterHtmlOutputParams"),this.registerColumnOption("titleFormatter"),this.registerColumnOption("titleFormatterParams")}initialize(){this.subscribe("cell-format",this.formatValue.bind(this)),this.subscribe("cell-rendered",this.cellRendered.bind(this)),this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("column-format",this.formatHeader.bind(this))}initializeColumn(e){if(e.modules.format=this.lookupTypeFormatter(e,""),typeof e.definition.formatterPrint<"u")e.modules.format.print=this.lookupTypeFormatter(e,"Print");if(typeof e.definition.formatterClipboard<"u")e.modules.format.clipboard=this.lookupTypeFormatter(e,"Clipboard");if(typeof e.definition.formatterHtmlOutput<"u")e.modules.format.htmlOutput=this.lookupTypeFormatter(e,"HtmlOutput")}lookupTypeFormatter(e,t){var i={params:e.definition["formatter"+t+"Params"]||{}},s=e.definition["formatter"+t];return i.formatter=this.lookupFormatter(s),i}lookupFormatter(e){var t;switch(typeof e){case"string":if(I.formatters[e])t=I.formatters[e];else console.warn("Formatter Error - No such formatter found: ",e),t=I.formatters.plaintext;break;case"function":t=e;break;default:t=I.formatters.plaintext;break}return t}cellRendered(e){if(e.modules.format&&e.modules.format.renderedCallback&&!e.modules.format.rendered)e.modules.format.renderedCallback(),e.modules.format.rendered=!0}formatHeader(e,t,i){var s,r,o,a;if(e.definition.titleFormatter)return s=this.lookupFormatter(e.definition.titleFormatter),o=(l)=>{e.titleFormatterRendered=l},a={getValue:function(){return t},getElement:function(){return i},getType:function(){return"header"},getColumn:function(){return e.getComponent()},getTable:()=>this.table},r=e.definition.titleFormatterParams||{},r=typeof r==="function"?r():r,s.call(this,a,r,o);else return t}formatValue(e){var t=e.getComponent(),i=typeof e.column.modules.format.params==="function"?e.column.modules.format.params(t):e.column.modules.format.params;function s(r){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=r,e.modules.format.rendered=!1}return e.column.modules.format.formatter.call(this,t,i,s)}formatExportValue(e,t){var i=e.column.modules.format[t],s;if(i){let r=function(o){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=o,e.modules.format.rendered=!1};return s=typeof i.params==="function"?i.params(e.getComponent()):i.params,i.formatter.call(this,e.getComponent(),s,r)}else return this.formatValue(e)}sanitizeHTML(e){if(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(e).replace(/[&<>"'`=/]/g,function(i){return t[i]})}else return e}emptyToSpace(e){return e===null||typeof e>"u"||e===""?" ":e}}class he extends F{static moduleName="frozenColumns";constructor(e){super(e);this.leftColumns=[],this.rightColumns=[],this.initializationMode="left",this.active=!1,this.blocked=!0,this.registerColumnOption("frozen")}reset(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.active=!1}initialize(){this.subscribe("cell-layout",this.layoutCell.bind(this)),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-width",this.layout.bind(this)),this.subscribe("row-layout-after",this.layoutRow.bind(this)),this.subscribe("table-layout",this.layout.bind(this)),this.subscribe("columns-loading",this.reset.bind(this)),this.subscribe("column-add",this.reinitializeColumns.bind(this)),this.subscribe("column-deleted",this.reinitializeColumns.bind(this)),this.subscribe("column-hide",this.reinitializeColumns.bind(this)),this.subscribe("column-show",this.reinitializeColumns.bind(this)),this.subscribe("columns-loaded",this.reinitializeColumns.bind(this)),this.subscribe("table-redraw",this.layout.bind(this)),this.subscribe("layout-refreshing",this.blockLayout.bind(this)),this.subscribe("layout-refreshed",this.unblockLayout.bind(this)),this.subscribe("scrollbar-vertical",this.adjustForScrollbar.bind(this))}blockLayout(){this.blocked=!0}unblockLayout(){this.blocked=!1}layoutCell(e){this.layoutElement(e.element,e.column)}reinitializeColumns(){this.reset(),this.table.columnManager.columnsByIndex.forEach((e)=>{this.initializeColumn(e)}),this.layout()}initializeColumn(e){var t={margin:0,edge:!1};if(!e.isGroup)if(this.frozenCheck(e)){if(t.position=this.initializationMode,this.initializationMode=="left")this.leftColumns.push(e);else this.rightColumns.unshift(e);this.active=!0,e.modules.frozen=t}else this.initializationMode="right"}frozenCheck(e){if(e.parent.isGroup&&e.definition.frozen)console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups");if(e.parent.isGroup)return this.frozenCheck(e.parent);else return e.definition.frozen}layoutCalcRows(){if(this.table.modExists("columnCalcs")){if(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow)this.layoutRow(this.table.modules.columnCalcs.topRow);if(this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow)this.layoutRow(this.table.modules.columnCalcs.botRow);if(this.table.modExists("groupRows"))this.layoutGroupCalcs(this.table.modules.groupRows.getGroups())}}layoutGroupCalcs(e){e.forEach((t)=>{if(t.calcs.top)this.layoutRow(t.calcs.top);if(t.calcs.bottom)this.layoutRow(t.calcs.bottom);if(t.groupList&&t.groupList.length)this.layoutGroupCalcs(t.groupList)})}layoutColumnPosition(e){var t=[],i=0,s=0;this.leftColumns.forEach((r,o)=>{if(r.modules.frozen.marginValue=i,r.modules.frozen.margin=r.modules.frozen.marginValue+"px",r.visible)i+=r.getWidth();if(o==this.leftColumns.length-1)r.modules.frozen.edge=!0;else r.modules.frozen.edge=!1;if(r.parent.isGroup){var a=this.getColGroupParentElement(r);if(!t.includes(a))this.layoutElement(a,r),t.push(a);a.classList.toggle("tabulator-frozen-left",r.modules.frozen.edge&&r.modules.frozen.position==="left"),a.classList.toggle("tabulator-frozen-right",r.modules.frozen.edge&&r.modules.frozen.position==="right")}else this.layoutElement(r.getElement(),r);if(e)r.cells.forEach((l)=>{this.layoutElement(l.getElement(!0),r)})}),this.rightColumns.forEach((r,o)=>{if(r.modules.frozen.marginValue=s,r.modules.frozen.margin=r.modules.frozen.marginValue+"px",r.visible)s+=r.getWidth();if(o==this.rightColumns.length-1)r.modules.frozen.edge=!0;else r.modules.frozen.edge=!1;if(r.parent.isGroup)this.layoutElement(this.getColGroupParentElement(r),r);else this.layoutElement(r.getElement(),r);if(e)r.cells.forEach((a)=>{this.layoutElement(a.getElement(!0),r)})})}getColGroupParentElement(e){return e.parent.isGroup?this.getColGroupParentElement(e.parent):e.getElement()}layout(){if(this.active&&!this.blocked)this.layoutColumnPosition(),this.reinitializeRows(),this.layoutCalcRows()}reinitializeRows(){var e=this.table.rowManager.getVisibleRows(!0),t=this.table.rowManager.getRows().filter((i)=>!e.includes(i));t.forEach((i)=>{i.deinitialize()}),e.forEach((i)=>{if(i.type==="row")this.layoutRow(i)})}layoutRow(e){if(this.table.options.layout==="fitDataFill"&&this.rightColumns.length)this.table.rowManager.getTableElement().style.minWidth="calc(100% - "+this.rightMargin+")";this.leftColumns.forEach((t)=>{var i=e.getCell(t);if(i)this.layoutElement(i.getElement(!0),t)}),this.rightColumns.forEach((t)=>{var i=e.getCell(t);if(i)this.layoutElement(i.getElement(!0),t)})}layoutElement(e,t){var i;if(t.modules.frozen&&e){if(e.style.position="sticky",this.table.rtl)i=t.modules.frozen.position==="left"?"right":"left";else i=t.modules.frozen.position;e.style[i]=t.modules.frozen.margin,e.classList.add("tabulator-frozen"),e.classList.toggle("tabulator-frozen-left",t.modules.frozen.edge&&t.modules.frozen.position==="left"),e.classList.toggle("tabulator-frozen-right",t.modules.frozen.edge&&t.modules.frozen.position==="right")}}adjustForScrollbar(e){if(this.rightColumns.length)this.table.columnManager.getContentsElement().style.width="calc(100% - "+e+"px)"}getFrozenColumns(){return this.leftColumns.concat(this.rightColumns)}_calcSpace(e,t){var i=0;for(let s=0;s<t;s++)if(e[s].visible)i+=e[s].getWidth();return i}}class de extends F{static moduleName="interaction";constructor(e){super(e);this.eventMap={rowClick:"row-click",rowDblClick:"row-dblclick",rowContext:"row-contextmenu",rowMouseEnter:"row-mouseenter",rowMouseLeave:"row-mouseleave",rowMouseOver:"row-mouseover",rowMouseOut:"row-mouseout",rowMouseMove:"row-mousemove",rowMouseDown:"row-mousedown",rowMouseUp:"row-mouseup",rowTap:"row",rowDblTap:"row",rowTapHold:"row",cellClick:"cell-click",cellDblClick:"cell-dblclick",cellContext:"cell-contextmenu",cellMouseEnter:"cell-mouseenter",cellMouseLeave:"cell-mouseleave",cellMouseOver:"cell-mouseover",cellMouseOut:"cell-mouseout",cellMouseMove:"cell-mousemove",cellMouseDown:"cell-mousedown",cellMouseUp:"cell-mouseup",cellTap:"cell",cellDblTap:"cell",cellTapHold:"cell",headerClick:"column-click",headerDblClick:"column-dblclick",headerContext:"column-contextmenu",headerMouseEnter:"column-mouseenter",headerMouseLeave:"column-mouseleave",headerMouseOver:"column-mouseover",headerMouseOut:"column-mouseout",headerMouseMove:"column-mousemove",headerMouseDown:"column-mousedown",headerMouseUp:"column-mouseup",headerTap:"column",headerDblTap:"column",headerTapHold:"column",groupClick:"group-click",groupDblClick:"group-dblclick",groupContext:"group-contextmenu",groupMouseEnter:"group-mouseenter",groupMouseLeave:"group-mouseleave",groupMouseOver:"group-mouseover",groupMouseOut:"group-mouseout",groupMouseMove:"group-mousemove",groupMouseDown:"group-mousedown",groupMouseUp:"group-mouseup",groupTap:"group",groupDblTap:"group",groupTapHold:"group"},this.subscribers={},this.touchSubscribers={},this.columnSubscribers={},this.touchWatchers={row:{tap:null,tapDbl:null,tapHold:null},cell:{tap:null,tapDbl:null,tapHold:null},column:{tap:null,tapDbl:null,tapHold:null},group:{tap:null,tapDbl:null,tapHold:null}},this.registerColumnOption("headerClick"),this.registerColumnOption("headerDblClick"),this.registerColumnOption("headerContext"),this.registerColumnOption("headerMouseEnter"),this.registerColumnOption("headerMouseLeave"),this.registerColumnOption("headerMouseOver"),this.registerColumnOption("headerMouseOut"),this.registerColumnOption("headerMouseMove"),this.registerColumnOption("headerMouseDown"),this.registerColumnOption("headerMouseUp"),this.registerColumnOption("headerTap"),this.registerColumnOption("headerDblTap"),this.registerColumnOption("headerTapHold"),this.registerColumnOption("cellClick"),this.registerColumnOption("cellDblClick"),this.registerColumnOption("cellContext"),this.registerColumnOption("cellMouseEnter"),this.registerColumnOption("cellMouseLeave"),this.registerColumnOption("cellMouseOver"),this.registerColumnOption("cellMouseOut"),this.registerColumnOption("cellMouseMove"),this.registerColumnOption("cellMouseDown"),this.registerColumnOption("cellMouseUp"),this.registerColumnOption("cellTap"),this.registerColumnOption("cellDblTap"),this.registerColumnOption("cellTapHold")}initialize(){this.initializeExternalEvents(),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("cell-dblclick",this.cellContentsSelectionFixer.bind(this)),this.subscribe("scroll-horizontal",this.clearTouchWatchers.bind(this)),this.subscribe("scroll-vertical",this.clearTouchWatchers.bind(this))}clearTouchWatchers(){var e=Object.values(this.touchWatchers);e.forEach((t)=>{clearTimeout(t.tapDbl),clearTimeout(t.tapHold);for(let i in t)t[i]=null})}cellContentsSelectionFixer(e,t){var i;if(this.table.modExists("edit")){if(this.table.modules.edit.currentCell===t)return}e.preventDefault();try{if(document.selection)i=document.body.createTextRange(),i.moveToElementText(t.getElement()),i.select();else if(window.getSelection)i=document.createRange(),i.selectNode(t.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(i)}catch(s){}}initializeExternalEvents(){for(let e in this.eventMap)this.subscriptionChangeExternal(e,this.subscriptionChanged.bind(this,e))}subscriptionChanged(e,t){if(t){if(!this.subscribers[e])if(this.eventMap[e].includes("-"))this.subscribers[e]=this.handle.bind(this,e),this.subscribe(this.eventMap[e],this.subscribers[e]);else this.subscribeTouchEvents(e)}else if(this.eventMap[e].includes("-")){if(this.subscribers[e]&&!this.columnSubscribers[e]&&!this.subscribedExternal(e))this.unsubscribe(this.eventMap[e],this.subscribers[e]),delete this.subscribers[e]}else this.unsubscribeTouchEvents(e)}subscribeTouchEvents(e){var t=this.eventMap[e];if(!this.touchSubscribers[t+"-touchstart"])this.touchSubscribers[t+"-touchstart"]=this.handleTouch.bind(this,t,"start"),this.touchSubscribers[t+"-touchend"]=this.handleTouch.bind(this,t,"end"),this.subscribe(t+"-touchstart",this.touchSubscribers[t+"-touchstart"]),this.subscribe(t+"-touchend",this.touchSubscribers[t+"-touchend"]);this.subscribers[e]=!0}unsubscribeTouchEvents(e){var t=!0,i=this.eventMap[e];if(this.subscribers[e]&&!this.subscribedExternal(e)){delete this.subscribers[e];for(let s in this.eventMap)if(this.eventMap[s]===i){if(this.subscribers[s])t=!1}if(t)this.unsubscribe(i+"-touchstart",this.touchSubscribers[i+"-touchstart"]),this.unsubscribe(i+"-touchend",this.touchSubscribers[i+"-touchend"]),delete this.touchSubscribers[i+"-touchstart"],delete this.touchSubscribers[i+"-touchend"]}}initializeColumn(e){var t=e.definition;for(let i in this.eventMap)if(t[i]){if(this.subscriptionChanged(i,!0),!this.columnSubscribers[i])this.columnSubscribers[i]=[];this.columnSubscribers[i].push(e)}}handle(e,t,i){this.dispatchEvent(e,t,i)}handleTouch(e,t,i,s){var r=this.touchWatchers[e];if(e==="column")e="header";switch(t){case"start":r.tap=!0,clearTimeout(r.tapHold),r.tapHold=setTimeout(()=>{clearTimeout(r.tapHold),r.tapHold=null,r.tap=null,clearTimeout(r.tapDbl),r.tapDbl=null,this.dispatchEvent(e+"TapHold",i,s)},1000);break;case"end":if(r.tap)r.tap=null,this.dispatchEvent(e+"Tap",i,s);if(r.tapDbl)clearTimeout(r.tapDbl),r.tapDbl=null,this.dispatchEvent(e+"DblTap",i,s);else r.tapDbl=setTimeout(()=>{clearTimeout(r.tapDbl),r.tapDbl=null},300);clearTimeout(r.tapHold),r.tapHold=null;break}}dispatchEvent(e,t,i){var s=i.getComponent(),r;if(this.columnSubscribers[e]){if(i instanceof ee)r=i.column.definition[e];else if(i instanceof V)r=i.definition[e];if(r)r(t,s)}this.dispatchExternal(e,t,s)}}var Jt={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,navLeft:37,navRight:39,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35},qt={keyBlock:function(e){e.stopPropagation(),e.preventDefault()},scrollPageUp:function(e){var t=this.table.rowManager,i=t.scrollTop-t.element.clientHeight;if(e.preventDefault(),t.displayRowsCount)if(i>=0)t.element.scrollTop=i;else t.scrollToRow(t.getDisplayRows()[0]);this.table.element.focus()},scrollPageDown:function(e){var t=this.table.rowManager,i=t.scrollTop+t.element.clientHeight,s=t.element.scrollHeight;if(e.preventDefault(),t.displayRowsCount)if(i<=s)t.element.scrollTop=i;else t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1]);this.table.element.focus()},scrollToStart:function(e){var t=this.table.rowManager;if(e.preventDefault(),t.displayRowsCount)t.scrollToRow(t.getDisplayRows()[0]);this.table.element.focus()},scrollToEnd:function(e){var t=this.table.rowManager;if(e.preventDefault(),t.displayRowsCount)t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1]);this.table.element.focus()},navPrev:function(e){this.dispatch("keybinding-nav-prev",e)},navNext:function(e){this.dispatch("keybinding-nav-next",e)},navLeft:function(e){this.dispatch("keybinding-nav-left",e)},navRight:function(e){this.dispatch("keybinding-nav-right",e)},navUp:function(e){this.dispatch("keybinding-nav-up",e)},navDown:function(e){this.dispatch("keybinding-nav-down",e)}};class U extends F{static moduleName="keybindings";static bindings=Jt;static actions=qt;constructor(e){super(e);this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1,this.registerTableOption("keybindings",{}),this.registerTableOption("tabEndNewRow",!1)}initialize(){var e=this.table.options.keybindings,t={};if(this.watchKeys={},this.pressedKeys=[],e!==!1)Object.assign(t,U.bindings),Object.assign(t,e),this.mapBindings(t),this.bindEvents();this.subscribe("table-destroy",this.clearBindings.bind(this))}mapBindings(e){for(let t in e)if(U.actions[t]){if(e[t]){if(typeof e[t]!=="object")e[t]=[e[t]];e[t].forEach((i)=>{var s=Array.isArray(i)?i:[i];s.forEach((r)=>{this.mapBinding(t,r)})})}}else console.warn("Key Binding Error - no such action:",t)}getKeyCode(e){if(e.key.length===1)return e.key.toUpperCase().charCodeAt(0);var t={Enter:13,Escape:27,Tab:9,Backspace:8,Delete:46,ArrowUp:38,ArrowDown:40,ArrowLeft:37,ArrowRight:39,Home:36,End:35,PageUp:33,PageDown:34,Insert:45};return t[e.key]||e.keyCode||0}mapBinding(e,t){var i={action:U.actions[e],keys:[],ctrl:!1,shift:!1,meta:!1},s=t.toString().toLowerCase().split(" ").join("").split("+");s.forEach((r)=>{switch(r){case"ctrl":i.ctrl=!0;break;case"shift":i.shift=!0;break;case"meta":i.meta=!0;break;default:if(r=isNaN(r)?r.toUpperCase().charCodeAt(0):parseInt(r),i.keys.push(r),!this.watchKeys[r])this.watchKeys[r]=[];this.watchKeys[r].push(i)}})}bindEvents(){var e=this;this.keyupBinding=function(t){var i=e.getKeyCode(t),s=e.watchKeys[i];if(s)e.pressedKeys.push(i),s.forEach(function(r){e.checkBinding(t,r)})},this.keydownBinding=function(t){var i=e.getKeyCode(t),s=e.watchKeys[i];if(s){var r=e.pressedKeys.indexOf(i);if(r>-1)e.pressedKeys.splice(r,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)}clearBindings(){if(this.keyupBinding)this.table.element.removeEventListener("keydown",this.keyupBinding);if(this.keydownBinding)this.table.element.removeEventListener("keyup",this.keydownBinding)}checkBinding(e,t){var i=!0;if(e.ctrlKey==t.ctrl&&e.shiftKey==t.shift&&e.metaKey==t.meta){if(t.keys.forEach((s)=>{var r=this.pressedKeys.indexOf(s);if(r==-1)i=!1}),i)t.action.call(this,e);return!0}return!1}}class ue extends F{static moduleName="moveColumn";constructor(e){super(e);this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.registerTableOption("movableColumns",!1)}createPlaceholderElement(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.classList.add("tabulator-col-placeholder"),e}initialize(){if(this.table.options.movableColumns)this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("alert-show",this.abortMove.bind(this))}abortMove(){clearTimeout(this.checkTimeout)}initializeColumn(e){var t=this,i={},s;if(!e.modules.frozen&&!e.isGroup&&!e.isRowHeader)s=e.getElement(),i.mousemove=function(r){if(e.parent===t.moving.parent){if((t.touchMove?r.touches[0].pageX:r.pageX)-L.elOffset(s).left+t.table.columnManager.contentsElement.scrollLeft>e.getWidth()/2){if(t.toCol!==e||!t.toColAfter)s.parentNode.insertBefore(t.placeholderElement,s.nextSibling),t.moveColumn(e,!0)}else if(t.toCol!==e||t.toColAfter)s.parentNode.insertBefore(t.placeholderElement,s),t.moveColumn(e,!1)}}.bind(t),s.addEventListener("mousedown",function(r){if(t.touchMove=!1,r.which===1)t.checkTimeout=setTimeout(function(){t.startMove(r,e)},t.checkPeriod)}),s.addEventListener("mouseup",function(r){if(r.which===1){if(t.checkTimeout)clearTimeout(t.checkTimeout)}}),t.bindTouchEvents(e);e.modules.moveColumn=i}bindTouchEvents(e){var t=e.getElement(),i=!1,s,r,o,a,l,h;t.addEventListener("touchstart",(d)=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,s=e.nextColumn(),o=s?s.getWidth()/2:0,r=e.prevColumn(),a=r?r.getWidth()/2:0,l=0,h=0,i=!1,this.startMove(d,e)},this.checkPeriod)},{passive:!0}),t.addEventListener("touchmove",(d)=>{var u,c;if(this.moving){if(this.moveHover(d),!i)i=d.touches[0].pageX;if(u=d.touches[0].pageX-i,u>0){if(s&&u-l>o){if(c=s,c!==e)i=d.touches[0].pageX,c.getElement().parentNode.insertBefore(this.placeholderElement,c.getElement().nextSibling),this.moveColumn(c,!0)}}else if(r&&-u-h>a){if(c=r,c!==e)i=d.touches[0].pageX,c.getElement().parentNode.insertBefore(this.placeholderElement,c.getElement()),this.moveColumn(c,!1)}if(c)s=c.nextColumn(),l=o,o=s?s.getWidth()/2:0,r=c.prevColumn(),h=a,a=r?r.getWidth()/2:0}},{passive:!0}),t.addEventListener("touchend",(d)=>{if(this.checkTimeout)clearTimeout(this.checkTimeout);if(this.moving)this.endMove(d)})}startMove(e,t){var i=t.getElement(),s=this.table.columnManager.getContentsElement(),r=this.table.columnManager.getHeadersElement();if(this.table.modules.selectRange&&this.table.modules.selectRange.columnSelection){if(this.table.modules.selectRange.mousedown&&this.table.modules.selectRange.selecting==="column")return}if(this.moving=t,this.startX=(this.touchMove?e.touches[0].pageX:e.pageX)-L.elOffset(i).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",i.parentNode.insertBefore(this.placeholderElement,i),i.parentNode.removeChild(i),this.hoverElement=i.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),s.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom=s.clientHeight-r.offsetHeight+"px",!this.touchMove)this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove);this.moveHover(e),this.dispatch("column-moving",e,this.moving)}_bindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(e){if(e.modules.moveColumn.mousemove)e.getElement().addEventListener("mousemove",e.modules.moveColumn.mousemove)})}_unbindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(e){if(e.modules.moveColumn.mousemove)e.getElement().removeEventListener("mousemove",e.modules.moveColumn.mousemove)})}moveColumn(e,t){var i=this.moving.getCells();if(this.toCol=e,this.toColAfter=t,t)e.getCells().forEach(function(s,r){var o=s.getElement(!0);if(o.parentNode&&i[r])o.parentNode.insertBefore(i[r].getElement(),o.nextSibling)});else e.getCells().forEach(function(s,r){var o=s.getElement(!0);if(o.parentNode&&i[r])o.parentNode.insertBefore(i[r].getElement(),o)})}endMove(e){if(e.which===1||this.touchMove){if(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol)this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter);if(this.moving=!1,this.toCol=!1,this.toColAfter=!1,!this.touchMove)document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)}}moveHover(e){var t=this.table.columnManager.getContentsElement(),i=t.scrollLeft,s=(this.touchMove?e.touches[0].pageX:e.pageX)-L.elOffset(t).left+i,r;if(this.hoverElement.style.left=s-this.startX+"px",s-i<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{r=Math.max(0,i-5),this.table.rowManager.getElement().scrollLeft=r,this.autoScrollTimeout=!1},1)}if(i+t.clientWidth-s<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{r=Math.min(t.clientWidth,i+5),this.table.rowManager.getElement().scrollLeft=r,this.autoScrollTimeout=!1},1)}}}class ce extends F{static moduleName="resizeColumns";constructor(e){super(e);this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.latestX=!1,this.handle=null,this.initialNextColumn=null,this.nextColumn=null,this.initialized=!1,this.registerColumnOption("resizable",!0),this.registerTableOption("resizableColumnFit",!1),this.registerTableOption("resizableColumnGuide",!1)}initialize(){this.subscribe("column-rendered",this.layoutColumnHeader.bind(this))}initializeEventWatchers(){if(!this.initialized)this.subscribe("cell-rendered",this.layoutCellHandles.bind(this)),this.subscribe("cell-delete",this.deInitializeComponent.bind(this)),this.subscribe("cell-height",this.resizeHandle.bind(this)),this.subscribe("column-moved",this.columnLayoutUpdated.bind(this)),this.subscribe("column-hide",this.deInitializeColumn.bind(this)),this.subscribe("column-show",this.columnLayoutUpdated.bind(this)),this.subscribe("column-width",this.columnWidthUpdated.bind(this)),this.subscribe("column-delete",this.deInitializeComponent.bind(this)),this.subscribe("column-height",this.resizeHandle.bind(this)),this.initialized=!0}layoutCellHandles(e){if(e.row.type==="row")this.deInitializeComponent(e),this.initializeColumn("cell",e,e.column,e.element)}layoutColumnHeader(e){if(e.definition.resizable)this.initializeEventWatchers(),this.deInitializeComponent(e),this.initializeColumn("header",e,e,e.element)}columnLayoutUpdated(e){var t=e.prevColumn();if(this.reinitializeColumn(e),t)this.reinitializeColumn(t)}columnWidthUpdated(e){if(e.modules.frozen){if(this.table.modules.frozenColumns.leftColumns.includes(e))this.table.modules.frozenColumns.leftColumns.forEach((t)=>{this.reinitializeColumn(t)});else if(this.table.modules.frozenColumns.rightColumns.includes(e))this.table.modules.frozenColumns.rightColumns.forEach((t)=>{this.reinitializeColumn(t)})}}frozenColumnOffset(e){var t=!1;if(e.modules.frozen){if(t=e.modules.frozen.marginValue,e.modules.frozen.position==="left")t+=e.getWidth()-3;else if(t)t-=3}return t!==!1?t+"px":!1}reinitializeColumn(e){var t=this.frozenColumnOffset(e);if(e.cells.forEach((i)=>{if(i.modules.resize&&i.modules.resize.handleEl){if(t)i.modules.resize.handleEl.style[e.modules.frozen.position]=t,i.modules.resize.handleEl.style["z-index"]=11;i.element.after(i.modules.resize.handleEl)}}),e.modules.resize&&e.modules.resize.handleEl){if(t)e.modules.resize.handleEl.style[e.modules.frozen.position]=t;e.element.after(e.modules.resize.handleEl)}}initializeColumn(e,t,i,s){var r=this,o=!1,a=i.definition.resizable,l={},h=i.getLastColumn();if(e==="header")o=i.definition.formatter=="textarea"||i.definition.variableHeight,l={variableHeight:o};if((a===!0||a==e)&&this._checkResizability(h)){var d=document.createElement("span");d.className="tabulator-col-resize-handle",d.addEventListener("click",function(c){c.stopPropagation()});var u=function(c){r.startColumn=i,r.initialNextColumn=r.nextColumn=h.nextColumn(),r._mouseDown(c,h,d)};if(d.addEventListener("mousedown",u),d.addEventListener("touchstart",u,{passive:!0}),d.addEventListener("dblclick",(c)=>{var f=h.getWidth();if(c.stopPropagation(),h.reinitializeWidth(!0),f!==h.getWidth())r.dispatch("column-resized",h),r.dispatchExternal("columnResized",h.getComponent())}),i.modules.frozen)d.style.position="sticky",d.style[i.modules.frozen.position]=this.frozenColumnOffset(i);if(e==="cell")d.style.height=t.row.heightStyled;if(l.handleEl=d,s.parentNode&&i.visible)s.after(d)}t.modules.resize=l}deInitializeColumn(e){this.deInitializeComponent(e),e.cells.forEach((t)=>{this.deInitializeComponent(t)})}deInitializeComponent(e){var t;if(e.modules.resize){if(t=e.modules.resize.handleEl,t&&t.parentElement)t.parentElement.removeChild(t)}}resizeHandle(e,t){if(e.modules.resize&&e.modules.resize.handleEl)e.modules.resize.handleEl.style.height=t}getResizingClientX(e){if(typeof e.clientX<"u")return e.clientX;return(this.table.options.resizableColumnGuide?e.changedTouches?.[0]:e.touches?.[0])?.clientX}resize(e,t){var i=this.getResizingClientX(e);if(typeof i!=="number"||!isFinite(i)){console.warn("ResizeColumns: could not resolve pointer X from event",e);return}var s=i-this.startX,r=i-this.latestX,o,a;if(this.latestX=i,this.table.rtl)s=-s,r=-r;if(o=t.width==t.minWidth||t.width==t.maxWidth,t.setWidth(this.startWidth+s),a=t.width==t.minWidth||t.width==t.maxWidth,r<0)this.nextColumn=this.initialNextColumn;if(this.table.options.resizableColumnFit&&this.nextColumn&&!(o&&a)){let l=this.nextColumn.getWidth();if(r>0){if(l<=this.nextColumn.minWidth)this.nextColumn=this.nextColumn.nextColumn()}if(this.nextColumn)this.nextColumn.setWidth(this.nextColumn.getWidth()-r)}if(this.table.columnManager.rerenderColumns(!0),!this.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight)t.checkCellHeights()}calcGuidePosition(e,t,i){var s=typeof e.clientX>"u"?e.touches[0].clientX:e.clientX,r=i.getBoundingClientRect().x-this.table.element.getBoundingClientRect().x,o=this.table.element.getBoundingClientRect().x,a=t.element.getBoundingClientRect().left-o,l=s-this.startX,h=Math.max(r+l,a+t.minWidth);if(t.maxWidth)h=Math.min(h,a+t.maxWidth);return h}_checkResizability(e){return e.definition.resizable}_mouseDown(e,t,i){var s=this,r;if(this.dispatchExternal("columnResizing",t.getComponent()),s.table.options.resizableColumnGuide)r=document.createElement("span"),r.classList.add("tabulator-col-resize-guide"),s.table.element.appendChild(r),setTimeout(()=>{r.style.left=s.calcGuidePosition(e,t,i)+"px"});s.table.element.classList.add("tabulator-block-select");function o(l){if(s.table.options.resizableColumnGuide)r.style.left=s.calcGuidePosition(l,t,i)+"px";else s.resize(l,t)}function a(l){if(s.table.options.resizableColumnGuide)s.resize(l,t),r.remove();if(s.startColumn.modules.edit)s.startColumn.modules.edit.blocked=!1;if(s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight)t.checkCellHeights();if(document.body.removeEventListener("mouseup",a),document.body.removeEventListener("mousemove",o),i.removeEventListener("touchmove",o),i.removeEventListener("touchend",a),s.table.element.classList.remove("tabulator-block-select"),s.startWidth!==t.getWidth())s.table.columnManager.verticalAlignHeaders(),s.dispatch("column-resized",t),s.dispatchExternal("columnResized",t.getComponent())}if(e.stopPropagation(),s.startColumn.modules.edit)s.startColumn.modules.edit.blocked=!0;s.startX=typeof e.clientX>"u"?e.touches[0].clientX:e.clientX,s.latestX=s.startX,s.startWidth=t.getWidth(),document.body.addEventListener("mousemove",o),document.body.addEventListener("mouseup",a),i.addEventListener("touchmove",o,{passive:!0}),i.addEventListener("touchend",a)}}class ke{constructor(e){return this._range=e,new Proxy(this,{get:function(t,i,s){if(typeof t[i]<"u")return t[i];else return t._range.table.componentFunctionBinder.handle("range",t._range,i)}})}getElement(){return this._range.element}getData(){return this._range.getData()}getCells(){return this._range.getCells(!0,!0)}getModifiedCells(){return this._range.modifiedCells}getStructuredCells(){return this._range.getStructuredCells()}getRows(){return this._range.getRows().map((e)=>e.getComponent())}getColumns(){return this._range.getColumns().map((e)=>e.getComponent())}getBounds(){return this._range.getBounds()}getTopEdge(){return this._range.rect.top}getBottomEdge(){return this._range.rect.bottom}getLeftEdge(){return this._range.rect.left}getRightEdge(){return this._range.rect.right}setBounds(e,t){if(this._range.destroyedGuard("setBounds"))this._range.setBounds(e?e._cell:e,t?t._cell:t)}setStartBound(e){if(this._range.destroyedGuard("setStartBound"))this._range.setEndBound(e?e._cell:e),this._range.rangeManager.layoutElement()}setEndBound(e){if(this._range.destroyedGuard("setEndBound"))this._range.setEndBound(e?e._cell:e),this._range.rangeManager.layoutElement()}clearValues(){if(this._range.destroyedGuard("clearValues"))this._range.clearValues()}setData(e){if(this._range.destroyedGuard("setData"))this._range.setData(e)}fill(e){if(this._range.destroyedGuard("fill"))this._range.fill(e)}remove(){if(this._range.destroyedGuard("remove"))this._range.destroy(!0)}}class J{constructor(e,t,i,s){this.top=e,this.bottom=t,this.left=i,this.right=s}static zero(){return new J(0,0,0,0)}clone(){return new J(this.top,this.bottom,this.left,this.right)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}hasPoint(e,t){return e>=this.left&&e<=this.right&&t>=this.top&&t<=this.bottom}forEach(e){for(let t=this.top;t<=this.bottom;t++)for(let i=this.left;i<=this.right;i++)e(i,t)}}class fe extends H{constructor(e,t,i){super(e);if(this.rangeManager=t,this.element=null,this.initialized=!1,this.initializing={start:!1,end:!1},this.destroyed=!1,this.skipEvents=i.skipEvents||!1,this.rect=i.rect?i.rect.clone():J.zero(),this.table=e,this.modifiedCells=[],this.start={row:void 0,col:void 0},this.end={row:void 0,col:void 0},i.rect)this.start.row=i.rect.top,this.start.col=i.rect.left,this.end.row=i.rect.bottom,this.end.col=i.rect.right;else if(this.rangeManager.rowHeader)this.rect.left=1,this.rect.right=1,this.start.col=1,this.end.col=1;if(this.initElement(i.classNames),!i.rect)setTimeout(()=>{this.initBounds(i.start,i.end)})}initElement(e){if(this.element=document.createElement("div"),this.element.classList.add("tabulator-range"),e)this.element.classList.add(...e)}initBounds(e,t){if(this._updateMinMax(),e)this.setBounds(e,t||e)}setStart(e,t){if(this.start.row!==e||this.start.col!==t)this.start.row=e,this.start.col=t,this.initializing.start=!0,this._updateMinMax()}setEnd(e,t){if(this.end.row!==e||this.end.col!==t)this.end.row=e,this.end.col=t,this.initializing.end=!0,this._updateMinMax()}setRect(e){let t=this.start.row===this.rect.top?e.top:e.bottom,i=this.start.col===this.rect.left?e.left:e.right;this.setStart(t,i),this.setEnd(t===e.top?e.bottom:e.top,i===e.left?e.right:e.left)}setBounds(e,t,i){if(e)this.setStartBound(e);this.setEndBound(t||e),this.rangeManager.layoutElement(i)}setStartBound(e){var t,i;if(e.type==="column"){if(this.rangeManager.columnSelection)this.setStart(0,e.getPosition()-1)}else if(t=e.row.position-1,i=e.column.getPosition()-1,e.column===this.rangeManager.rowHeader)this.setStart(t,1);else this.setStart(t,i)}setEndBound(e){var t=this._getTableRows().length,i,s,r;if(e.type==="column"){if(this.rangeManager.columnSelection){if(this.rangeManager.selecting==="column")this.setEnd(t-1,e.getPosition()-1);else if(this.rangeManager.selecting==="cell")this.setEnd(0,e.getPosition()-1)}}else if(i=e.row.position-1,s=e.column.getPosition()-1,r=e.column===this.rangeManager.rowHeader,this.rangeManager.selecting==="row")this.setEnd(i,this._getTableColumns().length-1);else if(this.rangeManager.selecting!=="row"&&r)this.setEnd(i,0);else if(this.rangeManager.selecting==="column")this.setEnd(t-1,s);else this.setEnd(i,s)}_updateMinMax(){if(this.rect.top=Math.min(this.start.row,this.end.row),this.rect.bottom=Math.max(this.start.row,this.end.row),this.rect.left=Math.min(this.start.col,this.end.col),this.rect.right=Math.max(this.start.col,this.end.col),this.initialized){if(!this.skipEvents)this.dispatchExternal("rangeChanged",this.getComponent())}else if(this.initializing.start&&this.initializing.end){if(this.initialized=!0,!this.skipEvents)this.dispatch("range-added",this),this.dispatchExternal("rangeAdded",this.getComponent())}}_getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}_getTableRows(){return this.table.rowManager.getDisplayRows().filter((e)=>e.type==="row")}layout(){var e=this.table.rowManager.renderer.vDomTop,t=this.table.rowManager.renderer.vDomBottom,i=this.table.columnManager.renderer.leftCol,s=this.table.columnManager.renderer.rightCol,r=this.table.modules.frozenColumns.leftColumns,o=r.length,a=this.table.modules.frozenColumns.rightColumns,l=a.length,h,d,u,c,f,p,m,b,v,w;if(this.table.options.renderHorizontal==="virtual"&&this.rangeManager.rowHeader)s+=1;if(e==null)e=0;if(t==null)t=1/0;if(i==null)i=0;if(s==null)s=1/0;if(o>0&&r[0].isRowHeader===!0)o-=1;if(this.overlaps(i,e,s,t)){h=Math.max(this.rect.top,e),d=Math.min(this.rect.bottom,t),u=Math.max(this.rect.left,i),c=Math.min(this.rect.right,s+o+l),f=this.rangeManager.getCell(h,u),p=this.rangeManager.getCell(d,c),m=f.getElement(),b=p.getElement(),v=f.row.getElement(),w=p.row.getElement(),this.element.classList.add("tabulator-range-active");let x=0;if(this.rangeManager.getTableColumns().forEach((S)=>{if(this.occupiesColumn(S)&&S.definition.frozen)x+=S.width}),this.table.rtl){let S=Math.max(m.offsetLeft+m.offsetWidth-b.offsetLeft,x);this.element.style.right=v.offsetWidth-m.offsetLeft-m.offsetWidth+"px",this.element.style.width=S+"px"}else{let S=Math.max(b.offsetLeft+b.offsetWidth-m.offsetLeft,x);this.element.style.left=v.offsetLeft+m.offsetLeft+"px",this.element.style.width=S+"px"}this.element.style.top=v.offsetTop+"px",this.element.style.height=w.offsetTop+w.offsetHeight-v.offsetTop+"px"}}atTopLeft(e){return e.row.position-1===this.rect.top&&e.column.getPosition()-1===this.rect.left}atBottomRight(e){return e.row.position-1===this.rect.bottom&&e.column.getPosition()-1===this.rect.right}occupies(e){return this.occupiesRow(e.row)&&this.occupiesColumn(e.column)}occupiesRow(e){return this.rect.top<=e.position-1&&e.position-1<=this.rect.bottom}occupiesColumn(e){return this.rect.left<=e.getPosition()-1&&e.getPosition()-1<=this.rect.right}overlaps(e,t,i,s){if(this.rect.left>i||e>this.rect.right||(this.rect.top>s||t>this.rect.bottom))return!1;return!0}getData(){var e=[],t=this.getRows(),i=this.getColumns();return t.forEach((s)=>{var r=s.getData(),o={};i.forEach((a)=>{o[a.field]=r[a.field]}),e.push(o)}),e}getCells(e,t){var i=[],s=this.getRows(),r=this.getColumns();if(e)i=s.map((o)=>{var a=[];return o.getCells().forEach((l)=>{if(r.includes(l.column))a.push(t?l.getComponent():l)}),a});else s.forEach((o)=>{o.getCells().forEach((a)=>{if(r.includes(a.column))i.push(t?a.getComponent():a)})});return i}getStructuredCells(){return this.getCells(!0,!0)}getRows(){return this._getTableRows().slice(this.rect.top,this.rect.bottom+1)}getColumns(){return this._getTableColumns().slice(this.rect.left,this.rect.right+1)}clearValues(){var e=this.getCells(),t=this.table.options.selectableRangeClearCellsValue;this.table.blockRedraw(),e.forEach((i)=>{i.setValue(t)}),this.table.restoreRedraw()}setData(e){let t=this.getCells(!0),i=new Map,s=[],r=!1;if(this.modifiedCells=[],this.table.blockRedraw(),t.forEach((o,a)=>{let l=e[a];o.forEach((h,d)=>{let u=h.column.getField(),c=h.getValue(),f=!this.table.modExists("edit")||this.table.modules.edit.allowEdit(h),p=c;if(f&&u&&d<l.length){if(p=l[d],c!==p)r=!0,this.modifiedCells.push(h.getComponent());if(!i.has(h.row))i.set(h.row,{});i.get(h.row)[u]=p}s.push({oldValue:c,newValue:p})})}),i.forEach((o,a)=>a.updateData(o)),r&&this.table.modExists("history"))this.table.modules.history.action("rangeEdit",this,{cells:s});if(r)this.dispatchExternal("rangeEdited",this.getComponent());this.table.restoreRedraw()}fill(e){let t=this.getColumns(),i=this.getRows().map(()=>t.map(()=>e));this.setData(i)}getBounds(e){var t=this.getCells(!1,e),i={start:null,end:null};if(t.length)i.start=t[0],i.end=t[t.length-1];else console.warn("No bounds defined on range");return i}getStartCell(){return this.rangeManager.getCell(this.start.row,this.start.col)}getEndCell(){return this.rangeManager.getCell(this.end.row,this.end.col)}getComponent(){if(!this.component)this.component=new ke(this);return this.component}destroy(e){if(this.destroyed=!0,this.element.remove(),e)this.rangeManager.rangeRemoved(this);if(this.initialized&&!this.skipEvents)this.dispatchExternal("rangeRemoved",this.getComponent())}destroyedGuard(e){if(this.destroyed)console.warn("You cannot call the "+e+" function on a destroyed range");return!this.destroyed}}class Q extends H{constructor(e,t){super(e);this.rangeManager=t,this.element=null,this.preview=null,this.source=null,this.pointerRow=0,this.pointerCol=0,this.isActive=!1,this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleCellMouseMove=this.handleCellMouseMove.bind(this),this.element=document.createElement("div"),this.element.classList.add("tabulator-range-fill-handle"),this.element.addEventListener("mousedown",this.handleMouseDown),this.subscribe("range-active-changed",(i)=>this.attach(i))}attach(e){if(this.element.parentNode!==e.element)e.element.appendChild(this.element)}handleMouseDown(e){let t=this.rangeManager.activeRange;if(e.button!==0||!t)return;e.preventDefault(),e.stopPropagation(),this.isActive=!0,this.source=t.rect.clone(),this.pointerRow=this.source.bottom,this.pointerCol=this.source.right,this.preview=new fe(this.table,this.rangeManager,{rect:this.source,skipEvents:!0,classNames:["tabulator-range-fill-preview"]}),this.rangeManager.rangeContainer.appendChild(this.preview.element),this.preview.layout(),this.subscribe("cell-mousemove",this.handleCellMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}handleCellMouseMove(e,t){if(t.column===this.rangeManager.rowHeader)return;let i=t.row.position-1,s=t.column.getPosition()-1;if(i===this.pointerRow&&s===this.pointerCol)return;this.pointerRow=i,this.pointerCol=s;let r=Q.extendAlongAxis(this.source,this.pointerRow,this.pointerCol);this.preview.setRect(r),this.preview.layout()}async handleMouseUp(){this.isActive=!1,this.unsubscribe("cell-mousemove",this.handleCellMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.rangeManager.clearRanges();let e=await this.addInitializedRange(this.preview.getStartCell(),this.preview.getEndCell()),t=this.buildFillData(this.source,this.pointerRow,this.pointerCol);e.setData(t),this.preview.destroy()}buildFillData(e,t,i){let s=Q.extendAlongAxis(e,t,i),r=e.bottom-e.top+1,o=e.right-e.left+1,a=this.rangeManager.getTableRows(),l=this.rangeManager.getTableColumns(),h=[];for(let d=s.top;d<=s.bottom;d++){let u=[];for(let c=s.left;c<=s.right;c++){let f=e.top+((d-e.top)%r+r)%r,p=e.left+((c-e.left)%o+o)%o,m=a[f],b=l[p];u.push(m.getData()[b.getField()])}h.push(u)}return h}addInitializedRange(e,t){let i=this.rangeManager.addRange(e,t);if(!i.initialized)return new Promise((s)=>{let r=(o)=>{if(o!==i)return;this.unsubscribe("range-added",r),s(i)};this.subscribe("range-added",r)});return Promise.resolve(i)}static extendAlongAxis(e,t,i){let s=0,r=0,{top:o,bottom:a,left:l,right:h}=e;if(t<e.top)s=e.top-t;else if(t>e.bottom)s=t-e.bottom;if(i<e.left)r=e.left-i;else if(i>e.right)r=i-e.right;if(s&&s>=r)o=Math.min(o,t),a=Math.max(a,t);else if(r)l=Math.min(l,i),h=Math.max(h,i);return new J(o,a,l,h)}destroy(){document.removeEventListener("mouseup",this.handleMouseUp),this.element.remove(),this.preview?.destroy()}}var Yt={rangeJumpUp:["ctrl + 38","meta + 38"],rangeJumpDown:["ctrl + 40","meta + 40"],rangeJumpLeft:["ctrl + 37","meta + 37"],rangeJumpRight:["ctrl + 39","meta + 39"],rangeExpandUp:"shift + 38",rangeExpandDown:"shift + 40",rangeExpandLeft:"shift + 37",rangeExpandRight:"shift + 39",rangeExpandJumpUp:["ctrl + shift + 38","meta + shift + 38"],rangeExpandJumpDown:["ctrl + shift + 40","meta + shift + 40"],rangeExpandJumpLeft:["ctrl + shift + 37","meta + shift + 37"],rangeExpandJumpRight:["ctrl + shift + 39","meta + shift + 39"]},Qt={rangeJumpLeft:function(e){this.dispatch("keybinding-nav-range",e,"left",!0,!1)},rangeJumpRight:function(e){this.dispatch("keybinding-nav-range",e,"right",!0,!1)},rangeJumpUp:function(e){this.dispatch("keybinding-nav-range",e,"up",!0,!1)},rangeJumpDown:function(e){this.dispatch("keybinding-nav-range",e,"down",!0,!1)},rangeExpandLeft:function(e){this.dispatch("keybinding-nav-range",e,"left",!1,!0)},rangeExpandRight:function(e){this.dispatch("keybinding-nav-range",e,"right",!1,!0)},rangeExpandUp:function(e){this.dispatch("keybinding-nav-range",e,"up",!1,!0)},rangeExpandDown:function(e){this.dispatch("keybinding-nav-range",e,"down",!1,!0)},rangeExpandJumpLeft:function(e){this.dispatch("keybinding-nav-range",e,"left",!0,!0)},rangeExpandJumpRight:function(e){this.dispatch("keybinding-nav-range",e,"right",!0,!0)},rangeExpandJumpUp:function(e){this.dispatch("keybinding-nav-range",e,"up",!0,!0)},rangeExpandJumpDown:function(e){this.dispatch("keybinding-nav-range",e,"down",!0,!0)}},Zt={range:function(e){var t=[],i=this.table.modules.selectRange.activeRange,s=!1,r,o,a,l,h;if(h=e.length,i){if(r=i.getBounds(),o=r.start,r.start===r.end)s=!0;if(o){if(t=this.table.rowManager.activeRows.slice(),a=t.indexOf(o.row),s)l=e.length;else l=t.indexOf(r.end.row)-a+1;if(a>-1)this.table.blockRedraw(),t=t.slice(a,a+l),t.forEach((d,u)=>{d.updateData(e[u%h])}),this.table.restoreRedraw()}}return t}},ei={range:function(e){var t=[],i=[],s=this.table.modules.selectRange.activeRange,r=!1,o,a,l,h,d;if(s){if(o=s.getBounds(),a=o.start,o.start===o.end)r=!0;if(a){if(e=e.split(`
|
|
7
|
+
`),e.forEach(function(u){t.push(u.split("\t"))}),t.length){if(h=this.table.columnManager.getVisibleColumnsByIndex(),d=h.indexOf(a.column),d>-1){if(r)l=t[0].length;else l=h.indexOf(o.end.column)-d+1;return h=h.slice(d,d+l),t.forEach((u)=>{var c={},f=u.length;h.forEach(function(p,m){c[p.field]=u[m%f]}),i.push(c)}),i}}}}return!1}},ti={range:function(){var e=this.modules.selectRange.selectedColumns();if(this.columnManager.rowHeader)e.unshift(this.columnManager.rowHeader);return e}},ii={range:function(){return this.modules.selectRange.selectedRows()}},si={rangeEdit:function(e){e.component.getCells().forEach((t,i)=>{t.setValueProcessData(e.data.cells[i].oldValue),t.cellRendered()})}},ni={rangeEdit:function(e){e.component.getCells().forEach((t,i)=>{t.setValueProcessData(e.data.cells[i].newValue),t.cellRendered()})}},ri={keybindings:{bindings:Yt,actions:Qt},clipboard:{pasteActions:Zt,pasteParsers:ei},export:{columnLookups:ti,rowLookups:ii},history:{undoers:si,redoers:ni}};class pe extends F{static moduleName="selectRange";static moduleInitOrder=1;static moduleExtensions=ri;constructor(e){super(e);this.selecting="cell",this.mousedown=!1,this.ranges=[],this.overlay=null,this.rowHeader=null,this.layoutChangeTimeout=null,this.columnSelection=!1,this.rowSelection=!1,this.maxRanges=0,this.activeRange=!1,this.blockKeydown=!1,this.tabAnchorCol=null,this.fillHandle=null,this.keyDownEvent=this._handleKeyDown.bind(this),this.editKeyDownEvent=this._handleEditKeyDown.bind(this),this.mouseUpEvent=this._handleMouseUp.bind(this),this.registerTableOption("selectableRange",!1),this.registerTableOption("selectableRangeColumns",!1),this.registerTableOption("selectableRangeRows",!1),this.registerTableOption("selectableRangeClearCells",!1),this.registerTableOption("selectableRangeClearCellsValue",void 0),this.registerTableOption("selectableRangeAutoFocus",!0),this.registerTableOption("selectableRangeInitializeDefault",!0),this.registerTableOption("selectableRangeBlurEditOnNavigate",void 0),this.registerTableOption("selectableRangeCommitEditOnNavigate",!1),this.registerTableOption("selectableRangeFill",!1),this.registerTableFunction("getRangesData",this.getRangesData.bind(this)),this.registerTableFunction("getRanges",this.getRanges.bind(this)),this.registerTableFunction("addRange",this.addRangeFromComponent.bind(this)),this.registerComponentFunction("cell","getRanges",this.cellGetRanges.bind(this)),this.registerComponentFunction("row","getRanges",this.rowGetRanges.bind(this)),this.registerComponentFunction("column","getRanges",this.colGetRanges.bind(this))}initialize(){if(this.options("selectableRange")){if(!this.options("selectableRows"))this.maxRanges=this.options("selectableRange"),this.initializeTable(),this.initializeWatchers();else console.warn("SelectRange functionality cannot be used in conjunction with row selection");if(this.options("columns").findIndex((e)=>e.frozen)>0)console.warn("Having frozen column in arbitrary position with selectRange option may result in unpredictable behavior.");if(this.options("columns").filter((e)=>e.frozen)>1)console.warn("Having multiple frozen columns with selectRange option may result in unpredictable behavior.")}this.subscribe("edit-nav-disabled",()=>!0)}initializeTable(){if(this.overlay=document.createElement("div"),this.overlay.classList.add("tabulator-range-overlay"),this.rangeContainer=document.createElement("div"),this.rangeContainer.classList.add("tabulator-range-container"),this.activeRangeCellElement=document.createElement("div"),this.activeRangeCellElement.classList.add("tabulator-range-cell-active"),this.overlay.appendChild(this.rangeContainer),this.overlay.appendChild(this.activeRangeCellElement),this.options("selectableRangeFill"))this.fillHandle=new Q(this.table,this);this.table.rowManager.element.addEventListener("keydown",this.keyDownEvent),this.setDefaultRange(),this.table.rowManager.element.appendChild(this.overlay),this.table.columnManager.element.setAttribute("tabindex",0),this.table.element.classList.add("tabulator-ranges")}initializeWatchers(){this.columnSelection=this.options("selectableRangeColumns"),this.rowSelection=this.options("selectableRangeRows"),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-mousedown",this.handleColumnMouseDown.bind(this)),this.subscribe("column-mousemove",this.handleColumnMouseMove.bind(this)),this.subscribe("column-resized",this.handleColumnResized.bind(this)),this.subscribe("column-moving",this.handleColumnMoving.bind(this)),this.subscribe("column-moved",this.handleColumnMoved.bind(this)),this.subscribe("column-width",this.layoutChange.bind(this)),this.subscribe("column-height",this.layoutChange.bind(this)),this.subscribe("column-resized",this.layoutChange.bind(this)),this.subscribe("columns-loaded",this.updateHeaderColumn.bind(this)),this.subscribe("cell-height",this.layoutChange.bind(this)),this.subscribe("cell-rendered",this.renderCell.bind(this)),this.subscribe("cell-mousedown",this.handleCellMouseDown.bind(this)),this.subscribe("cell-mousemove",this.handleCellMouseMove.bind(this)),this.subscribe("cell-click",this.handleCellClick.bind(this)),this.subscribe("cell-editing",this.handleEditingCell.bind(this)),this.subscribe("page-changed",this.redraw.bind(this)),this.subscribe("scroll-vertical",this.layoutChange.bind(this)),this.subscribe("scroll-horizontal",this.layoutChange.bind(this)),this.subscribe("data-destroy",this.tableDestroyed.bind(this)),this.subscribe("data-processed",this.setDefaultRange.bind(this)),this.subscribe("table-layout",this.layoutElement.bind(this)),this.subscribe("table-redraw",this.redraw.bind(this)),this.subscribe("table-destroy",this.tableDestroyed.bind(this)),this.subscribe("edit-editor-created",this.handleEditorCreated.bind(this)),this.subscribe("edit-editor-clear",this.finishEditingCell.bind(this)),this.subscribe("edit-blur",this.restoreFocus.bind(this)),this.subscribe("keybinding-nav-prev",this.keyNavigate.bind(this,"prev"),20),this.subscribe("keybinding-nav-next",this.setTabAnchor.bind(this),10),this.subscribe("keybinding-nav-next",this.keyNavigate.bind(this,"next"),20),this.subscribe("keybinding-nav-left",this.keyNavigate.bind(this,"left")),this.subscribe("keybinding-nav-right",this.keyNavigate.bind(this,"right")),this.subscribe("keybinding-nav-up",this.keyNavigate.bind(this,"up")),this.subscribe("keybinding-nav-down",this.keyNavigate.bind(this,"down")),this.subscribe("keybinding-nav-range",this.keyNavigateRange.bind(this))}initializeColumn(e){if(this.columnSelection&&e.definition.headerSort&&this.options("headerSortClickElement")!=="icon")console.warn("Using column headerSort with selectableRangeColumns option may result in unpredictable behavior. Consider using headerSortClickElement: 'icon'.")}updateHeaderColumn(){var e;if(this.rowSelection){if(this.rowHeader=this.table.columnManager.getVisibleColumnsByIndex()[0],this.rowHeader){if(this.rowHeader.definition.cssClass=this.rowHeader.definition.cssClass+" tabulator-range-row-header",this.rowHeader.definition.headerSort)console.warn("Using column headerSort with selectableRangeRows option may result in unpredictable behavior");if(this.rowHeader.definition.editor)console.warn("Using column editor with selectableRangeRows option may result in unpredictable behavior")}}if(this.table.modules.frozenColumns&&this.table.modules.frozenColumns.active){if(e=this.table.modules.frozenColumns.getFrozenColumns(),e.length>1||e.length===1&&e[0]!==this.rowHeader)console.warn("Using frozen columns that are not the range header in combination with the selectRange option may result in unpredictable behavior")}}getRanges(){return this.ranges.map((e)=>e.getComponent())}getRangesData(){return this.ranges.map((e)=>e.getData())}addRangeFromComponent(e,t){return e=e?e._cell:null,t=t?t._cell:null,this.addRange(e,t)}cellGetRanges(e){var t=[];if(e.column===this.rowHeader)t=this.ranges.filter((i)=>i.occupiesRow(e.row));else t=this.ranges.filter((i)=>i.occupies(e));return t.map((i)=>i.getComponent())}rowGetRanges(e){var t=this.ranges.filter((i)=>i.occupiesRow(e));return t.map((i)=>i.getComponent())}colGetRanges(e){var t=this.ranges.filter((i)=>i.occupiesColumn(e));return t.map((i)=>i.getComponent())}_handleMouseUp(e){this.mousedown=!1,document.removeEventListener("mouseup",this.mouseUpEvent)}_handleKeyDown(e){if(!this.blockKeydown&&(!this.table.modules.edit||this.table.modules.edit&&!this.table.modules.edit.currentCell)){if(e.key==="Enter"){if(this.table.modules.edit&&this.table.modules.edit.currentCell)return;var t=this.getActiveCell();if(!t)return;this.table.modules.edit.editCell(t),e.preventDefault()}if((e.key==="Backspace"||e.key==="Delete")&&this.options("selectableRangeClearCells")){if(this.activeRange)this.activeRange.clearValues()}}}_handleEditKeyDown(e){if(e.key!=="Enter")return;if(e.ctrlKey||e.altKey||e.metaKey)return;if(this.table.modules.edit.checkEditing())return;if(e.shiftKey)this.navigateToTabAnchor("up");else this.navigateToTabAnchor("down");e.preventDefault()}initializeFocus(e){var t;this.restoreFocus();try{if(document.selection)t=document.body.createTextRange(),t.moveToElementText(e.getElement()),t.select();else if(window.getSelection)t=document.createRange(),t.selectNode(e.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(t)}catch(i){}}restoreFocus(e){return this.table.rowManager.element.focus(),!0}handleColumnResized(e){var t;if(this.selecting!=="column"&&this.selecting!=="all")return;if(t=this.ranges.some((i)=>i.occupiesColumn(e)),!t)return;this.ranges.forEach((i)=>{var s=i.getColumns(!0);s.forEach((r)=>{if(r!==e)r.setWidth(e.width)})})}handleColumnMoving(e,t){this.resetRanges().setBounds(t),this.overlay.style.visibility="hidden"}handleColumnMoved(e,t,i){this.activeRange.setBounds(e),this.layoutElement()}handleColumnMouseDown(e,t){if(e.button===2&&(this.selecting==="column"||this.selecting==="all")&&this.activeRange.occupiesColumn(t))return;if(this.table.options.movableColumns&&this.selecting==="column"&&this.activeRange.occupiesColumn(t))return;this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(e,t)}handleColumnMouseMove(e,t){if(t===this.rowHeader||!this.mousedown||this.selecting==="all")return;this.activeRange.setBounds(!1,t,!0)}renderCell(e){var t=e.getElement(),i=this.ranges.findIndex((s)=>s.occupies(e));t.classList.toggle("tabulator-range-selected",i!==-1),t.classList.toggle("tabulator-range-only-cell-selected",this.ranges.length===1&&this.ranges[0].atTopLeft(e)&&this.ranges[0].atBottomRight(e)),t.dataset.range=i}handleCellMouseDown(e,t){if(e.button===2&&(this.activeRange.occupies(t)||(this.selecting==="row"||this.selecting==="all")&&this.activeRange.occupiesRow(t.row)))return;this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(e,t)}handleCellMouseMove(e,t){if(!this.mousedown||this.selecting==="all")return;this.activeRange.setBounds(!1,t,!0)}handleCellClick(e,t){this.initializeFocus(t)}handleEditingCell(e){if(this.activeRange)this.activeRange.setBounds(e)}handleEditorCreated(e,t){t.addEventListener("keydown",this.editKeyDownEvent)}finishEditingCell(e,t,i){this.blockKeydown=!0,this.table.rowManager.element.focus(),setTimeout(()=>{this.blockKeydown=!1},10)}keyNavigate(e,t){if(this.options("selectableRangeBlurEditOnNavigate")){if(this.chain("edit-check-editing"))if(e==="next"||e==="prev")if(this.options("selectableRangeCommitEditOnNavigate"))this.restoreFocus();else this.dispatch("edit-cancel-cell");else return!1}if(e!=="next")this.tabAnchorCol=null;if(e==="prev")e="left";else if(e==="next")e="right";if(this.navigate(!1,!1,e))t.preventDefault()}setTabAnchor(){if(this.tabAnchorCol===null)this.tabAnchorCol=this.activeRange.start.col}navigateToTabAnchor(e){let t=this.activeRange;if(this.tabAnchorCol!==null)t.setStart(t.start.row,this.tabAnchorCol),t.setEnd(t.start.row,this.tabAnchorCol),this.tabAnchorCol=null,this.layoutElement();this.navigate(!1,!1,e)}keyNavigateRange(e,t,i,s){if(this.tabAnchorCol=null,this.navigate(i,s,t))e.preventDefault()}navigate(e,t,i){var s=!1,r,o,a,l,h,d,u,c,f,p,m;if(this.table.modules.edit&&this.table.modules.edit.currentCell)return!1;if(this.ranges.length>1)this.ranges=this.ranges.filter((b)=>{if(b===this.activeRange)return b.setEnd(b.start.row,b.start.col),!0;return b.destroy(),!1});if(r=this.activeRange,a=r.rect.clone(),o=t?r.end:r.start,l=o.row,h=o.col,e)switch(i){case"left":h=this.findJumpCellLeft(r.start.row,o.col);break;case"right":h=this.findJumpCellRight(r.start.row,o.col);break;case"up":l=this.findJumpCellUp(o.row,r.start.col);break;case"down":l=this.findJumpCellDown(o.row,r.start.col);break}else{if(t){if(this.selecting==="row"&&(i==="left"||i==="right")||this.selecting==="column"&&(i==="up"||i==="down"))return}switch(i){case"left":h=Math.max(h-1,0);break;case"right":h=Math.min(h+1,this.getTableColumns().length-1);break;case"up":l=Math.max(l-1,0);break;case"down":l=Math.min(l+1,this.getTableRows().length-1);break}}if(this.rowHeader&&h===0)h=1;if(!t)r.setStart(l,h);if(r.setEnd(l,h),!t)this.selecting="cell";if(s=!a.equals(r.rect),s){if(d=this.getRowByRangePos(r.end.row),u=this.getColumnByRangePos(r.end.col),c=d.getElement().getBoundingClientRect(),p=u.getElement().getBoundingClientRect(),f=this.table.rowManager.getElement().getBoundingClientRect(),m=this.table.columnManager.getElement().getBoundingClientRect(),!(c.top>=f.top&&c.bottom<=f.bottom))if(d.getElement().parentNode&&u.getElement().parentNode)this.autoScroll(r,d.getElement(),u.getElement());else d.getComponent().scrollTo(void 0,!1);if(!(p.left>=m.left+this.getRowHeaderWidth()&&p.right<=m.right))if(d.getElement().parentNode&&u.getElement().parentNode)this.autoScroll(r,d.getElement(),u.getElement());else u.getComponent().scrollTo(void 0,!1);this.layoutElement()}return!0}rangeRemoved(e){if(this.ranges=this.ranges.filter((t)=>t!==e),this.activeRange===e)if(this.ranges.length)this.setActiveRange(this.ranges[this.ranges.length-1]);else this.addRange();this.layoutElement(!0)}findJumpRow(e,t,i,s,r){if(i)t=t.reverse();return this.findJumpItem(s,r,t,function(o){return o.getData()[e.getField()]})}findJumpCol(e,t,i,s,r){if(i)t=t.reverse();return this.findJumpItem(s,r,t,function(o){return e.getData()[o.getField()]})}findJumpItem(e,t,i,s){var r;for(let o of i){let a=s(o);if(e){if(r=o,a)break}else if(t){if(r=o,a)break}else if(a)r=o;else break}return r}findJumpCellLeft(e,t){var i=this.getRowByRangePos(e),s=this.getTableColumns(),r=this.isEmpty(i.getData()[s[t].getField()]),o=s[t-1]?this.isEmpty(i.getData()[s[t-1].getField()]):!1,a=this.rowHeader?s.slice(1,t):s.slice(0,t),l=this.findJumpCol(i,a,!0,r,o);if(l)return l.getPosition()-1;return t}findJumpCellRight(e,t){var i=this.getRowByRangePos(e),s=this.getTableColumns(),r=this.isEmpty(i.getData()[s[t].getField()]),o=s[t+1]?this.isEmpty(i.getData()[s[t+1].getField()]):!1,a=this.findJumpCol(i,s.slice(t+1,s.length),!1,r,o);if(a)return a.getPosition()-1;return t}findJumpCellUp(e,t){var i=this.getColumnByRangePos(t),s=this.getTableRows(),r=this.isEmpty(s[e].getData()[i.getField()]),o=s[e-1]?this.isEmpty(s[e-1].getData()[i.getField()]):!1,a=this.findJumpRow(i,s.slice(0,e),!0,r,o);if(a)return a.position-1;return e}findJumpCellDown(e,t){var i=this.getColumnByRangePos(t),s=this.getTableRows(),r=this.isEmpty(s[e].getData()[i.getField()]),o=s[e+1]?this.isEmpty(s[e+1].getData()[i.getField()]):!1,a=this.findJumpRow(i,s.slice(e+1,s.length),!1,r,o);if(a)return a.position-1;return e}newSelection(e,t){var i;if(t.type==="column"){if(!this.columnSelection)return;if(t===this.rowHeader){i=this.resetRanges(),this.selecting="all";var s,r=this.getCell(-1,-1);if(this.rowHeader)s=this.getCell(0,1);else s=this.getCell(0,0);i.setBounds(s,r);return}else this.selecting="column"}else if(t.column===this.rowHeader)this.selecting="row";else this.selecting="cell";if(e.shiftKey)this.activeRange.setBounds(!1,t,!0);else if(e.ctrlKey)this.addRange().setBounds(t,void 0,!0);else this.resetRanges().setBounds(t,void 0,!0)}autoScroll(e,t,i){var s=this.table.rowManager.element,r,o,a,l;if(typeof t>"u")t=this.getRowByRangePos(e.end.row).getElement();if(typeof i>"u")i=this.getColumnByRangePos(e.end.col).getElement();if(r={left:i.offsetLeft,right:i.offsetLeft+i.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight},o={left:s.scrollLeft+this.getRowHeaderWidth(),right:Math.ceil(s.scrollLeft+s.clientWidth),top:s.scrollTop,bottom:s.scrollTop+s.offsetHeight-this.table.rowManager.scrollbarWidth},a=o.left<r.left&&r.left<o.right&&o.left<r.right&&r.right<o.right,l=o.top<r.top&&r.top<o.bottom&&o.top<r.bottom&&r.bottom<o.bottom,!a){if(r.left<o.left)s.scrollLeft=r.left-this.getRowHeaderWidth();else if(r.right>o.right)s.scrollLeft=Math.min(r.right-s.clientWidth,r.left-this.getRowHeaderWidth())}if(!l){if(r.top<o.top)s.scrollTop=r.top;else if(r.bottom>o.bottom)s.scrollTop=r.bottom-s.clientHeight}}layoutChange(){this.overlay.style.visibility="hidden",clearTimeout(this.layoutChangeTimeout),this.layoutChangeTimeout=setTimeout(this.layoutRanges.bind(this),200)}redraw(e){if(e)this.selecting="cell",this.setDefaultRange(),this.layoutElement()}layoutElement(e){var t;if(e)t=this.table.rowManager.getVisibleRows(!0);else t=this.table.rowManager.getRows();t.forEach((i)=>{if(i.type==="row")this.layoutRow(i),i.cells.forEach((s)=>this.renderCell(s))}),this.getTableColumns().forEach((i)=>{this.layoutColumn(i)}),this.layoutRanges()}layoutRow(e){var t=e.getElement(),i=!1,s=this.ranges.some((r)=>r.occupiesRow(e));if(this.selecting==="row")i=s;else if(this.selecting==="all")i=!0;t.classList.toggle("tabulator-range-selected",i),t.classList.toggle("tabulator-range-highlight",s)}layoutColumn(e){var t=e.getElement(),i=!1,s=this.ranges.some((r)=>r.occupiesColumn(e));if(this.selecting==="column")i=s;else if(this.selecting==="all")i=!0;t.classList.toggle("tabulator-range-selected",i),t.classList.toggle("tabulator-range-highlight",s)}layoutRanges(){var e,t,i;if(!this.table.initialized)return;if(e=this.getActiveCell(),!e)return;if(t=e.getElement(),i=e.row.getElement(),this.table.rtl)this.activeRangeCellElement.style.right=i.offsetWidth-t.offsetLeft-t.offsetWidth+"px";else this.activeRangeCellElement.style.left=i.offsetLeft+t.offsetLeft+"px";this.activeRangeCellElement.style.top=i.offsetTop+"px",this.activeRangeCellElement.style.width=t.offsetWidth+"px",this.activeRangeCellElement.style.height=i.offsetHeight+"px",this.ranges.forEach((s)=>s.layout()),this.overlay.style.visibility="visible"}getCell(e,t){var i;if(t<0){if(t=this.getTableColumns().length+t,t<0)return null}if(e<0)e=this.getTableRows().length+e;return i=this.table.rowManager.getRowFromPosition(e+1),i?i.getCells(!1,!0).filter((s)=>s.column.visible)[t]:null}getActiveCell(){if(!this.activeRange)return;return this.getCell(this.activeRange.start.row,this.activeRange.start.col)}getRowByRangePos(e){return this.getTableRows()[e]}getColumnByRangePos(e){return this.getTableColumns()[e]}getTableRows(){return this.table.rowManager.getDisplayRows().filter((e)=>e.type==="row")}getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}setActiveRange(e){this.activeRange=e,this.dispatch("range-active-changed",e)}addRange(e,t){var i;if(this.maxRanges!==!0&&this.ranges.length>=this.maxRanges)this.ranges.shift().destroy();return i=new fe(this.table,this,{start:e,end:t}),this.tabAnchorCol=null,this.setActiveRange(i),this.ranges.push(i),this.rangeContainer.appendChild(i.element),i}createDefaultRange(){var e,t,i;if(e=this.addRange(),this.table.rowManager.activeRows.length){if(i=this.table.rowManager.activeRows[0].cells.filter((s)=>s.column.visible),t=i[this.rowHeader?1:0],t){if(e.setBounds(t),this.options("selectableRangeAutoFocus"))this.initializeFocus(t)}}return e}clearRanges(){this.ranges.forEach((e)=>e.destroy()),this.ranges=[]}setDefaultRange(){if(this.clearRanges(),this.options("selectableRangeInitializeDefault"))this.createDefaultRange()}resetRanges(){return this.clearRanges(),this.createDefaultRange()}tableDestroyed(){document.removeEventListener("mouseup",this.mouseUpEvent),this.fillHandle?.destroy(),this.table.rowManager.element.removeEventListener("keydown",this.keyDownEvent)}selectedRows(e){return e?this.activeRange.getRows().map((t)=>t.getComponent()):this.activeRange.getRows()}selectedColumns(e){return e?this.activeRange.getColumns().map((t)=>t.getComponent()):this.activeRange.getColumns()}getRowHeaderWidth(){if(!this.rowHeader)return 0;return this.rowHeader.getElement().offsetWidth}isEmpty(e){return e===null||e===void 0||e===""}}function oi(e,t,i,s,r,o,a){var{alignEmptyValues:l,decimalSeparator:h,thousandSeparator:d}=a,u=0;if(e=String(e),t=String(t),d)e=e.split(d).join(""),t=t.split(d).join("");if(h)e=e.split(h).join("."),t=t.split(h).join(".");if(e=parseFloat(e),t=parseFloat(t),isNaN(e))u=isNaN(t)?0:-1;else if(isNaN(t))u=1;else return e-t;if(l==="top"&&o==="desc"||l==="bottom"&&o==="asc")u*=-1;return u}function ai(e,t,i,s,r,o,a){var l=a.alignEmptyValues,h=0,d;if(!e)h=!t?0:-1;else if(!t)h=1;else{switch(typeof a.locale){case"boolean":if(a.locale)d=this.langLocale();break;case"string":d=a.locale;break}return String(e).toLowerCase().localeCompare(String(t).toLowerCase(),d)}if(l==="top"&&o==="desc"||l==="bottom"&&o==="asc")h*=-1;return h}function me(e,t,i,s,r,o,a){var l=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),h=a.format||"dd/MM/yyyy HH:mm:ss",d=a.alignEmptyValues,u=0;if(typeof l<"u"){if(!l.isDateTime(e))if(h==="iso")e=l.fromISO(String(e));else if(h==="x")e=l.fromMillis(e);else e=l.fromFormat(String(e),h);if(!l.isDateTime(t))if(h==="iso")t=l.fromISO(String(t));else if(h==="x")t=l.fromMillis(t);else t=l.fromFormat(String(t),h);if(!e.isValid)u=!t.isValid?0:-1;else if(!t.isValid)u=1;else return e-t;if(d==="top"&&o==="desc"||d==="bottom"&&o==="asc")u*=-1;return u}else console.error("Sort Error - 'datetime' sorter is dependant on luxon.js")}function li(e,t,i,s,r,o,a){if(!a.format)a.format="dd/MM/yyyy";return me.call(this,e,t,i,s,r,o,a)}function hi(e,t,i,s,r,o,a){if(!a.format)a.format="HH:mm";return me.call(this,e,t,i,s,r,o,a)}function di(e,t,i,s,r,o,a){var l=e===!0||e==="true"||e==="True"||e===1?1:0,h=t===!0||t==="true"||t==="True"||t===1?1:0;return l-h}function ui(e,t,i,s,r,o,a){var l=a.type||"length",h=a.alignEmptyValues,d=0,u=this.table,c;if(a.valueMap)if(typeof a.valueMap==="string")c=function(p){return p.map((m)=>L.retrieveNestedData(u.options.nestedFieldSeparator,a.valueMap,m))};else c=a.valueMap;function f(p){var m;if(c)p=c(p);switch(l){case"length":m=p.length;break;case"sum":m=p.reduce(function(b,v){return b+v});break;case"max":m=Math.max.apply(null,p);break;case"min":m=Math.min.apply(null,p);break;case"avg":m=p.reduce(function(b,v){return b+v})/p.length;break;case"string":m=p.join("");break}return m}if(!Array.isArray(e))d=!Array.isArray(t)?0:-1;else if(!Array.isArray(t))d=1;else if(l==="string")return String(f(e)).toLowerCase().localeCompare(String(f(t)).toLowerCase());else return f(t)-f(e);if(h==="top"&&o==="desc"||h==="bottom"&&o==="asc")d*=-1;return d}function ci(e,t,i,s,r,o,a){var l=typeof e>"u"?0:1,h=typeof t>"u"?0:1;return l-h}function fi(e,t,i,s,r,o,a){var l,h,d,u,c=0,f,p=/(\d+)|(\D+)/g,m=/\d/,b=a.alignEmptyValues,v=0;if(!e&&e!==0)v=!t&&t!==0?0:-1;else if(!t&&t!==0)v=1;else{if(isFinite(e)&&isFinite(t))return e-t;if(l=String(e).toLowerCase(),h=String(t).toLowerCase(),l===h)return 0;if(!(m.test(l)&&m.test(h)))return l>h?1:-1;l=l.match(p),h=h.match(p),f=l.length>h.length?h.length:l.length;while(c<f)if(d=l[c],u=h[c++],d!==u)if(isFinite(d)&&isFinite(u)){if(d.charAt(0)==="0")d="."+d;if(u.charAt(0)==="0")u="."+u;return d-u}else return d>u?1:-1;return l.length>h.length}if(b==="top"&&o==="desc"||b==="bottom"&&o==="asc")v*=-1;return v}var pi={number:oi,string:ai,date:li,time:hi,datetime:me,boolean:di,array:ui,exists:ci,alphanum:fi};class K extends F{static moduleName="sort";static sorters=pi;constructor(e){super(e);this.sortList=[],this.changed=!1,this.registerTableOption("sortMode","local"),this.registerTableOption("initialSort",!1),this.registerTableOption("columnHeaderSortMulti",!0),this.registerTableOption("sortOrderReverse",!1),this.registerTableOption("headerSortElement","<div class='tabulator-arrow'></div>"),this.registerTableOption("headerSortClickElement","header"),this.registerColumnOption("sorter"),this.registerColumnOption("sorterParams"),this.registerColumnOption("headerSort",!0),this.registerColumnOption("headerSortStartingDir"),this.registerColumnOption("headerSortTristate")}initialize(){if(this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.registerDataHandler(this.sort.bind(this),20),this.registerTableFunction("setSort",this.userSetSort.bind(this)),this.registerTableFunction("getSorters",this.getSort.bind(this)),this.registerTableFunction("clearSort",this.clearSort.bind(this)),this.table.options.sortMode==="remote")this.subscribe("data-params",this.remoteSortParams.bind(this))}tableBuilt(){if(this.table.options.initialSort)this.setSort(this.table.options.initialSort)}remoteSortParams(e,t,i,s){var r=this.getSort();return r.forEach((o)=>{delete o.column}),s.sort=r,s}userSetSort(e,t){this.setSort(e,t),this.refreshSort()}clearSort(){this.clear(),this.refreshSort()}initializeColumn(e){var t=!1,i,s;switch(typeof e.definition.sorter){case"string":if(K.sorters[e.definition.sorter])t=K.sorters[e.definition.sorter];else console.warn("Sort Error - No such sorter found: ",e.definition.sorter);break;case"function":t=e.definition.sorter;break}if(e.modules.sort={sorter:t,dir:"none",params:e.definition.sorterParams||{},startingDir:e.definition.headerSortStartingDir||"asc",tristate:e.definition.headerSortTristate},e.definition.headerSort!==!1){switch(i=e.getElement(),i.classList.add("tabulator-sortable"),s=document.createElement("div"),s.classList.add("tabulator-col-sorter"),this.table.options.headerSortClickElement){case"icon":s.classList.add("tabulator-col-sorter-element");break;case"header":i.classList.add("tabulator-col-sorter-element");break;default:i.classList.add("tabulator-col-sorter-element");break}switch(this.table.options.headerSortElement){case"function":break;case"object":s.appendChild(this.table.options.headerSortElement);break;default:s.innerHTML=this.table.options.headerSortElement}if(e.titleHolderElement.appendChild(s),e.modules.sort.element=s,this.setColumnHeaderSortIcon(e,"none"),this.table.options.headerSortClickElement==="icon")s.addEventListener("mousedown",(r)=>{r.stopPropagation()});(this.table.options.headerSortClickElement==="icon"?s:i).addEventListener("click",(r)=>{var o="",a=[],l=!1;if(e.modules.sort){if(e.modules.sort.tristate)if(e.modules.sort.dir=="none")o=e.modules.sort.startingDir;else if(e.modules.sort.dir==e.modules.sort.startingDir)o=e.modules.sort.dir=="asc"?"desc":"asc";else o="none";else switch(e.modules.sort.dir){case"asc":o="desc";break;case"desc":o="asc";break;default:o=e.modules.sort.startingDir}if(this.table.options.columnHeaderSortMulti&&(r.shiftKey||r.ctrlKey)){if(a=this.getSort(),l=a.findIndex((h)=>h.field===e.getField()),l>-1){if(a[l].dir=o,l=a.splice(l,1)[0],o!="none")a.push(l)}else if(o!="none")a.push({column:e,dir:o});this.setSort(a)}else if(o=="none")this.clear();else this.setSort(e,o);this.refreshSort()}})}}refreshSort(){if(this.table.options.sortMode==="remote")this.reloadData(null,!1,!1);else this.refreshData(!0)}hasChanged(){var e=this.changed;return this.changed=!1,e}getSort(){var e=this,t=[];return e.sortList.forEach(function(i){if(i.column)t.push({column:i.column.getComponent(),field:i.column.getField(),dir:i.dir})}),t}setSort(e,t){var i=this,s=[];if(!Array.isArray(e))e=[{column:e,dir:t}];e.forEach(function(r){var o=i.table.columnManager.findColumn(r.column);if(o)r.column=o,s.push(r),i.changed=!0;else console.warn("Sort Warning - Sort field does not exist and is being ignored: ",r.column)}),i.sortList=s,this.dispatch("sort-changed")}clear(){this.setSort([])}findSorter(e){var t=this.table.rowManager.activeRows[0],i="string",s,r;if(t){if(t=t.getData(),s=e.getField(),s)switch(r=e.getFieldValue(t),typeof r){case"undefined":i="string";break;case"boolean":i="boolean";break;default:if(!isNaN(Number(r))&&r!=="")i="number";else if(r.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i))i="alphanum";break}}return K.sorters[i]}sort(e,t){var i=this,s=this.table.options.sortOrderReverse?i.sortList.slice().reverse():i.sortList,r=[],o=[];if(this.subscribedExternal("dataSorting"))this.dispatchExternal("dataSorting",i.getSort());if(!t)i.clearColumnHeaders();if(this.table.options.sortMode!=="remote"){if(s.forEach(function(a,l){var h;if(a.column){if(h=a.column.modules.sort,h){if(!h.sorter)h.sorter=i.findSorter(a.column);a.params=typeof h.params==="function"?h.params(a.column.getComponent(),a.dir):h.params,r.push(a)}if(!t)i.setColumnHeader(a.column,a.dir)}}),r.length)i._sortItems(e,r)}else if(!t)s.forEach(function(a,l){i.setColumnHeader(a.column,a.dir)});if(this.subscribedExternal("dataSorted"))e.forEach((a)=>{o.push(a.getComponent())}),this.dispatchExternal("dataSorted",i.getSort(),o);return e}clearColumnHeaders(){this.table.columnManager.getRealColumns().forEach((e)=>{if(e.modules.sort)e.modules.sort.dir="none",e.getElement().setAttribute("aria-sort","none"),this.setColumnHeaderSortIcon(e,"none")})}setColumnHeader(e,t){e.modules.sort.dir=t,e.getElement().setAttribute("aria-sort",t==="asc"?"ascending":"descending"),this.setColumnHeaderSortIcon(e,t)}setColumnHeaderSortIcon(e,t){var i=e.modules.sort.element,s;if(e.definition.headerSort&&typeof this.table.options.headerSortElement==="function"){while(i.firstChild)i.removeChild(i.firstChild);if(s=this.table.options.headerSortElement.call(this.table,e.getComponent(),t),typeof s==="object")i.appendChild(s);else i.innerHTML=s}}_sortItems(e,t){var i=t.length-1;e.sort((s,r)=>{var o;for(var a=i;a>=0;a--){let l=t[a];if(o=this._sortRow(s,r,l.column,l.dir,l.params),o!==0)break}return o})}_sortRow(e,t,i,s,r){var o,a,l=s=="asc"?e:t,h=s=="asc"?t:e;return e=i.getFieldValue(l.getData()),t=i.getFieldValue(h.getData()),e=typeof e<"u"?e:"",t=typeof t<"u"?t:"",o=l.getComponent(),a=h.getComponent(),i.modules.sort.sorter.call(this,e,t,o,a,i.getComponent(),s,r)}}class ge extends F{static moduleName="tooltip";constructor(e){super(e);this.tooltipSubscriber=null,this.headerSubscriber=null,this.timeout=null,this.popupInstance=null,this.registerTableOption("tooltipDelay",300),this.registerColumnOption("tooltip"),this.registerColumnOption("headerTooltip")}initialize(){this.deprecatedOptionsCheck(),this.subscribe("column-init",this.initializeColumn.bind(this))}deprecatedOptionsCheck(){}initializeColumn(e){if(e.definition.headerTooltip&&!this.headerSubscriber)this.headerSubscriber=!0,this.subscribe("column-mousemove",this.mousemoveCheck.bind(this,"headerTooltip")),this.subscribe("column-mouseout",this.mouseoutCheck.bind(this,"headerTooltip"));if(e.definition.tooltip&&!this.tooltipSubscriber)this.tooltipSubscriber=!0,this.subscribe("cell-mousemove",this.mousemoveCheck.bind(this,"tooltip")),this.subscribe("cell-mouseout",this.mouseoutCheck.bind(this,"tooltip"))}mousemoveCheck(e,t,i){var s=e==="tooltip"?i.column.definition.tooltip:i.definition.headerTooltip;if(s)this.clearPopup(),this.timeout=setTimeout(this.loadTooltip.bind(this,t,i,s),this.table.options.tooltipDelay)}mouseoutCheck(e,t,i){if(!this.popupInstance)this.clearPopup()}clearPopup(e,t,i){if(clearTimeout(this.timeout),this.timeout=null,this.popupInstance)this.popupInstance.hide()}loadTooltip(e,t,i){var s,r,o;function a(l){r=l}if(typeof i==="function")i=i(e,t.getComponent(),a);if(i instanceof HTMLElement)s=i;else{if(s=document.createElement("div"),i===!0)if(t instanceof ee)i=t.value;else if(t.definition.field)this.langBind("columns|"+t.definition.field,(l)=>{s.innerHTML=i=l||t.definition.title});else i=t.definition.title;s.innerHTML=i}if(i||i===0||i===!1){if(s.classList.add("tabulator-tooltip"),s.addEventListener("mousemove",(l)=>l.preventDefault()),this.popupInstance=this.popup(s),typeof r==="function")this.popupInstance.renderCallback(r);o=this.popupInstance.containerEventCoords(e),this.popupInstance.show(o.x+15,o.y+15).hideOnBlur(()=>{this.dispatchExternal("TooltipClosed",t.getComponent()),this.popupInstance=null}),this.dispatchExternal("TooltipOpened",t.getComponent())}}}var mi={debugEventsExternal:!1,debugEventsInternal:!1,debugInvalidOptions:!0,debugInvalidComponentFuncs:!0,debugInitialization:!0,debugDeprecation:!0,height:!1,minHeight:!1,maxHeight:!1,columnHeaderVertAlign:"top",popupContainer:!1,columns:[],columnDefaults:{},rowHeader:!1,data:!1,autoColumns:!1,autoColumnsDefinitions:!1,nestedFieldSeparator:".",footerElement:!1,index:"id",textDirection:"auto",addRowPos:"bottom",headerVisible:!0,renderVertical:"virtual",renderHorizontal:"basic",renderVerticalBuffer:0,scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,rowHeight:null,placeholder:!1,dataLoader:!0,dataLoaderLoading:!1,dataLoaderError:!1,dataLoaderErrorTimeout:3000,dataSendParams:{},dataReceiveParams:{},dependencies:{}};class be{constructor(e,t,i={}){this.table=e,this.msgType=t,this.registeredDefaults=Object.assign({},i)}register(e,t){this.registeredDefaults[e]=t}generate(e,t={}){var i=Object.assign({},this.registeredDefaults),s=this.table.options.debugInvalidOptions||t.debugInvalidOptions===!0;Object.assign(i,e);for(let r in t)if(!i.hasOwnProperty(r)){if(s)console.warn("Invalid "+this.msgType+" option:",r);i[r]=t.key}for(let r in i)if(r in t)i[r]=t[r];else if(Array.isArray(i[r]))i[r]=Object.assign([],i[r]);else if(typeof i[r]==="object"&&i[r]!==null)i[r]=Object.assign({},i[r]);else if(typeof i[r]>"u")delete i[r];return i}}class q extends H{constructor(e){super(e);this.elementVertical=e.rowManager.element,this.elementHorizontal=e.columnManager.element,this.tableElement=e.rowManager.tableElement,this.verticalFillMode="fit"}initialize(){}clearRows(){}clearColumns(){}reinitializeColumnWidths(e){}renderRows(){}renderColumns(){}rerenderRows(e){if(e)e()}rerenderColumns(e,t){}renderRowCells(e){}rerenderRowCells(e,t){}scrollColumns(e,t){}scrollRows(e,t){}resize(){}scrollToRow(e){}scrollToRowNearestTop(e){}visibleRows(e){return[]}rows(){return this.table.rowManager.getDisplayRows()}styleRow(e,t){var i=e.getElement();if(t%2)i.classList.add("tabulator-row-even"),i.classList.remove("tabulator-row-odd");else i.classList.add("tabulator-row-odd"),i.classList.remove("tabulator-row-even")}clear(){this.clearRows(),this.clearColumns()}render(){this.renderRows(),this.renderColumns()}rerender(e){this.rerenderRows(),this.rerenderColumns()}scrollToRowPosition(e,t,i){var s=this.rows().indexOf(e),r=e.getElement(),o=0;return new Promise((a,l)=>{if(s>-1){if(typeof i>"u")i=this.table.options.scrollToRowIfVisible;if(!i){if(L.elVisible(r)){if(o=L.elOffset(r).top-L.elOffset(this.elementVertical).top,o>0&&o<this.elementVertical.clientHeight-r.offsetHeight)return a(),!1}}if(typeof t>"u")t=this.table.options.scrollToRowPosition;if(t==="nearest")t=this.scrollToRowNearestTop(e)?"top":"bottom";switch(this.scrollToRow(e),t){case"middle":case"center":if(this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight)this.elementVertical.scrollTop=this.elementVertical.scrollTop+(r.offsetTop-this.elementVertical.scrollTop)-(this.elementVertical.scrollHeight-r.offsetTop)/2;else this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight/2;break;case"bottom":if(this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight)this.elementVertical.scrollTop=this.elementVertical.scrollTop-(this.elementVertical.scrollHeight-r.offsetTop)+r.offsetHeight;else this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight+r.offsetHeight;break;case"top":this.elementVertical.scrollTop=r.offsetTop;break}a()}else console.warn("Scroll Error - Row not visible"),l("Scroll Error - Row not visible")})}}class Le extends q{constructor(e){super(e)}renderRowCells(e,t){let i=document.createDocumentFragment();if(e.cells.forEach((s)=>{i.appendChild(s.getElement())}),e.element.appendChild(i),!t)e.cells.forEach((s)=>{s.cellRendered()})}reinitializeColumnWidths(e){e.forEach(function(t){t.reinitializeWidth()})}}class Se extends q{constructor(e){super(e);this.leftCol=0,this.rightCol=0,this.scrollLeft=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0,this.fitDataColAvg=0,this.windowBuffer=200,this.visibleRows=null,this.initialized=!1,this.isFitData=!1,this.columns=[]}initialize(){this.compatibilityCheck(),this.layoutCheck(),this.vertScrollListen()}compatibilityCheck(){if(this.options("layout")=="fitDataTable")console.warn("Horizontal Virtual DOM is not compatible with fitDataTable layout mode");if(this.options("responsiveLayout"))console.warn("Horizontal Virtual DOM is not compatible with responsive columns");if(this.options("rtl"))console.warn("Horizontal Virtual DOM is not currently compatible with RTL text direction")}layoutCheck(){this.isFitData=this.options("layout").startsWith("fitData")}vertScrollListen(){this.subscribe("scroll-vertical",this.clearVisRowCache.bind(this)),this.subscribe("data-refreshed",this.clearVisRowCache.bind(this))}clearVisRowCache(){this.visibleRows=null}renderColumns(e,t){this.dataChange()}scrollColumns(e,t){if(this.scrollLeft!=e)this.scrollLeft=e,this.scroll(e-(this.vDomScrollPosLeft+this.windowBuffer))}calcWindowBuffer(){var e=this.elementVertical.clientWidth;this.table.columnManager.columnsByIndex.forEach((t)=>{if(t.visible){var i=t.getWidth();if(i>e)e=i}}),this.windowBuffer=e*2}rerenderColumns(e,t){var i={cols:this.columns,leftCol:this.leftCol,rightCol:this.rightCol},s=0;if(e&&!this.initialized)return;if(this.clear(),this.calcWindowBuffer(),this.scrollLeft=this.elementVertical.scrollLeft,this.vDomScrollPosLeft=this.scrollLeft-this.windowBuffer,this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,this.table.columnManager.columnsByIndex.forEach((r)=>{var o={},a;if(r.visible){if(!r.modules.frozen){if(a=r.getWidth(),o.leftPos=s,o.rightPos=s+a,o.width=a,this.isFitData)o.fitDataCheck=r.modules.vdomHoz?r.modules.vdomHoz.fitDataCheck:!0;if(s+a>this.vDomScrollPosLeft&&s<this.vDomScrollPosRight){if(this.leftCol==-1)this.leftCol=this.columns.length,this.vDomPadLeft=s;this.rightCol=this.columns.length}else if(this.leftCol!==-1)this.vDomPadRight+=a;this.columns.push(r),r.modules.vdomHoz=o,s+=a}}}),this.tableElement.style.paddingLeft=this.vDomPadLeft+"px",this.tableElement.style.paddingRight=this.vDomPadRight+"px",this.initialized=!0,!t){if(!e||this.reinitChanged(i))this.reinitializeRows()}this.elementVertical.scrollLeft=this.scrollLeft}renderRowCells(e){if(this.initialized)this.initializeRow(e);else{let t=document.createDocumentFragment();e.cells.forEach((i)=>{t.appendChild(i.getElement())}),e.element.appendChild(t),e.cells.forEach((i)=>{i.cellRendered()})}}rerenderRowCells(e,t){this.reinitializeRow(e,t)}reinitializeColumnWidths(e){for(let t=this.leftCol;t<=this.rightCol;t++){let i=this.columns[t];if(i)i.reinitializeWidth()}}deinitialize(){this.initialized=!1}clear(){this.columns=[],this.leftCol=-1,this.rightCol=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0}dataChange(){var e=!1,t,i;if(this.isFitData){if(this.table.columnManager.columnsByIndex.forEach((s)=>{if(!s.definition.width&&s.visible)e=!0}),e&&this.table.rowManager.getDisplayRows().length){if(this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,t=this.chain("rows-sample",[1],[],()=>this.table.rowManager.getDisplayRows())[0],t){i=t.getElement(),t.generateCells(),this.tableElement.appendChild(i);for(let s=0;s<t.cells.length;s++){let r=t.cells[s];i.appendChild(r.getElement()),r.column.reinitializeWidth()}i.parentNode.removeChild(i),this.rerenderColumns(!1,!0)}}}else if(this.options("layout")==="fitColumns")this.layoutRefresh(),this.rerenderColumns(!1,!0)}reinitChanged(e){var t=!0;if(e.cols.length!==this.columns.length||e.leftCol!==this.leftCol||e.rightCol!==this.rightCol)return!0;return e.cols.forEach((i,s)=>{if(i!==this.columns[s])t=!1}),!t}reinitializeRows(){var e=this.getVisibleRows(),t=this.table.rowManager.getRows().filter((i)=>!e.includes(i));e.forEach((i)=>{this.reinitializeRow(i,!0)}),t.forEach((i)=>{i.deinitialize()})}getVisibleRows(){if(!this.visibleRows)this.visibleRows=this.table.rowManager.getVisibleRows();return this.visibleRows}scroll(e){if(this.vDomScrollPosLeft+=e,this.vDomScrollPosRight+=e,Math.abs(e)>this.windowBuffer/2)this.rerenderColumns();else if(e>0)this.addColRight(),this.removeColLeft();else this.addColLeft(),this.removeColRight()}colPositionAdjust(e,t,i){for(let s=e;s<t;s++){let r=this.columns[s];r.modules.vdomHoz.leftPos+=i,r.modules.vdomHoz.rightPos+=i}}addColRight(){var e=!1,t=!0;while(t){let i=this.columns[this.rightCol+1];if(i)if(i.modules.vdomHoz.leftPos<=this.vDomScrollPosRight)if(e=!0,this.getVisibleRows().forEach((s)=>{if(s.type!=="group"){var r=s.getCell(i);s.getElement().insertBefore(r.getElement(),s.getCell(this.columns[this.rightCol]).getElement().nextSibling),r.cellRendered()}}),this.fitDataColActualWidthCheck(i),this.rightCol++,this.getVisibleRows().forEach((s)=>{if(s.type!=="group")s.modules.vdomHoz.rightCol=this.rightCol}),this.rightCol>=this.columns.length-1)this.vDomPadRight=0;else this.vDomPadRight-=i.getWidth();else t=!1;else t=!1}if(e)this.tableElement.style.paddingRight=this.vDomPadRight+"px"}addColLeft(){var e=!1,t=!0;while(t){let i=this.columns[this.leftCol-1];if(i)if(i.modules.vdomHoz.rightPos>=this.vDomScrollPosLeft){if(e=!0,this.getVisibleRows().forEach((r)=>{if(r.type!=="group"){var o=r.getCell(i);r.getElement().insertBefore(o.getElement(),r.getCell(this.columns[this.leftCol]).getElement()),o.cellRendered()}}),this.leftCol--,this.getVisibleRows().forEach((r)=>{if(r.type!=="group")r.modules.vdomHoz.leftCol=this.leftCol}),this.leftCol<=0)this.vDomPadLeft=0;else this.vDomPadLeft-=i.getWidth();let s=this.fitDataColActualWidthCheck(i);if(s)this.scrollLeft=this.elementVertical.scrollLeft=this.elementVertical.scrollLeft+s,this.vDomPadRight-=s}else t=!1;else t=!1}if(e)this.tableElement.style.paddingLeft=this.vDomPadLeft+"px"}removeColRight(){var e=!1,t=!0;while(t){let i=this.columns[this.rightCol];if(i)if(i.modules.vdomHoz.leftPos>this.vDomScrollPosRight)e=!0,this.getVisibleRows().forEach((s)=>{if(s.type!=="group"){var r=s.getCell(i);try{s.getElement().removeChild(r.getElement())}catch(o){console.warn("Could not removeColRight",o.message)}}}),this.vDomPadRight+=i.getWidth(),this.rightCol--,this.getVisibleRows().forEach((s)=>{if(s.type!=="group")s.modules.vdomHoz.rightCol=this.rightCol});else t=!1;else t=!1}if(e)this.tableElement.style.paddingRight=this.vDomPadRight+"px"}removeColLeft(){var e=!1,t=!0;while(t){let i=this.columns[this.leftCol];if(i)if(i.modules.vdomHoz.rightPos<this.vDomScrollPosLeft)e=!0,this.getVisibleRows().forEach((s)=>{if(s.type!=="group"){var r=s.getCell(i);try{s.getElement().removeChild(r.getElement())}catch(o){console.warn("Could not removeColLeft",o.message)}}}),this.vDomPadLeft+=i.getWidth(),this.leftCol++,this.getVisibleRows().forEach((s)=>{if(s.type!=="group")s.modules.vdomHoz.leftCol=this.leftCol});else t=!1;else t=!1}if(e)this.tableElement.style.paddingLeft=this.vDomPadLeft+"px"}fitDataColActualWidthCheck(e){var t,i;if(e.modules.vdomHoz.fitDataCheck){if(e.reinitializeWidth(),t=e.getWidth(),i=t-e.modules.vdomHoz.width,i)e.modules.vdomHoz.rightPos+=i,e.modules.vdomHoz.width=t,this.colPositionAdjust(this.columns.indexOf(e)+1,this.columns.length,i);e.modules.vdomHoz.fitDataCheck=!1}return i}initializeRow(e){if(e.type!=="group"){if(e.modules.vdomHoz={leftCol:this.leftCol,rightCol:this.rightCol},this.table.modules.frozenColumns)this.table.modules.frozenColumns.leftColumns.forEach((t)=>{this.appendCell(e,t)});for(let t=this.leftCol;t<=this.rightCol;t++)this.appendCell(e,this.columns[t]);if(this.table.modules.frozenColumns)this.table.modules.frozenColumns.rightColumns.forEach((t)=>{this.appendCell(e,t)})}}appendCell(e,t){if(t&&t.visible){let i=e.getCell(t);e.getElement().appendChild(i.getElement()),i.cellRendered()}}reinitializeRow(e,t){if(e.type!=="group"){if(t||!e.modules.vdomHoz||e.modules.vdomHoz.leftCol!==this.leftCol||e.modules.vdomHoz.rightCol!==this.rightCol){var i=e.getElement();while(i.firstChild)i.removeChild(i.firstChild);this.initializeRow(e)}}}}class De extends H{constructor(e){super(e);this.blockHozScrollEvent=!1,this.headersElement=null,this.contentsElement=null,this.rowHeader=null,this.element=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.optionsList=new be(this.table,"column definition",Te),this.redrawBlock=!1,this.redrawBlockUpdate=null,this.renderer=null}initialize(){this.initializeRenderer(),this.headersElement=this.createHeadersElement(),this.contentsElement=this.createHeaderContentsElement(),this.element=this.createHeaderElement(),this.contentsElement.insertBefore(this.headersElement,this.contentsElement.firstChild),this.element.insertBefore(this.contentsElement,this.element.firstChild),this.initializeScrollWheelWatcher(),this.subscribe("scroll-horizontal",this.scrollHorizontal.bind(this)),this.subscribe("scrollbar-vertical",this.padVerticalScrollbar.bind(this))}padVerticalScrollbar(e){if(this.table.rtl)this.headersElement.style.marginLeft=e+"px";else this.headersElement.style.marginRight=e+"px"}initializeRenderer(){var e,t={virtual:Se,basic:Le};if(typeof this.table.options.renderHorizontal==="string")e=t[this.table.options.renderHorizontal];else e=this.table.options.renderHorizontal;if(e)this.renderer=new e(this.table,this.element,this.tableElement),this.renderer.initialize();else console.error("Unable to find matching renderer:",this.table.options.renderHorizontal)}createHeadersElement(){var e=document.createElement("div");return e.classList.add("tabulator-headers"),e.setAttribute("role","row"),e}createHeaderContentsElement(){var e=document.createElement("div");return e.classList.add("tabulator-header-contents"),e}createHeaderElement(){var e=document.createElement("div");if(e.classList.add("tabulator-header"),e.setAttribute("role","rowgroup"),!this.table.options.headerVisible)e.classList.add("tabulator-header-hidden");return e}getElement(){return this.element}getContentsElement(){return this.contentsElement}getHeadersElement(){return this.headersElement}scrollHorizontal(e){this.contentsElement.scrollLeft=e,this.scrollLeft=e,this.renderer.scrollColumns(e)}initializeScrollWheelWatcher(){this.contentsElement.addEventListener("wheel",(e)=>{var t;if(e.deltaX)t=this.contentsElement.scrollLeft+e.deltaX,this.table.rowManager.scrollHorizontal(t),this.table.columnManager.scrollHorizontal(t)})}generateColumnsFromRowData(e){var t=[],i={},s=this.table.options.autoColumns==="full"?e:[e[0]],r=this.table.options.autoColumnsDefinitions;if(e&&e.length){if(s.forEach((o)=>{Object.keys(o).forEach((a,l)=>{let h=o[a],d;if(!i[a])d={field:a,title:a,sorter:this.calculateSorterFromValue(h)},t.splice(l,0,d),i[a]=typeof h>"u"?d:!0;else if(i[a]!==!0){if(typeof h<"u")i[a].sorter=this.calculateSorterFromValue(h),i[a]=!0}})}),r)switch(typeof r){case"function":this.table.options.columns=r.call(this.table,t);break;case"object":if(Array.isArray(r))t.forEach((o)=>{var a=r.find((l)=>l.field===o.field);if(a)Object.assign(o,a)});else t.forEach((o)=>{if(r[o.field])Object.assign(o,r[o.field])});this.table.options.columns=t;break}else this.table.options.columns=t;this.setColumns(this.table.options.columns)}}calculateSorterFromValue(e){var t;switch(typeof e){case"undefined":t="string";break;case"boolean":t="boolean";break;case"number":t="number";break;case"object":if(Array.isArray(e))t="array";else t="string";break;default:if(!isNaN(Number(e))&&e!=="")t="number";else if(e.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i))t="alphanum";else t="string";break}return t}setColumns(e,t){while(this.headersElement.firstChild)this.headersElement.removeChild(this.headersElement.firstChild);if(this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.dispatch("columns-loading"),this.dispatchExternal("columnsLoading"),this.table.options.rowHeader)this.rowHeader=new V(this.table.options.rowHeader===!0?{}:this.table.options.rowHeader,this,!0),this.columns.push(this.rowHeader),this.headersElement.appendChild(this.rowHeader.getElement()),this.rowHeader.columnRendered();if(e.forEach((i,s)=>{this._addColumn(i)}),this._reIndexColumns(),this.dispatch("columns-loaded"),this.subscribedExternal("columnsLoaded"))this.dispatchExternal("columnsLoaded",this.getComponents());this.rerenderColumns(!1,!0),this.redraw(!0)}_addColumn(e,t,i){var s=new V(e,this),r=s.getElement(),o=i?this.findColumnIndex(i):i;if(t&&this.rowHeader&&(!i||i===this.rowHeader))t=!1,i=this.rowHeader,o=0;if(i&&o>-1){var a=i.getTopColumn(),l=this.columns.indexOf(a),h=a.getElement();if(t)this.columns.splice(l,0,s),h.parentNode.insertBefore(r,h);else this.columns.splice(l+1,0,s),h.parentNode.insertBefore(r,h.nextSibling)}else if(t)this.columns.unshift(s),this.headersElement.insertBefore(s.getElement(),this.headersElement.firstChild);else this.columns.push(s),this.headersElement.appendChild(s.getElement());return s.columnRendered(),s}registerColumnField(e){if(e.definition.field)this.columnsByField[e.definition.field]=e}registerColumnPosition(e){this.columnsByIndex.push(e)}_reIndexColumns(){this.columnsByIndex=[],this.columns.forEach(function(e){e.reRegisterPosition()})}verticalAlignHeaders(){var e=0;if(!this.redrawBlock)this.headersElement.style.height="",this.columns.forEach((t)=>{t.clearVerticalAlign()}),this.columns.forEach((t)=>{var i=t.getHeight();if(i>e)e=i}),this.headersElement.style.height=e+"px",this.columns.forEach((t)=>{t.verticalAlign(this.table.options.columnHeaderVertAlign,e)}),this.table.rowManager.adjustTableSize()}findColumn(e){var t;if(typeof e=="object"){if(e instanceof V)return e;else if(e instanceof ae)return e._getSelf()||!1;else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)return t=[],this.columns.forEach((s)=>{t.push(s),t=t.concat(s.getColumns(!0))}),t.find((s)=>s.element===e)||!1}else return this.columnsByField[e]||!1;return!1}getColumnByField(e){return this.columnsByField[e]}getColumnsByFieldRoot(e){var t=[];return Object.keys(this.columnsByField).forEach((i)=>{var s=this.table.options.nestedFieldSeparator?i.split(this.table.options.nestedFieldSeparator)[0]:i;if(s===e)t.push(this.columnsByField[i])}),t}getColumnByIndex(e){return this.columnsByIndex[e]}getFirstVisibleColumn(){var e=this.columnsByIndex.findIndex((t)=>t.visible);return e>-1?this.columnsByIndex[e]:!1}getVisibleColumnsByIndex(){return this.columnsByIndex.filter((e)=>e.visible)}getColumns(){return this.columns}findColumnIndex(e){return this.columnsByIndex.findIndex((t)=>e===t)}getRealColumns(){return this.columnsByIndex}traverse(e){this.columnsByIndex.forEach((t,i)=>{e(t,i)})}getDefinitions(e){var t=[];return this.columnsByIndex.forEach((i)=>{if(!e||e&&i.visible)t.push(i.getDefinition())}),t}getDefinitionTree(){var e=[];return this.columns.forEach((t)=>{e.push(t.getDefinition(!0))}),e}getComponents(e){var t=[],i=e?this.columns:this.columnsByIndex;return i.forEach((s)=>{t.push(s.getComponent())}),t}getWidth(){var e=0;return this.columnsByIndex.forEach((t)=>{if(t.visible)e+=t.getWidth()}),e}moveColumn(e,t,i){if(t.element.parentNode.insertBefore(e.element,t.element),i)t.element.parentNode.insertBefore(t.element,e.element);this.moveColumnActual(e,t,i),this.verticalAlignHeaders(),this.table.rowManager.reinitialize()}moveColumnActual(e,t,i){if(e.parent.isGroup)this._moveColumnInArray(e.parent.columns,e,t,i);else this._moveColumnInArray(this.columns,e,t,i);if(this._moveColumnInArray(this.columnsByIndex,e,t,i,!0),this.rerenderColumns(!0),this.dispatch("column-moved",e,t,i),this.subscribedExternal("columnMoved"))this.dispatchExternal("columnMoved",e.getComponent(),this.table.columnManager.getComponents())}_moveColumnInArray(e,t,i,s,r){var o=e.indexOf(t),a,l=[];if(o>-1){if(e.splice(o,1),a=e.indexOf(i),a>-1){if(s)a=a+1}else a=o;if(e.splice(a,0,t),r)l=this.chain("column-moving-rows",[t,i,s],null,[])||[],l=l.concat(this.table.rowManager.rows),l.forEach(function(h){if(h.cells.length){var d=h.cells.splice(o,1)[0];h.cells.splice(a,0,d)}})}}scrollToColumn(e,t,i){var s=0,r=e.getLeftOffset(),o=0,a=e.getElement();return new Promise((l,h)=>{if(typeof t>"u")t=this.table.options.scrollToColumnPosition;if(typeof i>"u")i=this.table.options.scrollToColumnIfVisible;if(e.visible){switch(t){case"middle":case"center":o=-this.element.clientWidth/2;break;case"right":o=a.clientWidth-this.headersElement.clientWidth;break}if(!i){if(r>0&&r+a.offsetWidth<this.element.clientWidth)return!1}s=r+o,s=Math.max(Math.min(s,this.table.rowManager.element.scrollWidth-this.table.rowManager.element.clientWidth),0),this.table.rowManager.scrollHorizontal(s),this.scrollHorizontal(s),l()}else console.warn("Scroll Error - Column not visible"),h("Scroll Error - Column not visible")})}generateCells(e){var t=[];return this.columnsByIndex.forEach((i)=>{t.push(i.generateCell(e))}),t}getFlexBaseWidth(){var e=this.table.element.clientWidth,t=0;if(this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight)e-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth;return this.columnsByIndex.forEach(function(i){var s,r,o;if(i.visible){if(s=i.definition.width||0,r=parseInt(i.minWidth),typeof s=="string")if(s.indexOf("%")>-1)o=e/100*parseInt(s);else o=parseInt(s);else o=s;t+=o>r?o:r}}),t}addColumn(e,t,i){return new Promise((s,r)=>{var o=this._addColumn(e,t,i);if(this._reIndexColumns(),this.dispatch("column-add",e,t,i),this.layoutMode()!="fitColumns")o.reinitializeWidth();this.redraw(!0),this.table.rowManager.reinitialize(),this.rerenderColumns(),s(o)})}deregisterColumn(e){var t=e.getField(),i;if(t)delete this.columnsByField[t];if(i=this.columnsByIndex.indexOf(e),i>-1)this.columnsByIndex.splice(i,1);if(i=this.columns.indexOf(e),i>-1)this.columns.splice(i,1);this.verticalAlignHeaders(),this.redraw()}rerenderColumns(e,t){if(!this.redrawBlock)this.renderer.rerenderColumns(e,t);else if(e===!1||e===!0&&this.redrawBlockUpdate===null)this.redrawBlockUpdate=e}blockRedraw(){this.redrawBlock=!0,this.redrawBlockUpdate=null}restoreRedraw(){this.redrawBlock=!1,this.verticalAlignHeaders(),this.renderer.rerenderColumns(this.redrawBlockUpdate)}redraw(e){if(L.elVisible(this.element))this.verticalAlignHeaders();if(e)this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize();if(!this.confirm("table-redrawing",e))this.layoutRefresh(e);this.dispatch("table-redraw",e),this.table.footerManager.redraw()}}class ze extends q{constructor(e){super(e);this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0}clearRows(){var e=this.tableElement;while(e.firstChild)e.removeChild(e.firstChild);e.scrollTop=0,e.scrollLeft=0,e.style.minWidth="",e.style.minHeight="",e.style.display="",e.style.visibility=""}renderRows(){var e=this.tableElement,t=!0,i=document.createDocumentFragment(),s=this.rows();if(s.forEach((r,o)=>{if(this.styleRow(r,o),r.initialize(!1,!0),r.type!=="group")t=!1;i.appendChild(r.getElement())}),e.appendChild(i),s.forEach((r)=>{if(r.rendered(),!r.heightInitialized)r.calcHeight(!0)}),s.forEach((r)=>{if(!r.heightInitialized)r.setCellHeight()}),t)e.style.minWidth=this.table.columnManager.getWidth()+"px";else e.style.minWidth=""}rerenderRows(e){let t=this.elementVertical.scrollTop;if(this.clearRows(),e)e();if(this.renderRows(),!this.rows().length)this.table.rowManager.tableEmpty();else this.elementVertical.scrollTop=t}scrollToRowNearestTop(e){var t=L.elOffset(e.getElement()).top;return!(Math.abs(this.elementVertical.scrollTop-t)>Math.abs(this.elementVertical.scrollTop+this.elementVertical.clientHeight-t))}scrollToRow(e){var t=e.getElement();this.elementVertical.scrollTop=L.elOffset(t).top-L.elOffset(this.elementVertical).top+this.elementVertical.scrollTop}visibleRows(e){return this.rows()}}class He extends q{constructor(e){super(e);this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[]}clearRows(){var e=this.tableElement;while(e.firstChild)e.removeChild(e.firstChild);e.style.paddingTop="",e.style.paddingBottom="",e.style.minHeight="",e.style.display="",e.style.visibility="",this.elementVertical.scrollTop=0,this.elementVertical.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0}renderRows(){this._virtualRenderFill()}rerenderRows(e){var t=this.elementVertical.scrollTop,i=!1,s=!1,r=this.table.rowManager.scrollLeft,o=this.rows();for(var a=this.vDomTop;a<=this.vDomBottom;a++)if(o[a]){var l=t-o[a].getElement().offsetTop;if(s===!1||Math.abs(l)<s)s=l,i=a;else break}if(o.forEach((h)=>{h.deinitializeHeight()}),e)e();if(this.rows().length){if(i===!1)i=o.length?this.rows().length-1:0;this._virtualRenderFill(i,!0,s||0)}else this.clear(),this.table.rowManager.tableEmpty();this.scrollColumns(r)}scrollColumns(e){this.table.rowManager.scrollHorizontal(e)}scrollRows(e,t){var i=e-this.vDomScrollPosTop,s=e-this.vDomScrollPosBottom,r=this.vDomWindowBuffer*2,o=this.rows();if(this.scrollTop=e,-i>r||s>r){var a=this.table.rowManager.scrollLeft;this._virtualRenderFill(Math.floor(this.elementVertical.scrollTop/this.elementVertical.scrollHeight*o.length)),this.scrollColumns(a)}else if(t){if(i<0)this._addTopRow(o,-i);if(s<0)if(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer)this._removeBottomRow(o,-s);else this.vDomScrollPosBottom=this.scrollTop}else{if(s>=0)this._addBottomRow(o,s);if(i>=0)if(this.scrollTop>this.vDomWindowBuffer)this._removeTopRow(o,i);else this.vDomScrollPosTop=this.scrollTop}}resize(){this.vDomWindowBuffer=this.table.options.renderVerticalBuffer||this.elementVertical.clientHeight}scrollToRowNearestTop(e){var t=this.rows().indexOf(e);return!(Math.abs(this.vDomTop-t)>Math.abs(this.vDomBottom-t))}scrollToRow(e){var t=this.rows().indexOf(e);if(t>-1)this._virtualRenderFill(t,!0)}visibleRows(e){var t=this.elementVertical.scrollTop,i=this.elementVertical.clientHeight+t,s=!1,r=0,o=0,a=this.rows();if(e)r=this.vDomTop,o=this.vDomBottom;else for(var l=this.vDomTop;l<=this.vDomBottom;l++)if(a[l])if(!s)if(t-a[l].getElement().offsetTop>=0)r=l;else if(s=!0,i-a[l].getElement().offsetTop>=0)o=l;else break;else if(i-a[l].getElement().offsetTop>=0)o=l;else break;return a.slice(r,o+1)}_virtualRenderFill(e,t,i){var s=this.tableElement,r=this.elementVertical,o=0,a=0,l=0,h=0,d=0,u=0,c=this.rows(),f=c.length,p=0,m,b,v=[],w=0,x=0,S=this.table.rowManager.fixedHeight,k=this.elementVertical.clientHeight,A=this.table.options.rowHeight,B=!0;if(e=e||0,i=i||0,!e)this.clear();else{while(s.firstChild)s.removeChild(s.firstChild);if(h=(f-e+1)*this.vDomRowHeight,h<k){if(e-=Math.ceil((k-h)/this.vDomRowHeight),e<0)e=0}o=Math.min(Math.max(Math.floor(this.vDomWindowBuffer/this.vDomRowHeight),this.vDomWindowMinMarginRows),e),e-=o}if(f&&L.elVisible(this.elementVertical)){if(this.vDomTop=e,this.vDomBottom=e-1,S||this.table.options.maxHeight){if(A)x=k/A+this.vDomWindowBuffer/A;x=Math.max(this.vDomWindowMinTotalRows,Math.ceil(x))}else x=f;while((x==f||a<=k+this.vDomWindowBuffer||w<this.vDomWindowMinTotalRows)&&this.vDomBottom<f-1){v=[],b=document.createDocumentFragment(),u=0;while(u<x&&this.vDomBottom<f-1){if(p=this.vDomBottom+1,m=c[p],this.styleRow(m,p),m.initialize(!1,!0),!m.heightInitialized&&!this.table.options.rowHeight)m.clearCellHeight();b.appendChild(m.getElement()),v.push(m),this.vDomBottom++,u++}if(!v.length)break;s.appendChild(b),v.forEach((y)=>{y.rendered()});let C=[];if(v.forEach((y)=>{if(!y.heightInitialized||!y.getHeight())y.calcHeight(!0),C.push(y)}),C.forEach((y)=>{y.setCellHeight()}),v.forEach((y)=>{if(l=y.getHeight()||this.vDomRowHeight,w<o)d+=l;else a+=l;if(l>this.vDomWindowBuffer)this.vDomWindowBuffer=l*2;w++}),B=this.table.rowManager.adjustTableSize(!0),k=this.elementVertical.clientHeight,B&&(S||this.table.options.maxHeight))A=a/w,x=Math.max(this.vDomWindowMinTotalRows,Math.ceil(k/A+this.vDomWindowBuffer/A))}if(!e)this.vDomTopPad=0,this.vDomRowHeight=Math.floor((a+d)/w),this.vDomBottomPad=this.vDomRowHeight*(f-this.vDomBottom-1),this.vDomScrollHeight=d+a+this.vDomBottomPad-k;else this.vDomTopPad=!t?this.scrollTop-d:this.vDomRowHeight*this.vDomTop+i,this.vDomBottomPad=this.vDomBottom==f-1?0:Math.max(this.vDomScrollHeight-this.vDomTopPad-a-d,0);if(s.style.paddingTop=this.vDomTopPad+"px",s.style.paddingBottom=this.vDomBottomPad+"px",t)this.scrollTop=this.vDomTopPad+d+i-(this.elementVertical.scrollWidth>this.elementVertical.clientWidth?this.elementVertical.offsetHeight-k:0);if(this.scrollTop=Math.min(this.scrollTop,this.elementVertical.scrollHeight-k),this.elementVertical.scrollWidth>this.elementVertical.clientWidth&&t)this.scrollTop+=this.elementVertical.offsetHeight-k;this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,r.scrollTop=this.scrollTop,this.dispatch("render-virtual-fill")}}_addTopRow(e,t){var i=this.tableElement,s=[],r=0,o=this.vDomTop-1,a=0,l=!0;while(l)if(this.vDomTop){let h=e[o],d,u;if(h&&a<this.vDomMaxRenderChain)if(d=h.getHeight()||this.vDomRowHeight,u=h.initialized,t>=d){if(this.styleRow(h,o),i.insertBefore(h.getElement(),i.firstChild),!h.initialized||!h.heightInitialized)s.push(h);if(h.initialize(),!u){if(d=h.getElement().offsetHeight,d>this.vDomWindowBuffer)this.vDomWindowBuffer=d*2}t-=d,r+=d,this.vDomTop--,o--,a++}else l=!1;else l=!1}else l=!1;for(let h of s)h.clearCellHeight();if(this._quickNormalizeRowHeight(s),r){if(this.vDomTopPad-=r,this.vDomTopPad<0)this.vDomTopPad=o*this.vDomRowHeight;if(o<1)this.vDomTopPad=0;i.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=r}}_removeTopRow(e,t){var i=[],s=0,r=0,o=!0;while(o){let a=e[this.vDomTop],l;if(a&&r<this.vDomMaxRenderChain)if(l=a.getHeight()||this.vDomRowHeight,t>=l)this.vDomTop++,t-=l,s+=l,i.push(a),r++;else o=!1;else o=!1}for(let a of i){let l=a.getElement();if(l.parentNode)l.parentNode.removeChild(l)}if(s)this.vDomTopPad+=s,this.tableElement.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?s:s+this.vDomWindowBuffer}_addBottomRow(e,t){var i=this.tableElement,s=[],r=0,o=this.vDomBottom+1,a=0,l=!0;while(l){let h=e[o],d,u;if(h&&a<this.vDomMaxRenderChain)if(d=h.getHeight()||this.vDomRowHeight,u=h.initialized,t>=d){if(this.styleRow(h,o),i.appendChild(h.getElement()),!h.initialized||!h.heightInitialized)s.push(h);if(h.initialize(),!u){if(d=h.getElement().offsetHeight,d>this.vDomWindowBuffer)this.vDomWindowBuffer=d*2}t-=d,r+=d,this.vDomBottom++,o++,a++}else l=!1;else l=!1}for(let h of s)h.clearCellHeight();if(this._quickNormalizeRowHeight(s),r){if(this.vDomBottomPad-=r,this.vDomBottomPad<0||o==e.length-1)this.vDomBottomPad=0;i.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=r}}_removeBottomRow(e,t){var i=[],s=0,r=0,o=!0;while(o){let a=e[this.vDomBottom],l;if(a&&r<this.vDomMaxRenderChain)if(l=a.getHeight()||this.vDomRowHeight,t>=l)this.vDomBottom--,t-=l,s+=l,i.push(a),r++;else o=!1;else o=!1}for(let a of i){let l=a.getElement();if(l.parentNode)l.parentNode.removeChild(l)}if(s){if(this.vDomBottomPad+=s,this.vDomBottomPad<0)this.vDomBottomPad=0;this.tableElement.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=s}}_quickNormalizeRowHeight(e){for(let t of e)t.calcHeight();for(let t of e)t.setCellHeight()}}class Fe extends H{constructor(e){super(e);this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.placeholder=null,this.placeholderContents=null,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRowsPipeline=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRenderInPosition=!1,this.dataPipeline=[],this.displayPipeline=[],this.scrollbarWidth=0,this.renderer=null}createHolderElement(){var e=document.createElement("div");return e.classList.add("tabulator-tableholder"),e.setAttribute("tabindex",0),e}createTableElement(){var e=document.createElement("div");return e.classList.add("tabulator-table"),e.setAttribute("role","rowgroup"),e.setAttribute("id","tabulator-table-body-"+this.table.instanceId),e}initializePlaceholder(){var e=this.table.options.placeholder;if(typeof e==="function")e=e.call(this.table);if(e=this.chain("placeholder",[e],e,e)||e,e){let t=document.createElement("div");if(t.classList.add("tabulator-placeholder"),typeof e=="string"){let i=document.createElement("div");i.classList.add("tabulator-placeholder-contents"),i.innerHTML=e,t.appendChild(i),this.placeholderContents=i}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)t.appendChild(e),this.placeholderContents=e;else console.warn("Invalid placeholder provided, must be string or HTML Element",e),this.el=null;this.placeholder=t}}getElement(){return this.element}getTableElement(){return this.tableElement}initialize(){this.initializePlaceholder(),this.initializeRenderer(),this.element.appendChild(this.tableElement),this.firstRender=!0,this.element.addEventListener("scroll",()=>{var e=this.element.scrollLeft,t=this.scrollLeft>e,i=this.element.scrollTop,s=this.scrollTop>i;if(this.scrollLeft!=e)this.scrollLeft=e,this.dispatch("scroll-horizontal",e,t),this.dispatchExternal("scrollHorizontal",e,t),this._positionPlaceholder();if(this.scrollTop!=i)this.scrollTop=i,this.renderer.scrollRows(i,s),this.dispatch("scroll-vertical",i,s),this.dispatchExternal("scrollVertical",i,s)})}findRow(e){if(typeof e=="object"){if(e instanceof O)return e;else if(e instanceof le)return e._getSelf()||!1;else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)return this.rows.find((i)=>i.getElement()===e)||!1;else if(e===null)return!1}else if(typeof e>"u")return!1;else return this.rows.find((i)=>i.data[this.table.options.index]==e)||!1;return!1}getRowFromDataObject(e){var t=this.rows.find((i)=>i.data===e);return t||!1}getRowFromPosition(e){return this.getDisplayRows().find((t)=>t.type==="row"&&t.getPosition()===e&&t.isDisplayed())}scrollToRow(e,t,i){return this.renderer.scrollToRowPosition(e,t,i)}setData(e,t,i){return new Promise((s,r)=>{if(t&&this.getDisplayRows().length)if(this.table.options.pagination)this._setDataActual(e,!0);else this.reRenderInPosition(()=>{this._setDataActual(e)});else{if(this.table.options.autoColumns&&i&&this.table.initialized)this.table.columnManager.generateColumnsFromRowData(e);this.resetScroll(),this._setDataActual(e)}s()})}_setDataActual(e,t){if(this.dispatchExternal("dataProcessing",e),this._wipeElements(),Array.isArray(e))this.dispatch("data-processing",e),e.forEach((i,s)=>{if(i&&typeof i==="object"){var r=new O(i,this);this.rows.push(r)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",i)}),this.refreshActiveData(!1,!1,t),this.dispatch("data-processed",e),this.dispatchExternal("dataProcessed",e);else console.error(`Data Loading Error - Unable to process data due to invalid data type
|
|
8
8
|
Expecting: array
|
|
9
9
|
Received: `,typeof e,`
|
|
10
|
-
Data: `,e)}_wipeElements(){this.dispatch("rows-wipe"),this.destroy(),this.adjustTableSize(),this.dispatch("rows-wiped")}destroy(){this.rows.forEach((e)=>{e.wipe()}),this.rows=[],this.activeRows=[],this.activeRowsPipeline=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0}deleteRow(e,t){var i=this.rows.indexOf(e),s=this.activeRows.indexOf(e);if(s>-1)this.activeRows.splice(s,1);if(i>-1)this.rows.splice(i,1);if(this.setActiveRows(this.activeRows),this.displayRowIterator((r)=>{var o=r.indexOf(e);if(o>-1)r.splice(o,1)}),!t)this.reRenderInPosition();if(this.regenerateRowPositions(),this.dispatchExternal("rowDeleted",e.getComponent()),!this.displayRowsCount)this.tableEmpty();if(this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.getData())}addRow(e,t,i,s){var r=this.addRowActual(e,t,i,s);return r}addRows(e,t,i,s){var r=[];return new Promise((o,a)=>{if(t=this.findAddRowPos(t),!Array.isArray(e))e=[e];if(typeof i>"u"&&t||typeof i<"u"&&!t)e.reverse();if(e.forEach((l,h)=>{var d=this.addRow(l,t,i,!0);r.push(d),this.dispatch("row-added",d,l,t,i)}),this.refreshActiveData(s?"displayPipeline":!1,!1,!0),this.regenerateRowPositions(),this.displayRowsCount)this._clearPlaceholder();o(r)})}findAddRowPos(e){if(typeof e>"u")e=this.table.options.addRowPos;if(e==="pos")e=!0;if(e==="bottom")e=!1;return e}addRowActual(e,t,i,s){var r=e instanceof O?e:new O(e||{},this),o=this.findAddRowPos(t),a=-1,l,h;if(!i)h=this.chain("row-adding-position",[r,o],null,{index:i,top:o}),i=h.index,o=h.top;if(typeof i<"u")i=this.findRow(i);if(i=this.chain("row-adding-index",[r,i,o],null,i),i)a=this.rows.indexOf(i);if(i&&a>-1){if(l=this.activeRows.indexOf(i),this.displayRowIterator(function(d){var u=d.indexOf(i);if(u>-1)d.splice(o?u:u+1,0,r)}),l>-1)this.activeRows.splice(o?l:l+1,0,r);this.rows.splice(o?a:a+1,0,r)}else if(o)this.displayRowIterator(function(d){d.unshift(r)}),this.activeRows.unshift(r),this.rows.unshift(r);else this.displayRowIterator(function(d){d.push(r)}),this.activeRows.push(r),this.rows.push(r);if(this.setActiveRows(this.activeRows),this.dispatchExternal("rowAdded",r.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData());if(!s)this.reRenderInPosition();return r}moveRow(e,t,i){this.dispatch("row-move",e,t,i),this.moveRowActual(e,t,i),this.regenerateRowPositions(),this.dispatch("row-moved",e,t,i),this.dispatchExternal("rowMoved",e.getComponent())}moveRowActual(e,t,i){this.moveRowInArray(this.rows,e,t,i),this.moveRowInArray(this.activeRows,e,t,i),this.displayRowIterator((s)=>{this.moveRowInArray(s,e,t,i)}),this.dispatch("row-moving",e,t,i)}moveRowInArray(e,t,i,s){var r,o,a,l;if(t!==i){if(r=e.indexOf(t),r>-1)if(e.splice(r,1),o=e.indexOf(i),o>-1)if(s)e.splice(o+1,0,t);else e.splice(o,0,t);else e.splice(r,0,t);if(e===this.getDisplayRows()){a=r<o?r:o,l=o>r?o:r+1;for(let h=a;h<=l;h++)if(e[h])this.styleRow(e[h],h)}}}clearData(){this.setData([])}getRowIndex(e){return this.findRowIndex(e,this.rows)}getDisplayRowIndex(e){var t=this.getDisplayRows().indexOf(e);return t>-1?t:!1}nextDisplayRow(e,t){var i=this.getDisplayRowIndex(e),s=!1;if(i!==!1&&i<this.displayRowsCount-1)s=this.getDisplayRows()[i+1];if(s&&(!(s instanceof O)||s.type!="row"))return this.nextDisplayRow(s,t);return s}prevDisplayRow(e,t){var i=this.getDisplayRowIndex(e),s=!1;if(i)s=this.getDisplayRows()[i-1];if(t&&s&&(!(s instanceof O)||s.type!="row"))return this.prevDisplayRow(s,t);return s}findRowIndex(e,t){var i;if(e=this.findRow(e),e){if(i=t.indexOf(e),i>-1)return i}return!1}getData(e,t){var i=[],s=this.getRows(e);return s.forEach(function(r){if(r.type=="row")i.push(r.getData(t||"data"))}),i}getComponents(e){var t=[],i=this.getRows(e);return i.forEach(function(s){t.push(s.getComponent())}),t}getDataCount(e){var t=this.getRows(e);return t.length}scrollHorizontal(e){this.scrollLeft=e,this.element.scrollLeft=e,this.dispatch("scroll-horizontal",e)}registerDataPipelineHandler(e,t){if(typeof t<"u")this.dataPipeline.push({handler:e,priority:t}),this.dataPipeline.sort((i,s)=>i.priority-s.priority);else console.error("Data pipeline handlers must have a priority in order to be registered")}registerDisplayPipelineHandler(e,t){if(typeof t<"u")this.displayPipeline.push({handler:e,priority:t}),this.displayPipeline.sort((i,s)=>i.priority-s.priority);else console.error("Display pipeline handlers must have a priority in order to be registered")}refreshActiveData(e,t,i){var s=this.table,r="",o=0,a=["all","dataPipeline","display","displayPipeline","end"];if(!this.table.destroyed){if(typeof e==="function")if(o=this.dataPipeline.findIndex((l)=>l.handler===e),o>-1){if(r="dataPipeline",t)if(o==this.dataPipeline.length-1)r="display";else o++}else if(o=this.displayPipeline.findIndex((l)=>l.handler===e),o>-1){if(r="displayPipeline",t)if(o==this.displayPipeline.length-1)r="end";else o++}else{console.error("Unable to refresh data, invalid handler provided",e);return}else r=e||"all",o=0;if(this.redrawBlock){if(!this.redrawBlockRestoreConfig||this.redrawBlockRestoreConfig&&(this.redrawBlockRestoreConfig.stage===r&&o<this.redrawBlockRestoreConfig.index||a.indexOf(r)<a.indexOf(this.redrawBlockRestoreConfig.stage)))this.redrawBlockRestoreConfig={handler:e,skipStage:t,renderInPosition:i,stage:r,index:o};return}else{if(M.elVisible(this.element))if(i)this.reRenderInPosition(this.refreshPipelines.bind(this,e,r,o,i));else{if(this.refreshPipelines(e,r,o,i),!e)this.table.columnManager.renderer.renderColumns();if(this.renderTable(),s.options.layoutColumnsOnNewData)this.table.columnManager.redraw(!0)}else this.refreshPipelines(e,r,o,i);this.dispatch("data-refreshed")}}}refreshPipelines(e,t,i,s){if(this.dispatch("data-refreshing"),!e||!this.activeRowsPipeline[0])this.activeRowsPipeline[0]=this.rows.slice(0);switch(t){case"all":case"dataPipeline":for(let r=i;r<this.dataPipeline.length;r++){let o=this.dataPipeline[r].handler(this.activeRowsPipeline[r].slice(0));this.activeRowsPipeline[r+1]=o||this.activeRowsPipeline[r].slice(0)}this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);case"display":i=0,this.resetDisplayRows();case"displayPipeline":for(let r=i;r<this.displayPipeline.length;r++){let o=this.displayPipeline[r].handler((r?this.getDisplayRows(r-1):this.activeRows).slice(0),s);this.setDisplayRows(o||this.getDisplayRows(r-1).slice(0),r)}case"end":this.regenerateRowPositions()}if(this.getDisplayRows().length)this._clearPlaceholder()}regenerateRowPositions(){var e=this.getDisplayRows(),t=1;e.forEach((i)=>{if(i.type==="row")i.setPosition(t),t++})}setActiveRows(e){this.activeRows=e.slice(),this.activeRowsCount=this.activeRows.length}resetDisplayRows(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length}setDisplayRows(e,t){if(this.displayRows[t]=e,t==this.displayRows.length-1)this.displayRowsCount=this.displayRows[this.displayRows.length-1].length}getDisplayRows(e){if(typeof e>"u")return this.displayRows.length?this.displayRows[this.displayRows.length-1]:[];else return this.displayRows[e]||[]}getVisibleRows(e,t){var i=Object.assign([],this.renderer.visibleRows(!t));if(e)i=this.chain("rows-visible",[t],i,i);return i}displayRowIterator(e){this.activeRowsPipeline.forEach(e),this.displayRows.forEach(e),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length}getRows(e){var t=[];switch(e){case"active":t=this.activeRows;break;case"display":t=this.table.rowManager.getDisplayRows();break;case"visible":t=this.getVisibleRows(!1,!0);break;default:t=this.chain("rows-retrieve",e,null,this.rows)||this.rows}return t}reRenderInPosition(e){if(this.redrawBlock)if(e)e();else this.redrawBlockRenderInPosition=!0;else{if(this.dispatchExternal("renderStarted"),this.renderer.rerenderRows(e),!this.fixedHeight)this.adjustTableSize();this.scrollBarCheck(),this.dispatchExternal("renderComplete")}}scrollBarCheck(){var e=0;if(this.element.scrollHeight>this.element.clientHeight)e=this.element.offsetWidth-this.element.clientWidth;if(e!==this.scrollbarWidth)this.scrollbarWidth=e,this.dispatch("scrollbar-vertical",e)}initializeRenderer(){var e,t={virtual:ze,basic:De};if(typeof this.table.options.renderVertical==="string")e=t[this.table.options.renderVertical];else e=this.table.options.renderVertical;if(e)if(this.renderMode=this.table.options.renderVertical,this.renderer=new e(this.table,this.element,this.tableElement),this.renderer.initialize(),(this.table.element.clientHeight||this.table.options.height)&&!(this.table.options.minHeight&&this.table.options.maxHeight))this.fixedHeight=!0;else this.fixedHeight=!1;else console.error("Unable to find matching renderer:",this.table.options.renderVertical)}getRenderMode(){return this.renderMode}renderTable(){if(this.dispatchExternal("renderStarted"),this.element.scrollTop=0,this._clearTable(),this.displayRowsCount){if(this.renderer.renderRows(),this.firstRender){if(this.firstRender=!1,!this.fixedHeight)this.adjustTableSize();this.layoutRefresh(!0)}}else this.renderEmptyScroll();if(!this.fixedHeight)this.adjustTableSize();if(this.dispatch("table-layout"),!this.displayRowsCount)this._showPlaceholder();this.scrollBarCheck(),this.dispatchExternal("renderComplete")}renderEmptyScroll(){if(this.placeholder)this.tableElement.style.display="none";else this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px"}_clearTable(){this._clearPlaceholder(),this.scrollTop=0,this.scrollLeft=0,this.renderer.clearRows()}tableEmpty(){this.renderEmptyScroll(),this._showPlaceholder()}checkPlaceholder(){if(this.displayRowsCount)this._clearPlaceholder();else this.tableEmpty()}_showPlaceholder(){if(this.placeholder){if(this.placeholder&&this.placeholder.parentNode)this.placeholder.parentNode.removeChild(this.placeholder);this.initializePlaceholder(),this.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.placeholder),this._positionPlaceholder(),this.adjustTableSize()}}_clearPlaceholder(){if(this.placeholder&&this.placeholder.parentNode)this.placeholder.parentNode.removeChild(this.placeholder);this.tableElement.style.minWidth="",this.tableElement.style.display=""}_positionPlaceholder(){if(this.placeholder&&this.placeholder.parentNode)this.placeholder.style.width=this.table.columnManager.getWidth()+"px",this.placeholderContents.style.width=this.table.rowManager.element.clientWidth+"px",this.placeholderContents.style.marginLeft=this.scrollLeft+"px"}styleRow(e,t){var i=e.getElement();if(t%2)i.classList.add("tabulator-row-even"),i.classList.remove("tabulator-row-odd");else i.classList.add("tabulator-row-odd"),i.classList.remove("tabulator-row-even")}normalizeHeight(e){this.activeRows.forEach(function(t){t.normalizeHeight(e)})}adjustTableSize(e){let t=this.element.clientHeight,i,s=!1;if(this.renderer.verticalFillMode==="fill"){let r=Math.floor(this.table.columnManager.getElement().getBoundingClientRect().height+(this.table.footerManager&&this.table.footerManager.active&&!this.table.footerManager.external?this.table.footerManager.getElement().getBoundingClientRect().height:0));if(this.fixedHeight){i=isNaN(this.table.options.minHeight)?this.table.options.minHeight:this.table.options.minHeight+"px";let o="calc(100% - "+r+"px)";this.element.style.minHeight=i||"calc(100% - "+r+"px)",this.element.style.height=o,this.element.style.maxHeight=o}else this.element.style.height="",this.element.style.height=Math.max(this.table.element.clientHeight-r,0)+"px",this.element.scrollTop=this.scrollTop;if(this.renderer.resize(),!this.fixedHeight&&t!=this.element.clientHeight){if(s=!0,!e&&!this.redrawing){if(this.redrawing=!0,this.subscribed("table-resize"))this.dispatch("table-resize");else this.redraw();this.redrawing=!1}}this.scrollBarCheck()}return this._positionPlaceholder(),s}reinitialize(){this.rows.forEach(function(e){e.reinitialize(!0)})}blockRedraw(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1}restoreRedraw(){if(this.redrawBlock=!1,this.redrawBlockRestoreConfig)this.refreshActiveData(this.redrawBlockRestoreConfig.handler,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1;else if(this.redrawBlockRenderInPosition)this.reRenderInPosition();this.redrawBlockRenderInPosition=!1}redraw(e){if(this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,!e)this.reRenderInPosition(),this.scrollHorizontal(this.scrollLeft);else this.renderTable()}resetScroll(){if(this.element.scrollLeft=0,this.element.scrollTop=0,this.table.browser==="ie"){var e=document.createEvent("Event");e.initEvent("scroll",!1,!0),this.element.dispatchEvent(e)}else this.element.dispatchEvent(new Event("scroll"))}}class Ae extends H{constructor(e){super(e);this.active=!1,this.element=this.createElement(),this.containerElement=this.createContainerElement(),this.external=!1}initialize(){this.initializeElement()}createElement(){var e=document.createElement("div");return e.classList.add("tabulator-footer"),e}createContainerElement(){var e=document.createElement("div");return e.classList.add("tabulator-footer-contents"),this.element.appendChild(e),e}initializeElement(){if(this.table.options.footerElement)switch(typeof this.table.options.footerElement){case"string":if(this.table.options.footerElement[0]==="<")this.containerElement.innerHTML=this.table.options.footerElement;else this.external=!0,this.containerElement=document.querySelector(this.table.options.footerElement);break;default:this.element=this.table.options.footerElement;break}}getElement(){return this.element}append(e){this.activate(),this.containerElement.appendChild(e),this.table.rowManager.adjustTableSize()}prepend(e){this.activate(),this.element.insertBefore(e,this.element.firstChild),this.table.rowManager.adjustTableSize()}remove(e){e.parentNode.removeChild(e),this.deactivate()}deactivate(e){if(!this.element.firstChild||e){if(!this.external)this.element.parentNode.removeChild(this.element);this.active=!1}}activate(){if(!this.active){if(this.active=!0,!this.external)this.table.element.appendChild(this.getElement()),this.table.element.style.display=""}}redraw(){this.dispatch("footer-redraw")}}class _e extends H{constructor(e){super(e);this.el=null,this.abortClasses=["tabulator-headers","tabulator-table"],this.previousTargets={},this.listeners=["click","dblclick","contextmenu","mouseenter","mouseleave","mouseover","mouseout","mousemove","mouseup","mousedown","touchstart","touchend"],this.componentMap={"tabulator-cell":"cell","tabulator-row":"row","tabulator-group":"group","tabulator-col":"column"},this.pseudoTrackers={row:{subscriber:null,target:null},cell:{subscriber:null,target:null},group:{subscriber:null,target:null},column:{subscriber:null,target:null}},this.pseudoTracking=!1}initialize(){this.el=this.table.element,this.buildListenerMap(),this.bindSubscriptionWatchers()}buildListenerMap(){var e={};this.listeners.forEach((t)=>{e[t]={handler:null,components:[]}}),this.listeners=e}bindPseudoEvents(){Object.keys(this.pseudoTrackers).forEach((e)=>{this.pseudoTrackers[e].subscriber=this.pseudoMouseEnter.bind(this,e),this.subscribe(e+"-mouseover",this.pseudoTrackers[e].subscriber)}),this.pseudoTracking=!0}pseudoMouseEnter(e,t,i){if(this.pseudoTrackers[e].target!==i){if(this.pseudoTrackers[e].target)this.dispatch(e+"-mouseleave",t,this.pseudoTrackers[e].target);this.pseudoMouseLeave(e,t),this.pseudoTrackers[e].target=i,this.dispatch(e+"-mouseenter",t,i)}}pseudoMouseLeave(e,t){var i=Object.keys(this.pseudoTrackers),s={row:["cell"],cell:["row"]};i=i.filter((r)=>{var o=s[e];return r!==e&&(!o||o&&!o.includes(r))}),i.forEach((r)=>{var o=this.pseudoTrackers[r].target;if(this.pseudoTrackers[r].target)this.dispatch(r+"-mouseleave",t,o),this.pseudoTrackers[r].target=null})}bindSubscriptionWatchers(){var e=Object.keys(this.listeners),t=Object.values(this.componentMap);for(let i of t)for(let s of e){let r=i+"-"+s;this.subscriptionChange(r,this.subscriptionChanged.bind(this,i,s))}this.subscribe("table-destroy",this.clearWatchers.bind(this))}subscriptionChanged(e,t,i){var s=this.listeners[t].components,r=s.indexOf(e),o=!1;if(i){if(r===-1)s.push(e),o=!0}else if(!this.subscribed(e+"-"+t)){if(r>-1)s.splice(r,1),o=!0}if((t==="mouseenter"||t==="mouseleave")&&!this.pseudoTracking)this.bindPseudoEvents();if(o)this.updateEventListeners()}updateEventListeners(){for(let e in this.listeners){let t=this.listeners[e];if(t.components.length){if(!t.handler)t.handler=this.track.bind(this,e),this.el.addEventListener(e,t.handler)}else if(t.handler)this.el.removeEventListener(e,t.handler),t.handler=null}}track(e,t){var i=t.composedPath&&t.composedPath()||t.path,s=this.findTargets(i);if(s=this.bindComponents(e,s),this.triggerEvents(e,t,s),this.pseudoTracking&&(e=="mouseover"||e=="mouseleave")&&!Object.keys(s).length)this.pseudoMouseLeave("none",t)}findTargets(e){var t={};let i=Object.keys(this.componentMap);for(let s of e){let r=s.classList?[...s.classList]:[];if(r.filter((l)=>this.abortClasses.includes(l)).length)break;let a=r.filter((l)=>i.includes(l));for(let l of a)if(!t[this.componentMap[l]])t[this.componentMap[l]]=s}if(t.group&&t.group===t.row)delete t.row;return t}bindComponents(e,t){var i=Object.keys(t).reverse(),s=this.listeners[e],r={},o={},a={};for(let l of i){let h,d=t[l],u=this.previousTargets[l];if(u&&u.target===d)h=u.component;else switch(l){case"row":case"group":if(s.components.includes("row")||s.components.includes("cell")||s.components.includes("group")){if(h=this.table.rowManager.getVisibleRows(!0).find((f)=>f.getElement()===d),t.row&&t.row.parentNode&&t.row.parentNode.closest(".tabulator-row"))t[l]=!1}break;case"column":if(s.components.includes("column"))h=this.table.columnManager.findColumn(d);break;case"cell":if(s.components.includes("cell")){if(r.row instanceof O)h=r.row.findCell(d);else if(t.row)console.warn("Event Target Lookup Error - The row this cell is attached to cannot be found, has the table been reinitialized without being destroyed first?")}break}if(h)r[l]=h,a[l]={target:d,component:h}}return this.previousTargets=a,Object.keys(t).forEach((l)=>{let h=r[l];o[l]=h}),o}triggerEvents(e,t,i){var s=this.listeners[e];for(let r in i)if(i[r]&&s.components.includes(r))this.dispatch(r+"-"+e,t,i[r])}clearWatchers(){for(let e in this.listeners){let t=this.listeners[e];if(t.handler)this.el.removeEventListener(e,t.handler),t.handler=null}}}class Oe{constructor(e){this.table=e,this.bindings={}}bind(e,t,i){if(!this.bindings[e])this.bindings[e]={};if(this.bindings[e][t])console.warn("Unable to bind component handler, a matching function name is already bound",e,t,i);else this.bindings[e][t]=i}handle(e,t,i){if(this.bindings[e]&&this.bindings[e][i]&&typeof this.bindings[e][i].bind==="function")return this.bindings[e][i].bind(null,t);else if(i!=="then"&&typeof i==="string"&&!i.startsWith("_")){if(this.table.options.debugInvalidComponentFuncs)console.error("The "+e+" component does not have a "+i+" function, have you checked that you have the correct Tabulator module installed?")}}}class Pe extends H{constructor(e){super(e);this.requestOrder=0,this.loading=!1}initialize(){}load(e,t,i,s,r,o){var a=++this.requestOrder;if(this.table.destroyed)return Promise.resolve();if(this.dispatchExternal("dataLoading",e),e&&(e.indexOf("{")==0||e.indexOf("[")==0))e=JSON.parse(e);if(this.confirm("data-loading",[e,t,i,r])){if(this.loading=!0,!r)this.alertLoader();t=this.chain("data-params",[e,i,r],t||{},t||{}),t=this.mapParams(t,this.table.options.dataSendParams);var l=this.chain("data-load",[e,t,i,r],!1,Promise.resolve([]));return l.then((h)=>{if(!this.table.destroyed){if(!Array.isArray(h)&&typeof h=="object")h=this.mapParams(h,this.objectInvert(this.table.options.dataReceiveParams));var d=this.chain("data-loaded",[h],null,h);if(a==this.requestOrder){if(this.clearAlert(),d!==!1)this.dispatchExternal("dataLoaded",d),this.table.rowManager.setData(d,s,typeof o>"u"?!s:o)}else console.warn("Data Load Response Blocked - An active data load request was blocked by an attempt to change table data while the request was being made")}else console.warn("Data Load Response Blocked - Table has been destroyed")}).catch((h)=>{if(console.error("Data Load Error: ",h),this.dispatchExternal("dataLoadError",h),!r)this.alertError();setTimeout(()=>{this.clearAlert()},this.table.options.dataLoaderErrorTimeout)}).finally(()=>{this.loading=!1})}else{if(this.dispatchExternal("dataLoaded",e),!e)e=[];return this.table.rowManager.setData(e,s,typeof o>"u"?!s:o),Promise.resolve()}}mapParams(e,t){var i={};for(let s in e)i[t.hasOwnProperty(s)?t[s]:s]=e[s];return i}objectInvert(e){var t={};for(let i in e)t[e[i]]=i;return t}blockActiveLoad(){this.requestOrder++}alertLoader(){var e=typeof this.table.options.dataLoader==="function"?this.table.options.dataLoader():this.table.options.dataLoader;if(e)this.table.alertManager.alert(this.table.options.dataLoaderLoading||this.langText("data|loading"))}alertError(){this.table.alertManager.alert(this.table.options.dataLoaderError||this.langText("data|error"),"error")}clearAlert(){this.table.alertManager.clear()}}class Be{constructor(e,t,i){this.table=e,this.events={},this.optionsList=t||{},this.subscriptionNotifiers={},this.dispatch=i?this._debugDispatch.bind(this):this._dispatch.bind(this),this.debug=i}subscriptionChange(e,t){if(!this.subscriptionNotifiers[e])this.subscriptionNotifiers[e]=[];if(this.subscriptionNotifiers[e].push(t),this.subscribed(e))this._notifySubscriptionChange(e,!0)}subscribe(e,t){if(!this.events[e])this.events[e]=[];this.events[e].push(t),this._notifySubscriptionChange(e,!0)}unsubscribe(e,t){var i;if(this.events[e])if(t)if(i=this.events[e].findIndex((s)=>s===t),i>-1)this.events[e].splice(i,1);else{console.warn("Cannot remove event, no matching event found:",e,t);return}else delete this.events[e];else{console.warn("Cannot remove event, no events set on:",e);return}this._notifySubscriptionChange(e,!1)}subscribed(e){return this.events[e]&&this.events[e].length}_notifySubscriptionChange(e,t){var i=this.subscriptionNotifiers[e];if(i)i.forEach((s)=>{s(t)})}_dispatch(e,...t){let i=this.events[e],s=i?.length;if(s){let r=i[0].apply(this.table,t);for(let o=1;o<s;o++)i[o].apply(this.table,t);return r}}_debugDispatch(e,...t){if(this.debug===!0||this.debug.includes(e)){let i=["ExternalEvent:"+e,...t];console.log(...i)}return this._dispatch(e,...t)}}class Ve{constructor(e){this.events={},this.subscriptionNotifiers={},this.dispatch=e?this._debugDispatch.bind(this):this._dispatch.bind(this),this.chain=e?this._debugChain.bind(this):this._chain.bind(this),this.confirm=e?this._debugConfirm.bind(this):this._confirm.bind(this),this.debug=e}subscriptionChange(e,t){if(!this.subscriptionNotifiers[e])this.subscriptionNotifiers[e]=[];if(this.subscriptionNotifiers[e].push(t),this.subscribed(e))this._notifySubscriptionChange(e,!0)}subscribe(e,t,i=1e4){if(!this.events[e])this.events[e]=[];this.events[e].push({callback:t,priority:i}),this.events[e].sort((s,r)=>s.priority-r.priority),this._notifySubscriptionChange(e,!0)}unsubscribe(e,t){var i;if(this.events[e]){if(t)if(i=this.events[e].findIndex((s)=>s.callback===t),i>-1)this.events[e].splice(i,1);else{console.warn("Cannot remove event, no matching event found:",e,t);return}}else{console.warn("Cannot remove event, no events set on:",e);return}this._notifySubscriptionChange(e,!1)}subscribed(e){return this.events[e]&&this.events[e].length}_chain(e,t,i,s){let r=this.events[e];if(r&&r.length){if(!Array.isArray(t))t=[t];let o=t.slice(),a=o.length,l=i;for(let h=0;h<r.length;h++)o[a]=l,l=r[h].callback.apply(this,o);return l}return typeof s==="function"?s():s}_confirm(e,t){var i=!1;if(!Array.isArray(t))t=[t];if(this.subscribed(e))this.events[e].forEach((s,r)=>{if(s.callback.apply(this,t))i=!0});return i}_notifySubscriptionChange(e,t){var i=this.subscriptionNotifiers[e];if(i)i.forEach((s)=>{s(t)})}_dispatch(e,...t){let i=this.events[e];if(i)for(let s of i)s.callback.apply(this,t)}_debugDispatch(e,...t){if(this.debug===!0||this.debug.includes(e)){let i=["InternalEvent:"+e,...t];console.log(...i)}return this._dispatch(e,...t)}_debugChain(e,t,i,s){if(this.debug===!0||this.debug.includes(e)){let r=["InternalEvent:"+e,t,i,s];console.log(...r)}return this._chain(e,t,i,s)}_debugConfirm(e,t){if(this.debug===!0||this.debug.includes(e)){let i=["InternalEvent:"+e,t];console.log(...i)}return this._confirm(e,t)}}class Ne extends H{constructor(e){super(e)}_warnUser(){if(this.options("debugDeprecation"))console.warn(...arguments)}check(e,t,i){var s="";if(typeof this.options(e)<"u"){if(s="Deprecated Setup Option - Use of the %c"+e+"%c option is now deprecated",t){if(s=s+", Please use the %c"+t+"%c option instead",this._warnUser(s,"font-weight: bold;","font-weight: normal;","font-weight: bold;","font-weight: normal;"),i)this.table.options[t]=this.table.options[e]}else this._warnUser(s,"font-weight: bold;","font-weight: normal;");return!1}else return!0}checkMsg(e,t){if(typeof this.options(e)<"u")return this._warnUser("%cDeprecated Setup Option - Use of the %c"+e+" %c option is now deprecated, "+t,"font-weight: normal;","font-weight: bold;","font-weight: normal;"),!1;else return!0}msg(e){this._warnUser(e)}}class Ie extends H{constructor(e){super(e);this.deps={},this.props={}}initialize(){this.deps=Object.assign({},this.options("dependencies"))}lookup(e,t,i){if(Array.isArray(e)){for(let r of e){var s=this.lookup(r,t,!0);if(s)break}if(s)return s;else this.error(e)}else if(t)return this.lookupProp(e,t,i);else return this.lookupKey(e,i)}lookupProp(e,t,i){var s;if(this.props[e]&&this.props[e][t])return this.props[e][t];else if(s=this.lookupKey(e,i),s){if(!this.props[e])this.props[e]={};return this.props[e][t]=s[t]||s,this.props[e][t]}}lookupKey(e,t){var i;if(this.deps[e])i=this.deps[e];else if(window[e])this.deps[e]=window[e],i=this.deps[e];else if(!t)this.error(e);return i}error(e){console.error("Unable to find dependency",e,"Please check documentation and ensure you have imported the required library into your project")}}function gi(e,t){if(t)this.table.columnManager.renderer.reinitializeColumnWidths(e);if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function xe(e,t){if(e.forEach(function(i){i.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function bi(e,t){var i=0,s=this.table.rowManager.element.clientWidth,r=0,o=!1;if(e.forEach((a,l)=>{if(!a.widthFixed)a.reinitializeWidth();if(this.table.options.responsiveLayout?a.modules.responsive.visible:a.visible)o=a;if(a.visible)i+=a.getWidth()}),o){if(r=s-i+o.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))o.setWidth(0),this.table.modules.responsiveLayout.update();if(r>0)o.setWidth(r);else o.reinitializeWidth()}else if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function vi(e,t){var i=this.table.rowManager.element.getBoundingClientRect().width,s=0,r=0,o=0,a=0,l=[],h=[],d=0,u=0,c=0;function f(m){var b;if(typeof m=="string")if(m.indexOf("%")>-1)b=i/100*parseInt(m);else b=parseInt(m);else b=m;return b}function p(m,b,v,w){var R=[],S=0,T=0,A=0,B=o,C=0,E=0,y=[];function D(x){return v*(x.column.definition.widthGrow||1)}function z(x){return f(x.width)-v*(x.column.definition.widthShrink||0)}if(m.forEach(function(x,se){var Re=w?z(x):D(x);if(x.column.minWidth>=Re)R.push(x);else if(x.column.maxWidth&&x.column.maxWidth<Re){if(x.width=x.column.maxWidth,b-=x.column.maxWidth,B-=w?x.column.definition.widthShrink||1:x.column.definition.widthGrow||1,B)v=Math.floor(b/B)}else y.push(x),E+=w?x.column.definition.widthShrink||1:x.column.definition.widthGrow||1}),R.length)R.forEach(function(x){S+=w?x.width-x.column.minWidth:x.column.minWidth,x.width=x.column.minWidth}),T=b-S,A=E?Math.floor(T/E):T,C=p(y,T,A,w);else C=E?b-Math.floor(b/E)*E:b,y.forEach(function(x){x.width=w?z(x):D(x)});return C}if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update();if(this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight)i-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth;if(e.forEach(function(m){var b,v,w;if(m.visible)if(b=m.definition.width,v=parseInt(m.minWidth),b){if(w=f(b),s+=w>v?w:v,m.definition.widthShrink)h.push({column:m,width:w>v?w:v}),d+=m.definition.widthShrink}else l.push({column:m,width:0}),o+=m.definition.widthGrow||1}),r=i-s,a=Math.floor(r/o),c=p(l,r,a,!1),l.length&&c>0)l[l.length-1].width+=c;if(l.forEach(function(m){r-=m.width}),u=Math.abs(c)+r,u>0&&d)c=p(h,u,Math.floor(u/d),!0);if(c&&h.length)h[h.length-1].width-=c;l.forEach(function(m){m.column.setWidth(m.width)}),h.forEach(function(m){m.column.setWidth(m.width)})}var wi={fitData:gi,fitDataFill:xe,fitDataTable:xe,fitDataStretch:bi,fitColumns:vi};class Z extends F{static moduleName="layout";static modes=wi;constructor(e){super(e,"layout");this.mode=null,this.registerTableOption("layout","fitData"),this.registerTableOption("layoutColumnsOnNewData",!1),this.registerColumnOption("widthGrow"),this.registerColumnOption("widthShrink")}initialize(){var e=this.table.options.layout;if(Z.modes[e])this.mode=e;else console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+e),this.mode="fitData";this.table.element.setAttribute("tabulator-layout",this.mode),this.subscribe("column-init",this.initializeColumn.bind(this))}initializeColumn(e){if(e.definition.widthGrow)e.definition.widthGrow=Number(e.definition.widthGrow);if(e.definition.widthShrink)e.definition.widthShrink=Number(e.definition.widthShrink)}getMode(){return this.mode}layout(e){var t=this.table.columnManager.columnsByIndex.find((i)=>i.definition.variableHeight||i.definition.formatter==="textarea");if(this.dispatch("layout-refreshing"),Z.modes[this.mode].call(this,this.table.columnManager.columnsByIndex,e),t)this.table.rowManager.normalizeHeight(!0);this.dispatch("layout-refreshed")}}var Ci={default:{groups:{item:"item",items:"items"},columns:{},data:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",page_title:"Show Page",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page",all:"All",counter:{showing:"Showing",of:"of",rows:"rows",pages:"pages"}},headerFilters:{default:"filter column...",columns:{}}}};class ve extends F{static moduleName="localize";static langs=Ci;constructor(e){super(e);this.locale="default",this.lang=!1,this.bindings={},this.langList={},this.registerTableOption("locale",!1),this.registerTableOption("langs",{})}initialize(){if(this.langList=M.deepClone(ve.langs),this.table.options.columnDefaults.headerFilterPlaceholder!==!1)this.setHeaderFilterPlaceholder(this.table.options.columnDefaults.headerFilterPlaceholder);for(let e in this.table.options.langs)this.installLang(e,this.table.options.langs[e]);this.setLocale(this.table.options.locale),this.registerTableFunction("setLocale",this.setLocale.bind(this)),this.registerTableFunction("getLocale",this.getLocale.bind(this)),this.registerTableFunction("getLang",this.getLang.bind(this))}setHeaderFilterPlaceholder(e){this.langList.default.headerFilters.default=e}installLang(e,t){if(this.langList[e])this._setLangProp(this.langList[e],t);else this.langList[e]=t}_setLangProp(e,t){for(let i in t)if(e[i]&&typeof e[i]=="object")this._setLangProp(e[i],t[i]);else e[i]=t[i]}setLocale(e){e=e||"default";function t(i,s){for(var r in i)if(typeof i[r]=="object"){if(!s[r])s[r]={};t(i[r],s[r])}else s[r]=i[r]}if(e===!0&&navigator.language)e=navigator.language.toLowerCase();if(e){if(!this.langList[e]){let i=e.split("-")[0];if(this.langList[i])console.warn("Localization Error - Exact matching locale not found, using closest match: ",e,i),e=i;else console.warn("Localization Error - Matching locale not found, using default: ",e),e="default"}}if(this.locale=e,this.lang=M.deepClone(this.langList.default||{}),e!="default")t(this.langList[e],this.lang);this.dispatchExternal("localized",this.locale,this.lang),this._executeBindings()}getLocale(e){return this.locale}getLang(e){return e?this.langList[e]:this.lang}getText(e,t){var i=t?e+"|"+t:e,s=i.split("|"),r=this._getLangElement(s,this.locale);return r||""}_getLangElement(e,t){var i=this.lang;return e.forEach(function(s){var r;if(i)if(r=i[s],typeof r<"u")i=r;else i=!1}),i}bind(e,t){if(!this.bindings[e])this.bindings[e]=[];this.bindings[e].push(t),t(this.getText(e),this.lang)}_executeBindings(){for(let e in this.bindings)this.bindings[e].forEach((t)=>{t(this.getText(e),this.lang)})}}class We extends F{static moduleName="comms";constructor(e){super(e)}initialize(){this.registerTableFunction("tableComms",this.receive.bind(this))}getConnections(e){var t=[],i;return i=this.table.constructor.registry.lookupTable(e),i.forEach((s)=>{if(this.table!==s)t.push(s)}),t}send(e,t,i,s){var r=this.getConnections(e);if(r.forEach((o)=>{o.tableComms(this.table.element,t,i,s)}),!r.length&&e)console.warn("Table Connection Error - No tables matching selector found",e)}receive(e,t,i,s){if(this.table.modExists(t))return this.table.modules[t].commsReceived(e,i,s);else console.warn("Inter-table Comms Error - no such module:",t)}}var Ei=Object.freeze({__proto__:null,CommsModule:We,LayoutModule:Z,LocalizeModule:ve});class _{static registry={tables:[],register(e){_.registry.tables.push(e)},deregister(e){var t=_.registry.tables.indexOf(e);if(t>-1)_.registry.tables.splice(t,1)},lookupTable(e,t){var i=[],s,r;if(typeof e==="string"){if(s=document.querySelectorAll(e),s.length){for(var o=0;o<s.length;o++)if(r=_.registry.matchElement(s[o]),r)i.push(r)}}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement||e instanceof _){if(r=_.registry.matchElement(e),r)i.push(r)}else if(Array.isArray(e))e.forEach(function(a){i=i.concat(_.registry.lookupTable(a))});else if(!t)console.warn("Table Connection Error - Invalid Selector",e);return i},matchElement(e){return _.registry.tables.find(function(t){return e instanceof _?t===e:t.element===e})}};static findTable(e){var t=_.registry.lookupTable(e,!0);return Array.isArray(t)&&!t.length?!1:t}}class k extends _{static moduleBindings={};static moduleExtensions={};static modulesRegistered=!1;static defaultModules=!1;constructor(){super()}static initializeModuleBinder(e){if(!k.modulesRegistered){if(k.modulesRegistered=!0,k._registerModules(Ei,!0),e)k._registerModules(e)}}static _extendModule(e,t,i){if(k.moduleBindings[e]){var s=k.moduleBindings[e][t];if(s)if(typeof i=="object")for(let r in i)s[r]=i[r];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",t)}else console.warn("Module Error - module does not exist:",e)}static _registerModules(e,t){var i=Object.values(e);if(t)i.forEach((s)=>{s.prototype.moduleCore=!0});k._registerModule(i)}static _registerModule(e){if(!Array.isArray(e))e=[e];e.forEach((t)=>{k._registerModuleBinding(t),k._registerModuleExtensions(t)})}static _registerModuleBinding(e){if(e.moduleName)k.moduleBindings[e.moduleName]=e;else console.error("Unable to bind module, no moduleName defined",e.moduleName)}static _registerModuleExtensions(e){var t=e.moduleExtensions;if(e.moduleExtensions)for(let i in t){let s=t[i];if(k.moduleBindings[i])for(let r in s)k._extendModule(i,r,s[r]);else{if(!k.moduleExtensions[i])k.moduleExtensions[i]={};for(let r in s){if(!k.moduleExtensions[i][r])k.moduleExtensions[i][r]={};Object.assign(k.moduleExtensions[i][r],s[r])}}}k._extendModuleFromQueue(e)}static _extendModuleFromQueue(e){var t=k.moduleExtensions[e.moduleName];if(t)for(let i in t)k._extendModule(e.moduleName,i,t[i])}_bindModules(){var e=[],t=[],i=[];this.modules={};for(var s in k.moduleBindings){let r=k.moduleBindings[s],o=new r(this);if(this.modules[s]=o,r.prototype.moduleCore)this.modulesCore.push(o);else if(r.moduleInitOrder)if(r.moduleInitOrder<0)e.push(o);else t.push(o);else i.push(o)}e.sort((r,o)=>r.moduleInitOrder>o.moduleInitOrder?1:-1),t.sort((r,o)=>r.moduleInitOrder>o.moduleInitOrder?1:-1),this.modulesRegular=e.concat(i.concat(t))}}class Ge extends H{constructor(e){super(e);this.element=this._createAlertElement(),this.msgElement=this._createMsgElement(),this.type=null,this.element.appendChild(this.msgElement)}_createAlertElement(){var e=document.createElement("div");return e.classList.add("tabulator-alert"),e}_createMsgElement(){var e=document.createElement("div");return e.classList.add("tabulator-alert-msg"),e.setAttribute("role","alert"),e}_typeClass(){return"tabulator-alert-state-"+this.type}alert(e,t="msg"){if(e){this.clear(),this.dispatch("alert-show",t),this.type=t;while(this.msgElement.firstChild)this.msgElement.removeChild(this.msgElement.firstChild);if(this.msgElement.classList.add(this._typeClass()),typeof e==="function")e=e();if(e instanceof HTMLElement)this.msgElement.appendChild(e);else this.msgElement.innerHTML=e;this.table.element.appendChild(this.element)}}clear(){if(this.dispatch("alert-hide",this.type),this.element.parentNode)this.element.parentNode.removeChild(this.element);this.msgElement.classList.remove(this._typeClass())}}class P extends k{static defaultOptions=mi;static extendModule(){P.initializeModuleBinder(),P._extendModule(...arguments)}static registerModule(){P.initializeModuleBinder(),P._registerModule(...arguments)}constructor(e,t,i){super();if(P.initializeModuleBinder(i),this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.alertManager=null,this.vdomHoz=null,this.externalEvents=null,this.eventBus=null,this.interactionMonitor=!1,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.rtl=!1,this.originalElement=null,this.componentFunctionBinder=new Oe(this),this.dataLoader=!1,this.modules={},this.modulesCore=[],this.modulesRegular=[],this.deprecationAdvisor=new Ne(this),this.optionsList=new be(this,"table constructor"),this.dependencyRegistry=new Ie(this),this.initialized=!1,this.destroyed=!1,this.initializeElement(e)){if(this.element.id)this.instanceId=this.element.id;else this.instanceId=Math.random().toString(36).slice(2,7);this.initializeCoreSystems(t),setTimeout(()=>{this._create()})}this.constructor.registry.register(this)}initializeElement(e){if(typeof HTMLElement<"u"&&e instanceof HTMLElement)return this.element=e,!0;else if(typeof e==="string")if(this.element=document.querySelector(e),this.element)return!0;else return console.error("Tabulator Creation Error - no element found matching selector: ",e),!1;else return console.error("Tabulator Creation Error - Invalid element provided:",e),!1}initializeCoreSystems(e){this.columnManager=new Se(this),this.rowManager=new Fe(this),this.footerManager=new Ae(this),this.dataLoader=new Pe(this),this.alertManager=new Ge(this),this._bindModules(),this.options=this.optionsList.generate(P.defaultOptions,e),this._clearObjectPointers(),this._mapDeprecatedFunctionality(),this.externalEvents=new Be(this,this.options,this.options.debugEventsExternal),this.eventBus=new Ve(this.options.debugEventsInternal),this.interactionMonitor=new _e(this),this.dataLoader.initialize(),this.footerManager.initialize(),this.dependencyRegistry.initialize()}_mapDeprecatedFunctionality(){}_clearSelection(){if(this.element.classList.add("tabulator-block-select"),window.getSelection){if(window.getSelection().empty)window.getSelection().empty();else if(window.getSelection().removeAllRanges)window.getSelection().removeAllRanges()}else if(document.selection)document.selection.empty();this.element.classList.remove("tabulator-block-select")}_create(){this.externalEvents.dispatch("tableBuilding"),this.eventBus.dispatch("table-building"),this._rtlCheck(),this._buildElement(),this._initializeTable(),this.initialized=!0,this._loadInitialData().finally(()=>{this.eventBus.dispatch("table-initialized"),this.externalEvents.dispatch("tableBuilt")})}_rtlCheck(){var e=window.getComputedStyle(this.element);switch(this.options.textDirection){case"auto":if(e.direction!=="rtl")break;case"rtl":this.element.classList.add("tabulator-rtl"),this.rtl=!0;break;case"ltr":this.element.classList.add("tabulator-ltr");default:this.rtl=!1}}_clearObjectPointers(){if(this.options.columns=this.options.columns.slice(0),Array.isArray(this.options.data)&&!this.options.reactiveData)this.options.data=this.options.data.slice(0)}_buildElement(){var e=this.element,t=this.options,i;if(e.tagName==="TABLE"){this.originalElement=this.element,i=document.createElement("div");var s=e.attributes;for(var r in s)if(typeof s[r]=="object")i.setAttribute(s[r].name,s[r].value);e.parentNode.replaceChild(i,e),this.element=e=i}e.classList.add("tabulator"),e.setAttribute("role","grid"),e.setAttribute("aria-owns","tabulator-table-body-"+this.instanceId);while(e.firstChild)e.removeChild(e.firstChild);if(t.height)t.height=isNaN(t.height)?t.height:t.height+"px",e.style.height=t.height;if(t.minHeight!==!1)t.minHeight=isNaN(t.minHeight)?t.minHeight:t.minHeight+"px",e.style.minHeight=t.minHeight;if(t.maxHeight!==!1)t.maxHeight=isNaN(t.maxHeight)?t.maxHeight:t.maxHeight+"px",e.style.maxHeight=t.maxHeight}_initializeTable(){var e=this.element,t=this.options;if(this.interactionMonitor.initialize(),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modulesCore.forEach((i)=>{i.initialize()}),e.appendChild(this.columnManager.getElement()),e.appendChild(this.rowManager.getElement()),t.footerElement)this.footerManager.activate();if(t.autoColumns&&t.data)this.columnManager.generateColumnsFromRowData(this.options.data);this.modulesRegular.forEach((i)=>{i.initialize()}),this.columnManager.setColumns(t.columns),this.eventBus.dispatch("table-built")}_loadInitialData(){return this.dataLoader.load(this.options.data).finally(()=>{this.columnManager.verticalAlignHeaders()})}destroy(){var e=this.element;this.destroyed=!0,this.constructor.registry.deregister(this),this.eventBus.dispatch("table-destroy"),this.rowManager.destroy();while(e.firstChild)e.removeChild(e.firstChild);e.classList.remove("tabulator"),e.removeAttribute("tabulator-layout"),this.externalEvents.dispatch("tableDestroyed")}_detectBrowser(){var e=navigator.userAgent||navigator.vendor||window.opera;if(e.indexOf("Trident")>-1)this.browser="ie",this.browserSlow=!0;else if(e.indexOf("Edge")>-1)this.browser="edge",this.browserSlow=!0;else if(e.indexOf("Firefox")>-1)this.browser="firefox",this.browserSlow=!1;else if(e.indexOf("Mac OS")>-1)this.browser="safari",this.browserSlow=!1;else this.browser="other",this.browserSlow=!1;this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e.slice(0,4))}initGuard(e,t){var i,s;if(this.options.debugInitialization&&!this.initialized){if(!e)if(i=Error().stack.split(`
|
|
11
|
-
`),s=i[0]=="Error"?i[2]:i[1],s[0]==" ")e=s.trim().split(" ")[1].split(".")[1];else e=s.trim().split("@")[0];console.warn("Table Not Initialized - Calling the "+e+" function before the table is initialized may result in inconsistent behavior, Please wait for the `tableBuilt` event before calling this function."+(t?" "+t:""))}return this.initialized}blockRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-blocking"),this.rowManager.blockRedraw(),this.columnManager.blockRedraw(),this.eventBus.dispatch("redraw-blocked")}restoreRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-restoring"),this.rowManager.restoreRedraw(),this.columnManager.restoreRedraw(),this.eventBus.dispatch("redraw-restored")}setData(e,t,i){return this.initGuard(!1,"To set initial data please use the 'data' property in the table constructor."),this.dataLoader.load(e,t,i,!1)}clearData(){this.initGuard(),this.dataLoader.blockActiveLoad(),this.rowManager.clearData()}getData(e){return this.rowManager.getData(e)}getDataCount(e){return this.rowManager.getDataCount(e)}getRedrawBlock(){return this.rowManager.redrawBlock||this.columnManager.redrawBlock}replaceData(e,t,i){return this.initGuard(),this.dataLoader.load(e,t,i,!0,!0)}updateData(e){var t=0;return this.initGuard(),new Promise((i,s)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e&&e.length>0)e.forEach((r)=>{var o=this.rowManager.findRow(r[this.options.index]);if(o)t++,o.updateData(r).then(()=>{if(t--,!t)i()}).catch((a)=>{s("Update Error - Unable to update row",r,a)});else s("Update Error - Unable to find row",r)});else console.warn("Update Error - No data provided"),s("Update Error - No data provided")})}addData(e,t,i){return this.initGuard(),new Promise((s,r)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e)this.rowManager.addRows(e,t,i).then((o)=>{var a=[];o.forEach(function(l){a.push(l.getComponent())}),s(a)});else console.warn("Update Error - No data provided"),r("Update Error - No data provided")})}updateOrAddData(e){var t=[],i=0;return this.initGuard(),new Promise((s,r)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e&&e.length>0)e.forEach((o)=>{var a=this.rowManager.findRow(o[this.options.index]);if(i++,a)a.updateData(o).then(()=>{if(i--,t.push(a.getComponent()),!i)s(t)});else this.rowManager.addRows(o).then((l)=>{if(i--,t.push(l[0].getComponent()),!i)s(t)})});else console.warn("Update Error - No data provided"),r("Update Error - No data provided")})}getRow(e){var t=this.rowManager.findRow(e);if(t)return t.getComponent();else return console.warn("Find Error - No matching row found:",e),!1}getRowFromPosition(e){var t=this.rowManager.getRowFromPosition(e);if(t)return t.getComponent();else return console.warn("Find Error - No matching row found:",e),!1}deleteRow(e){var t=[];if(this.initGuard(),!Array.isArray(e))e=[e];for(let i of e){let s=this.rowManager.findRow(i,!0);if(s)t.push(s);else return console.error("Delete Error - No matching row found:",i),Promise.reject("Delete Error - No matching row found")}return t.sort((i,s)=>this.rowManager.rows.indexOf(i)>this.rowManager.rows.indexOf(s)?1:-1),t.forEach((i)=>{i.delete()}),this.rowManager.reRenderInPosition(),Promise.resolve()}addRow(e,t,i){if(this.initGuard(),typeof e==="string")e=JSON.parse(e);return this.rowManager.addRows(e,t,i,!0).then((s)=>s[0].getComponent())}updateOrAddRow(e,t){var i=this.rowManager.findRow(e);if(this.initGuard(),typeof t==="string")t=JSON.parse(t);if(i)return i.updateData(t).then(()=>i.getComponent());else return this.rowManager.addRows(t).then((s)=>s[0].getComponent())}updateRow(e,t){var i=this.rowManager.findRow(e);if(this.initGuard(),typeof t==="string")t=JSON.parse(t);if(i)return i.updateData(t).then(()=>Promise.resolve(i.getComponent()));else return console.warn("Update Error - No matching row found:",e),Promise.reject("Update Error - No matching row found")}scrollToRow(e,t,i){var s=this.rowManager.findRow(e);if(s)return this.rowManager.scrollToRow(s,t,i);else return console.warn("Scroll Error - No matching row found:",e),Promise.reject("Scroll Error - No matching row found")}moveRow(e,t,i){var s=this.rowManager.findRow(e);if(this.initGuard(),s)s.moveToRow(t,i);else console.warn("Move Error - No matching row found:",e)}getRows(e){return this.rowManager.getComponents(e)}getRowPosition(e){var t=this.rowManager.findRow(e);if(t)return t.getPosition();else return console.warn("Position Error - No matching row found:",e),!1}setColumns(e){this.initGuard(!1,"To set initial columns please use the 'columns' property in the table constructor"),this.columnManager.setColumns(e)}getColumns(e){return this.columnManager.getComponents(e)}getColumn(e){var t=this.columnManager.findColumn(e);if(t)return t.getComponent();else return console.warn("Find Error - No matching column found:",e),!1}getColumnDefinitions(){return this.columnManager.getDefinitionTree()}showColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)t.show();else return console.warn("Column Show Error - No matching column found:",e),!1}hideColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)t.hide();else return console.warn("Column Hide Error - No matching column found:",e),!1}toggleColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)if(t.visible)t.hide();else t.show();else return console.warn("Column Visibility Toggle Error - No matching column found:",e),!1}addColumn(e,t,i){var s=this.columnManager.findColumn(i);return this.initGuard(),this.columnManager.addColumn(e,t,s).then((r)=>r.getComponent())}deleteColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)return t.delete();else return console.warn("Column Delete Error - No matching column found:",e),Promise.reject()}updateColumnDefinition(e,t){var i=this.columnManager.findColumn(e);if(this.initGuard(),i)return i.updateDefinition(t);else return console.warn("Column Update Error - No matching column found:",e),Promise.reject()}moveColumn(e,t,i){var s=this.columnManager.findColumn(e),r=this.columnManager.findColumn(t);if(this.initGuard(),s)if(r)this.columnManager.moveColumn(s,r,i);else console.warn("Move Error - No matching column found:",r);else console.warn("Move Error - No matching column found:",e)}scrollToColumn(e,t,i){return new Promise((s,r)=>{var o=this.columnManager.findColumn(e);if(o)return this.columnManager.scrollToColumn(o,t,i);else return console.warn("Scroll Error - No matching column found:",e),Promise.reject("Scroll Error - No matching column found")})}redraw(e){this.initGuard(),this.columnManager.redraw(e),this.rowManager.redraw(e)}setHeight(e){this.options.height=isNaN(e)?e:e+"px",this.element.style.height=this.options.height,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMaxHeight(e){this.options.maxHeight=isNaN(e)?e:e+"px",this.element.style.maxHeight=this.options.maxHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMinHeight(e){this.options.minHeight=isNaN(e)?e:e+"px",this.element.style.minHeight=this.options.minHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}on(e,t){this.externalEvents.subscribe(e,t)}off(e,t){this.externalEvents.unsubscribe(e,t)}dispatchEvent(){var e=Array.from(arguments);e.shift(),this.externalEvents.dispatch(...arguments)}alert(e,t){this.initGuard(),this.alertManager.alert(e,t)}clearAlert(){this.initGuard(),this.alertManager.clear()}modExists(e,t){if(this.modules[e])return!0;else{if(t)console.error("Tabulator Module Not Installed: "+e);return!1}}module(e){var t=this.modules[e];if(!t)console.error("Tabulator module not installed: "+e);return t}}var W={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},je=(e)=>(...t)=>({_$litDirective$:e,values:t});class we{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}var{I:Oi}=
|
|
10
|
+
Data: `,e)}_wipeElements(){this.dispatch("rows-wipe"),this.destroy(),this.adjustTableSize(),this.dispatch("rows-wiped")}destroy(){this.rows.forEach((e)=>{e.wipe()}),this.rows=[],this.activeRows=[],this.activeRowsPipeline=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0}deleteRow(e,t){var i=this.rows.indexOf(e),s=this.activeRows.indexOf(e);if(s>-1)this.activeRows.splice(s,1);if(i>-1)this.rows.splice(i,1);if(this.setActiveRows(this.activeRows),this.displayRowIterator((r)=>{var o=r.indexOf(e);if(o>-1)r.splice(o,1)}),!t)this.reRenderInPosition();if(this.regenerateRowPositions(),this.dispatchExternal("rowDeleted",e.getComponent()),!this.displayRowsCount)this.tableEmpty();if(this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.getData())}addRow(e,t,i,s){var r=this.addRowActual(e,t,i,s);return r}addRows(e,t,i,s){var r=[];return new Promise((o,a)=>{if(t=this.findAddRowPos(t),!Array.isArray(e))e=[e];if(typeof i>"u"&&t||typeof i<"u"&&!t)e.reverse();if(e.forEach((l,h)=>{var d=this.addRow(l,t,i,!0);r.push(d),this.dispatch("row-added",d,l,t,i)}),this.refreshActiveData(s?"displayPipeline":!1,!1,!0),this.regenerateRowPositions(),this.displayRowsCount)this._clearPlaceholder();o(r)})}findAddRowPos(e){if(typeof e>"u")e=this.table.options.addRowPos;if(e==="pos")e=!0;if(e==="bottom")e=!1;return e}addRowActual(e,t,i,s){var r=e instanceof O?e:new O(e||{},this),o=this.findAddRowPos(t),a=-1,l,h;if(!i)h=this.chain("row-adding-position",[r,o],null,{index:i,top:o}),i=h.index,o=h.top;if(typeof i<"u")i=this.findRow(i);if(i=this.chain("row-adding-index",[r,i,o],null,i),i)a=this.rows.indexOf(i);if(i&&a>-1){if(l=this.activeRows.indexOf(i),this.displayRowIterator(function(d){var u=d.indexOf(i);if(u>-1)d.splice(o?u:u+1,0,r)}),l>-1)this.activeRows.splice(o?l:l+1,0,r);this.rows.splice(o?a:a+1,0,r)}else if(o)this.displayRowIterator(function(d){d.unshift(r)}),this.activeRows.unshift(r),this.rows.unshift(r);else this.displayRowIterator(function(d){d.push(r)}),this.activeRows.push(r),this.rows.push(r);if(this.setActiveRows(this.activeRows),this.dispatchExternal("rowAdded",r.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData());if(!s)this.reRenderInPosition();return r}moveRow(e,t,i){this.dispatch("row-move",e,t,i),this.moveRowActual(e,t,i),this.regenerateRowPositions(),this.dispatch("row-moved",e,t,i),this.dispatchExternal("rowMoved",e.getComponent())}moveRowActual(e,t,i){this.moveRowInArray(this.rows,e,t,i),this.moveRowInArray(this.activeRows,e,t,i),this.displayRowIterator((s)=>{this.moveRowInArray(s,e,t,i)}),this.dispatch("row-moving",e,t,i)}moveRowInArray(e,t,i,s){var r,o,a,l;if(t!==i){if(r=e.indexOf(t),r>-1)if(e.splice(r,1),o=e.indexOf(i),o>-1)if(s)e.splice(o+1,0,t);else e.splice(o,0,t);else e.splice(r,0,t);if(e===this.getDisplayRows()){a=r<o?r:o,l=o>r?o:r+1;for(let h=a;h<=l;h++)if(e[h])this.styleRow(e[h],h)}}}clearData(){this.setData([])}getRowIndex(e){return this.findRowIndex(e,this.rows)}getDisplayRowIndex(e){var t=this.getDisplayRows().indexOf(e);return t>-1?t:!1}nextDisplayRow(e,t){var i=this.getDisplayRowIndex(e),s=!1;if(i!==!1&&i<this.displayRowsCount-1)s=this.getDisplayRows()[i+1];if(s&&(!(s instanceof O)||s.type!="row"))return this.nextDisplayRow(s,t);return s}prevDisplayRow(e,t){var i=this.getDisplayRowIndex(e),s=!1;if(i)s=this.getDisplayRows()[i-1];if(t&&s&&(!(s instanceof O)||s.type!="row"))return this.prevDisplayRow(s,t);return s}findRowIndex(e,t){var i;if(e=this.findRow(e),e){if(i=t.indexOf(e),i>-1)return i}return!1}getData(e,t){var i=[],s=this.getRows(e);return s.forEach(function(r){if(r.type=="row")i.push(r.getData(t||"data"))}),i}getComponents(e){var t=[],i=this.getRows(e);return i.forEach(function(s){t.push(s.getComponent())}),t}getDataCount(e){var t=this.getRows(e);return t.length}scrollHorizontal(e){this.scrollLeft=e,this.element.scrollLeft=e,this.dispatch("scroll-horizontal",e)}registerDataPipelineHandler(e,t){if(typeof t<"u")this.dataPipeline.push({handler:e,priority:t}),this.dataPipeline.sort((i,s)=>i.priority-s.priority);else console.error("Data pipeline handlers must have a priority in order to be registered")}registerDisplayPipelineHandler(e,t){if(typeof t<"u")this.displayPipeline.push({handler:e,priority:t}),this.displayPipeline.sort((i,s)=>i.priority-s.priority);else console.error("Display pipeline handlers must have a priority in order to be registered")}refreshActiveData(e,t,i){var s=this.table,r="",o=0,a=["all","dataPipeline","display","displayPipeline","end"];if(!this.table.destroyed){if(typeof e==="function")if(o=this.dataPipeline.findIndex((l)=>l.handler===e),o>-1){if(r="dataPipeline",t)if(o==this.dataPipeline.length-1)r="display";else o++}else if(o=this.displayPipeline.findIndex((l)=>l.handler===e),o>-1){if(r="displayPipeline",t)if(o==this.displayPipeline.length-1)r="end";else o++}else{console.error("Unable to refresh data, invalid handler provided",e);return}else r=e||"all",o=0;if(this.redrawBlock){if(!this.redrawBlockRestoreConfig||this.redrawBlockRestoreConfig&&(this.redrawBlockRestoreConfig.stage===r&&o<this.redrawBlockRestoreConfig.index||a.indexOf(r)<a.indexOf(this.redrawBlockRestoreConfig.stage)))this.redrawBlockRestoreConfig={handler:e,skipStage:t,renderInPosition:i,stage:r,index:o};return}else{if(L.elVisible(this.element))if(i)this.reRenderInPosition(this.refreshPipelines.bind(this,e,r,o,i));else{if(this.refreshPipelines(e,r,o,i),!e)this.table.columnManager.renderer.renderColumns();if(this.renderTable(),s.options.layoutColumnsOnNewData)this.table.columnManager.redraw(!0)}else this.refreshPipelines(e,r,o,i);this.dispatch("data-refreshed")}}}refreshPipelines(e,t,i,s){if(this.dispatch("data-refreshing"),!e||!this.activeRowsPipeline[0])this.activeRowsPipeline[0]=this.rows.slice(0);switch(t){case"all":case"dataPipeline":for(let r=i;r<this.dataPipeline.length;r++){let o=this.dataPipeline[r].handler(this.activeRowsPipeline[r].slice(0));this.activeRowsPipeline[r+1]=o||this.activeRowsPipeline[r].slice(0)}this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);case"display":i=0,this.resetDisplayRows();case"displayPipeline":for(let r=i;r<this.displayPipeline.length;r++){let o=this.displayPipeline[r].handler((r?this.getDisplayRows(r-1):this.activeRows).slice(0),s);this.setDisplayRows(o||this.getDisplayRows(r-1).slice(0),r)}case"end":this.regenerateRowPositions()}if(this.getDisplayRows().length)this._clearPlaceholder()}regenerateRowPositions(){var e=this.getDisplayRows(),t=1;e.forEach((i)=>{if(i.type==="row")i.setPosition(t),t++})}setActiveRows(e){this.activeRows=e.slice(),this.activeRowsCount=this.activeRows.length}resetDisplayRows(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length}setDisplayRows(e,t){if(this.displayRows[t]=e,t==this.displayRows.length-1)this.displayRowsCount=this.displayRows[this.displayRows.length-1].length}getDisplayRows(e){if(typeof e>"u")return this.displayRows.length?this.displayRows[this.displayRows.length-1]:[];else return this.displayRows[e]||[]}getVisibleRows(e,t){var i=Object.assign([],this.renderer.visibleRows(!t));if(e)i=this.chain("rows-visible",[t],i,i);return i}displayRowIterator(e){this.activeRowsPipeline.forEach(e),this.displayRows.forEach(e),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length}getRows(e){var t=[];switch(e){case"active":t=this.activeRows;break;case"display":t=this.table.rowManager.getDisplayRows();break;case"visible":t=this.getVisibleRows(!1,!0);break;default:t=this.chain("rows-retrieve",e,null,this.rows)||this.rows}return t}reRenderInPosition(e){if(this.redrawBlock)if(e)e();else this.redrawBlockRenderInPosition=!0;else{if(this.dispatchExternal("renderStarted"),this.renderer.rerenderRows(e),!this.fixedHeight)this.adjustTableSize();this.scrollBarCheck(),this.dispatchExternal("renderComplete")}}scrollBarCheck(){var e=0;if(this.element.scrollHeight>this.element.clientHeight)e=this.element.offsetWidth-this.element.clientWidth;if(e!==this.scrollbarWidth)this.scrollbarWidth=e,this.dispatch("scrollbar-vertical",e)}initializeRenderer(){var e,t={virtual:He,basic:ze};if(typeof this.table.options.renderVertical==="string")e=t[this.table.options.renderVertical];else e=this.table.options.renderVertical;if(e)if(this.renderMode=this.table.options.renderVertical,this.renderer=new e(this.table,this.element,this.tableElement),this.renderer.initialize(),(this.table.element.clientHeight||this.table.options.height)&&!(this.table.options.minHeight&&this.table.options.maxHeight))this.fixedHeight=!0;else this.fixedHeight=!1;else console.error("Unable to find matching renderer:",this.table.options.renderVertical)}getRenderMode(){return this.renderMode}renderTable(){if(this.dispatchExternal("renderStarted"),this.element.scrollTop=0,this._clearTable(),this.displayRowsCount){if(this.renderer.renderRows(),this.firstRender){if(this.firstRender=!1,!this.fixedHeight)this.adjustTableSize();this.layoutRefresh(!0)}}else this.renderEmptyScroll();if(!this.fixedHeight)this.adjustTableSize();if(this.dispatch("table-layout"),!this.displayRowsCount)this._showPlaceholder();this.scrollBarCheck(),this.dispatchExternal("renderComplete")}renderEmptyScroll(){if(this.placeholder)this.tableElement.style.display="none";else this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px"}_clearTable(){this._clearPlaceholder(),this.scrollTop=0,this.scrollLeft=0,this.renderer.clearRows()}tableEmpty(){this.renderEmptyScroll(),this._showPlaceholder()}checkPlaceholder(){if(this.displayRowsCount)this._clearPlaceholder();else this.tableEmpty()}_showPlaceholder(){if(this.placeholder){if(this.placeholder&&this.placeholder.parentNode)this.placeholder.parentNode.removeChild(this.placeholder);this.initializePlaceholder(),this.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.placeholder),this._positionPlaceholder(),this.adjustTableSize()}}_clearPlaceholder(){if(this.placeholder&&this.placeholder.parentNode)this.placeholder.parentNode.removeChild(this.placeholder);this.tableElement.style.minWidth="",this.tableElement.style.display=""}_positionPlaceholder(){if(this.placeholder&&this.placeholder.parentNode)this.placeholder.style.width=this.table.columnManager.getWidth()+"px",this.placeholderContents.style.width=this.table.rowManager.element.clientWidth+"px",this.placeholderContents.style.marginLeft=this.scrollLeft+"px"}styleRow(e,t){var i=e.getElement();if(t%2)i.classList.add("tabulator-row-even"),i.classList.remove("tabulator-row-odd");else i.classList.add("tabulator-row-odd"),i.classList.remove("tabulator-row-even")}normalizeHeight(e){this.activeRows.forEach(function(t){t.normalizeHeight(e)})}adjustTableSize(e){let t=this.element.clientHeight,i,s=!1;if(this.renderer.verticalFillMode==="fill"){let r=Math.floor(this.table.columnManager.getElement().getBoundingClientRect().height+(this.table.footerManager&&this.table.footerManager.active&&!this.table.footerManager.external?this.table.footerManager.getElement().getBoundingClientRect().height:0));if(this.fixedHeight){i=isNaN(this.table.options.minHeight)?this.table.options.minHeight:this.table.options.minHeight+"px";let o="calc(100% - "+r+"px)";this.element.style.minHeight=i||"calc(100% - "+r+"px)",this.element.style.height=o,this.element.style.maxHeight=o}else this.element.style.height="",this.element.style.height=Math.max(this.table.element.clientHeight-r,0)+"px",this.element.scrollTop=this.scrollTop;if(this.renderer.resize(),!this.fixedHeight&&t!=this.element.clientHeight){if(s=!0,!e&&!this.redrawing){if(this.redrawing=!0,this.subscribed("table-resize"))this.dispatch("table-resize");else this.redraw();this.redrawing=!1}}this.scrollBarCheck()}return this._positionPlaceholder(),s}reinitialize(){this.rows.forEach(function(e){e.reinitialize(!0)})}blockRedraw(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1}restoreRedraw(){if(this.redrawBlock=!1,this.redrawBlockRestoreConfig)this.refreshActiveData(this.redrawBlockRestoreConfig.handler,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1;else if(this.redrawBlockRenderInPosition)this.reRenderInPosition();this.redrawBlockRenderInPosition=!1}redraw(e){if(this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,!e)this.reRenderInPosition(),this.scrollHorizontal(this.scrollLeft);else this.renderTable()}resetScroll(){if(this.element.scrollLeft=0,this.element.scrollTop=0,this.table.browser==="ie"){var e=document.createEvent("Event");e.initEvent("scroll",!1,!0),this.element.dispatchEvent(e)}else this.element.dispatchEvent(new Event("scroll"))}}class Ae extends H{constructor(e){super(e);this.active=!1,this.element=this.createElement(),this.containerElement=this.createContainerElement(),this.external=!1}initialize(){this.initializeElement()}createElement(){var e=document.createElement("div");return e.classList.add("tabulator-footer"),e}createContainerElement(){var e=document.createElement("div");return e.classList.add("tabulator-footer-contents"),this.element.appendChild(e),e}initializeElement(){if(this.table.options.footerElement)switch(typeof this.table.options.footerElement){case"string":if(this.table.options.footerElement[0]==="<")this.containerElement.innerHTML=this.table.options.footerElement;else this.external=!0,this.containerElement=document.querySelector(this.table.options.footerElement);break;default:this.element=this.table.options.footerElement;break}}getElement(){return this.element}append(e){this.activate(),this.containerElement.appendChild(e),this.table.rowManager.adjustTableSize()}prepend(e){this.activate(),this.element.insertBefore(e,this.element.firstChild),this.table.rowManager.adjustTableSize()}remove(e){e.parentNode.removeChild(e),this.deactivate()}deactivate(e){if(!this.element.firstChild||e){if(!this.external)this.element.parentNode.removeChild(this.element);this.active=!1}}activate(){if(!this.active){if(this.active=!0,!this.external)this.table.element.appendChild(this.getElement()),this.table.element.style.display=""}}redraw(){this.dispatch("footer-redraw")}}class _e extends H{constructor(e){super(e);this.el=null,this.abortClasses=["tabulator-headers","tabulator-table"],this.previousTargets={},this.listeners=["click","dblclick","contextmenu","mouseenter","mouseleave","mouseover","mouseout","mousemove","mouseup","mousedown","touchstart","touchend"],this.componentMap={"tabulator-cell":"cell","tabulator-row":"row","tabulator-group":"group","tabulator-col":"column"},this.pseudoTrackers={row:{subscriber:null,target:null},cell:{subscriber:null,target:null},group:{subscriber:null,target:null},column:{subscriber:null,target:null}},this.pseudoTracking=!1}initialize(){this.el=this.table.element,this.buildListenerMap(),this.bindSubscriptionWatchers()}buildListenerMap(){var e={};this.listeners.forEach((t)=>{e[t]={handler:null,components:[]}}),this.listeners=e}bindPseudoEvents(){Object.keys(this.pseudoTrackers).forEach((e)=>{this.pseudoTrackers[e].subscriber=this.pseudoMouseEnter.bind(this,e),this.subscribe(e+"-mouseover",this.pseudoTrackers[e].subscriber)}),this.pseudoTracking=!0}pseudoMouseEnter(e,t,i){if(this.pseudoTrackers[e].target!==i){if(this.pseudoTrackers[e].target)this.dispatch(e+"-mouseleave",t,this.pseudoTrackers[e].target);this.pseudoMouseLeave(e,t),this.pseudoTrackers[e].target=i,this.dispatch(e+"-mouseenter",t,i)}}pseudoMouseLeave(e,t){var i=Object.keys(this.pseudoTrackers),s={row:["cell"],cell:["row"]};i=i.filter((r)=>{var o=s[e];return r!==e&&(!o||o&&!o.includes(r))}),i.forEach((r)=>{var o=this.pseudoTrackers[r].target;if(this.pseudoTrackers[r].target)this.dispatch(r+"-mouseleave",t,o),this.pseudoTrackers[r].target=null})}bindSubscriptionWatchers(){var e=Object.keys(this.listeners),t=Object.values(this.componentMap);for(let i of t)for(let s of e){let r=i+"-"+s;this.subscriptionChange(r,this.subscriptionChanged.bind(this,i,s))}this.subscribe("table-destroy",this.clearWatchers.bind(this))}subscriptionChanged(e,t,i){var s=this.listeners[t].components,r=s.indexOf(e),o=!1;if(i){if(r===-1)s.push(e),o=!0}else if(!this.subscribed(e+"-"+t)){if(r>-1)s.splice(r,1),o=!0}if((t==="mouseenter"||t==="mouseleave")&&!this.pseudoTracking)this.bindPseudoEvents();if(o)this.updateEventListeners()}updateEventListeners(){for(let e in this.listeners){let t=this.listeners[e];if(t.components.length){if(!t.handler)t.handler=this.track.bind(this,e),this.el.addEventListener(e,t.handler)}else if(t.handler)this.el.removeEventListener(e,t.handler),t.handler=null}}track(e,t){var i=t.composedPath&&t.composedPath()||t.path,s=this.findTargets(i);if(s=this.bindComponents(e,s),this.triggerEvents(e,t,s),this.pseudoTracking&&(e=="mouseover"||e=="mouseleave")&&!Object.keys(s).length)this.pseudoMouseLeave("none",t)}findTargets(e){var t={};let i=Object.keys(this.componentMap);for(let s of e){let r=s.classList?[...s.classList]:[];if(r.filter((l)=>this.abortClasses.includes(l)).length)break;let a=r.filter((l)=>i.includes(l));for(let l of a)if(!t[this.componentMap[l]])t[this.componentMap[l]]=s}if(t.group&&t.group===t.row)delete t.row;return t}bindComponents(e,t){var i=Object.keys(t).reverse(),s=this.listeners[e],r={},o={},a={};for(let l of i){let h,d=t[l],u=this.previousTargets[l];if(u&&u.target===d)h=u.component;else switch(l){case"row":case"group":if(s.components.includes("row")||s.components.includes("cell")||s.components.includes("group")){if(h=this.table.rowManager.getVisibleRows(!0).find((f)=>f.getElement()===d),t.row&&t.row.parentNode&&t.row.parentNode.closest(".tabulator-row"))t[l]=!1}break;case"column":if(s.components.includes("column"))h=this.table.columnManager.findColumn(d);break;case"cell":if(s.components.includes("cell")){if(r.row instanceof O)h=r.row.findCell(d);else if(t.row)console.warn("Event Target Lookup Error - The row this cell is attached to cannot be found, has the table been reinitialized without being destroyed first?")}break}if(h)r[l]=h,a[l]={target:d,component:h}}return this.previousTargets=a,Object.keys(t).forEach((l)=>{let h=r[l];o[l]=h}),o}triggerEvents(e,t,i){var s=this.listeners[e];for(let r in i)if(i[r]&&s.components.includes(r))this.dispatch(r+"-"+e,t,i[r])}clearWatchers(){for(let e in this.listeners){let t=this.listeners[e];if(t.handler)this.el.removeEventListener(e,t.handler),t.handler=null}}}class Oe{constructor(e){this.table=e,this.bindings={}}bind(e,t,i){if(!this.bindings[e])this.bindings[e]={};if(this.bindings[e][t])console.warn("Unable to bind component handler, a matching function name is already bound",e,t,i);else this.bindings[e][t]=i}handle(e,t,i){if(this.bindings[e]&&this.bindings[e][i]&&typeof this.bindings[e][i].bind==="function")return this.bindings[e][i].bind(null,t);else if(i!=="then"&&typeof i==="string"&&!i.startsWith("_")){if(this.table.options.debugInvalidComponentFuncs)console.error("The "+e+" component does not have a "+i+" function, have you checked that you have the correct Tabulator module installed?")}}}class Pe extends H{constructor(e){super(e);this.requestOrder=0,this.loading=!1}initialize(){}load(e,t,i,s,r,o){var a=++this.requestOrder;if(this.table.destroyed)return Promise.resolve();if(this.dispatchExternal("dataLoading",e),e&&(e.indexOf("{")==0||e.indexOf("[")==0))e=JSON.parse(e);if(this.confirm("data-loading",[e,t,i,r])){if(this.loading=!0,!r)this.alertLoader();t=this.chain("data-params",[e,i,r],t||{},t||{}),t=this.mapParams(t,this.table.options.dataSendParams);var l=this.chain("data-load",[e,t,i,r],!1,Promise.resolve([]));return l.then((h)=>{if(!this.table.destroyed){if(!Array.isArray(h)&&typeof h=="object")h=this.mapParams(h,this.objectInvert(this.table.options.dataReceiveParams));var d=this.chain("data-loaded",[h],null,h);if(a==this.requestOrder){if(this.clearAlert(),d!==!1)this.dispatchExternal("dataLoaded",d),this.table.rowManager.setData(d,s,typeof o>"u"?!s:o)}else console.warn("Data Load Response Blocked - An active data load request was blocked by an attempt to change table data while the request was being made")}else console.warn("Data Load Response Blocked - Table has been destroyed")}).catch((h)=>{if(console.error("Data Load Error: ",h),this.dispatchExternal("dataLoadError",h),!r)this.alertError();setTimeout(()=>{this.clearAlert()},this.table.options.dataLoaderErrorTimeout)}).finally(()=>{this.loading=!1})}else{if(this.dispatchExternal("dataLoaded",e),!e)e=[];return this.table.rowManager.setData(e,s,typeof o>"u"?!s:o),Promise.resolve()}}mapParams(e,t){var i={};for(let s in e)i[t.hasOwnProperty(s)?t[s]:s]=e[s];return i}objectInvert(e){var t={};for(let i in e)t[e[i]]=i;return t}blockActiveLoad(){this.requestOrder++}alertLoader(){var e=typeof this.table.options.dataLoader==="function"?this.table.options.dataLoader():this.table.options.dataLoader;if(e)this.table.alertManager.alert(this.table.options.dataLoaderLoading||this.langText("data|loading"))}alertError(){this.table.alertManager.alert(this.table.options.dataLoaderError||this.langText("data|error"),"error")}clearAlert(){this.table.alertManager.clear()}}class Be{constructor(e,t,i){this.table=e,this.events={},this.optionsList=t||{},this.subscriptionNotifiers={},this.dispatch=i?this._debugDispatch.bind(this):this._dispatch.bind(this),this.debug=i}subscriptionChange(e,t){if(!this.subscriptionNotifiers[e])this.subscriptionNotifiers[e]=[];if(this.subscriptionNotifiers[e].push(t),this.subscribed(e))this._notifySubscriptionChange(e,!0)}subscribe(e,t){if(!this.events[e])this.events[e]=[];this.events[e].push(t),this._notifySubscriptionChange(e,!0)}unsubscribe(e,t){var i;if(this.events[e])if(t)if(i=this.events[e].findIndex((s)=>s===t),i>-1)this.events[e].splice(i,1);else{console.warn("Cannot remove event, no matching event found:",e,t);return}else delete this.events[e];else{console.warn("Cannot remove event, no events set on:",e);return}this._notifySubscriptionChange(e,!1)}subscribed(e){return this.events[e]&&this.events[e].length}_notifySubscriptionChange(e,t){var i=this.subscriptionNotifiers[e];if(i)i.forEach((s)=>{s(t)})}_dispatch(e,...t){let i=this.events[e],s=i?.length;if(s){let r=i[0].apply(this.table,t);for(let o=1;o<s;o++)i[o].apply(this.table,t);return r}}_debugDispatch(e,...t){if(this.debug===!0||this.debug.includes(e)){let i=["ExternalEvent:"+e,...t];console.log(...i)}return this._dispatch(e,...t)}}class Ve{constructor(e){this.events={},this.subscriptionNotifiers={},this.dispatch=e?this._debugDispatch.bind(this):this._dispatch.bind(this),this.chain=e?this._debugChain.bind(this):this._chain.bind(this),this.confirm=e?this._debugConfirm.bind(this):this._confirm.bind(this),this.debug=e}subscriptionChange(e,t){if(!this.subscriptionNotifiers[e])this.subscriptionNotifiers[e]=[];if(this.subscriptionNotifiers[e].push(t),this.subscribed(e))this._notifySubscriptionChange(e,!0)}subscribe(e,t,i=1e4){if(!this.events[e])this.events[e]=[];this.events[e].push({callback:t,priority:i}),this.events[e].sort((s,r)=>s.priority-r.priority),this._notifySubscriptionChange(e,!0)}unsubscribe(e,t){var i;if(this.events[e]){if(t)if(i=this.events[e].findIndex((s)=>s.callback===t),i>-1)this.events[e].splice(i,1);else{console.warn("Cannot remove event, no matching event found:",e,t);return}}else{console.warn("Cannot remove event, no events set on:",e);return}this._notifySubscriptionChange(e,!1)}subscribed(e){return this.events[e]&&this.events[e].length}_chain(e,t,i,s){let r=this.events[e];if(r&&r.length){if(!Array.isArray(t))t=[t];let o=t.slice(),a=o.length,l=i;for(let h=0;h<r.length;h++)o[a]=l,l=r[h].callback.apply(this,o);return l}return typeof s==="function"?s():s}_confirm(e,t){var i=!1;if(!Array.isArray(t))t=[t];if(this.subscribed(e))this.events[e].forEach((s,r)=>{if(s.callback.apply(this,t))i=!0});return i}_notifySubscriptionChange(e,t){var i=this.subscriptionNotifiers[e];if(i)i.forEach((s)=>{s(t)})}_dispatch(e,...t){let i=this.events[e];if(i)for(let s of i)s.callback.apply(this,t)}_debugDispatch(e,...t){if(this.debug===!0||this.debug.includes(e)){let i=["InternalEvent:"+e,...t];console.log(...i)}return this._dispatch(e,...t)}_debugChain(e,t,i,s){if(this.debug===!0||this.debug.includes(e)){let r=["InternalEvent:"+e,t,i,s];console.log(...r)}return this._chain(e,t,i,s)}_debugConfirm(e,t){if(this.debug===!0||this.debug.includes(e)){let i=["InternalEvent:"+e,t];console.log(...i)}return this._confirm(e,t)}}class Ne extends H{constructor(e){super(e)}_warnUser(){if(this.options("debugDeprecation"))console.warn(...arguments)}check(e,t,i){var s="";if(typeof this.options(e)<"u"){if(s="Deprecated Setup Option - Use of the %c"+e+"%c option is now deprecated",t){if(s=s+", Please use the %c"+t+"%c option instead",this._warnUser(s,"font-weight: bold;","font-weight: normal;","font-weight: bold;","font-weight: normal;"),i)this.table.options[t]=this.table.options[e]}else this._warnUser(s,"font-weight: bold;","font-weight: normal;");return!1}else return!0}checkMsg(e,t){if(typeof this.options(e)<"u")return this._warnUser("%cDeprecated Setup Option - Use of the %c"+e+" %c option is now deprecated, "+t,"font-weight: normal;","font-weight: bold;","font-weight: normal;"),!1;else return!0}msg(e){this._warnUser(e)}}class Ie extends H{constructor(e){super(e);this.deps={},this.props={}}initialize(){this.deps=Object.assign({},this.options("dependencies"))}lookup(e,t,i){if(Array.isArray(e)){for(let r of e){var s=this.lookup(r,t,!0);if(s)break}if(s)return s;else this.error(e)}else if(t)return this.lookupProp(e,t,i);else return this.lookupKey(e,i)}lookupProp(e,t,i){var s;if(this.props[e]&&this.props[e][t])return this.props[e][t];else if(s=this.lookupKey(e,i),s){if(!this.props[e])this.props[e]={};return this.props[e][t]=s[t]||s,this.props[e][t]}}lookupKey(e,t){var i;if(this.deps[e])i=this.deps[e];else if(window[e])this.deps[e]=window[e],i=this.deps[e];else if(!t)this.error(e);return i}error(e){console.error("Unable to find dependency",e,"Please check documentation and ensure you have imported the required library into your project")}}function gi(e,t){if(t)this.table.columnManager.renderer.reinitializeColumnWidths(e);if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function xe(e,t){if(e.forEach(function(i){i.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function bi(e,t){var i=0,s=this.table.rowManager.element.clientWidth,r=0,o=!1;if(e.forEach((a,l)=>{if(!a.widthFixed)a.reinitializeWidth();if(this.table.options.responsiveLayout?a.modules.responsive.visible:a.visible)o=a;if(a.visible)i+=a.getWidth()}),o){if(r=s-i+o.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))o.setWidth(0),this.table.modules.responsiveLayout.update();if(r>0)o.setWidth(r);else o.reinitializeWidth()}else if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function vi(e,t){var i=this.table.rowManager.element.getBoundingClientRect().width,s=0,r=0,o=0,a=0,l=[],h=[],d=0,u=0,c=0;function f(m){var b;if(typeof m=="string")if(m.indexOf("%")>-1)b=i/100*parseInt(m);else b=parseInt(m);else b=m;return b}function p(m,b,v,w){var x=[],S=0,k=0,A=0,B=o,C=0,y=0,R=[];function D(T){return v*(T.column.definition.widthGrow||1)}function z(T){return f(T.width)-v*(T.column.definition.widthShrink||0)}if(m.forEach(function(T,se){var Re=w?z(T):D(T);if(T.column.minWidth>=Re)x.push(T);else if(T.column.maxWidth&&T.column.maxWidth<Re){if(T.width=T.column.maxWidth,b-=T.column.maxWidth,B-=w?T.column.definition.widthShrink||1:T.column.definition.widthGrow||1,B)v=Math.floor(b/B)}else R.push(T),y+=w?T.column.definition.widthShrink||1:T.column.definition.widthGrow||1}),x.length)x.forEach(function(T){S+=w?T.width-T.column.minWidth:T.column.minWidth,T.width=T.column.minWidth}),k=b-S,A=y?Math.floor(k/y):k,C=p(R,k,A,w);else C=y?b-Math.floor(b/y)*y:b,R.forEach(function(T){T.width=w?z(T):D(T)});return C}if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update();if(this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight)i-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth;if(e.forEach(function(m){var b,v,w;if(m.visible)if(b=m.definition.width,v=parseInt(m.minWidth),b){if(w=f(b),s+=w>v?w:v,m.definition.widthShrink)h.push({column:m,width:w>v?w:v}),d+=m.definition.widthShrink}else l.push({column:m,width:0}),o+=m.definition.widthGrow||1}),r=i-s,a=Math.floor(r/o),c=p(l,r,a,!1),l.length&&c>0)l[l.length-1].width+=c;if(l.forEach(function(m){r-=m.width}),u=Math.abs(c)+r,u>0&&d)c=p(h,u,Math.floor(u/d),!0);if(c&&h.length)h[h.length-1].width-=c;l.forEach(function(m){m.column.setWidth(m.width)}),h.forEach(function(m){m.column.setWidth(m.width)})}var wi={fitData:gi,fitDataFill:xe,fitDataTable:xe,fitDataStretch:bi,fitColumns:vi};class Z extends F{static moduleName="layout";static modes=wi;constructor(e){super(e,"layout");this.mode=null,this.registerTableOption("layout","fitData"),this.registerTableOption("layoutColumnsOnNewData",!1),this.registerColumnOption("widthGrow"),this.registerColumnOption("widthShrink")}initialize(){var e=this.table.options.layout;if(Z.modes[e])this.mode=e;else console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+e),this.mode="fitData";this.table.element.setAttribute("tabulator-layout",this.mode),this.subscribe("column-init",this.initializeColumn.bind(this))}initializeColumn(e){if(e.definition.widthGrow)e.definition.widthGrow=Number(e.definition.widthGrow);if(e.definition.widthShrink)e.definition.widthShrink=Number(e.definition.widthShrink)}getMode(){return this.mode}layout(e){var t=this.table.columnManager.columnsByIndex.find((i)=>i.definition.variableHeight||i.definition.formatter==="textarea");if(this.dispatch("layout-refreshing"),Z.modes[this.mode].call(this,this.table.columnManager.columnsByIndex,e),t)this.table.rowManager.normalizeHeight(!0);this.dispatch("layout-refreshed")}}var Ci={default:{groups:{item:"item",items:"items"},columns:{},data:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",page_title:"Show Page",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page",all:"All",counter:{showing:"Showing",of:"of",rows:"rows",pages:"pages"}},headerFilters:{default:"filter column...",columns:{}}}};class ve extends F{static moduleName="localize";static langs=Ci;constructor(e){super(e);this.locale="default",this.lang=!1,this.bindings={},this.langList={},this.registerTableOption("locale",!1),this.registerTableOption("langs",{})}initialize(){if(this.langList=L.deepClone(ve.langs),this.table.options.columnDefaults.headerFilterPlaceholder!==!1)this.setHeaderFilterPlaceholder(this.table.options.columnDefaults.headerFilterPlaceholder);for(let e in this.table.options.langs)this.installLang(e,this.table.options.langs[e]);this.setLocale(this.table.options.locale),this.registerTableFunction("setLocale",this.setLocale.bind(this)),this.registerTableFunction("getLocale",this.getLocale.bind(this)),this.registerTableFunction("getLang",this.getLang.bind(this))}setHeaderFilterPlaceholder(e){this.langList.default.headerFilters.default=e}installLang(e,t){if(this.langList[e])this._setLangProp(this.langList[e],t);else this.langList[e]=t}_setLangProp(e,t){for(let i in t)if(e[i]&&typeof e[i]=="object")this._setLangProp(e[i],t[i]);else e[i]=t[i]}setLocale(e){e=e||"default";function t(i,s){for(var r in i)if(typeof i[r]=="object"){if(!s[r])s[r]={};t(i[r],s[r])}else s[r]=i[r]}if(e===!0&&navigator.language)e=navigator.language.toLowerCase();if(e){if(!this.langList[e]){let i=e.split("-")[0];if(this.langList[i])console.warn("Localization Error - Exact matching locale not found, using closest match: ",e,i),e=i;else console.warn("Localization Error - Matching locale not found, using default: ",e),e="default"}}if(this.locale=e,this.lang=L.deepClone(this.langList.default||{}),e!="default")t(this.langList[e],this.lang);this.dispatchExternal("localized",this.locale,this.lang),this._executeBindings()}getLocale(e){return this.locale}getLang(e){return e?this.langList[e]:this.lang}getText(e,t){var i=t?e+"|"+t:e,s=i.split("|"),r=this._getLangElement(s,this.locale);return r||""}_getLangElement(e,t){var i=this.lang;return e.forEach(function(s){var r;if(i)if(r=i[s],typeof r<"u")i=r;else i=!1}),i}bind(e,t){if(!this.bindings[e])this.bindings[e]=[];this.bindings[e].push(t),t(this.getText(e),this.lang)}_executeBindings(){for(let e in this.bindings)this.bindings[e].forEach((t)=>{t(this.getText(e),this.lang)})}}class We extends F{static moduleName="comms";constructor(e){super(e)}initialize(){this.registerTableFunction("tableComms",this.receive.bind(this))}getConnections(e){var t=[],i;return i=this.table.constructor.registry.lookupTable(e),i.forEach((s)=>{if(this.table!==s)t.push(s)}),t}send(e,t,i,s){var r=this.getConnections(e);if(r.forEach((o)=>{o.tableComms(this.table.element,t,i,s)}),!r.length&&e)console.warn("Table Connection Error - No tables matching selector found",e)}receive(e,t,i,s){if(this.table.modExists(t))return this.table.modules[t].commsReceived(e,i,s);else console.warn("Inter-table Comms Error - no such module:",t)}}var Ei=Object.freeze({__proto__:null,CommsModule:We,LayoutModule:Z,LocalizeModule:ve});class _{static registry={tables:[],register(e){_.registry.tables.push(e)},deregister(e){var t=_.registry.tables.indexOf(e);if(t>-1)_.registry.tables.splice(t,1)},lookupTable(e,t){var i=[],s,r;if(typeof e==="string"){if(s=document.querySelectorAll(e),s.length){for(var o=0;o<s.length;o++)if(r=_.registry.matchElement(s[o]),r)i.push(r)}}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement||e instanceof _){if(r=_.registry.matchElement(e),r)i.push(r)}else if(Array.isArray(e))e.forEach(function(a){i=i.concat(_.registry.lookupTable(a))});else if(!t)console.warn("Table Connection Error - Invalid Selector",e);return i},matchElement(e){return _.registry.tables.find(function(t){return e instanceof _?t===e:t.element===e})}};static findTable(e){var t=_.registry.lookupTable(e,!0);return Array.isArray(t)&&!t.length?!1:t}}class M extends _{static moduleBindings={};static moduleExtensions={};static modulesRegistered=!1;static defaultModules=!1;constructor(){super()}static initializeModuleBinder(e){if(!M.modulesRegistered){if(M.modulesRegistered=!0,M._registerModules(Ei,!0),e)M._registerModules(e)}}static _extendModule(e,t,i){if(M.moduleBindings[e]){var s=M.moduleBindings[e][t];if(s)if(typeof i=="object")for(let r in i)s[r]=i[r];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",t)}else console.warn("Module Error - module does not exist:",e)}static _registerModules(e,t){var i=Object.values(e);if(t)i.forEach((s)=>{s.prototype.moduleCore=!0});M._registerModule(i)}static _registerModule(e){if(!Array.isArray(e))e=[e];e.forEach((t)=>{M._registerModuleBinding(t),M._registerModuleExtensions(t)})}static _registerModuleBinding(e){if(e.moduleName)M.moduleBindings[e.moduleName]=e;else console.error("Unable to bind module, no moduleName defined",e.moduleName)}static _registerModuleExtensions(e){var t=e.moduleExtensions;if(e.moduleExtensions)for(let i in t){let s=t[i];if(M.moduleBindings[i])for(let r in s)M._extendModule(i,r,s[r]);else{if(!M.moduleExtensions[i])M.moduleExtensions[i]={};for(let r in s){if(!M.moduleExtensions[i][r])M.moduleExtensions[i][r]={};Object.assign(M.moduleExtensions[i][r],s[r])}}}M._extendModuleFromQueue(e)}static _extendModuleFromQueue(e){var t=M.moduleExtensions[e.moduleName];if(t)for(let i in t)M._extendModule(e.moduleName,i,t[i])}_bindModules(){var e=[],t=[],i=[];this.modules={};for(var s in M.moduleBindings){let r=M.moduleBindings[s],o=new r(this);if(this.modules[s]=o,r.prototype.moduleCore)this.modulesCore.push(o);else if(r.moduleInitOrder)if(r.moduleInitOrder<0)e.push(o);else t.push(o);else i.push(o)}e.sort((r,o)=>r.moduleInitOrder>o.moduleInitOrder?1:-1),t.sort((r,o)=>r.moduleInitOrder>o.moduleInitOrder?1:-1),this.modulesRegular=e.concat(i.concat(t))}}class Ge extends H{constructor(e){super(e);this.element=this._createAlertElement(),this.msgElement=this._createMsgElement(),this.type=null,this.element.appendChild(this.msgElement)}_createAlertElement(){var e=document.createElement("div");return e.classList.add("tabulator-alert"),e}_createMsgElement(){var e=document.createElement("div");return e.classList.add("tabulator-alert-msg"),e.setAttribute("role","alert"),e}_typeClass(){return"tabulator-alert-state-"+this.type}alert(e,t="msg"){if(e){this.clear(),this.dispatch("alert-show",t),this.type=t;while(this.msgElement.firstChild)this.msgElement.removeChild(this.msgElement.firstChild);if(this.msgElement.classList.add(this._typeClass()),typeof e==="function")e=e();if(e instanceof HTMLElement)this.msgElement.appendChild(e);else this.msgElement.innerHTML=e;this.table.element.appendChild(this.element)}}clear(){if(this.dispatch("alert-hide",this.type),this.element.parentNode)this.element.parentNode.removeChild(this.element);this.msgElement.classList.remove(this._typeClass())}}class P extends M{static defaultOptions=mi;static extendModule(){P.initializeModuleBinder(),P._extendModule(...arguments)}static registerModule(){P.initializeModuleBinder(),P._registerModule(...arguments)}constructor(e,t,i){super();if(P.initializeModuleBinder(i),this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.alertManager=null,this.vdomHoz=null,this.externalEvents=null,this.eventBus=null,this.interactionMonitor=!1,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.rtl=!1,this.originalElement=null,this.componentFunctionBinder=new Oe(this),this.dataLoader=!1,this.modules={},this.modulesCore=[],this.modulesRegular=[],this.deprecationAdvisor=new Ne(this),this.optionsList=new be(this,"table constructor"),this.dependencyRegistry=new Ie(this),this.initialized=!1,this.destroyed=!1,this.initializeElement(e)){if(this.element.id)this.instanceId=this.element.id;else this.instanceId=Math.random().toString(36).slice(2,7);this.initializeCoreSystems(t),setTimeout(()=>{this._create()})}this.constructor.registry.register(this)}initializeElement(e){if(typeof HTMLElement<"u"&&e instanceof HTMLElement)return this.element=e,!0;else if(typeof e==="string")if(this.element=document.querySelector(e),this.element)return!0;else return console.error("Tabulator Creation Error - no element found matching selector: ",e),!1;else return console.error("Tabulator Creation Error - Invalid element provided:",e),!1}initializeCoreSystems(e){this.columnManager=new De(this),this.rowManager=new Fe(this),this.footerManager=new Ae(this),this.dataLoader=new Pe(this),this.alertManager=new Ge(this),this._bindModules(),this.options=this.optionsList.generate(P.defaultOptions,e),this._clearObjectPointers(),this._mapDeprecatedFunctionality(),this.externalEvents=new Be(this,this.options,this.options.debugEventsExternal),this.eventBus=new Ve(this.options.debugEventsInternal),this.interactionMonitor=new _e(this),this.dataLoader.initialize(),this.footerManager.initialize(),this.dependencyRegistry.initialize()}_mapDeprecatedFunctionality(){}_clearSelection(){if(this.element.classList.add("tabulator-block-select"),window.getSelection){if(window.getSelection().empty)window.getSelection().empty();else if(window.getSelection().removeAllRanges)window.getSelection().removeAllRanges()}else if(document.selection)document.selection.empty();this.element.classList.remove("tabulator-block-select")}_create(){this.externalEvents.dispatch("tableBuilding"),this.eventBus.dispatch("table-building"),this._rtlCheck(),this._buildElement(),this._initializeTable(),this.initialized=!0,this._loadInitialData().finally(()=>{this.eventBus.dispatch("table-initialized"),this.externalEvents.dispatch("tableBuilt")})}_rtlCheck(){var e=window.getComputedStyle(this.element);switch(this.options.textDirection){case"auto":if(e.direction!=="rtl")break;case"rtl":this.element.classList.add("tabulator-rtl"),this.rtl=!0;break;case"ltr":this.element.classList.add("tabulator-ltr");default:this.rtl=!1}}_clearObjectPointers(){if(this.options.columns=this.options.columns.slice(0),Array.isArray(this.options.data)&&!this.options.reactiveData)this.options.data=this.options.data.slice(0)}_buildElement(){var e=this.element,t=this.options,i;if(e.tagName==="TABLE"){this.originalElement=this.element,i=document.createElement("div");var s=e.attributes;for(var r in s)if(typeof s[r]=="object")i.setAttribute(s[r].name,s[r].value);e.parentNode.replaceChild(i,e),this.element=e=i}e.classList.add("tabulator"),e.setAttribute("role","grid"),e.setAttribute("aria-owns","tabulator-table-body-"+this.instanceId);while(e.firstChild)e.removeChild(e.firstChild);if(t.height)t.height=isNaN(t.height)?t.height:t.height+"px",e.style.height=t.height;if(t.minHeight!==!1)t.minHeight=isNaN(t.minHeight)?t.minHeight:t.minHeight+"px",e.style.minHeight=t.minHeight;if(t.maxHeight!==!1)t.maxHeight=isNaN(t.maxHeight)?t.maxHeight:t.maxHeight+"px",e.style.maxHeight=t.maxHeight}_initializeTable(){var e=this.element,t=this.options;if(this.interactionMonitor.initialize(),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modulesCore.forEach((i)=>{i.initialize()}),e.appendChild(this.columnManager.getElement()),e.appendChild(this.rowManager.getElement()),t.footerElement)this.footerManager.activate();if(t.autoColumns&&t.data)this.columnManager.generateColumnsFromRowData(this.options.data);this.modulesRegular.forEach((i)=>{i.initialize()}),this.columnManager.setColumns(t.columns),this.eventBus.dispatch("table-built")}_loadInitialData(){return this.dataLoader.load(this.options.data).finally(()=>{this.columnManager.verticalAlignHeaders()})}destroy(){var e=this.element;this.destroyed=!0,this.constructor.registry.deregister(this),this.eventBus.dispatch("table-destroy"),this.rowManager.destroy();while(e.firstChild)e.removeChild(e.firstChild);e.classList.remove("tabulator"),e.removeAttribute("tabulator-layout"),this.externalEvents.dispatch("tableDestroyed")}_detectBrowser(){var e=navigator.userAgent||navigator.vendor||window.opera;if(e.indexOf("Trident")>-1)this.browser="ie",this.browserSlow=!0;else if(e.indexOf("Edge")>-1)this.browser="edge",this.browserSlow=!0;else if(e.indexOf("Firefox")>-1)this.browser="firefox",this.browserSlow=!1;else if(e.indexOf("Mac OS")>-1)this.browser="safari",this.browserSlow=!1;else this.browser="other",this.browserSlow=!1;this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e.slice(0,4))}initGuard(e,t){var i,s;if(this.options.debugInitialization&&!this.initialized){if(!e)if(i=Error().stack.split(`
|
|
11
|
+
`),s=i[0]=="Error"?i[2]:i[1],s[0]==" ")e=s.trim().split(" ")[1].split(".")[1];else e=s.trim().split("@")[0];console.warn("Table Not Initialized - Calling the "+e+" function before the table is initialized may result in inconsistent behavior, Please wait for the `tableBuilt` event before calling this function."+(t?" "+t:""))}return this.initialized}blockRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-blocking"),this.rowManager.blockRedraw(),this.columnManager.blockRedraw(),this.eventBus.dispatch("redraw-blocked")}restoreRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-restoring"),this.rowManager.restoreRedraw(),this.columnManager.restoreRedraw(),this.eventBus.dispatch("redraw-restored")}setData(e,t,i){return this.initGuard(!1,"To set initial data please use the 'data' property in the table constructor."),this.dataLoader.load(e,t,i,!1)}clearData(){this.initGuard(),this.dataLoader.blockActiveLoad(),this.rowManager.clearData()}getData(e){return this.rowManager.getData(e)}getDataCount(e){return this.rowManager.getDataCount(e)}getRedrawBlock(){return this.rowManager.redrawBlock||this.columnManager.redrawBlock}replaceData(e,t,i){return this.initGuard(),this.dataLoader.load(e,t,i,!0,!0)}updateData(e){var t=0;return this.initGuard(),new Promise((i,s)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e&&e.length>0)e.forEach((r)=>{var o=this.rowManager.findRow(r[this.options.index]);if(o)t++,o.updateData(r).then(()=>{if(t--,!t)i()}).catch((a)=>{s("Update Error - Unable to update row",r,a)});else s("Update Error - Unable to find row",r)});else console.warn("Update Error - No data provided"),s("Update Error - No data provided")})}addData(e,t,i){return this.initGuard(),new Promise((s,r)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e)this.rowManager.addRows(e,t,i).then((o)=>{var a=[];o.forEach(function(l){a.push(l.getComponent())}),s(a)});else console.warn("Update Error - No data provided"),r("Update Error - No data provided")})}updateOrAddData(e){var t=[],i=0;return this.initGuard(),new Promise((s,r)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e&&e.length>0)e.forEach((o)=>{var a=this.rowManager.findRow(o[this.options.index]);if(i++,a)a.updateData(o).then(()=>{if(i--,t.push(a.getComponent()),!i)s(t)});else this.rowManager.addRows(o).then((l)=>{if(i--,t.push(l[0].getComponent()),!i)s(t)})});else console.warn("Update Error - No data provided"),r("Update Error - No data provided")})}getRow(e){var t=this.rowManager.findRow(e);if(t)return t.getComponent();else return console.warn("Find Error - No matching row found:",e),!1}getRowFromPosition(e){var t=this.rowManager.getRowFromPosition(e);if(t)return t.getComponent();else return console.warn("Find Error - No matching row found:",e),!1}deleteRow(e){var t=[];if(this.initGuard(),!Array.isArray(e))e=[e];for(let i of e){let s=this.rowManager.findRow(i,!0);if(s)t.push(s);else return console.error("Delete Error - No matching row found:",i),Promise.reject("Delete Error - No matching row found")}return t.sort((i,s)=>this.rowManager.rows.indexOf(i)>this.rowManager.rows.indexOf(s)?1:-1),t.forEach((i)=>{i.delete()}),this.rowManager.reRenderInPosition(),Promise.resolve()}addRow(e,t,i){if(this.initGuard(),typeof e==="string")e=JSON.parse(e);return this.rowManager.addRows(e,t,i,!0).then((s)=>s[0].getComponent())}updateOrAddRow(e,t){var i=this.rowManager.findRow(e);if(this.initGuard(),typeof t==="string")t=JSON.parse(t);if(i)return i.updateData(t).then(()=>i.getComponent());else return this.rowManager.addRows(t).then((s)=>s[0].getComponent())}updateRow(e,t){var i=this.rowManager.findRow(e);if(this.initGuard(),typeof t==="string")t=JSON.parse(t);if(i)return i.updateData(t).then(()=>Promise.resolve(i.getComponent()));else return console.warn("Update Error - No matching row found:",e),Promise.reject("Update Error - No matching row found")}scrollToRow(e,t,i){var s=this.rowManager.findRow(e);if(s)return this.rowManager.scrollToRow(s,t,i);else return console.warn("Scroll Error - No matching row found:",e),Promise.reject("Scroll Error - No matching row found")}moveRow(e,t,i){var s=this.rowManager.findRow(e);if(this.initGuard(),s)s.moveToRow(t,i);else console.warn("Move Error - No matching row found:",e)}getRows(e){return this.rowManager.getComponents(e)}getRowPosition(e){var t=this.rowManager.findRow(e);if(t)return t.getPosition();else return console.warn("Position Error - No matching row found:",e),!1}setColumns(e){this.initGuard(!1,"To set initial columns please use the 'columns' property in the table constructor"),this.columnManager.setColumns(e)}getColumns(e){return this.columnManager.getComponents(e)}getColumn(e){var t=this.columnManager.findColumn(e);if(t)return t.getComponent();else return console.warn("Find Error - No matching column found:",e),!1}getColumnDefinitions(){return this.columnManager.getDefinitionTree()}showColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)t.show();else return console.warn("Column Show Error - No matching column found:",e),!1}hideColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)t.hide();else return console.warn("Column Hide Error - No matching column found:",e),!1}toggleColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)if(t.visible)t.hide();else t.show();else return console.warn("Column Visibility Toggle Error - No matching column found:",e),!1}addColumn(e,t,i){var s=this.columnManager.findColumn(i);return this.initGuard(),this.columnManager.addColumn(e,t,s).then((r)=>r.getComponent())}deleteColumn(e){var t=this.columnManager.findColumn(e);if(this.initGuard(),t)return t.delete();else return console.warn("Column Delete Error - No matching column found:",e),Promise.reject()}updateColumnDefinition(e,t){var i=this.columnManager.findColumn(e);if(this.initGuard(),i)return i.updateDefinition(t);else return console.warn("Column Update Error - No matching column found:",e),Promise.reject()}moveColumn(e,t,i){var s=this.columnManager.findColumn(e),r=this.columnManager.findColumn(t);if(this.initGuard(),s)if(r)this.columnManager.moveColumn(s,r,i);else console.warn("Move Error - No matching column found:",r);else console.warn("Move Error - No matching column found:",e)}scrollToColumn(e,t,i){return new Promise((s,r)=>{var o=this.columnManager.findColumn(e);if(o)return this.columnManager.scrollToColumn(o,t,i);else return console.warn("Scroll Error - No matching column found:",e),Promise.reject("Scroll Error - No matching column found")})}redraw(e){this.initGuard(),this.columnManager.redraw(e),this.rowManager.redraw(e)}setHeight(e){this.options.height=isNaN(e)?e:e+"px",this.element.style.height=this.options.height,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMaxHeight(e){this.options.maxHeight=isNaN(e)?e:e+"px",this.element.style.maxHeight=this.options.maxHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMinHeight(e){this.options.minHeight=isNaN(e)?e:e+"px",this.element.style.minHeight=this.options.minHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}on(e,t){this.externalEvents.subscribe(e,t)}off(e,t){this.externalEvents.unsubscribe(e,t)}dispatchEvent(){var e=Array.from(arguments);e.shift(),this.externalEvents.dispatch(...arguments)}alert(e,t){this.initGuard(),this.alertManager.alert(e,t)}clearAlert(){this.initGuard(),this.alertManager.clear()}modExists(e,t){if(this.modules[e])return!0;else{if(t)console.error("Tabulator Module Not Installed: "+e);return!1}}module(e){var t=this.modules[e];if(!t)console.error("Tabulator module not installed: "+e);return t}}var W={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},je=(e)=>(...t)=>({_$litDirective$:e,values:t});class we{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}var{I:Oi}=eI;var Ue=(e)=>e.strings===void 0;var yi={},$e=(e,t=yi)=>e._$AH=t;var Ce=je(class extends we{constructor(e){if(super(e),e.type!==W.PROPERTY&&e.type!==W.ATTRIBUTE&&e.type!==W.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!Ue(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===Zc||t===ft)return t;let{element:i,name:s}=e;if(e.type===W.PROPERTY){if(t===i[s])return Zc}else if(e.type===W.BOOLEAN_ATTRIBUTE){if(!!t===i.hasAttribute(s))return Zc}else if(e.type===W.ATTRIBUTE&&i.getAttribute(s)===t+"")return Zc;return $e(e),t}});function G(e){return e.target}function Ke(e,t,i){return(s,r,o,a)=>{let l=e("jx-grid-editor"),h=!1,d=(f)=>{if(!h)h=!0,o(Lp(f,t))},u=()=>{if(!h)h=!0,a()},c=t.kind==="date"?Qo(s.getValue()).slice(0,10):Qo(s.getValue());return io(Wr`<input
|
|
12
12
|
class="jx-grid-input"
|
|
13
13
|
type=${i}
|
|
14
14
|
.value=${Ce(c)}
|
|
15
15
|
@keydown=${(f)=>{if(f.key==="Enter")d(G(f).value);else if(f.key==="Escape")u()}}
|
|
16
16
|
@blur=${(f)=>d(G(f).value)}
|
|
17
|
-
/>`,l),r(()=>{let f=l.querySelector("input");f?.focus(),f?.select()}),l}}function Ri(e){return(t,i,s,r)=>{let o=e("jx-grid-editor"),a=!1;return io(
|
|
17
|
+
/>`,l),r(()=>{let f=l.querySelector("input");f?.focus(),f?.select()}),l}}function Ri(e){return(t,i,s,r)=>{let o=e("jx-grid-editor"),a=!1;return io(Wr`<input
|
|
18
18
|
class="jx-grid-checkbox"
|
|
19
19
|
type="checkbox"
|
|
20
20
|
.checked=${Ce(t.getValue()===!0)}
|
|
21
21
|
@change=${(l)=>{if(!a)a=!0,s(G(l).checked)}}
|
|
22
22
|
@keydown=${(l)=>{if(l.key==="Escape"&&!a)a=!0,r();else if(l.key==="Enter"&&!a)a=!0,s(G(l).checked)}}
|
|
23
23
|
@blur=${(l)=>{if(!a)a=!0,s(G(l).checked)}}
|
|
24
|
-
/>`,o),i(()=>o.querySelector("input")?.focus()),o}}function xi(e,t){let i=Array.isArray(t.schema?.enum)?t.schema.enum.map(String):[];return(s,r,o,a)=>{let l=e("jx-grid-editor"),h=!1,d=Qo(s.getValue());return io(
|
|
24
|
+
/>`,o),i(()=>o.querySelector("input")?.focus()),o}}function xi(e,t){let i=Array.isArray(t.schema?.enum)?t.schema.enum.map(String):[];return(s,r,o,a)=>{let l=e("jx-grid-editor"),h=!1,d=Qo(s.getValue());return io(Wr`<select
|
|
25
25
|
class="jx-grid-select"
|
|
26
26
|
@change=${(u)=>{if(!h){h=!0;let{value:c}=u.target;o(c===""?null:c)}}}
|
|
27
27
|
@keydown=${(u)=>{if(u.key==="Escape"&&!h)h=!0,a()}}
|
|
28
28
|
@blur=${()=>{if(!h)h=!0,a()}}
|
|
29
29
|
>
|
|
30
30
|
<option value="" ?selected=${d===""}>—</option>
|
|
31
|
-
${i.map((u)=>
|
|
32
|
-
</select>`,l),r(()=>l.querySelector("select")?.focus()),l}}function Ti(e,t){return(i,s,r,o)=>{let a=e("jx-grid-editor jx-grid-pill-editor"),l=
|
|
33
|
-
${h.map((m,b)=>
|
|
31
|
+
${i.map((u)=>Wr`<option value=${u} ?selected=${u===d}>${u}</option>`)}
|
|
32
|
+
</select>`,l),r(()=>l.querySelector("select")?.focus()),l}}function Ti(e,t){return(i,s,r,o)=>{let a=e("jx-grid-editor jx-grid-pill-editor"),l=Lp(i.getValue(),t),h=Array.isArray(l)?[...l]:[],d=!1,u=(m)=>{if(d)return;if(d=!0,m)r(m);else o()},c=()=>a.querySelector("input"),f=(m)=>{let b=m.value.trim();if(b==="")return!1;return h.push(b),m.value="",!0},p=()=>{io(Wr`<span class="jx-grid-pills">
|
|
33
|
+
${h.map((m,b)=>Wr`<span class="jx-grid-chip"
|
|
34
34
|
>${m}<button
|
|
35
35
|
class="jx-grid-chip-x"
|
|
36
36
|
title="Remove"
|
|
@@ -46,7 +46,7 @@ Data: `,e)}_wipeElements(){this.dispatch("rows-wipe"),this.destroy(),this.ad
|
|
|
46
46
|
@keydown=${(m)=>{let b=G(m);if(m.key==="Enter"||m.key===","){if(m.preventDefault(),f(b))p(),c()?.focus();else if(m.key==="Enter")u([...h])}else if(m.key==="Backspace"&&b.value===""&&h.length>0)h.pop(),p(),c()?.focus();else if(m.key==="Escape")u(null)}}
|
|
47
47
|
@blur=${(m)=>{f(G(m)),u([...h])}}
|
|
48
48
|
/>
|
|
49
|
-
</span>`,a)};return p(),s(()=>c()?.focus()),a}}function Xe(e,t){if(e.kind==="readonly"||!e.editable&&!e.insertOnly)return;switch(e.kind){case"boolean":return Ri(t);case"enum":return xi(t,e);case"date":return Ke(t,e,"date");case"array":return Ti(t,e);default:return Ke(t,e,"text")}}function Je(e,t){return(i)=>{let s=i.getValue(),r=t(`jx-grid-cell-content jx-grid-kind-${e.kind}`);if(e.kind==="boolean")io(
|
|
49
|
+
</span>`,a)};return p(),s(()=>c()?.focus()),a}}function Xe(e,t){if(e.kind==="readonly"||!e.editable&&!e.insertOnly)return;switch(e.kind){case"boolean":return Ri(t);case"enum":return xi(t,e);case"date":return Ke(t,e,"date");case"array":return Ti(t,e);default:return Ke(t,e,"text")}}function Je(e,t){return(i)=>{let s=i.getValue(),r=t(`jx-grid-cell-content jx-grid-kind-${e.kind}`);if(e.kind==="boolean")io(Wr`${s===!0?"✓":""}`,r);else if(e.kind==="array"&&Array.isArray(s))io(Wr`${s.map((o)=>Wr`<span class="jx-grid-chip">${o}</span>`)}`,r);else io(Wr`${Qo(s)}`,r);return r}}var qe={$schema:"https://jxsuite.com/schema/v1",$id:"StudioGridCell",$description:"The value picker for a grid cell that cannot be edited in place. An image and a relationship both pick from a list that is bigger than a cell, and their pickers render OUTSIDE it — which Tabulator's range module reads as an outside interaction and blur-cancels. So these two kinds skip the in-cell editor session entirely: a double click opens this panel, anchored on the cell, and every pick writes straight through the edit buffer. The media picker is an ISLAND (§9.4): `[part=\"picker-host\"]` is drawn empty and `ui/media-picker.ts` mounts `media-field.json` into it. It stays an island now that it is a document too, because what goes in the box is the caller's decision rather than this panel's.",tagName:"jx-popover",attributes:{part:"cell-panel"},$props:{label:"${state.title}",x:{$ref:"#/state/x"},y:{$ref:"#/state/y"}},children:[{tagName:"div",attributes:{part:"body"},style:{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)",padding:"var(--jx-space-3)",minWidth:"260px",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",color:"var(--fg)",'& [part="title"]':{fontWeight:"600",fontSize:"var(--jx-text-sm)",margin:"0"},'& [part="hint"]':{margin:"0",color:"var(--fg-dim)",fontSize:"var(--jx-text-xs)"},'& [part="actions"]':{display:"flex",justifyContent:"flex-end"},'& [part="picker-host"]':{display:"block",minWidth:"0"}},children:[{tagName:"p",attributes:{part:"title"},textContent:"${state.title}"},{tagName:"div",attributes:{part:"kind-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/kind"},cases:{reference:{tagName:"div",attributes:{part:"reference"},style:{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)"},children:[{tagName:"div",attributes:{part:"hint-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/hintState"},cases:{shown:{tagName:"p",attributes:{part:"hint"},textContent:"${state.hint}"}}},{tagName:"jx-select",attributes:{part:"entry"},$props:{size:"sm",label:"${state.title}",options:{$ref:"#/state/options"},value:{$ref:"#/state/value"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pick"},value:[{$ref:"event#/target/value"}]}]}},{$description:"An id the target collection does not hold is still a legal reference — a draft entry, or one another repository owns — so the list is a shortcut rather than the whole of what may be written.",tagName:"jx-textfield",attributes:{part:"custom"},$props:{size:"sm",label:"Custom id",placeholder:"Custom id…",value:{$ref:"#/state/custom"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pick"},value:[{$ref:"event#/target/value"}]}]}}]},image:{tagName:"div",attributes:{part:"picker-host"}}}},{tagName:"div",attributes:{part:"actions"},children:[{tagName:"jx-button",attributes:{part:"done"},$props:{variant:"secondary",size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/done"},value:[]}]},children:[{tagName:"span",textContent:"Done"}]}]}]}]};E("grid-cell",qe);var Mi="grid/cell";function Li(e){let t=n(e)?void 0:e.attributes?.part;return n(t)?t:""}function Ee(e){let{view:t}=e,s={anchor:null,name:"grid-cell",scope:g({custom:t.custom,done:()=>{r.close(),e.dismissed?.()},hint:t.hint,hintState:t.hintState,kind:t.kind,options:t.options,pick:e.pick,title:t.title,value:t.value,x:t.x,y:t.y}),slot:Mi};if(e.dismissed)s.onDismissed=e.dismissed;if(e.island)s.onNodeCreated=(o,a,l)=>{if(Li(l)==="picker-host"&&o instanceof HTMLElement)e.island?.(o)};let r=qu(s);return r}function ye(e){return e.kind==="image"||e.kind==="reference"}function Si(e){let t=e.schema?.$ref;if(!n(t)||!t.startsWith("#/content/"))return null;return t.slice(10)}function Di(e){return{x:Math.max(4,Math.min(e.left,window.innerWidth-340)),y:Math.max(4,Math.min(e.bottom+2,window.innerHeight-200))}}async function Ye(e){let{anchor:t,column:i,commit:s,value:r}=e,o=Qo(r),a=Di(t),l=(h)=>{let d=h.trim();s(d===""?null:d)};if(i.kind==="reference"){let h=Si(i),d=h?await Db(h):[],u=d.includes(o);Ee({pick:l,view:{custom:u?"":o,hint:h?`Entries of “${h}”`:"",hintState:h?"shown":"hidden",kind:"reference",options:[{label:"—",value:""},...d.map((c)=>({label:c,value:c}))],title:i.title,value:u?o:"",...a}});return}Ee({island:(h)=>{Kl(h,i.field,o,l)},pick:l,view:{custom:"",hint:"",hintState:"hidden",kind:"image",options:[],title:i.title,value:o,...a}})}var Qe=!1;function zi(){if(Qe)return;P.registerModule([X,ie,j,N,I,he,de,U,ue,ce,pe,K,ge]),Qe=!0}function Ze(e){let t=document.createElement("div");return t.className=e,t}function Hi(e){switch(e.kind){case"number":return"number";case"boolean":return"boolean";case"array":return(t,i)=>Qo(t).localeCompare(Qo(i));default:return"string"}}function ms(e,t){zi();let{buffer:i}=t,{columns:s}=t.state,r=new Map(s.map((C)=>[C.field,C])),o=!t.source.capabilities.remotePaging,a=!1,l=!1,h=!1,d=(C)=>String(C.getData()[WS]??""),u=(C)=>{let y=i.rowState(d(C)),R=C.getElement();R.classList.toggle("jx-grid-row--pending-delete",y==="pending-delete"),R.classList.toggle("jx-grid-row--pending-insert",y==="pending-insert"),R.classList.toggle("jx-grid-row--stale",y==="stale")},c=(C)=>{let y=i.cellState(d(C.getRow()),C.getField()),R=C.getElement();R.classList.toggle("jx-grid-cell--dirty",y==="dirty"),R.classList.toggle("jx-grid-cell--error",y==="error"),R.classList.toggle("jx-grid-cell--stale",y==="stale");let D=i.cellError(d(C.getRow()),C.getField());if(D)R.title=D;else R.removeAttribute("title")},f=(C,y)=>(C.editable||C.insertOnly===!0&&i.isInsertKey(y))&&i.rowState(y)!=="pending-delete",p=s.map((C)=>{let y=Je(C,Ze);return{editable:(R)=>f(C,d(R.getRow())),editor:ye(C)?void 0:Xe(C,Ze),field:C.field,formatter:(R,D,z)=>(z(()=>c(R)),y(R)),frozen:C.pk===!0?!0:void 0,headerFilter:o&&C.kind!=="boolean"?"input":void 0,headerSort:!t.source.capabilities.remoteSort,sorter:Hi(C),title:C.title,width:C.widthHint}}),m=t.source.id,b=Pd(m),v=new P(e,{clipboard:!0,clipboardCopyConfig:{columnHeaders:!1,rowHeaders:!1},clipboardCopyRowRange:"range",clipboardCopyStyled:!1,clipboardPasteAction:"range",clipboardPasteParser:"range",columnDefaults:{headerSortTristate:!0,resizable:"header"},columns:IN(p,b),data:t.effectiveRows(),editTriggerEvent:"dblclick",headerSortClickElement:"icon",height:"100%",history:!1,index:WS,layout:"fitDataFill",movableColumns:!0,placeholder:"No rows",reactiveData:!1,renderHorizontal:"virtual",renderVertical:"virtual",rowFormatter:u,selectableRange:1,selectableRangeClearCells:!0,selectableRangeClearCellsValue:null,selectableRangeColumns:!0,selectableRangeRows:!0}),w=()=>{if(!l){h=!0;return}a=!0,v.replaceData(t.effectiveRows()).catch(()=>{}).finally(()=>{a=!1})};t.bindView({refreshData:w});let x=new Promise((C)=>{v.on("tableBuilt",()=>{if(l=!0,h)h=!1,w();C()})}),k=QN(()=>{if(!l)return`grid[${m}]: building`;if(t.effectiveRows().length>0){if(v.getRanges().length===0)return`grid[${m}]: selection range not laid out`;let C=e.querySelector(".tabulator-range-overlay .tabulator-range");if(!C||Me(C).width===0)return`grid[${m}]: selection range outline not painted`}return null});v.on("cellEdited",(C)=>{if(a)return;let y=C.getField(),R=r.get(y);if(!R)return;let D=d(C.getRow()),z=Lp(C.getValue(),R);if(i.setCell(D,y,z),!zw(z,C.getValue())){a=!0;try{C.setValue(z,!0)}finally{a=!1}}c(C),u(C.getRow())}),v.on("columnResized",(C)=>{Sm(m,{widths:{[C.getField()]:C.getWidth()}})}),v.on("columnMoved",(C,y)=>{Sm(m,{order:y.map((R)=>R.getField())})}),v.on("cellDblClick",(C,y)=>{let R=r.get(y.getField()),D=d(y.getRow());if(!R||!ye(R)||!f(R,D))return;let z=Me(y.getElement());Ye({anchor:{bottom:z.bottom,left:z.left},column:R,commit:(T)=>{i.setCell(D,R.field,T),a=!0;try{y.setValue(T,!0)}finally{a=!1}c(y),u(y.getRow())},value:i.effectiveValue(D,R.field)})});let A=!1,B=()=>{if(A)return;A=!0,i.beginGroup(),queueMicrotask(()=>{A=!1,i.endGroup()})};return e.addEventListener("paste",B,!0),e.addEventListener("keydown",(C)=>{if(C.key==="Delete"||C.key==="Backspace")B()},!0),{destroy(){k(),t.bindView(null),v.destroy()},fillDown(){let[C]=v.getRanges();if(!C)return;let y=C.getCells();if(y.length<2)return;let[R]=y;if(!R)return;i.group(()=>{for(let D of y.slice(1))for(let[z,T]of D.entries()){let se=R[z];if(se)T.setValue(se.getValue(),!0)}})},getSelectedRowKeys(){let C=new Set;for(let y of v.getRanges())for(let R of y.getRows())C.add(d(R));return[...C]},refreshData:w,async revealRow(C){await x;let y=v.getRow(C),R=y?y.getCells():[],[D]=R,z=R.at(-1);if(!D||!z)return!1;return v.addRange(D,z),await v.scrollToRow(C,"center",!1).catch(()=>{}),!0},setSearch(C){let y=C.trim().toLowerCase();if(y===""){v.clearFilter(!1);return}let R=s.map((D)=>D.field);v.setFilter((D)=>R.some((z)=>Qo(D[z]).toLowerCase().includes(y)))}}}export{ms as createGridView};
|
|
50
50
|
|
|
51
|
-
//# debugId=
|
|
52
|
-
//# sourceMappingURL=grid-view-
|
|
51
|
+
//# debugId=6F55E6135E2AAC7864756E2164756E21
|
|
52
|
+
//# sourceMappingURL=grid-view-w9nfy203.js.map
|