UNPKG

@serenity-is/sleekgrid

Version:

A modern Data Grid / Spreadsheet component

1 lines 125 kB
var Le=class{constructor(){this.__nonDataRow=!0}},at="slick-edit-preclick";var lt={nameIsHtml:!1,resizable:!0,sortable:!1,minWidth:30,rerenderOnResize:!1,defaultSortAsc:!0,focusable:!0,selectable:!0};function ht(a,e){var n;for(var t={},i=0;i<a.length;i++){var o=a[i];if(e!=null)for(var s in e)o[s]===void 0&&(o[s]=e[s]);if(o.minWidth&&o.width<o.minWidth&&(o.width=o.minWidth),o.maxWidth&&o.width>o.maxWidth&&(o.width=o.maxWidth),o.id==null||t[o.id]){let l=o.id!=null&&o.id.length?o.id:o.field!=null?o.field:"col";for(var r=0;t[o.id=l+(r==0?"":"_"+r.toString())];)r++}t[o.id]=!0,o.name===void 0&&(o.name=li((n=o.field)!=null?n:o.id),delete o.nameIsHtml)}}function li(a){return a&&(a=(""+a).replace(/([A-Z]+)([A-Z][a-z])/,"$1_$2").replace(/([a-z\d])([A-Z])/,"$1_$2").replace(/[-\s]/,"_").toLowerCase(),a.replace(/\s/,"_").split("_").filter(e=>e.length).map(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()).join(" "))}var Ye=class{isActive(e){return e?this.activeEditController===e:this.activeEditController!=null}activate(e){if(e!==this.activeEditController){if(this.activeEditController!=null)throw"SleekGrid.EditorLock.activate: an editController is still active, can't activate another editController";if(!e.commitCurrentEdit)throw"SleekGrid.EditorLock.activate: editController must implement .commitCurrentEdit()";if(!e.cancelCurrentEdit)throw"SleekGrid.EditorLock.activate: editController must implement .cancelCurrentEdit()";this.activeEditController=e}}deactivate(e){if(this.activeEditController!==e)throw"SleekGrid.EditorLock.deactivate: specified editController is not the currently active one";this.activeEditController=null}commitCurrentEdit(){return this.activeEditController?this.activeEditController.commitCurrentEdit():!0}cancelCurrentEdit(){return this.activeEditController?this.activeEditController.cancelCurrentEdit():!0}},dt=new Ye;var Te=class{constructor(){this._isPropagationStopped=!1;this._isImmediatePropagationStopped=!1}stopPropagation(){this._isPropagationStopped=!0}isPropagationStopped(){return this._isPropagationStopped}stopImmediatePropagation(){this._isImmediatePropagationStopped=!0}isImmediatePropagationStopped(){return this._isImmediatePropagationStopped}},L=class{constructor(){this._handlers=[]}subscribe(e){this._handlers.push(e)}unsubscribe(e){for(var t=this._handlers.length-1;t>=0;t--)this._handlers[t]===e&&this._handlers.splice(t,1)}notify(e,t,i){t=hi(t)||new Te,i=i||this;for(var o,s=0;s<this._handlers.length&&!(t.isPropagationStopped()||t.isImmediatePropagationStopped());s++)o=this._handlers[s].call(i,t,e);return o}clear(){this._handlers=[]}},Ce=class{constructor(){this._handlers=[]}subscribe(e,t){return this._handlers.push({event:e,handler:t}),e.subscribe(t),this}unsubscribe(e,t){for(var i=this._handlers.length;i--;)if(this._handlers[i].event===e&&this._handlers[i].handler===t)return this._handlers.splice(i,1),e.unsubscribe(t),this;return this}unsubscribeAll(){for(var e=this._handlers.length;e--;)this._handlers[e].event.unsubscribe(this._handlers[e].handler);return this._handlers=[],this}},_i={BACKSPACE:8,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,PAGEDOWN:34,PAGEUP:33,RIGHT:39,TAB:9,UP:38};function ut(){return!0}function ct(){return!1}function hi(a){if(a==null)return a;!a.isDefaultPrevented&&a.preventDefault&&(a.isDefaultPrevented=function(){return this.defaultPrevented});var e,t;return!a.isImmediatePropagationStopped&&(e=a.stopImmediatePropagation)&&(a.isImmediatePropagationStopped=ct,a.stopImmediatePropagation=function(){this.isImmediatePropagationStopped=ut,e.call(this)}),!a.isPropagationStopped&&(t=a.stopPropagation)&&(a.isPropagationStopped=ct,a.stopPropagation=function(){this.isPropagationStopped=ut,t.call(this)}),a}function ne(a,e){if(!(e==null||!e.length))if(e.indexOf(" ")>=0){var t=e.split(" ").map(o=>o.trim()).filter(o=>o.length);for(var i of t)a.classList.add(i)}else a.classList.add(e)}var di={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;","&":"&amp;"};function ui(a){return di[a]}function G(a){return!arguments.length&&this&&(a=this.value),a==null?"":(typeof a!="string"&&(a=""+a),a.replace(/[<>"'&]/g,ui))}function gt(a){return(a!=null?a:"").replace(/(\b)(on[a-z]+)(\s*)=|javascript:([^>]*)[^>]*|(<\s*)(\/*)script([<>]*).*(<\s*)(\/*)script(>*)|(&lt;)(\/*)(script|script defer)(.*)(&gt;|&gt;">)/gi,"")}function He(a){a&&(a.setAttribute("unselectable","on"),a.style.userSelect="none",a.addEventListener("selectstart",()=>!1))}function De(a,e){if(!(e==null||!e.length))if(e.indexOf(" ")>=0){var t=e.split(" ").map(o=>o.trim()).filter(o=>o.length);for(var i of t)a.classList.remove(i)}else a.classList.remove(e)}function p(a,e,...t){var i=document.createElement(a),o,s,r;if(e){for(o in e)if(s=e[o],s!=null&&s!==!1){if(o==="ref"&&typeof s=="function"){s(i);continue}var n=o==="className"?"class":o;i.setAttribute(n,s===!0?"":s)}}return t&&t.length&&i.append(...t),i}function ge(a){return p("div",{style:"display:block;height:1px;position:absolute;top:0;left:0;",width:a})}function k(a){var e=parseFloat(a);return isNaN(e)?0:e}function Ie(a){return G(a.value)}function ae(a){return a==null?null:function(e){var t=a(e.row,e.cell,e.value,e.column,e.item,e.grid);return t!=null&&typeof t!="string"&&Object.prototype.toString.call(t)==="[object Object]"?(e.addClass=t.addClasses,e.tooltip=t.toolTip,t.text):t}}function pt(a,e,t){var l,h;var i=t.dataset.fmtatt;if((i==null?void 0:i.length)>0){for(var o of i.split(","))t.removeAttribute(o);delete t.dataset.fmtatt}var s=t.dataset.fmtcls;s!=null&&s.length&&a.addClass!=s&&(De(t,s),(l=a.addClass)!=null&&l.length||delete t.dataset.fmtcls);var r=t.getAttribute("tooltip");if(r!=null&&a.tooltip!=r&&t.removeAttribute("tooltip"),a.tooltip!==void 0&&r!=a.tooltip&&t.setAttribute("tooltip",a.tooltip),e==null?t.innerHTML="":e instanceof Node?t.appendChild(e):t.innerHTML=""+e,a.addAttrs!=null){var n=Object.keys(a.addAttrs);if(n.length){for(var o of n)t.setAttribute(o,a.addAttrs[o]);t.dataset.fmtatt=n.join(",")}}(h=a.addClass)!=null&&h.length&&(ne(t,a.addClass),t.dataset.fmtcls=a.addClass)}var xe=class extends Le{constructor(){super(...arguments);this.__group=!0;this.level=0;this.count=0;this.collapsed=!1;this.rows=[]}equals(t){return this.value===t.value&&this.count===t.count&&this.collapsed===t.collapsed&&this.title===t.title}},mt=class extends Le{constructor(){super(...arguments);this.__groupTotals=!0;this.initialized=!1}};var pe=class{constructor(e,t,i,o){i===void 0&&o===void 0&&(i=e,o=t),this.fromRow=Math.min(e,i),this.fromCell=Math.min(t,o),this.toRow=Math.max(e,i),this.toCell=Math.max(t,o)}isSingleRow(){return this.fromRow==this.toRow}isSingleCell(){return this.fromRow==this.toRow&&this.fromCell==this.toCell}contains(e,t){return e>=this.fromRow&&e<=this.toRow&&t>=this.fromCell&&t<=this.toCell}toString(){return this.isSingleCell()?"("+this.fromRow+":"+this.fromCell+")":"("+this.fromRow+":"+this.fromCell+" - "+this.toRow+":"+this.toCell+")"}};var vt={addNewRowCssClass:"new-row",alwaysAllowHorizontalScroll:!1,alwaysShowVerticalScroll:!1,asyncEditorLoadDelay:100,asyncEditorLoading:!1,asyncPostCleanupDelay:40,asyncPostRenderDelay:-1,autoEdit:!0,autoHeight:!1,cellFlashingCssClass:"flashing",dataItemColumnValueExtractor:null,defaultColumnWidth:80,defaultFormat:Ie,editable:!1,editorFactory:null,editorLock:dt,enableAddRow:!1,enableAsyncPostRender:!1,enableAsyncPostRenderCleanup:!1,enableCellNavigation:!0,enableColumnReorder:!0,enableTabKeyNavigation:!0,enableTextSelectionOnCells:!1,explicitInitialization:!1,footerRowHeight:30,forceFitColumns:!1,forceSyncScrolling:!1,forceSyncScrollInterval:250,formatterFactory:null,fullWidthRows:!1,groupingPanel:!1,groupingPanelHeight:30,headerRowHeight:30,leaveSpaceForNewRows:!1,minBuffer:3,multiColumnSort:!1,multiSelect:!0,renderAllCells:!1,rowHeight:30,selectedCellCssClass:"selected",showCellSelection:!0,showColumnHeader:!0,showFooterRow:!1,showGroupingPanel:!0,showHeaderRow:!1,showTopPanel:!1,suppressActiveCellChangeOnEdit:!1,topPanelHeight:30,useLegacyUI:!1,useCssVars:!1};var $e=function(){var a,e,t,i,o,s,r,n,l,h,u;function v(E){a=E;let F=y()+a.getScrollDims().width+"px",A=a.getOptions(),W=A.useLegacyUI?" ui-state-default":"";o=p("div",{class:"slick-header-columns",style:(A.rtl?"right":"left")+":-1000px"});var oe=p("div",{class:"slick-header"+W,style:!A.showColumnHeader&&"display: none"},o);w(),s=p("div",{class:"slick-headerrow-columns"}),r=ge(F);var le=p("div",{class:"slick-headerrow"+W,style:!A.showHeaderRow&&"display: none"},s,r);h=p("div",{class:"slick-top-panel",style:"width: 10000px"});var he=p("div",{class:"slick-top-panel-scroller"+W,style:!A.showTopPanel&&"display: none"},h);i=p("div",{class:"grid-canvas",tabIndex:"0",hideFocus:""}),u=p("div",{class:"slick-viewport",tabIndex:"0",hideFocus:""},i),n=p("div",{class:"slick-footerrow-columns"}),l=ge(F);var j=p("div",{class:"slick-footerrow"+W,style:!A.showFooterRow&&"display: none"},n,l);a.getContainerNode().append(oe,le,he,u,j)}function c(E,F){F&&i.appendChild(F)}function m(){var E=0,F,A,W=a.getColumns(),oe=a.getOptions(),le=oe.rtl;if(oe.useCssVars)for(var he=a.getContainerNode().style,j=0;j<W.length;j++){F=W[j].width;var ue="--l"+j,Ee=he.getPropertyValue(ue),ce=E+"px";Ee!==ce&&he.setProperty(ue,ce),ue="--r"+j,Ee=he.getPropertyValue(ue),ce=e-E-F+"px",Ee!==ce&&he.setProperty(ue,ce),E+=F}else for(var j=0;j<W.length;j++)F=W[j].width,A=a.getColumnCssRules(j),A[le?"right":"left"].style[le?"right":"left"]=E+"px",A[le?"left":"right"].style[le?"left":"right"]=e-E-F+"px",E+=F}function C(){for(var E=i;(E=E.parentNode)!=document.body&&E!=null;)(E==u||E.scrollWidth!=E.clientWidth||E.scrollHeight!=E.clientHeight)&&a.bindAncestorScroll(E)}function y(){for(var E=a.getColumns(),F=E.length,A=0;F--;)A+=E[F].width;return a.getOptions().fullWidthRows?Math.max(A,a.getAvailableWidth()):A}function w(){t=0;for(var E=a.getScrollDims().width,F=a.getColumns(),A=0,W=F.length;A<W;A++)t+=F[A].width;t+=E,t=Math.max(t,a.getViewportInfo().width)+1e3,o.style.width=t+"px"}let S=()=>{a=null};function M(){return i}function R(){return[i]}function T(){return e}function _(){return[o]}function H(E){return o.children.item(E)}function O(){return[s]}function D(E){return s.childNodes.item(E)}function B(){return s}function q(E){return n.childNodes.item(E)}function Z(){return n}function U(){return o}function J(){return[n]}function ee(E){return a.getRowFromNode(E.parentElement)}function te(){return h}function de(){return[h]}function ie(){return u}function Q(){return[u]}function Y(){o.parentElement.scrollLeft=a.getScrollLeft(),h.parentElement.scrollLeft=a.getScrollLeft(),s.parentElement.scrollLeft=a.getScrollLeft(),n.parentElement.scrollLeft=a.getScrollLeft()}function N(){}function K(){i.style.height=a.getViewportInfo().realScrollHeight+"px"}function je(E){return E}function fe(){return!1}function b(){var E=a.getOptions().alwaysShowVerticalScroll;u.style.overflowX="auto",u.style.overflowY=E?"scroll":a.getOptions().autoHeight?"hidden":"auto"}function Qe(){var E=e;e=y();var F=a.getScrollDims().width;let A=a.getViewportInfo();var W=e+"px";i.style.width=W,s.style.width=W,n.style.width=W,w(),A.hasHScroll=e>a.getViewportInfo().width-F;var oe=e+(A.hasVScroll?F:0)+"px";return r.style.width=oe,l.style.width=oe,e!=E}let Ke=()=>{var E=a.getViewportInfo(),F=E.height+E.topPanelHeight+E.headerRowHeight+E.footerRowHeight;a.getOptions().autoHeight?(a.getContainerNode().style.height=F+E.groupingPanelHeight+k(getComputedStyle(o.parentElement).height)+"px",u.style.height=""):u.style.height=E.height+"px"};function be(){return 0}var Xe={afterHeaderColumnDrag:N,afterRenderRows:N,afterSetOptions:N,appendCachedRow:c,applyColumnWidths:m,beforeCleanupAndRenderCells:N,bindAncestorScrollEvents:C,calcCanvasWidth:y,updateHeadersWidth:w,isFrozenRow:fe,destroy:S,getCanvasNodeFor:M,getCanvasNodes:R,getCanvasWidth:T,getFooterRowCols:J,getFooterRowColsFor:Z,getFooterRowColumn:q,getHeaderCols:_,getHeaderColsFor:U,getHeaderColumn:H,getHeaderRowCols:O,getHeaderRowColsFor:B,getHeaderRowColumn:D,getRowFromCellNode:ee,getFrozenCols:be,getFrozenRowOffset:be,getFrozenRows:be,getScrollCanvasY:M,getScrollContainerX:ie,getScrollContainerY:ie,getTopPanelFor:te,getTopPanelNodes:de,getViewportNodeFor:ie,getViewportNodes:Q,handleScrollH:Y,handleScrollV:N,init:v,layoutName:"basic",realScrollHeightChange:K,reorderViewColumns:je,resizeCanvas:Ke,setOverflow:b,setPaneVisibility:N,setScroller:N,updateCanvasWidth:Qe};return Xe};var Me=class{constructor(e){this.host=e}findFirstFocusableCell(e){for(var t=0,i=this.host.getColumnCount();t<i;){if(this.host.canCellBeActive(e,t))return t;t+=this.host.getColspan(e,t)}return null}findLastFocusableCell(e){for(var t=0,i=null,o=this.host.getColumnCount();t<o;)this.host.canCellBeActive(e,t)&&(i=t),t+=this.host.getColspan(e,t);return i}gotoRight(e,t){var i=this.host.getColumnCount();if(t>=i)return null;do t+=this.host.getColspan(e,t);while(t<i&&!this.host.canCellBeActive(e,t));return t<i?{row:e,cell:t,posX:t}:null}gotoLeft(e,t){if(t<=0)return null;var i=this.findFirstFocusableCell(e);if(i===null||i>=t)return null;for(var o={row:e,cell:i,posX:i},s;;){if(s=this.gotoRight(o.row,o.cell),!s)return null;if(s.cell>=t)return o;o=s}}gotoDown(e,t,i){for(var o,s=this.host.getRowCount();;){if(++e>=s)return null;for(o=t=0;t<=i;)o=t,t+=this.host.getColspan(e,t);if(this.host.canCellBeActive(e,o))return{row:e,cell:o,posX:i}}}gotoUp(e,t,i){for(var o;;){if(--e<0)return null;for(o=t=0;t<=i;)o=t,t+=this.host.getColspan(e,t);if(this.host.canCellBeActive(e,o))return{row:e,cell:o,posX:i}}}gotoNext(e,t,i){if(e==null&&t==null&&(e=t=i=0,this.host.canCellBeActive(e,t)))return{row:e,cell:t,posX:t};var o=this.gotoRight(e,t);if(o)return o;for(var s=null,r=this.host.getRowCount();++e<r;)if(s=this.findFirstFocusableCell(e),s!=null)return{row:e,cell:s,posX:s};return null}gotoPrev(e,t,i){var o=this.host.getColumnCount();if(e==null&&t==null&&(e=this.host.getRowCount()-1,t=i=o-1,this.host.canCellBeActive(e,t)))return{row:e,cell:t,posX:t};for(var s,r;!s&&(s=this.gotoLeft(e,t),!s);){if(--e<0)return null;t=0,r=this.findLastFocusableCell(e),r!=null&&(s={row:e,cell:r,posX:r})}return s}gotoRowStart(e){var t=this.findFirstFocusableCell(e);return t===null?null:{row:e,cell:t,posX:t}}gotoRowEnd(e){var t=this.findLastFocusableCell(e);return t===null?null:{row:e,cell:t,posX:t}}navigate(e,t,i,o){var s={up:-1,down:1,prev:-1,next:1,home:-1,end:1};let r=this.host.isRTL();s[r?"right":"left"]=-1,s[r?"left":"right"]=1,this.host.setTabbingDirection(s[e]);var n={up:this.gotoUp,down:this.gotoDown,prev:this.gotoPrev,next:this.gotoNext,home:this.gotoRowStart,end:this.gotoRowEnd};n[r?"right":"left"]=this.gotoLeft,n[r?"left":"right"]=this.gotoRight;var l=n[e].bind(this);return l(t,i,o)}};function ci(){var a,e,t,i;return{left:(e=(a=window.scrollX)!=null?a:document.documentElement.scrollLeft)!=null?e:0,top:(i=(t=window.scrollY)!=null?t:document.documentElement.scrollTop)!=null?i:0}}function ft(a){let{containerElement:e}=a,{onDragInit:t,onDragStart:i,onDrag:o,onDragEnd:s,preventDragFromKeys:r}=a,n,l,h,u,v,c;e||(e=document.body);let m={dragSource:e,dragHandle:null};function C(){e&&(e.addEventListener("mousedown",M),e.addEventListener("touchstart",M,{passive:!0}))}function y(_,H,O){if(typeof _=="function")return _(H,O)}function w(){e&&(e.removeEventListener("mousedown",M),e.removeEventListener("touchstart",M))}function S(_){let H=!1;return r&&r.forEach(O=>{_[O]&&(H=!0)}),H}function M(_){var H,O;if(!S(_)){n=_.target;let D=(O=(H=_==null?void 0:_.touches)==null?void 0:H[0])!=null?O:_,{target:B}=D;if(!a.allowDragFrom||a.allowDragFrom&&n.matches(a.allowDragFrom)||a.allowDragFromClosest&&n.closest(a.allowDragFromClosest)){m.dragHandle=n;let q=ci();l=q.left+D.clientX,h=q.top+D.clientY,u=D.clientX-D.clientX,v=D.clientY-D.clientY,m=Object.assign(m,{deltaX:u,deltaY:v,startX:l,startY:h,target:B}),y(t,_,m)!==!1&&(document.body.addEventListener("mousemove",R),document.body.addEventListener("touchmove",R,{passive:!0}),document.body.addEventListener("mouseup",T),document.body.addEventListener("touchend",T,{passive:!0}),document.body.addEventListener("touchcancel",T,{passive:!0}))}}}function R(_){var H,O;if(!S(_)){let D=(O=(H=_==null?void 0:_.touches)==null?void 0:H[0])!=null?O:_;u=D.clientX-l,v=D.clientY-h;let{target:B}=D;c||(m=Object.assign(m,{deltaX:u,deltaY:v,startX:l,startY:h,target:B}),y(i,_,m),c=!0),m=Object.assign(m,{deltaX:u,deltaY:v,startX:l,startY:h,target:B}),y(o,_,m)}}function T(_){if(document.body.removeEventListener("mousemove",R),document.body.removeEventListener("touchmove",R),document.body.removeEventListener("mouseup",T),document.body.removeEventListener("touchend",T),document.body.removeEventListener("touchcancel",T),c){let{target:H}=_;m=Object.assign(m,{target:H}),y(s,_,m),c=!1}}return C(),{destroy:w}}var qe,Ze;function Pe(a){var e={top:a.offsetTop,left:a.offsetLeft,bottom:0,right:0,width:a.offsetWidth,height:a.offsetHeight,visible:!0};e.bottom=e.top+e.height,e.right=e.left+e.width;for(var t=a.offsetParent;(a=a.parentNode)!=document.body&&a!=null;)e.visible&&a.scrollHeight!=a.offsetHeight&&getComputedStyle(a).overflowY!=="visible"&&(e.visible=e.bottom>a.scrollTop&&e.top<a.scrollTop+a.clientHeight),e.visible&&a.scrollWidth!=a.offsetWidth&&getComputedStyle(a).overflowX!="visible"&&(e.visible=e.right>a.scrollLeft&&e.left<a.scrollLeft+a.clientWidth),e.left-=a.scrollLeft,e.top-=a.scrollTop,a===t&&(e.left+=a.offsetLeft,e.top+=a.offsetTop,t=a.offsetParent),e.bottom=e.top+e.height,e.right=e.left+e.width;return e}function Ct(a,e,t){var i,o,s=[],r=0,n=0,l;for(i=0;i<a.length;i++)o=a[i],s.push(o.width),n+=o.width,o.resizable&&(r+=o.width-Math.max(o.minWidth,t));for(l=n;n>e&&r;){var h=(n-e)/r;for(i=0;i<a.length&&n>e;i++){o=a[i];var u=s[i];if(!(!o.resizable||u<=o.minWidth||u<=t)){var v=Math.max(o.minWidth,t),c=Math.floor(h*(u-v))||1;c=Math.min(c,u-v),n-=c,r-=c,s[i]-=c}}if(l<=n)break;l=n}for(l=n;n<e;){var m=e/n;for(i=0;i<a.length&&n<e;i++){o=a[i];var C=s[i],y;!o.resizable||o.maxWidth<=C?y=0:y=Math.min(Math.floor(m*C)-C,o.maxWidth-C||1e6)||1,n+=y,s[i]+=n<=e?y:0}if(l>=n)break;l=n}var w=!1;for(i=0;i<a.length;i++)a[i].rerenderOnResize&&a[i].width!=s[i]&&(w=!0),a[i].width=s[i];return w}function Je(a){return!a&&qe!=null?qe:qe=navigator.userAgent.toLowerCase().match(/gecko\//)?4e6:32e6}function et(a){if(!Ze||a){var e=document.body.appendChild(p("div",{style:"position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow: scroll;border:0"}));Ze={width:Math.round(e.offsetWidth-e.clientWidth),height:Math.round(e.offsetWidth-e.clientHeight)},e.remove()}return Ze}function _t(a,e){if(!Array.isArray(a)||!Array.isArray(e)||a.length!==e.length)return!1;a=a.slice().sort(),e=e.slice().sort();for(var t=0;t<a.length;t++)if(a[t]!==e[t])return!1;return!0}function tt(a,e){if(e.length==0)return a;for(var t={},i={},o=[],s=0;s<e.length;s++)t[e[s]]=s;for(s=0;s<a.length;s++)i[a[s].id]=s;function r(h){for(var u=h;u<a.length;u++){var v=a[u];if(h!=u&&t[v.id]!=null)break;o.push(v),i[v.id]=null}}t[a[0].id]==null&&r(0);for(var n of e)s=i[n],s!=null&&r(s);for(s=0;s<a.length;s++){var l=a[s];i[l.id]!=null&&(o.push(l),i[l.id]=null)}return o}function yt(a,e,t,i,o){var s=null,r=null,n,l;if(i)for(s=0,r=0,n=e+1;n<a.length;n++)l=a[n],l.resizable&&(r!=null&&(l.maxWidth?r+=l.maxWidth-l.previousWidth:r=null),s+=l.previousWidth-Math.max(l.minWidth||0,o));var h=0,u=0;for(n=0;n<=e;n++)l=a[n],l.resizable&&(u!=null&&(l.maxWidth?u+=l.maxWidth-l.previousWidth:u=null),h+=l.previousWidth-Math.max(l.minWidth||0,o));return s===null&&(s=1e5),h===null&&(h=1e5),r===null&&(r=1e5),u===null&&(u=1e5),{maxPageX:t+Math.min(s,u),minPageX:t-Math.min(h,r)}}function wt(a,e,t,i,o){var s,r,n,l;if(t<0){for(n=t,r=e;r>=0;r--)s=a[r],s.resizable&&(l=Math.max(s.minWidth||0,o),n&&s.previousWidth+n<l?(n+=s.previousWidth-l,s.width=l):(s.width=s.previousWidth+n,n=0));if(i)for(n=-t,r=e+1;r<a.length;r++)s=a[r],s.resizable&&(n&&s.maxWidth&&s.maxWidth-s.previousWidth<n?(n-=s.maxWidth-s.previousWidth,s.width=s.maxWidth):(s.width=s.previousWidth+n,n=0))}else{for(n=t,r=e;r>=0;r--)s=a[r],s.resizable&&(n&&s.maxWidth&&s.maxWidth-s.previousWidth<n?(n-=s.maxWidth-s.previousWidth,s.width=s.maxWidth):(s.width=s.previousWidth+n,n=0));if(i)for(n=-t,r=e+1;r<a.length;r++)s=a[r],s.resizable&&(l=Math.max(s.minWidth||0,o),n&&s.previousWidth+n<l?(n+=s.previousWidth-l,s.width=l):(s.width=s.previousWidth+n,n=0))}}function it(){this==null||this.classList.add("ui-state-hover")}function ot(){this==null||this.classList.remove("ui-state-hover")}function _e(a){if(!a)return 0;var e=getComputedStyle(a);if(e.boxSizing==="border-box")return 0;var t=["border-top-width","border-bottom-width","padding-top","padding-bottom"],i=0;for(var o of t)i+=k(e.getPropertyValue(o))||0;return i}function bt(a){var s;var e=getComputedStyle(a),t=(s=k(e.width))!=null?s:0;if(e.boxSizing!="border-box")return Math.max(0,t);var i=["border-left-width","border-right-width","padding-left","padding-right"];for(var o of i)t-=k(e.getPropertyValue(o))||0;return Math.max(t,0)}var Et=class a{constructor(e,t,i,o){this._cellCssClasses={};this._cellHeightDiff=0;this._cellWidthDiff=0;this._colLeft=[];this._colRight=[];this._headerColumnWidthDiff=0;this._ignoreScrollUntil=0;this._page=0;this._pageOffset=0;this._pagingActive=!1;this._pagingIsLastPage=!1;this._plugins=[];this._postProcessCleanupQueue=[];this._postProcessedRows={};this._postProcessGroupId=0;this._rowsCache={};this._scrollLeft=0;this._scrollLeftPrev=0;this._scrollLeftRendered=0;this._scrollTop=0;this._scrollTopPrev=0;this._scrollTopRendered=0;this._selectedRows=[];this._sortColumns=[];this._tabbingDirection=1;this._uid="sleekgrid_"+Math.round(1e6*Math.random());this._viewportInfo={};this._vScrollDir=1;this._boundAncestorScroll=[];this.onActiveCellChanged=new L;this.onActiveCellPositionChanged=new L;this.onAddNewRow=new L;this.onBeforeCellEditorDestroy=new L;this.onBeforeDestroy=new L;this.onBeforeEditCell=new L;this.onBeforeFooterRowCellDestroy=new L;this.onBeforeHeaderCellDestroy=new L;this.onBeforeHeaderRowCellDestroy=new L;this.onCellChange=new L;this.onCellCssStylesChanged=new L;this.onClick=new L;this.onColumnsReordered=new L;this.onColumnsResized=new L;this.onCompositeEditorChange=new L;this.onContextMenu=new L;this.onDblClick=new L;this.onDrag=new L;this.onDragEnd=new L;this.onDragInit=new L;this.onDragStart=new L;this.onFooterRowCellRendered=new L;this.onHeaderCellRendered=new L;this.onHeaderClick=new L;this.onHeaderContextMenu=new L;this.onHeaderMouseEnter=new L;this.onHeaderMouseLeave=new L;this.onHeaderRowCellRendered=new L;this.onKeyDown=new L;this.onMouseEnter=new L;this.onMouseLeave=new L;this.onScroll=new L;this.onSelectedRowsChanged=new L;this.onSort=new L;this.onValidationError=new L;this.onViewportChanged=new L;this.handleSelectedRangesChanged=(e,t)=>{var i=this._selectedRows.slice(0);this._selectedRows=[];for(var o={},s=this._cols,r=0;r<t.length;r++)for(var n=t[r].fromRow;n<=t[r].toRow;n++){o[n]||(this._selectedRows.push(n),o[n]={});for(var l=t[r].fromCell;l<=t[r].toCell;l++)this.canCellBeSelected(n,l)&&(o[n][s[l].id]=this._options.selectedCellCssClass)}if(this.setCellCssStyles(this._options.selectedCellCssClass,o),!_t(i,this._selectedRows)){var h=e&&e.detail&&e.detail.caller||"click",u=this._selectedRows.filter(c=>i.indexOf(c)<0),v=i.filter(c=>this._selectedRows.indexOf(c)<0);this.trigger(this.onSelectedRowsChanged,{rows:this.getSelectedRows(),previousSelectedRows:i,caller:h,changedSelectedRows:u,changedUnselectedRows:v},e)}this._selectedRows=[],o={},s=this._cols;for(var r=0;r<t.length;r++)for(var n=t[r].fromRow;n<=t[r].toRow;n++){o[n]||(this._selectedRows.push(n),o[n]={});for(var l=t[r].fromCell;l<=t[r].toCell;l++)this.canCellBeSelected(n,l)&&(o[n][s[l].id]=this._options.selectedCellCssClass)}};this.viewOnRowCountChanged=()=>{this.updateRowCount(),this.render()};this.viewOnRowsChanged=(e,t)=>{this.invalidateRows(t.rows),this.render(),this.updateGrandTotals()};this.viewOnDataChanged=()=>{this.invalidate(),this.render()};this.resizeCanvas=()=>{this._initialized&&(this.calcViewportSize(),this._layout.resizeCanvas(),(!this._scrollDims||!this._scrollDims.width)&&(this._scrollDims=et(!0)),this._options.forceFitColumns&&this.autosizeColumns(),this.updateRowCount(),this.handleScroll(),this._scrollLeftRendered=-1,this.render())};this.render=()=>{if(this._initialized){var e=this.getVisibleRange(),t=this.getRenderedRange();this.cleanupRows(t),this._scrollLeftRendered!=this._scrollLeft&&(this._layout.beforeCleanupAndRenderCells(t),this.cleanUpAndRenderCells(t)),this.renderRows(t),this._layout.afterRenderRows(t),this._postProcessFromRow=e.top,this._postProcessToRow=Math.min(this.getDataLengthIncludingAddNew()-1,e.bottom),this.startPostProcessing(),this._scrollTopRendered=this._scrollTop,this._scrollLeftRendered=this._scrollLeft,this._lastRenderTime=new Date().getTime(),this._hRender=null}};this.handleHeaderRowScroll=e=>{if(!(this._ignoreScrollUntil>=new Date().getTime())){var t=e.target.scrollLeft;t!=this._layout.getScrollContainerX().scrollLeft&&(this._layout.getScrollContainerX().scrollLeft=t)}};this.handleFooterRowScroll=e=>{if(!(this._ignoreScrollUntil>=new Date().getTime())){var t=e.target.scrollLeft;t!=this._layout.getScrollContainerX().scrollLeft&&(this._layout.getScrollContainerX().scrollLeft=t)}};this.asyncPostProcessRows=()=>{for(var e=this.getDataLength(),t=this._cols;this._postProcessFromRow<=this._postProcessToRow;){var i=this._vScrollDir>=0?this._postProcessFromRow++:this._postProcessToRow--,o=this._rowsCache[i];if(!(!o||i>=e)){this._postProcessedRows[i]||(this._postProcessedRows[i]={}),this.ensureCellNodesInRowsCache(i);for(var s in o.cellNodesByColumnIdx){var r=parseInt(s,10),n=t[r],l=this._postProcessedRows[i][r];if(l!=="R"){if(n.asyncPostRender||n.asyncPostRenderCleanup){var h=o.cellNodesByColumnIdx[r];h&&n.asyncPostRender&&n.asyncPostRender(h,i,this.getDataItem(i),n,l==="C")}this._postProcessedRows[i][r]="R"}}if(this._options.asyncPostRenderDelay>=0){this._hPostRender=setTimeout(this.asyncPostProcessRows,this._options.asyncPostRenderDelay);return}}}};this.handleActiveCellPositionChange=()=>{if(this._activeCellNode&&(this.trigger(this.onActiveCellPositionChanged,{}),this._currentEditor)){var e=this.getActiveCellPosition();this._currentEditor.show&&this._currentEditor.hide&&(e.visible?this._currentEditor.show():this._currentEditor.hide()),this._currentEditor.position&&this._currentEditor.position(e)}};var s,r,n,l;if(this._data=t,this._colDefaults=Object.assign({},lt),this._options=o=Object.assign({},vt,o),o.jQuery=this._jQuery=o.jQuery===void 0?typeof jQuery!="undefined"?jQuery:void 0:o.jQuery,o.sanitizer=o.sanitizer===void 0?typeof DOMPurify!="undefined"&&typeof DOMPurify.sanitize=="function"?DOMPurify.sanitize:gt:o.sanitizer,this._jQuery&&e instanceof this._jQuery?this._container=e[0]:e instanceof Element?this._container=e:typeof e=="string"?this._container=document.querySelector(e):e.length&&(e=e[0]),this._container==null)throw new Error("SleekGrid requires a valid container, "+e+" does not exist in the DOM.");this._container.classList.add("slick-container"),this._emptyNode=(s=o.emptyNode)!=null?s:this._jQuery?function(h){this(h).empty()}.bind(this._jQuery):function(h){h.innerHTML=""},this._removeNode=(r=o.removeNode)!=null?r:this._jQuery?function(h){this(h).remove()}.bind(this._jQuery):function(h){h.remove()},o!=null&&o.createPreHeaderPanel&&(o.groupingPanel==null&&(o.groupingPanel=!0),o.groupingPanelHeight==null&&o.preHeaderPanelHeight!=null&&(o.groupingPanelHeight=o.preHeaderPanelHeight),o.showGroupingPanel==null&&o.showPreHeaderPanel!=null&&(o.showGroupingPanel=o.showPreHeaderPanel)),this._options.rtl=(n=this._options.rtl)!=null?n:document.body.classList.contains("rtl")||typeof getComputedStyle!="undefined"&&getComputedStyle(this._container).direction=="rtl",this._options.rtl?this._container.classList.add("rtl"):this._container.classList.add("ltr"),this.validateAndEnforceOptions(),this._colDefaults.width=o.defaultColumnWidth,this._editController={commitCurrentEdit:this.commitCurrentEdit.bind(this),cancelCurrentEdit:this.cancelCurrentEdit.bind(this)},this._jQuery?this._jQuery(this._container).empty():this._container.innerHTML="",this._container.style.overflow="hidden",this._container.style.outline="0",this._container.classList.add(this._uid),this._options.useLegacyUI&&this._container.classList.add("ui-widget"),/relative|absolute|fixed/.test(getComputedStyle(this._container).position)||(this._container.style.position="relative"),this._container.appendChild(this._focusSink1=p("div",{class:"slick-focus-sink",hideFocus:"",style:"position:fixed;width:0!important;height:0!important;top:0;left:0;outline:0!important;",tabIndex:"0"})),this._layout=(l=o.layoutEngine)!=null?l:new $e,this.setInitialCols(i),this._scrollDims=et(),o.groupingPanel&&this.createGroupingPanel(),this._layout.init({cleanUpAndRenderCells:this.cleanUpAndRenderCells.bind(this),bindAncestorScroll:this.bindAncestorScroll.bind(this),getAvailableWidth:this.getAvailableWidth.bind(this),getCellFromPoint:this.getCellFromPoint.bind(this),getColumnCssRules:this.getColumnCssRules.bind(this),getColumns:this.getColumns.bind(this),getContainerNode:this.getContainerNode.bind(this),getDataLength:this.getDataLength.bind(this),getOptions:this.getOptions.bind(this),getRowFromNode:this.getRowFromNode.bind(this),getScrollDims:this.getScrollBarDimensions.bind(this),getScrollLeft:()=>this._scrollLeft,getScrollTop:()=>this._scrollTop,getViewportInfo:()=>this._viewportInfo,renderRows:this.renderRows.bind(this)}),this._container.append(this._focusSink2=this._focusSink1.cloneNode()),o.viewportClass&&this.getViewports().forEach(h=>ne(h,o.viewportClass)),o.explicitInitialization||this.init(),this.bindToData()}createGroupingPanel(){this._groupingPanel||!this._focusSink1||(this._focusSink1.insertAdjacentElement("afterend",this._groupingPanel=p("div",{class:"slick-grouping-panel",style:this._options.showGroupingPanel?null:"display: none"})),this._options.createPreHeaderPanel&&this._groupingPanel.appendChild(p("div",{class:"slick-preheader-panel"})))}bindAncestorScroll(e){this._jQuery?this._jQuery(e).on("scroll",this.handleActiveCellPositionChange):e.addEventListener("scroll",this.handleActiveCellPositionChange),this._boundAncestorScroll.push(e)}init(){if(this._initialized)return;this._initialized=!0,this.calcViewportSize(),this.measureCellPaddingAndBorder();var e=this.getViewports();this._jQuery&&!this._options.enableTextSelectionOnCells&&this._jQuery(e).on("selectstart.ui",()=>this._jQuery(this).is("input,textarea")),this._layout.setPaneVisibility(),this._layout.setScroller(),this.setOverflow(),this.updateViewColLeftRight(),this.createColumnHeaders(),this.createColumnFooters(),this.setupColumnSort(),this.createCssRules(),this.resizeCanvas(),this._layout.bindAncestorScrollEvents();let t=(o,s,r)=>{this._jQuery?this._jQuery(o).on(s,r):o.addEventListener(s,r)};t(this._container,"resize",this.resizeCanvas),e.forEach(o=>{var s=!1;t(o,"scroll",r=>{s||(s=!0,window.requestAnimationFrame(()=>{this.handleScroll(),s=!1}))})}),this._jQuery&&this._jQuery.fn.mousewheel&&(this.hasFrozenColumns()||this.hasFrozenRows())&&this._jQuery(e).on("mousewheel",this.handleMouseWheel.bind(this)),this._layout.getHeaderCols().forEach(o=>{He(o),t(o,"contextmenu",this.handleHeaderContextMenu.bind(this)),t(o,"click",this.handleHeaderClick.bind(this)),this._jQuery?this._jQuery(o).on("mouseenter",".slick-header-column",this.handleHeaderMouseEnter.bind(this)).on("mouseleave",".slick-header-column",this.handleHeaderMouseLeave.bind(this)):(o.addEventListener("mouseenter",s=>s.target.closest(".slick-header-column")&&this.handleHeaderMouseEnter(s)),o.addEventListener("mouseleave",s=>s.target.closest(".slick-header-column")&&this.handleHeaderMouseLeave(s)))}),this._layout.getHeaderRowCols().forEach(o=>{t(o.parentElement,"scroll",this.handleHeaderRowScroll)}),this._layout.getFooterRowCols().forEach(o=>{t(o.parentElement,"scroll",this.handleFooterRowScroll)}),[this._focusSink1,this._focusSink2].forEach(o=>t(o,"keydown",this.handleKeyDown.bind(this)));var i=Array.from(this.getCanvases());i.forEach(o=>{t(o,"keydown",this.handleKeyDown.bind(this)),t(o,"click",this.handleClick.bind(this)),t(o,"dblclick",this.handleDblClick.bind(this)),t(o,"contextmenu",this.handleContextMenu.bind(this))}),this._jQuery&&this._jQuery.fn.drag?this._jQuery(i).on("draginit",this.handleDragInit.bind(this)).on("dragstart",{distance:3},this.handleDragStart.bind(this)).on("drag",this.handleDrag.bind(this)).on("dragend",this.handleDragEnd.bind(this)):this._draggableInstance=ft({containerElement:this._container,preventDragFromKeys:["ctrlKey","metaKey"],onDragInit:this.handleDragInit.bind(this),onDragStart:this.handleDragStart.bind(this),onDrag:this.handleDrag.bind(this),onDragEnd:this.handleDragEnd.bind(this)}),i.forEach(o=>{this._jQuery?this._jQuery(o).on("mouseenter",".slick-cell",this.handleMouseEnter.bind(this)).on("mouseleave",".slick-cell",this.handleMouseLeave.bind(this)):(o.addEventListener("mouseenter",s=>{var r,n;return((n=(r=s.target)==null?void 0:r.classList)==null?void 0:n.contains("slick-cell"))&&this.handleMouseEnter(s)},{capture:!0}),o.addEventListener("mouseleave",s=>{var r,n;return((n=(r=s.target)==null?void 0:r.classList)==null?void 0:n.contains("slick-cell"))&&this.handleMouseLeave(s)},{capture:!0}))}),navigator.userAgent.toLowerCase().match(/webkit/)&&navigator.userAgent.toLowerCase().match(/macintosh/)&&this._jQuery&&this._jQuery(i).on("mousewheel",this.handleMouseWheel.bind(this))}hasFrozenColumns(){return this._layout.getFrozenCols()>0}hasFrozenRows(){return this._layout.getFrozenRows()>0}registerPlugin(e){this._plugins.unshift(e),e.init(this)}unregisterPlugin(e){for(var t=this._plugins.length;t>=0;t--)if(this._plugins[t]===e){this._plugins[t].destroy&&this._plugins[t].destroy(),this._plugins.splice(t,1);break}}getPluginByName(e){for(var t=this._plugins.length-1;t>=0;t--)if(this._plugins[t].pluginName===e)return this._plugins[t]}setSelectionModel(e){this.unregisterSelectionModel(),this._selectionModel=e,this._selectionModel&&(this._selectionModel.init(this),this._selectionModel.onSelectedRangesChanged.subscribe(this.handleSelectedRangesChanged))}unregisterSelectionModel(){var e,t;this._selectionModel&&(this._selectionModel.onSelectedRangesChanged.unsubscribe(this.handleSelectedRangesChanged),(t=(e=this._selectionModel).destroy)==null||t.call(e))}getScrollBarDimensions(){return this._scrollDims}getDisplayedScrollbarDimensions(){return{width:this._viewportInfo.hasVScroll?this._scrollDims.width:0,height:this._viewportInfo.hasHScroll?this._scrollDims.height:0}}getAbsoluteColumnMinWidth(){return this._absoluteColMinWidth}getSelectionModel(){return this._selectionModel}colIdOrIdxToCell(e){return e==null?null:typeof e!="number"?this.getColumnIndex(e):e}getCanvasNode(e,t){return this._layout.getCanvasNodeFor(this.colIdOrIdxToCell(e||0),t||0)}getCanvases(){var e=this._layout.getCanvasNodes();return this._jQuery?this._jQuery(e):e}getActiveCanvasNode(e){return e&&(this._activeCanvasNode=e.target.closest(".grid-canvas")),this._activeCanvasNode}getViewportNode(e,t){return this._layout.getViewportNodeFor(this.colIdOrIdxToCell(e||0),t||0)}getViewports(){return this._layout.getViewportNodes()}getActiveViewportNode(e){return e&&(this._activeViewportNode=e.target.closest(".slick-viewport")),this._activeViewportNode}getAvailableWidth(){return this._viewportInfo.hasVScroll?this._viewportInfo.width-this._scrollDims.width:this._viewportInfo.width}updateCanvasWidth(e){(this._layout.updateCanvasWidth()||e)&&this._layout.applyColumnWidths()}unbindAncestorScrollEvents(){if(this._boundAncestorScroll)for(var e of this._boundAncestorScroll)e.removeEventListener("scroll",this.handleActiveCellPositionChange);this._boundAncestorScroll=[]}updateColumnHeader(e,t,i){if(this._initialized){var o=this.getColumnIndex(e);if(o!=null){var s=this._cols[o],r=this._layout.getHeaderColumn(o);if(r){if(t!==void 0&&(s.name=t),i!==void 0&&(s.toolTip=i),this.trigger(this.onBeforeHeaderCellDestroy,{node:r,column:s}),i!==void 0&&(r.title=i||""),t!==void 0){var n=r.firstElementChild;s.nameIsHtml?n&&(n.innerHTML=t!=null?t:""):n&&(n.textContent=t!=null?t:"")}this.trigger(this.onHeaderCellRendered,{node:r,column:s})}}}}getHeader(){return this._layout.getHeaderCols()[0]}getHeaderColumn(e){var t=this.colIdOrIdxToCell(e);return t==null?null:this._layout.getHeaderColumn(t)}getGroupingPanel(){return this._groupingPanel}getPreHeaderPanel(){var e;return(e=this._groupingPanel)==null?void 0:e.querySelector(".slick-preheader-panel")}getHeaderRow(){return this._layout.getHeaderRowCols()[0]}getHeaderRowColumn(e){var t=this.colIdOrIdxToCell(e);if(t!=null)return this._layout.getHeaderRowColumn(t)}getFooterRow(){return this._layout.getFooterRowCols()[0]}getFooterRowColumn(e){var t=this.colIdOrIdxToCell(e);return t==null?null:this._layout.getFooterRowColumn(t)}createColumnFooters(){var e=this._layout.getFooterRowCols();e.forEach(r=>{r.querySelectorAll(".slick-footerrow-column").forEach(n=>{var l=this.getColumnFromNode(n);l&&this.trigger(this.onBeforeFooterRowCellDestroy,{node:n,column:l})}),this._jQuery?this._jQuery(r).empty():r.innerHTML=""});for(var t=this._cols,i=0;i<t.length;i++){var o=t[i],s=p("div",{class:"slick-footerrow-column l"+i+" r"+i+(this._options.useLegacyUI?" ui-state-default":"")});s.dataset.c=i.toString(),this._jQuery&&this._jQuery(s).data("column",o),o.footerCssClass?ne(s,o.footerCssClass):o.cssClass&&ne(s,o.cssClass),this._layout.getFooterRowColsFor(i).appendChild(s),this.trigger(this.onFooterRowCellRendered,{node:s,column:o})}}createColumnHeaders(){var c,m;this._layout.getHeaderCols().forEach(C=>{C.querySelectorAll(".slick-header-column").forEach(y=>{var w=this.getColumnFromNode(y);w&&this.trigger(this.onBeforeHeaderCellDestroy,{node:y,column:w})}),this._emptyNode(C)}),this._layout.updateHeadersWidth(),this._layout.getHeaderRowCols().forEach(C=>{C.querySelectorAll(".slick-headerrow-column").forEach(y=>{var w=this.getColumnFromNode(y);w&&this.trigger(this.onBeforeHeaderRowCellDestroy,{node:y,column:w,grid:this})}),this._jQuery?this._jQuery(C).empty():C.innerHTML=""});for(var i=this._cols,o=this._layout.getFrozenCols(),s=0;s<i.length;s++){var r=i[s],n=this._layout.getHeaderColsFor(s),l=document.createElement("span");l.className="slick-column-name",r.nameIsHtml?l.innerHTML=(c=r.name)!=null?c:"":l.textContent=(m=r.name)!=null?m:"";var h=p("div",{class:"slick-header-column"+(this._options.useLegacyUI?" ui-state-default ":""),"data-id":r.id,id:""+this._uid+r.id,title:r.toolTip||"",style:"width: "+(r.width-this._headerColumnWidthDiff)+"px"},l);if(h.dataset.c=s.toString(),this._jQuery&&this._jQuery(h).data("column",r),r.headerCssClass&&ne(h,r.headerCssClass),s<o&&h.classList.add("frozen"),n.appendChild(h),(this._options.enableColumnReorder||r.sortable)&&this._options.useLegacyUI&&(this._jQuery?(this._jQuery(h).on("mouseenter",it),this._jQuery(h).on("mouseleave",ot)):(h.addEventListener("mouseenter",it),h.addEventListener("mouseleave",ot))),r.sortable&&(h.classList.add("slick-header-sortable"),h.appendChild(p("span",{class:"slick-sort-indicator"}))),this.trigger(this.onHeaderCellRendered,{node:h,column:r}),this._options.showHeaderRow){var u=this._layout.getHeaderRowColsFor(s),v=p("div",{class:"slick-headerrow-column l"+s+" r"+s+(this._options.useLegacyUI?" ui-state-default":"")});v.dataset.c=s.toString(),this._jQuery&&this._jQuery(v).data("column",r),u.appendChild(v),this.trigger(this.onHeaderRowCellRendered,{node:v,column:r})}}this.setSortColumns(this._sortColumns),this.setupColumnResize(),this._options.enableColumnReorder&&(this.setupColumnReorder(),this._layout.getHeaderCols().forEach(C=>C.querySelectorAll(".slick-resizable-handle").forEach(y=>y.draggable=!0)))}setupColumnSort(){let e=t=>{var i=t.target;if(!i.classList.contains("slick-resizable-handle")){var o=i.closest(".slick-header-column");if(o){var s=this.getColumnFromNode(o);if(s.sortable){if(!this.getEditorLock().commitCurrentEdit())return;for(var r=null,n=0;n<this._sortColumns.length;n++)if(this._sortColumns[n].columnId==s.id){r=this._sortColumns[n],r.sortAsc=!r.sortAsc;break}if(t.metaKey&&this._options.multiColumnSort?r&&this._sortColumns.splice(n,1):((!t.shiftKey&&!t.metaKey||!this._options.multiColumnSort)&&(this._sortColumns=[]),r?this._sortColumns.length==0&&this._sortColumns.push(r):(r={columnId:s.id,sortAsc:s.defaultSortAsc},this._sortColumns.push(r))),this.setSortColumns(this._sortColumns),!this._options.multiColumnSort)this.trigger(this.onSort,{multiColumnSort:!1,sortCol:s,sortAsc:r.sortAsc},t);else{var l=this._initCols;this.trigger(this.onSort,{multiColumnSort:!0,sortCols:this._sortColumns.map(h=>({sortCol:l[this.getInitialColumnIndex(h.columnId)],sortAsc:h.sortAsc}))},t)}}}}};this._layout.getHeaderCols().forEach(t=>{this._jQuery?this._jQuery(t).on("click",e):t.addEventListener("click",e)})}static offset(e){if(!e||!e.getBoundingClientRect)return;let t=e.getBoundingClientRect(),i=document.documentElement;return{top:t.top+window.scrollY-i.clientTop,left:t.left+window.scrollX-i.clientLeft}}setupColumnReorder(){var r;if(typeof Sortable=="undefined")return;(r=this.sortableColInstances)==null||r.forEach(n=>n.destroy());let e=null,t=()=>this._layout.getScrollContainerX().scrollLeft=this._layout.getScrollContainerX().scrollLeft+10,i=()=>this._layout.getScrollContainerX().scrollLeft=this._layout.getScrollContainerX().scrollLeft-10,o,s={animation:50,direction:"horizontal",chosenClass:"slick-header-column-active",ghostClass:"slick-sortable-placeholder",draggable:".slick-header-column",filter:".slick-resizable-handle",preventOnFilter:!1,dragoverBubble:!1,revertClone:!0,scroll:!this.hasFrozenColumns(),onStart:n=>{o=!this.hasFrozenColumns()||a.offset(n.item).left>a.offset(this._layout.getScrollContainerX()).left,o&&n.originalEvent&&n.originalEvent.pageX>this._container.clientWidth?e||(e=setInterval(i,100)):o&&n.originalEvent&&n.originalEvent.pageX<a.offset(this._layout.getScrollContainerX()).left?e||(e=setInterval(t,100)):(clearInterval(e),e=null)},onEnd:n=>{var u;if(clearInterval(e),e=null,!!((u=this.getEditorLock())!=null&&u.commitCurrentEdit())){var h;this._layout.getHeaderCols().forEach((v,c)=>{var m,C,y;return h=tt(this._initCols,(y=(C=(m=this.sortableColInstances[c])==null?void 0:m.toArray)==null?void 0:C.call(m))!=null?y:[])}),this.setColumns(h),this.trigger(this.onColumnsReordered,{}),n.stopPropagation(),this.setupColumnResize(),this._activeCellNode&&this.setFocus()}}};this.sortableColInstances=this._layout.getHeaderCols().map(n=>Sortable.create(n,s))}setupColumnResize(){var s,o,r,n=this._cols,e=[];this._layout.getHeaderCols().forEach(v=>{e=e.concat(Array.from(v.children))});var t,i,o,s,r,l,h,n=this._cols,l,h;if(e.forEach((v,c)=>{var m=v.querySelector(".slick-resizable-handle");m&&this._removeNode(m),n[c].resizable&&(l===void 0&&(l=c),h=c)}),l===void 0)return;let u=!this._jQuery||!this._jQuery.fn||!this._jQuery.fn.drag;e.forEach((v,c)=>{if(c<l||this._options.forceFitColumns&&c>=h)return;let m=v.appendChild(document.createElement("div"));m.classList.add("slick-resizable-handle"),m.draggable=!0;var C=null,y=null;let w=R=>{var _;if(!this.getEditorLock().commitCurrentEdit()){!u&&R.preventDefault();return}u&&(C=H=>{y={pageX:H.pageX,pageY:H.pageY},H.preventDefault()},document.addEventListener("dragover",C)),o=R.pageX,(_=R.target.parentElement)==null||_.classList.add("slick-header-column-active"),e.forEach((H,O)=>{n[O].previousWidth=H.offsetWidth});let T=yt(n,c,o,this._options.forceFitColumns,this._absoluteColMinWidth);r=T.maxPageX,s=T.minPageX,u&&(R.dataTransfer.effectAllowed="move")},S=R=>{var T;if(u){var _=!R.pageX&&!R.pageY?y==null?void 0:y.pageX:R.pageX,H=!R.pageX&&!R.pageY?y==null?void 0:y.pageY:R.pageY;if(!_&&!R.clientX&&!H&&!R.clientY)return;T=Math.min(r,Math.max(s,_))-o,R.dataTransfer.effectAllowed="none",R.preventDefault()}else T=Math.min(r,Math.max(s,R.pageX))-o;isNaN(T)||(wt(n,c,T,this._options.forceFitColumns,this._absoluteColMinWidth),this._layout.afterHeaderColumnDrag(),this.applyColumnHeaderWidths(),this._options.syncColumnCellResize&&this._layout.applyColumnWidths())},M=R=>{var _;for(C&&(document.removeEventListener("dragover",C),C=null),(_=R.target.parentElement)==null||_.classList.remove("slick-header-column-active"),t=0;t<e.length;t++){i=n[t];var T=e[t].offsetWidth;i.previousWidth!==T&&i.rerenderOnResize&&this.invalidateAllRows()}this.columnsResized(!1)};u?(m.addEventListener("dragstart",w),m.addEventListener("drag",S),m.addEventListener("dragend",M),m.addEventListener("dragover",R=>{R.preventDefault(),R.dataTransfer.effectAllowed="move"})):this._jQuery(m).on("dragstart",w).on("drag",S).on("dragend",M)})}columnsResized(e=!0){this.applyColumnHeaderWidths(),this._layout.applyColumnWidths(),e&&this.invalidateAllRows(),this.updateCanvasWidth(!0),this.render(),this.trigger(this.onColumnsResized)}setOverflow(){this._layout.setOverflow(),this._options.viewportClass&&this.getViewports().forEach(e=>ne(e,this._options.viewportClass))}measureCellPaddingAndBorder(){let e=["border-left-width","border-right-width","padding-left","padding-right"],t=["border-top-width","border-bottom-width","padding-top","padding-bottom"];var i=this._layout.getHeaderColsFor(0).appendChild(p("div",{class:"slick-header-column"+(this._options.useLegacyUI?" ui-state-default":""),style:"visibility:hidden"}));this._headerColumnWidthDiff=0;var o=getComputedStyle(i);o.boxSizing!="border-box"&&e.forEach(r=>this._headerColumnWidthDiff+=k(o.getPropertyValue(r))||0),i.remove();var s=this._layout.getCanvasNodeFor(0,0).appendChild(p("div",{class:"slick-row"},i=p("div",{class:"slick-cell",id:"",style:"visibility: hidden"})));i.innerHTML="-",this._cellWidthDiff=this._cellHeightDiff=0,o=getComputedStyle(i),o.boxSizing!="border-box"&&(e.forEach(r=>this._cellWidthDiff+=k(o.getPropertyValue(r))||0),t.forEach(r=>this._cellHeightDiff+=k(o.getPropertyValue(r))||0)),s.remove(),this._absoluteColMinWidth=Math.max(this._headerColumnWidthDiff,this._cellWidthDiff)}createCssRules(){var e=this._options.rowHeight-this._cellHeightDiff;if(this._options.useCssVars&&this.getColumns().length>50&&(this._options.useCssVars=!1),this._container.classList.toggle("sleek-vars",!!this._options.useCssVars),this._options.useCssVars){var t=this._container.style;t.setProperty("--sleek-row-height",this._options.rowHeight+"px"),t.setProperty("--sleek-cell-height",e+"px"),t.setProperty("--sleek-top-panel-height",this._options.topPanelHeight+"px"),t.setProperty("--sleek-grouping-panel-height",this._options.groupingPanelHeight+"px"),t.setProperty("--sleek-headerrow-height",this._options.headerRowHeight+"px"),t.setProperty("--sleek-footerrow-height",this._options.footerRowHeight+"px");return}var i=this._styleNode=document.createElement("style");i.dataset.uid=this._uid;for(var o=["."+this._uid+" { --slick-cell-height: "+this._options.rowHeight+"px; }","."+this._uid+" .slick-group-header-column { "+(this._options.rtl?"right":"left")+": 1000px; }","."+this._uid+" .slick-header-column { "+(this._options.rtl?"right":"left")+": 1000px; }","."+this._uid+" .slick-top-panel { height:"+this._options.topPanelHeight+"px; }","."+this._uid+" .slick-grouping-panel { height:"+this._options.groupingPanelHeight+"px; }","."+this._uid+" .slick-headerrow-columns { height:"+this._options.headerRowHeight+"px; }","."+this._uid+" .slick-cell { height:"+e+"px; }","."+this._uid+" .slick-row { height:"+this._options.rowHeight+"px; }","."+this._uid+" .slick-footerrow-columns { height:"+this._options.footerRowHeight+"px; }"],s=this._cols,r=0;r<s.length;r++)o.push("."+this._uid+" .l"+r+" { }"),o.push("."+this._uid+" .r"+r+" { }");i.appendChild(document.createTextNode(o.join(" "))),document.head.appendChild(i)}getColumnCssRules(e){if(this._options.useCssVars)return null;if(!this._stylesheet){var t=document.querySelector("style[data-uid='"+this._uid+"']");if(t&&t.sheet)this._stylesheet=t.sheet;else for(var i=document.styleSheets,o=0;o<i.length;o++)if((i[o].ownerNode||i[o].owningElement)==this._styleNode){this._stylesheet=i[o];break}if(!this._stylesheet)throw new Error("Cannot find stylesheet.");this._columnCssRulesL=[],this._columnCssRulesR=[];for(var s=this._stylesheet.cssRules||this._stylesheet.rules,r,n,o=0;o<s.length;o++){var l=s[o].selectorText;(r=/\.l\d+/.exec(l))?(n=parseInt(r[0].substring(2,r[0].length),10),this._columnCssRulesL[n]=s[o]):(r=/\.r\d+/.exec(l))&&(n=parseInt(r[0].substring(2,r[0].length),10),this._columnCssRulesR[n]=s[o])}}return this._options.rtl?{right:this._columnCssRulesL[e],left:this._columnCssRulesR[e]}:{left:this._columnCssRulesL[e],right:this._columnCssRulesR[e]}}removeCssRules(){var e;(e=this._styleNode)==null||e.remove(),this._styleNode=null,this._stylesheet=null}destroy(){var s;this.getEditorLock().cancelCurrentEdit(),this.trigger(this.onBeforeDestroy);for(var e=this._plugins.length;e--;)this.unregisterPlugin(this._plugins[e]);this._draggableInstance&&(this._draggableInstance.destroy(),this._draggableInstance=null),this._options.enableColumnReorder&&this._jQuery&&this._jQuery.fn.sortable&&this._jQuery(this._layout.getHeaderCols()).filter(":ui-sortable").sortable("destroy"),this.unbindAncestorScrollEvents(),this.unbindFromData(),this.unregisterSelectionModel(),(s=this._jQuery)==null||s.call(this,this._container).off(".slickgrid"),this.removeCssRules();var t=this._layout.getCanvasNodes();this._jQuery?this._jQuery(t).off("draginit dragstart dragend drag"):t.forEach(r=>this._removeNode(r));for(var i in this)if(Object.prototype.hasOwnProperty.call(this,i)){if(i.startsWith("on")){var o=this[i];o!=null&&o.clear&&(o!=null&&o.subscribe)&&(o==null||o.clear())}delete this[i]}}trigger(e,t,i){return i=i||new Te,t=t||{},t.grid=this,e.notify(t,i,this)}getEditorLock(){return this._options.editorLock}getEditController(){return this._editController}getColumnById(e){return e?this._cols[this._colById[e]]:null}getColumnIndex(e){return e?this._colById[e]:null}getInitialColumnIndex(e){return e?this._initColById[e]:null}getVisibleColumnById(e){return e?this._cols[this._colById[e]]:nu