@jxsuite/studio 5.6.0 → 5.7.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-zvax9fmb.js → 2020-cs2sb9t1.js} +3 -3
- package/dist/chunks/adapter-y5gdq19c.js +4 -0
- package/dist/chunks/{cf-account-picker-zfycs4k2.js → cf-account-picker-882a7ecm.js} +3 -3
- package/dist/chunks/cf-settings-20dznc3j.js +4 -0
- package/dist/chunks/components-q037dya7.js +4 -0
- package/dist/chunks/content-source-37x3vsap.js +4 -0
- package/dist/chunks/{convert-to-repeater-x19jr6c7.js → convert-to-repeater-grfep2w8.js} +3 -3
- package/dist/chunks/editor-j5sq149q.js +4 -0
- package/dist/chunks/entry-commands-c5h3nqck.js +4 -0
- package/dist/chunks/{extension-sections-y90sa0n4.js → extension-sections-dp8endhx.js} +3 -3
- package/dist/chunks/file-ops-937cvqk6.js +4 -0
- package/dist/chunks/files-tznwe1p1.js +4 -0
- package/dist/chunks/format-host-e2pjvd25.js +4 -0
- package/dist/chunks/fs-events-fv64ak3s.js +4 -0
- package/dist/chunks/git-panel-gb713ttc.js +4 -0
- package/dist/chunks/{grid-view-d9mybhn0.js → grid-view-5amhg604.js} +10 -10
- package/dist/chunks/iframe-host-t819mcg5.js +4 -0
- package/dist/chunks/{index-vnwy9d44.js → index-9ydfe04y.js} +3 -3
- package/dist/chunks/index-m0x5ztax.js +4 -0
- package/dist/chunks/{javascript-f0nrbdjb.js → javascript-d9pqgc2p.js} +2 -2
- package/dist/chunks/{jsonMode-nfa90dtf.js → jsonMode-800yvbem.js} +4 -4
- package/dist/chunks/jx-validate-zc9zp77s.js +4 -0
- package/dist/chunks/layers-4bsr82wz.js +4 -0
- package/dist/chunks/layers-panel-b6shnaax.js +4 -0
- package/dist/chunks/lit-html-cfn61dn7.js +4 -0
- package/dist/chunks/media-picker-ej0kdh1j.js +4 -0
- package/dist/chunks/menu-rtxf9chb.js +4 -0
- package/dist/chunks/{monaco-binding-antn79jf.js → monaco-binding-62dtmgbf.js} +3 -3
- package/dist/chunks/monaco-buffer-nn4dtx27.js +4 -0
- package/dist/chunks/{monaco-setup-k8s40vwg.js → monaco-setup-tj13ndtm.js} +3 -3
- package/dist/chunks/notify-ahs57a2z.js +4 -0
- package/dist/chunks/platform-v9xyfkbx.js +4 -0
- package/dist/chunks/publish-panel-bq36xcmj.js +4 -0
- package/dist/chunks/quick-search-zm00h9dh.js +4 -0
- package/dist/chunks/references-99ws0b0m.js +4 -0
- package/dist/chunks/right-panel-pq2f71q3.js +4 -0
- package/dist/chunks/section-registry-b2yzp9sw.js +4 -0
- package/dist/chunks/{studio-y17505ge.js → studio-01kbbqg3.js} +207 -207
- package/dist/chunks/{studio-gxna6yta.js → studio-01qza1n3.js} +4 -4
- package/dist/chunks/{studio-n2e133d6.js → studio-03wwfvyt.js} +4 -4
- package/dist/chunks/{studio-09n3fyy0.js → studio-0bbxhhce.js} +4 -4
- package/dist/chunks/{studio-dknr8m7b.js → studio-0k9mvpgj.js} +7 -7
- package/dist/chunks/{studio-s85vah66.js → studio-0scebvb9.js} +5 -5
- package/dist/chunks/studio-1a99w39s.js +5 -0
- package/dist/chunks/{studio-eegyf5vg.js → studio-1wvfxkyy.js} +4 -4
- package/dist/chunks/{studio-ft8pfpp0.js → studio-1x8x26k3.js} +4 -4
- package/dist/chunks/{studio-28pz4s1k.js → studio-222rqyyc.js} +4 -4
- package/dist/chunks/{studio-6exg5z4x.js → studio-4xppwncr.js} +3 -3
- package/dist/chunks/{studio-0c3fpdqj.js → studio-54g077x3.js} +5 -5
- package/dist/chunks/{studio-z47mm077.js → studio-56z7evx4.js} +6 -6
- package/dist/chunks/{studio-zkkdbbvd.js → studio-5e9zsamh.js} +6 -6
- package/dist/chunks/{studio-4yztve2t.js → studio-65fhspdd.js} +4 -4
- package/dist/chunks/{studio-b29h7g7s.js → studio-693nhyky.js} +4 -4
- package/dist/chunks/{studio-654fxcr0.js → studio-7pgy3xaf.js} +4 -4
- package/dist/chunks/{studio-k9pwvmz8.js → studio-888knnkc.js} +4 -4
- package/dist/chunks/{studio-b5rxwkj2.js → studio-9mqfamps.js} +4 -4
- package/dist/chunks/{studio-011em5cf.js → studio-a7xqhc3n.js} +4 -4
- package/dist/chunks/{studio-mf41717j.js → studio-aje966s9.js} +4 -4
- package/dist/chunks/studio-aqmph6k4.js +5 -0
- package/dist/chunks/studio-c6w3tq7t.js +5 -0
- package/dist/chunks/{studio-tzs6njnb.js → studio-c6zdm25z.js} +7 -7
- package/dist/chunks/{studio-1pxvgx1t.js → studio-c9d3pxf7.js} +4 -4
- package/dist/chunks/{studio-pvj970st.js → studio-ceb34dxj.js} +4 -4
- package/dist/chunks/studio-cvbkkfqb.js +5 -0
- package/dist/chunks/{studio-sadckcpp.js → studio-cxt150pj.js} +5 -5
- package/dist/chunks/{studio-891t1tv9.js → studio-dkn3x3hz.js} +4 -4
- package/dist/chunks/studio-e6re3rk1.js +5 -0
- package/dist/chunks/{studio-9n2j9nqk.js → studio-edbtvcd1.js} +4 -4
- package/dist/chunks/{studio-wr0pq67n.js → studio-eh0rac07.js} +4 -4
- package/dist/chunks/{studio-mm8x32gg.js → studio-evwgp1ym.js} +4 -4
- package/dist/chunks/{studio-9tkaykt5.js → studio-f195h2hq.js} +4 -4
- package/dist/chunks/{studio-0nm2skex.js → studio-fqq890ap.js} +3 -3
- package/dist/chunks/{studio-02y9cb4h.js → studio-frb0qbf7.js} +5 -5
- package/dist/chunks/{studio-je15p5v8.js → studio-gfn1kpxj.js} +5 -5
- package/dist/chunks/{studio-ymsjnvp9.js → studio-gh97gngt.js} +4 -4
- package/dist/chunks/{studio-zkvyd3ev.js → studio-gp02nqnw.js} +4 -4
- package/dist/chunks/{studio-5fc0728f.js → studio-hjbg8d5y.js} +7 -7
- package/dist/chunks/{studio-dtmdjmqb.js → studio-j6gnhvaa.js} +4 -4
- package/dist/chunks/{studio-d007j0z3.js → studio-mwxgyn9h.js} +6 -6
- package/dist/chunks/{studio-36s6qjgq.js → studio-n78gjfy8.js} +4 -4
- package/dist/chunks/studio-nbxqcgvf.js +5 -0
- package/dist/chunks/{studio-ks0ecgjx.js → studio-nt06yybj.js} +4 -4
- package/dist/chunks/{studio-ebt49j3c.js → studio-p7c1agz0.js} +5 -5
- package/dist/chunks/{studio-y164brht.js → studio-pwqfmt4p.js} +4 -4
- package/dist/chunks/{studio-6zyt56ek.js → studio-r3kaka4d.js} +4 -4
- package/dist/chunks/{studio-tj28pxa1.js → studio-semd1s8s.js} +4 -4
- package/dist/chunks/studio-skzanb0k.js +5 -0
- package/dist/chunks/{studio-z1vdxq0e.js → studio-spf2skgc.js} +4 -4
- package/dist/chunks/{studio-7w04zw8h.js → studio-st75kn99.js} +5 -5
- package/dist/chunks/{studio-dmymvk2j.js → studio-sxc0zvpt.js} +3 -3
- package/dist/chunks/studio-t1eedsyx.js +4 -0
- package/dist/chunks/{studio-153mwkyq.js → studio-tp642n5g.js} +4 -4
- package/dist/chunks/{studio-r7yeeqc4.js → studio-tw7rre6s.js} +4 -4
- package/dist/chunks/{studio-t0v47dpc.js → studio-tzegmy4w.js} +4 -4
- package/dist/chunks/studio-vavmwshr.js +5 -0
- package/dist/chunks/{studio-805fwp9k.js → studio-wma2c6g8.js} +4 -4
- package/dist/chunks/studio-x92tgnee.js +64 -0
- package/dist/chunks/studio-xk0z6msk.js +5 -0
- package/dist/chunks/{studio-njmg0e73.js → studio-xry7tk3z.js} +5 -5
- package/dist/chunks/{studio-sgzss898.js → studio-xta2vxp6.js} +7 -7
- package/dist/chunks/{studio-jsr14n1s.js → studio-xy3tv3az.js} +4 -4
- package/dist/chunks/{studio-6k1eswp9.js → studio-y7jehjrp.js} +4 -4
- package/dist/chunks/{studio-81twpmzj.js → studio-yr04mv2j.js} +4 -4
- package/dist/chunks/{studio-gj4j9e7k.js → studio-zd4kayn2.js} +4 -4
- package/dist/chunks/{studio-w8w9frjy.js → studio-zpnk016a.js} +12 -12
- package/dist/chunks/{tsMode-eq26t9gs.js → tsMode-k9s9fcag.js} +4 -4
- package/dist/chunks/workspace-b69mgm0e.js +4 -0
- package/dist/chunks/{ws-client-3gxqp06s.js → ws-client-0ja08haa.js} +3 -3
- package/dist/manifest.json +62 -62
- package/dist/studio.js +95 -95
- package/package.json +3 -3
- package/src/canvas/stage-scrollbar.ts +7 -7
- package/src/files/file-ops.ts +5 -8
- package/src/panels/jump-bar.ts +132 -158
- package/src/panels/pane-context.ts +8 -8
- package/src/panels/pane-grid.ts +18 -26
- package/src/panels/style-panel.ts +2 -2
- package/src/services/context-manager.ts +41 -70
- package/src/services/document-assistant.ts +12 -3
- package/src/services/harness/chat-reducer.ts +115 -0
- package/src/services/harness/turn-hooks.ts +50 -0
- package/src/services/tool-executor.ts +69 -288
- package/src/services/tool-outcomes.ts +12 -10
- package/src/studio.ts +2 -5
- package/src/surfaces/block-action-bar.json +6 -1
- package/src/surfaces/jump-bar.json +9 -12
- package/src/surfaces/jump-bar.ts +15 -16
- package/src/surfaces/pane-context.json +2 -2
- package/src/surfaces/pane-grid.json +8 -25
- package/src/surfaces/pane-grid.ts +7 -8
- package/src/surfaces/statusbar.json +71 -3
- package/src/surfaces/statusbar.ts +66 -139
- package/src/surfaces/style-panel.json +3 -3
- package/src/surfaces/style-panel.ts +11 -1
- package/dist/chunks/adapter-6zhjbpmd.js +0 -4
- package/dist/chunks/cf-settings-fpa485q3.js +0 -4
- package/dist/chunks/components-b0vh4sq8.js +0 -4
- package/dist/chunks/content-source-z5t0d0h9.js +0 -4
- package/dist/chunks/editor-7e23n4a8.js +0 -4
- package/dist/chunks/entry-commands-5cm6aba2.js +0 -4
- package/dist/chunks/file-ops-hv7gf757.js +0 -4
- package/dist/chunks/files-kb0epdxf.js +0 -4
- package/dist/chunks/format-host-eg1wy2bp.js +0 -4
- package/dist/chunks/fs-events-ky3vxfmh.js +0 -4
- package/dist/chunks/git-panel-yyg3bzp2.js +0 -4
- package/dist/chunks/iframe-host-9wdf0hes.js +0 -4
- package/dist/chunks/index-2tf0m2ne.js +0 -4
- package/dist/chunks/jx-validate-7w11db9v.js +0 -4
- package/dist/chunks/layers-7zasrpse.js +0 -4
- package/dist/chunks/layers-panel-9nzc4fdq.js +0 -4
- package/dist/chunks/lit-html-5qr7nbng.js +0 -4
- package/dist/chunks/media-picker-maevn9d4.js +0 -4
- package/dist/chunks/menu-wq6q0v3y.js +0 -4
- package/dist/chunks/monaco-buffer-9ry2rn5x.js +0 -4
- package/dist/chunks/notify-g91gjd6w.js +0 -4
- package/dist/chunks/platform-jdwjp2vt.js +0 -4
- package/dist/chunks/publish-panel-8yym447p.js +0 -4
- package/dist/chunks/quick-search-9bzm9kh3.js +0 -4
- package/dist/chunks/references-znssfqvq.js +0 -4
- package/dist/chunks/right-panel-czbzktm8.js +0 -4
- package/dist/chunks/section-registry-0rtq73qs.js +0 -4
- package/dist/chunks/studio-0mm38y62.js +0 -5
- package/dist/chunks/studio-27tc8q0h.js +0 -5
- package/dist/chunks/studio-7djymzt2.js +0 -5
- package/dist/chunks/studio-ant1zbp3.js +0 -5
- package/dist/chunks/studio-eb5sty2k.js +0 -5
- package/dist/chunks/studio-frv7vjhw.js +0 -5
- package/dist/chunks/studio-mb8jhtr4.js +0 -64
- package/dist/chunks/studio-nvykrgbj.js +0 -4
- package/dist/chunks/studio-nw4q9sdn.js +0 -5
- package/dist/chunks/studio-p6avneaq.js +0 -5
- package/dist/chunks/studio-vz7b43ng.js +0 -5
- package/dist/chunks/workspace-emt8454d.js +0 -4
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import"./studio-6k1eswp9.js";import"./studio-ft8pfpp0.js";import{br,Bl,tt,wS,Oi}from"./studio-dmymvk2j.js";import"./studio-dknr8m7b.js";import"./studio-b29h7g7s.js";import{T}from"./studio-z1vdxq0e.js";import{v}from"./studio-0nm2skex.js";import"./studio-ery42sqr.js";import{ld,cd}from"./studio-891t1tv9.js";import"./studio-k9pwvmz8.js";import"./studio-654fxcr0.js";import"./studio-27tc8q0h.js";import"./studio-ant1zbp3.js";import{I1}from"./studio-4yztve2t.js";import"./studio-81twpmzj.js";import"./studio-b5rxwkj2.js";import"./studio-28pz4s1k.js";import"./studio-tj28pxa1.js";import"./studio-w8w9frjy.js";import"./studio-sadckcpp.js";import"./studio-sgzss898.js";import"./studio-njmg0e73.js";import"./studio-ks0ecgjx.js";import{yb,Lu,Ro,jw}from"./studio-eb5sty2k.js";import"./studio-y164brht.js";import"./studio-pvj970st.js";import"./studio-7w04zw8h.js";import{lc,Gh,Wk}from"./studio-6zyt56ek.js";import{vE}from"./studio-7djymzt2.js";import"./studio-0mm38y62.js";import"./studio-02y9cb4h.js";import"./studio-011em5cf.js";import{He}from"./studio-nw4q9sdn.js";class D{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],n=s.length,r;for(let o=0;o<n;o++)if(i=i[s[o]],r=i,!i)break;return r}static deepClone(e,t,i=[]){var s={}.__proto__,n=[].__proto__;if(!t)t=Object.assign(Array.isArray(e)?[]:{},e);for(var r in e){let o=e[r],a,l;if(o!=null&&typeof o==="object"&&(o.__proto__===s||o.__proto__===n))if(a=i.findIndex((h)=>h.subject===o),a>-1)t[r]=i[a].copy;else l=Object.assign(Array.isArray(o)?[]:{},o),i.unshift({subject:o,copy:l}),t[r]=this.deepClone(o,l,i)}return t}}var Ye=class e extends D{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,n=i?t.touches[0].pageY:t.pageY;if(this.container!==document.body){let r=M.elOffset(this.container);s-=r.left,n-=r.top}return{x:s,y:n}}elementPositionCoords(t,i="right"){var s=M.elOffset(t),n,r,o;if(this.container!==document.body)n=M.elOffset(this.container),s.left-=n.left,s.top-=n.top;switch(i){case"right":r=s.left+t.offsetWidth,o=s.top-1;break;case"bottom":r=s.left,o=s.top+t.offsetHeight;break;case"left":r=s.left,o=s.top-1;break;case"top":r=s.left,o=s.top;break;case"center":r=s.left+t.offsetWidth/2,o=s.top+t.offsetHeight/2;break}return{x:r,y:o,offset:s}}show(t,i){var s,n;if(this.destroyed||this.table.destroyed)return this;if(!this.parent)this.reversedX=!1;if(t instanceof HTMLElement)s=t,n=this.elementPositionCoords(t,i).offset;else if(typeof t==="number")n={top:0,left:0};let r=this.resolveCoordsByOrigin(t,i);if(this.offset.top=r.y,this.offset.left=r.x,this.offset.right=null,this.applyOffset(),this.container.appendChild(this.element),typeof this.renderedCallback==="function")this.renderedCallback();return this._fitToScreen(r.x,r.y,s,n,i),this.visible=!0,this.subscribe("table-destroy",this.destroyBinding),this.element.addEventListener("mousedown",(o)=>{o.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,n,r){var o=this.container===document.body?document.documentElement.scrollTop:this.container.scrollTop,a=this.container===document.body?document.documentElement.scrollLeft:this.container.scrollLeft,l=this.container===document.body?a:0,h=this.container===document.body?a+document.documentElement.clientWidth:this.container.offsetWidth,d=this.container===document.body?o:0,u=this.container===document.body?o+document.documentElement.clientHeight:Math.max(this.container.offsetHeight,o?this.container.scrollHeight:0),c=this._elementWidth(),f=t;if(f+c>h||this.reversedX){if(s&&r==="right")f=n.left-c;else if(s&&r==="left")f=n.left+s.offsetWidth;else if(s)f=n.left-c;else f=h-c;this.reversedX=!0}if(f+c>h)f=h-c;if(f<l)f=l;if(this.offset.left=f,this.offset.right=null,i+this._elementHeight()>u)if(s)switch(r){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 p=this._elementHeight();if(p>u-d)this.offset.top=d,this.element.style.height=u-d+"px";else{let m=i-p;if(m<d)m=u-p;this.offset.top=m}}if(this.offset.top+this._elementHeight()>u)this.offset.top=u-this._elementHeight();if(this.offset.top<d)this.offset.top=d;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 z extends D{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 Ye(this.table,e,t)}alert(e,t){return this.table.alertManager.alert(e,t)}clearAlert(){return this.table.alertManager.clear()}}function te(e,t){var i=[];if(t=t||"",Array.isArray(e))e.forEach((n,r)=>{i=i.concat(te(n,t?t+"["+r+"]":r))});else if(typeof e==="object")for(var s in e)i=i.concat(te(e[s],t?t+"["+s+"]":s));else i.push({key:t,value:e});return i}function Qe(e){var t=te(e),i=[];return t.forEach(function(s){i.push(encodeURIComponent(s.key)+"="+encodeURIComponent(s.value))}),i.join("&")}function Ze(e,t,i){if(e){if(i&&Object.keys(i).length){if(!t.method||t.method.toLowerCase()=="get")t.method="get",e+=(e.includes("?")?"&":"?")+Qe(i)}}return e}var et={replace:function(e){return this.table.setData(e)},update:function(e){return this.table.updateOrAddData(e)},insert:function(e){return this.table.addData(e)}},it={table:function(e){var t=[],i=!0,s=this.table.columnManager.columns,n=[],r=[];if(e=e.split(`
|
|
1
|
+
import"./studio-y7jehjrp.js";import"./studio-1x8x26k3.js";import{br,Bl,tt,bk,Ni}from"./studio-sxc0zvpt.js";import"./studio-0k9mvpgj.js";import"./studio-693nhyky.js";import{T}from"./studio-spf2skgc.js";import{v}from"./studio-fqq890ap.js";import"./studio-ery42sqr.js";import{ld,cd}from"./studio-dkn3x3hz.js";import"./studio-888knnkc.js";import"./studio-7pgy3xaf.js";import"./studio-cvbkkfqb.js";import"./studio-c6w3tq7t.js";import{L1}from"./studio-65fhspdd.js";import"./studio-yr04mv2j.js";import"./studio-9mqfamps.js";import"./studio-222rqyyc.js";import"./studio-semd1s8s.js";import"./studio-zpnk016a.js";import"./studio-cxt150pj.js";import"./studio-xta2vxp6.js";import"./studio-xry7tk3z.js";import"./studio-pwqfmt4p.js";import"./studio-ceb34dxj.js";import"./studio-st75kn99.js";import{bb,Iu,Io,Hw}from"./studio-skzanb0k.js";import{lc,Gh,HS}from"./studio-r3kaka4d.js";import{mE}from"./studio-aqmph6k4.js";import"./studio-xk0z6msk.js";import"./studio-frb0qbf7.js";import"./studio-a7xqhc3n.js";import{Oe}from"./studio-vavmwshr.js";class D{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],n=s.length,r;for(let o=0;o<n;o++)if(i=i[s[o]],r=i,!i)break;return r}static deepClone(e,t,i=[]){var s={}.__proto__,n=[].__proto__;if(!t)t=Object.assign(Array.isArray(e)?[]:{},e);for(var r in e){let o=e[r],a,l;if(o!=null&&typeof o==="object"&&(o.__proto__===s||o.__proto__===n))if(a=i.findIndex((h)=>h.subject===o),a>-1)t[r]=i[a].copy;else l=Object.assign(Array.isArray(o)?[]:{},o),i.unshift({subject:o,copy:l}),t[r]=this.deepClone(o,l,i)}return t}}var Ye=class e extends D{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,n=i?t.touches[0].pageY:t.pageY;if(this.container!==document.body){let r=M.elOffset(this.container);s-=r.left,n-=r.top}return{x:s,y:n}}elementPositionCoords(t,i="right"){var s=M.elOffset(t),n,r,o;if(this.container!==document.body)n=M.elOffset(this.container),s.left-=n.left,s.top-=n.top;switch(i){case"right":r=s.left+t.offsetWidth,o=s.top-1;break;case"bottom":r=s.left,o=s.top+t.offsetHeight;break;case"left":r=s.left,o=s.top-1;break;case"top":r=s.left,o=s.top;break;case"center":r=s.left+t.offsetWidth/2,o=s.top+t.offsetHeight/2;break}return{x:r,y:o,offset:s}}show(t,i){var s,n;if(this.destroyed||this.table.destroyed)return this;if(!this.parent)this.reversedX=!1;if(t instanceof HTMLElement)s=t,n=this.elementPositionCoords(t,i).offset;else if(typeof t==="number")n={top:0,left:0};let r=this.resolveCoordsByOrigin(t,i);if(this.offset.top=r.y,this.offset.left=r.x,this.offset.right=null,this.applyOffset(),this.container.appendChild(this.element),typeof this.renderedCallback==="function")this.renderedCallback();return this._fitToScreen(r.x,r.y,s,n,i),this.visible=!0,this.subscribe("table-destroy",this.destroyBinding),this.element.addEventListener("mousedown",(o)=>{o.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,n,r){var o=this.container===document.body?document.documentElement.scrollTop:this.container.scrollTop,a=this.container===document.body?document.documentElement.scrollLeft:this.container.scrollLeft,l=this.container===document.body?a:0,h=this.container===document.body?a+document.documentElement.clientWidth:this.container.offsetWidth,d=this.container===document.body?o:0,u=this.container===document.body?o+document.documentElement.clientHeight:Math.max(this.container.offsetHeight,o?this.container.scrollHeight:0),c=this._elementWidth(),f=t;if(f+c>h||this.reversedX){if(s&&r==="right")f=n.left-c;else if(s&&r==="left")f=n.left+s.offsetWidth;else if(s)f=n.left-c;else f=h-c;this.reversedX=!0}if(f+c>h)f=h-c;if(f<l)f=l;if(this.offset.left=f,this.offset.right=null,i+this._elementHeight()>u)if(s)switch(r){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 p=this._elementHeight();if(p>u-d)this.offset.top=d,this.element.style.height=u-d+"px";else{let m=i-p;if(m<d)m=u-p;this.offset.top=m}}if(this.offset.top+this._elementHeight()>u)this.offset.top=u-this._elementHeight();if(this.offset.top<d)this.offset.top=d;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 z extends D{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 Ye(this.table,e,t)}alert(e,t){return this.table.alertManager.alert(e,t)}clearAlert(){return this.table.alertManager.clear()}}function te(e,t){var i=[];if(t=t||"",Array.isArray(e))e.forEach((n,r)=>{i=i.concat(te(n,t?t+"["+r+"]":r))});else if(typeof e==="object")for(var s in e)i=i.concat(te(e[s],t?t+"["+s+"]":s));else i.push({key:t,value:e});return i}function Qe(e){var t=te(e),i=[];return t.forEach(function(s){i.push(encodeURIComponent(s.key)+"="+encodeURIComponent(s.value))}),i.join("&")}function Ze(e,t,i){if(e){if(i&&Object.keys(i).length){if(!t.method||t.method.toLowerCase()=="get")t.method="get",e+=(e.includes("?")?"&":"?")+Qe(i)}}return e}var et={replace:function(e){return this.table.setData(e)},update:function(e){return this.table.updateOrAddData(e)},insert:function(e){return this.table.addData(e)}},it={table:function(e){var t=[],i=!0,s=this.table.columnManager.columns,n=[],r=[];if(e=e.split(`
|
|
2
2
|
`),e.forEach(function(o){t.push(o.split("\t"))}),t.length&&!(t.length===1&&t[0].length<2)){if(t[0].forEach(function(o){var a=s.find(function(l){return o&&l.definition.title&&o.trim()&&l.definition.title.trim()===o.trim()});if(a)n.push(a);else i=!1}),!i){if(i=!0,n=[],t[0].forEach(function(o){var a=s.find(function(l){return o&&l.field&&o.trim()&&l.field.trim()===o.trim()});if(a)n.push(a);else i=!1}),!i)n=this.table.columnManager.columnsByIndex}if(i)t.shift();return t.forEach(function(o){var a={};o.forEach(function(l,h){if(n[h])a[n[h].field]=l}),r.push(a)}),r}else return!1}},st={copyToClipboard:["ctrl + 67","meta + 67"]},nt={copyToClipboard:function(e){if(!this.table.modules.edit.currentCell){if(this.table.modExists("clipboard",!0))this.table.modules.clipboard.copy(!1,!0)}}},rt={keybindings:{bindings:st,actions:nt}};class U extends z{static moduleName="clipboard";static moduleExtensions=rt;static pasteActions=et;static pasteParsers=it;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((n)=>{var r="";if(n){if(i.type==="group")n.value=n.component.getKey();if(n.value===null)r="";else switch(typeof n.value){case"object":r=JSON.stringify(n.value);break;case"undefined":r="";break;default:r=n.value}}s.push(r)}),t.push(s.join("\t"))}),t.join(`
|
|
3
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=U.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=U.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 se{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 Q extends D{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 n=this.column.definition.cssClass.split(" ");n.forEach((r)=>{e.classList.add(r)})}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 se(this);return this.component}}class ne{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 ye={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 P extends D{static defaultOptionList=ye;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,n)=>{var r=new P(s,this);this.attachColumn(r)}),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(P.defaultOptionList,this.definition)}checkDefinition(){Object.keys(this.definition).forEach((e)=>{if(P.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,n;for(let r=0;r<s;r++)if(t=t[i[r]],n=t,!t)break;return n}_setFlatData(e,t){if(this.field)e[this.field]=t}_setNestedData(e,t){var i=e,s=this.fieldStructure,n=s.length;for(let r=0;r<n;r++)if(r==n-1)i[s[r]]=t;else{if(!i[s[r]])if(typeof t<"u")i[s[r]]={};else break;i=i[s[r]]}}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 Q(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 n=s.getWidth();if(n>t)t=n}),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 ne(this);return this.component}getPosition(){return this.table.columnManager.getVisibleColumnsByIndex().indexOf(this)+1}getParentComponent(){return this.parent instanceof P?this.parent.getComponent():!1}}class re{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 _ extends D{static rowTemplate=_.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=_.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((n,r)=>{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 o=[];for(let a in e)this.table.columnManager.getColumnsByFieldRoot(a).forEach((h)=>{let d=this.getCell(h.getField());if(d){let u=h.getFieldValue(s);if(d.getValue()!==u)o.push([d,u])}});for(let a in s)this.data[a]=s[a];if(this.dispatch("row-data-save-after",this),o.forEach(([a,l])=>{if(a.setValueProcessData(l),t)a.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());n()})}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 re(this);return this.component}static createRowTemplate(){let e=document.createElement("div");return e.classList.add("tabulator-row"),e.setAttribute("role","row"),e}}function Z(e,t){var i=t.mask,s=typeof t.maskLetterChar<"u"?t.maskLetterChar:"A",n=typeof t.maskNumberChar<"u"?t.maskNumberChar:"9",r=typeof t.maskWildcardChar<"u"?t.maskWildcardChar:"*";function o(a){var l=i[a];if(typeof l<"u"&&l!==r&&l!==s&&l!==n)e.value=e.value+""+l,o(a+1)}if(e.addEventListener("keydown",(a)=>{var l=e.value.length,h=a.key;if(a.key.length===1&&!a.ctrlKey&&!a.metaKey)if(l>=i.length)return a.preventDefault(),a.stopPropagation(),!1;else switch(i[l]){case s:if(h.toUpperCase()==h.toLowerCase())return a.preventDefault(),a.stopPropagation(),!1;break;case n:if(isNaN(h))return a.preventDefault(),a.stopPropagation(),!1;break;case r:break;default:if(h!==i[l])return a.preventDefault(),a.stopPropagation(),!1}return}),e.addEventListener("keyup",(a)=>{if(a.key.length===1){if(t.maskAutoFill)o(e.value.length)}}),!e.placeholder)e.placeholder=i;if(t.maskAutoFill)o(e.value.length)}function ot(e,t,i,s,n){var r=e.getValue(),o=document.createElement("input");if(o.setAttribute("type",n.search?"search":"text"),o.style.padding="4px",o.style.width="100%",o.style.boxSizing="border-box",n.elementAttributes&&typeof n.elementAttributes=="object")for(let l in n.elementAttributes)if(l.charAt(0)=="+")l=l.slice(1),o.setAttribute(l,o.getAttribute(l)+n.elementAttributes["+"+l]);else o.setAttribute(l,n.elementAttributes[l]);o.value=n.initialValue??(typeof r<"u"?r:""),t(function(){if(e.getType()==="cell"){if(o.focus({preventScroll:!0}),o.style.height="100%",n.selectContents)o.select()}});function a(l){if((r===null||typeof r>"u")&&o.value!==""||o.value!==r){if(i(o.value))r=o.value}else s()}if(o.addEventListener("change",a),o.addEventListener("blur",a),o.addEventListener("keydown",function(l){switch(l.key){case"Enter":a();break;case"Escape":s();break;case"End":case"Home":l.stopPropagation();break}}),n.mask)Z(o,n);return o}function at(e,t,i,s,n){var r=e.getValue(),o=n.verticalNavigation||"hybrid",a=String(r!==null&&typeof r<"u"?r:""),l=document.createElement("textarea"),h=0;if(l.style.display="block",l.style.padding="2px",l.style.height="100%",l.style.width="100%",l.style.boxSizing="border-box",l.style.whiteSpace="pre-wrap",l.style.resize="none",n.elementAttributes&&typeof n.elementAttributes=="object")for(let u in n.elementAttributes)if(u.charAt(0)=="+")u=u.slice(1),l.setAttribute(u,l.getAttribute(u)+n.elementAttributes["+"+u]);else l.setAttribute(u,n.elementAttributes[u]);l.value=n.initialValue??a,t(function(){if(e.getType()==="cell"){if(l.focus({preventScroll:!0}),l.style.height="100%",l.scrollHeight,l.style.height=l.scrollHeight+"px",e.getRow().normalizeHeight(),n.selectContents)l.select()}});function d(u){if((r===null||typeof r>"u")&&l.value!==""||l.value!==r){if(i(l.value))r=l.value;setTimeout(function(){e.getRow().normalizeHeight()},300)}else s()}if(l.addEventListener("change",d),l.addEventListener("blur",d),l.addEventListener("keyup",function(){l.style.height="";var u=l.scrollHeight;if(l.style.height=u+"px",u!=h)h=u,e.getRow().normalizeHeight()}),l.addEventListener("keydown",function(u){switch(u.key){case"Enter":if(u.shiftKey&&n.shiftEnterSubmit)d();break;case"Escape":s();break;case"ArrowUp":if(o=="editor"||o=="hybrid"&&l.selectionStart)u.stopImmediatePropagation(),u.stopPropagation();break;case"ArrowDown":if(o=="editor"||o=="hybrid"&&l.selectionStart!==l.value.length)u.stopImmediatePropagation(),u.stopPropagation();break;case"End":case"Home":u.stopPropagation();break}}),n.mask)Z(l,n);return l}function lt(e,t,i,s,n){var r=e.getValue(),o=n.verticalNavigation||"editor",a=document.createElement("input");if(a.setAttribute("type","number"),typeof n.max<"u")a.setAttribute("max",n.max);if(typeof n.min<"u")a.setAttribute("min",n.min);if(typeof n.step<"u")a.setAttribute("step",n.step);if(a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",n.elementAttributes&&typeof n.elementAttributes=="object")for(let d in n.elementAttributes)if(d.charAt(0)=="+")d=d.slice(1),a.setAttribute(d,a.getAttribute(d)+n.elementAttributes["+"+d]);else a.setAttribute(d,n.elementAttributes[d]);a.value=r;var l=function(d){h()};t(function(){if(e.getType()==="cell"){if(a.removeEventListener("blur",l),a.focus({preventScroll:!0}),a.style.height="100%",a.addEventListener("blur",l),n.selectContents)a.select()}});function h(){var d=a.value;if(!isNaN(d)&&d!=="")d=Number(d);if(d!==r){if(i(d))r=d}else s()}if(a.addEventListener("keydown",function(d){switch(d.key){case"Enter":h();break;case"Escape":s();break;case"ArrowUp":case"ArrowDown":if(o=="editor")d.stopImmediatePropagation(),d.stopPropagation();break;case"End":case"Home":d.stopPropagation();break}}),n.mask)Z(a,n);return a}function ht(e,t,i,s,n){var r=e.getValue(),o=document.createElement("input");if(o.setAttribute("type","range"),typeof n.max<"u")o.setAttribute("max",n.max);if(typeof n.min<"u")o.setAttribute("min",n.min);if(typeof n.step<"u")o.setAttribute("step",n.step);if(o.style.padding="4px",o.style.width="100%",o.style.boxSizing="border-box",n.elementAttributes&&typeof n.elementAttributes=="object")for(let l in n.elementAttributes)if(l.charAt(0)=="+")l=l.slice(1),o.setAttribute(l,o.getAttribute(l)+n.elementAttributes["+"+l]);else o.setAttribute(l,n.elementAttributes[l]);o.value=r,t(function(){if(e.getType()==="cell")o.focus({preventScroll:!0}),o.style.height="100%"});function a(){var l=o.value;if(!isNaN(l)&&l!=="")l=Number(l);if(l!=r){if(i(l))r=l}else s()}return o.addEventListener("blur",function(l){a()}),o.addEventListener("keydown",function(l){switch(l.key){case"Enter":a();break;case"Escape":s();break}}),o}function dt(e,t,i,s,n){var r=n.format,o=n.verticalNavigation||"editor",a=r?window.DateTime||luxon.DateTime:null,l=e.getValue(),h=document.createElement("input");function d(c){var f;if(a.isDateTime(c))f=c;else if(r==="x")f=a.fromMillis(c);else if(r==="iso")f=a.fromISO(String(c));else f=a.fromFormat(String(c),r);return f.toFormat("yyyy-MM-dd")}if(h.type="date",h.style.padding="4px",h.style.width="100%",h.style.boxSizing="border-box",n.max)h.setAttribute("max",r?d(n.max):n.max);if(n.min)h.setAttribute("min",r?d(n.min):n.min);if(n.elementAttributes&&typeof n.elementAttributes=="object")for(let c in n.elementAttributes)if(c.charAt(0)=="+")c=c.slice(1),h.setAttribute(c,h.getAttribute(c)+n.elementAttributes["+"+c]);else h.setAttribute(c,n.elementAttributes[c]);if(l=typeof l<"u"?l:"",r)if(a)l=d(l);else console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js");h.value=l,t(function(){if(e.getType()==="cell"){if(h.focus({preventScroll:!0}),h.style.height="100%",n.selectContents)h.select()}});function u(){var c=h.value,f;if((l===null||typeof l>"u")&&c!==""||c!==l){if(c&&r)switch(f=a.fromFormat(String(c),"yyyy-MM-dd"),r){case!0:c=f;break;case"x":c=f.toMillis();break;case"iso":c=f.toISO();break;default:c=f.toFormat(r)}if(i(c))l=h.value}else s()}return h.addEventListener("blur",function(c){if(c.relatedTarget||c.rangeParent||c.explicitOriginalTarget!==h)u()}),h.addEventListener("keydown",function(c){switch(c.key){case"Enter":u();break;case"Escape":s();break;case"End":case"Home":c.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(o=="editor")c.stopImmediatePropagation(),c.stopPropagation();break}}),h}function ut(e,t,i,s,n){var r=n.format,o=n.verticalNavigation||"editor",a=r?window.DateTime||luxon.DateTime:null,l,h=e.getValue(),d=document.createElement("input");if(d.type="time",d.style.padding="4px",d.style.width="100%",d.style.boxSizing="border-box",n.elementAttributes&&typeof n.elementAttributes=="object")for(let c in n.elementAttributes)if(c.charAt(0)=="+")c=c.slice(1),d.setAttribute(c,d.getAttribute(c)+n.elementAttributes["+"+c]);else d.setAttribute(c,n.elementAttributes[c]);if(h=typeof h<"u"?h:"",r)if(a){if(a.isDateTime(h))l=h;else if(r==="x")l=a.fromMillis(h);else if(r==="iso")l=a.fromISO(String(h));else l=a.fromFormat(String(h),r);h=l.toFormat("HH:mm")}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%",n.selectContents)d.select()}});function u(){var c=d.value,f;if((h===null||typeof h>"u")&&c!==""||c!==h){if(c&&r)switch(f=a.fromFormat(String(c),"hh:mm"),r){case!0:c=f;break;case"x":c=f.toMillis();break;case"iso":c=f.toISO();break;default:c=f.toFormat(r)}if(i(c))h=d.value}else s()}return d.addEventListener("blur",function(c){if(c.relatedTarget||c.rangeParent||c.explicitOriginalTarget!==d)u()}),d.addEventListener("keydown",function(c){switch(c.key){case"Enter":u();break;case"Escape":s();break;case"End":case"Home":c.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(o=="editor")c.stopImmediatePropagation(),c.stopPropagation();break}}),d}function ct(e,t,i,s,n){var r=n.format,o=n.verticalNavigation||"editor",a=r?this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"):null,l,h=e.getValue(),d=document.createElement("input");if(d.type="datetime-local",d.style.padding="4px",d.style.width="100%",d.style.boxSizing="border-box",n.elementAttributes&&typeof n.elementAttributes=="object")for(let c in n.elementAttributes)if(c.charAt(0)=="+")c=c.slice(1),d.setAttribute(c,d.getAttribute(c)+n.elementAttributes["+"+c]);else d.setAttribute(c,n.elementAttributes[c]);if(h=typeof h<"u"?h:"",r)if(a){if(a.isDateTime(h))l=h;else if(r==="x")l=a.fromMillis(h);else if(r==="iso")l=a.fromISO(String(h));else l=a.fromFormat(String(h),r);h=l.toFormat("yyyy-MM-dd")+"T"+l.toFormat("HH:mm")}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%",n.selectContents)d.select()}});function u(){var c=d.value,f;if((h===null||typeof h>"u")&&c!==""||c!==h){if(c&&r)switch(f=a.fromISO(String(c)),r){case!0:c=f;break;case"x":c=f.toMillis();break;case"iso":c=f.toISO();break;default:c=f.toFormat(r)}if(i(c))h=d.value}else s()}return d.addEventListener("blur",function(c){if(c.relatedTarget||c.rangeParent||c.explicitOriginalTarget!==d)u()}),d.addEventListener("keydown",function(c){switch(c.key){case"Enter":u();break;case"Escape":s();break;case"End":case"Home":c.stopPropagation();break;case"ArrowUp":case"ArrowDown":if(o=="editor")c.stopImmediatePropagation(),c.stopPropagation();break}}),d}var ft=class e{constructor(t,i,s,n,r,o){this.edit=t,this.table=t.table,this.cell=i,this.params=this._initializeParams(o),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:n,cancel:r},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)Z(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((n)=>i.includes(n)).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)}_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();break;case"Escape":this._keyEsc();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);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);else if(this.focusedItem)if(this.isFilter&&!this.params.multiselect&&this.focusedItem.selected)this._resolveValue();else this._chooseItem(this.focusedItem)}_keyEsc(t){this._cancel()}_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((n)=>typeof n.label<"u"&&n.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((n)=>{if(this.listIteration===s)return this._parseList(n);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=Ze(t,{},s),fetch(t).then((n)=>{if(n.ok)return n.json().catch((r)=>(console.warn("List Ajax Load Error - Invalid JSON returned",r),Promise.reject(r)));else return console.error("List Ajax Load Error - Connection Error: "+n.status,n.statusText),Promise.reject(n)}).catch((n)=>(console.error("List Ajax Load Error - Connection Error: ",n),Promise.reject(n)))}_uniqueColumnValues(t){var i={},s=this.table.getData(this.params.valuesLookup),n;if(t)n=this.table.columnManager.getColumnByField(t);else n=this.cell.getColumn()._getSelf();if(n)s.forEach((r)=>{var o=n.getFieldValue(r);if(!this._emptyValueCheck(o))if(this.params.multiselect&&Array.isArray(o))o.forEach((a)=>{if(!this._emptyValueCheck(a))i[a]=!0});else i[o]=!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,n])=>({label:n,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 n={};if(t.options)n=this._parseListGroup(t,s+1);else if(n={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 r=this.currentItems.findIndex((o)=>o.value===t.value);if(r>-1){if(this.focusedItem===this.currentItems[r])this.focusedItem=n;this.currentItems[r]=n,n.selected=!0}else if(this.initialValues&&this.initialValues.indexOf(t.value)>-1)this._chooseItem(n,!0)}else if(this.initialValues&&this.initialValues.indexOf(t.value)>-1)this._chooseItem(n,!0);i.push(n)}_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((n)=>{this._parseListItem(n,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,n)=>t(s.label,n.label,s.value,n.value,s.original,n.original)),i.forEach((s)=>{if(s.group)this._sortGroup(t,s.options)})}_defaultSortFunction(t,i){var s,n,r,o,a=0,l,h=/(\d+)|(\D+)/g,d=/\d/,u=0;if(this.params.sort==="desc")[t,i]=[i,t];if(!t&&t!==0)u=!i&&i!==0?0:-1;else if(!i&&i!==0)u=1;else{if(isFinite(t)&&isFinite(i))return t-i;if(s=String(t).toLowerCase(),n=String(i).toLowerCase(),s===n)return 0;if(!(d.test(s)&&d.test(n)))return s>n?1:-1;s=s.match(h),n=n.match(h),l=s.length>n.length?n.length:s.length;while(a<l)if(r=s[a],o=n[a++],r!==o)if(isFinite(r)&&isFinite(o)){if(r.charAt(0)==="0")r="."+r;if(o.charAt(0)==="0")o="."+o;return r-o}else return r>o?1:-1;return s.length>n.length}return u}_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 n=!1;if(!s.group)s.visible=t(i,s.label,s.value,s.original);else s.options.forEach((r)=>{if(this._filterItem(t,i,r))n=!0}),s.visible=n;return s.visible}_defaultFilterFunc(t,i,s,n){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 n in t.elementAttributes)if(n.charAt(0)=="+")n=n.slice(1),i.setAttribute(n,this.input.getAttribute(n)+t.elementAttributes["+"+n]);else i.setAttribute(n,t.elementAttributes[n]);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((n)=>{this._buildItem(n)});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)}_groupClick(t,i){i.stopPropagation()}_cancel(){this.popup.hide(!0),this.actions.cancel()}_clearChoices(){this.typing=!0,this.currentItems.forEach((t)=>{t.selected=!1,this._styleItem(t)}),this.currentItems=[],this.focusedItem=null}_chooseItem(t,i){var s;if(this.typing=!1,this.params.multiselect){if(s=this.currentItems.indexOf(t),s>-1)this.currentItems.splice(s,1),t.selected=!1;else this.currentItems.push(t),t.selected=!0;this.input.value=this.currentItems.map((n)=>n.label).join(","),this._styleItem(t)}else{if(this.isFilter&&!i&&t.selected){this._clearChoices(),this.input.value="",this._resolveValue();return}if(this.currentItems=[t],t.selected=!0,this.input.value=t.label,this._styleItem(t),!i)this._resolveValue()}this._focusItem(t)}_resolveValue(t){var i,s;if(this.popup)this.popup.hide(!0);if(this.params.multiselect)i=this.currentItems.map((n)=>n.value);else if(t&&this.params.autocomplete&&this.typing)if(this.params.freetext||this.params.allowEmpty&&this.input.value==="")i=this.input.value;else{this.actions.cancel();return}else if(this.currentItems[0])i=this.currentItems[0].value;else if(this.isFilter&&this.focusedItem&&this.focusedItem.selected)i=this.focusedItem.value;else if(s=Array.isArray(this.initialValues)?this.initialValues[0]:this.initialValues,s===null||typeof s>"u"||s==="")i=s;else i=this.params.emptyValue;if(i==="")i=this.params.emptyValue;if(this.actions.success(i),this.isFilter)this.initialValues=i&&!Array.isArray(i)?[i]:i,this.currentItems=[]}};function pt(e,t,i,s,n){var r=new ft(this,e,t,i,s,n);return r.input}function mt(e,t,i,s,n){var r=this,o=e.getElement(),a=e.getValue(),l=o.getElementsByTagName("svg").length||5,h=o.getElementsByTagName("svg")[0]?o.getElementsByTagName("svg")[0].getAttribute("width"):14,d=[],u=document.createElement("div"),c=document.createElementNS("http://www.w3.org/2000/svg","svg");function f(b){d.forEach(function(y,L){if(L<b){if(r.table.browser=="ie")y.setAttribute("class","tabulator-star-active");else y.classList.replace("tabulator-star-inactive","tabulator-star-active");y.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(r.table.browser=="ie")y.setAttribute("class","tabulator-star-inactive");else y.classList.replace("tabulator-star-active","tabulator-star-inactive");y.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 p(b){var y=document.createElement("span"),L=c.cloneNode(!0);d.push(L),y.addEventListener("mouseenter",function(x){x.stopPropagation(),x.stopImmediatePropagation(),f(b)}),y.addEventListener("mousemove",function(x){x.stopPropagation(),x.stopImmediatePropagation()}),y.addEventListener("click",function(x){x.stopPropagation(),x.stopImmediatePropagation(),i(b),o.blur()}),y.appendChild(L),u.appendChild(y)}function m(b){a=b,f(b)}if(o.style.whiteSpace="nowrap",o.style.overflow="hidden",o.style.textOverflow="ellipsis",u.style.verticalAlign="middle",u.style.display="inline-block",u.style.padding="4px",c.setAttribute("width",h),c.setAttribute("height",h),c.setAttribute("viewBox","0 0 512 512"),c.setAttribute("xml:space","preserve"),c.style.padding="0 1px",n.elementAttributes&&typeof n.elementAttributes=="object")for(let b in n.elementAttributes)if(b.charAt(0)=="+")b=b.slice(1),u.setAttribute(b,u.getAttribute(b)+n.elementAttributes["+"+b]);else u.setAttribute(b,n.elementAttributes[b]);for(var g=1;g<=l;g++)p(g);return a=Math.min(parseInt(a),l),f(a),u.addEventListener("mousemove",function(b){f(0)}),u.addEventListener("click",function(b){i(0)}),o.addEventListener("blur",function(b){s()}),o.addEventListener("keydown",function(b){switch(b.key){case"ArrowRight":m(a+1);break;case"ArrowLeft":m(a-1);break;case"Enter":i(a);break;case"Escape":s();break}}),u}function gt(e,t,i,s,n){var r=e.getElement(),o=typeof n.max>"u"?r.getElementsByTagName("div")[0]&&r.getElementsByTagName("div")[0].getAttribute("max")||100:n.max,a=typeof n.min>"u"?r.getElementsByTagName("div")[0]&&r.getElementsByTagName("div")[0].getAttribute("min")||0:n.min,l=(o-a)/100,h=e.getValue()||0,d=document.createElement("div"),u=document.createElement("div"),c,f;function p(){var m=window.getComputedStyle(r,null),g=l*Math.round(u.offsetWidth/((r.clientWidth-parseInt(m.getPropertyValue("padding-left"))-parseInt(m.getPropertyValue("padding-right")))/100))+a;i(g),r.setAttribute("aria-valuenow",g),r.setAttribute("aria-label",h)}if(d.style.position="absolute",d.style.right="0",d.style.top="0",d.style.bottom="0",d.style.width="5px",d.classList.add("tabulator-progress-handle"),u.style.display="inline-block",u.style.position="relative",u.style.height="100%",u.style.backgroundColor="#488CE9",u.style.maxWidth="100%",u.style.minWidth="0%",n.elementAttributes&&typeof n.elementAttributes=="object")for(let m in n.elementAttributes)if(m.charAt(0)=="+")m=m.slice(1),u.setAttribute(m,u.getAttribute(m)+n.elementAttributes["+"+m]);else u.setAttribute(m,n.elementAttributes[m]);return r.style.padding="4px 4px",h=Math.min(parseFloat(h),o),h=Math.max(parseFloat(h),a),h=Math.round((h-a)/l),u.style.width=h+"%",r.setAttribute("aria-valuemin",a),r.setAttribute("aria-valuemax",o),u.appendChild(d),d.addEventListener("mousedown",function(m){c=m.screenX,f=u.offsetWidth}),d.addEventListener("mouseover",function(){d.style.cursor="ew-resize"}),r.addEventListener("mousemove",function(m){if(c)u.style.width=f+m.screenX-c+"px"}),r.addEventListener("mouseup",function(m){if(c)m.stopPropagation(),m.stopImmediatePropagation(),c=!1,f=!1,p()}),r.addEventListener("keydown",function(m){switch(m.key){case"ArrowRight":m.preventDefault(),u.style.width=u.clientWidth+r.clientWidth/100+"px";break;case"ArrowLeft":m.preventDefault(),u.style.width=u.clientWidth-r.clientWidth/100+"px";break;case"Tab":case"Enter":p();break;case"Escape":s();break}}),r.addEventListener("blur",function(){s()}),u}function bt(e,t,i,s,n){var r=e.getValue(),o=document.createElement("input"),a=n.tristate,l=typeof n.indeterminateValue>"u"?null:n.indeterminateValue,h=!1,d=Object.keys(n).includes("trueValue"),u=Object.keys(n).includes("falseValue");if(o.setAttribute("type","checkbox"),o.style.marginTop="5px",o.style.boxSizing="border-box",n.elementAttributes&&typeof n.elementAttributes=="object")for(let f in n.elementAttributes)if(f.charAt(0)=="+")f=f.slice(1),o.setAttribute(f,o.getAttribute(f)+n.elementAttributes["+"+f]);else o.setAttribute(f,n.elementAttributes[f]);if(o.value=r,a&&(typeof r>"u"||r===l||r===""))h=!0,o.indeterminate=!0;if(this.table.browser!="firefox"&&this.table.browser!="safari")t(function(){if(e.getType()==="cell")o.focus({preventScroll:!0})});o.checked=d?r===n.trueValue:r===!0||r==="true"||r==="True"||r===1;function c(f){var p=o.checked;if(d&&p)p=n.trueValue;else if(u&&!p)p=n.falseValue;if(a)if(!f)if(o.checked&&!h)return o.checked=!1,o.indeterminate=!0,h=!0,l;else return h=!1,p;else if(h)return l;else return p;else return p}return o.addEventListener("change",function(f){i(c())}),o.addEventListener("blur",function(f){i(c(!0))}),o.addEventListener("keydown",function(f){if(f.key=="Enter")i(c());if(f.key=="Escape")s()}),o}function vt(e,t,i,s,n){var r=e._getSelf().column,o,a,l;function h(d){var u=d.getValue(),c="input";switch(typeof u){case"number":c="number";break;case"boolean":c="tickCross";break;case"string":if(u.includes(`
|
|
4
4
|
`))c="textarea";break}return c}if(o=n.editorLookup?n.editorLookup(e):h(e),n.paramsLookup)l=typeof n.paramsLookup==="function"?n.paramsLookup(o,e):n.paramsLookup[o];return a=this.table.modules.edit.lookupEditor(o,r),a.call(this,e,t,i,s,l||{})}var wt={input:ot,textarea:at,number:lt,range:ht,date:dt,time:ut,datetime:ct,list:pt,star:mt,progress:gt,tickCross:bt,adaptable:vt};class ee extends z{static moduleName="edit";static editors=wt;constructor(e){super(e);this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1,this.editedCells=[],this.convertEmptyValues=!1,this.editors=ee.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 n=e.cells[s];if(n.column.modules.edit&&M.elVisible(n.getElement())){if(this.allowEdit(n)){i=n;break}}}return i}findPrevEditableCell(e,t){var i=!1;if(t>0)for(var s=t-1;s>=0;s--){let n=e.cells[s];if(n.column.modules.edit&&M.elVisible(n.getElement())){if(this.allowEdit(n)){i=n;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){var t=this.currentCell,i;if(this.invalidEdit=!1,t){this.currentCell=!1,i=t.getElement(),this.dispatch("edit-editor-clear",t,e),i.classList.remove("tabulator-editing");while(i.firstChild)i.removeChild(i.firstChild);t.row.getElement().classList.remove("tabulator-editing"),t.table.element.classList.remove("tabulator-editing")}if(this.table.getRedrawBlock())this.table.restoreRedraw()}cancelEdit(){if(this.currentCell){var e=this.currentCell,t=this.currentCell.getComponent();if(this.clearEditor(!0),e.setValueActual(e.getValue()),e.cellRendered(),e.column.definition.editor=="textarea"||e.column.definition.variableHeight)e.row.normalizeHeight(!0);if(e.column.definition.cellEditCancelled)e.column.definition.cellEditCancelled.call(this.table,t);this.dispatch("edit-cancelled",e),this.dispatchExternal("cellEditCancelled",t)}}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 n=this.table.rowManager.element.scrollLeft,r=this.table.rowManager.element.clientWidth+this.table.rowManager.element.scrollLeft,o=e.getElement();if(this.table.modExists("frozenColumns"))n+=parseInt(this.table.modules.frozenColumns.leftMargin||0),r-=parseInt(this.table.modules.frozenColumns.rightMargin||0);if(this.table.options.renderHorizontal==="virtual")n-=parseInt(this.table.columnManager.renderer.vDomPadLeft),r-=parseInt(this.table.columnManager.renderer.vDomPadLeft);if(o.offsetLeft<n)this.table.rowManager.element.scrollLeft-=n-o.offsetLeft;else if(o.offsetLeft+o.offsetWidth>r)this.table.rowManager.element.scrollLeft+=o.offsetLeft+o.offsetWidth-r}}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 n=this,r=!0,o=function(){},a=e.getElement(),l=!1,h,d,u;if(this.currentCell){if(this.invalidEdit||this.currentCell===e)return;this.cancelEdit()}function c(b){if(n.currentCell===e&&!l){var y=n.chain("edit-success",[e,b],!0,!0);if(y===!0||n.table.options.validationMode==="highlight"){if(l=!0,n.clearEditor(),!e.modules.edit)e.modules.edit={};if(e.modules.edit.edited=!0,n.editedCells.indexOf(e)==-1)n.editedCells.push(e);return b=n.transformEmptyValues(b,e),e.setValue(b,!0),y===!0}else return l=!0,n.invalidEdit=!0,n.focusCellNoEvent(e,!0),o(),setTimeout(()=>{l=!1},10),!1}}function f(){if(n.currentCell===e&&!l)n.cancelEdit()}function p(b){o=b}if(!e.column.modules.edit.blocked)if(r=this.allowEdit(e),r||i){if(t)t.stopPropagation();if(n.cancelEdit(),n.currentCell=e,this.focusScrollAdjust(e),d=e.getComponent(),this.mouseClick){if(this.mouseClick=!1,e.column.definition.cellClick)e.column.definition.cellClick.call(this.table,t,d)}if(e.column.definition.cellEditing)e.column.definition.cellEditing.call(this.table,d);if(this.dispatch("cell-editing",e),this.dispatchExternal("cellEditing",d),u=typeof e.column.modules.edit.params==="function"?e.column.modules.edit.params(d):e.column.modules.edit.params,s)u={...u,...s};if(h=e.column.modules.edit.editor.call(n,d,p,c,f,u),this.currentCell&&h!==!1)if(h instanceof Node){a.classList.add("tabulator-editing"),e.row.getElement().classList.add("tabulator-editing"),e.table.element.classList.add("tabulator-editing");while(a.firstChild)a.removeChild(a.firstChild);a.appendChild(h),this.table.blockRedraw(),o();var m=a.children;for(var g=0;g<m.length;g++)m[g].addEventListener("click",function(b){b.stopPropagation()}),m[g].addEventListener("mousedown",function(b){b.stopPropagation()}),m[g].addEventListener("mouseup",function(b){b.stopPropagation()})}else return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",h),this.blur(a),!1;else return this.blur(a),!1;return!0}else return this.mouseClick=!1,this.blur(a),!1;else return this.mouseClick=!1,this.blur(a),!1}emptyValueCheck(e){return e===""||e===null||typeof e>"u"}transformEmptyValues(e,t){var i=t.column.modules.edit,s=i.convertEmptyValues||this.convertEmptyValues,n;if(s){if(n=i.editorEmptyValueFunc||this.options("editorEmptyValueFunc"),n&&n(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 ie{constructor(e,t,i,s){this.type=e,this.columns=t,this.component=i||!1,this.indent=s||0}}class X{constructor(e,t,i,s,n){this.value=e,this.component=t||!1,this.width=i,this.height=s,this.depth=n}}var Ct={},Et={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 W extends z{static moduleName="export";static columnLookups=Ct;static rowLookups=Et;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 n,r,o,a;if(this.cloneTableStyle=t,this.config=e||{},this.colVisProp=s,this.colVisPropAttach=this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1),a=W.columnLookups[i],a)o=a.call(this.table),o=o.filter((l)=>this.columnVisCheck(l));if(n=this.config.columnHeaders!==!1?this.headersToExportRows(this.generateColumnGroupHeaders(o)):[],o)o=o.map((l)=>l.getComponent());return r=this.bodyToExportRows(this.rowLookup(i),o),n.concat(r)}generateTable(e,t,i,s){var n=this.generateExportList(e,t,i,s);return this.generateTableElement(n)}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=W.rowLookups[e]||W.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,n={title:s,column:e,depth:1};if(t.length){if(n.subGroups=[],n.width=0,t.forEach((r)=>{var o=this.processColumnGroup(r);if(o){if(n.width+=o.width,n.subGroups.push(o),o.depth>i)i=o.depth}}),n.depth+=i,!n.width)return!1}else if(this.columnVisCheck(e))n.width=1;else return!1;return n}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 n(r,o){var a=i-o;if(typeof t[o]>"u")t[o]=[];if(r.height=r.subGroups?1:a-r.depth+1,t[o].push(r),r.height>1)for(let l=1;l<r.height;l++){if(typeof t[o+l]>"u")t[o+l]=[];t[o+l].push(!1)}if(r.width>1)for(let l=1;l<r.width;l++)t[o].push(!1);if(r.subGroups)r.subGroups.forEach(function(l){n(l,o+1)})}return e.forEach(function(r){if(r.depth>i)i=r.depth}),e.forEach(function(r){n(r,0)}),t.forEach((r)=>{var o=[];r.forEach((a)=>{if(a){let l=typeof a.title>"u"?"":a.title;o.push(new X(l,a.column.getComponent(),a.width,a.height,a.depth))}else o.push(null)}),s.push(new ie("header",o))}),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,n)=>{var r=s.getData(this.colVisProp),o=[],a=0;switch(s.type){case"group":a=s.level,o.push(new X(s.key,s.getComponent(),t.length,1));break;case"calc":case"row":if(t.forEach((l)=>{o.push(new X(l._column.getFieldValue(r),l,1,1))}),this.table.options.dataTree&&this.config.dataTree!==!1)a=s.modules.dataTree.index;break}i.push(new ie(s.type,o,s.getComponent(),a))}),i}generateTableElement(e){var t=document.createElement("table"),i=document.createElement("thead"),s=document.createElement("tbody"),n=this.lookupTableStyles(),r=this.table.options["rowFormatter"+this.colVisPropAttach],o={};if(o.rowFormatter=r!==null?r:this.table.options.rowFormatter,this.table.options.dataTree&&this.config.dataTree!==!1&&this.table.modExists("columnCalcs"))o.treeElementField=this.table.modules.dataTree.elementField;if(o.groupHeader=this.table.options["groupHeader"+this.colVisPropAttach],o.groupHeader&&!Array.isArray(o.groupHeader))o.groupHeader=[o.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((a,l)=>{let h;switch(a.type){case"header":i.appendChild(this.generateHeaderElement(a,o,n));break;case"group":s.appendChild(this.generateGroupElement(a,o,n));break;case"calc":s.appendChild(this.generateCalcElement(a,o,n));break;case"row":h=this.generateRowElement(a,o,n),this.mapElementStyles(l%2&&n.evenRow?n.evenRow:n.oddRow,h,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),s.appendChild(h);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((n)=>{if(n){var r=document.createElement("th"),o=n.component._column.definition.cssClass?n.component._column.definition.cssClass.split(" "):[];if(r.colSpan=n.width,r.rowSpan=n.height,r.innerHTML=n.value,this.cloneTableStyle)r.style.boxSizing="border-box";if(o.forEach(function(a){r.classList.add(a)}),this.mapElementStyles(n.component.getElement(),r,["text-align","border-left","border-right","background-color","color","font-weight","font-family","font-size"]),this.mapElementStyles(n.component._column.contentElement,r,["padding-top","padding-left","padding-right","padding-bottom"]),n.component._column.visible)this.mapElementStyles(n.component.getElement(),r,["width"]);else if(n.component._column.definition.width)r.style.width=n.component._column.definition.width+"px";if(n.component._column.parent&&n.component._column.parent.isGroup)this.mapElementStyles(n.component._column.parent.groupElement,r,["border-top"]);else this.mapElementStyles(n.component.getElement(),r,["border-top"]);if(n.component._column.isGroup)this.mapElementStyles(n.component.getElement(),r,["border-bottom"]);else this.mapElementStyles(this.table.columnManager.getElement(),r,["border-bottom"]);s.appendChild(r)}}),s}generateGroupElement(e,t,i){var s=document.createElement("tr"),n=document.createElement("td"),r=e.columns[0];if(s.classList.add("tabulator-print-table-row"),t.groupHeader&&t.groupHeader[e.indent])r.value=t.groupHeader[e.indent](r.value,e.component._group.getRowCount(),e.component._group.getData(),e.component);else if(t.groupHeader!==!1)r.value=e.component._group.generator(r.value,e.component._group.getRowCount(),e.component._group.getData(),e.component);if(n.colSpan=r.width,n.innerHTML=r.value,s.classList.add("tabulator-print-table-group"),s.classList.add("tabulator-group-level-"+e.indent),r.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,n,["padding-top","padding-left","padding-right","padding-bottom"]),s.appendChild(n),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((n,r)=>{if(n){var o=document.createElement("td"),a=n.component._column,l=this.table,h=l.columnManager.findColumnIndex(a),d=n.value,u,c,f={modules:{},getValue:function(){return d},getField:function(){return a.definition.field},getElement:function(){return o},getType:function(){return"cell"},getColumn:function(){return a.getComponent()},getData:function(){return e.component.getData()},getRow:function(){return e.component},getTable:function(){return l},getComponent:function(){return f},column:a},p=a.definition.cssClass?a.definition.cssClass.split(" "):[];if(p.forEach(function(m){o.classList.add(m)}),this.table.modExists("format")&&this.config.formatCells!==!1)d=this.table.modules.format.formatExportValue(f,this.colVisProp);else switch(typeof d){case"object":d=d!==null?JSON.stringify(d):"";break;case"undefined":d="";break}if(d instanceof Node)o.appendChild(d);else o.innerHTML=d;if(c=["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"],a.isRowHeader)u=i.styleRowHeader,c.push("background-color");else u=i.styleCells&&i.styleCells[h]?i.styleCells[h]:i.firstCell;if(u){if(this.mapElementStyles(u,o,c),a.definition.align)o.style.textAlign=a.definition.align}if(this.table.options.dataTree&&this.config.dataTree!==!1){if(t.treeElementField&&t.treeElementField==a.field||!t.treeElementField&&r==0){if(e.component._row.modules.dataTree.controlEl)o.insertBefore(e.component._row.modules.dataTree.controlEl.cloneNode(!0),o.firstChild);if(e.component._row.modules.dataTree.branchEl)o.insertBefore(e.component._row.modules.dataTree.branchEl.cloneNode(!0),o.firstChild)}}if(s.appendChild(o),f.modules.format&&f.modules.format.renderedCallback)f.modules.format.renderedCallback()}}),t.rowFormatter&&e.type==="row"&&this.config.formatCells!==!1){let n=Object.assign(e.component);n.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 n=this.generateExportList(i||this.table.options.htmlOutputConfig,t,e,s||"htmlOutput");return this.generateHTMLTable(n)}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 n=window.getComputedStyle(e);i.forEach(function(r){if(!t.style[s[r]])t.style[s[r]]=n.getPropertyValue(r)})}}}}var yt={"=":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 n=e.toLowerCase().split(typeof s.separator>"u"?" ":s.separator),r=String(t===null||typeof t>"u"?"":t).toLowerCase(),o=[];return n.forEach((a)=>{if(r.includes(a))o.push(!0)}),s.matchAll?o.length===n.length:!!o.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 n=e.trim();if(n===".")return!(t===null||t=="");if(n==="!")return t===null||t=="";if(n.indexOf("<=")===0)return this["<="](parseFloat(n.substring(2)),t,i,s);if(n.indexOf(">=")===0)return this[">="](parseFloat(n.substring(2)),t,i,s);if(n.indexOf("<")===0)return this["<"](parseFloat(n.substring(1)),t,i,s);if(n.indexOf(">")===0)return this[">"](parseFloat(n.substring(1)),t,i,s);if(n.indexOf("=")===0)return this["="](n.substring(1).trim(),t,i,s);if(n.includes(" ")){let r=n.split(/\s+/).filter((o)=>o.length>0);if(r.length>1){let o=r.join(" AND ");return this.smarter(o,t,i,s)}}return this.like(n,t,i,s)},smarter:function(e,t,i,s){let n=e.trim();if(!n)return!0;let r=n.split(/\s+(AND|OR)\s+/i);if(r.length===1)return this.smart(n,t,i,s);let o=null,a=null;for(let l=0;l<r.length;l++){let h=r[l].trim();if(h==="AND"||h==="OR"){a=h;continue}let d=this.smart(h,t,i,s);if(o===null)o=d;else if(a==="AND")o=o&&d;else if(a==="OR")o=o||d}return o!==null?o:!0}};class B extends z{static moduleName="filter";static filters=yt;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 n(r){var o=e.modules.filter.tagType=="input"&&e.modules.filter.attrType=="text"||e.modules.filter.tagType=="textarea"?"partial":"match",a="",l="",h;if(typeof e.modules.filter.prevSuccess>"u"||e.modules.filter.prevSuccess!==r){if(e.modules.filter.prevSuccess=r,!e.modules.filter.emptyFunc(r)){switch(e.modules.filter.value=r,typeof e.definition.headerFilterFunc){case"string":if(B.filters[e.definition.headerFilterFunc])a=e.definition.headerFilterFunc,h=function(d){var u=e.definition.headerFilterFuncParams||{},c=e.getFieldValue(d);return u=typeof u==="function"?u(r,c,d):u,B.filters[e.definition.headerFilterFunc](r,c,d,u)};else console.warn("Header Filter Error - Matching filter function not found: ",e.definition.headerFilterFunc);break;case"function":h=function(d){var u=e.definition.headerFilterFuncParams||{},c=e.getFieldValue(d);return u=typeof u==="function"?u(r,c,d):u,e.definition.headerFilterFunc(r,c,d,u)},a=h;break}if(!h)switch(o){case"partial":h=function(d){var u=e.getFieldValue(d);if(typeof u<"u"&&u!==null)return String(u).toLowerCase().indexOf(String(r).toLowerCase())>-1;else return!1},a="like";break;default:h=function(d){return e.getFieldValue(d)==r},a="="}i.headerFilters[s]={value:r,func:h,type:a}}else delete i.headerFilters[s];if(e.modules.filter.value=r,l=JSON.stringify(i.headerFilters),i.prevHeaderFilterChangeCheck!==l)i.prevHeaderFilterChangeCheck=l,i.trackChanges(),i.refreshFilter()}return!0}e.modules.filter={success:n,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(e)}generateHeaderFilterElement(e,t,i){var s=this,n=e.modules.filter.success,r=e.getField(),o,a,l,h,d,u,c,f;e.modules.filter.value=t;function p(){}function m(g){f=g}if(e.modules.filter.headerElement&&e.modules.filter.headerElement.parentNode)e.contentElement.removeChild(e.modules.filter.headerElement.parentNode);if(r){switch(e.modules.filter.emptyFunc=e.definition.headerFilterEmptyCheck||function(g){return!g&&g!==0},o=document.createElement("div"),o.classList.add("tabulator-header-filter"),typeof e.definition.headerFilter){case"string":if(s.table.modules.edit.editors[e.definition.headerFilter]){if(a=s.table.modules.edit.editors[e.definition.headerFilter],(e.definition.headerFilter==="tick"||e.definition.headerFilter==="tickCross")&&!e.definition.headerFilterEmptyCheck)e.modules.filter.emptyFunc=function(g){return g!==!0&&g!==!1}}else console.warn("Filter Error - Cannot build header filter, No such editor found: ",e.definition.editor);break;case"function":a=e.definition.headerFilter;break;case"boolean":if(e.modules.edit&&e.modules.edit.editor)a=e.modules.edit.editor;else if(e.definition.formatter&&s.table.modules.edit.editors[e.definition.formatter]){if(a=s.table.modules.edit.editors[e.definition.formatter],(e.definition.formatter==="tick"||e.definition.formatter==="tickCross")&&!e.definition.headerFilterEmptyCheck)e.modules.filter.emptyFunc=function(g){return g!==!0&&g!==!1}}else a=s.table.modules.edit.editors.input;break}if(a){if(h={getValue:function(){return typeof t<"u"?t:""},getField:function(){return e.definition.field},getElement:function(){return o},getColumn:function(){return e.getComponent()},getTable:()=>this.table,getType:()=>"header",getRow:function(){return{normalizeHeight:function(){}}}},c=e.definition.headerFilterParams||{},c=typeof c==="function"?c.call(s.table,h):c,l=a.call(this.table.modules.edit,h,m,n,p,c),!l){console.warn("Filter Error - Cannot add filter to "+r+" column, editor returned a value of false");return}if(!(l instanceof Node)){console.warn("Filter Error - Cannot add filter to "+r+" column, editor should return an instance of Node, the editor returned:",l);return}if(s.langBind("headerFilters|columns|"+e.definition.field,function(g){l.setAttribute("placeholder",typeof g<"u"&&g?g:e.definition.headerFilterPlaceholder||s.langText("headerFilters|default"))}),l.addEventListener("click",function(g){g.stopPropagation(),l.focus()}),l.addEventListener("focus",(g)=>{var b=this.table.columnManager.contentsElement.scrollLeft,y=this.table.rowManager.element.scrollLeft;if(b!==y)this.table.rowManager.scrollHorizontal(b),this.table.columnManager.scrollHorizontal(b)}),d=!1,u=function(g){if(d)clearTimeout(d);d=setTimeout(function(){n(l.value)},s.table.options.headerFilterLiveFilterDelay)},e.modules.filter.headerElement=l,e.modules.filter.attrType=l.hasAttribute("type")?l.getAttribute("type").toLowerCase():"",e.modules.filter.tagType=l.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(l.addEventListener("keyup",u),l.addEventListener("search",u),e.modules.filter.attrType=="number")l.addEventListener("change",function(g){n(l.value)});if(e.modules.filter.attrType=="text"&&this.table.browser!=="ie")l.setAttribute("type","search")}if(e.modules.filter.tagType=="input"||e.modules.filter.tagType=="select"||e.modules.filter.tagType=="textarea")l.addEventListener("mousedown",function(g){g.stopPropagation()})}if(o.appendChild(l),e.contentElement.appendChild(o),!i)s.headerFilterColumns.push(e);if(f)f()}}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 n=!1;if(!Array.isArray(e))e=[{field:e,type:t,value:i,params:s}];if(e.forEach((r)=>{if(r=this.findFilter(r),r)this.filterList.push(r),n=!0}),n)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(B.filters[e.type])if(t=this.table.columnManager.getColumnByField(e.field),t)i=function(s){return B.filters[e.type](e.value,t.getFieldValue(s),s,e.params||{})};else i=function(s){return B.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 n;if(Array.isArray(s))i.push(this.filtersToArray(s,t));else{if(n={field:s.field,type:s.type,value:s.value},t){if(typeof n.type=="function")n.type="function"}i.push(n)}}),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 n=-1;if(typeof s.field=="object")n=this.filterList.findIndex((r)=>s===r);else n=this.filterList.findIndex((r)=>s.field===r.field&&s.type===r.type&&s.value===r.value);if(n>-1)this.filterList.splice(n,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 n=[],r=[];if(!Array.isArray(t))t=[{field:t,type:i,value:s}];return t.forEach((o)=>{if(o=this.findFilter(o),o)r.push(o)}),this.table.rowManager.rows.forEach((o)=>{var a=!0;if(r.forEach((l)=>{if(!this.filterRecurse(l,o.getData()))a=!1}),a)n.push(e==="data"?o.getData("data"):o.getComponent())}),n}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((n)=>{if(this.filterRow(n))i.push(n)});else i=e.slice(0);if(this.subscribedExternal("dataFiltered"))i.forEach((n)=>{s.push(n.getComponent())}),this.dispatchExternal("dataFiltered",this.getFilters(!0),s);return i}filterRow(e,t){var i=!0,s=e.getData();this.filterList.forEach((r)=>{if(!this.filterRecurse(r,s))i=!1});for(var n in this.headerFilters)if(!this.headerFilters[n].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 Rt(e,t,i){return this.emptyToSpace(this.sanitizeHTML(e.getValue()))}function xt(e,t,i){return e.getValue()}function Tt(e,t,i){return e.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(e.getValue()))}function kt(e,t,i){var s=parseFloat(e.getValue()),n="",r,o,a,l,h,d=t.decimal||".",u=t.thousand||",",c=t.negativeSign||"-",f=t.symbol||"",p=!!t.symbolAfter,m=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),n=c;if(r=m!==!1?s.toFixed(m):s,r=String(r).split("."),o=r[0],a=r.length>1?d+r[1]:"",t.thousand!==!1){l=/(\d+)(\d{3})/;while(l.test(o))o=o.replace(l,"$1"+u+"$2")}if(h=o+a,n===!0)return h="("+h+")",p?h+f:f+h;else return p?n+h+f:n+f+h}function Mt(e,t,i){var s=e.getValue(),n=t.urlPrefix||"",r=t.download,o=s,a=document.createElement("a"),l;function h(d,u){var c=d.shift(),f=u[c];if(d.length&&typeof f==="object")return h(d,f);return f}if(t.labelField)l=e.getData(),o=h(t.labelField.split(this.table.options.nestedFieldSeparator),l);if(t.label)switch(typeof t.label){case"string":o=t.label;break;case"function":o=t.label(e);break}if(o){if(t.urlField)l=e.getData(),s=M.retrieveNestedData(this.table.options.nestedFieldSeparator,t.urlField,l);if(t.url)switch(typeof t.url){case"string":s=t.url;break;case"function":s=t.url(e);break}if(a.setAttribute("href",n+s),t.target)a.setAttribute("target",t.target);if(t.download){if(typeof r=="function")r=r(e);else r=r===!0?"":r;a.setAttribute("download",r)}return a.innerHTML=this.emptyToSpace(this.sanitizeHTML(o)),a}else return" "}function Lt(e,t,i){var s=document.createElement("img"),n=e.getValue();if(t.urlPrefix)n=t.urlPrefix+e.getValue();if(t.urlSuffix)n=n+t.urlSuffix;switch(s.setAttribute("src",n),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 St(e,t,i){var s=e.getValue(),n=e.getElement(),{allowEmpty:r,allowTruthy:o}=t,a=Object.keys(t).includes("trueValue"),l=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>',h=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(a&&s===t.trueValue||!a&&(o&&s||(s===!0||s==="true"||s==="True"||s===1||s==="1")))return n.setAttribute("aria-checked",!0),l||"";else if(r&&(s==="null"||s===""||s===null||typeof s>"u"))return n.setAttribute("aria-checked","mixed"),"";else return n.setAttribute("aria-checked",!1),h||""}function Dt(e,t,i){var s=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),n=t.inputFormat||"yyyy-MM-dd HH:mm:ss",r=t.outputFormat||"dd/MM/yyyy HH:mm:ss",o=typeof t.invalidPlaceholder<"u"?t.invalidPlaceholder:"",a=e.getValue();if(typeof s<"u"){var l;if(s.isDateTime(a))l=a;else if(n==="x")l=s.fromMillis(a);else if(n==="iso")l=s.fromISO(String(a));else l=s.fromFormat(String(a),n);if(l.isValid){if(t.timezone)l=l.setZone(t.timezone);return l.toFormat(r)}else if(o===!0||!a)return a;else if(typeof o==="function")return o(a);else return o}else console.error("Format Error - 'datetime' formatter is dependant on luxon.js")}function zt(e,t,i){var s=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),n=t.inputFormat||"yyyy-MM-dd HH:mm:ss",r=typeof t.invalidPlaceholder<"u"?t.invalidPlaceholder:"",o=typeof t.suffix<"u"?t.suffix:!1,a=typeof t.unit<"u"?t.unit:"days",l=typeof t.humanize<"u"?t.humanize:!1,h=typeof t.date<"u"?t.date:s.now(),d=e.getValue();if(typeof s<"u"){var u;if(s.isDateTime(d))u=d;else if(n==="x")u=s.fromMillis(d);else if(n==="iso")u=s.fromISO(String(d));else u=s.fromFormat(String(d),n);if(u.isValid)if(l)return u.diff(h,a).toHuman()+(o?" "+o:"");else return parseInt(u.diff(h,a)[a])+(o?" "+o:"");else if(r===!0)return d;else if(typeof r==="function")return r(d);else return r}else console.error("Format Error - 'datetimediff' formatter is dependant on luxon.js")}function Ht(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 Ft(e,t,i){var s=e.getValue(),n=e.getElement(),r=t&&t.stars?t.stars:5,o=document.createElement("span"),a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l='<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 "/>',h='<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 "/>';o.style.verticalAlign="middle",a.setAttribute("width","14"),a.setAttribute("height","14"),a.setAttribute("viewBox","0 0 512 512"),a.setAttribute("xml:space","preserve"),a.style.padding="0 1px",s=s&&!Number.isNaN(s)?parseInt(s):0,s=Math.max(0,Math.min(s,r));for(var d=1;d<=r;d++){var u=a.cloneNode(!0);u.innerHTML=d<=s?l:h,o.appendChild(u)}return n.style.whiteSpace="nowrap",n.style.overflow="hidden",n.style.textOverflow="ellipsis",n.setAttribute("aria-label",s),o}function At(e,t,i){var s=this.sanitizeHTML(e.getValue())||0,n=document.createElement("span"),r=t&&t.max?t.max:100,o=t&&t.min?t.min:0,a=t&&typeof t.color<"u"?t.color:["red","orange","green"],l="#666666",h,d;if(Number.isNaN(s)||typeof e.getValue()>"u")return;switch(n.classList.add("tabulator-traffic-light"),d=parseFloat(s)<=r?parseFloat(s):r,d=parseFloat(d)>=o?parseFloat(d):o,h=(r-o)/100,d=Math.round((d-o)/h),typeof a){case"string":l=a;break;case"function":l=a(s);break;case"object":if(Array.isArray(a)){var u=100/a.length,c=Math.floor(d/u);c=Math.min(c,a.length-1),c=Math.max(c,0),l=a[c];break}}return n.style.backgroundColor=l,n}function _t(e,t={},i){var s=this.sanitizeHTML(e.getValue())||0,n=e.getElement(),r=t.max?t.max:100,o=t.min?t.min:0,a=t.legendAlign?t.legendAlign:"center",l,h,d,u,c;switch(h=parseFloat(s)<=r?parseFloat(s):r,h=parseFloat(h)>=o?parseFloat(h):o,l=(r-o)/100,h=Math.round((h-o)/l),typeof t.color){case"string":d=t.color;break;case"function":d=t.color(s);break;case"object":if(Array.isArray(t.color)){let g=100/t.color.length,b=Math.floor(h/g);b=Math.min(b,t.color.length-1),b=Math.max(b,0),d=t.color[b];break}default:d="#2DC214"}switch(typeof t.legend){case"string":u=t.legend;break;case"function":u=t.legend(s);break;case"boolean":u=s;break;default:u=!1}switch(typeof t.legendColor){case"string":c=t.legendColor;break;case"function":c=t.legendColor(s);break;case"object":if(Array.isArray(t.legendColor)){let g=100/t.legendColor.length,b=Math.floor(h/g);b=Math.min(b,t.legendColor.length-1),b=Math.max(b,0),c=t.legendColor[b]}break;default:c="#000"}n.style.minWidth="30px",n.style.position="relative",n.setAttribute("aria-label",h);var f=document.createElement("div");f.style.display="inline-block",f.style.width=h+"%",f.style.backgroundColor=d,f.style.height="100%",f.setAttribute("data-max",r),f.setAttribute("data-min",o);var p=document.createElement("div");if(p.style.position="relative",p.style.width="100%",p.style.height="100%",u){var m=document.createElement("div");m.style.position="absolute",m.style.top=0,m.style.left=0,m.style.textAlign=a,m.style.width="100%",m.style.color=c,m.innerHTML=u}return i(function(){if(!(e instanceof se)){var g=document.createElement("div");g.style.position="absolute",g.style.top="4px",g.style.bottom="4px",g.style.left="4px",g.style.right="4px",n.appendChild(g),n=g}if(n.appendChild(p),p.appendChild(f),u)p.appendChild(m)}),""}function Ot(e,t,i){return e.getElement().style.backgroundColor=this.sanitizeHTML(e.getValue()),""}function Pt(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 Bt(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 Vt(e,t,i){var s=e.getValue(),n=t.size||15,r=n+"px",o,a,l=t.hasOwnProperty("onValue")?t.onValue:!0,h=t.hasOwnProperty("offValue")?t.offValue:!1,d=t.onTruthy?s:s===l;if(o=document.createElement("div"),o.classList.add("tabulator-toggle"),d){if(o.classList.add("tabulator-toggle-on"),o.style.flexDirection="row-reverse",t.onColor)o.style.background=t.onColor}else if(t.offColor)o.style.background=t.offColor;if(o.style.width=2.5*n+"px",o.style.borderRadius=r,t.clickable)o.addEventListener("click",(u)=>{e.setValue(d?h:l)});return a=document.createElement("div"),a.classList.add("tabulator-toggle-switch"),a.style.height=r,a.style.width=r,a.style.borderRadius=r,o.appendChild(a),o}function It(e,t,i){var s=document.createElement("span"),n=e.getRow(),r=e.getTable();return n.watchPosition((o)=>{if(t.relativeToPage)o+=r.modules.page.getPageSize()*(r.modules.page.getPage()-1);s.innerText=o}),s}function Nt(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 Wt(e,t,i){var s,n,r;function o(a){var l=a.getValue(),h="plaintext";switch(typeof l){case"boolean":h="tickCross";break;case"string":if(l.includes(`
|
|
5
|
-
`))h="textarea";break}return h}if(s=t.formatterLookup?t.formatterLookup(e):o(e),t.paramsLookup)r=typeof t.paramsLookup==="function"?t.paramsLookup(s,e):t.paramsLookup[s];return n=this.table.modules.format.lookupFormatter(s),n.call(this,e,r||{},i)}function Gt(e,t,i){var s=t.delimiter||",",n=e.getValue(),r=this.table,o;if(t.valueMap)if(typeof t.valueMap==="string")o=function(a){return a.map((l)=>M.retrieveNestedData(r.options.nestedFieldSeparator,t.valueMap,l))};else o=t.valueMap;if(Array.isArray(n)){if(o)n=o(n);return n.join(s)}else return n}function jt(e,t,i){var s=t.indent||"\t",n=typeof t.multiline>"u"?!0:t.multiline,r=t.replacer||null,o=e.getValue();if(n)e.getElement().style.whiteSpace="pre-wrap";return JSON.stringify(o,r,s)}var Ut={plaintext:Rt,html:xt,textarea:Tt,money:kt,link:Mt,image:Lt,tickCross:St,datetime:Dt,datetimediff:zt,lookup:Ht,star:Ft,traffic:At,progress:_t,color:Ot,buttonTick:Pt,buttonCross:Bt,toggle:Vt,rownum:It,handle:Nt,adaptable:Wt,array:Gt,json:jt};class I extends z{static moduleName="format";static formatters=Ut;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,n,r,o;if(e.definition.titleFormatter)return s=this.lookupFormatter(e.definition.titleFormatter),r=(a)=>{e.titleFormatterRendered=a},o={getValue:function(){return t},getElement:function(){return i},getType:function(){return"header"},getColumn:function(){return e.getComponent()},getTable:()=>this.table},n=e.definition.titleFormatterParams||{},n=typeof n==="function"?n():n,s.call(this,o,n,r);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(n){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=n,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 n=function(r){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=r,e.modules.format.rendered=!1};return s=typeof i.params==="function"?i.params(e.getComponent()):i.params,i.formatter.call(this,e.getComponent(),s,n)}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 oe extends z{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((n,r)=>{if(n.modules.frozen.marginValue=i,n.modules.frozen.margin=n.modules.frozen.marginValue+"px",n.visible)i+=n.getWidth();if(r==this.leftColumns.length-1)n.modules.frozen.edge=!0;else n.modules.frozen.edge=!1;if(n.parent.isGroup){var o=this.getColGroupParentElement(n);if(!t.includes(o))this.layoutElement(o,n),t.push(o);o.classList.toggle("tabulator-frozen-left",n.modules.frozen.edge&&n.modules.frozen.position==="left"),o.classList.toggle("tabulator-frozen-right",n.modules.frozen.edge&&n.modules.frozen.position==="right")}else this.layoutElement(n.getElement(),n);if(e)n.cells.forEach((a)=>{this.layoutElement(a.getElement(!0),n)})}),this.rightColumns.forEach((n,r)=>{if(n.modules.frozen.marginValue=s,n.modules.frozen.margin=n.modules.frozen.marginValue+"px",n.visible)s+=n.getWidth();if(r==this.rightColumns.length-1)n.modules.frozen.edge=!0;else n.modules.frozen.edge=!1;if(n.parent.isGroup)this.layoutElement(this.getColGroupParentElement(n),n);else this.layoutElement(n.getElement(),n);if(e)n.cells.forEach((o)=>{this.layoutElement(o.getElement(!0),n)})})}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 ae extends z{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 n=this.touchWatchers[e];if(e==="column")e="header";switch(t){case"start":n.tap=!0,clearTimeout(n.tapHold),n.tapHold=setTimeout(()=>{clearTimeout(n.tapHold),n.tapHold=null,n.tap=null,clearTimeout(n.tapDbl),n.tapDbl=null,this.dispatchEvent(e+"TapHold",i,s)},1000);break;case"end":if(n.tap)n.tap=null,this.dispatchEvent(e+"Tap",i,s);if(n.tapDbl)clearTimeout(n.tapDbl),n.tapDbl=null,this.dispatchEvent(e+"DblTap",i,s);else n.tapDbl=setTimeout(()=>{clearTimeout(n.tapDbl),n.tapDbl=null},300);clearTimeout(n.tapHold),n.tapHold=null;break}}dispatchEvent(e,t,i){var s=i.getComponent(),n;if(this.columnSubscribers[e]){if(i instanceof Q)n=i.column.definition[e];else if(i instanceof P)n=i.definition[e];if(n)n(t,s)}this.dispatchExternal(e,t,s)}}var $t={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,navLeft:37,navRight:39,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35},Kt={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 G extends z{static moduleName="keybindings";static bindings=$t;static actions=Kt;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,G.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(G.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((n)=>{this.mapBinding(t,n)})})}}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:G.actions[e],keys:[],ctrl:!1,shift:!1,meta:!1},s=t.toString().toLowerCase().split(" ").join("").split("+");s.forEach((n)=>{switch(n){case"ctrl":i.ctrl=!0;break;case"shift":i.shift=!0;break;case"meta":i.meta=!0;break;default:if(n=isNaN(n)?n.toUpperCase().charCodeAt(0):parseInt(n),i.keys.push(n),!this.watchKeys[n])this.watchKeys[n]=[];this.watchKeys[n].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(n){e.checkBinding(t,n)})},this.keydownBinding=function(t){var i=e.getKeyCode(t),s=e.watchKeys[i];if(s){var n=e.pressedKeys.indexOf(i);if(n>-1)e.pressedKeys.splice(n,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 n=this.pressedKeys.indexOf(s);if(n==-1)i=!1}),i)t.action.call(this,e);return!0}return!1}}class le extends z{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(n){if(e.parent===t.moving.parent){if((t.touchMove?n.touches[0].pageX:n.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(n){if(t.touchMove=!1,n.which===1)t.checkTimeout=setTimeout(function(){t.startMove(n,e)},t.checkPeriod)}),s.addEventListener("mouseup",function(n){if(n.which===1){if(t.checkTimeout)clearTimeout(t.checkTimeout)}}),t.bindTouchEvents(e);e.modules.moveColumn=i}bindTouchEvents(e){var t=e.getElement(),i=!1,s,n,r,o,a,l;t.addEventListener("touchstart",(h)=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,s=e.nextColumn(),r=s?s.getWidth()/2:0,n=e.prevColumn(),o=n?n.getWidth()/2:0,a=0,l=0,i=!1,this.startMove(h,e)},this.checkPeriod)},{passive:!0}),t.addEventListener("touchmove",(h)=>{var d,u;if(this.moving){if(this.moveHover(h),!i)i=h.touches[0].pageX;if(d=h.touches[0].pageX-i,d>0){if(s&&d-a>r){if(u=s,u!==e)i=h.touches[0].pageX,u.getElement().parentNode.insertBefore(this.placeholderElement,u.getElement().nextSibling),this.moveColumn(u,!0)}}else if(n&&-d-l>o){if(u=n,u!==e)i=h.touches[0].pageX,u.getElement().parentNode.insertBefore(this.placeholderElement,u.getElement()),this.moveColumn(u,!1)}if(u)s=u.nextColumn(),a=r,r=s?s.getWidth()/2:0,n=u.prevColumn(),l=o,o=n?n.getWidth()/2:0}},{passive:!0}),t.addEventListener("touchend",(h)=>{if(this.checkTimeout)clearTimeout(this.checkTimeout);if(this.moving)this.endMove(h)})}startMove(e,t){var i=t.getElement(),s=this.table.columnManager.getContentsElement(),n=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-n.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,n){var r=s.getElement(!0);if(r.parentNode&&i[n])r.parentNode.insertBefore(i[n].getElement(),r.nextSibling)});else e.getCells().forEach(function(s,n){var r=s.getElement(!0);if(r.parentNode&&i[n])r.parentNode.insertBefore(i[n].getElement(),r)})}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,n;if(this.hoverElement.style.left=s-this.startX+"px",s-i<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{n=Math.max(0,i-5),this.table.rowManager.getElement().scrollLeft=n,this.autoScrollTimeout=!1},1)}if(i+t.clientWidth-s<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{n=Math.min(t.clientWidth,i+5),this.table.rowManager.getElement().scrollLeft=n,this.autoScrollTimeout=!1},1)}}}class he extends z{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 n=this,r=!1,o=i.definition.resizable,a={},l=i.getLastColumn();if(e==="header")r=i.definition.formatter=="textarea"||i.definition.variableHeight,a={variableHeight:r};if((o===!0||o==e)&&this._checkResizability(l)){var h=document.createElement("span");h.className="tabulator-col-resize-handle",h.addEventListener("click",function(u){u.stopPropagation()});var d=function(u){n.startColumn=i,n.initialNextColumn=n.nextColumn=l.nextColumn(),n._mouseDown(u,l,h)};if(h.addEventListener("mousedown",d),h.addEventListener("touchstart",d,{passive:!0}),h.addEventListener("dblclick",(u)=>{var c=l.getWidth();if(u.stopPropagation(),l.reinitializeWidth(!0),c!==l.getWidth())n.dispatch("column-resized",l),n.dispatchExternal("columnResized",l.getComponent())}),i.modules.frozen)h.style.position="sticky",h.style[i.modules.frozen.position]=this.frozenColumnOffset(i);if(e==="cell")h.style.height=t.row.heightStyled;if(a.handleEl=h,s.parentNode&&i.visible)s.after(h)}t.modules.resize=a}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,n=i-this.latestX,r,o;if(this.latestX=i,this.table.rtl)s=-s,n=-n;if(r=t.width==t.minWidth||t.width==t.maxWidth,t.setWidth(this.startWidth+s),o=t.width==t.minWidth||t.width==t.maxWidth,n<0)this.nextColumn=this.initialNextColumn;if(this.table.options.resizableColumnFit&&this.nextColumn&&!(r&&o)){let a=this.nextColumn.getWidth();if(n>0){if(a<=this.nextColumn.minWidth)this.nextColumn=this.nextColumn.nextColumn()}if(this.nextColumn)this.nextColumn.setWidth(this.nextColumn.getWidth()-n)}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,n=i.getBoundingClientRect().x-this.table.element.getBoundingClientRect().x,r=this.table.element.getBoundingClientRect().x,o=t.element.getBoundingClientRect().left-r,a=s-this.startX,l=Math.max(n+a,o+t.minWidth);if(t.maxWidth)l=Math.min(l,o+t.maxWidth);return l}_checkResizability(e){return e.definition.resizable}_mouseDown(e,t,i){var s=this,n;if(this.dispatchExternal("columnResizing",t.getComponent()),s.table.options.resizableColumnGuide)n=document.createElement("span"),n.classList.add("tabulator-col-resize-guide"),s.table.element.appendChild(n),setTimeout(()=>{n.style.left=s.calcGuidePosition(e,t,i)+"px"});s.table.element.classList.add("tabulator-block-select");function r(a){if(s.table.options.resizableColumnGuide)n.style.left=s.calcGuidePosition(a,t,i)+"px";else s.resize(a,t)}function o(a){if(s.table.options.resizableColumnGuide)s.resize(a,t),n.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",o),document.body.removeEventListener("mousemove",r),i.removeEventListener("touchmove",r),i.removeEventListener("touchend",o),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",r),document.body.addEventListener("mouseup",o),i.addEventListener("touchmove",r,{passive:!0}),i.addEventListener("touchend",o)}}class Re{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)}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 K{constructor(e,t,i,s){this.top=e,this.bottom=t,this.left=i,this.right=s}static zero(){return new K(0,0,0,0)}clone(){return new K(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 de extends D{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():K.zero(),this.table=e,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,n;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,n=e.column===this.rangeManager.rowHeader,this.rangeManager.selecting==="row")this.setEnd(i,this._getTableColumns().length-1);else if(this.rangeManager.selecting!=="row"&&n)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,n=this.table.modules.frozenColumns.leftColumns,r=n.length,o=this.table.modules.frozenColumns.rightColumns,a=o.length,l,h,d,u,c,f,p,m,g,b;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(r>0&&n[0].isRowHeader===!0)r-=1;if(this.overlaps(i,e,s,t)){l=Math.max(this.rect.top,e),h=Math.min(this.rect.bottom,t),d=Math.max(this.rect.left,i),u=Math.min(this.rect.right,s+r+a),c=this.rangeManager.getCell(l,d),f=this.rangeManager.getCell(h,u),p=c.getElement(),m=f.getElement(),g=c.row.getElement(),b=f.row.getElement(),this.element.classList.add("tabulator-range-active");let y=0;if(this.rangeManager.getTableColumns().forEach((L)=>{if(this.occupiesColumn(L)&&L.definition.frozen)y+=L.width}),this.table.rtl){let L=Math.max(p.offsetLeft+p.offsetWidth-m.offsetLeft,y);this.element.style.right=g.offsetWidth-p.offsetLeft-p.offsetWidth+"px",this.element.style.width=L+"px"}else{let L=Math.max(m.offsetLeft+m.offsetWidth-p.offsetLeft,y);this.element.style.left=g.offsetLeft+p.offsetLeft+"px",this.element.style.width=L+"px"}this.element.style.top=g.offsetTop+"px",this.element.style.height=b.offsetTop+b.offsetHeight-g.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 n=s.getData(),r={};i.forEach((o)=>{r[o.field]=n[o.field]}),e.push(r)}),e}getCells(e,t){var i=[],s=this.getRows(),n=this.getColumns();if(e)i=s.map((r)=>{var o=[];return r.getCells().forEach((a)=>{if(n.includes(a.column))o.push(t?a.getComponent():a)}),o});else s.forEach((r)=>{r.getCells().forEach((o)=>{if(n.includes(o.column))i.push(t?o.getComponent():o)})});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=[],n=!1;if(this.table.blockRedraw(),t.forEach((r,o)=>{let a=e[o];r.forEach((l,h)=>{let d=l.column.getField(),u=l.getValue(),c=!this.table.modExists("edit")||this.table.modules.edit.allowEdit(l),f=u;if(c&&d&&h<a.length){if(f=a[h],u!==f)n=!0;if(!i.has(l.row))i.set(l.row,{});i.get(l.row)[d]=f}s.push({oldValue:u,newValue:f})})}),i.forEach((r,o)=>o.updateData(r)),n&&this.table.modExists("history"))this.table.modules.history.action("rangeEdit",this,{cells:s});if(n)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 Re(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 D{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 de(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 n=q.extendAlongAxis(this.source,this.pointerRow,this.pointerCol);this.preview.setRect(n),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),n=e.bottom-e.top+1,r=e.right-e.left+1,o=this.rangeManager.getTableRows(),a=this.rangeManager.getTableColumns(),l=[];for(let h=s.top;h<=s.bottom;h++){let d=[];for(let u=s.left;u<=s.right;u++){let c=e.top+((h-e.top)%n+n)%n,f=e.left+((u-e.left)%r+r)%r,p=o[c],m=a[f];d.push(p.getData()[m.getField()])}l.push(d)}return l}addInitializedRange(e,t){let i=this.rangeManager.addRange(e,t);if(!i.initialized)return new Promise((s)=>{let n=(r)=>{if(r!==i)return;this.unsubscribe("range-added",n),s(i)};this.subscribe("range-added",n)});return Promise.resolve(i)}static extendAlongAxis(e,t,i){let s=0,n=0,{top:r,bottom:o,left:a,right:l}=e;if(t<e.top)s=e.top-t;else if(t>e.bottom)s=t-e.bottom;if(i<e.left)n=e.left-i;else if(i>e.right)n=i-e.right;if(s&&s>=n)r=Math.min(r,t),o=Math.max(o,t);else if(n)a=Math.min(a,i),l=Math.max(l,i);return new K(r,o,a,l)}destroy(){document.removeEventListener("mouseup",this.handleMouseUp),this.element.remove(),this.preview?.destroy()}}var Jt={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"]},Xt={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)}},qt={range:function(e){var t=[],i=this.table.modules.selectRange.activeRange,s=!1,n,r,o,a,l;if(l=e.length,i){if(n=i.getBounds(),r=n.start,n.start===n.end)s=!0;if(r){if(t=this.table.rowManager.activeRows.slice(),o=t.indexOf(r.row),s)a=e.length;else a=t.indexOf(n.end.row)-o+1;if(o>-1)this.table.blockRedraw(),t=t.slice(o,o+a),t.forEach((h,d)=>{h.updateData(e[d%l])}),this.table.restoreRedraw()}}return t}},Yt={range:function(e){var t=[],i=[],s=this.table.modules.selectRange.activeRange,n=!1,r,o,a,l,h;if(s){if(r=s.getBounds(),o=r.start,r.start===r.end)n=!0;if(o){if(e=e.split(`
|
|
5
|
+
`))h="textarea";break}return h}if(s=t.formatterLookup?t.formatterLookup(e):o(e),t.paramsLookup)r=typeof t.paramsLookup==="function"?t.paramsLookup(s,e):t.paramsLookup[s];return n=this.table.modules.format.lookupFormatter(s),n.call(this,e,r||{},i)}function Gt(e,t,i){var s=t.delimiter||",",n=e.getValue(),r=this.table,o;if(t.valueMap)if(typeof t.valueMap==="string")o=function(a){return a.map((l)=>M.retrieveNestedData(r.options.nestedFieldSeparator,t.valueMap,l))};else o=t.valueMap;if(Array.isArray(n)){if(o)n=o(n);return n.join(s)}else return n}function jt(e,t,i){var s=t.indent||"\t",n=typeof t.multiline>"u"?!0:t.multiline,r=t.replacer||null,o=e.getValue();if(n)e.getElement().style.whiteSpace="pre-wrap";return JSON.stringify(o,r,s)}var Ut={plaintext:Rt,html:xt,textarea:Tt,money:kt,link:Mt,image:Lt,tickCross:St,datetime:Dt,datetimediff:zt,lookup:Ht,star:Ft,traffic:At,progress:_t,color:Ot,buttonTick:Pt,buttonCross:Bt,toggle:Vt,rownum:It,handle:Nt,adaptable:Wt,array:Gt,json:jt};class I extends z{static moduleName="format";static formatters=Ut;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,n,r,o;if(e.definition.titleFormatter)return s=this.lookupFormatter(e.definition.titleFormatter),r=(a)=>{e.titleFormatterRendered=a},o={getValue:function(){return t},getElement:function(){return i},getType:function(){return"header"},getColumn:function(){return e.getComponent()},getTable:()=>this.table},n=e.definition.titleFormatterParams||{},n=typeof n==="function"?n():n,s.call(this,o,n,r);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(n){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=n,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 n=function(r){if(!e.modules.format)e.modules.format={};e.modules.format.renderedCallback=r,e.modules.format.rendered=!1};return s=typeof i.params==="function"?i.params(e.getComponent()):i.params,i.formatter.call(this,e.getComponent(),s,n)}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 oe extends z{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((n,r)=>{if(n.modules.frozen.marginValue=i,n.modules.frozen.margin=n.modules.frozen.marginValue+"px",n.visible)i+=n.getWidth();if(r==this.leftColumns.length-1)n.modules.frozen.edge=!0;else n.modules.frozen.edge=!1;if(n.parent.isGroup){var o=this.getColGroupParentElement(n);if(!t.includes(o))this.layoutElement(o,n),t.push(o);o.classList.toggle("tabulator-frozen-left",n.modules.frozen.edge&&n.modules.frozen.position==="left"),o.classList.toggle("tabulator-frozen-right",n.modules.frozen.edge&&n.modules.frozen.position==="right")}else this.layoutElement(n.getElement(),n);if(e)n.cells.forEach((a)=>{this.layoutElement(a.getElement(!0),n)})}),this.rightColumns.forEach((n,r)=>{if(n.modules.frozen.marginValue=s,n.modules.frozen.margin=n.modules.frozen.marginValue+"px",n.visible)s+=n.getWidth();if(r==this.rightColumns.length-1)n.modules.frozen.edge=!0;else n.modules.frozen.edge=!1;if(n.parent.isGroup)this.layoutElement(this.getColGroupParentElement(n),n);else this.layoutElement(n.getElement(),n);if(e)n.cells.forEach((o)=>{this.layoutElement(o.getElement(!0),n)})})}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 ae extends z{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 n=this.touchWatchers[e];if(e==="column")e="header";switch(t){case"start":n.tap=!0,clearTimeout(n.tapHold),n.tapHold=setTimeout(()=>{clearTimeout(n.tapHold),n.tapHold=null,n.tap=null,clearTimeout(n.tapDbl),n.tapDbl=null,this.dispatchEvent(e+"TapHold",i,s)},1000);break;case"end":if(n.tap)n.tap=null,this.dispatchEvent(e+"Tap",i,s);if(n.tapDbl)clearTimeout(n.tapDbl),n.tapDbl=null,this.dispatchEvent(e+"DblTap",i,s);else n.tapDbl=setTimeout(()=>{clearTimeout(n.tapDbl),n.tapDbl=null},300);clearTimeout(n.tapHold),n.tapHold=null;break}}dispatchEvent(e,t,i){var s=i.getComponent(),n;if(this.columnSubscribers[e]){if(i instanceof Q)n=i.column.definition[e];else if(i instanceof P)n=i.definition[e];if(n)n(t,s)}this.dispatchExternal(e,t,s)}}var $t={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,navLeft:37,navRight:39,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35},Kt={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 G extends z{static moduleName="keybindings";static bindings=$t;static actions=Kt;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,G.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(G.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((n)=>{this.mapBinding(t,n)})})}}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:G.actions[e],keys:[],ctrl:!1,shift:!1,meta:!1},s=t.toString().toLowerCase().split(" ").join("").split("+");s.forEach((n)=>{switch(n){case"ctrl":i.ctrl=!0;break;case"shift":i.shift=!0;break;case"meta":i.meta=!0;break;default:if(n=isNaN(n)?n.toUpperCase().charCodeAt(0):parseInt(n),i.keys.push(n),!this.watchKeys[n])this.watchKeys[n]=[];this.watchKeys[n].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(n){e.checkBinding(t,n)})},this.keydownBinding=function(t){var i=e.getKeyCode(t),s=e.watchKeys[i];if(s){var n=e.pressedKeys.indexOf(i);if(n>-1)e.pressedKeys.splice(n,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 n=this.pressedKeys.indexOf(s);if(n==-1)i=!1}),i)t.action.call(this,e);return!0}return!1}}class le extends z{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(n){if(e.parent===t.moving.parent){if((t.touchMove?n.touches[0].pageX:n.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(n){if(t.touchMove=!1,n.which===1)t.checkTimeout=setTimeout(function(){t.startMove(n,e)},t.checkPeriod)}),s.addEventListener("mouseup",function(n){if(n.which===1){if(t.checkTimeout)clearTimeout(t.checkTimeout)}}),t.bindTouchEvents(e);e.modules.moveColumn=i}bindTouchEvents(e){var t=e.getElement(),i=!1,s,n,r,o,a,l;t.addEventListener("touchstart",(h)=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,s=e.nextColumn(),r=s?s.getWidth()/2:0,n=e.prevColumn(),o=n?n.getWidth()/2:0,a=0,l=0,i=!1,this.startMove(h,e)},this.checkPeriod)},{passive:!0}),t.addEventListener("touchmove",(h)=>{var d,u;if(this.moving){if(this.moveHover(h),!i)i=h.touches[0].pageX;if(d=h.touches[0].pageX-i,d>0){if(s&&d-a>r){if(u=s,u!==e)i=h.touches[0].pageX,u.getElement().parentNode.insertBefore(this.placeholderElement,u.getElement().nextSibling),this.moveColumn(u,!0)}}else if(n&&-d-l>o){if(u=n,u!==e)i=h.touches[0].pageX,u.getElement().parentNode.insertBefore(this.placeholderElement,u.getElement()),this.moveColumn(u,!1)}if(u)s=u.nextColumn(),a=r,r=s?s.getWidth()/2:0,n=u.prevColumn(),l=o,o=n?n.getWidth()/2:0}},{passive:!0}),t.addEventListener("touchend",(h)=>{if(this.checkTimeout)clearTimeout(this.checkTimeout);if(this.moving)this.endMove(h)})}startMove(e,t){var i=t.getElement(),s=this.table.columnManager.getContentsElement(),n=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-n.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,n){var r=s.getElement(!0);if(r.parentNode&&i[n])r.parentNode.insertBefore(i[n].getElement(),r.nextSibling)});else e.getCells().forEach(function(s,n){var r=s.getElement(!0);if(r.parentNode&&i[n])r.parentNode.insertBefore(i[n].getElement(),r)})}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,n;if(this.hoverElement.style.left=s-this.startX+"px",s-i<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{n=Math.max(0,i-5),this.table.rowManager.getElement().scrollLeft=n,this.autoScrollTimeout=!1},1)}if(i+t.clientWidth-s<this.autoScrollMargin){if(!this.autoScrollTimeout)this.autoScrollTimeout=setTimeout(()=>{n=Math.min(t.clientWidth,i+5),this.table.rowManager.getElement().scrollLeft=n,this.autoScrollTimeout=!1},1)}}}class he extends z{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 n=this,r=!1,o=i.definition.resizable,a={},l=i.getLastColumn();if(e==="header")r=i.definition.formatter=="textarea"||i.definition.variableHeight,a={variableHeight:r};if((o===!0||o==e)&&this._checkResizability(l)){var h=document.createElement("span");h.className="tabulator-col-resize-handle",h.addEventListener("click",function(u){u.stopPropagation()});var d=function(u){n.startColumn=i,n.initialNextColumn=n.nextColumn=l.nextColumn(),n._mouseDown(u,l,h)};if(h.addEventListener("mousedown",d),h.addEventListener("touchstart",d,{passive:!0}),h.addEventListener("dblclick",(u)=>{var c=l.getWidth();if(u.stopPropagation(),l.reinitializeWidth(!0),c!==l.getWidth())n.dispatch("column-resized",l),n.dispatchExternal("columnResized",l.getComponent())}),i.modules.frozen)h.style.position="sticky",h.style[i.modules.frozen.position]=this.frozenColumnOffset(i);if(e==="cell")h.style.height=t.row.heightStyled;if(a.handleEl=h,s.parentNode&&i.visible)s.after(h)}t.modules.resize=a}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,n=i-this.latestX,r,o;if(this.latestX=i,this.table.rtl)s=-s,n=-n;if(r=t.width==t.minWidth||t.width==t.maxWidth,t.setWidth(this.startWidth+s),o=t.width==t.minWidth||t.width==t.maxWidth,n<0)this.nextColumn=this.initialNextColumn;if(this.table.options.resizableColumnFit&&this.nextColumn&&!(r&&o)){let a=this.nextColumn.getWidth();if(n>0){if(a<=this.nextColumn.minWidth)this.nextColumn=this.nextColumn.nextColumn()}if(this.nextColumn)this.nextColumn.setWidth(this.nextColumn.getWidth()-n)}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,n=i.getBoundingClientRect().x-this.table.element.getBoundingClientRect().x,r=this.table.element.getBoundingClientRect().x,o=t.element.getBoundingClientRect().left-r,a=s-this.startX,l=Math.max(n+a,o+t.minWidth);if(t.maxWidth)l=Math.min(l,o+t.maxWidth);return l}_checkResizability(e){return e.definition.resizable}_mouseDown(e,t,i){var s=this,n;if(this.dispatchExternal("columnResizing",t.getComponent()),s.table.options.resizableColumnGuide)n=document.createElement("span"),n.classList.add("tabulator-col-resize-guide"),s.table.element.appendChild(n),setTimeout(()=>{n.style.left=s.calcGuidePosition(e,t,i)+"px"});s.table.element.classList.add("tabulator-block-select");function r(a){if(s.table.options.resizableColumnGuide)n.style.left=s.calcGuidePosition(a,t,i)+"px";else s.resize(a,t)}function o(a){if(s.table.options.resizableColumnGuide)s.resize(a,t),n.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",o),document.body.removeEventListener("mousemove",r),i.removeEventListener("touchmove",r),i.removeEventListener("touchend",o),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",r),document.body.addEventListener("mouseup",o),i.addEventListener("touchmove",r,{passive:!0}),i.addEventListener("touchend",o)}}class Re{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 K{constructor(e,t,i,s){this.top=e,this.bottom=t,this.left=i,this.right=s}static zero(){return new K(0,0,0,0)}clone(){return new K(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 de extends D{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():K.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,n;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,n=e.column===this.rangeManager.rowHeader,this.rangeManager.selecting==="row")this.setEnd(i,this._getTableColumns().length-1);else if(this.rangeManager.selecting!=="row"&&n)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,n=this.table.modules.frozenColumns.leftColumns,r=n.length,o=this.table.modules.frozenColumns.rightColumns,a=o.length,l,h,d,u,c,f,p,m,g,b;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(r>0&&n[0].isRowHeader===!0)r-=1;if(this.overlaps(i,e,s,t)){l=Math.max(this.rect.top,e),h=Math.min(this.rect.bottom,t),d=Math.max(this.rect.left,i),u=Math.min(this.rect.right,s+r+a),c=this.rangeManager.getCell(l,d),f=this.rangeManager.getCell(h,u),p=c.getElement(),m=f.getElement(),g=c.row.getElement(),b=f.row.getElement(),this.element.classList.add("tabulator-range-active");let y=0;if(this.rangeManager.getTableColumns().forEach((L)=>{if(this.occupiesColumn(L)&&L.definition.frozen)y+=L.width}),this.table.rtl){let L=Math.max(p.offsetLeft+p.offsetWidth-m.offsetLeft,y);this.element.style.right=g.offsetWidth-p.offsetLeft-p.offsetWidth+"px",this.element.style.width=L+"px"}else{let L=Math.max(m.offsetLeft+m.offsetWidth-p.offsetLeft,y);this.element.style.left=g.offsetLeft+p.offsetLeft+"px",this.element.style.width=L+"px"}this.element.style.top=g.offsetTop+"px",this.element.style.height=b.offsetTop+b.offsetHeight-g.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 n=s.getData(),r={};i.forEach((o)=>{r[o.field]=n[o.field]}),e.push(r)}),e}getCells(e,t){var i=[],s=this.getRows(),n=this.getColumns();if(e)i=s.map((r)=>{var o=[];return r.getCells().forEach((a)=>{if(n.includes(a.column))o.push(t?a.getComponent():a)}),o});else s.forEach((r)=>{r.getCells().forEach((o)=>{if(n.includes(o.column))i.push(t?o.getComponent():o)})});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=[],n=!1;if(this.modifiedCells=[],this.table.blockRedraw(),t.forEach((r,o)=>{let a=e[o];r.forEach((l,h)=>{let d=l.column.getField(),u=l.getValue(),c=!this.table.modExists("edit")||this.table.modules.edit.allowEdit(l),f=u;if(c&&d&&h<a.length){if(f=a[h],u!==f)n=!0,this.modifiedCells.push(l.getComponent());if(!i.has(l.row))i.set(l.row,{});i.get(l.row)[d]=f}s.push({oldValue:u,newValue:f})})}),i.forEach((r,o)=>o.updateData(r)),n&&this.table.modExists("history"))this.table.modules.history.action("rangeEdit",this,{cells:s});if(n)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 Re(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 D{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 de(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 n=q.extendAlongAxis(this.source,this.pointerRow,this.pointerCol);this.preview.setRect(n),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),n=e.bottom-e.top+1,r=e.right-e.left+1,o=this.rangeManager.getTableRows(),a=this.rangeManager.getTableColumns(),l=[];for(let h=s.top;h<=s.bottom;h++){let d=[];for(let u=s.left;u<=s.right;u++){let c=e.top+((h-e.top)%n+n)%n,f=e.left+((u-e.left)%r+r)%r,p=o[c],m=a[f];d.push(p.getData()[m.getField()])}l.push(d)}return l}addInitializedRange(e,t){let i=this.rangeManager.addRange(e,t);if(!i.initialized)return new Promise((s)=>{let n=(r)=>{if(r!==i)return;this.unsubscribe("range-added",n),s(i)};this.subscribe("range-added",n)});return Promise.resolve(i)}static extendAlongAxis(e,t,i){let s=0,n=0,{top:r,bottom:o,left:a,right:l}=e;if(t<e.top)s=e.top-t;else if(t>e.bottom)s=t-e.bottom;if(i<e.left)n=e.left-i;else if(i>e.right)n=i-e.right;if(s&&s>=n)r=Math.min(r,t),o=Math.max(o,t);else if(n)a=Math.min(a,i),l=Math.max(l,i);return new K(r,o,a,l)}destroy(){document.removeEventListener("mouseup",this.handleMouseUp),this.element.remove(),this.preview?.destroy()}}var Jt={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"]},Xt={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)}},qt={range:function(e){var t=[],i=this.table.modules.selectRange.activeRange,s=!1,n,r,o,a,l;if(l=e.length,i){if(n=i.getBounds(),r=n.start,n.start===n.end)s=!0;if(r){if(t=this.table.rowManager.activeRows.slice(),o=t.indexOf(r.row),s)a=e.length;else a=t.indexOf(n.end.row)-o+1;if(o>-1)this.table.blockRedraw(),t=t.slice(o,o+a),t.forEach((h,d)=>{h.updateData(e[d%l])}),this.table.restoreRedraw()}}return t}},Yt={range:function(e){var t=[],i=[],s=this.table.modules.selectRange.activeRange,n=!1,r,o,a,l,h;if(s){if(r=s.getBounds(),o=r.start,r.start===r.end)n=!0;if(o){if(e=e.split(`
|
|
6
6
|
`),e.forEach(function(d){t.push(d.split("\t"))}),t.length){if(l=this.table.columnManager.getVisibleColumnsByIndex(),h=l.indexOf(o.column),h>-1){if(n)a=t[0].length;else a=l.indexOf(r.end.column)-h+1;return l=l.slice(h,h+a),t.forEach((d)=>{var u={},c=d.length;l.forEach(function(f,p){u[f.field]=d[p%c]}),i.push(u)}),i}}}}return!1}},Qt={range:function(){var e=this.modules.selectRange.selectedColumns();if(this.columnManager.rowHeader)e.unshift(this.columnManager.rowHeader);return e}},Zt={range:function(){return this.modules.selectRange.selectedRows()}},ei={rangeEdit:function(e){e.component.getCells().forEach((t,i)=>{t.setValueProcessData(e.data.cells[i].oldValue),t.cellRendered()})}},ti={rangeEdit:function(e){e.component.getCells().forEach((t,i)=>{t.setValueProcessData(e.data.cells[i].newValue),t.cellRendered()})}},ii={keybindings:{bindings:Jt,actions:Xt},clipboard:{pasteActions:qt,pasteParsers:Yt},export:{columnLookups:Qt,rowLookups:Zt},history:{undoers:ei,redoers:ti}};class ue extends z{static moduleName="selectRange";static moduleInitOrder=1;static moduleExtensions=ii;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.fillHandle=null,this.keyDownEvent=this._handleKeyDown.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("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-clear",this.finishEditingCell.bind(this)),this.subscribe("edit-blur",this.restoreFocus.bind(this)),this.subscribe("keybinding-nav-prev",this.keyNavigate.bind(this,"prev")),this.subscribe("keybinding-nav-next",this.keyNavigate.bind(this,"next")),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()}}}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((n)=>{if(n!==e)n.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)}finishEditingCell(){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")this.dispatch("edit-cancel-cell");else return!1}if(e==="prev")e="left";else if(e==="next")e="right";if(this.navigate(!1,!1,e))t.preventDefault()}keyNavigateRange(e,t,i,s){if(this.navigate(i,s,t))e.preventDefault()}navigate(e,t,i){var s=!1,n,r,o,a,l,h,d,u,c,f,p;if(this.table.modules.edit&&this.table.modules.edit.currentCell)return!1;if(this.ranges.length>1)this.ranges=this.ranges.filter((m)=>{if(m===this.activeRange)return m.setEnd(m.start.row,m.start.col),!0;return m.destroy(),!1});if(n=this.activeRange,o=n.rect.clone(),r=t?n.end:n.start,a=r.row,l=r.col,e)switch(i){case"left":l=this.findJumpCellLeft(n.start.row,r.col);break;case"right":l=this.findJumpCellRight(n.start.row,r.col);break;case"up":a=this.findJumpCellUp(r.row,n.start.col);break;case"down":a=this.findJumpCellDown(r.row,n.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":l=Math.max(l-1,0);break;case"right":l=Math.min(l+1,this.getTableColumns().length-1);break;case"up":a=Math.max(a-1,0);break;case"down":a=Math.min(a+1,this.getTableRows().length-1);break}}if(this.rowHeader&&l===0)l=1;if(!t)n.setStart(a,l);if(n.setEnd(a,l),!t)this.selecting="cell";if(s=!o.equals(n.rect),s){if(h=this.getRowByRangePos(n.end.row),d=this.getColumnByRangePos(n.end.col),u=h.getElement().getBoundingClientRect(),f=d.getElement().getBoundingClientRect(),c=this.table.rowManager.getElement().getBoundingClientRect(),p=this.table.columnManager.getElement().getBoundingClientRect(),!(u.top>=c.top&&u.bottom<=c.bottom))if(h.getElement().parentNode&&d.getElement().parentNode)this.autoScroll(n,h.getElement(),d.getElement());else h.getComponent().scrollTo(void 0,!1);if(!(f.left>=p.left+this.getRowHeaderWidth()&&f.right<=p.right))if(h.getElement().parentNode&&d.getElement().parentNode)this.autoScroll(n,h.getElement(),d.getElement());else d.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,n){if(i)t=t.reverse();return this.findJumpItem(s,n,t,function(r){return r.getData()[e.getField()]})}findJumpCol(e,t,i,s,n){if(i)t=t.reverse();return this.findJumpItem(s,n,t,function(r){return e.getData()[r.getField()]})}findJumpItem(e,t,i,s){var n;for(let r of i){let o=s(r);if(e){if(n=r,o)break}else if(t){if(n=r,o)break}else if(o)n=r;else break}return n}findJumpCellLeft(e,t){var i=this.getRowByRangePos(e),s=this.getTableColumns(),n=this.isEmpty(i.getData()[s[t].getField()]),r=s[t-1]?this.isEmpty(i.getData()[s[t-1].getField()]):!1,o=this.rowHeader?s.slice(1,t):s.slice(0,t),a=this.findJumpCol(i,o,!0,n,r);if(a)return a.getPosition()-1;return t}findJumpCellRight(e,t){var i=this.getRowByRangePos(e),s=this.getTableColumns(),n=this.isEmpty(i.getData()[s[t].getField()]),r=s[t+1]?this.isEmpty(i.getData()[s[t+1].getField()]):!1,o=this.findJumpCol(i,s.slice(t+1,s.length),!1,n,r);if(o)return o.getPosition()-1;return t}findJumpCellUp(e,t){var i=this.getColumnByRangePos(t),s=this.getTableRows(),n=this.isEmpty(s[e].getData()[i.getField()]),r=s[e-1]?this.isEmpty(s[e-1].getData()[i.getField()]):!1,o=this.findJumpRow(i,s.slice(0,e),!0,n,r);if(o)return o.position-1;return e}findJumpCellDown(e,t){var i=this.getColumnByRangePos(t),s=this.getTableRows(),n=this.isEmpty(s[e].getData()[i.getField()]),r=s[e+1]?this.isEmpty(s[e+1].getData()[i.getField()]):!1,o=this.findJumpRow(i,s.slice(e+1,s.length),!1,n,r);if(o)return o.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,n=this.getCell(-1,-1);if(this.rowHeader)s=this.getCell(0,1);else s=this.getCell(0,0);i.setBounds(s,n);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,n,r,o,a;if(typeof t>"u")t=this.getRowByRangePos(e.end.row).getElement();if(typeof i>"u")i=this.getColumnByRangePos(e.end.col).getElement();if(n={left:i.offsetLeft,right:i.offsetLeft+i.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight},r={left:s.scrollLeft+this.getRowHeaderWidth(),right:Math.ceil(s.scrollLeft+s.clientWidth),top:s.scrollTop,bottom:s.scrollTop+s.offsetHeight-this.table.rowManager.scrollbarWidth},o=r.left<n.left&&n.left<r.right&&r.left<n.right&&n.right<r.right,a=r.top<n.top&&n.top<r.bottom&&r.top<n.bottom&&n.bottom<r.bottom,!o){if(n.left<r.left)s.scrollLeft=n.left-this.getRowHeaderWidth();else if(n.right>r.right)s.scrollLeft=Math.min(n.right-s.clientWidth,n.left-this.getRowHeaderWidth())}if(!a){if(n.top<r.top)s.scrollTop=n.top;else if(n.bottom>r.bottom)s.scrollTop=n.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((n)=>n.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((n)=>n.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 de(this.table,this,{start:e,end:t}),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 si(e,t,i,s,n,r,o){var{alignEmptyValues:a,decimalSeparator:l,thousandSeparator:h}=o,d=0;if(e=String(e),t=String(t),h)e=e.split(h).join(""),t=t.split(h).join("");if(l)e=e.split(l).join("."),t=t.split(l).join(".");if(e=parseFloat(e),t=parseFloat(t),isNaN(e))d=isNaN(t)?0:-1;else if(isNaN(t))d=1;else return e-t;if(a==="top"&&r==="desc"||a==="bottom"&&r==="asc")d*=-1;return d}function ni(e,t,i,s,n,r,o){var a=o.alignEmptyValues,l=0,h;if(!e)l=!t?0:-1;else if(!t)l=1;else{switch(typeof o.locale){case"boolean":if(o.locale)h=this.langLocale();break;case"string":h=o.locale;break}return String(e).toLowerCase().localeCompare(String(t).toLowerCase(),h)}if(a==="top"&&r==="desc"||a==="bottom"&&r==="asc")l*=-1;return l}function ce(e,t,i,s,n,r,o){var a=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),l=o.format||"dd/MM/yyyy HH:mm:ss",h=o.alignEmptyValues,d=0;if(typeof a<"u"){if(!a.isDateTime(e))if(l==="iso")e=a.fromISO(String(e));else if(l==="x")e=a.fromMillis(e);else e=a.fromFormat(String(e),l);if(!a.isDateTime(t))if(l==="iso")t=a.fromISO(String(t));else if(l==="x")t=a.fromMillis(t);else t=a.fromFormat(String(t),l);if(!e.isValid)d=!t.isValid?0:-1;else if(!t.isValid)d=1;else return e-t;if(h==="top"&&r==="desc"||h==="bottom"&&r==="asc")d*=-1;return d}else console.error("Sort Error - 'datetime' sorter is dependant on luxon.js")}function ri(e,t,i,s,n,r,o){if(!o.format)o.format="dd/MM/yyyy";return ce.call(this,e,t,i,s,n,r,o)}function oi(e,t,i,s,n,r,o){if(!o.format)o.format="HH:mm";return ce.call(this,e,t,i,s,n,r,o)}function ai(e,t,i,s,n,r,o){var a=e===!0||e==="true"||e==="True"||e===1?1:0,l=t===!0||t==="true"||t==="True"||t===1?1:0;return a-l}function li(e,t,i,s,n,r,o){var a=o.type||"length",l=o.alignEmptyValues,h=0,d=this.table,u;if(o.valueMap)if(typeof o.valueMap==="string")u=function(f){return f.map((p)=>M.retrieveNestedData(d.options.nestedFieldSeparator,o.valueMap,p))};else u=o.valueMap;function c(f){var p;if(u)f=u(f);switch(a){case"length":p=f.length;break;case"sum":p=f.reduce(function(m,g){return m+g});break;case"max":p=Math.max.apply(null,f);break;case"min":p=Math.min.apply(null,f);break;case"avg":p=f.reduce(function(m,g){return m+g})/f.length;break;case"string":p=f.join("");break}return p}if(!Array.isArray(e))h=!Array.isArray(t)?0:-1;else if(!Array.isArray(t))h=1;else if(a==="string")return String(c(e)).toLowerCase().localeCompare(String(c(t)).toLowerCase());else return c(t)-c(e);if(l==="top"&&r==="desc"||l==="bottom"&&r==="asc")h*=-1;return h}function hi(e,t,i,s,n,r,o){var a=typeof e>"u"?0:1,l=typeof t>"u"?0:1;return a-l}function di(e,t,i,s,n,r,o){var a,l,h,d,u=0,c,f=/(\d+)|(\D+)/g,p=/\d/,m=o.alignEmptyValues,g=0;if(!e&&e!==0)g=!t&&t!==0?0:-1;else if(!t&&t!==0)g=1;else{if(isFinite(e)&&isFinite(t))return e-t;if(a=String(e).toLowerCase(),l=String(t).toLowerCase(),a===l)return 0;if(!(p.test(a)&&p.test(l)))return a>l?1:-1;a=a.match(f),l=l.match(f),c=a.length>l.length?l.length:a.length;while(u<c)if(h=a[u],d=l[u++],h!==d)if(isFinite(h)&&isFinite(d)){if(h.charAt(0)==="0")h="."+h;if(d.charAt(0)==="0")d="."+d;return h-d}else return h>d?1:-1;return a.length>l.length}if(m==="top"&&r==="desc"||m==="bottom"&&r==="asc")g*=-1;return g}var ui={number:si,string:ni,date:ri,time:oi,datetime:ce,boolean:ai,array:li,exists:hi,alphanum:di};class j extends z{static moduleName="sort";static sorters=ui;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 n=this.getSort();return n.forEach((r)=>{delete r.column}),s.sort=n,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(j.sorters[e.definition.sorter])t=j.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",(n)=>{n.stopPropagation()});(this.table.options.headerSortClickElement==="icon"?s:i).addEventListener("click",(n)=>{var r="",o=[],a=!1;if(e.modules.sort){if(e.modules.sort.tristate)if(e.modules.sort.dir=="none")r=e.modules.sort.startingDir;else if(e.modules.sort.dir==e.modules.sort.startingDir)r=e.modules.sort.dir=="asc"?"desc":"asc";else r="none";else switch(e.modules.sort.dir){case"asc":r="desc";break;case"desc":r="asc";break;default:r=e.modules.sort.startingDir}if(this.table.options.columnHeaderSortMulti&&(n.shiftKey||n.ctrlKey)){if(o=this.getSort(),a=o.findIndex((l)=>l.field===e.getField()),a>-1){if(o[a].dir=r,a=o.splice(a,1)[0],r!="none")o.push(a)}else if(r!="none")o.push({column:e,dir:r});this.setSort(o)}else if(r=="none")this.clear();else this.setSort(e,r);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(n){var r=i.table.columnManager.findColumn(n.column);if(r)n.column=r,s.push(n),i.changed=!0;else console.warn("Sort Warning - Sort field does not exist and is being ignored: ",n.column)}),i.sortList=s,this.dispatch("sort-changed")}clear(){this.setSort([])}findSorter(e){var t=this.table.rowManager.activeRows[0],i="string",s,n;if(t){if(t=t.getData(),s=e.getField(),s)switch(n=e.getFieldValue(t),typeof n){case"undefined":i="string";break;case"boolean":i="boolean";break;default:if(!isNaN(Number(n))&&n!=="")i="number";else if(n.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i))i="alphanum";break}}return j.sorters[i]}sort(e,t){var i=this,s=this.table.options.sortOrderReverse?i.sortList.slice().reverse():i.sortList,n=[],r=[];if(this.subscribedExternal("dataSorting"))this.dispatchExternal("dataSorting",i.getSort());if(!t)i.clearColumnHeaders();if(this.table.options.sortMode!=="remote"){if(s.forEach(function(o,a){var l;if(o.column){if(l=o.column.modules.sort,l){if(!l.sorter)l.sorter=i.findSorter(o.column);o.params=typeof l.params==="function"?l.params(o.column.getComponent(),o.dir):l.params,n.push(o)}if(!t)i.setColumnHeader(o.column,o.dir)}}),n.length)i._sortItems(e,n)}else if(!t)s.forEach(function(o,a){i.setColumnHeader(o.column,o.dir)});if(this.subscribedExternal("dataSorted"))e.forEach((o)=>{r.push(o.getComponent())}),this.dispatchExternal("dataSorted",i.getSort(),r);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,n)=>{var r;for(var o=i;o>=0;o--){let a=t[o];if(r=this._sortRow(s,n,a.column,a.dir,a.params),r!==0)break}return r})}_sortRow(e,t,i,s,n){var r,o,a=s=="asc"?e:t,l=s=="asc"?t:e;return e=i.getFieldValue(a.getData()),t=i.getFieldValue(l.getData()),e=typeof e<"u"?e:"",t=typeof t<"u"?t:"",r=a.getComponent(),o=l.getComponent(),i.modules.sort.sorter.call(this,e,t,r,o,i.getComponent(),s,n)}}class fe extends z{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,n,r;function o(a){n=a}if(typeof i==="function")i=i(e,t.getComponent(),o);if(i instanceof HTMLElement)s=i;else{if(s=document.createElement("div"),i===!0)if(t instanceof Q)i=t.value;else if(t.definition.field)this.langBind("columns|"+t.definition.field,(a)=>{s.innerHTML=i=a||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",(a)=>a.preventDefault()),this.popupInstance=this.popup(s),typeof n==="function")this.popupInstance.renderCallback(n);r=this.popupInstance.containerEventCoords(e),this.popupInstance.show(r.x+15,r.y+15).hideOnBlur(()=>{this.dispatchExternal("TooltipClosed",t.getComponent()),this.popupInstance=null}),this.dispatchExternal("TooltipOpened",t.getComponent())}}}var ci={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 pe{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 n in t)if(!i.hasOwnProperty(n)){if(s)console.warn("Invalid "+this.msgType+" option:",n);i[n]=t.key}for(let n in i)if(n in t)i[n]=t[n];else if(Array.isArray(i[n]))i[n]=Object.assign([],i[n]);else if(typeof i[n]==="object"&&i[n]!==null)i[n]=Object.assign({},i[n]);else if(typeof i[n]>"u")delete i[n];return i}}class J extends D{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),n=e.getElement(),r=0;return new Promise((o,a)=>{if(s>-1){if(typeof i>"u")i=this.table.options.scrollToRowIfVisible;if(!i){if(M.elVisible(n)){if(r=M.elOffset(n).top-M.elOffset(this.elementVertical).top,r>0&&r<this.elementVertical.clientHeight-n.offsetHeight)return o(),!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+(n.offsetTop-this.elementVertical.scrollTop)-(this.elementVertical.scrollHeight-n.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-n.offsetTop)+n.offsetHeight;else this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight+n.offsetHeight;break;case"top":this.elementVertical.scrollTop=n.offsetTop;break}o()}else console.warn("Scroll Error - Row not visible"),a("Scroll Error - Row not visible")})}}class xe extends J{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 Te extends J{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((n)=>{var r={},o;if(n.visible){if(!n.modules.frozen){if(o=n.getWidth(),r.leftPos=s,r.rightPos=s+o,r.width=o,this.isFitData)r.fitDataCheck=n.modules.vdomHoz?n.modules.vdomHoz.fitDataCheck:!0;if(s+o>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+=o;this.columns.push(n),n.modules.vdomHoz=r,s+=o}}}),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 n=t.cells[s];i.appendChild(n.getElement()),n.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 n=this.columns[s];n.modules.vdomHoz.leftPos+=i,n.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 n=s.getCell(i);s.getElement().insertBefore(n.getElement(),s.getCell(this.columns[this.rightCol]).getElement().nextSibling),n.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((n)=>{if(n.type!=="group"){var r=n.getCell(i);n.getElement().insertBefore(r.getElement(),n.getCell(this.columns[this.leftCol]).getElement()),r.cellRendered()}}),this.leftCol--,this.getVisibleRows().forEach((n)=>{if(n.type!=="group")n.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 n=s.getCell(i);try{s.getElement().removeChild(n.getElement())}catch(r){console.warn("Could not removeColRight",r.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 n=s.getCell(i);try{s.getElement().removeChild(n.getElement())}catch(r){console.warn("Could not removeColLeft",r.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 ke extends D{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 pe(this.table,"column definition",ye),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:Te,basic:xe};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]],n=this.table.options.autoColumnsDefinitions;if(e&&e.length){if(s.forEach((r)=>{Object.keys(r).forEach((o,a)=>{let l=r[o],h;if(!i[o])h={field:o,title:o,sorter:this.calculateSorterFromValue(l)},t.splice(a,0,h),i[o]=typeof l>"u"?h:!0;else if(i[o]!==!0){if(typeof l<"u")i[o].sorter=this.calculateSorterFromValue(l),i[o]=!0}})}),n)switch(typeof n){case"function":this.table.options.columns=n.call(this.table,t);break;case"object":if(Array.isArray(n))t.forEach((r)=>{var o=n.find((a)=>a.field===r.field);if(o)Object.assign(r,o)});else t.forEach((r)=>{if(n[r.field])Object.assign(r,n[r.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 P(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 P(e,this),n=s.getElement(),r=i?this.findColumnIndex(i):i;if(t&&this.rowHeader&&(!i||i===this.rowHeader))t=!1,i=this.rowHeader,r=0;if(i&&r>-1){var o=i.getTopColumn(),a=this.columns.indexOf(o),l=o.getElement();if(t)this.columns.splice(a,0,s),l.parentNode.insertBefore(n,l);else this.columns.splice(a+1,0,s),l.parentNode.insertBefore(n,l.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 P)return e;else if(e instanceof ne)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,n){var r=e.indexOf(t),o,a=[];if(r>-1){if(e.splice(r,1),o=e.indexOf(i),o>-1){if(s)o=o+1}else o=r;if(e.splice(o,0,t),n)a=this.chain("column-moving-rows",[t,i,s],null,[])||[],a=a.concat(this.table.rowManager.rows),a.forEach(function(l){if(l.cells.length){var h=l.cells.splice(r,1)[0];l.cells.splice(o,0,h)}})}}scrollToColumn(e,t,i){var s=0,n=e.getLeftOffset(),r=0,o=e.getElement();return new Promise((a,l)=>{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":r=-this.element.clientWidth/2;break;case"right":r=o.clientWidth-this.headersElement.clientWidth;break}if(!i){if(n>0&&n+o.offsetWidth<this.element.clientWidth)return!1}s=n+r,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),a()}else console.warn("Scroll Error - Column not visible"),l("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,n,r;if(i.visible){if(s=i.definition.width||0,n=parseInt(i.minWidth),typeof s=="string")if(s.indexOf("%")>-1)r=e/100*parseInt(s);else r=parseInt(s);else r=s;t+=r>n?r:n}}),t}addColumn(e,t,i){return new Promise((s,n)=>{var r=this._addColumn(e,t,i);if(this._reIndexColumns(),this.dispatch("column-add",e,t,i),this.layoutMode()!="fitColumns")r.reinitializeWidth();this.redraw(!0),this.table.rowManager.reinitialize(),this.rerenderColumns(),s(r)})}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 Me extends J{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((n,r)=>{if(this.styleRow(n,r),n.initialize(!1,!0),n.type!=="group")t=!1;i.appendChild(n.getElement())}),e.appendChild(i),s.forEach((n)=>{if(n.rendered(),!n.heightInitialized)n.calcHeight(!0)}),s.forEach((n)=>{if(!n.heightInitialized)n.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 Le extends J{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,n=this.table.rowManager.scrollLeft,r=this.rows();for(var o=this.vDomTop;o<=this.vDomBottom;o++)if(r[o]){var a=t-r[o].getElement().offsetTop;if(s===!1||Math.abs(a)<s)s=a,i=o;else break}if(r.forEach((l)=>{l.deinitializeHeight()}),e)e();if(this.rows().length){if(i===!1)i=r.length?this.rows().length-1:0;this._virtualRenderFill(i,!0,s||0)}else this.clear(),this.table.rowManager.tableEmpty();this.scrollColumns(n)}scrollColumns(e){this.table.rowManager.scrollHorizontal(e)}scrollRows(e,t){var i=e-this.vDomScrollPosTop,s=e-this.vDomScrollPosBottom,n=this.vDomWindowBuffer*2,r=this.rows();if(this.scrollTop=e,-i>n||s>n){var o=this.table.rowManager.scrollLeft;this._virtualRenderFill(Math.floor(this.elementVertical.scrollTop/this.elementVertical.scrollHeight*r.length)),this.scrollColumns(o)}else if(t){if(i<0)this._addTopRow(r,-i);if(s<0)if(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer)this._removeBottomRow(r,-s);else this.vDomScrollPosBottom=this.scrollTop}else{if(s>=0)this._addBottomRow(r,s);if(i>=0)if(this.scrollTop>this.vDomWindowBuffer)this._removeTopRow(r,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,n=0,r=0,o=this.rows();if(e)n=this.vDomTop,r=this.vDomBottom;else for(var a=this.vDomTop;a<=this.vDomBottom;a++)if(o[a])if(!s)if(t-o[a].getElement().offsetTop>=0)n=a;else if(s=!0,i-o[a].getElement().offsetTop>=0)r=a;else break;else if(i-o[a].getElement().offsetTop>=0)r=a;else break;return o.slice(n,r+1)}_virtualRenderFill(e,t,i){var s=this.tableElement,n=this.elementVertical,r=0,o=0,a=0,l=0,h=0,d=0,u=this.rows(),c=u.length,f=0,p,m,g=[],b=0,y=0,L=this.table.rowManager.fixedHeight,x=this.elementVertical.clientHeight,F=this.table.options.rowHeight,w=!0;if(e=e||0,i=i||0,!e)this.clear();else{while(s.firstChild)s.removeChild(s.firstChild);if(l=(c-e+1)*this.vDomRowHeight,l<x){if(e-=Math.ceil((x-l)/this.vDomRowHeight),e<0)e=0}r=Math.min(Math.max(Math.floor(this.vDomWindowBuffer/this.vDomRowHeight),this.vDomWindowMinMarginRows),e),e-=r}if(c&&M.elVisible(this.elementVertical)){if(this.vDomTop=e,this.vDomBottom=e-1,L||this.table.options.maxHeight){if(F)y=x/F+this.vDomWindowBuffer/F;y=Math.max(this.vDomWindowMinTotalRows,Math.ceil(y))}else y=c;while((y==c||o<=x+this.vDomWindowBuffer||b<this.vDomWindowMinTotalRows)&&this.vDomBottom<c-1){g=[],m=document.createDocumentFragment(),d=0;while(d<y&&this.vDomBottom<c-1){if(f=this.vDomBottom+1,p=u[f],this.styleRow(p,f),p.initialize(!1,!0),!p.heightInitialized&&!this.table.options.rowHeight)p.clearCellHeight();m.appendChild(p.getElement()),g.push(p),this.vDomBottom++,d++}if(!g.length)break;s.appendChild(m),g.forEach((C)=>{C.rendered()});let E=[];if(g.forEach((C)=>{if(!C.heightInitialized||!C.getHeight())C.calcHeight(!0),E.push(C)}),E.forEach((C)=>{C.setCellHeight()}),g.forEach((C)=>{if(a=C.getHeight()||this.vDomRowHeight,b<r)h+=a;else o+=a;if(a>this.vDomWindowBuffer)this.vDomWindowBuffer=a*2;b++}),w=this.table.rowManager.adjustTableSize(!0),x=this.elementVertical.clientHeight,w&&(L||this.table.options.maxHeight))F=o/b,y=Math.max(this.vDomWindowMinTotalRows,Math.ceil(x/F+this.vDomWindowBuffer/F))}if(!e)this.vDomTopPad=0,this.vDomRowHeight=Math.floor((o+h)/b),this.vDomBottomPad=this.vDomRowHeight*(c-this.vDomBottom-1),this.vDomScrollHeight=h+o+this.vDomBottomPad-x;else this.vDomTopPad=!t?this.scrollTop-h:this.vDomRowHeight*this.vDomTop+i,this.vDomBottomPad=this.vDomBottom==c-1?0:Math.max(this.vDomScrollHeight-this.vDomTopPad-o-h,0);if(s.style.paddingTop=this.vDomTopPad+"px",s.style.paddingBottom=this.vDomBottomPad+"px",t)this.scrollTop=this.vDomTopPad+h+i-(this.elementVertical.scrollWidth>this.elementVertical.clientWidth?this.elementVertical.offsetHeight-x:0);if(this.scrollTop=Math.min(this.scrollTop,this.elementVertical.scrollHeight-x),this.elementVertical.scrollWidth>this.elementVertical.clientWidth&&t)this.scrollTop+=this.elementVertical.offsetHeight-x;this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,n.scrollTop=this.scrollTop,this.dispatch("render-virtual-fill")}}_addTopRow(e,t){var i=this.tableElement,s=[],n=0,r=this.vDomTop-1,o=0,a=!0;while(a)if(this.vDomTop){let l=e[r],h,d;if(l&&o<this.vDomMaxRenderChain)if(h=l.getHeight()||this.vDomRowHeight,d=l.initialized,t>=h){if(this.styleRow(l,r),i.insertBefore(l.getElement(),i.firstChild),!l.initialized||!l.heightInitialized)s.push(l);if(l.initialize(),!d){if(h=l.getElement().offsetHeight,h>this.vDomWindowBuffer)this.vDomWindowBuffer=h*2}t-=h,n+=h,this.vDomTop--,r--,o++}else a=!1;else a=!1}else a=!1;for(let l of s)l.clearCellHeight();if(this._quickNormalizeRowHeight(s),n){if(this.vDomTopPad-=n,this.vDomTopPad<0)this.vDomTopPad=r*this.vDomRowHeight;if(r<1)this.vDomTopPad=0;i.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=n}}_removeTopRow(e,t){var i=[],s=0,n=0,r=!0;while(r){let o=e[this.vDomTop],a;if(o&&n<this.vDomMaxRenderChain)if(a=o.getHeight()||this.vDomRowHeight,t>=a)this.vDomTop++,t-=a,s+=a,i.push(o),n++;else r=!1;else r=!1}for(let o of i){let a=o.getElement();if(a.parentNode)a.parentNode.removeChild(a)}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=[],n=0,r=this.vDomBottom+1,o=0,a=!0;while(a){let l=e[r],h,d;if(l&&o<this.vDomMaxRenderChain)if(h=l.getHeight()||this.vDomRowHeight,d=l.initialized,t>=h){if(this.styleRow(l,r),i.appendChild(l.getElement()),!l.initialized||!l.heightInitialized)s.push(l);if(l.initialize(),!d){if(h=l.getElement().offsetHeight,h>this.vDomWindowBuffer)this.vDomWindowBuffer=h*2}t-=h,n+=h,this.vDomBottom++,r++,o++}else a=!1;else a=!1}for(let l of s)l.clearCellHeight();if(this._quickNormalizeRowHeight(s),n){if(this.vDomBottomPad-=n,this.vDomBottomPad<0||r==e.length-1)this.vDomBottomPad=0;i.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=n}}_removeBottomRow(e,t){var i=[],s=0,n=0,r=!0;while(r){let o=e[this.vDomBottom],a;if(o&&n<this.vDomMaxRenderChain)if(a=o.getHeight()||this.vDomRowHeight,t>=a)this.vDomBottom--,t-=a,s+=a,i.push(o),n++;else r=!1;else r=!1}for(let o of i){let a=o.getElement();if(a.parentNode)a.parentNode.removeChild(a)}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 Se extends D{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 _)return e;else if(e instanceof re)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,n)=>{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 n=new _(i,this);this.rows.push(n)}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
|
|
7
7
|
Expecting: array
|
|
8
8
|
Received: `,typeof e,`
|
|
9
|
-
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((n)=>{var r=n.indexOf(e);if(r>-1)n.splice(r,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 n=this.addRowActual(e,t,i,s);return n}addRows(e,t,i,s){var n=[];return new Promise((r,o)=>{if(t=this.findAddRowPos(t),!Array.isArray(e))e=[e];if(typeof i>"u"&&t||typeof i<"u"&&!t)e.reverse();if(e.forEach((a,l)=>{var h=this.addRow(a,t,i,!0);n.push(h),this.dispatch("row-added",h,a,t,i)}),this.refreshActiveData(s?"displayPipeline":!1,!1,!0),this.regenerateRowPositions(),this.displayRowsCount)this._clearPlaceholder();r(n)})}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 n=e instanceof _?e:new _(e||{},this),r=this.findAddRowPos(t),o=-1,a,l;if(!i)l=this.chain("row-adding-position",[n,r],null,{index:i,top:r}),i=l.index,r=l.top;if(typeof i<"u")i=this.findRow(i);if(i=this.chain("row-adding-index",[n,i,r],null,i),i)o=this.rows.indexOf(i);if(i&&o>-1){if(a=this.activeRows.indexOf(i),this.displayRowIterator(function(h){var d=h.indexOf(i);if(d>-1)h.splice(r?d:d+1,0,n)}),a>-1)this.activeRows.splice(r?a:a+1,0,n);this.rows.splice(r?o:o+1,0,n)}else if(r)this.displayRowIterator(function(h){h.unshift(n)}),this.activeRows.unshift(n),this.rows.unshift(n);else this.displayRowIterator(function(h){h.push(n)}),this.activeRows.push(n),this.rows.push(n);if(this.setActiveRows(this.activeRows),this.dispatchExternal("rowAdded",n.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData());if(!s)this.reRenderInPosition();return n}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 n,r,o,a;if(t!==i){if(n=e.indexOf(t),n>-1)if(e.splice(n,1),r=e.indexOf(i),r>-1)if(s)e.splice(r+1,0,t);else e.splice(r,0,t);else e.splice(n,0,t);if(e===this.getDisplayRows()){o=n<r?n:r,a=r>n?r:n+1;for(let l=o;l<=a;l++)if(e[l])this.styleRow(e[l],l)}}}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 _)||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 _)||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(n){if(n.type=="row")i.push(n.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,n="",r=0,o=["all","dataPipeline","display","displayPipeline","end"];if(!this.table.destroyed){if(typeof e==="function")if(r=this.dataPipeline.findIndex((a)=>a.handler===e),r>-1){if(n="dataPipeline",t)if(r==this.dataPipeline.length-1)n="display";else r++}else if(r=this.displayPipeline.findIndex((a)=>a.handler===e),r>-1){if(n="displayPipeline",t)if(r==this.displayPipeline.length-1)n="end";else r++}else{console.error("Unable to refresh data, invalid handler provided",e);return}else n=e||"all",r=0;if(this.redrawBlock){if(!this.redrawBlockRestoreConfig||this.redrawBlockRestoreConfig&&(this.redrawBlockRestoreConfig.stage===n&&r<this.redrawBlockRestoreConfig.index||o.indexOf(n)<o.indexOf(this.redrawBlockRestoreConfig.stage)))this.redrawBlockRestoreConfig={handler:e,skipStage:t,renderInPosition:i,stage:n,index:r};return}else{if(M.elVisible(this.element))if(i)this.reRenderInPosition(this.refreshPipelines.bind(this,e,n,r,i));else{if(this.refreshPipelines(e,n,r,i),!e)this.table.columnManager.renderer.renderColumns();if(this.renderTable(),s.options.layoutColumnsOnNewData)this.table.columnManager.redraw(!0)}else this.refreshPipelines(e,n,r,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 n=i;n<this.dataPipeline.length;n++){let r=this.dataPipeline[n].handler(this.activeRowsPipeline[n].slice(0));this.activeRowsPipeline[n+1]=r||this.activeRowsPipeline[n].slice(0)}this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);case"display":i=0,this.resetDisplayRows();case"displayPipeline":for(let n=i;n<this.displayPipeline.length;n++){let r=this.displayPipeline[n].handler((n?this.getDisplayRows(n-1):this.activeRows).slice(0),s);this.setDisplayRows(r||this.getDisplayRows(n-1).slice(0),n)}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:Le,basic:Me};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 n=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 r="calc(100% - "+n+"px)";this.element.style.minHeight=i||"calc(100% - "+n+"px)",this.element.style.height=r,this.element.style.maxHeight=r}else this.element.style.height="",this.element.style.height=Math.max(this.table.element.clientHeight-n,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 De extends D{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 ze extends D{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((n)=>{var r=s[e];return n!==e&&(!r||r&&!r.includes(n))}),i.forEach((n)=>{var r=this.pseudoTrackers[n].target;if(this.pseudoTrackers[n].target)this.dispatch(n+"-mouseleave",t,r),this.pseudoTrackers[n].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 n=i+"-"+s;this.subscriptionChange(n,this.subscriptionChanged.bind(this,i,s))}this.subscribe("table-destroy",this.clearWatchers.bind(this))}subscriptionChanged(e,t,i){var s=this.listeners[t].components,n=s.indexOf(e),r=!1;if(i){if(n===-1)s.push(e),r=!0}else if(!this.subscribed(e+"-"+t)){if(n>-1)s.splice(n,1),r=!0}if((t==="mouseenter"||t==="mouseleave")&&!this.pseudoTracking)this.bindPseudoEvents();if(r)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 n=s.classList?[...s.classList]:[];if(n.filter((a)=>this.abortClasses.includes(a)).length)break;let o=n.filter((a)=>i.includes(a));for(let a of o)if(!t[this.componentMap[a]])t[this.componentMap[a]]=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],n={},r={},o={};for(let a of i){let l,h=t[a],d=this.previousTargets[a];if(d&&d.target===h)l=d.component;else switch(a){case"row":case"group":if(s.components.includes("row")||s.components.includes("cell")||s.components.includes("group")){if(l=this.table.rowManager.getVisibleRows(!0).find((c)=>c.getElement()===h),t.row&&t.row.parentNode&&t.row.parentNode.closest(".tabulator-row"))t[a]=!1}break;case"column":if(s.components.includes("column"))l=this.table.columnManager.findColumn(h);break;case"cell":if(s.components.includes("cell")){if(n.row instanceof _)l=n.row.findCell(h);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(l)n[a]=l,o[a]={target:h,component:l}}return this.previousTargets=o,Object.keys(t).forEach((a)=>{let l=n[a];r[a]=l}),r}triggerEvents(e,t,i){var s=this.listeners[e];for(let n in i)if(i[n]&&s.components.includes(n))this.dispatch(n+"-"+e,t,i[n])}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 Fe{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 Ae extends D{constructor(e){super(e);this.requestOrder=0,this.loading=!1}initialize(){}load(e,t,i,s,n,r){var o=++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,n])){if(this.loading=!0,!n)this.alertLoader();t=this.chain("data-params",[e,i,n],t||{},t||{}),t=this.mapParams(t,this.table.options.dataSendParams);var a=this.chain("data-load",[e,t,i,n],!1,Promise.resolve([]));return a.then((l)=>{if(!this.table.destroyed){if(!Array.isArray(l)&&typeof l=="object")l=this.mapParams(l,this.objectInvert(this.table.options.dataReceiveParams));var h=this.chain("data-loaded",[l],null,l);if(o==this.requestOrder){if(this.clearAlert(),h!==!1)this.dispatchExternal("dataLoaded",h),this.table.rowManager.setData(h,s,typeof r>"u"?!s:r)}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((l)=>{if(console.error("Data Load Error: ",l),this.dispatchExternal("dataLoadError",l),!n)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 r>"u"?!s:r),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 _e{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 n=i[0].apply(this.table,t);for(let r=1;r<s;r++)i[r].apply(this.table,t);return n}}_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 Oe{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,n)=>s.priority-n.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 n=this.events[e];if(n&&n.length){if(!Array.isArray(t))t=[t];let r=t.slice(),o=r.length,a=i;for(let l=0;l<n.length;l++)r[o]=a,a=n[l].callback.apply(this,r);return a}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,n)=>{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 n=["InternalEvent:"+e,t,i,s];console.log(...n)}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 Pe extends D{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 Be extends D{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 n of e){var s=this.lookup(n,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 fi(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 Ee(e,t){if(e.forEach(function(i){i.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function pi(e,t){var i=0,s=this.table.rowManager.element.clientWidth,n=0,r=!1;if(e.forEach((o,a)=>{if(!o.widthFixed)o.reinitializeWidth();if(this.table.options.responsiveLayout?o.modules.responsive.visible:o.visible)r=o;if(o.visible)i+=o.getWidth()}),r){if(n=s-i+r.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))r.setWidth(0),this.table.modules.responsiveLayout.update();if(n>0)r.setWidth(n);else r.reinitializeWidth()}else if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function mi(e,t){var i=this.table.rowManager.element.getBoundingClientRect().width,s=0,n=0,r=0,o=0,a=[],l=[],h=0,d=0,u=0;function c(p){var m;if(typeof p=="string")if(p.indexOf("%")>-1)m=i/100*parseInt(p);else m=parseInt(p);else m=p;return m}function f(p,m,g,b){var y=[],L=0,x=0,F=0,w=r,E=0,C=0,S=[];function H(R){return g*(R.column.definition.widthGrow||1)}function V(R){return c(R.width)-g*(R.column.definition.widthShrink||0)}if(p.forEach(function(R,Di){var Ce=b?V(R):H(R);if(R.column.minWidth>=Ce)y.push(R);else if(R.column.maxWidth&&R.column.maxWidth<Ce){if(R.width=R.column.maxWidth,m-=R.column.maxWidth,w-=b?R.column.definition.widthShrink||1:R.column.definition.widthGrow||1,w)g=Math.floor(m/w)}else S.push(R),C+=b?R.column.definition.widthShrink||1:R.column.definition.widthGrow||1}),y.length)y.forEach(function(R){L+=b?R.width-R.column.minWidth:R.column.minWidth,R.width=R.column.minWidth}),x=m-L,F=C?Math.floor(x/C):x,E=f(S,x,F,b);else E=C?m-Math.floor(m/C)*C:m,S.forEach(function(R){R.width=b?V(R):H(R)});return E}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(p){var m,g,b;if(p.visible)if(m=p.definition.width,g=parseInt(p.minWidth),m){if(b=c(m),s+=b>g?b:g,p.definition.widthShrink)l.push({column:p,width:b>g?b:g}),h+=p.definition.widthShrink}else a.push({column:p,width:0}),r+=p.definition.widthGrow||1}),n=i-s,o=Math.floor(n/r),u=f(a,n,o,!1),a.length&&u>0)a[a.length-1].width+=u;if(a.forEach(function(p){n-=p.width}),d=Math.abs(u)+n,d>0&&h)u=f(l,d,Math.floor(d/h),!0);if(u&&l.length)l[l.length-1].width-=u;a.forEach(function(p){p.column.setWidth(p.width)}),l.forEach(function(p){p.column.setWidth(p.width)})}var gi={fitData:fi,fitDataFill:Ee,fitDataTable:Ee,fitDataStretch:pi,fitColumns:mi};class Y extends z{static moduleName="layout";static modes=gi;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(Y.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"),Y.modes[this.mode].call(this,this.table.columnManager.columnsByIndex,e),t)this.table.rowManager.normalizeHeight(!0);this.dispatch("layout-refreshed")}}var bi={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 me extends z{static moduleName="localize";static langs=bi;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(me.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 n in i)if(typeof i[n]=="object"){if(!s[n])s[n]={};t(i[n],s[n])}else s[n]=i[n]}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("|"),n=this._getLangElement(s,this.locale);return n||""}_getLangElement(e,t){var i=this.lang;return e.forEach(function(s){var n;if(i)if(n=i[s],typeof n<"u")i=n;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 Ve extends z{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 n=this.getConnections(e);if(n.forEach((r)=>{r.tableComms(this.table.element,t,i,s)}),!n.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 vi=Object.freeze({__proto__:null,CommsModule:Ve,LayoutModule:Y,LocalizeModule:me});class A{static registry={tables:[],register(e){A.registry.tables.push(e)},deregister(e){var t=A.registry.tables.indexOf(e);if(t>-1)A.registry.tables.splice(t,1)},lookupTable(e,t){var i=[],s,n;if(typeof e==="string"){if(s=document.querySelectorAll(e),s.length){for(var r=0;r<s.length;r++)if(n=A.registry.matchElement(s[r]),n)i.push(n)}}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement||e instanceof A){if(n=A.registry.matchElement(e),n)i.push(n)}else if(Array.isArray(e))e.forEach(function(o){i=i.concat(A.registry.lookupTable(o))});else if(!t)console.warn("Table Connection Error - Invalid Selector",e);return i},matchElement(e){return A.registry.tables.find(function(t){return e instanceof A?t===e:t.element===e})}};static findTable(e){var t=A.registry.lookupTable(e,!0);return Array.isArray(t)&&!t.length?!1:t}}class k extends A{static moduleBindings={};static moduleExtensions={};static modulesRegistered=!1;static defaultModules=!1;constructor(){super()}static initializeModuleBinder(e){if(!k.modulesRegistered){if(k.modulesRegistered=!0,k._registerModules(vi,!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 n in i)s[n]=i[n];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 n in s)k._extendModule(i,n,s[n]);else{if(!k.moduleExtensions[i])k.moduleExtensions[i]={};for(let n in s){if(!k.moduleExtensions[i][n])k.moduleExtensions[i][n]={};Object.assign(k.moduleExtensions[i][n],s[n])}}}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 n=k.moduleBindings[s],r=new n(this);if(this.modules[s]=r,n.prototype.moduleCore)this.modulesCore.push(r);else if(n.moduleInitOrder)if(n.moduleInitOrder<0)e.push(r);else t.push(r);else i.push(r)}e.sort((n,r)=>n.moduleInitOrder>r.moduleInitOrder?1:-1),t.sort((n,r)=>n.moduleInitOrder>r.moduleInitOrder?1:-1),this.modulesRegular=e.concat(i.concat(t))}}class Ie extends D{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 O extends k{static defaultOptions=ci;static extendModule(){O.initializeModuleBinder(),O._extendModule(...arguments)}static registerModule(){O.initializeModuleBinder(),O._registerModule(...arguments)}constructor(e,t,i){super();if(O.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 Fe(this),this.dataLoader=!1,this.modules={},this.modulesCore=[],this.modulesRegular=[],this.deprecationAdvisor=new Pe(this),this.optionsList=new pe(this,"table constructor"),this.dependencyRegistry=new Be(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 ke(this),this.rowManager=new Se(this),this.footerManager=new De(this),this.dataLoader=new Ae(this),this.alertManager=new Ie(this),this._bindModules(),this.options=this.optionsList.generate(O.defaultOptions,e),this._clearObjectPointers(),this._mapDeprecatedFunctionality(),this.externalEvents=new _e(this,this.options,this.options.debugEventsExternal),this.eventBus=new Oe(this.options.debugEventsInternal),this.interactionMonitor=new ze(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 n in s)if(typeof s[n]=="object")i.setAttribute(s[n].name,s[n].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(`
|
|
10
|
-
`),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((n)=>{var r=this.rowManager.findRow(n[this.options.index]);if(r)t++,r.updateData(n).then(()=>{if(t--,!t)i()}).catch((o)=>{s("Update Error - Unable to update row",n,o)});else s("Update Error - Unable to find row",n)});else console.warn("Update Error - No data provided"),s("Update Error - No data provided")})}addData(e,t,i){return this.initGuard(),new Promise((s,n)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e)this.rowManager.addRows(e,t,i).then((r)=>{var o=[];r.forEach(function(a){o.push(a.getComponent())}),s(o)});else console.warn("Update Error - No data provided"),n("Update Error - No data provided")})}updateOrAddData(e){var t=[],i=0;return this.initGuard(),new Promise((s,n)=>{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(i++,o)o.updateData(r).then(()=>{if(i--,t.push(o.getComponent()),!i)s(t)});else this.rowManager.addRows(r).then((a)=>{if(i--,t.push(a[0].getComponent()),!i)s(t)})});else console.warn("Update Error - No data provided"),n("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((n)=>n.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),n=this.columnManager.findColumn(t);if(this.initGuard(),s)if(n)this.columnManager.moveColumn(s,n,i);else console.warn("Move Error - No matching column found:",n);else console.warn("Move Error - No matching column found:",e)}scrollToColumn(e,t,i){return new Promise((s,n)=>{var r=this.columnManager.findColumn(e);if(r)return this.columnManager.scrollToColumn(r,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 N={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ne=(e)=>(...t)=>({_$litDirective$:e,values:t});class ge{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:Ai}=
|
|
9
|
+
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((n)=>{var r=n.indexOf(e);if(r>-1)n.splice(r,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 n=this.addRowActual(e,t,i,s);return n}addRows(e,t,i,s){var n=[];return new Promise((r,o)=>{if(t=this.findAddRowPos(t),!Array.isArray(e))e=[e];if(typeof i>"u"&&t||typeof i<"u"&&!t)e.reverse();if(e.forEach((a,l)=>{var h=this.addRow(a,t,i,!0);n.push(h),this.dispatch("row-added",h,a,t,i)}),this.refreshActiveData(s?"displayPipeline":!1,!1,!0),this.regenerateRowPositions(),this.displayRowsCount)this._clearPlaceholder();r(n)})}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 n=e instanceof _?e:new _(e||{},this),r=this.findAddRowPos(t),o=-1,a,l;if(!i)l=this.chain("row-adding-position",[n,r],null,{index:i,top:r}),i=l.index,r=l.top;if(typeof i<"u")i=this.findRow(i);if(i=this.chain("row-adding-index",[n,i,r],null,i),i)o=this.rows.indexOf(i);if(i&&o>-1){if(a=this.activeRows.indexOf(i),this.displayRowIterator(function(h){var d=h.indexOf(i);if(d>-1)h.splice(r?d:d+1,0,n)}),a>-1)this.activeRows.splice(r?a:a+1,0,n);this.rows.splice(r?o:o+1,0,n)}else if(r)this.displayRowIterator(function(h){h.unshift(n)}),this.activeRows.unshift(n),this.rows.unshift(n);else this.displayRowIterator(function(h){h.push(n)}),this.activeRows.push(n),this.rows.push(n);if(this.setActiveRows(this.activeRows),this.dispatchExternal("rowAdded",n.getComponent()),this.subscribedExternal("dataChanged"))this.dispatchExternal("dataChanged",this.table.rowManager.getData());if(!s)this.reRenderInPosition();return n}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 n,r,o,a;if(t!==i){if(n=e.indexOf(t),n>-1)if(e.splice(n,1),r=e.indexOf(i),r>-1)if(s)e.splice(r+1,0,t);else e.splice(r,0,t);else e.splice(n,0,t);if(e===this.getDisplayRows()){o=n<r?n:r,a=r>n?r:n+1;for(let l=o;l<=a;l++)if(e[l])this.styleRow(e[l],l)}}}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 _)||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 _)||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(n){if(n.type=="row")i.push(n.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,n="",r=0,o=["all","dataPipeline","display","displayPipeline","end"];if(!this.table.destroyed){if(typeof e==="function")if(r=this.dataPipeline.findIndex((a)=>a.handler===e),r>-1){if(n="dataPipeline",t)if(r==this.dataPipeline.length-1)n="display";else r++}else if(r=this.displayPipeline.findIndex((a)=>a.handler===e),r>-1){if(n="displayPipeline",t)if(r==this.displayPipeline.length-1)n="end";else r++}else{console.error("Unable to refresh data, invalid handler provided",e);return}else n=e||"all",r=0;if(this.redrawBlock){if(!this.redrawBlockRestoreConfig||this.redrawBlockRestoreConfig&&(this.redrawBlockRestoreConfig.stage===n&&r<this.redrawBlockRestoreConfig.index||o.indexOf(n)<o.indexOf(this.redrawBlockRestoreConfig.stage)))this.redrawBlockRestoreConfig={handler:e,skipStage:t,renderInPosition:i,stage:n,index:r};return}else{if(M.elVisible(this.element))if(i)this.reRenderInPosition(this.refreshPipelines.bind(this,e,n,r,i));else{if(this.refreshPipelines(e,n,r,i),!e)this.table.columnManager.renderer.renderColumns();if(this.renderTable(),s.options.layoutColumnsOnNewData)this.table.columnManager.redraw(!0)}else this.refreshPipelines(e,n,r,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 n=i;n<this.dataPipeline.length;n++){let r=this.dataPipeline[n].handler(this.activeRowsPipeline[n].slice(0));this.activeRowsPipeline[n+1]=r||this.activeRowsPipeline[n].slice(0)}this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);case"display":i=0,this.resetDisplayRows();case"displayPipeline":for(let n=i;n<this.displayPipeline.length;n++){let r=this.displayPipeline[n].handler((n?this.getDisplayRows(n-1):this.activeRows).slice(0),s);this.setDisplayRows(r||this.getDisplayRows(n-1).slice(0),n)}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:Le,basic:Me};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 n=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 r="calc(100% - "+n+"px)";this.element.style.minHeight=i||"calc(100% - "+n+"px)",this.element.style.height=r,this.element.style.maxHeight=r}else this.element.style.height="",this.element.style.height=Math.max(this.table.element.clientHeight-n,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 De extends D{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 ze extends D{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((n)=>{var r=s[e];return n!==e&&(!r||r&&!r.includes(n))}),i.forEach((n)=>{var r=this.pseudoTrackers[n].target;if(this.pseudoTrackers[n].target)this.dispatch(n+"-mouseleave",t,r),this.pseudoTrackers[n].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 n=i+"-"+s;this.subscriptionChange(n,this.subscriptionChanged.bind(this,i,s))}this.subscribe("table-destroy",this.clearWatchers.bind(this))}subscriptionChanged(e,t,i){var s=this.listeners[t].components,n=s.indexOf(e),r=!1;if(i){if(n===-1)s.push(e),r=!0}else if(!this.subscribed(e+"-"+t)){if(n>-1)s.splice(n,1),r=!0}if((t==="mouseenter"||t==="mouseleave")&&!this.pseudoTracking)this.bindPseudoEvents();if(r)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 n=s.classList?[...s.classList]:[];if(n.filter((a)=>this.abortClasses.includes(a)).length)break;let o=n.filter((a)=>i.includes(a));for(let a of o)if(!t[this.componentMap[a]])t[this.componentMap[a]]=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],n={},r={},o={};for(let a of i){let l,h=t[a],d=this.previousTargets[a];if(d&&d.target===h)l=d.component;else switch(a){case"row":case"group":if(s.components.includes("row")||s.components.includes("cell")||s.components.includes("group")){if(l=this.table.rowManager.getVisibleRows(!0).find((c)=>c.getElement()===h),t.row&&t.row.parentNode&&t.row.parentNode.closest(".tabulator-row"))t[a]=!1}break;case"column":if(s.components.includes("column"))l=this.table.columnManager.findColumn(h);break;case"cell":if(s.components.includes("cell")){if(n.row instanceof _)l=n.row.findCell(h);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(l)n[a]=l,o[a]={target:h,component:l}}return this.previousTargets=o,Object.keys(t).forEach((a)=>{let l=n[a];r[a]=l}),r}triggerEvents(e,t,i){var s=this.listeners[e];for(let n in i)if(i[n]&&s.components.includes(n))this.dispatch(n+"-"+e,t,i[n])}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 He{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 Fe extends D{constructor(e){super(e);this.requestOrder=0,this.loading=!1}initialize(){}load(e,t,i,s,n,r){var o=++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,n])){if(this.loading=!0,!n)this.alertLoader();t=this.chain("data-params",[e,i,n],t||{},t||{}),t=this.mapParams(t,this.table.options.dataSendParams);var a=this.chain("data-load",[e,t,i,n],!1,Promise.resolve([]));return a.then((l)=>{if(!this.table.destroyed){if(!Array.isArray(l)&&typeof l=="object")l=this.mapParams(l,this.objectInvert(this.table.options.dataReceiveParams));var h=this.chain("data-loaded",[l],null,l);if(o==this.requestOrder){if(this.clearAlert(),h!==!1)this.dispatchExternal("dataLoaded",h),this.table.rowManager.setData(h,s,typeof r>"u"?!s:r)}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((l)=>{if(console.error("Data Load Error: ",l),this.dispatchExternal("dataLoadError",l),!n)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 r>"u"?!s:r),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 Ae{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 n=i[0].apply(this.table,t);for(let r=1;r<s;r++)i[r].apply(this.table,t);return n}}_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 _e{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,n)=>s.priority-n.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 n=this.events[e];if(n&&n.length){if(!Array.isArray(t))t=[t];let r=t.slice(),o=r.length,a=i;for(let l=0;l<n.length;l++)r[o]=a,a=n[l].callback.apply(this,r);return a}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,n)=>{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 n=["InternalEvent:"+e,t,i,s];console.log(...n)}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 Pe extends D{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 Be extends D{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 n of e){var s=this.lookup(n,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 fi(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 Ee(e,t){if(e.forEach(function(i){i.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function pi(e,t){var i=0,s=this.table.rowManager.element.clientWidth,n=0,r=!1;if(e.forEach((o,a)=>{if(!o.widthFixed)o.reinitializeWidth();if(this.table.options.responsiveLayout?o.modules.responsive.visible:o.visible)r=o;if(o.visible)i+=o.getWidth()}),r){if(n=s-i+r.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))r.setWidth(0),this.table.modules.responsiveLayout.update();if(n>0)r.setWidth(n);else r.reinitializeWidth()}else if(this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0))this.table.modules.responsiveLayout.update()}function mi(e,t){var i=this.table.rowManager.element.getBoundingClientRect().width,s=0,n=0,r=0,o=0,a=[],l=[],h=0,d=0,u=0;function c(p){var m;if(typeof p=="string")if(p.indexOf("%")>-1)m=i/100*parseInt(p);else m=parseInt(p);else m=p;return m}function f(p,m,g,b){var y=[],L=0,x=0,F=0,w=r,E=0,C=0,S=[];function H(R){return g*(R.column.definition.widthGrow||1)}function V(R){return c(R.width)-g*(R.column.definition.widthShrink||0)}if(p.forEach(function(R,Di){var Ce=b?V(R):H(R);if(R.column.minWidth>=Ce)y.push(R);else if(R.column.maxWidth&&R.column.maxWidth<Ce){if(R.width=R.column.maxWidth,m-=R.column.maxWidth,w-=b?R.column.definition.widthShrink||1:R.column.definition.widthGrow||1,w)g=Math.floor(m/w)}else S.push(R),C+=b?R.column.definition.widthShrink||1:R.column.definition.widthGrow||1}),y.length)y.forEach(function(R){L+=b?R.width-R.column.minWidth:R.column.minWidth,R.width=R.column.minWidth}),x=m-L,F=C?Math.floor(x/C):x,E=f(S,x,F,b);else E=C?m-Math.floor(m/C)*C:m,S.forEach(function(R){R.width=b?V(R):H(R)});return E}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(p){var m,g,b;if(p.visible)if(m=p.definition.width,g=parseInt(p.minWidth),m){if(b=c(m),s+=b>g?b:g,p.definition.widthShrink)l.push({column:p,width:b>g?b:g}),h+=p.definition.widthShrink}else a.push({column:p,width:0}),r+=p.definition.widthGrow||1}),n=i-s,o=Math.floor(n/r),u=f(a,n,o,!1),a.length&&u>0)a[a.length-1].width+=u;if(a.forEach(function(p){n-=p.width}),d=Math.abs(u)+n,d>0&&h)u=f(l,d,Math.floor(d/h),!0);if(u&&l.length)l[l.length-1].width-=u;a.forEach(function(p){p.column.setWidth(p.width)}),l.forEach(function(p){p.column.setWidth(p.width)})}var gi={fitData:fi,fitDataFill:Ee,fitDataTable:Ee,fitDataStretch:pi,fitColumns:mi};class Y extends z{static moduleName="layout";static modes=gi;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(Y.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"),Y.modes[this.mode].call(this,this.table.columnManager.columnsByIndex,e),t)this.table.rowManager.normalizeHeight(!0);this.dispatch("layout-refreshed")}}var bi={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 me extends z{static moduleName="localize";static langs=bi;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(me.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 n in i)if(typeof i[n]=="object"){if(!s[n])s[n]={};t(i[n],s[n])}else s[n]=i[n]}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("|"),n=this._getLangElement(s,this.locale);return n||""}_getLangElement(e,t){var i=this.lang;return e.forEach(function(s){var n;if(i)if(n=i[s],typeof n<"u")i=n;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 Ve extends z{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 n=this.getConnections(e);if(n.forEach((r)=>{r.tableComms(this.table.element,t,i,s)}),!n.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 vi=Object.freeze({__proto__:null,CommsModule:Ve,LayoutModule:Y,LocalizeModule:me});class A{static registry={tables:[],register(e){A.registry.tables.push(e)},deregister(e){var t=A.registry.tables.indexOf(e);if(t>-1)A.registry.tables.splice(t,1)},lookupTable(e,t){var i=[],s,n;if(typeof e==="string"){if(s=document.querySelectorAll(e),s.length){for(var r=0;r<s.length;r++)if(n=A.registry.matchElement(s[r]),n)i.push(n)}}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement||e instanceof A){if(n=A.registry.matchElement(e),n)i.push(n)}else if(Array.isArray(e))e.forEach(function(o){i=i.concat(A.registry.lookupTable(o))});else if(!t)console.warn("Table Connection Error - Invalid Selector",e);return i},matchElement(e){return A.registry.tables.find(function(t){return e instanceof A?t===e:t.element===e})}};static findTable(e){var t=A.registry.lookupTable(e,!0);return Array.isArray(t)&&!t.length?!1:t}}class k extends A{static moduleBindings={};static moduleExtensions={};static modulesRegistered=!1;static defaultModules=!1;constructor(){super()}static initializeModuleBinder(e){if(!k.modulesRegistered){if(k.modulesRegistered=!0,k._registerModules(vi,!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 n in i)s[n]=i[n];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 n in s)k._extendModule(i,n,s[n]);else{if(!k.moduleExtensions[i])k.moduleExtensions[i]={};for(let n in s){if(!k.moduleExtensions[i][n])k.moduleExtensions[i][n]={};Object.assign(k.moduleExtensions[i][n],s[n])}}}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 n=k.moduleBindings[s],r=new n(this);if(this.modules[s]=r,n.prototype.moduleCore)this.modulesCore.push(r);else if(n.moduleInitOrder)if(n.moduleInitOrder<0)e.push(r);else t.push(r);else i.push(r)}e.sort((n,r)=>n.moduleInitOrder>r.moduleInitOrder?1:-1),t.sort((n,r)=>n.moduleInitOrder>r.moduleInitOrder?1:-1),this.modulesRegular=e.concat(i.concat(t))}}class Ie extends D{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 O extends k{static defaultOptions=ci;static extendModule(){O.initializeModuleBinder(),O._extendModule(...arguments)}static registerModule(){O.initializeModuleBinder(),O._registerModule(...arguments)}constructor(e,t,i){super();if(O.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 He(this),this.dataLoader=!1,this.modules={},this.modulesCore=[],this.modulesRegular=[],this.deprecationAdvisor=new Pe(this),this.optionsList=new pe(this,"table constructor"),this.dependencyRegistry=new Be(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 ke(this),this.rowManager=new Se(this),this.footerManager=new De(this),this.dataLoader=new Fe(this),this.alertManager=new Ie(this),this._bindModules(),this.options=this.optionsList.generate(O.defaultOptions,e),this._clearObjectPointers(),this._mapDeprecatedFunctionality(),this.externalEvents=new Ae(this,this.options,this.options.debugEventsExternal),this.eventBus=new _e(this.options.debugEventsInternal),this.interactionMonitor=new ze(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 n in s)if(typeof s[n]=="object")i.setAttribute(s[n].name,s[n].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(`
|
|
10
|
+
`),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((n)=>{var r=this.rowManager.findRow(n[this.options.index]);if(r)t++,r.updateData(n).then(()=>{if(t--,!t)i()}).catch((o)=>{s("Update Error - Unable to update row",n,o)});else s("Update Error - Unable to find row",n)});else console.warn("Update Error - No data provided"),s("Update Error - No data provided")})}addData(e,t,i){return this.initGuard(),new Promise((s,n)=>{if(this.dataLoader.blockActiveLoad(),typeof e==="string")e=JSON.parse(e);if(e)this.rowManager.addRows(e,t,i).then((r)=>{var o=[];r.forEach(function(a){o.push(a.getComponent())}),s(o)});else console.warn("Update Error - No data provided"),n("Update Error - No data provided")})}updateOrAddData(e){var t=[],i=0;return this.initGuard(),new Promise((s,n)=>{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(i++,o)o.updateData(r).then(()=>{if(i--,t.push(o.getComponent()),!i)s(t)});else this.rowManager.addRows(r).then((a)=>{if(i--,t.push(a[0].getComponent()),!i)s(t)})});else console.warn("Update Error - No data provided"),n("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((n)=>n.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),n=this.columnManager.findColumn(t);if(this.initGuard(),s)if(n)this.columnManager.moveColumn(s,n,i);else console.warn("Move Error - No matching column found:",n);else console.warn("Move Error - No matching column found:",e)}scrollToColumn(e,t,i){return new Promise((s,n)=>{var r=this.columnManager.findColumn(e);if(r)return this.columnManager.scrollToColumn(r,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 N={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ne=(e)=>(...t)=>({_$litDirective$:e,values:t});class ge{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:Ai}=bk;var We=(e)=>e.strings===void 0;var wi={},Ge=(e,t=wi)=>e._$AH=t;var be=Ne(class extends ge{constructor(e){if(super(e),e.type!==N.PROPERTY&&e.type!==N.ATTRIBUTE&&e.type!==N.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!We(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===Bl||t===tt)return t;let{element:i,name:s}=e;if(e.type===N.PROPERTY){if(t===i[s])return Bl}else if(e.type===N.BOOLEAN_ATTRIBUTE){if(!!t===i.hasAttribute(s))return Bl}else if(e.type===N.ATTRIBUTE&&i.getAttribute(s)===t+"")return Bl;return Ge(e),t}});function je(e,t,i){return(s,n,r,o)=>{let a=e("jx-grid-editor"),l=!1,h=(c)=>{if(!l)l=!0,r(Iu(c,t))},d=()=>{if(!l)l=!0,o()},u=t.kind==="date"?Io(s.getValue()).slice(0,10):Io(s.getValue());return Ni(br`<input
|
|
11
11
|
class="jx-grid-input"
|
|
12
12
|
type=${i}
|
|
13
13
|
.value=${be(u)}
|
|
14
14
|
@keydown=${(c)=>{if(c.key==="Enter")h(c.target.value);else if(c.key==="Escape")d()}}
|
|
15
15
|
@blur=${(c)=>h(c.target.value)}
|
|
16
|
-
/>`,a),n(()=>{let c=a.querySelector("input");c?.focus(),c?.select()}),a}}function Ci(e){return(t,i,s,n)=>{let r=e("jx-grid-editor"),o=!1;return
|
|
16
|
+
/>`,a),n(()=>{let c=a.querySelector("input");c?.focus(),c?.select()}),a}}function Ci(e){return(t,i,s,n)=>{let r=e("jx-grid-editor"),o=!1;return Ni(br`<input
|
|
17
17
|
class="jx-grid-checkbox"
|
|
18
18
|
type="checkbox"
|
|
19
19
|
.checked=${be(t.getValue()===!0)}
|
|
20
20
|
@change=${(a)=>{if(!o)o=!0,s(a.target.checked)}}
|
|
21
21
|
@keydown=${(a)=>{if(a.key==="Escape"&&!o)o=!0,n();else if(a.key==="Enter"&&!o)o=!0,s(a.target.checked)}}
|
|
22
22
|
@blur=${(a)=>{if(!o)o=!0,s(a.target.checked)}}
|
|
23
|
-
/>`,r),i(()=>r.querySelector("input")?.focus()),r}}function Ei(e,t){let i=Array.isArray(t.schema?.enum)?t.schema.enum.map(String):[];return(s,n,r,o)=>{let a=e("jx-grid-editor"),l=!1,h=
|
|
23
|
+
/>`,r),i(()=>r.querySelector("input")?.focus()),r}}function Ei(e,t){let i=Array.isArray(t.schema?.enum)?t.schema.enum.map(String):[];return(s,n,r,o)=>{let a=e("jx-grid-editor"),l=!1,h=Io(s.getValue());return Ni(br`<select
|
|
24
24
|
class="jx-grid-select"
|
|
25
25
|
@change=${(d)=>{if(!l){l=!0;let{value:u}=d.target;r(u===""?null:u)}}}
|
|
26
26
|
@keydown=${(d)=>{if(d.key==="Escape"&&!l)l=!0,o()}}
|
|
@@ -28,7 +28,7 @@ Data: `,e)}_wipeElements(){this.dispatch("rows-wipe"),this.destroy(),this.ad
|
|
|
28
28
|
>
|
|
29
29
|
<option value="" ?selected=${h===""}>—</option>
|
|
30
30
|
${i.map((d)=>br`<option value=${d} ?selected=${d===h}>${d}</option>`)}
|
|
31
|
-
</select>`,a),n(()=>a.querySelector("select")?.focus()),a}}function yi(e,t){return(i,s,n,r)=>{let o=e("jx-grid-editor jx-grid-pill-editor"),a=
|
|
31
|
+
</select>`,a),n(()=>a.querySelector("select")?.focus()),a}}function yi(e,t){return(i,s,n,r)=>{let o=e("jx-grid-editor jx-grid-pill-editor"),a=Iu(i.getValue(),t),l=Array.isArray(a)?[...a]:[],h=!1,d=(p)=>{if(h)return;if(h=!0,p)n(p);else r()},u=()=>o.querySelector("input"),c=(p)=>{let m=p.value.trim();if(m==="")return!1;return l.push(m),p.value="",!0},f=()=>{Ni(br`<span class="jx-grid-pills">
|
|
32
32
|
${l.map((p,m)=>br`<span class="jx-grid-chip"
|
|
33
33
|
>${p}<button
|
|
34
34
|
class="jx-grid-chip-x"
|
|
@@ -45,7 +45,7 @@ Data: `,e)}_wipeElements(){this.dispatch("rows-wipe"),this.destroy(),this.ad
|
|
|
45
45
|
@keydown=${(p)=>{let m=p.target;if(p.key==="Enter"||p.key===","){if(p.preventDefault(),c(m))f(),u()?.focus();else if(p.key==="Enter")d([...l])}else if(p.key==="Backspace"&&m.value===""&&l.length>0)l.pop(),f(),u()?.focus();else if(p.key==="Escape")d(null)}}
|
|
46
46
|
@blur=${(p)=>{c(p.target),d([...l])}}
|
|
47
47
|
/>
|
|
48
|
-
</span>`,o)};return f(),s(()=>u()?.focus()),o}}function Ue(e,t){if(e.kind==="readonly"||!e.editable&&!e.insertOnly)return;switch(e.kind){case"boolean":return Ci(t);case"enum":return Ei(t,e);case"date":return je(t,e,"date");case"array":return yi(t,e);default:return je(t,e,"text")}}function $e(e,t){return(i)=>{let s=i.getValue(),n=t(`jx-grid-cell-content jx-grid-kind-${e.kind}`);if(e.kind==="boolean")
|
|
48
|
+
</span>`,o)};return f(),s(()=>u()?.focus()),o}}function Ue(e,t){if(e.kind==="readonly"||!e.editable&&!e.insertOnly)return;switch(e.kind){case"boolean":return Ci(t);case"enum":return Ei(t,e);case"date":return je(t,e,"date");case"array":return yi(t,e);default:return je(t,e,"text")}}function $e(e,t){return(i)=>{let s=i.getValue(),n=t(`jx-grid-cell-content jx-grid-kind-${e.kind}`);if(e.kind==="boolean")Ni(br`${s===!0?"✓":""}`,n);else if(e.kind==="array"&&Array.isArray(s))Ni(br`${s.map((r)=>br`<span class="jx-grid-chip">${r}</span>`)}`,n);else Ni(br`${Io(s)}`,n);return n}}var Ke={$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"}]}]}]}]};T("grid-cell",Ke);var xi="grid/cell";function Ti(e){let t=typeof e==="string"?void 0:e.attributes?.part;return typeof t==="string"?t:""}function ve(e){let{view:t}=e,i=v({custom:t.custom,done:()=>{s.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}),s=ld({anchor:null,name:"grid-cell",scope:i,slot:xi,...e.dismissed?{onDismissed:e.dismissed}:{},...e.island?{onNodeCreated:(n,r,o)=>{if(Ti(o)==="picker-host"&&n instanceof HTMLElement)e.island?.(n)}}:{}});return s}function we(e){return e.kind==="image"||e.kind==="reference"}function ki(e){let t=e.schema?.$ref;if(typeof t!=="string"||!t.startsWith("#/content/"))return null;return t.slice(10)}function Mi(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 Je(e){let{anchor:t,column:i,commit:s,value:n}=e,r=Io(n),o=Mi(t),a=(l)=>{let h=l.trim();s(h===""?null:h)};if(i.kind==="reference"){let l=ki(i),h=l?await L1(l):[],d=h.includes(r);ve({pick:a,view:{custom:d?"":r,hint:l?`Entries of “${l}”`:"",hintState:l?"shown":"hidden",kind:"reference",options:[{label:"—",value:""},...h.map((u)=>({label:u,value:u}))],title:i.title,value:d?r:"",...o}});return}ve({island:(l)=>{cd(l,i.field,r,a)},pick:a,view:{custom:"",hint:"",hintState:"hidden",kind:"image",options:[],title:i.title,value:r,...o}})}var Xe=!1;function Li(){if(Xe)return;O.registerModule([U,ee,W,B,I,oe,ae,G,le,he,ue,j,fe]),Xe=!0}function qe(e){let t=document.createElement("div");return t.className=e,t}function Si(e){switch(e.kind){case"number":return"number";case"boolean":return"boolean";case"array":return(t,i)=>Io(t).localeCompare(Io(i));default:return"string"}}function cs(e,t){Li();let{buffer:i}=t,{columns:s}=t.state,n=new Map(s.map((w)=>[w.field,w])),r=!t.source.capabilities.remotePaging,o=!1,a=!1,l=!1,h=(w)=>String(w.getData()[Hw]??""),d=(w)=>{let E=i.rowState(h(w)),C=w.getElement();C.classList.toggle("jx-grid-row--pending-delete",E==="pending-delete"),C.classList.toggle("jx-grid-row--pending-insert",E==="pending-insert"),C.classList.toggle("jx-grid-row--stale",E==="stale")},u=(w)=>{let E=i.cellState(h(w.getRow()),w.getField()),C=w.getElement();C.classList.toggle("jx-grid-cell--dirty",E==="dirty"),C.classList.toggle("jx-grid-cell--error",E==="error"),C.classList.toggle("jx-grid-cell--stale",E==="stale");let S=i.cellError(h(w.getRow()),w.getField());if(S)C.title=S;else C.removeAttribute("title")},c=(w,E)=>(w.editable||w.insertOnly===!0&&i.isInsertKey(E))&&i.rowState(E)!=="pending-delete",f=s.map((w)=>{let E=$e(w,qe);return{editable:(C)=>c(w,h(C.getRow())),editor:we(w)?void 0:Ue(w,qe),field:w.field,formatter:(C,S,H)=>(H(()=>u(C)),E(C)),frozen:w.pk===!0?!0:void 0,headerFilter:r&&w.kind!=="boolean"?"input":void 0,headerSort:!t.source.capabilities.remoteSort,sorter:Si(w),title:w.title,width:w.widthHint}}),p=t.source.id,m=lc(p),g=new O(e,{clipboard:!0,clipboardCopyConfig:{columnHeaders:!1,rowHeaders:!1},clipboardCopyRowRange:"range",clipboardCopyStyled:!1,clipboardPasteAction:"range",clipboardPasteParser:"range",columnDefaults:{headerSortTristate:!0,resizable:"header"},columns:HS(f,m),data:t.effectiveRows(),editTriggerEvent:"dblclick",headerSortClickElement:"icon",height:"100%",history:!1,index:Hw,layout:"fitDataFill",movableColumns:!0,placeholder:"No rows",reactiveData:!1,renderHorizontal:"virtual",renderVertical:"virtual",rowFormatter:d,selectableRange:1,selectableRangeClearCells:!0,selectableRangeClearCellsValue:null,selectableRangeColumns:!0,selectableRangeRows:!0}),b=()=>{if(!a){l=!0;return}o=!0,g.replaceData(t.effectiveRows()).catch(()=>{}).finally(()=>{o=!1})};t.bindView({refreshData:b}),g.on("tableBuilt",()=>{if(a=!0,l)l=!1,b()});let L=mE(()=>{if(!a)return`grid[${p}]: building`;if(t.effectiveRows().length>0){if(g.getRanges().length===0)return`grid[${p}]: selection range not laid out`;let w=e.querySelector(".tabulator-range-overlay .tabulator-range");if(!w||Oe(w).width===0)return`grid[${p}]: selection range outline not painted`}return null});g.on("cellEdited",(w)=>{if(o)return;let E=w.getField(),C=n.get(E);if(!C)return;let S=h(w.getRow()),H=Iu(w.getValue(),C);if(i.setCell(S,E,H),!bb(H,w.getValue())){o=!0;try{w.setValue(H,!0)}finally{o=!1}}u(w),d(w.getRow())}),g.on("columnResized",(w)=>{Gh(p,{widths:{[w.getField()]:w.getWidth()}})}),g.on("columnMoved",(w,E)=>{Gh(p,{order:E.map((C)=>C.getField())})}),g.on("cellDblClick",(w,E)=>{let C=n.get(E.getField()),S=h(E.getRow());if(!C||!we(C)||!c(C,S))return;let H=Oe(E.getElement());Je({anchor:{bottom:H.bottom,left:H.left},column:C,commit:(V)=>{i.setCell(S,C.field,V),o=!0;try{E.setValue(V,!0)}finally{o=!1}u(E),d(E.getRow())},value:i.effectiveValue(S,C.field)})});let x=!1,F=()=>{if(x)return;x=!0,i.beginGroup(),queueMicrotask(()=>{x=!1,i.endGroup()})};return e.addEventListener("paste",F,!0),e.addEventListener("keydown",(w)=>{if(w.key==="Delete"||w.key==="Backspace")F()},!0),{destroy(){L(),t.bindView(null),g.destroy()},fillDown(){let[w]=g.getRanges();if(!w)return;let E=w.getCells();if(E.length<2)return;let[C]=E;if(!C)return;i.group(()=>{for(let S of E.slice(1))for(let[H,V]of S.entries()){let R=C[H];if(R)V.setValue(R.getValue(),!0)}})},getSelectedRowKeys(){let w=new Set;for(let E of g.getRanges())for(let C of E.getRows())w.add(h(C));return[...w]},refreshData:b,setSearch(w){let E=w.trim().toLowerCase();if(E===""){g.clearFilter(!1);return}let C=s.map((S)=>S.field);g.setFilter((S)=>C.some((H)=>Io(S[H]).toLowerCase().includes(E)))}}}export{cs as createGridView};
|
|
49
49
|
|
|
50
|
-
//# debugId=
|
|
51
|
-
//# sourceMappingURL=grid-view-
|
|
50
|
+
//# debugId=D0C41D460E14D2CF64756E2164756E21
|
|
51
|
+
//# sourceMappingURL=grid-view-5amhg604.js.map
|