UNPKG

@serenity-is/sleekgrid

Version:

A modern Data Grid / Spreadsheet component

1 lines 88 kB
var Slick=Slick||{};Slick._=(()=>{var Z=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var je=(l,e)=>{for(var t in e)Z(l,t,{get:e[t],enumerable:!0})},Be=(l,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Oe(e))!Qe.call(l,o)&&o!==t&&Z(l,o,{get:()=>e[o],enumerable:!(i=We(e,o))||i.enumerable});return l};var Xe=l=>Be(Z({},"__esModule",{value:!0}),l);var Ue={};je(Ue,{BasicLayout:()=>U,Grid:()=>ae,gridDefaults:()=>ee});var{addClass:k,applyFormatterResultToCellNode:de,basicRegexSanitizer:ue,columnDefaults:ce,convertCompatFormatter:W,ensureUniqueColumnIds:Ye,escapeHtml:A,defaultColumnFormat:G,disableSelection:ge,EventEmitter:w,EventData:ve,GlobalEditorLock:me,initializeColumns:fe,H:R,keyCode:qe,NonDataRow:Je,parsePx:P,preClickClassName:pe,CellRange:Ce,removeClass:_e,RowCell:Ze,spacerDiv:$,titleize:$e}=Slick;var ee={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:G,editable:!1,editorFactory:null,editorLock:me,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 U=function(){var l,e,t,i,o,s,r,n,a,h,d;function g(m){l=m;let E=p()+l.getScrollDims().width+"px",L=l.getOptions(),D=L.useLegacyUI?" ui-state-default":"";o=R("div",{class:"slick-header-columns",style:(L.rtl?"right":"left")+":-1000px"});var x=R("div",{class:"slick-header"+D,style:!L.showColumnHeader&&"display: none"},o);C(),s=R("div",{class:"slick-headerrow-columns"}),r=$(E);var z=R("div",{class:"slick-headerrow"+D,style:!L.showHeaderRow&&"display: none"},s,r);h=R("div",{class:"slick-top-panel",style:"width: 10000px"});var V=R("div",{class:"slick-top-panel-scroller"+D,style:!L.showTopPanel&&"display: none"},h);i=R("div",{class:"grid-canvas",tabIndex:"0",hideFocus:""}),d=R("div",{class:"slick-viewport",tabIndex:"0",hideFocus:""},i),n=R("div",{class:"slick-footerrow-columns"}),a=$(E);var M=R("div",{class:"slick-footerrow"+D,style:!L.showFooterRow&&"display: none"},n,a);l.getContainerNode().append(x,z,V,d,M)}function c(m,E){E&&i.appendChild(E)}function u(){var m=0,E,L,D=l.getColumns(),x=l.getOptions(),z=x.rtl;if(x.useCssVars)for(var V=l.getContainerNode().style,M=0;M<D.length;M++){E=D[M].width;var Q="--l"+M,J=V.getPropertyValue(Q),j=m+"px";J!==j&&V.setProperty(Q,j),Q="--r"+M,J=V.getPropertyValue(Q),j=e-m-E+"px",J!==j&&V.setProperty(Q,j),m+=E}else for(var M=0;M<D.length;M++)E=D[M].width,L=l.getColumnCssRules(M),L[z?"right":"left"].style[z?"right":"left"]=m+"px",L[z?"left":"right"].style[z?"left":"right"]=e-m-E+"px",m+=E}function v(){for(var m=i;(m=m.parentNode)!=document.body&&m!=null;)(m==d||m.scrollWidth!=m.clientWidth||m.scrollHeight!=m.clientHeight)&&l.bindAncestorScroll(m)}function p(){for(var m=l.getColumns(),E=m.length,L=0;E--;)L+=m[E].width;return l.getOptions().fullWidthRows?Math.max(L,l.getAvailableWidth()):L}function C(){t=0;for(var m=l.getScrollDims().width,E=l.getColumns(),L=0,D=E.length;L<D;L++)t+=E[L].width;t+=m,t=Math.max(t,l.getViewportInfo().width)+1e3,o.style.width=t+"px"}let S=()=>{l=null};function H(){return i}function _(){return[i]}function b(){return e}function f(){return[o]}function y(m){return o.children.item(m)}function T(){return[s]}function I(m){return s.childNodes.item(m)}function N(){return s}function X(m){return n.childNodes.item(m)}function he(){return n}function He(){return o}function Pe(){return[n]}function Se(m){return l.getRowFromNode(m.parentElement)}function Te(){return h}function Ie(){return[h]}function Y(){return d}function De(){return[d]}function Me(){o.parentElement.scrollLeft=l.getScrollLeft(),h.parentElement.scrollLeft=l.getScrollLeft(),s.parentElement.scrollLeft=l.getScrollLeft(),n.parentElement.scrollLeft=l.getScrollLeft()}function F(){}function Ne(){i.style.height=l.getViewportInfo().realScrollHeight+"px"}function Ae(m){return m}function Fe(){return!1}function xe(){var m=l.getOptions().alwaysShowVerticalScroll;d.style.overflowX="auto",d.style.overflowY=m?"scroll":l.getOptions().autoHeight?"hidden":"auto"}function ke(){var m=e;e=p();var E=l.getScrollDims().width;let L=l.getViewportInfo();var D=e+"px";i.style.width=D,s.style.width=D,n.style.width=D,C(),L.hasHScroll=e>l.getViewportInfo().width-E;var x=e+(L.hasVScroll?E:0)+"px";return r.style.width=x,a.style.width=x,e!=m}let ze=()=>{var m=l.getViewportInfo(),E=m.height+m.topPanelHeight+m.headerRowHeight+m.footerRowHeight;l.getOptions().autoHeight?(l.getContainerNode().style.height=E+m.groupingPanelHeight+P(getComputedStyle(o.parentElement).height)+"px",d.style.height=""):d.style.height=m.height+"px"};function q(){return 0}var Ve={afterHeaderColumnDrag:F,afterRenderRows:F,afterSetOptions:F,appendCachedRow:c,applyColumnWidths:u,beforeCleanupAndRenderCells:F,bindAncestorScrollEvents:v,calcCanvasWidth:p,updateHeadersWidth:C,isFrozenRow:Fe,destroy:S,getCanvasNodeFor:H,getCanvasNodes:_,getCanvasWidth:b,getFooterRowCols:Pe,getFooterRowColsFor:he,getFooterRowColumn:X,getHeaderCols:f,getHeaderColsFor:He,getHeaderColumn:y,getHeaderRowCols:T,getHeaderRowColsFor:N,getHeaderRowColumn:I,getRowFromCellNode:Se,getFrozenCols:q,getFrozenRowOffset:q,getFrozenRows:q,getScrollCanvasY:H,getScrollContainerX:Y,getScrollContainerY:Y,getTopPanelFor:Te,getTopPanelNodes:Ie,getViewportNodeFor:Y,getViewportNodes:De,handleScrollH:Me,handleScrollV:F,init:g,layoutName:"basic",realScrollHeightChange:Ne,reorderViewColumns:Ae,resizeCanvas:ze,setOverflow:xe,setPaneVisibility:F,setScroller:F,updateCanvasWidth:ke};return Ve};var K=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 a=n[e].bind(this);return a(t,i,o)}};function Ge(){var l,e,t,i;return{left:(e=(l=window.scrollX)!=null?l:document.documentElement.scrollLeft)!=null?e:0,top:(i=(t=window.scrollY)!=null?t:document.documentElement.scrollTop)!=null?i:0}}function we(l){let{containerElement:e}=l,{onDragInit:t,onDragStart:i,onDrag:o,onDragEnd:s,preventDragFromKeys:r}=l,n,a,h,d,g,c;e||(e=document.body);let u={dragSource:e,dragHandle:null};function v(){e&&(e.addEventListener("mousedown",H),e.addEventListener("touchstart",H,{passive:!0}))}function p(f,y,T){if(typeof f=="function")return f(y,T)}function C(){e&&(e.removeEventListener("mousedown",H),e.removeEventListener("touchstart",H))}function S(f){let y=!1;return r&&r.forEach(T=>{f[T]&&(y=!0)}),y}function H(f){var y,T;if(!S(f)){n=f.target;let I=(T=(y=f==null?void 0:f.touches)==null?void 0:y[0])!=null?T:f,{target:N}=I;if(!l.allowDragFrom||l.allowDragFrom&&n.matches(l.allowDragFrom)||l.allowDragFromClosest&&n.closest(l.allowDragFromClosest)){u.dragHandle=n;let X=Ge();a=X.left+I.clientX,h=X.top+I.clientY,d=I.clientX-I.clientX,g=I.clientY-I.clientY,u=Object.assign(u,{deltaX:d,deltaY:g,startX:a,startY:h,target:N}),p(t,f,u)!==!1&&(document.body.addEventListener("mousemove",_),document.body.addEventListener("touchmove",_,{passive:!0}),document.body.addEventListener("mouseup",b),document.body.addEventListener("touchend",b,{passive:!0}),document.body.addEventListener("touchcancel",b,{passive:!0}))}}}function _(f){var y,T;if(!S(f)){let I=(T=(y=f==null?void 0:f.touches)==null?void 0:y[0])!=null?T:f;d=I.clientX-a,g=I.clientY-h;let{target:N}=I;c||(u=Object.assign(u,{deltaX:d,deltaY:g,startX:a,startY:h,target:N}),p(i,f,u),c=!0),u=Object.assign(u,{deltaX:d,deltaY:g,startX:a,startY:h,target:N}),p(o,f,u)}}function b(f){if(document.body.removeEventListener("mousemove",_),document.body.removeEventListener("touchmove",_),document.body.removeEventListener("mouseup",b),document.body.removeEventListener("touchend",b),document.body.removeEventListener("touchcancel",b),c){let{target:y}=f;u=Object.assign(u,{target:y}),p(s,f,u),c=!1}}return v(),{destroy:C}}var te,ie;function B(l){var e={top:l.offsetTop,left:l.offsetLeft,bottom:0,right:0,width:l.offsetWidth,height:l.offsetHeight,visible:!0};e.bottom=e.top+e.height,e.right=e.left+e.width;for(var t=l.offsetParent;(l=l.parentNode)!=document.body&&l!=null;)e.visible&&l.scrollHeight!=l.offsetHeight&&getComputedStyle(l).overflowY!=="visible"&&(e.visible=e.bottom>l.scrollTop&&e.top<l.scrollTop+l.clientHeight),e.visible&&l.scrollWidth!=l.offsetWidth&&getComputedStyle(l).overflowX!="visible"&&(e.visible=e.right>l.scrollLeft&&e.left<l.scrollLeft+l.clientWidth),e.left-=l.scrollLeft,e.top-=l.scrollTop,l===t&&(e.left+=l.offsetLeft,e.top+=l.offsetTop,t=l.offsetParent),e.bottom=e.top+e.height,e.right=e.left+e.width;return e}function ye(l,e,t){var i,o,s=[],r=0,n=0,a;for(i=0;i<l.length;i++)o=l[i],s.push(o.width),n+=o.width,o.resizable&&(r+=o.width-Math.max(o.minWidth,t));for(a=n;n>e&&r;){var h=(n-e)/r;for(i=0;i<l.length&&n>e;i++){o=l[i];var d=s[i];if(!(!o.resizable||d<=o.minWidth||d<=t)){var g=Math.max(o.minWidth,t),c=Math.floor(h*(d-g))||1;c=Math.min(c,d-g),n-=c,r-=c,s[i]-=c}}if(a<=n)break;a=n}for(a=n;n<e;){var u=e/n;for(i=0;i<l.length&&n<e;i++){o=l[i];var v=s[i],p;!o.resizable||o.maxWidth<=v?p=0:p=Math.min(Math.floor(u*v)-v,o.maxWidth-v||1e6)||1,n+=p,s[i]+=n<=e?p:0}if(a>=n)break;a=n}var C=!1;for(i=0;i<l.length;i++)l[i].rerenderOnResize&&l[i].width!=s[i]&&(C=!0),l[i].width=s[i];return C}function oe(l){return!l&&te!=null?te:te=navigator.userAgent.toLowerCase().match(/gecko\//)?4e6:32e6}function se(l){if(!ie||l){var e=document.body.appendChild(R("div",{style:"position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow: scroll;border:0"}));ie={width:Math.round(e.offsetWidth-e.clientWidth),height:Math.round(e.offsetWidth-e.clientHeight)},e.remove()}return ie}function be(l,e){if(!Array.isArray(l)||!Array.isArray(e)||l.length!==e.length)return!1;l=l.slice().sort(),e=e.slice().sort();for(var t=0;t<l.length;t++)if(l[t]!==e[t])return!1;return!0}function re(l,e){if(e.length==0)return l;for(var t={},i={},o=[],s=0;s<e.length;s++)t[e[s]]=s;for(s=0;s<l.length;s++)i[l[s].id]=s;function r(h){for(var d=h;d<l.length;d++){var g=l[d];if(h!=d&&t[g.id]!=null)break;o.push(g),i[g.id]=null}}t[l[0].id]==null&&r(0);for(var n of e)s=i[n],s!=null&&r(s);for(s=0;s<l.length;s++){var a=l[s];i[a.id]!=null&&(o.push(a),i[a.id]=null)}return o}function Re(l,e,t,i,o){var s=null,r=null,n,a;if(i)for(s=0,r=0,n=e+1;n<l.length;n++)a=l[n],a.resizable&&(r!=null&&(a.maxWidth?r+=a.maxWidth-a.previousWidth:r=null),s+=a.previousWidth-Math.max(a.minWidth||0,o));var h=0,d=0;for(n=0;n<=e;n++)a=l[n],a.resizable&&(d!=null&&(a.maxWidth?d+=a.maxWidth-a.previousWidth:d=null),h+=a.previousWidth-Math.max(a.minWidth||0,o));return s===null&&(s=1e5),h===null&&(h=1e5),r===null&&(r=1e5),d===null&&(d=1e5),{maxPageX:t+Math.min(s,d),minPageX:t-Math.min(h,r)}}function Ee(l,e,t,i,o){var s,r,n,a;if(t<0){for(n=t,r=e;r>=0;r--)s=l[r],s.resizable&&(a=Math.max(s.minWidth||0,o),n&&s.previousWidth+n<a?(n+=s.previousWidth-a,s.width=a):(s.width=s.previousWidth+n,n=0));if(i)for(n=-t,r=e+1;r<l.length;r++)s=l[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=l[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<l.length;r++)s=l[r],s.resizable&&(a=Math.max(s.minWidth||0,o),n&&s.previousWidth+n<a?(n+=s.previousWidth-a,s.width=a):(s.width=s.previousWidth+n,n=0))}}function ne(){this==null||this.classList.add("ui-state-hover")}function le(){this==null||this.classList.remove("ui-state-hover")}function O(l){if(!l)return 0;var e=getComputedStyle(l);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+=P(e.getPropertyValue(o))||0;return i}function Le(l){var s;var e=getComputedStyle(l),t=(s=P(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-=P(e.getPropertyValue(o))||0;return Math.max(t,0)}var ae=class l{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 w;this.onActiveCellPositionChanged=new w;this.onAddNewRow=new w;this.onBeforeCellEditorDestroy=new w;this.onBeforeDestroy=new w;this.onBeforeEditCell=new w;this.onBeforeFooterRowCellDestroy=new w;this.onBeforeHeaderCellDestroy=new w;this.onBeforeHeaderRowCellDestroy=new w;this.onCellChange=new w;this.onCellCssStylesChanged=new w;this.onClick=new w;this.onColumnsReordered=new w;this.onColumnsResized=new w;this.onCompositeEditorChange=new w;this.onContextMenu=new w;this.onDblClick=new w;this.onDrag=new w;this.onDragEnd=new w;this.onDragInit=new w;this.onDragStart=new w;this.onFooterRowCellRendered=new w;this.onHeaderCellRendered=new w;this.onHeaderClick=new w;this.onHeaderContextMenu=new w;this.onHeaderMouseEnter=new w;this.onHeaderMouseLeave=new w;this.onHeaderRowCellRendered=new w;this.onKeyDown=new w;this.onMouseEnter=new w;this.onMouseLeave=new w;this.onScroll=new w;this.onSelectedRowsChanged=new w;this.onSort=new w;this.onValidationError=new w;this.onViewportChanged=new w;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 a=t[r].fromCell;a<=t[r].toCell;a++)this.canCellBeSelected(n,a)&&(o[n][s[a].id]=this._options.selectedCellCssClass)}if(this.setCellCssStyles(this._options.selectedCellCssClass,o),!be(i,this._selectedRows)){var h=e&&e.detail&&e.detail.caller||"click",d=this._selectedRows.filter(c=>i.indexOf(c)<0),g=i.filter(c=>this._selectedRows.indexOf(c)<0);this.trigger(this.onSelectedRowsChanged,{rows:this.getSelectedRows(),previousSelectedRows:i,caller:h,changedSelectedRows:d,changedUnselectedRows:g},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 a=t[r].fromCell;a<=t[r].toCell;a++)this.canCellBeSelected(n,a)&&(o[n][s[a].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=se(!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],a=this._postProcessedRows[i][r];if(a!=="R"){if(n.asyncPostRender||n.asyncPostRenderCleanup){var h=o.cellNodesByColumnIdx[r];h&&n.asyncPostRender&&n.asyncPostRender(h,i,this.getDataItem(i),n,a==="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,a;if(this._data=t,this._colDefaults=Object.assign({},ce),this._options=o=Object.assign({},ee,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:ue: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=R("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=(a=o.layoutEngine)!=null?a:new U,this.setInitialCols(i),this._scrollDims=se(),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=>k(h,o.viewportClass)),o.explicitInitialization||this.init(),this.bindToData()}createGroupingPanel(){this._groupingPanel||!this._focusSink1||(this._focusSink1.insertAdjacentElement("afterend",this._groupingPanel=R("div",{class:"slick-grouping-panel",style:this._options.showGroupingPanel?null:"display: none"})),this._options.createPreHeaderPanel&&this._groupingPanel.appendChild(R("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=>{ge(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=we({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 a=this.getColumnFromNode(n);a&&this.trigger(this.onBeforeFooterRowCellDestroy,{node:n,column:a})}),this._jQuery?this._jQuery(r).empty():r.innerHTML=""});for(var t=this._cols,i=0;i<t.length;i++){var o=t[i],s=R("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?k(s,o.footerCssClass):o.cssClass&&k(s,o.cssClass),this._layout.getFooterRowColsFor(i).appendChild(s),this.trigger(this.onFooterRowCellRendered,{node:s,column:o})}}createColumnHeaders(){var c,u;this._layout.getHeaderCols().forEach(v=>{v.querySelectorAll(".slick-header-column").forEach(p=>{var C=this.getColumnFromNode(p);C&&this.trigger(this.onBeforeHeaderCellDestroy,{node:p,column:C})}),this._emptyNode(v)}),this._layout.updateHeadersWidth(),this._layout.getHeaderRowCols().forEach(v=>{v.querySelectorAll(".slick-headerrow-column").forEach(p=>{var C=this.getColumnFromNode(p);C&&this.trigger(this.onBeforeHeaderRowCellDestroy,{node:p,column:C,grid:this})}),this._jQuery?this._jQuery(v).empty():v.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),a=document.createElement("span");a.className="slick-column-name",r.nameIsHtml?a.innerHTML=(c=r.name)!=null?c:"":a.textContent=(u=r.name)!=null?u:"";var h=R("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"},a);if(h.dataset.c=s.toString(),this._jQuery&&this._jQuery(h).data("column",r),r.headerCssClass&&k(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",ne),this._jQuery(h).on("mouseleave",le)):(h.addEventListener("mouseenter",ne),h.addEventListener("mouseleave",le))),r.sortable&&(h.classList.add("slick-header-sortable"),h.appendChild(R("span",{class:"slick-sort-indicator"}))),this.trigger(this.onHeaderCellRendered,{node:h,column:r}),this._options.showHeaderRow){var d=this._layout.getHeaderRowColsFor(s),g=R("div",{class:"slick-headerrow-column l"+s+" r"+s+(this._options.useLegacyUI?" ui-state-default":"")});g.dataset.c=s.toString(),this._jQuery&&this._jQuery(g).data("column",r),d.appendChild(g),this.trigger(this.onHeaderRowCellRendered,{node:g,column:r})}}this.setSortColumns(this._sortColumns),this.setupColumnResize(),this._options.enableColumnReorder&&(this.setupColumnReorder(),this._layout.getHeaderCols().forEach(v=>v.querySelectorAll(".slick-resizable-handle").forEach(p=>p.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 a=this._initCols;this.trigger(this.onSort,{multiColumnSort:!0,sortCols:this._sortColumns.map(h=>({sortCol:a[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()||l.offset(n.item).left>l.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<l.offset(this._layout.getScrollContainerX()).left?e||(e=setInterval(t,100)):(clearInterval(e),e=null)},onEnd:n=>{var d;if(clearInterval(e),e=null,!!((d=this.getEditorLock())!=null&&d.commitCurrentEdit())){var h;this._layout.getHeaderCols().forEach((g,c)=>{var u,v,p;return h=re(this._initCols,(p=(v=(u=this.sortableColInstances[c])==null?void 0:u.toArray)==null?void 0:v.call(u))!=null?p:[])}),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(g=>{e=e.concat(Array.from(g.children))});var t,i,o,s,r,a,h,n=this._cols,a,h;if(e.forEach((g,c)=>{var u=g.querySelector(".slick-resizable-handle");u&&this._removeNode(u),n[c].resizable&&(a===void 0&&(a=c),h=c)}),a===void 0)return;let d=!this._jQuery||!this._jQuery.fn||!this._jQuery.fn.drag;e.forEach((g,c)=>{if(c<a||this._options.forceFitColumns&&c>=h)return;let u=g.appendChild(document.createElement("div"));u.classList.add("slick-resizable-handle"),u.draggable=!0;var v=null,p=null;let C=_=>{var f;if(!this.getEditorLock().commitCurrentEdit()){!d&&_.preventDefault();return}d&&(v=y=>{p={pageX:y.pageX,pageY:y.pageY},y.preventDefault()},document.addEventListener("dragover",v)),o=_.pageX,(f=_.target.parentElement)==null||f.classList.add("slick-header-column-active"),e.forEach((y,T)=>{n[T].previousWidth=y.offsetWidth});let b=Re(n,c,o,this._options.forceFitColumns,this._absoluteColMinWidth);r=b.maxPageX,s=b.minPageX,d&&(_.dataTransfer.effectAllowed="move")},S=_=>{var b;if(d){var f=!_.pageX&&!_.pageY?p==null?void 0:p.pageX:_.pageX,y=!_.pageX&&!_.pageY?p==null?void 0:p.pageY:_.pageY;if(!f&&!_.clientX&&!y&&!_.clientY)return;b=Math.min(r,Math.max(s,f))-o,_.dataTransfer.effectAllowed="none",_.preventDefault()}else b=Math.min(r,Math.max(s,_.pageX))-o;isNaN(b)||(Ee(n,c,b,this._options.forceFitColumns,this._absoluteColMinWidth),this._layout.afterHeaderColumnDrag(),this.applyColumnHeaderWidths(),this._options.syncColumnCellResize&&this._layout.applyColumnWidths())},H=_=>{var f;for(v&&(document.removeEventListener("dragover",v),v=null),(f=_.target.parentElement)==null||f.classList.remove("slick-header-column-active"),t=0;t<e.length;t++){i=n[t];var b=e[t].offsetWidth;i.previousWidth!==b&&i.rerenderOnResize&&this.invalidateAllRows()}this.columnsResized(!1)};d?(u.addEventListener("dragstart",C),u.addEventListener("drag",S),u.addEventListener("dragend",H),u.addEventListener("dragover",_=>{_.preventDefault(),_.dataTransfer.effectAllowed="move"})):this._jQuery(u).on("dragstart",C).on("drag",S).on("dragend",H)})}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=>k(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(R("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+=P(o.getPropertyValue(r))||0),i.remove();var s=this._layout.getCanvasNodeFor(0,0).appendChild(R("div",{class:"slick-row"},i=R("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+=P(o.getPropertyValue(r))||0),t.forEach(r=>this._cellHeightDiff+=P(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 a=s[o].selectorText;(r=/\.l\d+/.exec(a))?(n=parseInt(r[0].substring(2,r[0].length),10),this._columnCssRulesL[n]=s[o]):(r=/\.r\d+/.exec(a))&&(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 ve,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]]:null}autosizeColumns(){var e=this._viewportInfo,t=e.hasVScroll?e.width-this._scrollDims.width:e.width,i=ye(this._cols,t,this._absoluteColMinWidth);this.applyColumnHeaderWidths(),this.updateCanvasWidth(!0),i&&(this.invalidateAllRows(),this.render())}applyColumnHeaderWidths(){if(this._initialized){for(var e,t=0,i=this._cols,o=i.length,s=this._headerColumnWidthDiff;t<o;t++)if(e=this._layout.getHeaderColumn(t),e){var r=i[t].width-s;e.offsetWidth!==r&&(e.style.width=r+"px")}this.updateViewColLeftRight()}}setSortColumn(e,t){this.setSortColumns([{columnId:e,sortAsc:t}])}setSortColumns(e){this._sortColumns=e||[];var t=[];this._layout.getHeaderCols().forEach(i=>t=t.concat(Array.from(i.children))),t.forEach(i=>{i.classList.remove("slick-header-column-sorted");var o=i.querySelector(".slick-sort-indicator");o&&o.classList.remove("slick-sort-indicator-asc","slick-sort-indicator-desc")}),this._sortColumns.forEach(i=>{i.sortAsc==null&&(i.sortAsc=!0);var o=this.getColumnIndex(i.columnId);if(o!=null){var s=t[o];if(s){s.classList.add("slick-header-column-sorted");var r=s.querySelector(".slick-sort-indicator");r&&r.classList.add(i.sortAsc?"slick-sort-indicator-asc":"slick-sort-indicator-desc")}}})}getSortColumns(){return this._sortColumns}getColumns(){return this._cols}getInitialColumns(){return this._initCols}updateViewColLeftRight(){this._colLeft=[],this._colRight=[];for(var e=0,t,i=this._cols,o,s=i.length,r=this._layout.getFrozenCols(),o=0;o<s;o++)r===o&&(e=0),t=e+i[o].width,this._colLeft[o]=e,this._colRight[o]=t,e=t}setInitialCols(e){var n,a;fe(e,this._colDefaults);var t={},i=[],o={},s,r;for(s=0;s<e.length;s++)r=e[s],t[r.id]=s,r.visible!==!1&&i.push(r);for(i=this._layout.reorderViewColumns(i,this._options),this._postRenderActive=(n=this._options.enableAsyncPostRender)!=null?n:!1,this._postCleanupActive=(a=this._options.enableAsyncPostRenderCleanup)!=null?a:!1,s=0;s<i.length;s++)r=i[s],o[r.id]=s,r.asyncPostRenderCleanup!=null&&(this._postCleanupActive=!0),r.asyncPostRender!=null&&(this._postRenderActive=!0);this._initCols=e,this._initColById=t,this._cols=i,this._colById=o}setColumns(e){var t,i;e&&this._initCols&&this._cols&&e.length===this._cols.length&&this._initCols.length>this._cols.length&&!e.some(o=>this._cols.indexOf(o)<0)&&!this._cols.some(o=>e.indexOf(o)<0)&&(re(this._initCols,e.map(o=>o.id)),e=this._initCols),this.setInitialCols(e),this.updateViewColLeftRight(),this._initialized&&(this._layout.setPaneVisibility(),this.setOverflow(),this.invalidateAllRows(),this.createColumnHeaders(),this.createColumnFooters(),this.updateGrandTotals(),this.removeCssRules(),this.createCssRules(),this.resizeCanvas(),this.updateCanvasWidth(),this._layout.applyColumnWidths(),this.handleScroll(),(i=(t=this.getSelectionModel())==null?void 0:t.refreshSelections)==null||i.call(t))}getOptions(){return this._options}setOptions(e,t,i,o){var s;this.getEditorLock().commitCurrentEdit()&&(this.makeActiveCellNormal(),e.groupingPanel&&!this._options.groupingPanel?this.createGroupingPanel():e.groupingPanel!=null&&!e.groupingPanel&&this._groupingPanel&&this._removeNode(this._groupingPanel),e.showColumnHeader!==void 0&&this.setColumnHeaderVisibility(e.showColumnHeader),this._options.enableAddRow!==e.enableAddRow&&this.invalidateRow(this.getDataLength()),this._options=Object.assign(this._options,e),this.validateAndEnforceOptions(),this._layout.afterSetOptions(e),e.columns&&!i&&this.setColumns((s=e.columns)!=null?s:this._initCols),o||this.setOverflow(),this._layout.setScroller(),t||this.render())}validateAndEnforceOptions(){this._options.autoHeight&&(this._options.leaveSpaceForNewRows=!1)}bindToData(){this._data&&(this._data.onRowCountChanged&&this._data.onRowCountChanged.subscribe(this.viewOnRowCountChanged),this._data.onRowsChanged&&this._data.onRowsChanged.subscribe(this.viewOnRowsChanged),this._data.onDataChanged&&this._data.onDataChanged.subscribe(this.viewOnDataChanged))}unbindFromData(){this._data&&(this._data.onRowCountChanged&&this._data.onRowCountChanged.unsubscribe(this.viewOnRowCountChanged),this._data.onRowsChanged&&this._data.onRowsChanged.unsubscribe(this.viewOnRowsChanged),this._data.onDataChanged&&this._data.onDataChanged.unsubscribe(this.viewOnDataChanged))}setData(e,t){this.unbindFromData(),this._data=e,this.bindToData(),this.invalidateAllRows(),this.updateRowCount(),t&&this.scrollTo(0)}getData(){return this._data}getDataLength(){return this._data.getLength?this._data.getLength():this._data.length}getDataLengthIncludingAddNew(){return this.getDataLength()+(this._options.enableAddRow&&(!this._pagingActive||this._pagingIsLastPage)?1:0)}getDataItem(e){return this._data.getItem?this._data.getItem(e):this._data[e]}getTopPanel(){return this._layout.getTopPanelFor(0)}setTopPanelVisibility(e){this._options.showTopPanel!=e&&(this._options.showTopPanel=!!e,this._layout.getTopPanelNodes().forEach(t=>{this._jQuery?this._jQuery(t)[e?"slideDown":"slideUp"]("fast",this.resizeCanvas):(t.style.display=e?"":"none",this.resizeCanvas())}))}setColumnHeaderVisibility(e,t){this._options.showColumnHeader!=e&&(this._options.showColumnHeader=e,this._layout.getHeaderCols().forEach(i=>{let o=i.parentElement;t&&this._jQuery?this._jQuery(o)[e?"slideDown":"slideUp"]("fast",this.resizeCanvas):(o.style.display=e?"":"none",this.resizeCanvas())}))}setFooterRowVisibility(e){this._options.showFooterRow!=e&&(this._options.showFooterRow=!!e,this._layout.getFooterRowCols().forEach(t=>{let i=t.parentElement;this._jQuery?this._jQuery(i)[e?"slideDown":"slideUp"]("fast",this.resizeCanvas):(i.style.display=e?"":"none",this.resizeCanvas())}))}setGroupingPanelVisibility(e){if(this._options.showGroupingPanel!=e){if(this._options.showGroupingPanel=e,!this._options.groupingPanel)return;let t=this._groupingPanel;this._jQuery?this._jQuery(t)[e?"slideDown":"slideUp"]("fast",this.resizeCanvas):(t.style.display=e?"":"none",this.resizeCanvas())}}setPreHeaderPanelVisibility(e){this.setGroupingPanelVisibility(e)}setHeaderRowVisibility(e){this._options.showHeaderRow!=e&&(this._options.showHeaderRow=e,this._layout.getHeaderRowCo