@slickgrid-universal/vanilla-force-bundle 5.13.3 → 5.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
`,this._addonOptions.replaceNewlinesWith||`
|
|
9
9
|
`).replaceAll("\r","").replaceAll('"',this._addonOptions.removeDoubleQuotesOnPaste?"":'"')]:l[o++]=S.split(" ");const a=this._grid.getActiveCell(),h=(b=this._grid.getSelectionModel())==null?void 0:b.getSelectedRanges(),d=h!=null&&h.length?h[0]:null;let c,u;if(d)c=d.fromRow,u=d.fromCell;else if(a)c=a.row,u=a.cell;else return;let p=!1,m=l.length,f=l.length?l[0].length:0;l.length===1&&l[0].length===1&&d&&(p=!0,m=d.toRow-d.fromRow+1,f=d.toCell-d.fromCell+1);const g=this._dataWrapper.getDataLength()-c;if(g<m&&typeof this._addonOptions.newRowCreator=="function"){const S=m-g,E=this._dataWrapper.getDataLength();this._addonOptions.newRowCreator(S);const y=this._dataWrapper.getDataLength();y!==E+S&&console.warn(`[Slickgrid-Universal] The "newRowCreator" did not add the correct amount of rows, it should add "${S}" rows but it added "${y-E}" rows`),this._grid.render()}if(c+m>this._dataWrapper.getDataLength()&&typeof this._addonOptions.newRowCreator=="function"){const S=c+m-this._dataWrapper.getDataLength();this._addonOptions.newRowCreator(S)}const C={isClipboardCommand:!0,clippedRange:l,oldValues:[],cellExternalCopyManager:this,_options:this._addonOptions,setDataItemValueForColumn:this.setDataItemValueForColumn,markCopySelection:this.markCopySelection,oneCellToMultiple:p,activeRow:c,activeCell:u,destH:m,destW:f,maxDestY:this._dataWrapper.getDataLength(),maxDestX:this._grid.getColumns().length,h:0,w:0,execute:()=>{var E;C.h=0;for(let y=0;y<C.destH;y++){C.oldValues[y]=[],C.w=0,C.h++;let x=0;for(let O=0;O<C.destW;O++){const I=c+y,A=u+O,D=i[A];if(D.hidden){C.destW++,x++;continue}if(C.w++,I<C.maxDestY&&A<C.maxDestX){const L=this._dataWrapper.getDataItem(I);if(this._grid.triggerEvent(this.onBeforePasteCell,{row:I,cell:A,dt:L,column:D,target:"grid"}).getReturnValue()===!1)continue;C.oldValues[y][O-x]=L[D.field],p?this.setDataItemValueForColumn(L,D,l[0][0]):this.setDataItemValueForColumn(L,D,l[y]?l[y][O-x]:""),this._grid.updateCell(I,A),this._grid.onCellChange.notify({row:I,cell:A,item:L,grid:this._grid,column:{}})}}}const S=new tt(c,u,c+C.h-1,u+C.w-1);this.markCopySelection([S]),(E=this._grid.getSelectionModel())==null||E.setSelectedRanges([S]),this.onPasteCells.notify({ranges:[S]})},undo:()=>{var E;for(let y=0;y<C.destH;y++)for(let x=0;x<C.destW;x++){const O=c+y,I=u+x;if(O<C.maxDestY&&I<C.maxDestX){const A=this._dataWrapper.getDataItem(O);p?this.setDataItemValueForColumn(A,i[I],C.oldValues[0][0]):this.setDataItemValueForColumn(A,i[I],C.oldValues[y][x]),this._grid.updateCell(O,I),this._grid.onCellChange.notify({row:O,cell:I,item:A,grid:this._grid,column:{}})}}const S=new tt(c,u,c+C.h-1,u+C.w-1);this.markCopySelection([S]),(E=this._grid.getSelectionModel())==null||E.setSelectedRanges([S]),this.onPasteCells.notify({ranges:[S]}),typeof this._addonOptions.onPasteCells=="function"&&this._addonOptions.onPasteCells(new le,{ranges:[S]})}};this._addonOptions.clipboardCommandHandler?this._addonOptions.clipboardCommandHandler(C):C.execute()}handleKeyDown(e){var i,s,n;let t;if(!this._grid.getEditorLock().isActive()||this._grid.getOptions().autoEdit){if(e.key==="Escape"&&this._copiedRanges&&(e.preventDefault(),this.clearCopySelection(),this.onCopyCancelled.notify({ranges:this._copiedRanges}),typeof this._addonOptions.onCopyCancelled=="function"&&this._addonOptions.onCopyCancelled(e,{ranges:this._copiedRanges}),this._copiedRanges=null),(e.key==="c"||e.key==="Insert")&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&(typeof this._onCopyInit=="function"&&this._onCopyInit.call(this),t=((i=this._grid.getSelectionModel())==null?void 0:i.getSelectedRanges())??[],t.length!==0)){this._copiedRanges=t,this.markCopySelection(t),this.onCopyCells.notify({ranges:t}),typeof this._addonOptions.onCopyCells=="function"&&this._addonOptions.onCopyCells(e,{ranges:t});const o=this._grid.getColumns();let l="";for(let a=0;a<t.length;a++){const h=t[a],d=[];for(let c=h.fromRow;c<h.toRow+1;c++){const u=[],p=this._dataWrapper.getDataItem(c);if(d.length===0&&this._addonOptions.includeHeaderWhenCopying){const m=[];for(let f=h.fromCell;f<h.toCell+1;f++)o[f]&&(o[f].name instanceof HTMLElement?we(o[f].name.innerHTML):o[f].name).length>0&&!o[f].hidden&&m.push(this.getHeaderValueForColumn(o[f]));d.push(m.join(" "))}for(let m=h.fromCell;m<h.toCell+1;m++)o[m]&&(o[m].name instanceof HTMLElement?we(o[m].name.innerHTML):o[m].name).length>0&&!o[m].hidden&&u.push(this.getDataItemValueForColumn(p,o[m],c,m,e));d.push(u.join(" "))}l+=d.join(`\r
|
|
10
10
|
`)+`\r
|
|
11
|
-
`}if(window.clipboardData)return window.clipboardData.setData("Text",l),!0;{const a=document.activeElement,h=this.createTextBox(l);if(h.focus(),window.setTimeout(()=>{this._bodyElement.removeChild(h),a?a.focus():console.log("No element to restore focus to after copy?")},((s=this.addonOptions)==null?void 0:s.clipboardPasteDelay)??Ql),typeof this._onCopySuccess=="function"){const d=t.length===1?t[0].toRow+1-t[0].fromRow:t.length;this._onCopySuccess(d)}return!1}}if(!this._addonOptions.readOnlyMode&&(e.key==="v"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey||e.key==="Insert"&&e.shiftKey&&!e.ctrlKey)){const o=this.createTextBox("");return window.setTimeout(()=>this.decodeTabularData(this._grid,o),((n=this.addonOptions)==null?void 0:n.clipboardPasteDelay)??Ql),!1}}}markCopySelection(e){var s;this.clearCopySelection();const t=this._grid.getColumns(),i={};for(const n of e)for(let o=n.fromRow;o<=n.toRow;o++){i[o]={};for(let l=n.fromCell;l<=n.toCell&&l<t.length;l++)i[o][t[l].id]=this._copiedCellStyle}this._grid.setCellCssStyles(this._copiedCellStyleLayerKey,i),window.clearTimeout(this._clearCopyTI),this._clearCopyTI=window.setTimeout(()=>this.clearCopySelection(),((s=this.addonOptions)==null?void 0:s.clearCopySelectionDelay)||$c)}}class zs{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._addonOptions={},this._camelPluginName="",this._gridUid="",this._menuCssPrefix="",this._menuPluginCssPrefix="",this._bindEventService=new Pe,this._eventHandler=new pe}get addonOptions(){return this._addonOptions}set addonOptions(e){this._addonOptions=e}get eventHandler(){return this._eventHandler}get grid(){return this.sharedService.slickGrid}get gridOptions(){return this.sharedService.gridOptions??{}}get gridUid(){var e;return this._gridUid||(((e=this.grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}get menuCssClass(){return this._menuPluginCssPrefix||this._menuCssPrefix}get menuElement(){return this._menuElm||document.querySelector(`.${this.menuCssClass}${this.gridUidSelector}`)}dispose(){var e,t,i,s,n;(e=this._eventHandler)==null||e.unsubscribeAll(),this._bindEventService.unbindAll(),this.pubSubService.unsubscribeAll(),(t=this._commandTitleElm)==null||t.remove(),(i=this._optionTitleElm)==null||i.remove(),this.disposeAllMenus(),ee(this._menuElm),(s=this.menuElement)==null||s.remove(),(n=this._menuElm)==null||n.remove()}disposeAllMenus(){this.disposeSubMenus(),this._bindEventService.unbindAll("parent-menu"),document.querySelectorAll(`.${this.menuCssClass}${this.gridUidSelector}`).forEach(e=>e.remove())}disposeSubMenus(){this._bindEventService.unbindAll("sub-menu"),document.querySelectorAll(`.${this.menuCssClass}.slick-submenu${this.gridUidSelector}`).forEach(e=>e.remove())}setOptions(e){this._addonOptions={...this._addonOptions,...e}}addSubMenuTitleWhenExists(e,t){if(e!=="divider"&&(e!=null&&e.subMenuTitle)){const i=document.createElement("div");i.className="slick-menu-title",i.textContent=e.subMenuTitle;const s=e.subMenuTitleCssClass;s&&i.classList.add(...he(s)),t.appendChild(i)}}populateCommandOrOptionItems(e,t,i,s,n,o,l){if(n&&s&&t)for(const a of s)this.populateSingleCommandOrOptionItem(e,t,i,a,n,o,l)}populateCommandOrOptionTitle(e,t,i,s){var n;if(t){const o=s>0,l=((n=this._menuElm)==null?void 0:n.querySelector(`.slick-${e}-header`))??v("div",{className:`slick-${e}-header`}),a=`${e}Title`;o||(t!=null&&t[a]?(ee(l),this[`_${e}TitleElm`]=v("span",{className:"slick-menu-title",textContent:t[a]}),l.appendChild(this[`_${e}TitleElm`]),l.classList.add("with-title")):l.classList.add("no-title"),i.appendChild(l))}}populateSingleCommandOrOptionItem(e,t,i,s,n,o,l){var h;let a=null;if(n&&s&&t){const d=(n==null?void 0:n.level)||0,c=this._camelPluginName==="headerButtons"?"":"-item",u=`${this._menuCssPrefix}${c}`;let p=!0,m=!0;if(typeof s=="object"&&(p=this.extensionUtility.runOverrideFunctionWhenExists(s.itemVisibilityOverride,n),m=this.extensionUtility.runOverrideFunctionWhenExists(s.itemUsabilityOverride,n)),!p)return null;if(typeof s=="object"&&s.itemUsabilityOverride&&(s.disabled=!m),a=v("li",{className:u,role:"menuitem"}),typeof s=="object"&&q(s[e])&&(a.dataset[e]=s==null?void 0:s[e]),i&&i.appendChild(a),typeof s=="object"&&s.divider||s==="divider")return a.classList.add(`${u}-divider`),a;if(s.disabled&&a.classList.add(`${u}-disabled`),(s.hidden||s.showOnHover)&&a.classList.add(`${u}-hidden`),s.cssClass&&a.classList.add(...he(s.cssClass)),s.tooltip&&(a.title=s.tooltip),this._camelPluginName!=="headerButtons"){const g=v("div",{className:`${this._menuCssPrefix}-icon`});a.appendChild(g),s.iconCssClass?g.classList.add(...he(s.iconCssClass)):!s.commandItems&&!s.optionItems&&(g.textContent="◦");const _=v("span",{className:`${this._menuCssPrefix}-content`,textContent:typeof s=="object"&&s.title||""},a);s.textCssClass&&_.classList.add(...he(s.textCssClass))}const f=d>0?"sub-menu":"parent-menu";if(this._bindEventService.bind(a,"click",g=>o.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),((h=this._addonOptions)==null?void 0:h.subMenuOpenByEvent)==="mouseover"&&typeof l=="function"&&this._bindEventService.bind(a,"mouseover",g=>l.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),s.commandItems||s.optionItems){const g=document.createElement("span");g.className="sub-item-chevron",this._addonOptions.subItemChevronClass?g.classList.add(...he(this._addonOptions.subItemChevronClass)):g.textContent="⮞",a.classList.add("slick-submenu-item"),a.appendChild(g)}}return a}}class Zl extends zs{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._currentCell=-1,this._currentRow=-1,this._lastMenuTypeClicked="",this._subMenuParentId=""}createParentMenu(e){var i,s,n,o,l;(i=this.menuElement)==null||i.remove(),this._menuElm=void 0;const t=this.grid.getCellFromEvent(e);if(t){this._currentCell=t.cell??0,this._currentRow=t.row??0;const a=((s=this._addonOptions)==null?void 0:s.commandItems)||[],h=((n=this._addonOptions)==null?void 0:n.optionItems)||[],d={cell:this._currentCell,row:this._currentRow,grid:this.grid};if(this.closeMenu(e,d),typeof e.stopPropagation=="function"&&(this.pubSubService.publish(`on${ti(this._camelPluginName)}BeforeMenuShow`,d),typeof((o=this.addonOptions)==null?void 0:o.onBeforeMenuShow)=="function"&&this.addonOptions.onBeforeMenuShow(e,d)===!1)||(this._menuElm=this.createMenu(a,h),this._menuElm&&(this._menuElm.style.top=`${(e.pageY||0)+5}px`,this._menuElm.style.left=`${e.pageX}px`,this._menuElm.style.display="block",document.body.appendChild(this._menuElm)),this.pubSubService.publish(`on${ti(this._camelPluginName)}AfterMenuShow`,d),typeof((l=this.addonOptions)==null?void 0:l.onAfterMenuShow)=="function"&&this.addonOptions.onAfterMenuShow(e,d)===!1))return}return this._menuElm}createMenu(e,t,i=0,s){var _,C,b,S,E;const n=this.grid.getColumns()[this._currentCell],o=this.grid.getDataItem(this._currentRow),l=(s==null?void 0:s.command)||(s==null?void 0:s.option);let a=i===1&&l?String(l).replace(/\s/g,""):"";a&&(this._subMenuParentId=a),i>1&&(a=this._subMenuParentId);let h=!0,d=!0;if(this._camelPluginName==="contextMenu"){if(h=this.checkIsColumnAllowed(((_=this._addonOptions)==null?void 0:_.optionShownOverColumnIds)??[],n.id),d=this.checkIsColumnAllowed(((C=this._addonOptions)==null?void 0:C.commandShownOverColumnIds)??[],n.id),!n||(!d||!e.length)&&(!h||!t.length)){this.hideMenu();return}}else if(!n||!n.cellMenu||!e.length&&!t.length)return;const c=`${this.menuCssClass} slick-menu-level-${i} ${this.gridUid}`,u=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${i}${this.gridUidSelector}`);if(u){if(u.dataset.subMenuParent===a)return u;this.disposeSubMenus()}const p=document.createElement("div");p.className=c,i>0&&(p.classList.add("slick-submenu"),(b=this.gridOptions)!=null&&b.darkMode&&p.classList.add("slick-dark-mode"),a&&(p.dataset.subMenuParent=a));const m=isNaN(this.addonOptions.maxHeight)?this.addonOptions.maxHeight:`${this.addonOptions.maxHeight??0}px`,f=isNaN(this.addonOptions.maxWidth)?this.addonOptions.maxWidth:`${this.addonOptions.maxWidth??0}px`;m&&(p.style.maxHeight=m),f&&(p.style.maxWidth=f),(S=this.addonOptions)!=null&&S.width&&(p.style.width=Pt((E=this.addonOptions)==null?void 0:E.width));const g=v("button",{ariaLabel:"Close",className:"close",type:"button",textContent:"×",dataset:{dismiss:this._menuCssPrefix}});if(!this.addonOptions.hideOptionSection&&h&&t.length>0){const y=v("div",{className:`${this._menuCssPrefix}-option-list`,role:"menu"},p);this.populateCommandOrOptionTitle("option",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&this.populateCommandOrOptionCloseBtn("option",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("option",this.addonOptions,y,t,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}if(!this.addonOptions.hideCommandSection&&d&&e.length>0){const y=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},p);this.populateCommandOrOptionTitle("command",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&(!h||t.length===0||this.addonOptions.hideOptionSection)&&this.populateCommandOrOptionCloseBtn("command",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("command",this.addonOptions,y,e,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}return i++,p}closeMenu(e,t){var i;if(this.menuElement){if(typeof((i=this.addonOptions)==null?void 0:i.onBeforeMenuClose)=="function"&&this.addonOptions.onBeforeMenuClose(e,t)===!1)return;this.hideMenu()}}hideMenu(){var e;(e=this.menuElement)==null||e.remove(),this._menuElm=null,this.disposeSubMenus()}checkIsColumnAllowed(e,t){return(e==null?void 0:e.length)>0?e.findIndex(i=>i===t)>=0:!0}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.closeMenu(e,{cell:this._currentCell,row:this._currentRow,grid:this.grid})}}handleCloseButtonClicked(e){e.defaultPrevented||this.closeMenu(e,{cell:0,row:0,grid:this.grid})}handleMenuItemMouseOver(e,t,i,s=0){(i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems||i.optionItems?(this.repositionSubMenu(i,t,s,e),this._lastMenuTypeClicked=t):s===0&&this.disposeSubMenus())}handleMenuItemCommandClick(e,t,i,s=0){var n;if((i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&this._currentCell!==void 0&&this._currentRow!==void 0){if(t==="option"&&!this.grid.getEditorLock().commitCurrentEdit())return;const o=this._currentCell,l=this._currentRow,a=this.grid.getColumns()[this._currentCell],h=this.grid.getDataItem(this._currentRow),d=i[t]!==void 0?i[t]:"";if(d!==void 0&&!i[`${t}Items`]){const c={cell:this._currentCell,row:this._currentRow,grid:this.grid,[t]:d,item:i,column:a,dataContext:h},u=t==="command"?"onCommand":"onOptionSelected",p=`${this._camelPluginName}:${u}`;this.pubSubService.publish(p,c),typeof((n=this._addonOptions)==null?void 0:n[u])=="function"&&this._addonOptions[u](e,c),typeof i.action=="function"&&i.action.call(this,e,c),e.defaultPrevented||this.closeMenu(e,{cell:o,row:l,grid:this.grid})}else(i.commandItems||i.optionItems)&&this.repositionSubMenu(i,t,s,e);this._lastMenuTypeClicked=t}}populateCommandOrOptionCloseBtn(e,t,i){this._bindEventService.bind(t,"click",n=>this.handleCloseButtonClicked(n),void 0,"parent-menu");const s=i.querySelector(`.slick-${e}-header`)??v("div",{className:`slick-${e}-header`});s==null||s.appendChild(t),i.appendChild(s),s.classList.add("with-close")}repositionSubMenu(e,t,i,s){(s.target.classList.contains("slick-cell")||this._lastMenuTypeClicked!==t)&&this.disposeSubMenus();const n=this.createMenu((e==null?void 0:e.commandItems)||[],(e==null?void 0:e.optionItems)||[],i+1,e);n&&(n.style.display="block",document.body.appendChild(n),this.repositionMenu(s,n))}repositionMenu(e,t){var n;const i=t==null?void 0:t.classList.contains("slick-submenu"),s=i?e.target.closest(`.${this._menuCssPrefix}-item`):e.target.closest(".slick-cell");if(t&&s){t.style.top="0px",t.style.left="0px";const o=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,l=ge(s);let a=s&&this._camelPluginName==="cellMenu"?l.left:o.pageX,h=s&&this._camelPluginName==="cellMenu"?l.top:o.pageY;i&&this._camelPluginName==="contextMenu"&&(a=l.left,h=l.top);const d=s.offsetWidth||0,c=(t==null?void 0:t.offsetHeight)||0,u=(t==null?void 0:t.offsetWidth)||this._addonOptions.width||0,p=this.gridOptions.rowHeight||0,m=Number(this._addonOptions.autoAdjustDropOffset||0),f=Number(this._addonOptions.autoAlignSideOffset||0);if(this._addonOptions.autoAdjustDrop||this._addonOptions.dropDirection){const{bottom:g,top:_}=Vi(s),C=g+m-p,b=_-m+p;(C<c&&b>C?"top":"bottom")==="top"||this._addonOptions.dropDirection==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),i?h-=c-m-s.clientHeight:h-=c-m):(t.classList.remove("dropup"),t.classList.add("dropdown"),h=h+m,this._camelPluginName==="cellMenu"&&(i?h+=m:h+=p+m))}if(this._addonOptions.autoAlignSide||this._addonOptions.dropSide==="left"){const g=this.grid.getGridPosition();let _=a+Number(u);i&&(_+=s.clientWidth);const C=document.documentElement.clientWidth;(_>=g.width||_>=C?"left":"right")==="left"||!i&&this._addonOptions.dropSide==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),this._camelPluginName==="cellMenu"&&!i?a-=Number(u)-d-f:a-=Number(u)-f):(t.classList.remove("dropleft"),t.classList.add("dropright"),i?a+=f+s.offsetWidth:a+=f)}t.style.top=`${h}px`,t.style.left=`${a}px`}}}class Gc extends Zl{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.pluginName="CellMenu",this._defaults={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:0,autoAlignSideOffset:0,hideMenuOnScroll:!0,subMenuOpenByEvent:"mouseover"},this._camelPluginName="cellMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-cell-menu",this.init(i.gridOptions.cellMenu)}init(e){this._addonOptions={...this._defaults,...e},this.sortMenuItems(this.sharedService.allColumns),this._eventHandler.subscribe(this.grid.onClick,this.handleCellClick.bind(this)),this._addonOptions.hideMenuOnScroll&&this._eventHandler.subscribe(this.grid.onScroll,this.closeMenu.bind(this))}translateCellMenu(){var i;const e=(i=this.sharedService)==null?void 0:i.gridOptions,t=this.sharedService.allColumns;e!=null&&e.enableTranslate&&Array.isArray(t)&&t.forEach(s=>{if(s!=null&&s.cellMenu&&(Array.isArray(s.cellMenu.commandItems)||Array.isArray(s.cellMenu.optionItems))){const n=s.cellMenu.commandItems||[],o=s.cellMenu.optionItems||[];s.cellMenu.commandTitleKey&&(s.cellMenu.commandTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.commandTitleKey,"TEXT_COMMANDS")||s.cellMenu.commandTitle),s.cellMenu.optionTitleKey&&(s.cellMenu.optionTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.optionTitleKey,"TEXT_COMMANDS")||s.cellMenu.optionTitle),this.extensionUtility.translateMenuItemsFromTitleKey(n,"commandItems"),this.extensionUtility.translateMenuItemsFromTitleKey(o,"optionItems")}})}handleCellClick(e,t){var s;this.disposeAllMenus();const i=this.grid.getCellFromEvent(e);if(i){const n=this.grid.getDataItem(i.row),o=this.grid.getColumns()[i.cell];o!=null&&o.cellMenu&&!((s=this.gridOptions.cellMenu)!=null&&s.activateCellOnMenuClick)&&e.preventDefault(),this._addonOptions={...this._addonOptions,...o.cellMenu};const l=t||{};if(l.column=o,l.dataContext=n,l.grid=this.grid,!this.extensionUtility.runOverrideFunctionWhenExists(this._addonOptions.menuUsabilityOverride,l))return;this._menuElm=this.createParentMenu(e),this._menuElm&&(this.repositionMenu(e,this._menuElm),this._menuElm.ariaExpanded="true",this._menuElm.style.display="block",this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode")),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}}sortMenuItems(e){e.forEach(t=>{var i,s;(i=t==null?void 0:t.cellMenu)!=null&&i.commandItems&&this.extensionUtility.sortItems(t.cellMenu.commandItems||[],"positionOrder"),(s=t==null?void 0:t.cellMenu)!=null&&s.optionItems&&this.extensionUtility.sortItems(t.cellMenu.optionItems||[],"positionOrder")})}}class Uc{constructor(e,t){this.grid=e,this.pluginName="CellRangeDecorator",this._defaults={selectionCssClass:"slick-range-decorator",selectionCss:{border:"2px dashed red",zIndex:"9999"},offset:{top:-1,left:-1,height:-2,width:-2}},this._options=Zt(this._defaults,t)}get addonOptions(){return this._options}get addonElement(){return this._elem}destroy(){this.hide()}init(){}hide(){var e;(e=this._elem)==null||e.remove(),this._elem=null}show(e){var s,n;this._elem||(this._elem=v("div",{className:this._options.selectionCssClass}),Object.keys(this._options.selectionCss).forEach(o=>{this._elem.style[o]=this._options.selectionCss[o]}),this._elem.style.position="absolute",(s=this.grid.getActiveCanvasNode())==null||s.appendChild(this._elem));const t=this.grid.getCellNodeBox(e.fromRow,e.fromCell),i=this.grid.getCellNodeBox(e.toRow,e.toCell);return t&&i&&((n=this._options)!=null&&n.offset)&&(this._elem.style.top=`${t.top+this._options.offset.top}px`,this._elem.style.left=`${t.left+this._options.offset.left}px`,this._elem.style.height=`${i.bottom-t.top+this._options.offset.height}px`,this._elem.style.width=`${i.right-t.left+this._options.offset.width}px`),this._elem}}class mr{constructor(e){this.pluginName="CellRangeSelector",this._currentlySelectedRange=null,this._canvas=null,this._dragging=!1,this._gridUid="",this._columnOffset=0,this._rowOffset=0,this._isRightCanvas=!1,this._isBottomCanvas=!1,this._xDelayForNextCell=0,this._yDelayForNextCell=0,this._viewportHeight=0,this._viewportWidth=0,this._isRowMoveRegistered=!1,this._scrollLeft=0,this._scrollTop=0,this._defaults={autoScroll:!0,minIntervalToShowNextCell:30,maxIntervalToShowNextCell:600,accelerateInterval:5,selectionCss:{border:"2px dashed blue"}},this.onBeforeCellRangeSelected=new P("onBeforeCellRangeSelected"),this.onCellRangeSelecting=new P("onCellRangeSelecting"),this.onCellRangeSelected=new P("onCellRangeSelected"),this._eventHandler=new pe,this._options=Zt(this._defaults,e)}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridUid(){var e;return this._gridUid||(((e=this._grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}init(e){this._grid=e,this._decorator=this._options.cellDecorator||new Uc(e,this._options),this._canvas=e.getCanvasNode(),this._gridOptions=e.getOptions(),this._gridUid=e.getUID();const t=e.getPubSubService();t&&T.addSlickEventPubSubWhenDefined(t,this),this._eventHandler.subscribe(this._grid.onDrag,this.handleDrag.bind(this)).subscribe(this._grid.onDragInit,this.handleDragInit.bind(this)).subscribe(this._grid.onDragStart,this.handleDragStart.bind(this)).subscribe(this._grid.onDragEnd,this.handleDragEnd.bind(this)).subscribe(this._grid.onScroll,this.handleScroll.bind(this))}destroy(){this.dispose()}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),ee(this._activeCanvas),ee(this._canvas),(t=this._decorator)==null||t.destroy(),this.stopIntervalTimer()}getCellDecorator(){return this._decorator}getCurrentRange(){return this._currentlySelectedRange}getMouseOffsetViewport(e,t){var m;const i=((m=e==null?void 0:e.touches)==null?void 0:m[0])??e,s=this._activeViewport.scrollLeft,n=this._activeViewport.scrollTop,o=s+this._viewportWidth,l=n+this._viewportHeight,a=ge(this._activeViewport),h=a.left,d=a.top,c=h+this._viewportWidth,u=d+this._viewportHeight,p={e,dd:t,viewport:{left:s,top:n,right:o,bottom:l,offset:{left:h,top:d,right:c,bottom:u}},offset:{x:0,y:0},isOutsideViewport:!1};return i.pageX<h?p.offset.x=i.pageX-h:i.pageX>c&&(p.offset.x=i.pageX-c),i.pageY<d?p.offset.y=d-i.pageY:i.pageY>u&&(p.offset.y=u-i.pageY),p.isOutsideViewport=!!p.offset.x||!!p.offset.y,p}stopIntervalTimer(){this._autoScrollTimerId&&(window.clearInterval(this._autoScrollTimerId),this._autoScrollTimerId=void 0)}handleDrag(e,t){if(!this._dragging&&!this._gridOptions.enableRowMoveManager)return;this._gridOptions.enableRowMoveManager||e.stopImmediatePropagation();const i=e.getNativeEvent();if(this.addonOptions.autoScroll&&(this._draggingMouseOffset=this.getMouseOffsetViewport(i,t),this._draggingMouseOffset.isOutsideViewport))return this.handleDragOutsideViewport();this.stopIntervalTimer(),this.handleDragTo(i,t)}handleDragOutsideViewport(){if(this._xDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.x)*this.addonOptions.accelerateInterval,this._yDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.y)*this.addonOptions.accelerateInterval,!this._autoScrollTimerId){let e=0,t=0;this._autoScrollTimerId=window.setInterval(()=>{let i=!1,s=!1;this._draggingMouseOffset.offset.x?(e+=this.addonOptions.minIntervalToShowNextCell,i=e>=this._xDelayForNextCell):e=0,this._draggingMouseOffset.offset.y?(t+=this.addonOptions.minIntervalToShowNextCell,s=t>=this._yDelayForNextCell):t=0,(i||s)&&(i&&(e=0),s&&(t=0),this.handleDragToNewPosition(i,s))},this.addonOptions.minIntervalToShowNextCell)}}handleDragToNewPosition(e,t){let i=this._draggingMouseOffset.e.pageX,s=this._draggingMouseOffset.e.pageY;const n=this._draggingMouseOffset.offset.x,o=this._draggingMouseOffset.offset.y,l=this._draggingMouseOffset.viewport.offset;e&&n&&(n>0?i=l.right+this._moveDistanceForOneCell.x:i=l.left-this._moveDistanceForOneCell.x),t&&o&&(o>0?s=l.top-this._moveDistanceForOneCell.y:s=l.bottom+this._moveDistanceForOneCell.y),this.handleDragTo({pageX:i,pageY:s},this._draggingMouseOffset.dd)}handleDragTo(e,t){var n;const i=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,s=this._grid.getCellFromPoint(i.pageX-ge(this._activeCanvas).left+this._columnOffset,i.pageY-ge(this._activeCanvas).top+this._rowOffset);if(s!==void 0){if(this._gridOptions.frozenColumn>=0&&(!this._isRightCanvas&&s.cell>this._gridOptions.frozenColumn||this._isRightCanvas&&s.cell<=this._gridOptions.frozenColumn)||this._gridOptions.frozenRow>=0&&(!this._isBottomCanvas&&s.row>=this._gridOptions.frozenRow||this._isBottomCanvas&&s.row<this._gridOptions.frozenRow))return;if(this.addonOptions.autoScroll&&this._draggingMouseOffset){const o=this._grid.getCellNodeBox(s.row,s.cell);if(o){const l=this._draggingMouseOffset.viewport;(o.left<l.left||o.right>l.right||o.top<l.top||o.bottom>l.bottom)&&this._grid.scrollCellIntoView(s.row,s.cell)}}if(!this._grid.canCellBeSelected(s.row,s.cell))return;if(t!=null&&t.range){t.range.end=s;const o=new tt(t.range.start.row??0,t.range.start.cell??0,s.row,s.cell);this._decorator.show(o),this.onCellRangeSelecting.notify({range:o})}}}handleDragEnd(e,t){this._decorator.hide(),this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),this.stopIntervalTimer(),this.onCellRangeSelected.notify({range:new tt(t.range.start.row??0,t.range.start.cell??0,t.range.end.row,t.range.end.cell)}))}handleDragInit(e){var n,o;this._activeCanvas=this._grid.getActiveCanvasNode(e),this._activeViewport=this._grid.getActiveViewportNode(e);const t=this._grid.getDisplayedScrollbarDimensions();if(this._viewportWidth=this._activeViewport.offsetWidth-t.width,this._viewportHeight=this._activeViewport.offsetHeight-t.height,this._moveDistanceForOneCell={x:this._grid.getAbsoluteColumnMinWidth()/2,y:this._gridOptions.rowHeight/2},this._rowOffset=0,this._columnOffset=0,this._isBottomCanvas=this._activeCanvas.classList.contains("grid-canvas-bottom"),this._gridOptions.frozenRow>-1&&this._isBottomCanvas){const l=`${this.gridUidSelector} .grid-canvas-${this._gridOptions.frozenBottom?"bottom":"top"}`;this._rowOffset=((n=document.querySelector(l))==null?void 0:n.clientHeight)??0}this._isRightCanvas=this._activeCanvas.classList.contains("grid-canvas-right"),this._gridOptions.frozenColumn>-1&&this._isRightCanvas&&(this._columnOffset=((o=document.querySelector(`${this.gridUidSelector} .grid-canvas-left`))==null?void 0:o.clientWidth)??0);const i=this._grid.getCellFromEvent(e),s=this._grid.getActiveCell();(!this._grid.getEditorLock().isActive()||!(s&&i&&s.row===i.row&&s.cell===i.cell))&&(e.stopImmediatePropagation(),e.preventDefault())}handleDragStart(e,t){const i=this._grid.getCellFromEvent(e);if(i&&this.onBeforeCellRangeSelected.notify(i).getReturnValue()!==!1&&this._grid.canCellBeSelected(i.row,i.cell)&&(this._dragging=!0,e.stopImmediatePropagation()),!this._dragging)return;this._grid.focus();const s=ge(this._canvas);let n=t.startX-s.left;this._gridOptions.frozenColumn>=0&&this._isRightCanvas&&(n+=this._scrollLeft);let o=t.startY-s.top;this._gridOptions.frozenRow>=0&&this._isBottomCanvas&&(o+=this._scrollTop);const l=this._grid.getCellFromPoint(n,o);return t.range={start:l,end:{}},this._currentlySelectedRange=t.range,this._decorator.show(new tt(l.row,l.cell))}handleScroll(e,t){this._scrollTop=t.scrollTop,this._scrollLeft=t.scrollLeft}}class jc{constructor(e){this.pluginName="CellSelectionModel",this._cachedPageRowCount=0,this._prevKeyDown="",this._ranges=[],this._defaults={selectActiveCell:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._selector=e===void 0||e.cellRangeSelector===void 0?new mr({selectionCss:{border:"2px solid black"}}):e.cellRangeSelector,this._addonOptions=e}get addonOptions(){return this._addonOptions}get cellRangeSelector(){return this._selector}get eventHandler(){return this._eventHandler}init(e){this._grid=e,(this._addonOptions===void 0||this._addonOptions.cellRangeSelector===void 0)&&(this._selector=new mr({selectionCss:{border:`2px solid ${this._grid.getOptions().darkMode?"white":"black"}`}})),e.hasDataView()&&(this._dataView=e.getData()),this._addonOptions={...this._defaults,...this._addonOptions};const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)).subscribe(this._selector.onBeforeCellRangeSelected,this.handleBeforeCellRangeSelected.bind(this)).subscribe(this._selector.onCellRangeSelected,this.handleCellRangeSelected.bind(this)),e.registerPlugin(this._selector)}destroy(){this.dispose()}dispose(){var e,t;this._selector&&(this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this))),this._eventHandler.unsubscribeAll(),(e=this._grid)==null||e.unregisterPlugin(this._selector),(t=this._selector)==null||t.dispose()}getSelectedRanges(){return this._ranges}rangesAreEqual(e,t){let i=e.length!==t.length;if(!i){for(let s=0;s<e.length;s++)if(e[s].fromCell!==t[s].fromCell||e[s].fromRow!==t[s].fromRow||e[s].toCell!==t[s].toCell||e[s].toRow!==t[s].toRow){i=!0;break}}return!i}refreshSelections(){this.setSelectedRanges(this.getSelectedRanges())}removeInvalidRanges(e){const t=[];for(let i=0;i<e.length;i++){const s=e[i];this._grid.canCellBeSelected(s.fromRow,s.fromCell)&&this._grid.canCellBeSelected(s.toRow,s.toCell)&&t.push(s)}return t}resetPageRowCount(){this._cachedPageRowCount=0}setSelectedRanges(e,t="SlickCellSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;const i=!this.rangesAreEqual(this._ranges,e);if(this._ranges=this.removeInvalidRanges(e),i){const s=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,s)}}handleActiveCellChange(e,t){var n,o;this._prevSelectedRow=void 0;const i=q(t.cell),s=q(t.row);(n=this._addonOptions)!=null&&n.selectActiveCell&&s&&i?this.setSelectedRanges([new tt(t.row,t.cell)]):(!((o=this._addonOptions)!=null&&o.selectActiveCell)||!s&&!i)&&this.setSelectedRanges([])}handleBeforeCellRangeSelected(e){const t=this._grid.getCellFromEvent(e),i=this._grid.getActiveCell();if(this._grid.getEditorLock().isActive()&&i&&t&&i.row===t.row&&i.cell===t.cell)return e.stopPropagation(),!1}handleCellRangeSelected(e,t){this._grid.setActiveCell(t.range.fromRow,t.range.fromCell,!1,!1,!0),this.setSelectedRanges([t.range])}isKeyAllowed(e,t){return["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","PageDown","PageUp","Home","End",...t?[]:["a","A"]].some(i=>i===e)}handleKeyDown(e){var l,a;let t,i;const s=this._grid.getColumns().length,n=this._grid.getActiveCell();let o=0;if(this._dataView&&"getPagingInfo"in this._dataView?o=((l=this._dataView)==null?void 0:l.getPagingInfo().pageSize)||this._dataView.getLength():o=this._grid.getDataLength(),n&&(e.shiftKey||e.ctrlKey)&&!e.altKey&&this.isKeyAllowed(e.key,e.shiftKey)&&(t=this.getSelectedRanges().slice(),t.length||t.push(new tt(n.row,n.cell)),i=t.pop(),typeof(i==null?void 0:i.contains)=="function")){i.contains(n.row,n.cell)||(i=new tt(n.row,n.cell));let h=i.toRow-i.fromRow,d=i.toCell-i.fromCell,c,u=0;e.ctrlKey&&((a=e.key)==null?void 0:a.toLowerCase())==="a"&&(this._grid.setActiveCell(0,0,!1,!1,!0),n.row=0,n.cell=0,c=s-1,u=o-1);const p=n.row===i.fromRow?1:-1,m=n.cell===i.fromCell?1:-1,f=e.key.startsWith("Arrow");f&&!e.ctrlKey?(e.key==="ArrowLeft"?d-=m:e.key==="ArrowRight"?d+=m:e.key==="ArrowUp"?h-=p:e.key==="ArrowDown"&&(h+=p),u=n.row+p*h):(this._cachedPageRowCount<1&&(this._cachedPageRowCount=this._grid.getViewportRowCount()),this._prevSelectedRow===void 0&&(this._prevSelectedRow=n.row),!e.ctrlKey&&e.shiftKey&&e.key==="Home"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowLeft"?(c=0,u=n.row):!e.ctrlKey&&e.shiftKey&&e.key==="End"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowRight"?(c=s-1,u=n.row):e.ctrlKey&&e.shiftKey&&e.key==="ArrowUp"?u=0:e.ctrlKey&&e.shiftKey&&e.key==="ArrowDown"?u=o-1:e.ctrlKey&&e.shiftKey&&e.key==="Home"?(c=0,u=0):e.ctrlKey&&e.shiftKey&&e.key==="End"?(c=s-1,u=o-1):e.key==="PageUp"?(this._prevSelectedRow>=0&&(u=this._prevSelectedRow-this._cachedPageRowCount),u<0&&(u=0)):e.key==="PageDown"&&(this._prevSelectedRow<=o-1&&(u=this._prevSelectedRow+this._cachedPageRowCount),u>o-1&&(u=o-1)),this._prevSelectedRow=u),c??(c=n.cell+m*d);const g=new tt(n.row,n.cell,u,c);if(this.removeInvalidRanges([g]).length){t.push(g);const _=p>0?g.toRow:g.fromRow,C=m>0?g.toCell:g.fromCell;f?(this._grid.scrollRowIntoView(_),this._grid.scrollCellIntoView(_,C,!1)):(this._grid.scrollRowIntoView(u),this._grid.scrollCellIntoView(u,C,!1))}else t.push(i);this.setSelectedRanges(t),e.preventDefault(),e.stopPropagation(),this._prevKeyDown=e.key}}}class fr{constructor(e){this.pluginName="RowSelectionModel",this._inHandler=!1,this._ranges=[],this._defaults={autoScrollWhenDrag:!0,cellRangeSelector:void 0,dragToSelect:!1,selectActiveRow:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._options={...this._defaults,...e}}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return(e=this._grid)==null?void 0:e.getOptions()}init(e){this._grid=e,this._options={...this._defaults,...this._options},this._selector=this.addonOptions.cellRangeSelector;const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),!this._selector&&this._options.dragToSelect&&(this._selector=new mr({selectionCss:{border:"none"},autoScroll:this._options.autoScrollWhenDrag}),this.addonOptions.cellRangeSelector=this._selector),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onClick,this.handleClick.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)),this._selector&&(this._grid.registerPlugin(this._selector),this._selector.onCellRangeSelecting.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.subscribe(this.handleBeforeCellRangeSelected.bind(this)))}destroy(){this.dispose()}dispose(){this._eventHandler.unsubscribeAll(),this.disposeSelector()}disposeSelector(){var e,t;this._selector&&(this._selector.onCellRangeSelecting.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._grid.unregisterPlugin(this._selector),(e=this._selector)==null||e.destroy(),(t=this._selector)==null||t.dispose())}getCellRangeSelector(){return this._selector}getSelectedRanges(){return this._ranges}getSelectedRows(){return this.rangesToRows(this._ranges)}refreshSelections(){this.setSelectedRows(this.getSelectedRows())}setSelectedRows(e){this.setSelectedRanges(this.rowsToRanges(e),"SlickRowSelectionModel.setSelectedRows")}setSelectedRanges(e,t="SlickRowSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;this._ranges=e;const i=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,i)}getRowsRange(e,t){let i;const s=[];for(i=e;i<=t;i++)s.push(i);for(i=t;i<e;i++)s.push(i);return s}handleBeforeCellRangeSelected(e,t){let i=!1;if(this.gridOptions.enableRowMoveManager&&(i=this.isHandlerColumn(t.cell)??!1),this._grid.getEditorLock().isActive()||i)return e.stopPropagation(),!1;this._grid.setActiveCell(t.row,t.cell)}handleCellRangeSelected(e,t){if(!this.gridOptions.multiSelect||!this.addonOptions.selectActiveRow)return!1;this.setSelectedRanges([new tt(t.range.fromRow,0,t.range.toRow,this._grid.getColumns().length-1)])}handleActiveCellChange(e,t){this._options.selectActiveRow&&t.row!==null&&this.setSelectedRanges([new tt(t.row,0,t.row,this._grid.getColumns().length-1)])}handleClick(e){const t=this._grid.getCellFromEvent(e);if(!t||!this._grid.canCellBeActive(t.row,t.cell)||!this.gridOptions.multiSelect||!e.ctrlKey&&!e.shiftKey&&!e.metaKey)return!1;let i=this.rangesToRows(this._ranges);const s=i.indexOf(t.row);if(s===-1&&(e.ctrlKey||e.metaKey))i.push(t.row),this._grid.setActiveCell(t.row,t.cell);else if(s!==-1&&(e.ctrlKey||e.metaKey))i=i.filter(o=>o!==t.row),this._grid.setActiveCell(t.row,t.cell);else if(i.length&&e.shiftKey){const o=i.pop(),l=Math.min(t.row,o),a=Math.max(t.row,o);i=[];for(let h=l;h<=a;h++)h!==o&&i.push(h);i.push(o),this._grid.setActiveCell(t.row,t.cell)}const n=this.rowsToRanges(i);return this.setSelectedRanges(n),e.stopImmediatePropagation(),!0}handleKeyDown(e){const t=this._grid.getActiveCell();if(this.gridOptions.multiSelect&&t&&e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){let i=this.getSelectedRows();i.sort((l,a)=>l-a),i.length||(i=[t.row]);let s,n=i[0],o=i[i.length-1];if(e.key==="ArrowDown"?s=t.row<o||n===o?++o:++n:s=t.row<o?--o:--n,s>=0&&s<this._grid.getDataLength()){this._grid.scrollRowIntoView(s);const l=this.rowsToRanges(this.getRowsRange(n,o));this.setSelectedRanges(l)}e.preventDefault(),e.stopPropagation()}}isHandlerColumn(e){const i=this._grid.getColumns()[e].behavior||"";return/move|selectAndMove/.test(i)}rangesToRows(e){const t=[];for(let i=0;i<e.length;i++)for(let s=e[i].fromRow;s<=e[i].toRow;s++)t.push(s);return t}rowsToRanges(e){const t=[],i=this._grid.getColumns().length-1;return e.forEach(s=>t.push(new tt(s,0,s,i))),t}}const Jl="mdi-icon-check",ea="mdi-icon-uncheck";class ta{constructor(e,t){this.pubSubService=e,this.pluginName="CheckboxSelectColumn",this._defaults={columnId:"_checkbox_selector",cssClass:null,field:"_checkbox_selector",hideSelectAllCheckbox:!1,name:"",toolTip:"Select/Deselect All",width:30,reorderable:!1,applySelectOnAllPages:!0,hideInColumnTitleRow:!1,hideInFilterHeaderRow:!0},this._addonOptions=this._defaults,this._checkboxColumnCellIndex=null,this._isSelectAllChecked=!1,this._isUsingDataView=!1,this._selectedRowsLookup={},this._selectAll_UID=this.createUID(),this._bindEventService=new Pe,this._eventHandler=new pe,this._addonOptions={...this._defaults,...t}}get addonOptions(){return this._addonOptions}get headerRowNode(){return this._headerRowNode}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get selectAllUid(){return this._selectAll_UID}set selectedRowsLookup(e){this._selectedRowsLookup=e}init(e){this._grid=e,this._isUsingDataView=!Array.isArray(e.getData()),this._isUsingDataView&&(this._dataView=e.getData()),this.gridOptions.backendServiceApi&&(this._addonOptions.applySelectOnAllPages=!1),this._eventHandler.subscribe(e.onSelectedRowsChanged,this.handleSelectedRowsChanged.bind(this)).subscribe(e.onClick,this.handleClick.bind(this)).subscribe(e.onKeyDown,this.handleKeyDown.bind(this)),this._isUsingDataView&&this._dataView&&(this._eventHandler.subscribe(e.onAfterSetColumns,this.handleDataViewSelectedIdsChanged.bind(this)),this._addonOptions.applySelectOnAllPages&&this._eventHandler.subscribe(this._dataView.onSelectedRowIdsChanged,this.handleDataViewSelectedIdsChanged.bind(this)).subscribe(this._dataView.onPagingInfoChanged,this.handleDataViewSelectedIdsChanged.bind(this))),this._addonOptions.hideInFilterHeaderRow||this.addCheckboxToFilterHeaderRow(e),this._addonOptions.hideInColumnTitleRow||this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this)),(!this._rowSelectionModel||!this._grid.getSelectionModel())&&(this._rowSelectionModel=new fr(this.gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionModel)),this.gridOptions.preselectedRows&&this._rowSelectionModel&&this._grid.getSelectionModel()&&window.setTimeout(()=>this.selectRows(this.gridOptions.preselectedRows||[])),typeof this._addonOptions.selectableOverride=="function"&&this.selectableOverride(this._addonOptions.selectableOverride)}dispose(){this._bindEventService.unbindAll(),this._eventHandler.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.checkboxSelector},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=((i=t==null?void 0:t.checkboxSelector)==null?void 0:i.columnIndexPosition)??0;n>0?e.splice(n,0,s):e.unshift(s),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getOptions(){return this._addonOptions}setOptions(e){var t;if(this._addonOptions={...this._addonOptions,...e},this._addonOptions.hideSelectAllCheckbox)this.hideSelectAllFromColumnHeaderTitleRow(),this.hideSelectAllFromColumnHeaderFilterRow();else if(this._addonOptions.hideInColumnTitleRow?(this.hideSelectAllFromColumnHeaderTitleRow(),this._addonOptions.name&&this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name,"")):(this.renderSelectAllCheckbox(this._isSelectAllChecked),this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this))),this._addonOptions.hideInFilterHeaderRow)this.hideSelectAllFromColumnHeaderFilterRow();else{const i=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");if(i){i.style.display="flex",i.ariaChecked=String(this._isSelectAllChecked);const s=i.querySelector('input[type="checkbox"]');s&&(s.ariaChecked=String(this._isSelectAllChecked),s.checked=this._isSelectAllChecked)}}}deSelectRows(e){const t=[];for(const i of e)this._selectedRowsLookup[i]&&(t[t.length]=i);this._grid.setSelectedRows(this._grid.getSelectedRows().filter(i=>t.indexOf(i)<0),"SlickCheckboxSelectColumn.deSelectRows")}selectRows(e){var s;const t=[];for(const n of e)this._selectedRowsLookup[n]&&(t[t.length]=n);const i=(s=this._grid.getSelectedRows())==null?void 0:s.concat(t);this._grid.setSelectedRows(i)}createCheckboxElement(e,t=!1){var o;const i=(o=this.gridOptions)!=null&&o.preventDocumentFragmentUsage?document.createElement("span"):new DocumentFragment,s=v("label",{className:"checkbox-selector-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"});return n.appendChild(v("input",{id:e,type:"checkbox",checked:t,ariaChecked:String(t)})),n.appendChild(v("div",{className:`mdi ${t?Jl:ea}`})),s.appendChild(n),i.appendChild(s),i}getColumnDefinition(){var t;const e=String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId);return{id:e,name:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?this._addonOptions.name||"":this.createCheckboxElement(`header-selector${this._selectAll_UID}`),toolTip:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?"":this._addonOptions.toolTip,field:e,cssClass:this._addonOptions.cssClass,excludeFromExport:!0,excludeFromColumnPicker:!0,excludeFromGridMenu:!0,excludeFromQuery:!0,excludeFromHeaderMenu:!0,hideSelectAllCheckbox:this._addonOptions.hideSelectAllCheckbox,resizable:!1,reorderable:this._addonOptions.reorderable,sortable:!1,width:this._addonOptions.width||30,maxWidth:this._addonOptions.width||30,formatter:this.checkboxSelectionFormatter.bind(this)}}hideSelectAllFromColumnHeaderTitleRow(){this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name||"","")}hideSelectAllFromColumnHeaderFilterRow(){var t;const e=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");e&&(e.style.display="none")}toggleRowSelection(e){this.toggleRowSelectionWithEvent(null,e)}toggleRowSelectionWithEvent(e,t){const i=this._grid.getDataItem(t);if(!this.checkSelectableOverride(t,i,this._grid))return;const s=this._grid.getSelectedRows();typeof this._addonOptions.onRowToggleStart=="function"&&this._addonOptions.onRowToggleStart(e,{row:t,previousSelectedRows:s});const n=this._selectedRowsLookup[t]?this._grid.getSelectedRows().filter(o=>o!==t):this._grid.getSelectedRows().concat(t);this._grid.setSelectedRows(n,"click.toggle"),this._grid.setActiveCell(t,this.getCheckboxColumnCellIndex()),this._addonOptions.onRowToggleEnd&&this._addonOptions.onRowToggleEnd(e,{row:t,previousSelectedRows:s})}selectableOverride(e){this._selectableOverride=e}addCheckboxToFilterHeaderRow(e){this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{if(i.column.field===(this._addonOptions.field||"_checkbox_selector")){ee(i.node);const s=`header-filter-selector${this._selectAll_UID}`,n=v("label",{id:"filter-checkbox-selectall-container",htmlFor:s}),o=v("div",{className:"icon-checkbox-container"});o.appendChild(v("input",{id:s,type:"checkbox",ariaChecked:"false"})),o.appendChild(v("div",{className:"mdi mdi-icon-uncheck"})),n.appendChild(o),i.node.appendChild(n),this._headerRowNode=i.node,this._headerRowNode.classList.add("checkbox-header"),this._bindEventService.bind(n,"click",l=>this.handleHeaderClick(l,i))}})}checkboxSelectionFormatter(e,t,i,s,n,o){if(n&&this.checkSelectableOverride(e,n,o)){const l=this.createUID()+e;return this.createCheckboxElement(`selector${l}`,!!this._selectedRowsLookup[e])}return null}checkSelectableOverride(e,t,i){return typeof this._selectableOverride=="function"?this._selectableOverride(e,t,i):!0}createUID(){return Math.round(1e7*Math.random())}getCheckboxColumnCellIndex(){if(this._checkboxColumnCellIndex===null){this._checkboxColumnCellIndex=0;const e=this._grid.getColumns();for(let t=0;t<e.length;t++)e[t].id===this._addonOptions.columnId&&(this._checkboxColumnCellIndex=t)}return this._checkboxColumnCellIndex}handleDataViewSelectedIdsChanged(){var s,n;const e=this._dataView.getAllSelectedFilteredIds(),t=this._dataView.getFilteredItems();let i=0;if(typeof this._selectableOverride=="function"&&e.length>0)for(let o=0;o<this._dataView.getItemCount();o++){const l=this._dataView.getItemByIdx(o),a=this._dataView.getIdPropertyName(),h=l[a];t.findIndex(c=>c[a]===h)>=0&&!this.checkSelectableOverride(o,l,this._grid)&&i++}if(this._isSelectAllChecked=e.length+i>=t.length,!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow){const o=(s=this.headerRowNode)==null?void 0:s.querySelector(`#header-filter-selector${this._selectAll_UID}`),l=(n=this.headerRowNode)==null?void 0:n.querySelector(".icon-checkbox-container .mdi");o&&(o.ariaChecked=String(this._isSelectAllChecked),o.checked=this._isSelectAllChecked),l&&(l.className=`mdi ${this._isSelectAllChecked?Jl:ea}`)}}handleClick(e,t){if(this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}this.toggleRowSelectionWithEvent(e,t.row),e.stopPropagation(),e.stopImmediatePropagation()}}handleHeaderClick(e,t){if(t.column.id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}let i=e.target.checked;const s=i?"click.selectAll":"click.unselectAll",n=this._grid.getSelectedRows();this._addonOptions.onSelectAllToggleStart&&this._addonOptions.onSelectAllToggleStart(e,{previousSelectedRows:n,caller:s});let o=[];if(i){const l=[];for(let a=0;a<this._grid.getDataLength();a++){const h=this._grid.getDataItem(a);!h.__group&&!h.__groupTotals&&this.checkSelectableOverride(a,h,this._grid)&&l.push(a)}o=l,i=!0}if(this._isUsingDataView&&this._dataView&&this._addonOptions.applySelectOnAllPages){const l=[],a=this._dataView.getFilteredItems();for(let h=0;h<a.length;h++){const d=a[h];this.checkSelectableOverride(h,d,this._grid)&&l.push(d[this._dataView.getIdPropertyName()])}this._dataView.setSelectedIds(l,{isRowBeingAdded:i})}this._grid.setSelectedRows(o,s),this._addonOptions.onSelectAllToggleEnd&&this._addonOptions.onSelectAllToggleEnd(e,{rows:o,previousSelectedRows:n,caller:s}),e.stopPropagation(),e.stopImmediatePropagation()}}handleKeyDown(e,t){e.key===" "&&this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&((!this._grid.getEditorLock().isActive()||this._grid.getEditorLock().commitCurrentEdit())&&this.toggleRowSelectionWithEvent(e,t.row),e.preventDefault(),e.stopImmediatePropagation())}handleSelectedRowsChanged(){var a;const e=this._grid.getSelectedRows(),t={};let i=0,s=0,n=0,o=0;if(typeof this._selectableOverride=="function")for(n=0;n<this._grid.getDataLength();n++){const h=this._grid.getDataItem(n);this.checkSelectableOverride(s,h,this._grid)||o++}const l=[];for(s=0;s<e.length;s++){i=e[s];const h=this._grid.getDataItem(i);this.checkSelectableOverride(s,h,this._grid)?(t[i]=!0,t[i]!==this._selectedRowsLookup[i]&&(this._grid.invalidateRow(i),delete this._selectedRowsLookup[i])):l.push(i)}if(typeof this._selectedRowsLookup=="object"&&Object.keys(this._selectedRowsLookup).forEach(h=>{h!==void 0&&this._grid.invalidateRow(+h)}),this._selectedRowsLookup=t,this._grid.render(),this._isSelectAllChecked=((e==null?void 0:e.length)??0)+o>=this._grid.getDataLength(),(!this._isUsingDataView||!this._addonOptions.applySelectOnAllPages)&&(!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow)){const h=(a=this.headerRowNode)==null?void 0:a.querySelector(`#header-filter-selector${this._selectAll_UID}`);h&&(h.ariaChecked=String(this._isSelectAllChecked),h.checked=this._isSelectAllChecked)}if(l.length>0){for(const h of l){const d=e.indexOf(h);e.splice(d,1)}this._grid.setSelectedRows(e,"click.toggle")}}renderSelectAllCheckbox(e){const t=this._grid.updateColumnHeader(this._addonOptions.columnId||"",this.createCheckboxElement(`header-selector${this._selectAll_UID}`,!!e),this._addonOptions.toolTip);t==null||t.classList.add("header-checkbox-selectall")}}class ia extends zs{constructor(e,t,i,s,n){var o;super(e,i,s),this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this._areVisibleColumnDifferent=!1,this._columns=[],this._columnCheckboxes=[],this._commandMenuElm=null,this._headerElm=null,this._isMenuOpen=!1,this._subMenuParentId="",this._defaults={dropSide:"left",showButton:!0,hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",marginBottom:15,menuWidth:18,minHeight:150,contentMinWidth:0,resizeOnShowHeaderRow:!1,syncResizeTitle:"Synchronous resize",subMenuOpenByEvent:"mouseover",headerColumnValueExtractor:l=>_t(l.columnPickerLabel||l.name||"","innerHTML")},this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-grid-menu",this._camelPluginName="gridMenu",this._columns=this.sharedService.allColumns??[],this._gridUid=((o=this.grid)==null?void 0:o.getUID())??"",this.onAfterMenuShow=new P("onAfterMenuShow"),this.onBeforeMenuShow=new P("onBeforeMenuShow"),this.onMenuClose=new P("onMenuClose"),this.onCommand=new P("onCommand"),this.onColumnsChanged=new P("onColumnsChanged"),this.initEventHandlers(),this.init()}get addonOptions(){return this._addonOptions||{}}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())||{}}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}initEventHandlers(){this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,e=>this.hideMenu(e)),this._eventHandler.subscribe(this.grid.onBeforeDestroy,this.dispose.bind(this)),this._eventHandler.subscribe(this.grid.onSetOptions,(e,t)=>{if(t&&t.optionsBefore&&t.optionsAfter){const i=t.optionsBefore.frozenColumn>=0&&t.optionsAfter.frozenColumn===-1,s=t.optionsBefore.frozenColumn===-1&&t.optionsAfter.frozenColumn>=0;(i||s)&&this.recreateGridMenu()}})}init(){this._gridUid=this.grid.getUID()??"",T.addSlickEventPubSubWhenDefined(this.pubSubService,this),this._userOriginalGridMenu={...this.sharedService.gridOptions.gridMenu},this._addonOptions={...this._defaults,...this.getDefaultGridMenuOptions(),...this.sharedService.gridOptions.gridMenu},this.sharedService.gridOptions.gridMenu=this._addonOptions;const e=this._userOriginalGridMenu.commandItems,t=this._userOriginalGridMenu&&Array.isArray(e)?e:[];this._addonOptions.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(this._addonOptions.commandItems||[],"commandItems"),this.extensionUtility.sortItems(this._addonOptions.commandItems,"positionOrder"),this.createGridMenu()}dispose(){this.deleteMenu(),super.dispose()}deleteMenu(){var e,t;this._bindEventService.unbindAll(),(e=this._menuElm)==null||e.remove(),this._menuElm=null,(t=this._gridMenuButtonElm)==null||t.remove(),this._headerElm&&(this._headerElm.style.width="100%")}createColumnPickerContainer(){this._menuElm&&(oa.call(this,this._menuElm),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(this._menuElm,"click",la.bind(this),void 0,"parent-menu"))}createGridMenu(){var n,o;const e=this._gridUid?`.${this._gridUid}`:"",t=((n=this._addonOptions)==null?void 0:n.menuWidth)||this._defaults.menuWidth,i=this.gridOptions.hasOwnProperty("frozenColumn")&&this.gridOptions.frozenColumn>=0?"right":"left",s=this.grid.getContainerNode();if(this._headerElm=s.querySelector(`.slick-header-${i}`),this._headerElm&&this._addonOptions){if(this._headerElm.style.width=`calc(100% - ${t}px)`,(this._addonOptions.resizeOnShowHeaderRow??this._defaults.resizeOnShowHeaderRow)&&this.gridOptions.showHeaderRow){const h=s.querySelector(`${e} .slick-headerrow`);h&&(h.style.width=`calc(100% - ${t}px)`)}if(this._addonOptions.showButton??this._defaults.showButton){this._gridMenuButtonElm=v("button",{className:"slick-grid-menu-button",ariaLabel:"Grid Menu"}),(o=this._addonOptions)!=null&&o.iconCssClass&&this._gridMenuButtonElm.classList.add(...he(this._addonOptions.iconCssClass));const h=this._addonOptions.iconButtonContainer==="preheader"?"firstChild":"lastChild";this._headerElm.parentElement.insertBefore(this._gridMenuButtonElm,this._headerElm.parentElement[h]),this._bindEventService.bind(this._gridMenuButtonElm,"click",this.showGridMenu.bind(this))}this.sharedService.gridOptions.gridMenu={...this._defaults,...this._addonOptions},this.translateTitleLabels(this._addonOptions),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this)),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this))}}createCommandMenu(e,t=0,i){const s=i==null?void 0:i.command;let n=t===1&&s?s.replace(/\s/g,""):"";n&&(this._subMenuParentId=n),t>1&&(n=this._subMenuParentId);const o=`${this.menuCssClass} slick-menu-level-${t} ${this._gridUid}`,l=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${t}${this.gridUidSelector}`);if(l){if(l.dataset.subMenuParent===n)return l;this.disposeSubMenus()}const a=v("div",{role:"menu",className:o,ariaLabel:t>1?"SubMenu":"Grid Menu"});t>0&&(a.classList.add("slick-submenu"),n&&(a.dataset.subMenuParent=n));const h={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns(),level:t};return this._commandMenuElm=this.recreateCommandList(e,a,h,i),t++,a}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}hideMenu(e){var i,s,n;const t={grid:this.grid,menu:this._menuElm,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};if(this.pubSubService.publish("onGridMenuMenuClose",t),!(typeof((i=this._addonOptions)==null?void 0:i.onMenuClose)=="function"&&this._addonOptions.onMenuClose(e,t)===!1||this.onMenuClose.notify(t,null,this).getReturnValue()===!1)){if(this._isMenuOpen=!1,typeof((s=this.grid)==null?void 0:s.autosizeColumns)=="function"){const o=this.grid.getUID()||"";this._areVisibleColumnDifferent&&o&&document.querySelector(`.${o}`)!==null&&(this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this._areVisibleColumnDifferent=!1)}this.disposeSubMenus(),(n=this._menuElm)==null||n.remove(),this._menuElm=null}}recreateGridMenu(){this.deleteMenu(),this.init()}repositionMenu(e,t,i,s){var a,h;const n=((a=e==null?void 0:e.touches)==null?void 0:a[0])??e,o=t.classList.contains("slick-submenu"),l=o?e.target.closest(".slick-menu-item"):n.target;if(l){const d=i||this._gridMenuButtonElm,c=ge(i),u=ge(l),p=s??this._addonOptions,m=getComputedStyle(d),f=parseInt((m==null?void 0:m.width)??((h=this._defaults)==null?void 0:h.menuWidth),10),g=(t==null?void 0:t.offsetWidth)??0,_=(p==null?void 0:p.contentMinWidth)??this._defaults.contentMinWidth??0,C=(_>g?_:g)||0,b=c.top,S=c.right;let E,y;if(o?(y=u.top,E=u.left):(y=b+d.offsetHeight,E=(p==null?void 0:p.dropSide)==="right"?S-f:S-C),o){const D=(t==null?void 0:t.clientHeight)||0,{bottom:L,top:M}=Vi(l);(L<D&&M>L?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),y-=D-l.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}const x=this.grid.getGridPosition();let O=E+Number(g);o&&(O+=l.clientWidth);const I=document.documentElement.clientWidth;(O>=x.width||O>=I?"left":"right")==="left"||!o&&(p==null?void 0:p.dropSide)==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),o&&(E-=Number(g))):(t.classList.remove("dropleft"),t.classList.add("dropright"),o&&(E+=l.offsetWidth)),t.style.top=`${y}px`,t.style.left=`${E}px`,_>0&&(t.style.minWidth=`${_}px`),t.style.opacity="1",t.style.display="block"}}openGridMenu(){const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,composed:!1});Object.defineProperty(e,"target",{writable:!0,configurable:!0,value:v("button",{className:"slick-grid-menu-button"})}),this.showGridMenu(e)}showGridMenu(e,t){var s,n,o;const i=((s=e==null?void 0:e.touches)==null?void 0:s[0])??e;if(e.preventDefault(),ee(this._menuElm),(n=this._menuElm)==null||n.remove(),this._addonOptions){const l={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns()},a={...this._addonOptions,...t};if(a&&!this.extensionUtility.runOverrideFunctionWhenExists(a.menuUsabilityOverride,l)||typeof e.stopPropagation=="function"&&(this.pubSubService.publish("onGridMenuBeforeMenuShow",l),typeof(a==null?void 0:a.onBeforeMenuShow)=="function"&&a.onBeforeMenuShow(e,l)===!1||this.onBeforeMenuShow.notify(l,null,this).getReturnValue()===!1))return;this._menuElm=this.createCommandMenu(((o=this._addonOptions)==null?void 0:o.commandItems)??[]),this.createColumnPickerContainer(),$s.call(this),this._columnCheckboxes=[],ha.call(this,a),document.body.appendChild(this._menuElm),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),this._menuElm.style.opacity="0";const h=((a==null?void 0:a.marginBottom)!==void 0?a.marginBottom:this._defaults.marginBottom)||0;this._menuElm.style.minHeight=Pt(a==null?void 0:a.minHeight,""),(a==null?void 0:a.height)!==void 0?this._menuElm.style.height=Pt(a.height,""):this._menuElm.style.maxHeight=Pt(a==null?void 0:a.maxHeight,`${window.innerHeight-i.clientY-h}px`);let d=e.target.nodeName==="BUTTON"?e.target:e.target.querySelector("button");d||(d=e.target.parentElement),this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm),this.repositionMenu(e,this._menuElm,d,a),this._isMenuOpen=!0,this.pubSubService.publish("onGridMenuAfterMenuShow",l),typeof(a==null?void 0:a.onAfterMenuShow)=="function"&&a.onAfterMenuShow(e,l),this.onAfterMenuShow.notify(l,null,this)}}translateGridMenu(){var e;if(this.sharedService.gridOptions.gridMenu){this.sharedService.gridOptions.gridMenu.commandItems=[],this.sharedService.gridOptions.gridMenu.commandTitle="",this.sharedService.gridOptions.gridMenu.columnTitle="",this.sharedService.gridOptions.gridMenu.forceFitTitle="",this.sharedService.gridOptions.gridMenu.syncResizeTitle="";const t=this._userOriginalGridMenu&&Array.isArray(this._userOriginalGridMenu.commandItems)?this._userOriginalGridMenu.commandItems:[];this.sharedService.gridOptions.gridMenu.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(((e=this._addonOptions)==null?void 0:e.commandItems)||[],"commandItems"),this.extensionUtility.sortItems(this.sharedService.gridOptions.gridMenu.commandItems,"positionOrder"),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this.translateTitleLabels(this._addonOptions),this.extensionUtility.translateItems(this._columns,"nameKey","name")}}translateTitleLabels(e){e&&(e.commandTitle=this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"),e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),e.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),e.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"))}addGridMenuCustomCommands(e){var l,a;const t=this.gridOptions.backendServiceApi||null,i=[],s=this.gridOptions,n=lt(s),o=(l=this._addonOptions)==null?void 0:l.commandLabels;if(this._addonOptions&&this.gridOptions){if(!this._addonOptions.hideClearFrozenColumnsCommand){const d="clear-pinning";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearFrozenColumnsCommand||"mdi mdi-pin-off-outline",titleKey:`${n}${(o==null?void 0:o.clearFrozenColumnsCommandKey)??"CLEAR_PINNING"}`,disabled:!1,command:d,positionOrder:52})}if(this.gridOptions.enableFiltering&&!this.sharedService.hideHeaderRowAfterPageLoad){if(!this._addonOptions.hideClearAllFiltersCommand){const d="clear-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllFiltersCommand||"mdi mdi-filter-remove-outline",titleKey:`${n}${(o==null?void 0:o.clearAllFiltersCommandKey)??"CLEAR_ALL_FILTERS"}`,disabled:!1,command:d,positionOrder:50})}if(!this._addonOptions.hideToggleFilterCommand){const d="toggle-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleFilterCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.toggleFilterCommandKey)??"TOGGLE_FILTER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(t&&!this._addonOptions.hideRefreshDatasetCommand){const d="refresh-dataset";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconRefreshDatasetCommand||"mdi mdi-sync",titleKey:`${n}${(o==null?void 0:o.refreshDatasetCommandKey)??"REFRESH_DATASET"}`,disabled:!1,command:d,positionOrder:58})}}if(!this._addonOptions.hideToggleDarkModeCommand){const d="toggle-dark-mode";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleDarkModeCommand||"mdi mdi-brightness-4",titleKey:`${n}${(o==null?void 0:o.toggleDarkModeCommandKey)??"TOGGLE_DARK_MODE"}`,disabled:!1,command:d,positionOrder:54})}if(this.gridOptions.showPreHeaderPanel&&!this._addonOptions.hideTogglePreHeaderCommand){const d="toggle-preheader";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconTogglePreHeaderCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.togglePreHeaderCommandKey)??"TOGGLE_PRE_HEADER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(this.gridOptions.enableSorting&&!this._addonOptions.hideClearAllSortingCommand){const d="clear-sorting";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllSortingCommand||"mdi mdi-sort-variant-off",titleKey:`${n}${(o==null?void 0:o.clearAllSortingCommandKey)??"CLEAR_ALL_SORTING"}`,disabled:!1,command:d,positionOrder:51})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportCsvCommand){const d="export-csv";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportCsvCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportCsvCommandKey)??"EXPORT_TO_CSV"}`,disabled:!1,command:d,positionOrder:55})}if(this.gridOptions.enableExcelExport&&!this._addonOptions.hideExportExcelCommand){const d="export-excel";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportExcelCommand||"mdi mdi-file-excel-outline text-success",titleKey:`${n}${(o==null?void 0:o.exportExcelCommandKey)??"EXPORT_TO_EXCEL"}`,disabled:!1,command:d,positionOrder:56})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportTextDelimitedCommand){const d="export-text-delimited";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportTextDelimitedCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportTextDelimitedCommandKey)??"EXPORT_TO_TAB_DELIMITED"}`,disabled:!1,command:d,positionOrder:57})}const h=((a=this._addonOptions)==null?void 0:a.commandItems)||[];(Array.isArray(i)&&i.length>0||Array.isArray(h)&&h.length>0)&&(this._addonOptions.commandTitle=this._addonOptions.commandTitle||this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"))}return i}executeGridMenuInternalCustomCommands(e,t){var s,n,o;const i=((s=this.sharedService)==null?void 0:s.externalRegisteredResources)||[];if(t!=null&&t.command)switch(t.command){case"clear-pinning":const l=[...this.sharedService.visibleColumns],a={frozenColumn:-1,frozenRow:-1,frozenBottom:!1,enableMouseWheelScrollHandler:!1};this.grid.setOptions(a),this.sharedService.gridOptions.frozenColumn=a.frozenColumn,this.sharedService.gridOptions.frozenRow=a.frozenRow,this.sharedService.gridOptions.frozenBottom=a.frozenBottom,this.sharedService.gridOptions.enableMouseWheelScrollHandler=a.enableMouseWheelScrollHandler,Array.isArray(l)&&this.grid.setColumns(l),this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this.pubSubService.publish("onGridMenuClearAllPinning");break;case"clear-filter":this.filterService.clearFilters(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllFilters");break;case"clear-sorting":this.sortService.clearSorting(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllSorting");break;case"export-csv":const d=i.find(g=>g.className==="TextExportService");d!=null&&d.exportToFile?d.exportToFile({delimiter:Ot.comma,format:ve.csv}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"export-excel":const c=i.find(g=>g.className==="ExcelExportService");c!=null&&c.exportToExcel?c.exportToExcel():console.error("[Slickgrid-Universal] You must register the ExcelExportService to properly use Export to Excel in the Grid Menu. Example:: this.gridOptions = { enableExcelExport: true, externalResources: [new ExcelExportService()] };");break;case"export-text-delimited":const u=i.find(g=>g.className==="TextExportService");u!=null&&u.exportToFile?u.exportToFile({delimiter:Ot.tab,format:ve.txt}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"toggle-dark-mode":const p=this.sharedService.gridOptions.darkMode;this.grid.setOptions({darkMode:!p}),this.sharedService.gridOptions.darkMode=!p;break;case"toggle-filter":let m=((n=this.gridOptions)==null?void 0:n.showHeaderRow)??!1;m=!m,this.grid.setHeaderRowVisibility(m),m===!0&&(this.grid.setColumns(this.sharedService.columnDefinitions),this.grid.scrollColumnIntoView(0));break;case"toggle-preheader":const f=((o=this.gridOptions)==null?void 0:o.showPreHeaderPanel)??!1;this.grid.setPreHeaderPanelVisibility(!f);break;case"refresh-dataset":this.extensionUtility.refreshBackendDataset();break}}getDefaultGridMenuOptions(){return{commandTitle:void 0,columnTitle:this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),forceFitTitle:this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),syncResizeTitle:this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"),iconCssClass:"mdi mdi-menu",menuWidth:18,commandItems:[],hideClearAllFiltersCommand:!1,hideRefreshDatasetCommand:!1,hideToggleFilterCommand:!1}}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this._isMenuOpen&&this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.hideMenu(e)}}handleMenuItemCommandClick(e,t,i,s=0){var n,o;if(i!=="divider"&&!i.disabled&&!i.divider)if((i.command||"")&&!i.commandItems){const a={grid:this.grid,command:i.command,item:i,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};this.executeGridMenuInternalCustomCommands(e,a),this.pubSubService.publish("onGridMenuCommand",a),typeof((n=this._addonOptions)==null?void 0:n.onCommand)=="function"&&this._addonOptions.onCommand(e,a),this.onCommand.notify(a,null,this),typeof i.action=="function"&&i.action.call(this,e,a),!((o=this._addonOptions)!=null&&o.leaveOpen)&&!e.defaultPrevented&&this.hideMenu(e),e.preventDefault(),e.stopPropagation()}else i.commandItems&&this.repositionSubMenu(e,i,s)}handleMenuItemMouseOver(e,t,i,s=0){i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems?this.repositionSubMenu(e,i,s):s===0&&this.disposeSubMenus())}recreateCommandList(e,t,i,s){const n=i.level||0;if(e.length>0){const o=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},t);if(n===0){this.populateCommandOrOptionTitle("command",this.addonOptions,o,n);const l=t.querySelector(".slick-command-header")??v("div",{className:"slick-command-header"});l.classList.add("with-close"),ra.call(this,l),o.appendChild(l)}return s&&n>0&&this.addSubMenuTitleWhenExists(s,o),this.populateCommandOrOptionItems("command",this._addonOptions,o,e,i,this.handleMenuItemCommandClick,this.handleMenuItemMouseOver),o}return null}repositionSubMenu(e,t,i){const s=(t==null?void 0:t.commandItems)||[],n=this.createCommandMenu(s,i+1,t);n.style.display="block",document.body.appendChild(n),this.repositionMenu(e,n)}}const sa="mdi-icon-picker-check",na="mdi-icon-picker-uncheck";function ra(r){const t=v("button",{type:"button",className:"close",ariaLabel:"Close",textContent:"×",dataset:{dismiss:this instanceof _r?"slick-column-picker":"slick-grid-menu"}});r.appendChild(t)}function oa(r){var t,i;const e=this;(t=e.addonOptions)!=null&&t.columnTitle&&(e._columnTitleElm=v("div",{className:"slick-menu-title",textContent:((i=e.addonOptions)==null?void 0:i.columnTitle)??e._defaults.columnTitle},r))}function la(r){var o,l;const e=this,t=e instanceof _r?"columnPicker":"gridMenu",i=(o=r.target)==null?void 0:o.closest(".icon-checkbox-container"),s=i==null?void 0:i.querySelector(".mdi"),n=!!r.target.checked;if(r.target.ariaChecked=String(n),aa(s,n),r.target.dataset.option==="autoresize"){const a=e.getVisibleColumns();e.grid.setOptions({forceFitColumns:n}),e.grid.setColumns(a);return}if(r.target.dataset.option==="syncresize"){e.grid.setOptions({syncColumnCellResize:n});return}if(r.target.type==="checkbox"){e._areVisibleColumnDifferent=!0;const a=r.target.dataset.columnid||"",h=[];if(e._columnCheckboxes.forEach((u,p)=>{u.checked&&h.push(e.columns[p])}),!h.length){r.target.checked=!0,aa(s,!0);return}if(e.grid.setColumns(h),(!e.sharedService.visibleColumns||Array.isArray(h)&&h.length!==e.sharedService.visibleColumns.length)&&(e.sharedService.visibleColumns=h),e.gridOptions.enableRowSelection&&n){const u=e.grid.getSelectedRows();e.grid.setSelectedRows(u)}const d=e.gridOptions.frozenColumn??-1;d>=0&&e.extensionUtility.readjustFrozenColumnIndexWhenNeeded(d,e.columns,h);const c={columnId:a,showing:n,allColumns:e.columns,visibleColumns:h,columns:h,grid:e.grid};e.pubSubService.publish(`on${ti(t)}ColumnsChanged`,c),typeof((l=e.addonOptions)==null?void 0:l.onColumnsChanged)=="function"&&e.addonOptions.onColumnsChanged(r,c),e.onColumnsChanged.notify(c,null,e)}}function aa(r,e=!1){r&&(r.className=`mdi ${e?sa:na}`)}function gr(r,e,t,i=!1){const s=v("label",{className:"checkbox-picker-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"}),o=v("input",{id:e,type:"checkbox",dataset:t}),l=v("div",{className:`mdi ${i?sa:na}`}),a=v("span",{className:"checkbox-label"});return n.appendChild(o),n.appendChild(l),s.appendChild(n),s.appendChild(a),r.appendChild(s),i&&(o.ariaChecked="true",o.checked=!0),{inputElm:o,labelElm:s,labelSpanElm:a}}function ha(r){const e=this,t=e instanceof ia,i=t?"gridmenu-":"";for(const s of e.columns){const n=s.id,o=document.createElement("li");(s.excludeFromColumnPicker&&!t||s.excludeFromGridMenu&&t)&&(o.className="hidden");const l=`${e._gridUid}-${i}colpicker-${n}`,a=e.grid.getColumnIndex(n)>=0,{inputElm:h,labelElm:d,labelSpanElm:c}=gr(o,l,{columnid:`${n}`},a);e._columnCheckboxes.push(h);const p=(typeof(r==null?void 0:r.headerColumnValueExtractor)=="function"?r.headerColumnValueExtractor:e._defaults.headerColumnValueExtractor)(s,e.gridOptions);this.grid.applyHtmlCode(c,p),o.appendChild(d),e._listElm.appendChild(o)}if((!r.hideForceFitButton||!r.hideSyncResizeButton)&&e._listElm.appendChild(document.createElement("hr")),!(r!=null&&r.hideForceFitButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-forcefit`,{labelSpanElm:o}=gr(s,n,{option:"autoresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.forceFitTitle)??"",e._listElm.appendChild(s)}if(!(r!=null&&r.hideSyncResizeButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-syncresize`,{labelSpanElm:o}=gr(s,n,{option:"syncresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.syncResizeTitle)??"",e._listElm.appendChild(s)}}function $s(){const r=this,e=r.grid.getColumns().slice(0),t=new Array(r.columns.length);for(let i=0;i<t.length;i++)r.grid.getColumnIndex(r.columns[i].id)===void 0?t[i]=r.columns[i]:t[i]=e.shift();r._columns=t}class _r{constructor(e,t,i){var s,n;this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._areVisibleColumnDifferent=!1,this._columns=[],this._gridUid="",this._menuElm=null,this._columnCheckboxes=[],this._defaults={hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",minHeight:150,syncResizeTitle:"Synchronous resize",headerColumnValueExtractor:o=>_t(o.columnPickerLabel||o.name||"","innerHTML")},this._bindEventService=new Pe,this.onColumnsChanged=new P("onColumnsChanged"),this._eventHandler=new pe,this._columns=this.sharedService.allColumns??[],this._gridUid=((n=(s=this.grid)==null?void 0:s.getUID)==null?void 0:n.call(s))??"",this.init()}get addonOptions(){return this.gridOptions.columnPicker||{}}get eventHandler(){return this._eventHandler}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){return this.sharedService.gridOptions??{}}get grid(){return this.sharedService.slickGrid}get menuElement(){return this._menuElm}init(){this._gridUid=this.grid.getUID()??"",this.gridOptions.columnPicker={...this._defaults,...this.gridOptions.columnPicker},this.onColumnsChanged.setPubSubService(this.pubSubService),this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker"),this._eventHandler.subscribe(this.grid.onPreHeaderContextMenu,e=>{["slick-column-name","slick-header-column"].some(t=>{var i;return(i=e.target)==null?void 0:i.classList.contains(t)})&&this.handleHeaderContextMenu(e)}),this._eventHandler.subscribe(this.grid.onHeaderContextMenu,this.handleHeaderContextMenu.bind(this)),this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.disposeMenu.bind(this)),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this),void 0,"body"),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this),void 0,"body")}dispose(){this._eventHandler.unsubscribeAll(),this._bindEventService.unbindAll(),this.disposeMenu()}disposeMenu(){var e,t;this._bindEventService.unbindAll("parent-menu"),(e=this._listElm)==null||e.remove(),(t=this._menuElm)==null||t.remove(),this._menuElm=null}createPickerMenu(){const e=v("div",{ariaExpanded:"true",className:`slick-column-picker ${this._gridUid}`,role:"menu"});return $s.call(this),oa.call(this,e),ra.call(this,e),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(e,"click",la.bind(this),void 0,"parent-menu"),document.body.appendChild(e),e}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}translateColumnPicker(){this.addonOptions&&(this.addonOptions.columnTitle="",this.addonOptions.forceFitTitle="",this.addonOptions.syncResizeTitle="",this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker")),this.extensionUtility.translateItems(this._columns,"nameKey","name"),this.translateTitleLabels(this.addonOptions)}handleBodyMouseDown(e){var t;(this._menuElm!==e.target&&!((t=this._menuElm)!=null&&t.contains(e.target))||e.target.className==="close"&&e.target.closest(".slick-column-picker"))&&this.disposeMenu()}handleHeaderContextMenu(e){e.preventDefault(),ee(this._menuElm),this._columnCheckboxes=[],this._menuElm=this.createPickerMenu(),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),ha.call(this,this.addonOptions),document.body.appendChild(this._menuElm),this.repositionMenu(e)}repositionMenu(e){var i;const t=((i=e==null?void 0:e.touches)==null?void 0:i[0])??e;if(this._menuElm){const s=this.grid.getGridPosition(),n=this._menuElm.clientWidth||0;let o=t.pageX||0;s!=null&&s.width&&o+n>=s.width&&(o=o-n),this._menuElm.style.top=`${t.pageY-10}px`,this._menuElm.style.left=`${o}px`,this._menuElm.style.minHeight=Pt(this.addonOptions.minHeight,""),this._menuElm.style.maxHeight=Pt(this.addonOptions.maxHeight,`${window.innerHeight-t.clientY}px`),this._menuElm.style.display="block",this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm)}}translateTitleLabels(e){e&&(e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"))}}const Ws=(r,e,t,i,s,n)=>{const o=i.params||{};if(!o.formatters||!Array.isArray(o.formatters))throw new Error(`[Slickgrid-Universal] The multiple formatter requires the "formatters" to be provided as a column params.
|
|
11
|
+
`}if(window.clipboardData)return window.clipboardData.setData("Text",l),!0;{const a=document.activeElement,h=this.createTextBox(l);if(h.focus(),window.setTimeout(()=>{this._bodyElement.removeChild(h),a?a.focus():console.log("No element to restore focus to after copy?")},((s=this.addonOptions)==null?void 0:s.clipboardPasteDelay)??Ql),typeof this._onCopySuccess=="function"){const d=t.length===1?t[0].toRow+1-t[0].fromRow:t.length;this._onCopySuccess(d)}return!1}}if(!this._addonOptions.readOnlyMode&&(e.key==="v"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey||e.key==="Insert"&&e.shiftKey&&!e.ctrlKey)){const o=this.createTextBox("");return window.setTimeout(()=>this.decodeTabularData(this._grid,o),((n=this.addonOptions)==null?void 0:n.clipboardPasteDelay)??Ql),!1}}}markCopySelection(e){var s;this.clearCopySelection();const t=this._grid.getColumns(),i={};for(const n of e)for(let o=n.fromRow;o<=n.toRow;o++){i[o]={};for(let l=n.fromCell;l<=n.toCell&&l<t.length;l++)i[o][t[l].id]=this._copiedCellStyle}this._grid.setCellCssStyles(this._copiedCellStyleLayerKey,i),window.clearTimeout(this._clearCopyTI),this._clearCopyTI=window.setTimeout(()=>this.clearCopySelection(),((s=this.addonOptions)==null?void 0:s.clearCopySelectionDelay)||$c)}}class zs{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._addonOptions={},this._camelPluginName="",this._gridUid="",this._menuCssPrefix="",this._menuPluginCssPrefix="",this._bindEventService=new Pe,this._eventHandler=new pe}get addonOptions(){return this._addonOptions}set addonOptions(e){this._addonOptions=e}get eventHandler(){return this._eventHandler}get grid(){return this.sharedService.slickGrid}get gridOptions(){return this.sharedService.gridOptions??{}}get gridUid(){var e;return this._gridUid||(((e=this.grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}get menuCssClass(){return this._menuPluginCssPrefix||this._menuCssPrefix}get menuElement(){return this._menuElm||document.querySelector(`.${this.menuCssClass}${this.gridUidSelector}`)}dispose(){var e,t,i,s,n;(e=this._eventHandler)==null||e.unsubscribeAll(),this._bindEventService.unbindAll(),this.pubSubService.unsubscribeAll(),(t=this._commandTitleElm)==null||t.remove(),(i=this._optionTitleElm)==null||i.remove(),this.disposeAllMenus(),ee(this._menuElm),(s=this.menuElement)==null||s.remove(),(n=this._menuElm)==null||n.remove()}disposeAllMenus(){this.disposeSubMenus(),this._bindEventService.unbindAll("parent-menu"),document.querySelectorAll(`.${this.menuCssClass}${this.gridUidSelector}`).forEach(e=>e.remove())}disposeSubMenus(){this._bindEventService.unbindAll("sub-menu"),document.querySelectorAll(`.${this.menuCssClass}.slick-submenu${this.gridUidSelector}`).forEach(e=>e.remove())}setOptions(e){this._addonOptions={...this._addonOptions,...e}}addSubMenuTitleWhenExists(e,t){if(e!=="divider"&&(e!=null&&e.subMenuTitle)){const i=document.createElement("div");i.className="slick-menu-title",i.textContent=e.subMenuTitle;const s=e.subMenuTitleCssClass;s&&i.classList.add(...he(s)),t.appendChild(i)}}populateCommandOrOptionItems(e,t,i,s,n,o,l){if(n&&s&&t)for(const a of s)this.populateSingleCommandOrOptionItem(e,t,i,a,n,o,l)}populateCommandOrOptionTitle(e,t,i,s){var n;if(t){const o=s>0,l=((n=this._menuElm)==null?void 0:n.querySelector(`.slick-${e}-header`))??v("div",{className:`slick-${e}-header`}),a=`${e}Title`;o||(t!=null&&t[a]?(ee(l),this[`_${e}TitleElm`]=v("span",{className:"slick-menu-title",textContent:t[a]}),l.appendChild(this[`_${e}TitleElm`]),l.classList.add("with-title")):l.classList.add("no-title"),i.appendChild(l))}}populateSingleCommandOrOptionItem(e,t,i,s,n,o,l){var h;let a=null;if(n&&s&&t){const d=(n==null?void 0:n.level)||0,c=this._camelPluginName==="headerButtons"?"":"-item",u=`${this._menuCssPrefix}${c}`;let p=!0,m=!0;if(typeof s=="object"&&(p=this.extensionUtility.runOverrideFunctionWhenExists(s.itemVisibilityOverride,n),m=this.extensionUtility.runOverrideFunctionWhenExists(s.itemUsabilityOverride,n)),!p)return null;if(typeof s=="object"&&s.itemUsabilityOverride&&(s.disabled=!m),a=v("li",{className:u,role:"menuitem"}),typeof s=="object"&&q(s[e])&&(a.dataset[e]=s==null?void 0:s[e]),i&&i.appendChild(a),typeof s=="object"&&s.divider||s==="divider")return a.classList.add(`${u}-divider`),a;if(s.disabled&&a.classList.add(`${u}-disabled`),(s.hidden||s.showOnHover)&&a.classList.add(`${u}-hidden`),s.cssClass&&a.classList.add(...he(s.cssClass)),s.tooltip&&(a.title=s.tooltip),this._camelPluginName!=="headerButtons"){const g=v("div",{className:`${this._menuCssPrefix}-icon`});a.appendChild(g),s.iconCssClass?g.classList.add(...he(s.iconCssClass)):!s.commandItems&&!s.optionItems&&(g.textContent="◦");const _=v("span",{className:`${this._menuCssPrefix}-content`,textContent:typeof s=="object"&&s.title||""},a);s.textCssClass&&_.classList.add(...he(s.textCssClass))}const f=d>0?"sub-menu":"parent-menu";if(this._bindEventService.bind(a,"click",g=>o.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),((h=this._addonOptions)==null?void 0:h.subMenuOpenByEvent)==="mouseover"&&typeof l=="function"&&this._bindEventService.bind(a,"mouseover",g=>l.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),s.commandItems||s.optionItems){const g=document.createElement("span");g.className="sub-item-chevron",this._addonOptions.subItemChevronClass?g.classList.add(...he(this._addonOptions.subItemChevronClass)):g.textContent="⮞",a.classList.add("slick-submenu-item"),a.appendChild(g)}}return a}}class Zl extends zs{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._currentCell=-1,this._currentRow=-1,this._lastMenuTypeClicked="",this._subMenuParentId=""}createParentMenu(e){var i,s,n,o,l;(i=this.menuElement)==null||i.remove(),this._menuElm=void 0;const t=this.grid.getCellFromEvent(e);if(t){this._currentCell=t.cell??0,this._currentRow=t.row??0;const a=((s=this._addonOptions)==null?void 0:s.commandItems)||[],h=((n=this._addonOptions)==null?void 0:n.optionItems)||[],d={cell:this._currentCell,row:this._currentRow,grid:this.grid};if(this.closeMenu(e,d),typeof e.stopPropagation=="function"&&(this.pubSubService.publish(`on${ti(this._camelPluginName)}BeforeMenuShow`,d),typeof((o=this.addonOptions)==null?void 0:o.onBeforeMenuShow)=="function"&&this.addonOptions.onBeforeMenuShow(e,d)===!1)||(this._menuElm=this.createMenu(a,h),this._menuElm&&(this._menuElm.style.top=`${(e.pageY||0)+5}px`,this._menuElm.style.left=`${e.pageX}px`,this._menuElm.style.display="block",document.body.appendChild(this._menuElm)),this.pubSubService.publish(`on${ti(this._camelPluginName)}AfterMenuShow`,d),typeof((l=this.addonOptions)==null?void 0:l.onAfterMenuShow)=="function"&&this.addonOptions.onAfterMenuShow(e,d)===!1))return}return this._menuElm}createMenu(e,t,i=0,s){var _,C,b,S,E;const n=this.grid.getColumns()[this._currentCell],o=this.grid.getDataItem(this._currentRow),l=(s==null?void 0:s.command)||(s==null?void 0:s.option);let a=i===1&&l?String(l).replace(/\s/g,""):"";a&&(this._subMenuParentId=a),i>1&&(a=this._subMenuParentId);let h=!0,d=!0;if(this._camelPluginName==="contextMenu"){if(h=this.checkIsColumnAllowed(((_=this._addonOptions)==null?void 0:_.optionShownOverColumnIds)??[],n.id),d=this.checkIsColumnAllowed(((C=this._addonOptions)==null?void 0:C.commandShownOverColumnIds)??[],n.id),!n||(!d||!e.length)&&(!h||!t.length)){this.hideMenu();return}}else if(!n||!n.cellMenu||!e.length&&!t.length)return;const c=`${this.menuCssClass} slick-menu-level-${i} ${this.gridUid}`,u=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${i}${this.gridUidSelector}`);if(u){if(u.dataset.subMenuParent===a)return u;this.disposeSubMenus()}const p=document.createElement("div");p.className=c,i>0&&(p.classList.add("slick-submenu"),(b=this.gridOptions)!=null&&b.darkMode&&p.classList.add("slick-dark-mode"),a&&(p.dataset.subMenuParent=a));const m=isNaN(this.addonOptions.maxHeight)?this.addonOptions.maxHeight:`${this.addonOptions.maxHeight??0}px`,f=isNaN(this.addonOptions.maxWidth)?this.addonOptions.maxWidth:`${this.addonOptions.maxWidth??0}px`;m&&(p.style.maxHeight=m),f&&(p.style.maxWidth=f),(S=this.addonOptions)!=null&&S.width&&(p.style.width=Pt((E=this.addonOptions)==null?void 0:E.width));const g=v("button",{ariaLabel:"Close",className:"close",type:"button",textContent:"×",dataset:{dismiss:this._menuCssPrefix}});if(!this.addonOptions.hideOptionSection&&h&&t.length>0){const y=v("div",{className:`${this._menuCssPrefix}-option-list`,role:"menu"},p);this.populateCommandOrOptionTitle("option",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&this.populateCommandOrOptionCloseBtn("option",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("option",this.addonOptions,y,t,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}if(!this.addonOptions.hideCommandSection&&d&&e.length>0){const y=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},p);this.populateCommandOrOptionTitle("command",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&(!h||t.length===0||this.addonOptions.hideOptionSection)&&this.populateCommandOrOptionCloseBtn("command",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("command",this.addonOptions,y,e,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}return i++,p}closeMenu(e,t){var i;if(this.menuElement){if(typeof((i=this.addonOptions)==null?void 0:i.onBeforeMenuClose)=="function"&&this.addonOptions.onBeforeMenuClose(e,t)===!1)return;this.hideMenu()}}hideMenu(){var e;(e=this.menuElement)==null||e.remove(),this._menuElm=null,this.disposeSubMenus()}checkIsColumnAllowed(e,t){return(e==null?void 0:e.length)>0?e.findIndex(i=>i===t)>=0:!0}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.closeMenu(e,{cell:this._currentCell,row:this._currentRow,grid:this.grid})}}handleCloseButtonClicked(e){e.defaultPrevented||this.closeMenu(e,{cell:0,row:0,grid:this.grid})}handleMenuItemMouseOver(e,t,i,s=0){(i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems||i.optionItems?(this.repositionSubMenu(i,t,s,e),this._lastMenuTypeClicked=t):s===0&&this.disposeSubMenus())}handleMenuItemCommandClick(e,t,i,s=0){var n;if((i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&this._currentCell!==void 0&&this._currentRow!==void 0){if(t==="option"&&!this.grid.getEditorLock().commitCurrentEdit())return;const o=this._currentCell,l=this._currentRow,a=this.grid.getColumns()[this._currentCell],h=this.grid.getDataItem(this._currentRow),d=i[t]!==void 0?i[t]:"";if(d!==void 0&&!i[`${t}Items`]){const c={cell:this._currentCell,row:this._currentRow,grid:this.grid,[t]:d,item:i,column:a,dataContext:h},u=t==="command"?"onCommand":"onOptionSelected",p=`${this._camelPluginName}:${u}`;this.pubSubService.publish(p,c),typeof((n=this._addonOptions)==null?void 0:n[u])=="function"&&this._addonOptions[u](e,c),typeof i.action=="function"&&i.action.call(this,e,c),e.defaultPrevented||this.closeMenu(e,{cell:o,row:l,grid:this.grid})}else(i.commandItems||i.optionItems)&&this.repositionSubMenu(i,t,s,e);this._lastMenuTypeClicked=t}}populateCommandOrOptionCloseBtn(e,t,i){this._bindEventService.bind(t,"click",n=>this.handleCloseButtonClicked(n),void 0,"parent-menu");const s=i.querySelector(`.slick-${e}-header`)??v("div",{className:`slick-${e}-header`});s==null||s.appendChild(t),i.appendChild(s),s.classList.add("with-close")}repositionSubMenu(e,t,i,s){(s.target.classList.contains("slick-cell")||this._lastMenuTypeClicked!==t)&&this.disposeSubMenus();const n=this.createMenu((e==null?void 0:e.commandItems)||[],(e==null?void 0:e.optionItems)||[],i+1,e);n&&(n.style.display="block",document.body.appendChild(n),this.repositionMenu(s,n))}repositionMenu(e,t){var n;const i=t==null?void 0:t.classList.contains("slick-submenu"),s=i?e.target.closest(`.${this._menuCssPrefix}-item`):e.target.closest(".slick-cell");if(t&&s){t.style.top="0px",t.style.left="0px";const o=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,l=ge(s);let a=s&&this._camelPluginName==="cellMenu"?l.left:o.pageX,h=s&&this._camelPluginName==="cellMenu"?l.top:o.pageY;i&&this._camelPluginName==="contextMenu"&&(a=l.left,h=l.top);const d=s.offsetWidth||0,c=(t==null?void 0:t.offsetHeight)||0,u=(t==null?void 0:t.offsetWidth)||this._addonOptions.width||0,p=this.gridOptions.rowHeight||0,m=Number(this._addonOptions.autoAdjustDropOffset||0),f=Number(this._addonOptions.autoAlignSideOffset||0);if(this._addonOptions.autoAdjustDrop||this._addonOptions.dropDirection){const{bottom:g,top:_}=Vi(s),C=g+m-p,b=_-m+p;(C<c&&b>C?"top":"bottom")==="top"||this._addonOptions.dropDirection==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),i?h-=c-m-s.clientHeight:h-=c-m):(t.classList.remove("dropup"),t.classList.add("dropdown"),h=h+m,this._camelPluginName==="cellMenu"&&(i?h+=m:h+=p+m))}if(this._addonOptions.autoAlignSide||this._addonOptions.dropSide==="left"){const g=this.grid.getGridPosition();let _=a+Number(u);i&&(_+=s.clientWidth);const C=document.documentElement.clientWidth;(_>=g.width||_>=C?"left":"right")==="left"||!i&&this._addonOptions.dropSide==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),this._camelPluginName==="cellMenu"&&!i?a-=Number(u)-d-f:a-=Number(u)-f):(t.classList.remove("dropleft"),t.classList.add("dropright"),i?a+=f+s.offsetWidth:a+=f)}t.style.top=`${h}px`,t.style.left=`${a}px`}}}class Gc extends Zl{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.pluginName="CellMenu",this._defaults={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:0,autoAlignSideOffset:0,hideMenuOnScroll:!0,subMenuOpenByEvent:"mouseover"},this._camelPluginName="cellMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-cell-menu",this.init(i.gridOptions.cellMenu)}init(e){this._addonOptions={...this._defaults,...e},this.sortMenuItems(this.sharedService.allColumns),this._eventHandler.subscribe(this.grid.onClick,this.handleCellClick.bind(this)),this._addonOptions.hideMenuOnScroll&&this._eventHandler.subscribe(this.grid.onScroll,this.closeMenu.bind(this))}translateCellMenu(){var i;const e=(i=this.sharedService)==null?void 0:i.gridOptions,t=this.sharedService.allColumns;e!=null&&e.enableTranslate&&Array.isArray(t)&&t.forEach(s=>{if(s!=null&&s.cellMenu&&(Array.isArray(s.cellMenu.commandItems)||Array.isArray(s.cellMenu.optionItems))){const n=s.cellMenu.commandItems||[],o=s.cellMenu.optionItems||[];s.cellMenu.commandTitleKey&&(s.cellMenu.commandTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.commandTitleKey,"TEXT_COMMANDS")||s.cellMenu.commandTitle),s.cellMenu.optionTitleKey&&(s.cellMenu.optionTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.optionTitleKey,"TEXT_COMMANDS")||s.cellMenu.optionTitle),this.extensionUtility.translateMenuItemsFromTitleKey(n,"commandItems"),this.extensionUtility.translateMenuItemsFromTitleKey(o,"optionItems")}})}handleCellClick(e,t){var s;this.disposeAllMenus();const i=this.grid.getCellFromEvent(e);if(i){const n=this.grid.getDataItem(i.row),o=this.grid.getColumns()[i.cell];o!=null&&o.cellMenu&&!((s=this.gridOptions.cellMenu)!=null&&s.activateCellOnMenuClick)&&e.preventDefault(),this._addonOptions={...this._addonOptions,...o.cellMenu};const l=t||{};if(l.column=o,l.dataContext=n,l.grid=this.grid,!this.extensionUtility.runOverrideFunctionWhenExists(this._addonOptions.menuUsabilityOverride,l))return;this._menuElm=this.createParentMenu(e),this._menuElm&&(this.repositionMenu(e,this._menuElm),this._menuElm.ariaExpanded="true",this._menuElm.style.display="block",this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode")),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}}sortMenuItems(e){e.forEach(t=>{var i,s;(i=t==null?void 0:t.cellMenu)!=null&&i.commandItems&&this.extensionUtility.sortItems(t.cellMenu.commandItems||[],"positionOrder"),(s=t==null?void 0:t.cellMenu)!=null&&s.optionItems&&this.extensionUtility.sortItems(t.cellMenu.optionItems||[],"positionOrder")})}}class Uc{constructor(e,t){this.grid=e,this.pluginName="CellRangeDecorator",this._defaults={selectionCssClass:"slick-range-decorator",selectionCss:{border:"2px dashed red",zIndex:"9999"},offset:{top:-1,left:-1,height:-2,width:-2}},this._options=Zt(this._defaults,t)}get addonOptions(){return this._options}get addonElement(){return this._elem}destroy(){this.hide()}init(){}hide(){var e;(e=this._elem)==null||e.remove(),this._elem=null}show(e){var s,n;this._elem||(this._elem=v("div",{className:this._options.selectionCssClass}),Object.keys(this._options.selectionCss).forEach(o=>{this._elem.style[o]=this._options.selectionCss[o]}),this._elem.style.position="absolute",(s=this.grid.getActiveCanvasNode())==null||s.appendChild(this._elem));const t=this.grid.getCellNodeBox(e.fromRow,e.fromCell),i=this.grid.getCellNodeBox(e.toRow,e.toCell);return t&&i&&((n=this._options)!=null&&n.offset)&&(this._elem.style.top=`${t.top+this._options.offset.top}px`,this._elem.style.left=`${t.left+this._options.offset.left}px`,this._elem.style.height=`${i.bottom-t.top+this._options.offset.height}px`,this._elem.style.width=`${i.right-t.left+this._options.offset.width}px`),this._elem}}class mr{constructor(e){this.pluginName="CellRangeSelector",this._currentlySelectedRange=null,this._canvas=null,this._dragging=!1,this._gridUid="",this._columnOffset=0,this._rowOffset=0,this._isRightCanvas=!1,this._isBottomCanvas=!1,this._xDelayForNextCell=0,this._yDelayForNextCell=0,this._viewportHeight=0,this._viewportWidth=0,this._isRowMoveRegistered=!1,this._scrollLeft=0,this._scrollTop=0,this._defaults={autoScroll:!0,minIntervalToShowNextCell:30,maxIntervalToShowNextCell:600,accelerateInterval:5,selectionCss:{border:"2px dashed blue"}},this.onBeforeCellRangeSelected=new P("onBeforeCellRangeSelected"),this.onCellRangeSelecting=new P("onCellRangeSelecting"),this.onCellRangeSelected=new P("onCellRangeSelected"),this._eventHandler=new pe,this._options=Zt(this._defaults,e)}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridUid(){var e;return this._gridUid||(((e=this._grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}init(e){this._grid=e,this._decorator=this._options.cellDecorator||new Uc(e,this._options),this._canvas=e.getCanvasNode(),this._gridOptions=e.getOptions(),this._gridUid=e.getUID();const t=e.getPubSubService();t&&T.addSlickEventPubSubWhenDefined(t,this),this._eventHandler.subscribe(this._grid.onDrag,this.handleDrag.bind(this)).subscribe(this._grid.onDragInit,this.handleDragInit.bind(this)).subscribe(this._grid.onDragStart,this.handleDragStart.bind(this)).subscribe(this._grid.onDragEnd,this.handleDragEnd.bind(this)).subscribe(this._grid.onScroll,this.handleScroll.bind(this))}destroy(){this.dispose()}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),ee(this._activeCanvas),ee(this._canvas),(t=this._decorator)==null||t.destroy(),this.stopIntervalTimer()}getCellDecorator(){return this._decorator}getCurrentRange(){return this._currentlySelectedRange}getMouseOffsetViewport(e,t){var m;const i=((m=e==null?void 0:e.touches)==null?void 0:m[0])??e,s=this._activeViewport.scrollLeft,n=this._activeViewport.scrollTop,o=s+this._viewportWidth,l=n+this._viewportHeight,a=ge(this._activeViewport),h=a.left,d=a.top,c=h+this._viewportWidth,u=d+this._viewportHeight,p={e,dd:t,viewport:{left:s,top:n,right:o,bottom:l,offset:{left:h,top:d,right:c,bottom:u}},offset:{x:0,y:0},isOutsideViewport:!1};return i.pageX<h?p.offset.x=i.pageX-h:i.pageX>c&&(p.offset.x=i.pageX-c),i.pageY<d?p.offset.y=d-i.pageY:i.pageY>u&&(p.offset.y=u-i.pageY),p.isOutsideViewport=!!p.offset.x||!!p.offset.y,p}stopIntervalTimer(){this._autoScrollTimerId&&(window.clearInterval(this._autoScrollTimerId),this._autoScrollTimerId=void 0)}handleDrag(e,t){if(!this._dragging&&!this._gridOptions.enableRowMoveManager)return;this._gridOptions.enableRowMoveManager||e.stopImmediatePropagation();const i=e.getNativeEvent();if(this.addonOptions.autoScroll&&(this._draggingMouseOffset=this.getMouseOffsetViewport(i,t),this._draggingMouseOffset.isOutsideViewport))return this.handleDragOutsideViewport();this.stopIntervalTimer(),this.handleDragTo(i,t)}handleDragOutsideViewport(){if(this._xDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.x)*this.addonOptions.accelerateInterval,this._yDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.y)*this.addonOptions.accelerateInterval,!this._autoScrollTimerId){let e=0,t=0;this._autoScrollTimerId=window.setInterval(()=>{let i=!1,s=!1;this._draggingMouseOffset.offset.x?(e+=this.addonOptions.minIntervalToShowNextCell,i=e>=this._xDelayForNextCell):e=0,this._draggingMouseOffset.offset.y?(t+=this.addonOptions.minIntervalToShowNextCell,s=t>=this._yDelayForNextCell):t=0,(i||s)&&(i&&(e=0),s&&(t=0),this.handleDragToNewPosition(i,s))},this.addonOptions.minIntervalToShowNextCell)}}handleDragToNewPosition(e,t){let i=this._draggingMouseOffset.e.pageX,s=this._draggingMouseOffset.e.pageY;const n=this._draggingMouseOffset.offset.x,o=this._draggingMouseOffset.offset.y,l=this._draggingMouseOffset.viewport.offset;e&&n&&(n>0?i=l.right+this._moveDistanceForOneCell.x:i=l.left-this._moveDistanceForOneCell.x),t&&o&&(o>0?s=l.top-this._moveDistanceForOneCell.y:s=l.bottom+this._moveDistanceForOneCell.y),this.handleDragTo({pageX:i,pageY:s},this._draggingMouseOffset.dd)}handleDragTo(e,t){var n;const i=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,s=this._grid.getCellFromPoint(i.pageX-ge(this._activeCanvas).left+this._columnOffset,i.pageY-ge(this._activeCanvas).top+this._rowOffset);if(s!==void 0){if(this._gridOptions.frozenColumn>=0&&(!this._isRightCanvas&&s.cell>this._gridOptions.frozenColumn||this._isRightCanvas&&s.cell<=this._gridOptions.frozenColumn)||this._gridOptions.frozenRow>=0&&(!this._isBottomCanvas&&s.row>=this._gridOptions.frozenRow||this._isBottomCanvas&&s.row<this._gridOptions.frozenRow))return;if(this.addonOptions.autoScroll&&this._draggingMouseOffset){const o=this._grid.getCellNodeBox(s.row,s.cell);if(o){const l=this._draggingMouseOffset.viewport;(o.left<l.left||o.right>l.right||o.top<l.top||o.bottom>l.bottom)&&this._grid.scrollCellIntoView(s.row,s.cell)}}if(!this._grid.canCellBeSelected(s.row,s.cell))return;if(t!=null&&t.range){t.range.end=s;const o=new tt(t.range.start.row??0,t.range.start.cell??0,s.row,s.cell);this._decorator.show(o),this.onCellRangeSelecting.notify({range:o})}}}handleDragEnd(e,t){this._decorator.hide(),this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),this.stopIntervalTimer(),this.onCellRangeSelected.notify({range:new tt(t.range.start.row??0,t.range.start.cell??0,t.range.end.row,t.range.end.cell)}))}handleDragInit(e){var n,o;this._activeCanvas=this._grid.getActiveCanvasNode(e),this._activeViewport=this._grid.getActiveViewportNode(e);const t=this._grid.getDisplayedScrollbarDimensions();if(this._viewportWidth=this._activeViewport.offsetWidth-t.width,this._viewportHeight=this._activeViewport.offsetHeight-t.height,this._moveDistanceForOneCell={x:this._grid.getAbsoluteColumnMinWidth()/2,y:this._gridOptions.rowHeight/2},this._rowOffset=0,this._columnOffset=0,this._isBottomCanvas=this._activeCanvas.classList.contains("grid-canvas-bottom"),this._gridOptions.frozenRow>-1&&this._isBottomCanvas){const l=`${this.gridUidSelector} .grid-canvas-${this._gridOptions.frozenBottom?"bottom":"top"}`;this._rowOffset=((n=document.querySelector(l))==null?void 0:n.clientHeight)??0}this._isRightCanvas=this._activeCanvas.classList.contains("grid-canvas-right"),this._gridOptions.frozenColumn>-1&&this._isRightCanvas&&(this._columnOffset=((o=document.querySelector(`${this.gridUidSelector} .grid-canvas-left`))==null?void 0:o.clientWidth)??0);const i=this._grid.getCellFromEvent(e),s=this._grid.getActiveCell();(!this._grid.getEditorLock().isActive()||!(s&&i&&s.row===i.row&&s.cell===i.cell))&&(e.stopImmediatePropagation(),e.preventDefault())}handleDragStart(e,t){const i=this._grid.getCellFromEvent(e);if(i&&this.onBeforeCellRangeSelected.notify(i).getReturnValue()!==!1&&this._grid.canCellBeSelected(i.row,i.cell)&&(this._dragging=!0,e.stopImmediatePropagation()),!this._dragging)return;this._grid.focus();const s=ge(this._canvas);let n=t.startX-s.left;this._gridOptions.frozenColumn>=0&&this._isRightCanvas&&(n+=this._scrollLeft);let o=t.startY-s.top;this._gridOptions.frozenRow>=0&&this._isBottomCanvas&&(o+=this._scrollTop);const l=this._grid.getCellFromPoint(n,o);return t.range={start:l,end:{}},this._currentlySelectedRange=t.range,this._decorator.show(new tt(l.row,l.cell))}handleScroll(e,t){this._scrollTop=t.scrollTop,this._scrollLeft=t.scrollLeft}}class jc{constructor(e){this.pluginName="CellSelectionModel",this._cachedPageRowCount=0,this._prevKeyDown="",this._ranges=[],this._defaults={selectActiveCell:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._selector=e===void 0||e.cellRangeSelector===void 0?new mr({selectionCss:{border:"2px solid black"}}):e.cellRangeSelector,this._addonOptions=e}get addonOptions(){return this._addonOptions}get cellRangeSelector(){return this._selector}get eventHandler(){return this._eventHandler}init(e){this._grid=e,(this._addonOptions===void 0||this._addonOptions.cellRangeSelector===void 0)&&(this._selector=new mr({selectionCss:{border:`2px solid ${this._grid.getOptions().darkMode?"white":"black"}`}})),e.hasDataView()&&(this._dataView=e.getData()),this._addonOptions={...this._defaults,...this._addonOptions};const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)).subscribe(this._selector.onBeforeCellRangeSelected,this.handleBeforeCellRangeSelected.bind(this)).subscribe(this._selector.onCellRangeSelected,this.handleCellRangeSelected.bind(this)),e.registerPlugin(this._selector)}destroy(){this.dispose()}dispose(){var e,t;this._selector&&(this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this))),this._eventHandler.unsubscribeAll(),(e=this._grid)==null||e.unregisterPlugin(this._selector),(t=this._selector)==null||t.dispose()}getSelectedRanges(){return this._ranges}rangesAreEqual(e,t){let i=e.length!==t.length;if(!i){for(let s=0;s<e.length;s++)if(e[s].fromCell!==t[s].fromCell||e[s].fromRow!==t[s].fromRow||e[s].toCell!==t[s].toCell||e[s].toRow!==t[s].toRow){i=!0;break}}return!i}refreshSelections(){this.setSelectedRanges(this.getSelectedRanges())}removeInvalidRanges(e){const t=[];for(let i=0;i<e.length;i++){const s=e[i];this._grid.canCellBeSelected(s.fromRow,s.fromCell)&&this._grid.canCellBeSelected(s.toRow,s.toCell)&&t.push(s)}return t}resetPageRowCount(){this._cachedPageRowCount=0}setSelectedRanges(e,t="SlickCellSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;const i=!this.rangesAreEqual(this._ranges,e);if(this._ranges=this.removeInvalidRanges(e),i){const s=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,s)}}handleActiveCellChange(e,t){var n,o;this._prevSelectedRow=void 0;const i=q(t.cell),s=q(t.row);(n=this._addonOptions)!=null&&n.selectActiveCell&&s&&i?this.setSelectedRanges([new tt(t.row,t.cell)]):(!((o=this._addonOptions)!=null&&o.selectActiveCell)||!s&&!i)&&this.setSelectedRanges([])}handleBeforeCellRangeSelected(e){const t=this._grid.getCellFromEvent(e),i=this._grid.getActiveCell();if(this._grid.getEditorLock().isActive()&&i&&t&&i.row===t.row&&i.cell===t.cell)return e.stopPropagation(),!1}handleCellRangeSelected(e,t){this._grid.setActiveCell(t.range.fromRow,t.range.fromCell,!1,!1,!0),this.setSelectedRanges([t.range])}isKeyAllowed(e,t){return["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","PageDown","PageUp","Home","End",...t?[]:["a","A"]].some(i=>i===e)}handleKeyDown(e){var l,a;let t,i;const s=this._grid.getColumns().length,n=this._grid.getActiveCell();let o=0;if(this._dataView&&"getPagingInfo"in this._dataView?o=((l=this._dataView)==null?void 0:l.getPagingInfo().pageSize)||this._dataView.getLength():o=this._grid.getDataLength(),n&&(e.shiftKey||e.ctrlKey)&&!e.altKey&&this.isKeyAllowed(e.key,e.shiftKey)&&(t=this.getSelectedRanges().slice(),t.length||t.push(new tt(n.row,n.cell)),i=t.pop(),typeof(i==null?void 0:i.contains)=="function")){i.contains(n.row,n.cell)||(i=new tt(n.row,n.cell));let h=i.toRow-i.fromRow,d=i.toCell-i.fromCell,c,u=0;e.ctrlKey&&((a=e.key)==null?void 0:a.toLowerCase())==="a"&&(this._grid.setActiveCell(0,0,!1,!1,!0),n.row=0,n.cell=0,c=s-1,u=o-1);const p=n.row===i.fromRow?1:-1,m=n.cell===i.fromCell?1:-1,f=e.key.startsWith("Arrow");f&&!e.ctrlKey?(e.key==="ArrowLeft"?d-=m:e.key==="ArrowRight"?d+=m:e.key==="ArrowUp"?h-=p:e.key==="ArrowDown"&&(h+=p),u=n.row+p*h):(this._cachedPageRowCount<1&&(this._cachedPageRowCount=this._grid.getViewportRowCount()),this._prevSelectedRow===void 0&&(this._prevSelectedRow=n.row),!e.ctrlKey&&e.shiftKey&&e.key==="Home"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowLeft"?(c=0,u=n.row):!e.ctrlKey&&e.shiftKey&&e.key==="End"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowRight"?(c=s-1,u=n.row):e.ctrlKey&&e.shiftKey&&e.key==="ArrowUp"?u=0:e.ctrlKey&&e.shiftKey&&e.key==="ArrowDown"?u=o-1:e.ctrlKey&&e.shiftKey&&e.key==="Home"?(c=0,u=0):e.ctrlKey&&e.shiftKey&&e.key==="End"?(c=s-1,u=o-1):e.key==="PageUp"?(this._prevSelectedRow>=0&&(u=this._prevSelectedRow-this._cachedPageRowCount),u<0&&(u=0)):e.key==="PageDown"&&(this._prevSelectedRow<=o-1&&(u=this._prevSelectedRow+this._cachedPageRowCount),u>o-1&&(u=o-1)),this._prevSelectedRow=u),c??(c=n.cell+m*d);const g=new tt(n.row,n.cell,u,c);if(this.removeInvalidRanges([g]).length){t.push(g);const _=p>0?g.toRow:g.fromRow,C=m>0?g.toCell:g.fromCell;f?(this._grid.scrollRowIntoView(_),this._grid.scrollCellIntoView(_,C,!1)):(this._grid.scrollRowIntoView(u),this._grid.scrollCellIntoView(u,C,!1))}else t.push(i);this.setSelectedRanges(t),e.preventDefault(),e.stopPropagation(),this._prevKeyDown=e.key}}}class fr{constructor(e){this.pluginName="RowSelectionModel",this._inHandler=!1,this._ranges=[],this._defaults={autoScrollWhenDrag:!0,cellRangeSelector:void 0,dragToSelect:!1,selectActiveRow:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._options={...this._defaults,...e}}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return(e=this._grid)==null?void 0:e.getOptions()}init(e){this._grid=e,this._options={...this._defaults,...this._options},this._selector=this.addonOptions.cellRangeSelector;const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),!this._selector&&this._options.dragToSelect&&(this._selector=new mr({selectionCss:{border:"none"},autoScroll:this._options.autoScrollWhenDrag}),this.addonOptions.cellRangeSelector=this._selector),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onClick,this.handleClick.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)),this._selector&&(this._grid.registerPlugin(this._selector),this._selector.onCellRangeSelecting.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.subscribe(this.handleBeforeCellRangeSelected.bind(this)))}destroy(){this.dispose()}dispose(){this._eventHandler.unsubscribeAll(),this.disposeSelector()}disposeSelector(){var e,t;this._selector&&(this._selector.onCellRangeSelecting.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._grid.unregisterPlugin(this._selector),(e=this._selector)==null||e.destroy(),(t=this._selector)==null||t.dispose())}getCellRangeSelector(){return this._selector}getSelectedRanges(){return this._ranges}getSelectedRows(){return this.rangesToRows(this._ranges)}refreshSelections(){this.setSelectedRows(this.getSelectedRows())}setSelectedRows(e){this.setSelectedRanges(this.rowsToRanges(e),"SlickRowSelectionModel.setSelectedRows")}setSelectedRanges(e,t="SlickRowSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;this._ranges=e;const i=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,i)}getRowsRange(e,t){let i;const s=[];for(i=e;i<=t;i++)s.push(i);for(i=t;i<e;i++)s.push(i);return s}handleBeforeCellRangeSelected(e,t){let i=!1;if(this.gridOptions.enableRowMoveManager&&(i=this.isHandlerColumn(t.cell)??!1),this._grid.getEditorLock().isActive()||i)return e.stopPropagation(),!1;this._grid.setActiveCell(t.row,t.cell)}handleCellRangeSelected(e,t){if(!this.gridOptions.multiSelect||!this.addonOptions.selectActiveRow)return!1;this.setSelectedRanges([new tt(t.range.fromRow,0,t.range.toRow,this._grid.getColumns().length-1)])}handleActiveCellChange(e,t){this._options.selectActiveRow&&t.row!==null&&this.setSelectedRanges([new tt(t.row,0,t.row,this._grid.getColumns().length-1)])}handleClick(e){const t=this._grid.getCellFromEvent(e);if(!t||!this._grid.canCellBeActive(t.row,t.cell)||!this.gridOptions.multiSelect||!e.ctrlKey&&!e.shiftKey&&!e.metaKey)return!1;let i=this.rangesToRows(this._ranges);const s=i.indexOf(t.row);if(s===-1&&(e.ctrlKey||e.metaKey))i.push(t.row),this._grid.setActiveCell(t.row,t.cell);else if(s!==-1&&(e.ctrlKey||e.metaKey))i=i.filter(o=>o!==t.row),this._grid.setActiveCell(t.row,t.cell);else if(i.length&&e.shiftKey){const o=i.pop(),l=Math.min(t.row,o),a=Math.max(t.row,o);i=[];for(let h=l;h<=a;h++)h!==o&&i.push(h);i.push(o),this._grid.setActiveCell(t.row,t.cell)}const n=this.rowsToRanges(i);return this.setSelectedRanges(n),e.stopImmediatePropagation(),!0}handleKeyDown(e){const t=this._grid.getActiveCell();if(this.gridOptions.multiSelect&&t&&e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){let i=this.getSelectedRows();i.sort((l,a)=>l-a),i.length||(i=[t.row]);let s,n=i[0],o=i[i.length-1];if(e.key==="ArrowDown"?s=t.row<o||n===o?++o:++n:s=t.row<o?--o:--n,s>=0&&s<this._grid.getDataLength()){this._grid.scrollRowIntoView(s);const l=this.rowsToRanges(this.getRowsRange(n,o));this.setSelectedRanges(l)}e.preventDefault(),e.stopPropagation()}}isHandlerColumn(e){const i=this._grid.getColumns()[e].behavior||"";return/move|selectAndMove/.test(i)}rangesToRows(e){const t=[];for(let i=0;i<e.length;i++)for(let s=e[i].fromRow;s<=e[i].toRow;s++)t.push(s);return t}rowsToRanges(e){const t=[],i=this._grid.getColumns().length-1;return e.forEach(s=>t.push(new tt(s,0,s,i))),t}}const Jl="mdi-icon-check",ea="mdi-icon-uncheck";class ta{constructor(e,t){this.pubSubService=e,this.pluginName="CheckboxSelectColumn",this._defaults={columnId:"_checkbox_selector",cssClass:null,field:"_checkbox_selector",hideSelectAllCheckbox:!1,name:"",toolTip:"Select/Deselect All",width:30,reorderable:!1,applySelectOnAllPages:!0,hideInColumnTitleRow:!1,hideInFilterHeaderRow:!0},this._addonOptions=this._defaults,this._checkboxColumnCellIndex=null,this._isSelectAllChecked=!1,this._isUsingDataView=!1,this._selectedRowsLookup={},this._selectAll_UID=this.createUID(),this._bindEventService=new Pe,this._eventHandler=new pe,this._addonOptions={...this._defaults,...t}}get addonOptions(){return this._addonOptions}get headerRowNode(){return this._headerRowNode}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get selectAllUid(){return this._selectAll_UID}set selectedRowsLookup(e){this._selectedRowsLookup=e}init(e){this._grid=e,this._isUsingDataView=!Array.isArray(e.getData()),this._isUsingDataView&&(this._dataView=e.getData()),this.gridOptions.backendServiceApi&&(this._addonOptions.applySelectOnAllPages=!1),this._eventHandler.subscribe(e.onSelectedRowsChanged,this.handleSelectedRowsChanged.bind(this)).subscribe(e.onClick,this.handleClick.bind(this)).subscribe(e.onKeyDown,this.handleKeyDown.bind(this)).subscribe(e.onAfterSetColumns,this.handleDataViewSelectedIdsChanged.bind(this)),this._isUsingDataView&&this._dataView&&this._addonOptions.applySelectOnAllPages&&this._eventHandler.subscribe(this._dataView.onSelectedRowIdsChanged,this.handleDataViewSelectedIdsChanged.bind(this)).subscribe(this._dataView.onPagingInfoChanged,this.handleDataViewSelectedIdsChanged.bind(this)),this._addonOptions.hideInFilterHeaderRow||this.addCheckboxToFilterHeaderRow(e),this._addonOptions.hideInColumnTitleRow||this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this)),(!this._rowSelectionModel||!this._grid.getSelectionModel())&&(this._rowSelectionModel=new fr(this.gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionModel)),this.gridOptions.preselectedRows&&this._rowSelectionModel&&this._grid.getSelectionModel()&&window.setTimeout(()=>this.selectRows(this.gridOptions.preselectedRows||[])),typeof this._addonOptions.selectableOverride=="function"&&this.selectableOverride(this._addonOptions.selectableOverride)}dispose(){this._bindEventService.unbindAll(),this._eventHandler.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.checkboxSelector},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=((i=t==null?void 0:t.checkboxSelector)==null?void 0:i.columnIndexPosition)??0;n>0?e.splice(n,0,s):e.unshift(s),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getOptions(){return this._addonOptions}setOptions(e){var t;if(this._addonOptions={...this._addonOptions,...e},this._addonOptions.hideSelectAllCheckbox)this.hideSelectAllFromColumnHeaderTitleRow(),this.hideSelectAllFromColumnHeaderFilterRow();else if(this._addonOptions.hideInColumnTitleRow?(this.hideSelectAllFromColumnHeaderTitleRow(),this._addonOptions.name&&this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name,"")):(this.renderSelectAllCheckbox(this._isSelectAllChecked),this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this))),this._addonOptions.hideInFilterHeaderRow)this.hideSelectAllFromColumnHeaderFilterRow();else{const i=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");if(i){i.style.display="flex",i.ariaChecked=String(this._isSelectAllChecked);const s=i.querySelector('input[type="checkbox"]');s&&(s.ariaChecked=String(this._isSelectAllChecked),s.checked=this._isSelectAllChecked)}}}deSelectRows(e){const t=[];for(const i of e)this._selectedRowsLookup[i]&&(t[t.length]=i);this._grid.setSelectedRows(this._grid.getSelectedRows().filter(i=>t.indexOf(i)<0),"SlickCheckboxSelectColumn.deSelectRows")}selectRows(e){var s;const t=[];for(const n of e)this._selectedRowsLookup[n]&&(t[t.length]=n);const i=(s=this._grid.getSelectedRows())==null?void 0:s.concat(t);this._grid.setSelectedRows(i)}createCheckboxElement(e,t=!1){var o;const i=(o=this.gridOptions)!=null&&o.preventDocumentFragmentUsage?document.createElement("span"):new DocumentFragment,s=v("label",{className:"checkbox-selector-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"});return n.appendChild(v("input",{id:e,type:"checkbox",checked:t,ariaChecked:String(t)})),n.appendChild(v("div",{className:`mdi ${t?Jl:ea}`})),s.appendChild(n),i.appendChild(s),i}getColumnDefinition(){var t;const e=String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId);return{id:e,name:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?this._addonOptions.name||"":this.createCheckboxElement(`header-selector${this._selectAll_UID}`),toolTip:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?"":this._addonOptions.toolTip,field:e,cssClass:this._addonOptions.cssClass,excludeFromExport:!0,excludeFromColumnPicker:!0,excludeFromGridMenu:!0,excludeFromQuery:!0,excludeFromHeaderMenu:!0,hideSelectAllCheckbox:this._addonOptions.hideSelectAllCheckbox,resizable:!1,reorderable:this._addonOptions.reorderable,sortable:!1,width:this._addonOptions.width||30,maxWidth:this._addonOptions.width||30,formatter:this.checkboxSelectionFormatter.bind(this)}}hideSelectAllFromColumnHeaderTitleRow(){this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name||"","")}hideSelectAllFromColumnHeaderFilterRow(){var t;const e=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");e&&(e.style.display="none")}toggleRowSelection(e){this.toggleRowSelectionWithEvent(null,e)}toggleRowSelectionWithEvent(e,t){const i=this._grid.getDataItem(t);if(!this.checkSelectableOverride(t,i,this._grid))return;const s=this._grid.getSelectedRows();typeof this._addonOptions.onRowToggleStart=="function"&&this._addonOptions.onRowToggleStart(e,{row:t,previousSelectedRows:s});const n=this._selectedRowsLookup[t]?this._grid.getSelectedRows().filter(o=>o!==t):this._grid.getSelectedRows().concat(t);this._grid.setSelectedRows(n,"click.toggle"),this._grid.setActiveCell(t,this.getCheckboxColumnCellIndex()),this._addonOptions.onRowToggleEnd&&this._addonOptions.onRowToggleEnd(e,{row:t,previousSelectedRows:s})}selectableOverride(e){this._selectableOverride=e}addCheckboxToFilterHeaderRow(e){this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{if(i.column.field===(this._addonOptions.field||"_checkbox_selector")){ee(i.node);const s=`header-filter-selector${this._selectAll_UID}`,n=v("label",{id:"filter-checkbox-selectall-container",htmlFor:s}),o=v("div",{className:"icon-checkbox-container"});o.appendChild(v("input",{id:s,type:"checkbox",ariaChecked:"false"})),o.appendChild(v("div",{className:"mdi mdi-icon-uncheck"})),n.appendChild(o),i.node.appendChild(n),this._headerRowNode=i.node,this._headerRowNode.classList.add("checkbox-header"),this._bindEventService.bind(n,"click",l=>this.handleHeaderClick(l,i))}})}checkboxSelectionFormatter(e,t,i,s,n,o){if(n&&this.checkSelectableOverride(e,n,o)){const l=this.createUID()+e;return this.createCheckboxElement(`selector${l}`,!!this._selectedRowsLookup[e])}return null}checkSelectableOverride(e,t,i){return typeof this._selectableOverride=="function"?this._selectableOverride(e,t,i):!0}createUID(){return Math.round(1e7*Math.random())}getCheckboxColumnCellIndex(){if(this._checkboxColumnCellIndex===null){this._checkboxColumnCellIndex=0;const e=this._grid.getColumns();for(let t=0;t<e.length;t++)e[t].id===this._addonOptions.columnId&&(this._checkboxColumnCellIndex=t)}return this._checkboxColumnCellIndex}handleDataViewSelectedIdsChanged(){var s,n;const e=this._dataView.getAllSelectedFilteredIds(),t=this._dataView.getFilteredItems();let i=0;if(typeof this._selectableOverride=="function"&&e.length>0)for(let o=0;o<this._dataView.getItemCount();o++){const l=this._dataView.getItemByIdx(o),a=this._dataView.getIdPropertyName(),h=l[a];t.findIndex(c=>c[a]===h)>=0&&!this.checkSelectableOverride(o,l,this._grid)&&i++}if(this._isSelectAllChecked=e.length+i>=t.length,!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow){const o=(s=this.headerRowNode)==null?void 0:s.querySelector(`#header-filter-selector${this._selectAll_UID}`),l=(n=this.headerRowNode)==null?void 0:n.querySelector(".icon-checkbox-container .mdi");o&&(o.ariaChecked=String(this._isSelectAllChecked),o.checked=this._isSelectAllChecked),l&&(l.className=`mdi ${this._isSelectAllChecked?Jl:ea}`)}}handleClick(e,t){if(this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}this.toggleRowSelectionWithEvent(e,t.row),e.stopPropagation(),e.stopImmediatePropagation()}}handleHeaderClick(e,t){if(t.column.id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}let i=e.target.checked;const s=i?"click.selectAll":"click.unselectAll",n=this._grid.getSelectedRows();this._addonOptions.onSelectAllToggleStart&&this._addonOptions.onSelectAllToggleStart(e,{previousSelectedRows:n,caller:s});let o=[];if(i){const l=[];for(let a=0;a<this._grid.getDataLength();a++){const h=this._grid.getDataItem(a);!h.__group&&!h.__groupTotals&&this.checkSelectableOverride(a,h,this._grid)&&l.push(a)}o=l,i=!0}if(this._isUsingDataView&&this._dataView&&this._addonOptions.applySelectOnAllPages){const l=[],a=this._dataView.getFilteredItems();for(let h=0;h<a.length;h++){const d=a[h];this.checkSelectableOverride(h,d,this._grid)&&l.push(d[this._dataView.getIdPropertyName()])}this._dataView.setSelectedIds(l,{isRowBeingAdded:i})}this._grid.setSelectedRows(o,s),this._addonOptions.onSelectAllToggleEnd&&this._addonOptions.onSelectAllToggleEnd(e,{rows:o,previousSelectedRows:n,caller:s}),e.stopPropagation(),e.stopImmediatePropagation()}}handleKeyDown(e,t){e.key===" "&&this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&((!this._grid.getEditorLock().isActive()||this._grid.getEditorLock().commitCurrentEdit())&&this.toggleRowSelectionWithEvent(e,t.row),e.preventDefault(),e.stopImmediatePropagation())}handleSelectedRowsChanged(){var a;const e=this._grid.getSelectedRows(),t={};let i=0,s=0,n=0,o=0;if(typeof this._selectableOverride=="function")for(n=0;n<this._grid.getDataLength();n++){const h=this._grid.getDataItem(n);this.checkSelectableOverride(s,h,this._grid)||o++}const l=[];for(s=0;s<e.length;s++){i=e[s];const h=this._grid.getDataItem(i);this.checkSelectableOverride(s,h,this._grid)?(t[i]=!0,t[i]!==this._selectedRowsLookup[i]&&(this._grid.invalidateRow(i),delete this._selectedRowsLookup[i])):l.push(i)}if(typeof this._selectedRowsLookup=="object"&&Object.keys(this._selectedRowsLookup).forEach(h=>{h!==void 0&&this._grid.invalidateRow(+h)}),this._selectedRowsLookup=t,this._grid.render(),this._isSelectAllChecked=((e==null?void 0:e.length)??0)+o>=this._grid.getDataLength(),(!this._isUsingDataView||!this._addonOptions.applySelectOnAllPages)&&(!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow)){const h=(a=this.headerRowNode)==null?void 0:a.querySelector(`#header-filter-selector${this._selectAll_UID}`);h&&(h.ariaChecked=String(this._isSelectAllChecked),h.checked=this._isSelectAllChecked)}if(l.length>0){for(const h of l){const d=e.indexOf(h);e.splice(d,1)}this._grid.setSelectedRows(e,"click.toggle")}}renderSelectAllCheckbox(e){const t=this._grid.updateColumnHeader(this._addonOptions.columnId||"",this.createCheckboxElement(`header-selector${this._selectAll_UID}`,!!e),this._addonOptions.toolTip);t==null||t.classList.add("header-checkbox-selectall")}}class ia extends zs{constructor(e,t,i,s,n){var o;super(e,i,s),this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this._areVisibleColumnDifferent=!1,this._columns=[],this._columnCheckboxes=[],this._commandMenuElm=null,this._headerElm=null,this._isMenuOpen=!1,this._subMenuParentId="",this._defaults={dropSide:"left",showButton:!0,hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",marginBottom:15,menuWidth:18,minHeight:150,contentMinWidth:0,resizeOnShowHeaderRow:!1,syncResizeTitle:"Synchronous resize",subMenuOpenByEvent:"mouseover",headerColumnValueExtractor:l=>_t(l.columnPickerLabel||l.name||"","innerHTML")},this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-grid-menu",this._camelPluginName="gridMenu",this._columns=this.sharedService.allColumns??[],this._gridUid=((o=this.grid)==null?void 0:o.getUID())??"",this.onAfterMenuShow=new P("onAfterMenuShow"),this.onBeforeMenuShow=new P("onBeforeMenuShow"),this.onMenuClose=new P("onMenuClose"),this.onCommand=new P("onCommand"),this.onColumnsChanged=new P("onColumnsChanged"),this.initEventHandlers(),this.init()}get addonOptions(){return this._addonOptions||{}}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())||{}}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}initEventHandlers(){this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,e=>this.hideMenu(e)),this._eventHandler.subscribe(this.grid.onBeforeDestroy,this.dispose.bind(this)),this._eventHandler.subscribe(this.grid.onSetOptions,(e,t)=>{if(t&&t.optionsBefore&&t.optionsAfter){const i=t.optionsBefore.frozenColumn>=0&&t.optionsAfter.frozenColumn===-1,s=t.optionsBefore.frozenColumn===-1&&t.optionsAfter.frozenColumn>=0;(i||s)&&this.recreateGridMenu()}})}init(){this._gridUid=this.grid.getUID()??"",T.addSlickEventPubSubWhenDefined(this.pubSubService,this),this._userOriginalGridMenu={...this.sharedService.gridOptions.gridMenu},this._addonOptions={...this._defaults,...this.getDefaultGridMenuOptions(),...this.sharedService.gridOptions.gridMenu},this.sharedService.gridOptions.gridMenu=this._addonOptions;const e=this._userOriginalGridMenu.commandItems,t=this._userOriginalGridMenu&&Array.isArray(e)?e:[];this._addonOptions.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(this._addonOptions.commandItems||[],"commandItems"),this.extensionUtility.sortItems(this._addonOptions.commandItems,"positionOrder"),this.createGridMenu()}dispose(){this.deleteMenu(),super.dispose()}deleteMenu(){var e,t;this._bindEventService.unbindAll(),(e=this._menuElm)==null||e.remove(),this._menuElm=null,(t=this._gridMenuButtonElm)==null||t.remove(),this._headerElm&&(this._headerElm.style.width="100%")}createColumnPickerContainer(){this._menuElm&&(oa.call(this,this._menuElm),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(this._menuElm,"click",la.bind(this),void 0,"parent-menu"))}createGridMenu(){var n,o;const e=this._gridUid?`.${this._gridUid}`:"",t=((n=this._addonOptions)==null?void 0:n.menuWidth)||this._defaults.menuWidth,i=this.gridOptions.hasOwnProperty("frozenColumn")&&this.gridOptions.frozenColumn>=0?"right":"left",s=this.grid.getContainerNode();if(this._headerElm=s.querySelector(`.slick-header-${i}`),this._headerElm&&this._addonOptions){if(this._headerElm.style.width=`calc(100% - ${t}px)`,(this._addonOptions.resizeOnShowHeaderRow??this._defaults.resizeOnShowHeaderRow)&&this.gridOptions.showHeaderRow){const h=s.querySelector(`${e} .slick-headerrow`);h&&(h.style.width=`calc(100% - ${t}px)`)}if(this._addonOptions.showButton??this._defaults.showButton){this._gridMenuButtonElm=v("button",{className:"slick-grid-menu-button",ariaLabel:"Grid Menu"}),(o=this._addonOptions)!=null&&o.iconCssClass&&this._gridMenuButtonElm.classList.add(...he(this._addonOptions.iconCssClass));const h=this._addonOptions.iconButtonContainer==="preheader"?"firstChild":"lastChild";this._headerElm.parentElement.insertBefore(this._gridMenuButtonElm,this._headerElm.parentElement[h]),this._bindEventService.bind(this._gridMenuButtonElm,"click",this.showGridMenu.bind(this))}this.sharedService.gridOptions.gridMenu={...this._defaults,...this._addonOptions},this.translateTitleLabels(this._addonOptions),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this)),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this))}}createCommandMenu(e,t=0,i){const s=i==null?void 0:i.command;let n=t===1&&s?s.replace(/\s/g,""):"";n&&(this._subMenuParentId=n),t>1&&(n=this._subMenuParentId);const o=`${this.menuCssClass} slick-menu-level-${t} ${this._gridUid}`,l=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${t}${this.gridUidSelector}`);if(l){if(l.dataset.subMenuParent===n)return l;this.disposeSubMenus()}const a=v("div",{role:"menu",className:o,ariaLabel:t>1?"SubMenu":"Grid Menu"});t>0&&(a.classList.add("slick-submenu"),n&&(a.dataset.subMenuParent=n));const h={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns(),level:t};return this._commandMenuElm=this.recreateCommandList(e,a,h,i),t++,a}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}hideMenu(e){var i,s,n;const t={grid:this.grid,menu:this._menuElm,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};if(this.pubSubService.publish("onGridMenuMenuClose",t),!(typeof((i=this._addonOptions)==null?void 0:i.onMenuClose)=="function"&&this._addonOptions.onMenuClose(e,t)===!1||this.onMenuClose.notify(t,null,this).getReturnValue()===!1)){if(this._isMenuOpen=!1,typeof((s=this.grid)==null?void 0:s.autosizeColumns)=="function"){const o=this.grid.getUID()||"";this._areVisibleColumnDifferent&&o&&document.querySelector(`.${o}`)!==null&&(this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this._areVisibleColumnDifferent=!1)}this.disposeSubMenus(),(n=this._menuElm)==null||n.remove(),this._menuElm=null}}recreateGridMenu(){this.deleteMenu(),this.init()}repositionMenu(e,t,i,s){var a,h;const n=((a=e==null?void 0:e.touches)==null?void 0:a[0])??e,o=t.classList.contains("slick-submenu"),l=o?e.target.closest(".slick-menu-item"):n.target;if(l){const d=i||this._gridMenuButtonElm,c=ge(i),u=ge(l),p=s??this._addonOptions,m=getComputedStyle(d),f=parseInt((m==null?void 0:m.width)??((h=this._defaults)==null?void 0:h.menuWidth),10),g=(t==null?void 0:t.offsetWidth)??0,_=(p==null?void 0:p.contentMinWidth)??this._defaults.contentMinWidth??0,C=(_>g?_:g)||0,b=c.top,S=c.right;let E,y;if(o?(y=u.top,E=u.left):(y=b+d.offsetHeight,E=(p==null?void 0:p.dropSide)==="right"?S-f:S-C),o){const D=(t==null?void 0:t.clientHeight)||0,{bottom:L,top:M}=Vi(l);(L<D&&M>L?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),y-=D-l.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}const x=this.grid.getGridPosition();let O=E+Number(g);o&&(O+=l.clientWidth);const I=document.documentElement.clientWidth;(O>=x.width||O>=I?"left":"right")==="left"||!o&&(p==null?void 0:p.dropSide)==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),o&&(E-=Number(g))):(t.classList.remove("dropleft"),t.classList.add("dropright"),o&&(E+=l.offsetWidth)),t.style.top=`${y}px`,t.style.left=`${E}px`,_>0&&(t.style.minWidth=`${_}px`),t.style.opacity="1",t.style.display="block"}}openGridMenu(){const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,composed:!1});Object.defineProperty(e,"target",{writable:!0,configurable:!0,value:v("button",{className:"slick-grid-menu-button"})}),this.showGridMenu(e)}showGridMenu(e,t){var s,n,o;const i=((s=e==null?void 0:e.touches)==null?void 0:s[0])??e;if(e.preventDefault(),ee(this._menuElm),(n=this._menuElm)==null||n.remove(),this._addonOptions){const l={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns()},a={...this._addonOptions,...t};if(a&&!this.extensionUtility.runOverrideFunctionWhenExists(a.menuUsabilityOverride,l)||typeof e.stopPropagation=="function"&&(this.pubSubService.publish("onGridMenuBeforeMenuShow",l),typeof(a==null?void 0:a.onBeforeMenuShow)=="function"&&a.onBeforeMenuShow(e,l)===!1||this.onBeforeMenuShow.notify(l,null,this).getReturnValue()===!1))return;this._menuElm=this.createCommandMenu(((o=this._addonOptions)==null?void 0:o.commandItems)??[]),this.createColumnPickerContainer(),$s.call(this),this._columnCheckboxes=[],ha.call(this,a),document.body.appendChild(this._menuElm),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),this._menuElm.style.opacity="0";const h=((a==null?void 0:a.marginBottom)!==void 0?a.marginBottom:this._defaults.marginBottom)||0;this._menuElm.style.minHeight=Pt(a==null?void 0:a.minHeight,""),(a==null?void 0:a.height)!==void 0?this._menuElm.style.height=Pt(a.height,""):this._menuElm.style.maxHeight=Pt(a==null?void 0:a.maxHeight,`${window.innerHeight-i.clientY-h}px`);let d=e.target.nodeName==="BUTTON"?e.target:e.target.querySelector("button");d||(d=e.target.parentElement),this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm),this.repositionMenu(e,this._menuElm,d,a),this._isMenuOpen=!0,this.pubSubService.publish("onGridMenuAfterMenuShow",l),typeof(a==null?void 0:a.onAfterMenuShow)=="function"&&a.onAfterMenuShow(e,l),this.onAfterMenuShow.notify(l,null,this)}}translateGridMenu(){var e;if(this.sharedService.gridOptions.gridMenu){this.sharedService.gridOptions.gridMenu.commandItems=[],this.sharedService.gridOptions.gridMenu.commandTitle="",this.sharedService.gridOptions.gridMenu.columnTitle="",this.sharedService.gridOptions.gridMenu.forceFitTitle="",this.sharedService.gridOptions.gridMenu.syncResizeTitle="";const t=this._userOriginalGridMenu&&Array.isArray(this._userOriginalGridMenu.commandItems)?this._userOriginalGridMenu.commandItems:[];this.sharedService.gridOptions.gridMenu.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(((e=this._addonOptions)==null?void 0:e.commandItems)||[],"commandItems"),this.extensionUtility.sortItems(this.sharedService.gridOptions.gridMenu.commandItems,"positionOrder"),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this.translateTitleLabels(this._addonOptions),this.extensionUtility.translateItems(this._columns,"nameKey","name")}}translateTitleLabels(e){e&&(e.commandTitle=this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"),e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),e.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),e.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"))}addGridMenuCustomCommands(e){var l,a;const t=this.gridOptions.backendServiceApi||null,i=[],s=this.gridOptions,n=lt(s),o=(l=this._addonOptions)==null?void 0:l.commandLabels;if(this._addonOptions&&this.gridOptions){if(!this._addonOptions.hideClearFrozenColumnsCommand){const d="clear-pinning";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearFrozenColumnsCommand||"mdi mdi-pin-off-outline",titleKey:`${n}${(o==null?void 0:o.clearFrozenColumnsCommandKey)??"CLEAR_PINNING"}`,disabled:!1,command:d,positionOrder:52})}if(this.gridOptions.enableFiltering&&!this.sharedService.hideHeaderRowAfterPageLoad){if(!this._addonOptions.hideClearAllFiltersCommand){const d="clear-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllFiltersCommand||"mdi mdi-filter-remove-outline",titleKey:`${n}${(o==null?void 0:o.clearAllFiltersCommandKey)??"CLEAR_ALL_FILTERS"}`,disabled:!1,command:d,positionOrder:50})}if(!this._addonOptions.hideToggleFilterCommand){const d="toggle-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleFilterCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.toggleFilterCommandKey)??"TOGGLE_FILTER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(t&&!this._addonOptions.hideRefreshDatasetCommand){const d="refresh-dataset";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconRefreshDatasetCommand||"mdi mdi-sync",titleKey:`${n}${(o==null?void 0:o.refreshDatasetCommandKey)??"REFRESH_DATASET"}`,disabled:!1,command:d,positionOrder:58})}}if(!this._addonOptions.hideToggleDarkModeCommand){const d="toggle-dark-mode";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleDarkModeCommand||"mdi mdi-brightness-4",titleKey:`${n}${(o==null?void 0:o.toggleDarkModeCommandKey)??"TOGGLE_DARK_MODE"}`,disabled:!1,command:d,positionOrder:54})}if(this.gridOptions.showPreHeaderPanel&&!this._addonOptions.hideTogglePreHeaderCommand){const d="toggle-preheader";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconTogglePreHeaderCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.togglePreHeaderCommandKey)??"TOGGLE_PRE_HEADER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(this.gridOptions.enableSorting&&!this._addonOptions.hideClearAllSortingCommand){const d="clear-sorting";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllSortingCommand||"mdi mdi-sort-variant-off",titleKey:`${n}${(o==null?void 0:o.clearAllSortingCommandKey)??"CLEAR_ALL_SORTING"}`,disabled:!1,command:d,positionOrder:51})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportCsvCommand){const d="export-csv";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportCsvCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportCsvCommandKey)??"EXPORT_TO_CSV"}`,disabled:!1,command:d,positionOrder:55})}if(this.gridOptions.enableExcelExport&&!this._addonOptions.hideExportExcelCommand){const d="export-excel";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportExcelCommand||"mdi mdi-file-excel-outline text-success",titleKey:`${n}${(o==null?void 0:o.exportExcelCommandKey)??"EXPORT_TO_EXCEL"}`,disabled:!1,command:d,positionOrder:56})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportTextDelimitedCommand){const d="export-text-delimited";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportTextDelimitedCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportTextDelimitedCommandKey)??"EXPORT_TO_TAB_DELIMITED"}`,disabled:!1,command:d,positionOrder:57})}const h=((a=this._addonOptions)==null?void 0:a.commandItems)||[];(Array.isArray(i)&&i.length>0||Array.isArray(h)&&h.length>0)&&(this._addonOptions.commandTitle=this._addonOptions.commandTitle||this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"))}return i}executeGridMenuInternalCustomCommands(e,t){var s,n,o;const i=((s=this.sharedService)==null?void 0:s.externalRegisteredResources)||[];if(t!=null&&t.command)switch(t.command){case"clear-pinning":const l=[...this.sharedService.visibleColumns],a={frozenColumn:-1,frozenRow:-1,frozenBottom:!1,enableMouseWheelScrollHandler:!1};this.grid.setOptions(a),this.sharedService.gridOptions.frozenColumn=a.frozenColumn,this.sharedService.gridOptions.frozenRow=a.frozenRow,this.sharedService.gridOptions.frozenBottom=a.frozenBottom,this.sharedService.gridOptions.enableMouseWheelScrollHandler=a.enableMouseWheelScrollHandler,Array.isArray(l)&&this.grid.setColumns(l),this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this.pubSubService.publish("onGridMenuClearAllPinning");break;case"clear-filter":this.filterService.clearFilters(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllFilters");break;case"clear-sorting":this.sortService.clearSorting(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllSorting");break;case"export-csv":const d=i.find(g=>g.className==="TextExportService");d!=null&&d.exportToFile?d.exportToFile({delimiter:Ot.comma,format:ve.csv}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"export-excel":const c=i.find(g=>g.className==="ExcelExportService");c!=null&&c.exportToExcel?c.exportToExcel():console.error("[Slickgrid-Universal] You must register the ExcelExportService to properly use Export to Excel in the Grid Menu. Example:: this.gridOptions = { enableExcelExport: true, externalResources: [new ExcelExportService()] };");break;case"export-text-delimited":const u=i.find(g=>g.className==="TextExportService");u!=null&&u.exportToFile?u.exportToFile({delimiter:Ot.tab,format:ve.txt}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"toggle-dark-mode":const p=this.sharedService.gridOptions.darkMode;this.grid.setOptions({darkMode:!p}),this.sharedService.gridOptions.darkMode=!p;break;case"toggle-filter":let m=((n=this.gridOptions)==null?void 0:n.showHeaderRow)??!1;m=!m,this.grid.setHeaderRowVisibility(m),m===!0&&(this.grid.setColumns(this.sharedService.columnDefinitions),this.grid.scrollColumnIntoView(0));break;case"toggle-preheader":const f=((o=this.gridOptions)==null?void 0:o.showPreHeaderPanel)??!1;this.grid.setPreHeaderPanelVisibility(!f);break;case"refresh-dataset":this.extensionUtility.refreshBackendDataset();break}}getDefaultGridMenuOptions(){return{commandTitle:void 0,columnTitle:this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),forceFitTitle:this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),syncResizeTitle:this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"),iconCssClass:"mdi mdi-menu",menuWidth:18,commandItems:[],hideClearAllFiltersCommand:!1,hideRefreshDatasetCommand:!1,hideToggleFilterCommand:!1}}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this._isMenuOpen&&this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.hideMenu(e)}}handleMenuItemCommandClick(e,t,i,s=0){var n,o;if(i!=="divider"&&!i.disabled&&!i.divider)if((i.command||"")&&!i.commandItems){const a={grid:this.grid,command:i.command,item:i,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};this.executeGridMenuInternalCustomCommands(e,a),this.pubSubService.publish("onGridMenuCommand",a),typeof((n=this._addonOptions)==null?void 0:n.onCommand)=="function"&&this._addonOptions.onCommand(e,a),this.onCommand.notify(a,null,this),typeof i.action=="function"&&i.action.call(this,e,a),!((o=this._addonOptions)!=null&&o.leaveOpen)&&!e.defaultPrevented&&this.hideMenu(e),e.preventDefault(),e.stopPropagation()}else i.commandItems&&this.repositionSubMenu(e,i,s)}handleMenuItemMouseOver(e,t,i,s=0){i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems?this.repositionSubMenu(e,i,s):s===0&&this.disposeSubMenus())}recreateCommandList(e,t,i,s){const n=i.level||0;if(e.length>0){const o=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},t);if(n===0){this.populateCommandOrOptionTitle("command",this.addonOptions,o,n);const l=t.querySelector(".slick-command-header")??v("div",{className:"slick-command-header"});l.classList.add("with-close"),ra.call(this,l),o.appendChild(l)}return s&&n>0&&this.addSubMenuTitleWhenExists(s,o),this.populateCommandOrOptionItems("command",this._addonOptions,o,e,i,this.handleMenuItemCommandClick,this.handleMenuItemMouseOver),o}return null}repositionSubMenu(e,t,i){const s=(t==null?void 0:t.commandItems)||[],n=this.createCommandMenu(s,i+1,t);n.style.display="block",document.body.appendChild(n),this.repositionMenu(e,n)}}const sa="mdi-icon-picker-check",na="mdi-icon-picker-uncheck";function ra(r){const t=v("button",{type:"button",className:"close",ariaLabel:"Close",textContent:"×",dataset:{dismiss:this instanceof _r?"slick-column-picker":"slick-grid-menu"}});r.appendChild(t)}function oa(r){var t,i;const e=this;(t=e.addonOptions)!=null&&t.columnTitle&&(e._columnTitleElm=v("div",{className:"slick-menu-title",textContent:((i=e.addonOptions)==null?void 0:i.columnTitle)??e._defaults.columnTitle},r))}function la(r){var o,l;const e=this,t=e instanceof _r?"columnPicker":"gridMenu",i=(o=r.target)==null?void 0:o.closest(".icon-checkbox-container"),s=i==null?void 0:i.querySelector(".mdi"),n=!!r.target.checked;if(r.target.ariaChecked=String(n),aa(s,n),r.target.dataset.option==="autoresize"){const a=e.getVisibleColumns();e.grid.setOptions({forceFitColumns:n}),e.grid.setColumns(a);return}if(r.target.dataset.option==="syncresize"){e.grid.setOptions({syncColumnCellResize:n});return}if(r.target.type==="checkbox"){e._areVisibleColumnDifferent=!0;const a=r.target.dataset.columnid||"",h=[];if(e._columnCheckboxes.forEach((u,p)=>{u.checked&&h.push(e.columns[p])}),!h.length){r.target.checked=!0,aa(s,!0);return}if(e.grid.setColumns(h),(!e.sharedService.visibleColumns||Array.isArray(h)&&h.length!==e.sharedService.visibleColumns.length)&&(e.sharedService.visibleColumns=h),e.gridOptions.enableRowSelection&&n){const u=e.grid.getSelectedRows();e.grid.setSelectedRows(u)}const d=e.gridOptions.frozenColumn??-1;d>=0&&e.extensionUtility.readjustFrozenColumnIndexWhenNeeded(d,e.columns,h);const c={columnId:a,showing:n,allColumns:e.columns,visibleColumns:h,columns:h,grid:e.grid};e.pubSubService.publish(`on${ti(t)}ColumnsChanged`,c),typeof((l=e.addonOptions)==null?void 0:l.onColumnsChanged)=="function"&&e.addonOptions.onColumnsChanged(r,c),e.onColumnsChanged.notify(c,null,e)}}function aa(r,e=!1){r&&(r.className=`mdi ${e?sa:na}`)}function gr(r,e,t,i=!1){const s=v("label",{className:"checkbox-picker-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"}),o=v("input",{id:e,type:"checkbox",dataset:t}),l=v("div",{className:`mdi ${i?sa:na}`}),a=v("span",{className:"checkbox-label"});return n.appendChild(o),n.appendChild(l),s.appendChild(n),s.appendChild(a),r.appendChild(s),i&&(o.ariaChecked="true",o.checked=!0),{inputElm:o,labelElm:s,labelSpanElm:a}}function ha(r){const e=this,t=e instanceof ia,i=t?"gridmenu-":"";for(const s of e.columns){const n=s.id,o=document.createElement("li");(s.excludeFromColumnPicker&&!t||s.excludeFromGridMenu&&t)&&(o.className="hidden");const l=`${e._gridUid}-${i}colpicker-${n}`,a=e.grid.getColumnIndex(n)>=0,{inputElm:h,labelElm:d,labelSpanElm:c}=gr(o,l,{columnid:`${n}`},a);e._columnCheckboxes.push(h);const p=(typeof(r==null?void 0:r.headerColumnValueExtractor)=="function"?r.headerColumnValueExtractor:e._defaults.headerColumnValueExtractor)(s,e.gridOptions);this.grid.applyHtmlCode(c,p),o.appendChild(d),e._listElm.appendChild(o)}if((!r.hideForceFitButton||!r.hideSyncResizeButton)&&e._listElm.appendChild(document.createElement("hr")),!(r!=null&&r.hideForceFitButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-forcefit`,{labelSpanElm:o}=gr(s,n,{option:"autoresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.forceFitTitle)??"",e._listElm.appendChild(s)}if(!(r!=null&&r.hideSyncResizeButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-syncresize`,{labelSpanElm:o}=gr(s,n,{option:"syncresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.syncResizeTitle)??"",e._listElm.appendChild(s)}}function $s(){const r=this,e=r.grid.getColumns().slice(0),t=new Array(r.columns.length);for(let i=0;i<t.length;i++)r.grid.getColumnIndex(r.columns[i].id)===void 0?t[i]=r.columns[i]:t[i]=e.shift();r._columns=t}class _r{constructor(e,t,i){var s,n;this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._areVisibleColumnDifferent=!1,this._columns=[],this._gridUid="",this._menuElm=null,this._columnCheckboxes=[],this._defaults={hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",minHeight:150,syncResizeTitle:"Synchronous resize",headerColumnValueExtractor:o=>_t(o.columnPickerLabel||o.name||"","innerHTML")},this._bindEventService=new Pe,this.onColumnsChanged=new P("onColumnsChanged"),this._eventHandler=new pe,this._columns=this.sharedService.allColumns??[],this._gridUid=((n=(s=this.grid)==null?void 0:s.getUID)==null?void 0:n.call(s))??"",this.init()}get addonOptions(){return this.gridOptions.columnPicker||{}}get eventHandler(){return this._eventHandler}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){return this.sharedService.gridOptions??{}}get grid(){return this.sharedService.slickGrid}get menuElement(){return this._menuElm}init(){this._gridUid=this.grid.getUID()??"",this.gridOptions.columnPicker={...this._defaults,...this.gridOptions.columnPicker},this.onColumnsChanged.setPubSubService(this.pubSubService),this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker"),this._eventHandler.subscribe(this.grid.onPreHeaderContextMenu,e=>{["slick-column-name","slick-header-column"].some(t=>{var i;return(i=e.target)==null?void 0:i.classList.contains(t)})&&this.handleHeaderContextMenu(e)}),this._eventHandler.subscribe(this.grid.onHeaderContextMenu,this.handleHeaderContextMenu.bind(this)),this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.disposeMenu.bind(this)),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this),void 0,"body"),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this),void 0,"body")}dispose(){this._eventHandler.unsubscribeAll(),this._bindEventService.unbindAll(),this.disposeMenu()}disposeMenu(){var e,t;this._bindEventService.unbindAll("parent-menu"),(e=this._listElm)==null||e.remove(),(t=this._menuElm)==null||t.remove(),this._menuElm=null}createPickerMenu(){const e=v("div",{ariaExpanded:"true",className:`slick-column-picker ${this._gridUid}`,role:"menu"});return $s.call(this),oa.call(this,e),ra.call(this,e),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(e,"click",la.bind(this),void 0,"parent-menu"),document.body.appendChild(e),e}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}translateColumnPicker(){this.addonOptions&&(this.addonOptions.columnTitle="",this.addonOptions.forceFitTitle="",this.addonOptions.syncResizeTitle="",this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker")),this.extensionUtility.translateItems(this._columns,"nameKey","name"),this.translateTitleLabels(this.addonOptions)}handleBodyMouseDown(e){var t;(this._menuElm!==e.target&&!((t=this._menuElm)!=null&&t.contains(e.target))||e.target.className==="close"&&e.target.closest(".slick-column-picker"))&&this.disposeMenu()}handleHeaderContextMenu(e){e.preventDefault(),ee(this._menuElm),this._columnCheckboxes=[],this._menuElm=this.createPickerMenu(),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),ha.call(this,this.addonOptions),document.body.appendChild(this._menuElm),this.repositionMenu(e)}repositionMenu(e){var i;const t=((i=e==null?void 0:e.touches)==null?void 0:i[0])??e;if(this._menuElm){const s=this.grid.getGridPosition(),n=this._menuElm.clientWidth||0;let o=t.pageX||0;s!=null&&s.width&&o+n>=s.width&&(o=o-n),this._menuElm.style.top=`${t.pageY-10}px`,this._menuElm.style.left=`${o}px`,this._menuElm.style.minHeight=Pt(this.addonOptions.minHeight,""),this._menuElm.style.maxHeight=Pt(this.addonOptions.maxHeight,`${window.innerHeight-t.clientY}px`),this._menuElm.style.display="block",this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm)}}translateTitleLabels(e){e&&(e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"))}}const Ws=(r,e,t,i,s,n)=>{const o=i.params||{};if(!o.formatters||!Array.isArray(o.formatters))throw new Error(`[Slickgrid-Universal] The multiple formatter requires the "formatters" to be provided as a column params.
|
|
12
12
|
For example: this.columnDefinitions = [{ id: title, field: title, formatter: Formatters.multiple, params: { formatters: [Formatters.lowercase, Formatters.uppercase] }`);const l=o.formatters;let a=t;return l.forEach((h,d)=>{if(typeof h!="function")throw new Error(`[Slickgrid-Universal] the "params.formatters" at index(${d}) to be used by "Formatters.multiple" is invalid, please verify all formatter functions.`);a=h.call(void 0,r,e,a,i,s,n)}),a};function da(r,e){if(Array.isArray(r)){for(const t of r)if(t.editor)if(t.formatter&&t.formatter!==Ws&&t.formatter!==e){const i=t.formatter;t.formatter=Ws,t.params={...t.params,formatters:[i,e]}}else t.formatter&&t.formatter===Ws&&t.params?t.params.formatters.findIndex(i=>i===e)===-1&&(t.params.formatters=[...t.params.formatters,e]):t.formatter=e}}function Se(r,e,t,i){let s,n,o="",l="";switch(t){case"currency":s=R.DEFAULT_FORMATTER_CURRENCY_MIN_DECIMAL,n=R.DEFAULT_FORMATTER_CURRENCY_MAX_DECIMAL;break;case"decimal":s=R.DEFAULT_FORMATTER_NUMBER_MIN_DECIMAL,n=R.DEFAULT_FORMATTER_NUMBER_MAX_DECIMAL;break;case"percent":s=R.DEFAULT_FORMATTER_PERCENT_MIN_DECIMAL,n=R.DEFAULT_FORMATTER_PERCENT_MAX_DECIMAL;break}const a=e&&typeof e.getOptions=="function"?e.getOptions():{},h=wt("minDecimal",r,a,s),d=wt("maxDecimal",r,a,n),c=wt("decimalSeparator",r,a,R.DEFAULT_NUMBER_DECIMAL_SEPARATOR),u=wt("thousandSeparator",r,a,R.DEFAULT_NUMBER_THOUSAND_SEPARATOR),p=wt("displayNegativeNumberWithParentheses",r,a,R.DEFAULT_NEGATIVE_NUMBER_WRAPPED_IN_BRAQUET),m=wt("currencyPrefix",r,a,""),f=wt("currencySuffix",r,a,"");return i==="cell"&&(o=wt("numberPrefix",r,a,""),l=wt("numberSuffix",r,a,"")),{minDecimal:h,maxDecimal:d,decimalSeparator:c,thousandSeparator:u,wrapNegativeNumber:p,currencyPrefix:m,currencySuffix:f,numberPrefix:o,numberSuffix:l}}function wt(r,e,t,i){var n;const s=e&&e.params;return s&&s.hasOwnProperty(r)?s[r]:(n=t==null?void 0:t.formatterOptions)!=null&&n.hasOwnProperty(r)?t.formatterOptions[r]:i}function ye(r,e){const t=Ke(r,{withZeroPadding:!0});return(i,s,n,o,l,a)=>{var g,_;const h=a&&typeof a.getOptions=="function"?a.getOptions():{},d=((g=h==null?void 0:h.formatterOptions)==null?void 0:g.dateSeparator)??e,c=(o==null?void 0:o.type)??w.date,u=Ke(c,{withDefaultIso8601:!0}),p=((_=o==null?void 0:o.params)==null?void 0:_.parseDateAsUtc)??!1,m=bt(n,u);let f=n;if(m){let C=m;p&&(C=Yh(m)),f=et(C,t,"en-US")}if(f&&d!==e){const C=new RegExp(e,"ig");f=f.replace(C,d)}return f}}function Cr(r,e,t,i,s,n){let o=!1;t!=null&&t.hasOwnProperty("exportWithFormatter")?o=!!t.exportWithFormatter:n!=null&&n.hasOwnProperty("exportWithFormatter")&&(o=!!n.exportWithFormatter);let l;i&&t.exportCustomFormatter?l=t.exportCustomFormatter:o&&t.formatter&&(l=t.formatter);const a=Gs(l,r,e,t,i,s);return n!=null&&n.sanitizeDataExport&&typeof a=="string"?we(a):a}function Gs(r,e,t,i,s,n){let o="",a=i.field||i.id||"";if(typeof i.field=="string"&&i.field.indexOf(".")>0){const d=i.field.split(".");a=d.length>0?d[0]:i.field}const h=s!=null&&s.hasOwnProperty(a)?s[a]:null;if(typeof r=="function"){const d=r(e,t,h,i,s,n),c=ei(d)?d:d.html||d.text;o=_t(c)}else o=s!=null&&s.hasOwnProperty(a)?h:"";return o==null&&(o=""),typeof o=="object"&&!(o instanceof Date)&&Object.entries(o).length===0&&(o=""),o}class Yc extends Zl{constructor(e,t,i,s){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.treeDataService=s,this._defaults={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:0,autoAlignSideOffset:0,hideMenuOnScroll:!1,optionShownOverColumnIds:[],commandShownOverColumnIds:[],subMenuOpenByEvent:"mouseover"},this.pluginName="ContextMenu",this._camelPluginName="contextMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-context-menu",this.init(i.gridOptions.contextMenu)}init(e){this._addonOptions={...this._defaults,...e};const t=this._addonOptions&&Array.isArray(this._addonOptions.commandItems)?this._addonOptions.commandItems:[];this._addonOptions.commandItems=[...t,...this.addMenuCustomCommands(t)],this._addonOptions={...this._addonOptions},this.sharedService.gridOptions.contextMenu=this._addonOptions,this.sortMenuItems(),this._eventHandler.subscribe(this.grid.onContextMenu,this.handleOnContextMenu.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.hideMenu.bind(this)),this._addonOptions.hideMenuOnScroll&&this._eventHandler.subscribe(this.grid.onScroll,this.closeMenu.bind(this))}translateContextMenu(){var i;const e=((i=this.sharedService)==null?void 0:i.gridOptions)??{},t=this.sharedService.gridOptions.contextMenu;if(t&&(e!=null&&e.enableTranslate)){const s=t.commandItems||[],n=t.optionItems||[];t.commandTitleKey&&(t.commandTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(t.commandTitleKey,"TEXT_COMMANDS")||t.commandTitle),t.optionTitleKey&&(t.optionTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(t.optionTitleKey,"TEXT_COMMANDS")||t.optionTitle),this.extensionUtility.translateMenuItemsFromTitleKey(s,"commandItems"),this.extensionUtility.translateMenuItemsFromTitleKey(n,"optionItems")}}handleOnContextMenu(e,t){this.disposeAllMenus();const i=this.grid.getCellFromEvent(e);if(i){const s=this.grid.getDataItem(i.row),n=this.grid.getColumns()[i.cell],o=t||{};if(o.cell=i.cell,o.row=i.row,o.column=n,o.dataContext=s,o.grid=this.grid,!this.extensionUtility.runOverrideFunctionWhenExists(this._addonOptions.menuUsabilityOverride,o))return;this._menuElm=this.createParentMenu(e),this._menuElm&&e.preventDefault(),this._menuElm&&this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),this._menuElm&&(this.repositionMenu(e,this._menuElm),this._menuElm.ariaExpanded="true",this._menuElm.style.display="block"),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}}addMenuCustomCommands(e){var l;const t=[],i=this.sharedService&&this.sharedService.gridOptions||{},s=i==null?void 0:i.contextMenu,n=(l=this.sharedService)==null?void 0:l.dataView,o=lt(i);if(s&&!s.hideCopyCellValueCommand){const a="copy";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconCopyCellValueCommand||"mdi mdi-content-copy",titleKey:`${o}COPY`,disabled:!1,command:a,positionOrder:50,action:(h,d)=>{this.copyToClipboard(d)},itemUsabilityOverride:h=>{const d=h==null?void 0:h.column,c=h==null?void 0:h.dataContext;if(typeof d.queryFieldNameGetterFn=="function"){const u=Ni(d,c,"");if(u!==""&&u!==void 0)return!0}else if(d&&c.hasOwnProperty(d.field))return c[d.field]!==""&&c[d.field]!==null&&c[d.field]!==void 0;return!1}})}if(i!=null&&i.enableTextExport&&s&&!s.hideExportCsvCommand){const a="export-csv";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExportCsvCommand||"mdi mdi-download",titleKey:`${o}EXPORT_TO_CSV`,disabled:!1,command:a,positionOrder:51,action:()=>{var c;const d=(((c=this.sharedService)==null?void 0:c.externalRegisteredResources)||[]).find(u=>u.className==="TextExportService");if(d!=null&&d.exportToFile)d.exportToFile({delimiter:Ot.comma,format:ve.csv});else throw new Error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Context Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };")}})}if(i&&i.enableExcelExport&&s&&!s.hideExportExcelCommand){const a="export-excel";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExportExcelCommand||"mdi mdi-file-excel-outline text-success",titleKey:`${o}EXPORT_TO_EXCEL`,disabled:!1,command:a,positionOrder:52,action:()=>{var c;const d=(((c=this.sharedService)==null?void 0:c.externalRegisteredResources)||[]).find(u=>u.className==="ExcelExportService");if(d!=null&&d.exportToExcel)d.exportToExcel();else throw new Error("[Slickgrid-Universal] You must register the ExcelExportService to properly use Export to Excel in the Context Menu. Example:: this.gridOptions = { enableExcelExport: true, externalResources: [new ExcelExportService()] };")}})}if(i!=null&&i.enableTextExport&&s&&!s.hideExportTextDelimitedCommand){const a="export-text-delimited";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExportTextDelimitedCommand||"mdi mdi-download",titleKey:`${o}EXPORT_TO_TAB_DELIMITED`,disabled:!1,command:a,positionOrder:53,action:()=>{var c;const d=(((c=this.sharedService)==null?void 0:c.externalRegisteredResources)||[]).find(u=>u.className==="TextExportService");if(d!=null&&d.exportToFile)d.exportToFile({delimiter:Ot.tab,format:ve.txt});else throw new Error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Context Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };")}})}if(i&&(i.enableGrouping||i.enableDraggableGrouping||i.enableTreeData)){if(s&&!s.hideCopyCellValueCommand&&t.push({divider:!0,command:"",positionOrder:54}),i&&!i.enableTreeData&&s&&!s.hideClearAllGrouping){const a="clear-grouping";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconClearGroupingCommand||"mdi mdi-close",titleKey:`${o}CLEAR_ALL_GROUPING`,disabled:!1,command:a,positionOrder:55,action:()=>{n.setGrouping([]),this.pubSubService.publish("onContextMenuClearGrouping")},itemUsabilityOverride:()=>{const h=n&&n.getGrouping&&n.getGrouping();return Array.isArray(h)&&h.length>0}})}if(i&&s&&!s.hideCollapseAllGroups){const a="collapse-all-groups";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconCollapseAllGroupsCommand||"mdi mdi-arrow-collapse",titleKey:`${o}COLLAPSE_ALL_GROUPS`,disabled:!1,command:a,positionOrder:56,action:()=>{i.enableTreeData?this.treeDataService.toggleTreeDataCollapse(!0):n.collapseAllGroups(),this.pubSubService.publish("onContextMenuCollapseAllGroups")},itemUsabilityOverride:()=>{if(i.enableTreeData)return!0;const h=n&&n.getGrouping&&n.getGrouping();return Array.isArray(h)&&h.length>0}})}if(i&&s&&!s.hideExpandAllGroups){const a="expand-all-groups";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExpandAllGroupsCommand||"mdi mdi-arrow-expand",titleKey:`${o}EXPAND_ALL_GROUPS`,disabled:!1,command:a,positionOrder:57,action:()=>{i.enableTreeData?this.treeDataService.toggleTreeDataCollapse(!1):n.expandAllGroups(),this.pubSubService.publish("onContextMenuExpandAllGroups")},itemUsabilityOverride:()=>{if(i.enableTreeData)return!0;const h=n&&n.getGrouping&&n.getGrouping();return Array.isArray(h)&&h.length>0}})}}return this.extensionUtility.translateMenuItemsFromTitleKey(t),t}copyToClipboard(e){var t,i;try{if(e&&e.grid&&e.command){const s=((t=this.sharedService)==null?void 0:t.gridOptions)??{},n=(e==null?void 0:e.cell)??0,o=(e==null?void 0:e.row)??0,l=e==null?void 0:e.column,a=e==null?void 0:e.dataContext,h=(i=this.sharedService)==null?void 0:i.slickGrid,d=s&&(s.excelExportOptions||s.textExportOptions);let c=Cr(o,n,l,a,h,d);typeof l.queryFieldNameGetterFn=="function"&&(c=Ni(l,a,""));let u=c;typeof c=="string"&&(u=c.replace(/^([·|⮞|⮟]\s*)|([·|⮞|⮟])\s*/gi,"").replace(/[\u00b7|\u034f]/gi,"").trim());const p=document.createElement("textarea");p&&document.body&&(p.style.position="absolute",p.style.opacity="0",p.value=u,document.body.appendChild(p),p.select(),document.execCommand("copy",!1,u)&&p.remove())}}catch{}}sortMenuItems(){var t,i;const e=(i=(t=this.sharedService)==null?void 0:t.gridOptions)==null?void 0:i.contextMenu;e&&(this.extensionUtility.sortItems(e.commandItems||[],"positionOrder"),this.extensionUtility.sortItems(e.optionItems||[],"positionOrder"))}}class qc{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.columnsGroupBy=[],this.pluginName="DraggableGrouping",this._gridColumns=[],this._gridUid="",this._isInitialized=!1,this._reorderedColumns=[],this._subscriptions=[],this._defaults={dropPlaceHolderText:"Drop a column header here to group by the column",hideGroupSortIcons:!1,hideToggleAllButton:!1,toggleAllButtonText:"",toggleAllPlaceholderText:"Toggle all Groups"},this._bindingEventService=new Pe,this.onGroupChanged=new P("onGroupChanged"),this._eventHandler=new pe}get addonOptions(){return this._addonOptions}get dataView(){var e;return((e=this.grid)==null?void 0:e.getData())??{}}get dropboxElement(){return this._dropzoneElm}get droppableInstance(){return this._droppableInstance}get sortableLeftInstance(){return this._sortableLeftInstance}get sortableRightInstance(){return this._sortableRightInstance}get eventHandler(){return this._eventHandler}get grid(){return this._grid??this.sharedService.slickGrid??{}}get gridOptions(){return this.sharedService.gridOptions??{}}get gridUid(){var e;return this._gridUid||(((e=this.grid)==null?void 0:e.getUID())??"")}get gridContainer(){return this.grid.getContainerNode()}set isInitialized(e){this._isInitialized=e}init(e,t){var i,s;if(this._addonOptions={...this._defaults,...t},this._grid=e,e){if(this._gridUid=e.getUID(),this._gridColumns=e.getColumns(),this._dropzoneElm=e.getTopHeaderPanel()||e.getPreHeaderPanel(),!this._dropzoneElm)throw new Error("[Slickgrid-Universal] Draggable Grouping requires the pre-header to be created and shown for the plugin to work correctly (use `createPreHeaderPanel` and `showPreHeaderPanel`).");if(this._dropzoneElm.classList.add("slick-dropzone"),this.onGroupChanged.setPubSubService(this.pubSubService),!this._addonOptions.hideToggleAllButton){this._groupToggler=v("div",{className:"slick-group-toggle-all",title:this._addonOptions.toggleAllPlaceholderText??"",style:{display:"none"}});const n=v("span",{className:"slick-group-toggle-all-icon"},this._groupToggler);this.gridOptions.enableTranslate&&this._addonOptions.toggleAllButtonTextKey&&(this._addonOptions.toggleAllButtonText=this.extensionUtility.translateWhenEnabledAndServiceExist(this._addonOptions.toggleAllButtonTextKey,"TEXT_TOGGLE_ALL_GROUPS")),this.gridOptions.enableTranslate&&this._addonOptions.toggleAllPlaceholderTextKey&&(this._addonOptions.toggleAllPlaceholderText=this.extensionUtility.translateWhenEnabledAndServiceExist(this._addonOptions.toggleAllPlaceholderTextKey,"TEXT_TOGGLE_ALL_GROUPS")),this._groupToggler.title=this._addonOptions.toggleAllPlaceholderText??"",this._addonOptions.toggleAllButtonText&&this._groupToggler.appendChild(v("span",{className:"slick-group-toggle-all-text",textContent:this._addonOptions.toggleAllButtonText||""})),this._dropzoneElm.appendChild(this._groupToggler),this._subscriptions.push(this.pubSubService.subscribe("onContextMenuCollapseAllGroups",()=>this.toggleGroupToggler(n,!0,!1)),this.pubSubService.subscribe("onContextMenuExpandAllGroups",()=>this.toggleGroupToggler(n,!1,!1)))}this._dropzonePlaceholderElm=v("div",{className:"slick-draggable-dropzone-placeholder"},this._dropzoneElm),this.gridOptions.enableTranslate&&((i=this._addonOptions)!=null&&i.dropPlaceHolderTextKey)&&(this._addonOptions.dropPlaceHolderText=this.extensionUtility.translateWhenEnabledAndServiceExist(this._addonOptions.dropPlaceHolderTextKey,"TEXT_TOGGLE_ALL_GROUPS")),this._dropzonePlaceholderElm.textContent=((s=this._addonOptions)==null?void 0:s.dropPlaceHolderText)??this._defaults.dropPlaceHolderText??"",this.setupColumnDropbox(),this._eventHandler.subscribe(e.onHeaderCellRendered,(n,o)=>{var a;const l=o.node;if(!Tn((a=o.column)==null?void 0:a.grouping)&&l&&(l.style.cursor="pointer",this._addonOptions.groupIconCssClass)){const h=v("span",{className:"slick-column-groupable"},l);this._addonOptions.groupIconCssClass&&h.classList.add(...he(this._addonOptions.groupIconCssClass))}}),this._subscriptions.push(this.pubSubService.subscribe("onContextMenuClearGrouping",()=>this.clearDroppedGroups()));for(const n of this._gridColumns){const o=n.field;e.updateColumnHeader(o)}}return this}dispose(){var e,t;this.destroySortableInstances(),(e=this._droppableInstance)!=null&&e.el&&((t=this._droppableInstance)==null||t.destroy()),this.onGroupChanged.unsubscribe(),this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions),this._bindingEventService.unbindAll(),ee(this.gridContainer.querySelector(`.${this.gridUid} .slick-preheader-panel,.${this.gridUid} .slick-topheader-panel`))}clearDroppedGroups(){this.columnsGroupBy=[],this.updateGroupBy("clear-all");const e=this._dropzoneElm.querySelectorAll(".slick-dropped-grouping");for(const t of Array.from(e)){const i=this._dropzoneElm.querySelector(".slick-groupby-remove");i==null||i.remove(),t==null||t.remove()}this._dropzonePlaceholderElm.style.display="inline-block",this._groupToggler&&(this._groupToggler.style.display="none")}destroySortableInstances(){var e,t,i,s;(e=this._sortableLeftInstance)!=null&&e.el&&((t=this._sortableLeftInstance)==null||t.destroy()),(i=this._sortableRightInstance)!=null&&i.el&&((s=this._sortableRightInstance)==null||s.destroy())}setAddonOptions(e){this._addonOptions={...this._addonOptions,...e}}setColumns(e){this._gridColumns=e}setDroppedGroups(e){this._dropzonePlaceholderElm.style.display="none";const t=Array.isArray(e)?e:[e];for(const i of t){const s=this.grid.getHeaderColumn(i);this.handleGroupByDrop(this._dropzoneElm,s)}}setupColumnReorder(e,t,i,s,n,o,l,a,h){this.destroySortableInstances();const d=e.getTopHeaderPanel()||e.getPreHeaderPanel(),c=d.querySelector(".slick-draggable-dropzone-placeholder"),u=d.querySelector(".slick-group-toggle-all"),p={animation:50,ghostClass:"slick-sortable-placeholder",draggable:".slick-header-column",dataIdAttr:"data-id",group:{name:"shared",pull:"clone",put:!1},revertClone:!0,onStart:m=>{m.item.classList.add("slick-header-column-active"),c&&(c.style.display="inline-block"),d.querySelectorAll(".slick-dropped-grouping").forEach(g=>g.style.display="none"),u&&(u.style.display="none")},onEnd:m=>{var b,S,E;m.item.classList.remove("slick-header-column-active"),d==null||d.classList.remove("slick-dropzone-hover"),(b=c==null?void 0:c.parentElement)==null||b.classList.remove("slick-dropzone-placeholder-hover");const f=d.querySelectorAll(".slick-dropped-grouping");if(f.forEach(y=>y.style.display="flex"),f.length&&(c&&(c.style.display="none"),u&&(u.style.display="inline-flex")),!e.getEditorLock().commitCurrentEdit())return;const g=((S=this.sortableLeftInstance)==null?void 0:S.toArray())??[];if(t.length>1){const y=((E=this._sortableRightInstance)==null?void 0:E.toArray())??[];for(const x of y)g.push(x)}const _=[],C=e.getColumns();for(const y of g)_.push(C[l.call(e,y)]);s.call(e,_),h.call(e,e.onColumnsReordered,{grid:e,impactedColumns:_}),m.stopPropagation(),n.call(e)}};return this._sortableLeftInstance=B.create(this.gridContainer.querySelector(`.${e.getUID()} .slick-header-columns.slick-header-columns-left`),p),this._sortableRightInstance=B.create(this.gridContainer.querySelector(`.${e.getUID()} .slick-header-columns.slick-header-columns-right`),p),this._addonOptions.initialGroupBy&&!this._isInitialized&&this.setDroppedGroups(this._addonOptions.initialGroupBy),this._isInitialized=!0,{sortableLeftInstance:this._sortableLeftInstance,sortableRightInstance:this._sortableRightInstance}}addColumnGroupBy(e){this.columnsGroupBy.push(e),this.updateGroupBy("add-group")}addGroupByRemoveClickHandler(e,t,i,s){this._bindingEventService.bind(t,"click",()=>{const n=this._bindingEventService.boundedEvents.filter(o=>o.element===t);for(const o of n)this._bindingEventService.unbind(o.element,"click",o.listener);this.removeGroupBy(e,i,s)})}addGroupSortClickHandler(e,t){const{grouping:i,type:s}=e;this._bindingEventService.bind(t,"click",()=>{if(this.toggleGroupAll(e,!1),i){const n=i.sortAsc?ae.desc:ae.asc;i.comparer=(o,l)=>_i(s||"text",o.value,l.value,n,e,this.gridOptions),this.getGroupBySortIcon(t,!i.sortAsc),this.updateGroupBy("sort-group"),i.sortAsc=!i.sortAsc,this.grid.invalidate()}})}getGroupBySortIcon(e,t=!0){t?this._addonOptions.sortAscIconCssClass?(e.classList.remove(...he(this._addonOptions.sortDescIconCssClass)),e.classList.add(...he(this._addonOptions.sortAscIconCssClass))):(e.classList.add("slick-groupby-sort-asc-icon"),e.classList.remove("slick-groupby-sort-desc-icon")):this._addonOptions.sortDescIconCssClass?(e.classList.remove(...he(this._addonOptions.sortAscIconCssClass)),e.classList.add(...he(this._addonOptions.sortDescIconCssClass))):this._addonOptions.sortDescIconCssClass||(e.classList.add("slick-groupby-sort-desc-icon"),e.classList.remove("slick-groupby-sort-asc-icon"))}handleGroupByDrop(e,t){var n,o,l;const i=(n=t.getAttribute("data-id"))==null?void 0:n.replace(this._gridUid,"");let s=!0;for(const a of this.columnsGroupBy)a.id===i&&(s=!1);if(s){for(const a of this._gridColumns)if(a.id===i&&a.grouping&&!Tn(a.grouping)){const h=t.querySelector(".slick-column-name"),d=v("div",{id:`${this._gridUid}_${a.id}_entry`,className:"slick-dropped-grouping",dataset:{id:`${a.id}`}});v("div",{className:"slick-dropped-grouping-title",style:{display:"inline-flex"},textContent:h?h.textContent:t.textContent},d);const c=v("div",{className:"slick-groupby-remove"});this._addonOptions.deleteIconCssClass&&c.classList.add(...he(this._addonOptions.deleteIconCssClass)),this._addonOptions.deleteIconCssClass||c.classList.add("slick-groupby-remove-icon");let u;((o=this._addonOptions)==null?void 0:o.hideGroupSortIcons)!==!0&&a.sortable&&(((l=a.grouping)==null?void 0:l.sortAsc)===void 0&&(a.grouping.sortAsc=!0),u=v("div",{className:"slick-groupby-sort"},d),this.getGroupBySortIcon(u,a.grouping.sortAsc)),d.appendChild(c),d.appendChild(document.createElement("div")),e.appendChild(d),this._groupToggler&&this.columnsGroupBy.length===0&&this.toggleGroupAll(a),this.addColumnGroupBy(a),this.addGroupByRemoveClickHandler(a.id,c,t,d),u&&this.addGroupSortClickHandler(a,u)}this._groupToggler&&this.columnsGroupBy.length>0&&(this._groupToggler.style.display="inline-flex")}}toggleGroupAll({grouping:e},t){var s;const i=(s=this._groupToggler)==null?void 0:s.querySelector(".slick-group-toggle-all-icon");t===!0||e!=null&&e.collapsed?(i==null||i.classList.add("collapsed"),i==null||i.classList.remove("expanded")):(i==null||i.classList.add("expanded"),i==null||i.classList.remove("collapsed"))}removeFromArray(e,t){if(Array.isArray(e)){const i=e.findIndex(s=>s.id===t.id);i>=0&&e.splice(i,1)}return e}removeGroupBy(e,t,i){i.remove();const s=[];this._gridColumns.forEach(n=>s[n.id]=n),this.removeFromArray(this.columnsGroupBy,s[e]),this.columnsGroupBy.length===0&&(this._dropzonePlaceholderElm.style.display="inline-block",this._groupToggler&&(this._groupToggler.style.display="none")),this.updateGroupBy("remove-group")}addDragOverDropzoneListeners(){const e=this._dropzoneElm.querySelector(".slick-draggable-dropzone-placeholder");e&&this._dropzoneElm&&(this._bindingEventService.bind(e,"dragover",t=>t.preventDefault()),this._bindingEventService.bind(e,"dragenter",()=>this._dropzoneElm.classList.add("slick-dropzone-hover")),this._bindingEventService.bind(e,"dragleave",()=>this._dropzoneElm.classList.remove("slick-dropzone-hover")))}setupColumnDropbox(){const e=this._dropzoneElm;this._droppableInstance=B.create(e,{group:"shared",ghostClass:"slick-droppable-sortitem-hover",draggable:".slick-dropped-grouping",dragoverBubble:!0,onAdd:t=>{var s,n;const i=t.item;(s=i.getAttribute("id"))!=null&&s.replace(this._gridUid,"")&&this.handleGroupByDrop(e,B.utils.clone(t.item)),(n=i.parentNode)==null||n.removeChild(i)},onUpdate:()=>{var s;const t=((s=this._droppableInstance)==null?void 0:s.toArray())??[],i=[];for(const n of t)for(const o of this.columnsGroupBy)if(o.id===n){i.push(o);break}this.columnsGroupBy=i,this.updateGroupBy("sort-group")}}),this.addDragOverDropzoneListeners(),this._groupToggler&&this._bindingEventService.bind(this._groupToggler,"click",t=>{const i=t.target.classList.contains("slick-group-toggle-all-icon")?t.target:t.currentTarget.querySelector(".slick-group-toggle-all-icon");this.toggleGroupToggler(i,i==null?void 0:i.classList.contains("expanded"))})}toggleGroupToggler(e,t=!0,i=!0){e&&(t===!0?(e.classList.add("collapsed"),e.classList.remove("expanded"),i&&this.dataView.collapseAllGroups()):(e.classList.remove("collapsed"),e.classList.add("expanded"),i&&this.dataView.expandAllGroups()))}updateGroupBy(e){if(this.columnsGroupBy.length===0){this.dataView.setGrouping([]),this._dropzonePlaceholderElm.style.display="inline-block",this.triggerOnGroupChangedEvent({caller:e,groupColumns:[]});return}const t=[];this.columnsGroupBy.forEach(i=>t.push(i.grouping)),this.dataView.setGrouping(t),this._dropzonePlaceholderElm.style.display="none",this.triggerOnGroupChangedEvent({caller:e,groupColumns:t})}triggerOnGroupChangedEvent(e){this._addonOptions&&typeof this._addonOptions.onGroupChanged=="function"&&this._addonOptions.onGroupChanged(new le,e),this.onGroupChanged.notify(e)}}class Kc extends zs{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._buttonElms=[],this._defaults={buttonCssClass:"slick-header-button"},this.pluginName="HeaderButtons",this._menuCssPrefix="slick-header-button",this._camelPluginName="headerButtons",this._bindEventService=new Pe,this._eventHandler=new pe,this.init(i.gridOptions.headerButton)}get addonOptions(){return this._addonOptions}set addonOptions(e){this._addonOptions=e}get eventHandler(){return this._eventHandler}get grid(){return this.sharedService.slickGrid}init(e){this._addonOptions={...this._defaults,...e},this._eventHandler.subscribe(this.grid.onHeaderCellRendered,this.handleHeaderCellRendered.bind(this)),this._eventHandler.subscribe(this.grid.onBeforeHeaderCellDestroy,this.handleBeforeHeaderCellDestroy.bind(this)),this.grid.setColumns(this.grid.getColumns())}dispose(){super.dispose(),this._buttonElms.forEach(e=>e.remove())}handleHeaderCellRendered(e,t){var s;const i=t.column;if((s=i.header)!=null&&s.buttons&&Array.isArray(i.header.buttons)){let n=i.header.buttons.length;for(;n--;){const o=i.header.buttons[n],l=this.populateSingleCommandOrOptionItem("command",this.addonOptions,null,o,t,this.handleButtonClick.bind(this));l&&o.handler&&!o.disabled&&this._bindEventService.bind(l,"click",a=>o.handler.call(this,a)),l&&(this._buttonElms.push(l),t.node.appendChild(l))}}}handleBeforeHeaderCellDestroy(e,t){var s,n,o;if((s=t.column.header)!=null&&s.buttons&&((n=this._addonOptions)!=null&&n.buttonCssClass)){const l=(((o=this._addonOptions)==null?void 0:o.buttonCssClass)||"").replace(/(\s+)/g,".");l&&t.node.querySelectorAll(`.${l}`).forEach(a=>a.remove())}}handleButtonClick(e,t,i,s,n){var o;if(i.command&&!i.disabled){const l=i.command||"",a={grid:this.grid,column:n,button:i};l&&(a.command=l),typeof i.action=="function"&&!i.disabled&&i.action.call(this,e,a),l!==null&&!i.disabled&&((o=this._addonOptions)!=null&&o.onCommand)&&(this.pubSubService.publish("onHeaderButtonCommand",a),this._addonOptions.onCommand(e,a),n!=null&&n.id&&this.grid.updateColumnHeader(n.id))}e.preventDefault(),e.stopPropagation()}}class Xc extends zs{constructor(e,t,i,s,n){super(e,i,s),this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this._subMenuParentId="",this._defaults={autoAlign:!0,autoAlignOffset:0,buttonCssClass:null,buttonImage:null,minWidth:100,hideColumnHideCommand:!1,hideSortCommands:!1,title:"",subMenuOpenByEvent:"mouseover"},this.pluginName="HeaderMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-header-menu",this._camelPluginName="headerMenu",this.sharedService.gridOptions.headerMenu=this.addHeaderMenuCustomCommands(this.sharedService.columnDefinitions),this.init(s.gridOptions.headerMenu)}init(e){this._addonOptions={...this._defaults,...e},this._eventHandler.subscribe(this.grid.onBeforeSetColumns,(t,i)=>{this.sharedService.gridOptions.headerMenu=this.addHeaderMenuCustomCommands(i.newColumns)}),this._eventHandler.subscribe(this.grid.onHeaderCellRendered,this.handleHeaderCellRendered.bind(this)),this._eventHandler.subscribe(this.grid.onBeforeHeaderCellDestroy,this.handleBeforeHeaderCellDestroy.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.hideMenu.bind(this)),this.grid.setColumns(this.grid.getColumns()),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}dispose(){var e;super.dispose(),this._menuElm=this._menuElm||document.body.querySelector(`.slick-header-menu${this.gridUidSelector}`),(e=this._menuElm)==null||e.remove(),this._activeHeaderColumnElm=void 0}hideColumn(e){var t,i;if((i=(t=this.sharedService)==null?void 0:t.slickGrid)!=null&&i.getColumnIndex){const s=this.sharedService.slickGrid.getColumnIndex(e.id),n=this.sharedService.slickGrid.getColumns(),o=this.sharedService.gridOptions.frozenColumn??-1;o>=0&&o>=s&&(this.sharedService.gridOptions.frozenColumn=o-1,this.sharedService.slickGrid.setOptions({frozenColumn:this.sharedService.gridOptions.frozenColumn}));const l=En(n,s);this.sharedService.visibleColumns=l,this.sharedService.slickGrid.setColumns(l),this.pubSubService.publish("onHeaderMenuHideColumns",{columns:l,hiddenColumn:e})}}hideMenu(){var e;this.disposeSubMenus(),(e=this._menuElm)==null||e.remove(),this._menuElm=void 0}repositionSubMenu(e,t,i,s){const n=this.createCommandMenu(t.commandItems||[],s,i+1,t);document.body.appendChild(n),this.repositionMenu(e,n)}repositionMenu(e,t){var p,m;const i=e.target,s=t.classList.contains("slick-submenu"),n=s?e.target.closest(".slick-menu-item"):i,o=this.sharedService.gridContainerElement.classList.contains("slickgrid-container")?this.sharedService.gridContainerElement:this.sharedService.gridContainerElement.querySelector(".slickgrid-container")??this.sharedService.gridContainerElement,l=co(o,i),a=this.grid.getGridPosition(),h=t.offsetWidth,d=ge(n);let c=s?d.left:(l==null?void 0:l.left)??0,u=s?d.top:((l==null?void 0:l.top)??0)+(((p=this.addonOptions)==null?void 0:p.menuOffsetTop)??0)+i.clientHeight;if(s){const f=(t==null?void 0:t.clientHeight)||0,{bottom:g,top:_}=Vi(n);(g<f&&_>g?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),u-=f-n.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}if(s&&n){const f=c+Number(h)+n.clientWidth,g=document.documentElement.clientWidth;(f>=a.width||f>=g?"left":"right")==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),c-=h):(t.classList.remove("dropleft"),t.classList.add("dropright"),c+=n.offsetWidth)}else c=(l==null?void 0:l.left)??0,this.addonOptions.autoAlign&&(a!=null&&a.width)&&c+(t.clientWidth??0)>=a.width&&(c=c+i.clientWidth-t.clientWidth+(((m=this.addonOptions)==null?void 0:m.autoAlignOffset)||0));t.style.top=`${u}px`,t.style.left=`${c}px`}translateHeaderMenu(){var e;(e=this.sharedService.gridOptions)!=null&&e.headerMenu&&this.resetHeaderMenuTranslations(this.sharedService.visibleColumns)}handleHeaderCellRendered(e,t){var n;const s=(n=t.column.header)==null?void 0:n.menu;if(s&&t.node){if(!this.extensionUtility.runOverrideFunctionWhenExists(this.addonOptions.menuUsabilityOverride,t))return;const o=v("div",{className:"slick-header-menu-button",ariaLabel:"Header Menu"},t.node);this.addonOptions.buttonCssClass&&o.classList.add(...he(this.addonOptions.buttonCssClass)),this.addonOptions.tooltip&&(o.title=this.addonOptions.tooltip),this._bindEventService.bind(o,"click",l=>{this.disposeAllMenus(),this.createParentMenu(l,t.column,s)})}}handleBeforeHeaderCellDestroy(e,t){var s;(s=t.column.header)!=null&&s.menu&&t.node.querySelectorAll(".slick-header-menu-button").forEach(n=>n.remove())}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this._menuElm!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.hideMenu()}}handleMenuItemCommandClick(e,t,i,s=0,n){var o;if(i!=="divider"&&!i.disabled&&!i.divider)if((i.command||"")&&!i.commandItems){const a={grid:this.grid,command:i.command,column:n,item:i};this.executeHeaderMenuInternalCommands(e,a),this.pubSubService.publish("onHeaderMenuCommand",a),typeof((o=this.addonOptions)==null?void 0:o.onCommand)=="function"&&this.addonOptions.onCommand(e,a),typeof i.action=="function"&&i.action.call(this,e,a),e.defaultPrevented||this.hideMenu(),e.preventDefault(),e.stopPropagation()}else i.commandItems&&this.repositionSubMenu(e,i,s,n)}handleMenuItemMouseOver(e,t,i,s=0,n){i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems?this.repositionSubMenu(e,i,s,n):s===0&&this.disposeSubMenus())}addHeaderMenuCustomCommands(e){const t=this.sharedService.gridOptions,i=t.headerMenu||{},s=lt(t);return Array.isArray(e)&&t.enableHeaderMenu&&e.forEach(n=>{var o,l,a;if(n&&!n.excludeFromHeaderMenu){n.header?n.header.menu||(n.header.menu={commandItems:[]}):n.header={menu:{commandItems:[]}};const h=((l=(o=n==null?void 0:n.header)==null?void 0:o.menu)==null?void 0:l.commandItems)??[];let d=!1;if(i&&!i.hideFreezeColumnsCommand&&(d=!0,h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="freeze-columns")||h.push({iconCssClass:i.iconFreezeColumns||"mdi mdi-pin-outline",titleKey:`${s}FREEZE_COLUMNS`,command:"freeze-columns",positionOrder:45})),i&&!i.hideColumnResizeByContentCommand&&this.sharedService.gridOptions.enableColumnResizeOnDoubleClick&&(d=!0,h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="column-resize-by-content")||h.push({iconCssClass:i.iconColumnResizeByContentCommand||"mdi mdi-arrow-expand-horizontal",titleKey:`${s}COLUMN_RESIZE_BY_CONTENT`,command:"column-resize-by-content",positionOrder:47})),d&&!h.some(c=>c!=="divider"&&c.positionOrder===48)&&h.push({divider:!0,command:"",positionOrder:48}),t.enableSorting&&n.sortable&&i&&!i.hideSortCommands&&(h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="sort-asc")||h.push({iconCssClass:i.iconSortAscCommand||"mdi mdi-sort-ascending",titleKey:`${s}SORT_ASCENDING`,command:"sort-asc",positionOrder:50}),h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="sort-desc")||h.push({iconCssClass:i.iconSortDescCommand||"mdi mdi-sort-descending",titleKey:`${s}SORT_DESCENDING`,command:"sort-desc",positionOrder:51}),h.some(c=>c!=="divider"&&c.positionOrder===52)||h.push({divider:!0,command:"",positionOrder:52}),!i.hideClearSortCommand&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="clear-sort")&&h.push({iconCssClass:i.iconClearSortCommand||"mdi mdi-sort-variant-off",titleKey:`${s}REMOVE_SORT`,command:"clear-sort",positionOrder:58})),(a=n.filter)!=null&&a.filterShortcuts&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="filter-shortcuts-root-menu")){const c=[];n.filter.filterShortcuts.forEach(p=>{const m=p.title?fi(p.title):(p.titleKey||"").toLowerCase().replaceAll("_","-");c.push({...p,command:m,action:(f,g)=>{const _=this.filterService.getFiltersMetadata().find(C=>C.columnDef.id===g.column.id);_==null||_.setValues(p.searchTerms,p.operator,!0)}})});const u=i.filterShortcutsPositionOrder??55;h.push({iconCssClass:i.iconFilterShortcutSubMenu||"mdi mdi-filter-outline",titleKey:`${s}FILTER_SHORTCUTS`,command:"filter-shortcuts-root-menu",positionOrder:u,commandItems:c}),d&&!h.some(p=>p!=="divider"&&p.positionOrder===u+1)&&h.push({divider:!0,command:"",positionOrder:u+1})}t.enableFiltering&&n.filterable&&i&&!i.hideFilterCommand&&!i.hideClearFilterCommand&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="clear-filter")&&h.push({iconCssClass:i.iconClearFilterCommand||"mdi mdi-filter-remove-outline",titleKey:`${s}REMOVE_FILTER`,command:"clear-filter",positionOrder:57}),i&&!i.hideColumnHideCommand&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="hide-column")&&h.push({iconCssClass:i.iconColumnHideCommand||"mdi mdi-close",titleKey:`${s}HIDE_COLUMN`,command:"hide-column",positionOrder:59}),this.extensionUtility.translateMenuItemsFromTitleKey(h),this.extensionUtility.sortItems(h,"positionOrder")}}),i}clearColumnFilter(e,t){t!=null&&t.column&&this.filterService.clearFilterByColumnId(e,t.column.id)}clearColumnSort(e,t){t!=null&&t.column&&this.sharedService&&this.sortService.clearSortByColumnId(e,t.column.id)}executeHeaderMenuInternalCommands(e,t){var i;if(t!=null&&t.command)switch(t.command){case"hide-column":this.hideColumn(t.column),(i=this.sharedService.gridOptions)!=null&&i.enableAutoSizeColumns&&this.sharedService.slickGrid.autosizeColumns();break;case"clear-filter":this.clearColumnFilter(e,t);break;case"clear-sort":this.clearColumnSort(e,t);break;case"column-resize-by-content":this.pubSubService.publish("onHeaderMenuColumnResizeByContent",{columnId:t.column.id});break;case"freeze-columns":const s=[...this.sharedService.visibleColumns],o={frozenColumn:s.findIndex(d=>d.id===t.column.id),enableMouseWheelScrollHandler:!0},l=this.sharedService.slickGrid.getColumns();this.sharedService.slickGrid.setOptions(o,!1,!0),this.sharedService.gridOptions.frozenColumn=o.frozenColumn,this.sharedService.gridOptions.enableMouseWheelScrollHandler=o.enableMouseWheelScrollHandler,this.sharedService.frozenVisibleColumnId=t.column.id,this.sharedService.hasColumnsReordered||Array.isArray(s)&&Array.isArray(this.sharedService.allColumns)&&s.length!==this.sharedService.allColumns.length?this.sharedService.slickGrid.setColumns(s):this.sharedService.slickGrid.setColumns(l),this.sharedService.slickGrid.getOptions().enableAutoSizeColumns&&this.sharedService.slickGrid.autosizeColumns();break;case"sort-asc":case"sort-desc":const h=t.command==="sort-asc";this.sortColumn(e,t,h);break}}createParentMenu(e,t,i){var n,o,l,a,h;const s={grid:this.grid,column:t,menu:i};typeof e.stopPropagation=="function"&&(this.pubSubService.publish("onHeaderMenuBeforeMenuShow",s),typeof((n=this.addonOptions)==null?void 0:n.onBeforeMenuShow)=="function"&&((o=this.addonOptions)==null?void 0:o.onBeforeMenuShow(e,s))===!1)||(this._menuElm=this.createCommandMenu(i.commandItems,t),(l=this.grid.getContainerNode())==null||l.appendChild(this._menuElm),this.repositionMenu(e,this._menuElm),this.pubSubService.publish("onHeaderMenuAfterMenuShow",s),!(typeof((a=this.addonOptions)==null?void 0:a.onAfterMenuShow)=="function"&&((h=this.addonOptions)==null?void 0:h.onAfterMenuShow(e,s))===!1)&&(e.preventDefault(),e.stopPropagation()))}createCommandMenu(e,t,i=0,s){var u;const n=s==null?void 0:s.command;let o=i===1&&n?n.replace(/\s/g,""):"";o&&(this._subMenuParentId=o),i>1&&(o=this._subMenuParentId);const l=`${this.menuCssClass} slick-menu-level-${i} ${this.gridUid}`,a=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${i}${this.gridUidSelector}`);if(a){if(a.dataset.subMenuParent===o)return a;this.disposeSubMenus()}const h=v("div",{ariaExpanded:"true",ariaLabel:i>1?"SubMenu":"Header Menu",role:"menu",className:l,style:{minWidth:`${this.addonOptions.minWidth}px`}});i>0&&(h.classList.add("slick-submenu"),o&&(h.dataset.subMenuParent=o),(u=this.gridOptions)!=null&&u.darkMode&&h.classList.add("slick-dark-mode"));const d=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},h),c={grid:this.grid,column:t,level:i,menu:{commandItems:e}};return s&&i>0&&this.addSubMenuTitleWhenExists(s,d),this.populateCommandOrOptionItems("command",this.addonOptions,d,e,c,this.handleMenuItemCommandClick,this.handleMenuItemMouseOver),i++,h}resetHeaderMenuTranslations(e){e.forEach(t=>{var i,s;if((s=(i=t==null?void 0:t.header)==null?void 0:i.menu)!=null&&s.commandItems&&!t.excludeFromHeaderMenu){const n=t.header.menu.commandItems||[];this.extensionUtility.translateMenuItemsFromTitleKey(n)}})}sortColumn(e,t,i=!0){if(t!=null&&t.column){const s=t.column,n=this.sharedService.gridOptions.multiColumnSort?this.sortService.getCurrentColumnSorts(s.id+""):[];let o=oe.local;n.push({columnId:s.id,sortCol:s,sortAsc:i}),this.sharedService.gridOptions.backendServiceApi?(this.sortService.onBackendSortChanged(e,{multiColumnSort:!0,sortCols:n,grid:this.sharedService.slickGrid}),o=oe.remote):this.sharedService.dataView?(this.sortService.onLocalSortChanged(this.sharedService.slickGrid,n),o=oe.local):t.grid.onSort.notify(n);const l=n.map(a=>{var h;return{columnId:((h=a==null?void 0:a.sortCol)==null?void 0:h.id)??"",sortAsc:(a==null?void 0:a.sortAsc)??!0}});if(this.sharedService.slickGrid.setSortColumns(l),o){const a=[];l.forEach(h=>{a.push({columnId:`${h.columnId}`,direction:h.sortAsc?"ASC":"DESC"})}),this.sortService.emitSortChanged(o,a)}}}}const Us="slick-rbe-editmode",Qc="slick-rbe-unsaved-cell",ca="slick-rbe-unsaved-highlight",vr="action-btns--delete",br="action-btns--edit",Sr="action-btns--update",yr="action-btns--cancel";class ua{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.pluginName="RowBasedEdit",this._defaults={actionsColumnLabel:"Actions",allowMultipleRows:!1,columnId:"_slick_rowbasededit_action",columnIndexPosition:-1,reorderable:!1},this._editedRows=new Map,this._currentLang="en",this._translations={},this.onBeforeEditCellHandler=(s,n)=>{var o;return this._editedRows.has((o=n.item)==null?void 0:o[this.gridOptions.datasetIdPropertyName??"id"])},this._eventHandler=new pe,this._addonOptions=i}get addonOptions(){return this._addonOptions}get gridOptions(){return this._grid.getOptions()||{}}get eventHandler(){return this._eventHandler}init(e,t){var n,o;this._grid=e,this._gridService=t,this._addonOptions={...this._defaults,...this.addonOptions};const i=this._grid.getData();if(this._eventHandler.subscribe(this._grid.onBeforeEditCell,this.onBeforeEditCellHandler),this.checkOptionsRequirements(this.gridOptions),this.gridOptions.autoEdit||(this._grid.setOptions({autoEdit:!0}),console.warn('[Slickgrid-Universal] The Row Based Edit Plugin works best with the gridOption "autoEdit" enabled, the option has now been set automatically for you.')),this._existingEditCommandHandler=this.gridOptions.editCommandHandler,this._grid.setOptions({editCommandHandler:this.rowBasedEditCommandHandler.bind(this)}),this.gridOptions.enableExcelCopyBuffer===!0){const l=(n=this.gridOptions.excelCopyBufferOptions)==null?void 0:n.onBeforePasteCell;this._grid.setOptions({excelCopyBufferOptions:{...this.gridOptions.excelCopyBufferOptions,onBeforePasteCell:(a,h)=>{let d=!0;if(l&&(d=l(a,h),d===!1))return!1;const c=i.getItem(h.row),u=this.gridOptions.datasetIdPropertyName??"id";return!!(this._editedRows.has(c[u])&&d===!0)}}})}const s=i.getItemMetadata;i.getItemMetadata=this.updateItemMetadata((o=s==null?void 0:s.bind)==null?void 0:o.call(s,i)),this._eventHandler.subscribe(this._grid.onSetOptions,this.optionsUpdatedHandler.bind(this)),this._eventHandler.subscribe(i.onRowsOrCountChanged,this.handleAllRowRerender.bind(this)),this.translate()}destroy(){this.dispose()}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),(t=this.pubSubService)==null||t.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.rowBasedEditOptions},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=((i=t==null?void 0:t.rowBasedEditOptions)==null?void 0:i.columnIndexPosition)??-1;n===-1?e.push(s):n>0&&n<e.length?e.splice(n,0,s):e.unshift(s),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getColumnDefinition(){var t,i,s,n;return{id:String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId),name:(i=this._addonOptions)==null?void 0:i.actionsColumnLabel,field:"action",minWidth:70,width:75,maxWidth:75,excludeFromExport:!0,reorderable:(s=this._addonOptions)==null?void 0:s.reorderable,formatter:this.actionColumnFormatter.bind(this),onCellClick:this.onCellClickHandler.bind(this),...((n=this._addonOptions)==null?void 0:n.actionColumnConfig)??{}}}rowBasedEditCommandHandler(e,t,i){var c;this._existingEditCommandHandler&&this._existingEditCommandHandler(e,t,i);const s=Array.isArray(i.prevSerializedValue)?i.prevSerializedValue:[i.prevSerializedValue],n=Array.isArray(i.serializedValue)?i.serializedValue:[i.serializedValue],o=(c=this._gridService)==null?void 0:c.getAllColumnDefinitions().filter(u=>u.editor!==void 0),l=[],a=this.gridOptions.datasetIdPropertyName??"id";s.forEach((u,p)=>{const m=s[p],f=n[p];if(m!==f||f===""){const g=Array.isArray(i.prevSerializedValue)?o==null?void 0:o[p]:t;if(!g)return;this._grid.invalidate(),i.execute(),this.renderUnsavedCellStyling(e[a],g),l.push(g)}});const h=this._editedRows.get(e[a]),d=[...(h==null?void 0:h.editCommands)||[]];l.length>0&&d.push(i),this._editedRows.set(e[a],{columns:[...(h==null?void 0:h.columns)||[],...l],editCommands:d,cssStyleKeys:(h==null?void 0:h.cssStyleKeys)||[]})}translate(e=!1){var t;return this._currentLang=((t=this.extensionUtility.translaterService)==null?void 0:t.getCurrentLanguage())??"en",(!this._translations[this._currentLang]||e)&&(this._translations[this._currentLang]={btnUpdateTitle:this.getTitleOrDefault("updateButtonTitle","Update the row"),btnEditTitle:this.getTitleOrDefault("editButtonTitle","Edit the Row"),btnDeleteTitle:this.getTitleOrDefault("deleteButtonTitle","Delete the Row"),btnCancelTitle:this.getTitleOrDefault("cancelButtonTitle","Cancel changes of the Row")}),this._translations[this._currentLang]}checkOptionsRequirements(e){if(!(e!=null&&e.enableCellNavigation))throw new Error("[Slickgrid-Universal] Row Based Edit Plugin requires the gridOption cell navigation (enableCellNavigation = true)");if(!(e!=null&&e.editable))throw new Error("[Slickgrid-Universal] Row Based Edit Plugin requires the gridOption editable (editable = true)")}undoRowEdit(e){const t=this.gridOptions.datasetIdPropertyName??"id",i=this._editedRows.get(e[t]),s=this._grid.getData().getRowByItem(e);if(s!==void 0&&(i!=null&&i.editCommands)&&i.editCommands.length||Ui.cancelCurrentEdit()){for(;i.editCommands.length>0;){const n=i.editCommands.pop();n&&n.undo()}i.columns.forEach(n=>{this.removeUnsavedStylingFromCell(n,s)}),i.columns=[],this._grid.invalidate()}}renderUnsavedCellStyling(e,t){var i,s;if(t){const n=(i=this._grid.getData())==null?void 0:i.getRowById(e);if(n!==void 0&&n>=0){const o={[n]:{[t.id]:Qc}},l=`${ca}_${[t.id]}${n}`;this._grid.setCellCssStyles(l,o),(s=this._editedRows.get(e))==null||s.cssStyleKeys.push(l)}}}handleAllRowRerender(e,t){this._editedRows.forEach((i,s)=>{i.cssStyleKeys.forEach(n=>{this._grid.removeCellCssStyles(n)}),i.cssStyleKeys=[],i.columns.forEach(n=>{this.renderUnsavedCellStyling(s,n)})})}removeUnsavedStylingFromCell(e,t){const i=`${ca}_${[e.id]}${t}`;this._grid.removeCellCssStyles(i)}removeUnsavedStylingFromRow(e){this._grid.getColumns().forEach(t=>{this.removeUnsavedStylingFromCell(t,e)})}optionsUpdatedHandler(e,t){this._addonOptions={...this._defaults,...t.optionsAfter.rowBasedEditOptions}}async onCellClickHandler(e,t){var l,a,h,d,c,u,p,m,f,g,_,C,b,S,E;const i=t.dataContext,s=e.target,n=this.gridOptions.datasetIdPropertyName??"id",o=this._editedRows.get(i[n]);if((s.classList.contains(vr)||(l=s.parentElement)!=null&&l.classList.contains(vr))&&this._gridService){if((h=(a=this._addonOptions)==null?void 0:a.actionButtons)!=null&&h.deleteButtonPrompt&&!window.confirm(this._addonOptions.actionButtons.deleteButtonPrompt))return;this.toggleEditmode(i,!1),this._gridService.deleteItem(i)}else if(s.classList.contains(br)||(d=s.parentElement)!=null&&d.classList.contains(br)){if(!((c=this._addonOptions)!=null&&c.allowMultipleRows)&&this._editedRows.size>0)return;typeof((u=this._addonOptions)==null?void 0:u.onBeforeEditMode)=="function"&&this._addonOptions.onBeforeEditMode(t),this.toggleEditmode(i,!0)}else if(s.classList.contains(Sr)||(p=s.parentElement)!=null&&p.classList.contains(Sr)){if((f=(m=this._addonOptions)==null?void 0:m.actionButtons)!=null&&f.updateButtonPrompt&&((o==null?void 0:o.editCommands.length)||0)>0&&!window.confirm(this._addonOptions.actionButtons.updateButtonPrompt)||(this._grid.getCellEditor()&&((g=this._grid.getActiveCell())==null?void 0:g.row)===t.row&&((_=this._grid.getEditController())==null||_.commitCurrentEdit()),(C=this._addonOptions)!=null&&C.onBeforeRowUpdated&&await this._addonOptions.onBeforeRowUpdated(t)!==!0))return;this.removeUnsavedStylingFromRow(t.row),this.toggleEditmode(i,!1)}else if(s.classList.contains(yr)||(b=s.parentElement)!=null&&b.classList.contains(yr)){if((E=(S=this._addonOptions)==null?void 0:S.actionButtons)!=null&&E.cancelButtonPrompt&&((o==null?void 0:o.editCommands.length)||0)>0&&!window.confirm(this._addonOptions.actionButtons.cancelButtonPrompt))return;this.undoRowEdit(i),this.toggleEditmode(i,!1)}}actionColumnFormatter(e,t,i,s,n){var d,c,u,p,m,f,g,_,C,b,S,E,y,x,O,I;const o=this.gridOptions,l=this._editedRows.has(n==null?void 0:n[o.datasetIdPropertyName??"id"]),a=this._translations[this._currentLang]??this.translate(),h=document.createDocumentFragment();return h.appendChild(v("span",{className:`${((c=(d=o.rowBasedEditOptions)==null?void 0:d.actionButtons)==null?void 0:c.editButtonClassName)||"button-style padding-1px mr-2"} action-btns `+br,title:a.btnEditTitle,style:{display:l?"none":""}})).appendChild(v("span",{className:((p=(u=o.rowBasedEditOptions)==null?void 0:u.actionButtons)==null?void 0:p.iconEditButtonClassName)||"mdi mdi-table-edit text-color-primary"})),h.appendChild(v("span",{className:`${((f=(m=o.rowBasedEditOptions)==null?void 0:m.actionButtons)==null?void 0:f.deleteButtonClassName)||"button-style padding-1px"} action-btns `+vr,title:a.btnDeleteTitle,style:{display:l?"none":""}})).appendChild(v("span",{className:((_=(g=o.rowBasedEditOptions)==null?void 0:g.actionButtons)==null?void 0:_.iconDeleteButtonClassName)||"mdi mdi-close text-color-danger"})),h.appendChild(v("span",{className:`${((b=(C=o.rowBasedEditOptions)==null?void 0:C.actionButtons)==null?void 0:b.updateButtonClassName)||"button-style padding-1px mr-2"} action-btns `+Sr,title:a.btnUpdateTitle,style:{display:l?"":"none"}})).appendChild(v("span",{className:((E=(S=o.rowBasedEditOptions)==null?void 0:S.actionButtons)==null?void 0:E.iconUpdateButtonClassName)||"mdi mdi-check-bold text-color-success"})),h.appendChild(v("span",{className:`${((x=(y=o.rowBasedEditOptions)==null?void 0:y.actionButtons)==null?void 0:x.cancelButtonClassName)||"button-style padding-1px"} action-btns `+yr,title:a.btnCancelTitle,style:{display:l?"":"none"}})).appendChild(v("span",{className:((I=(O=o.rowBasedEditOptions)==null?void 0:O.actionButtons)==null?void 0:I.iconCancelButtonClassName)||"mdi mdi-cancel text-color-danger"})),h}toggleEditmode(e,t){const i=this.gridOptions.datasetIdPropertyName??"id";t?this._editedRows.set(e[i],{columns:[],editCommands:[],cssStyleKeys:[]}):this._editedRows.delete(e[i]),this._grid.invalidate()}updateItemMetadata(e){return t=>{const i=this._grid.getData().getItem(t);let s={cssClasses:""};if(typeof e=="function"){const n=e(t);n&&(s=n)}if(s&&i){const n=this.gridOptions.datasetIdPropertyName??"id";this._editedRows.has(i[n])&&!s.cssClasses.includes(Us)?s.cssClasses=(s.cssClasses||"")+" "+Us:!this._editedRows.has(i[n])&&s.cssClasses.includes(Us)&&(s.cssClasses=s.cssClasses.replace(Us,""))}return s}}getTitleOrDefault(e,t){var s,n,o;const i=(s=this.gridOptions.rowBasedEditOptions)==null?void 0:s.actionButtons;return(i==null?void 0:i[e+"Key"])&&((o=(n=this.extensionUtility.translaterService)==null?void 0:n.translate)==null?void 0:o.call(n,(i==null?void 0:i[e+"Key"])||""))||(i==null?void 0:i[e])||t}}class pa{constructor(e){this.pubSubService=e,this.pluginName="RowMoveManager",this._dragging=!1,this._defaults={autoScroll:!0,columnId:"_move",cssClass:"slick-row-move-column",cancelEditOnDrag:!1,disableRowSelection:!1,hideRowMoveShadow:!0,reorderable:!1,rowMoveShadowMarginTop:0,rowMoveShadowMarginLeft:0,rowMoveShadowOpacity:.9,rowMoveShadowScale:.75,singleRowMove:!1,width:40},this.onBeforeMoveRows=new P("onBeforeMoveRows"),this.onMoveRows=new P("onMoveRows"),this._eventHandler=new pe}get addonOptions(){return this._addonOptions}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}init(e,t){var i;this._addonOptions={...this._defaults,...t},this._grid=e,this._canvas=this._grid.getCanvasNode(),T.addSlickEventPubSubWhenDefined(this.pubSubService,this),typeof((i=this._addonOptions)==null?void 0:i.usabilityOverride)=="function"&&this.usabilityOverride(this._addonOptions.usabilityOverride),this._eventHandler.subscribe(this._grid.onDragInit,this.handleDragInit.bind(this)).subscribe(this._grid.onDragStart,this.handleDragStart.bind(this)).subscribe(this._grid.onDrag,this.handleDrag.bind(this)).subscribe(this._grid.onDragEnd,this.handleDragEnd.bind(this))}dispose(){var e;(e=this._eventHandler)==null||e.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.rowMoveManager},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=Array.isArray(e)&&e.find(a=>(a==null?void 0:a.behavior)==="selectAndMove"),o=n||s,l=((i=t==null?void 0:t.rowMoveManager)==null?void 0:i.columnIndexPosition)??0;l>0?e.splice(l,0,o):e.unshift(o),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getColumnDefinition(){var t;const e=String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId);return{id:e,name:"",behavior:"selectAndMove",excludeFromExport:!0,excludeFromColumnPicker:!0,excludeFromGridMenu:!0,excludeFromQuery:!0,excludeFromHeaderMenu:!0,field:e,reorderable:this._addonOptions.reorderable,resizable:!1,width:this._addonOptions.width||40,formatter:this.moveIconFormatter.bind(this)}}usabilityOverride(e){this._usabilityOverride=e}setOptions(e){this._addonOptions={...this._addonOptions,...e}}handleDragInit(e){e.stopImmediatePropagation()}handleDragEnd(e,t){var i,s,n;if(this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),(i=t.guide)==null||i.remove(),(s=t.selectionProxy)==null||s.remove(),(n=t.clonedSlickRow)==null||n.remove(),t.canMove)){const o={grid:this._grid,rows:t.selectedRows,insertBefore:t.insertBefore};typeof this._addonOptions.onMoveRows=="function"&&this._addonOptions.onMoveRows(e instanceof le?e.getNativeEvent():e,o),this.onMoveRows.notify(o)}}handleDrag(e,t){var i,s,n;if(this._dragging){e.stopImmediatePropagation();const o=e.getNativeEvent(),a=(((i=o==null?void 0:o.touches)==null?void 0:i[0])??o).pageY-ge(this._canvas).top;t.selectionProxy.style.top=`${a-5}px`,t.selectionProxy.style.display="block",t.clonedSlickRow&&(t.clonedSlickRow.style.top=`${a-6}px`,t.clonedSlickRow.style.display="block");const h=Math.max(0,Math.min(Math.round(a/(this.gridOptions.rowHeight||0)),this._grid.getDataLength()));if(h!==t.insertBefore){const d={grid:this._grid,rows:t.selectedRows,insertBefore:h};if(((n=(s=this._addonOptions)==null?void 0:s.onBeforeMoveRows)==null?void 0:n.call(s,o,d))===!1||this.onBeforeMoveRows.notify(d).getReturnValue()===!1?t.canMove=!1:t.canMove=!0,this._usabilityOverride&&t.canMove){const c=this._grid.getDataItem(h);t.canMove=this.checkUsabilityOverride(h,c,this._grid)}t.canMove?t.guide.style.top=`${h*(this.gridOptions.rowHeight||0)}px`:t.guide.style.top="-1000px",t.insertBefore=h}}}handleDragStart(e,t){var o,l,a,h,d;const i=this._grid.getCellFromEvent(e)||{cell:-1,row:-1},s=i.row,n=this._grid.getDataItem(s);if(this.checkUsabilityOverride(s,n,this._grid)){if(this._addonOptions.cancelEditOnDrag&&this._grid.getEditorLock().isActive()&&this._grid.getEditorLock().cancelCurrentEdit(),this._grid.getEditorLock().isActive()||!/move|selectAndMove/.test(this._grid.getColumns()[i.cell].behavior||""))return!1;if(this._dragging=!0,e.stopImmediatePropagation(),!this.addonOptions.hideRowMoveShadow){const p=(o=this._grid.getCellNode(i.row,i.cell))==null?void 0:o.closest(".slick-row");p&&(t.clonedSlickRow=p.cloneNode(!0),t.clonedSlickRow.classList.add("slick-reorder-shadow-row"),t.clonedSlickRow.style.display="none",t.clonedSlickRow.style.marginLeft=Pt((l=this._addonOptions)==null?void 0:l.rowMoveShadowMarginLeft,"0px"),t.clonedSlickRow.style.marginTop=Pt((a=this._addonOptions)==null?void 0:a.rowMoveShadowMarginTop,"0px"),t.clonedSlickRow.style.opacity=`${((h=this._addonOptions)==null?void 0:h.rowMoveShadowOpacity)??.95}`,t.clonedSlickRow.style.transform=`scale(${((d=this.addonOptions)==null?void 0:d.rowMoveShadowScale)??.75})`,this._canvas.appendChild(t.clonedSlickRow))}let c=this._addonOptions.singleRowMove?[i.row]:this._grid.getSelectedRows();(c.length===0||!c.some(p=>p===i.row))&&(c=[i.row],this._addonOptions.disableRowSelection||this._grid.setSelectedRows(c));const u=this.gridOptions.rowHeight;t.selectedRows=c,t.selectionProxy=v("div",{className:"slick-reorder-proxy",style:{display:"none",position:"absolute",zIndex:"99999",width:`${this._canvas.clientWidth}px`,height:`${u*c.length}px`}},this._canvas),t.guide=v("div",{className:"slick-reorder-guide",style:{position:"absolute",zIndex:"99999",width:`${this._canvas.clientWidth}px`,top:"-1000px"}},this._canvas),t.insertBefore=-1}}checkUsabilityOverride(e,t,i){return typeof this._usabilityOverride=="function"?this._usabilityOverride(e,t,i):!0}moveIconFormatter(e,t,i,s,n,o){return this.checkUsabilityOverride(e,n,o)?{addClasses:"cell-reorder dnd",html:v("div",{className:this._addonOptions.cssClass||""})}:""}}class Zc{get extensionList(){return this._extensionList}get gridOptions(){return this.sharedService.gridOptions||{}}constructor(e,t,i,s,n,o,l,a){this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this.treeDataService=o,this.translaterService=l,this.lazyGridService=a,this._extensionCreatedList={},this._extensionList={},this._requireInitExternalExtensions=[]}dispose(){if(this.sharedService.visibleColumns=[],typeof this._extensionList=="object"){const e=Object.keys(this._extensionList);e.forEach(t=>{var i;if(this._extensionList.hasOwnProperty(t)){const s=this._extensionList[t];typeof((i=s==null?void 0:s.instance)==null?void 0:i.dispose)=="function"&&s.instance.dispose()}}),e.forEach(t=>{delete this._extensionList[t]})}this._cellMenuPlugin=null,this._cellExcelCopyManagerPlugin=null,this._checkboxSelectColumn=null,this._contextMenuPlugin=null,this._columnPickerControl=null,this._draggleGroupingPlugin=null,this._gridMenuControl=null,this._groupItemMetadataProviderService=null,this._headerMenuPlugin=null,this._rowMoveManagerPlugin=null,this._rowSelectionModel=null,this._extensionCreatedList=null,this._extensionList={}}addExtensionToList(e,t){this._extensionList[e]=t}getAllColumns(){return this.sharedService.allColumns||[]}getVisibleColumns(){return this.sharedService.visibleColumns||[]}getCreatedExtensionByName(e){var t;if((t=this._extensionCreatedList)!=null&&t.hasOwnProperty(e))return this._extensionCreatedList[e]}getExtensionByName(e){var t;return(t=this._extensionList)==null?void 0:t[e]}getExtensionInstanceByName(e){var t;return(t=this.getExtensionByName(e))==null?void 0:t.instance}autoResizeColumns(){this.sharedService.slickGrid.autosizeColumns()}bindDifferentExtensions(){var e,t,i,s,n,o,l,a,h,d,c,u,p;if(this.gridOptions){if(this.gridOptions.enableTranslate&&this.translateItems(this.sharedService.allColumns,"nameKey","name"),this.gridOptions.enableRowBasedEdit){this._rowBasedEdit=this._rowBasedEdit||new ua(this.extensionUtility,this.pubSubService,this.gridOptions.rowBasedEditOptions);const m=(e=this.lazyGridService)==null?void 0:e.call(this);if(!m)throw new Error("[Slickgrid-Universal] the RowBasedEdit Plugin requires a GridService to be configured and available");this._rowBasedEdit.init(this.sharedService.slickGrid,m),(t=this.gridOptions.rowBasedEditOptions)!=null&&t.onExtensionRegistered&&this.gridOptions.rowBasedEditOptions.onExtensionRegistered(this._rowBasedEdit),this._extensionList[G.rowBasedEdit]={name:G.rowBasedEdit,instance:this._rowBasedEdit}}if(this.gridOptions.enableAutoTooltip){const m=new Bc((i=this.gridOptions)==null?void 0:i.autoTooltipOptions);this.sharedService.slickGrid.registerPlugin(m),this._extensionList[G.autoTooltip]={name:G.autoTooltip,instance:m}}if(this.gridOptions.enableExcelCopyBuffer&&(this._cellExcelCopyManagerPlugin=new zc,this._cellExcelCopyManagerPlugin.init(this.sharedService.slickGrid,this.sharedService.gridOptions.excelCopyBufferOptions),(s=this.gridOptions.excelCopyBufferOptions)!=null&&s.onExtensionRegistered&&this.gridOptions.excelCopyBufferOptions.onExtensionRegistered(this._cellExcelCopyManagerPlugin),this._extensionList[G.cellExternalCopyManager]={name:G.cellExternalCopyManager,instance:this._cellExcelCopyManagerPlugin}),this.gridOptions.enableCellMenu&&(this._cellMenuPlugin=new Gc(this.extensionUtility,this.pubSubService,this.sharedService),(n=this.gridOptions.cellMenu)!=null&&n.onExtensionRegistered&&this.gridOptions.cellMenu.onExtensionRegistered(this._cellMenuPlugin),this._extensionList[G.cellMenu]={name:G.cellMenu,instance:this._cellMenuPlugin}),!this._rowSelectionModel&&(this.gridOptions.enableRowSelection||this.gridOptions.enableCheckboxSelector||this.gridOptions.enableRowDetailView||this.gridOptions.enableRowMoveManager)){if(!this._rowSelectionModel||!this.sharedService.slickGrid.getSelectionModel()){const m=this.gridOptions.rowSelectionOptions??{};this.gridOptions.enableRowMoveManager&&((o=this.gridOptions.rowMoveManager)==null?void 0:o.dragToSelect)!==!1&&(m.dragToSelect=!0),this._rowSelectionModel=new fr(m),this.sharedService.slickGrid.setSelectionModel(this._rowSelectionModel)}this._extensionList[G.rowSelection]={name:G.rowSelection,instance:this._rowSelectionModel}}if(this.gridOptions.enableCheckboxSelector){this._checkboxSelectColumn=this._checkboxSelectColumn||new ta(this.pubSubService,this.gridOptions.checkboxSelector),this._checkboxSelectColumn.init(this.sharedService.slickGrid);const m=this.getCreatedExtensionByName(G.checkboxSelector),f=m==null?void 0:m.instance;f&&((l=this.gridOptions.checkboxSelector)!=null&&l.onExtensionRegistered&&this.gridOptions.checkboxSelector.onExtensionRegistered(f),this._extensionList[G.checkboxSelector]={name:G.checkboxSelector,instance:this._checkboxSelectColumn})}if(this.gridOptions.enableColumnPicker&&(this._columnPickerControl=new _r(this.extensionUtility,this.pubSubService,this.sharedService),(a=this.gridOptions.columnPicker)!=null&&a.onExtensionRegistered&&this.gridOptions.columnPicker.onExtensionRegistered(this._columnPickerControl),this._extensionList[G.columnPicker]={name:G.columnPicker,instance:this._columnPickerControl}),this.gridOptions.enableContextMenu&&(this._contextMenuPlugin=new Yc(this.extensionUtility,this.pubSubService,this.sharedService,this.treeDataService),(h=this.gridOptions.contextMenu)!=null&&h.onExtensionRegistered&&this.gridOptions.contextMenu.onExtensionRegistered(this._contextMenuPlugin),this._extensionList[G.contextMenu]={name:G.contextMenu,instance:this._contextMenuPlugin}),this.gridOptions.enableDraggableGrouping&&(this._draggleGroupingPlugin&&(this._draggleGroupingPlugin.init(this.sharedService.slickGrid,this.gridOptions.draggableGrouping),(d=this.gridOptions.draggableGrouping)!=null&&d.onExtensionRegistered&&this.gridOptions.draggableGrouping.onExtensionRegistered(this._draggleGroupingPlugin),this._extensionList[G.contextMenu]={name:G.contextMenu,instance:this._draggleGroupingPlugin}),this._extensionList[G.draggableGrouping]={name:G.draggableGrouping,instance:this._draggleGroupingPlugin}),this.gridOptions.enableGridMenu&&(this._gridMenuControl=new ia(this.extensionUtility,this.filterService,this.pubSubService,this.sharedService,this.sortService),(c=this.gridOptions.gridMenu)!=null&&c.onExtensionRegistered&&this.gridOptions.gridMenu.onExtensionRegistered(this._gridMenuControl),this._extensionList[G.gridMenu]={name:G.gridMenu,instance:this._gridMenuControl}),this.gridOptions.enableHeaderButton){const m=new Kc(this.extensionUtility,this.pubSubService,this.sharedService);(u=this.gridOptions.headerButton)!=null&&u.onExtensionRegistered&&this.gridOptions.headerButton.onExtensionRegistered(m),this._extensionList[G.headerButton]={name:G.headerButton,instance:m}}if(this.gridOptions.enableHeaderMenu&&(this._headerMenuPlugin=new Xc(this.extensionUtility,this.filterService,this.pubSubService,this.sharedService,this.sortService),(p=this.gridOptions.headerMenu)!=null&&p.onExtensionRegistered&&this.gridOptions.headerMenu.onExtensionRegistered(this._headerMenuPlugin),this._extensionList[G.headerMenu]={name:G.headerMenu,instance:this._headerMenuPlugin}),this.gridOptions.enableRowMoveManager){this._rowMoveManagerPlugin=this._rowMoveManagerPlugin||new pa(this.pubSubService),this._rowMoveManagerPlugin.init(this.sharedService.slickGrid,this.gridOptions.rowMoveManager);const m=this.getCreatedExtensionByName(G.rowMoveManager);(m==null?void 0:m.instance)&&(this._extensionList[G.rowMoveManager]={name:G.rowMoveManager,instance:this._rowMoveManagerPlugin})}this._requireInitExternalExtensions.length&&this._requireInitExternalExtensions.forEach(m=>{m.instance.init(this.sharedService.slickGrid,void 0)})}}createExtensionsBeforeGridCreation(e,t){var s,n,o;const i=[];t.enableCheckboxSelector&&(this.getCreatedExtensionByName(G.checkboxSelector)||(this._checkboxSelectColumn=new ta(this.pubSubService,this.sharedService.gridOptions.checkboxSelector),i.push({name:G.checkboxSelector,instance:this._checkboxSelectColumn,columnIndexPosition:((s=t==null?void 0:t.checkboxSelector)==null?void 0:s.columnIndexPosition)??i.length}))),t.enableRowMoveManager&&(this.getCreatedExtensionByName(G.rowMoveManager)||(this._rowMoveManagerPlugin=new pa(this.pubSubService),i.push({name:G.rowMoveManager,instance:this._rowMoveManagerPlugin,columnIndexPosition:((n=t==null?void 0:t.rowMoveManager)==null?void 0:n.columnIndexPosition)??i.length}))),t.enableRowBasedEdit&&(this.getCreatedExtensionByName(G.rowBasedEdit)||(this._rowBasedEdit=new ua(this.extensionUtility,this.pubSubService),i.push({name:G.rowBasedEdit,instance:this._rowBasedEdit,columnIndexPosition:((o=t==null?void 0:t.rowMoveManager)==null?void 0:o.columnIndexPosition)??i.length}))),t.preRegisterExternalExtensions&&t.preRegisterExternalExtensions(this.pubSubService).forEach(a=>{i.push(a),this._requireInitExternalExtensions.push(a),this._extensionList[a.name]||this.addExtensionToList(a.name,a)}),this.createExtensionByTheirColumnIndex(i,e,t),t.enableDraggableGrouping&&(this.getCreatedExtensionByName(G.draggableGrouping)||(this._draggleGroupingPlugin=new qc(this.extensionUtility,this.pubSubService,this.sharedService),this._draggleGroupingPlugin&&(t.enableColumnReorder=this._draggleGroupingPlugin.setupColumnReorder.bind(this._draggleGroupingPlugin),this._extensionCreatedList[G.draggableGrouping]={name:G.draggableGrouping,instance:this._draggleGroupingPlugin})))}hideColumn(e){var t,i;if(typeof((i=(t=this.sharedService)==null?void 0:t.slickGrid)==null?void 0:i.getColumns)=="function"){const s=this.sharedService.slickGrid.getColumnIndex(e.id);this.sharedService.visibleColumns=this.removeColumnByIndex(this.sharedService.slickGrid.getColumns(),s),this.sharedService.slickGrid.setColumns(this.sharedService.visibleColumns)}}refreshBackendDataset(e){this.extensionUtility.refreshBackendDataset(e)}removeColumnByIndex(e,t){return Array.isArray(e)?e.filter((i,s)=>t!==s):e}translateAllExtensions(e){this.translateCellMenu(),this.translateContextMenu(),this.translateHeaderMenu(),this.translateRowEditPlugin(),this.translateColumnHeaders(e)}translateCellMenu(){var e;(e=this._cellMenuPlugin)==null||e.translateCellMenu()}translateColumnPicker(){var e;(e=this._columnPickerControl)==null||e.translateColumnPicker()}translateContextMenu(){var e;(e=this._contextMenuPlugin)==null||e.translateContextMenu()}translateGridMenu(){var e;(e=this._gridMenuControl)==null||e.translateGridMenu()}translateHeaderMenu(){var e;(e=this._headerMenuPlugin)==null||e.translateHeaderMenu()}translateRowEditPlugin(){var e;(e=this._rowBasedEdit)==null||e.translate()}translateColumnHeaders(e,t){var s;if(this.sharedService&&this.gridOptions&&this.gridOptions.enableTranslate&&(!this.translaterService||!this.translaterService.translate))throw new Error('[Slickgrid-Universal] requires a Translate Service to be installed and configured when the grid option "enableTranslate" is enabled.');e&&((s=this.translaterService)!=null&&s.use)&&this.translaterService.getCurrentLanguage()!==e&&this.translaterService.use(e);let i=t;i||(i=this.sharedService.columnDefinitions),this.translateItems(i,"nameKey","name"),this.translateItems(this.sharedService.allColumns,"nameKey","name"),this.translateItems(this.sharedService.allColumns,"columnGroupKey","columnGroup"),this.renderColumnHeaders(i,Array.isArray(t))}renderColumnHeaders(e,t=!1){var s;let i=e;i||(i=this.sharedService.columnDefinitions),Array.isArray(i)&&((s=this.sharedService.slickGrid)!=null&&s.setColumns)&&((i.length>this.sharedService.allColumns.length||t)&&(this.sharedService.allColumns=i),this.sharedService.slickGrid.setColumns(i)),this.gridOptions.enableColumnPicker&&this._columnPickerControl&&(this._columnPickerControl.columns=this.sharedService.allColumns,this._columnPickerControl.translateColumnPicker()),this.gridOptions.enableGridMenu&&this._gridMenuControl&&(this._gridMenuControl.columns=this.sharedService.allColumns??[],this._gridMenuControl.recreateGridMenu(),this._gridMenuControl.translateGridMenu())}createExtensionByTheirColumnIndex(e,t,i){e.sort((s,n)=>((s==null?void 0:s.columnIndexPosition)??0)-((n==null?void 0:n.columnIndexPosition)??0)),e.forEach(s=>{const n=s.instance.create(t,i);n&&(this._extensionCreatedList[s.name]={name:s.name,instance:n})})}translateItems(e,t,i){var s,n;if((s=this.gridOptions)!=null&&s.enableTranslate&&!((n=this.translaterService)!=null&&n.translate))throw new Error('[Slickgrid-Universal] requires a Translate Service to be installed and configured when the grid option "enableTranslate" is enabled.');this.extensionUtility.translateItems(e,t,i)}}function ma(r,e,t){if(t&&(r!=null&&r.hasOwnProperty(t)||e!=null&&e.hasOwnProperty(t)))return r[t]===e||r===e[t]||r[t]===e[t];if(typeof r=="object"&&typeof e=="object"&&Object.keys(r).length!==Object.keys(e).length)return!1;for(const i in r)if(r.hasOwnProperty(i)&&r[i]!==e[i])return!1;return!0}function Jc(r){switch(r&&r.toUpperCase()||""){case"IN":case"NIN":case"NOT_IN":case"IN_CONTAINS":case"NIN_CONTAINS":case"NOT_IN_CONTAINS":case"IN_COLLECTION":case"NOT_IN_COLLECTION":return!0;default:return!1}}const jt=(r,e,t)=>{switch(r.toUpperCase()){case"<":case"LT":return e<t;case"<=":case"LE":return e<=t;case">":case"GT":return e>t;case">=":case"GE":return e>=t;case"!=":case"<>":case"NE":return e!==t;case"=":case"==":case"EQ":return e===t;case"IN":return t&&Array.isArray(t)?t.includes(e):!1;case"NIN":case"NOT_IN":return t&&Array.isArray(t)?!t.includes(e):!1;case"IN_CONTAINS":return t&&Array.isArray(t)&&typeof e=="string"?t.some(i=>e.split(/[,]+/).map(s=>s.trim()).includes(i)):!1;case"NIN_CONTAINS":case"NOT_IN_CONTAINS":return t&&Array.isArray(t)&&typeof e=="string"?!t.some(i=>e.split(/[,]+/).map(s=>s.trim()).includes(i)):!1;case"IN_COLLECTION":return e&&t&&Array.isArray(e)&&Array.isArray(t)?t.some(i=>e.includes(i)):!1;case"NOT_IN_COLLECTION":return e&&t&&Array.isArray(e)&&Array.isArray(t)?!t.some(i=>e.includes(i)):!1}return!0},fa=(r,e)=>{let[t,i]=e;if(t===void 0&&!r.operator)return!0;r.cellValue=r.cellValue===void 0||r.cellValue===null?"":r.cellValue.toString();const s=r!=null&&r.ignoreAccentOnStringFilterAndSort?mi(r.cellValue,!0):r.cellValue.toLowerCase();if(typeof t=="string"&&(t=r!=null&&r.ignoreAccentOnStringFilterAndSort?mi(t,!0):t.toLowerCase()),typeof i=="string"&&(i=r!=null&&r.ignoreAccentOnStringFilterAndSort?mi(i,!0):i.toLowerCase()),r.operator===H.startsWithEndsWith&&t!==void 0&&i!==void 0)return tu(s,[t,i]);if(t!==void 0&&i!==void 0){let o=(r==null?void 0:r.operator)??r.defaultFilterRangeOperator;o!==H.rangeInclusive&&o!==H.rangeExclusive&&(o=r.defaultFilterRangeOperator);const l=o===H.rangeInclusive,a=Er(l?">=":">",s,t,r.searchInputLastChar),h=Er(l?"<=":"<",s,i,r.searchInputLastChar);return a&&h}return Er(r.operator,s,t,r.searchInputLastChar)};function eu(r){let t=Array.isArray(r)&&r||[""];const i=[];let s,n;if(t.length===1&&typeof t[0]=="string"){const o=t[0];o.indexOf("..")>0?t=o.split(".."):o.indexOf("*")>0&&o.indexOf("*")<o.length-1&&(t=o.split("*"))}if(t.length===2)s=`${t[0]}`,n=`${t[1]}`;else{const o=Array.isArray(r)&&r.length>0?r[0]:"";s=o==null?"":`${o}`}return s!==void 0&&n!==void 0?i.push(s,n):s!==void 0&&i.push(s),i}function Er(r,e,t,i){return r==="*"||r===H.endsWith||r==="*z"?e.endsWith(t):r===""&&i==="*"||r===H.startsWith||r==="a*"?e.startsWith(t):r===""||r===H.contains?e.indexOf(t)>-1:r==="<>"||r===H.notContains?e.indexOf(t)===-1:jt(r||"==",e,t)}function tu(r,[e,t]){return r.startsWith(e)&&r.endsWith(t)}const iu=(r,e)=>{if(e===void 0&&!r.operator)return!0;switch((r.operator||"").toUpperCase()){case"!=":case"<>":case"NE":return!ma(r.cellValue,e,r.dataKey);case"=":case"==":case"EQ":default:return ma(r.cellValue,e,r.dataKey)}};function su(r){return(Array.isArray(r)&&r.length>0?r[0]:"")||""}const ga=(r,e)=>{const t=parseFloat(r.cellValue),[i,s]=e;if(i===void 0&&!r.operator)return!0;if(i!==void 0&&s!==void 0){let n=(r==null?void 0:r.operator)??r.defaultFilterRangeOperator;n!==H.rangeInclusive&&n!==H.rangeExclusive&&(n=r.defaultFilterRangeOperator);const o=n===H.rangeInclusive,l=jt(o?">=":">",t,+i),a=jt(o?"<=":"<",t,+s);return l&&a}return jt(r.operator||"==",t,+i)};function nu(r){const t=Array.isArray(r)&&r||[0],i=[];let s,n;if(t.length===2||typeof t[0]=="string"&&t[0].indexOf("..")>0){const o=t.length===2?t:t[0].split("..");s=parseFloat(Array.isArray(o)?o[0]:""),n=parseFloat(Array.isArray(o)?o[1]:"")}else s=parseFloat(t[0]);return U(s,!0)&&U(n,!0)?i.push(s,n):U(s,!0)&&i.push(s),i}const _a=(r,e)=>ms(r.cellValue)===ms(e);function ru(r){const e=Array.isArray(r)&&r[0]||!1;return ms(e)}const Ca=r=>{const e=r.operator;let t;return Array.isArray(r.cellValue)&&(e==="IN_COLLECTION"||e==="NOT_IN_COLLECTION")?t=r.cellValue.length?r.cellValue.map(i=>`${i}`):[]:t=r.cellValue===void 0||r.cellValue===null?"":`${r.cellValue}`,jt(e||"IN",t,r.searchTerms||[])};function ou(r,e){const t=r&&(r.filterSearchType||r.fieldType)||w.dateIso,i=Ke(t),[s,n]=e,o=bt(r.cellValue,i,!0);if(!s&&!n||!o)return!1;const l=i==="ISO8601"||i.toLowerCase().includes("h")?o.valueOf():Ho(new Date(o)).valueOf();if(s&&n){let h=(r==null?void 0:r.operator)??r.defaultFilterRangeOperator;h!==H.rangeInclusive&&h!==H.rangeExclusive&&(h=r.defaultFilterRangeOperator);const d=h===H.rangeInclusive,c=jt(d?">=":">",l,s.valueOf()),u=jt(d?"<=":"<",l,n.valueOf());return c&&u}const a=i==="ISO8601"||i.toLowerCase().includes("h")?s.valueOf():Ho(new Date(s)).valueOf();return jt(r.operator||"==",l,a)}function lu(r,e){const t=Array.isArray(r)&&r||[],i=e||w.dateIso,s=Ke(i),n=[];if(t.length===2||typeof t[0]=="string"&&t[0].indexOf("..")>0){const o=t.length===2?t:t[0].split(".."),l=Array.isArray(o)&&o[0]||"",a=Array.isArray(o)&&o[1]||"",h=bt(l,s,!0),d=bt(a,s,!0);if(!h||!d)return[];n.push(h,d)}else{const o=bt(t[0],s,!0);if(!o)return[];n.push(o)}return n}const au=(r,e)=>{if(Jc(r.operator))return Ca(r);switch(va(r.filterSearchType||r.fieldType)){case"boolean":return _a(r,e);case"date":return ou(r,e||[]);case"number":return ga(r,e||[]);case"object":return iu(r,e);case"string":default:return fa(r,e||[])}};function js(r,e){const t=va(e);let i;switch(t){case"boolean":i=ru(r);break;case"date":i=lu(r,e);break;case"number":i=nu(r);break;case"object":i=su(r);break;case"string":i=eu(r);break}return i}function va(r){if(It(r))return"date";switch(r){case w.boolean:return"boolean";case w.integer:case w.float:case w.number:return"number";case w.object:return"object";case w.string:case w.text:case w.password:case w.readonly:default:return"string"}}const ba={executeFilterConditionTest:au,booleanFilter:_a,collectionSearchFilter:Ca,numberFilter:ga,stringFilter:fa};class hu{constructor(e,t,i,s){var n;this.config=e,this.translaterService=t,this.collectionService=i,this.rxjs=s,this._options=((n=this.config)==null?void 0:n.options)??{}}addRxJsResource(e){this.rxjs=e}createFilter(e){let t;return e!=null&&e.model&&(t=typeof e.model=="function"?new e.model(this.translaterService,this.collectionService,this.rxjs):e.model),!t&&this._options.defaultFilter&&(t=new this._options.defaultFilter(this.translaterService,this.collectionService,this.rxjs)),t}}class du{constructor(e,t,i,s,n){this.filterFactory=e,this.pubSubService=t,this.sharedService=i,this.backendUtilities=s,this.rxjs=n,this._isFilterFirstRender=!0,this._firstColumnIdRendered="",this._filtersMetadata=[],this._columnFilters={},this._isTreePresetExecuted=!1,this._previousFilters=[],this._onSearchChange=new P,this._eventHandler=new pe,this.rxjs&&(this.httpCancelRequests$=this.rxjs.createSubject())}get eventHandler(){return this._eventHandler}get isFilterFirstRender(){return this._isFilterFirstRender}get onSearchChange(){return this._onSearchChange}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get _columnDefinitions(){var e;return((e=this._grid)==null?void 0:e.getColumns())??[]}get _dataView(){var e;return((e=this._grid)==null?void 0:e.getData())??{}}addRxJsResource(e){this.rxjs=e}init(e){this._grid=e,this._gridOptions&&this._gridOptions.enableTreeData&&this._gridOptions.treeDataOptions&&this._grid.setSortColumns([{columnId:this._gridOptions.treeDataOptions.columnId,sortAsc:!0}])}dispose(){var e;this._eventHandler.unsubscribeAll(),this.httpCancelRequests$&&((e=this.rxjs)!=null&&e.isObservable(this.httpCancelRequests$))&&(this.httpCancelRequests$.next(),this.httpCancelRequests$.complete()),this.disposeColumnFilters(),this._onSearchChange=null}disposeColumnFilters(){if(this.removeAllColumnFiltersProperties(),Array.isArray(this._filtersMetadata)){let e=this._filtersMetadata.pop();for(;e;)typeof(e==null?void 0:e.destroy)=="function"&&e.destroy(),e=this._filtersMetadata.pop()}}bindBackendOnFilter(e){this._filtersMetadata=[],this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{i.column.id===this._firstColumnIdRendered&&(this._isFilterFirstRender=!1),this.addFilterTemplateToHeaderRow(i,this._isFilterFirstRender),this._firstColumnIdRendered===""&&(this._firstColumnIdRendered=i.column.id)}),this.subscribeToOnHeaderRowCellRendered(e),this._onSearchChange&&this._eventHandler.subscribe(this._onSearchChange,this.onBackendFilterChange.bind(this))}bindLocalOnFilter(e){this._filtersMetadata=[],this._dataView.setFilterArgs({columnFilters:this._columnFilters,grid:this._grid,dataView:this._dataView}),this._dataView.setFilter(this.customLocalFilter.bind(this)),this._onSearchChange&&this._eventHandler.subscribe(this._onSearchChange,async(t,i)=>{const s=(i==null?void 0:i.clearFilterTriggered)??!1;s||await this.emitFilterChanged(oe.local,!0),this._gridOptions.enableTreeData===!0&&(this._tmpPreFilteredData=this.preFilterTreeData(this._dataView.getItems(),this._columnFilters)),s||await this.emitFilterChanged(oe.local),i.columnId!==null&&this._dataView.refresh(),this._previousFilters=this.extractBasicFilterDetails(this._columnFilters)}),this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{this.addFilterTemplateToHeaderRow(i)}),this.subscribeToOnHeaderRowCellRendered(e)}async clearFilterByColumnId(e,t){await this.pubSubService.publish("onBeforeFilterClear",{columnId:t},0);const i=this._gridOptions.backendServiceApi??!1,s=i?oe.remote:oe.local,n=Object.keys(this._columnFilters);let o;Array.isArray(n)&&(o=n.find(a=>a===`${t}`));const l=this._filtersMetadata.find(a=>a.columnDef.id===t);return l!=null&&l.clear&&l.clear(!0),i&&o!==void 0&&this.onBackendFilterChange(e,{grid:this._grid,columnFilters:this._columnFilters}),await this.emitFilterChanged(s),!0}async clearFilters(e=!0){var i,s;e&&await this.pubSubService.publish("onBeforeFilterClear",!0,0),this._filtersMetadata.forEach(n=>{n!=null&&n.clear&&n.clear(!1)}),this.removeAllColumnFiltersProperties(),Array.isArray(this._columnDefinitions)&&this._columnDefinitions.forEach(n=>{var o;(o=n.filter)!=null&&o.searchTerms&&delete n.filter.searchTerms}),this._dataView&&this._grid&&(this._dataView.refresh(),this._grid.invalidate());const t=this._gridOptions.backendServiceApi;if(t&&e){const n={clearFilterTriggered:!0,shouldTriggerQuery:e,grid:this._grid,columnFilters:this._columnFilters},l=t.service.processOnFilterChanged(void 0,n),a=((i=this._gridOptions.pagination)==null?void 0:i.totalItems)??0;(s=this.backendUtilities)==null||s.executeBackendCallback(t,l,n,new Date,a,{errorCallback:this.resetToPreviousSearchFilters.bind(this),successCallback:h=>this._previousFilters=this.extractBasicFilterDetails(h.columnFilters),emitActionChangedCallback:this.emitFilterChanged.bind(this)})}else this._previousFilters=this.extractBasicFilterDetails(this._columnFilters);e&&this.pubSubService.publish("onFilterCleared",!0)}customLocalFilter(e,t){var l;const i=t==null?void 0:t.grid,s=(t==null?void 0:t.columnFilters)??{},n=this._gridOptions.enableTreeData??!1,o=this._gridOptions.treeDataOptions;if(n&&o){const a=o.collapsedPropName??R.treeDataProperties.COLLAPSED_PROP,h=o.parentPropName??R.treeDataProperties.PARENT_PROP,d=(o==null?void 0:o.childrenPropName)??R.treeDataProperties.CHILDREN_PROP,c=this._gridOptions.datasetIdPropertyName??"id",u=o.autoRecalcTotalsOnFilterChange??!1;let p=!1;if(e[h]!==null){let m=this._dataView.getItemById(e[h]);for(;m;){if(m[a])if(u)p=!0;else return!1;m=this._dataView.getItemById(m[h])}}if(this._tmpPreFilteredData instanceof Set){const m=this._tmpPreFilteredData.has(e[c]);if(u){const f=Li(this.sharedService.hierarchicalDataset,g=>g[c]===e[c],d);if(f&&(f.__filteredOut=!m),p)return!1}return m}}else if(typeof s=="object")for(const a of Object.keys(s)){const h=s[a],d=(l=h.columnDef)==null?void 0:l.filter;if(typeof(d==null?void 0:d.filterPredicate)=="function"){if(!d.filterPredicate(e,h))return!1}else{const c=this.preProcessFilterConditionOnDataContext(e,h,i);if(typeof c=="boolean")return c;let u=h==null?void 0:h.parsedSearchTerms;if(u===void 0&&(u=js(h.searchTerms,h.columnDef.type||w.string),u!==void 0&&(h.parsedSearchTerms=u)),!ba.executeFilterConditionTest(c,u))return!1}}return!0}parseFormInputFilterConditions(e,t){var p;const i=de(!0,[],e)||[];let s=Array.isArray(i)&&i.length===1?i[0]:"";const n=t.columnDef,o=((p=n.filter)==null?void 0:p.type)??n.type??w.string;let l=null;o!==w.object&&(s=s==null?"":`${s}`,l=(n.autoParseInputFilterOperator??this._gridOptions.autoParseInputFilterOperator)!==!1?s.match(/^((.*[^\\*\r\n])[*]{1}(.*[^*\r\n]))|^([<>!=*]{0,2})(.*[^<>!=*])([*]?)$/)||[]:[s,"","","","",s,""]);const a=(l==null?void 0:l[2])||"",h=(l==null?void 0:l[3])||"";let d=(l==null?void 0:l[4])||t.operator,c=(l==null?void 0:l[1])||(l==null?void 0:l[5])||"";const u=(l==null?void 0:l[6])||(d==="*z"?"*":"");return typeof s=="string"&&(s=s.replace("'","''"),a&&h?(c=s,d=H.startsWithEndsWith):d==="*"||d==="*z"?d=H.endsWith:(d==="a*"||u==="*")&&(d=H.startsWith)),Array.isArray(l)&&l.length>=1&&Array.isArray(i)&&i.length===1&&(i[0]=c.length>0&&c.substring(0,1)===" "?c.substring(1):c),{dataKey:n.dataKey,fieldType:o,searchTerms:i||[],operator:d,searchInputLastChar:u,filterSearchType:n.filterSearchType,defaultFilterRangeOperator:this._gridOptions.defaultFilterRangeOperator}}preProcessFilterConditionOnDataContext(e,t,i){var u,p,m,f;const s=t.columnDef,n=t.columnId;let o=i.getColumnIndex(n);if(!s&&this.sharedService&&Array.isArray(this.sharedService.allColumns)&&(o=this.sharedService.allColumns.findIndex(g=>g.field===n)),!s)return!0;if(this._gridOptions.enableRowDetailView){const g=((u=this._gridOptions.rowDetailView)==null?void 0:u.keyPrefix)||"__";e[`${g}isPadding`]&&e[`${g}parent`]&&(e=e[`${g}parent`])}let l=((p=s.filter)==null?void 0:p.queryField)||s.queryFieldFilter||s.queryField||s.field||"";typeof s.queryFieldNameGetterFn=="function"&&(l=s.queryFieldNameGetterFn(e));const a=((m=s.filter)==null?void 0:m.type)??s.type??w.string;let h=e[l];(l==null?void 0:l.indexOf("."))>=0&&(h=Ee(e,l));const d=t.operator,c=t.searchTerms||[];if(!c||Array.isArray(c)&&(c.length===0||c.length===1&&d===c[0]))return!0;if(c&&Array.isArray(c)&&a!==w.object)for(let g=0,_=c.length;g<_;g++)c[g]=(c[g]===void 0||c[g]===null?"":c[g])+"";if(((f=s==null?void 0:s.params)==null?void 0:f.useFormatterOuputToFilter)===!0){const g=this._gridOptions.datasetIdPropertyName||"id",_=this._dataView&&typeof this._dataView.getIdxById=="function"?this._dataView.getIdxById(e[g]):0,C=s&&typeof s.formatter=="function"?s.formatter(_||0,o,h,s,e,this._grid):"";h=we(C)}return typeof h=="number"&&(h=h.toString()),{dataKey:s.dataKey,fieldType:a,searchTerms:c,cellValue:h,operator:d,searchInputLastChar:t.searchInputLastChar,filterSearchType:s.filterSearchType,ignoreAccentOnStringFilterAndSort:this._gridOptions.ignoreAccentOnStringFilterAndSort??!1,defaultFilterRangeOperator:this._gridOptions.defaultFilterRangeOperator}}preFilterTreeData(e,t){var g,_,C,b,S,E;const i=this._gridOptions.treeDataOptions,s=(i==null?void 0:i.collapsedPropName)??R.treeDataProperties.COLLAPSED_PROP,n=(i==null?void 0:i.parentPropName)??R.treeDataProperties.PARENT_PROP,o=(i==null?void 0:i.hasChildrenPropName)??R.treeDataProperties.HAS_CHILDREN_PROP,l=this._gridOptions.datasetIdPropertyName??"id",a=(_=(g=this._gridOptions.presets)==null?void 0:g.treeData)==null?void 0:_.toggledItems,h=((C=this._gridOptions.treeDataOptions)==null?void 0:C.initiallyCollapsed)??!1,d=(b=this._gridOptions.treeDataOptions)==null?void 0:b.columnId,c=(S=this._gridOptions.treeDataOptions)==null?void 0:S.excludeChildrenWhenFilteringTree,u=!c&&((E=this._gridOptions.treeDataOptions)==null?void 0:E.autoApproveParentItemWhenTreeColumnIsValid)===!0,p={},m=new Set,f=new Map;return Array.isArray(e)&&(e.forEach(y=>{p[y[l]]=y,delete p[y[l]].__used}),typeof t=="object"&&Object.keys(t).forEach(y=>{var M;const x=t[y],O=x!=null&&x.searchTerms?de(!0,[],x.searchTerms):[],I=this.parseFormInputFilterConditions(O,x),A=x.columnDef,D=((M=A==null?void 0:A.filter)==null?void 0:M.type)??(A==null?void 0:A.type)??w.string,L=js(I.searchTerms,D);L!==void 0&&(x.parsedSearchTerms=L)}),e.forEach(y=>{const x=y[o];let O=!0;for(const I of Object.keys(t)){const A=t[I],D=this.preProcessFilterConditionOnDataContext(y,A,this._grid);if(D){const L=A==null?void 0:A.parsedSearchTerms,M=typeof D=="boolean"?D:ba.executeFilterConditionTest(D,L);if(M&&u&&x&&A.columnId===d){f.set(y[l],!0);break}if(M||!c&&f.get(y[n])===!0){if(x&&A.columnId===d&&f.set(y[l],!0),M||!c&&A.columnId===d)continue}else x&&f.get(y[n])!==!0&&A.columnId!==d&&f.set(y[l],!1)}O=!1}if(O){m.add(y[l]);let I=p[y[n]]??!1;const A=!h;for(!this._isTreePresetExecuted&&Array.isArray(a)&&a.some(D=>D.itemId===I.id&&D.isCollapsed===A)&&(I[s]=A);I;)I.__used??m.add(I[l]),p[I[l]].__used=!0,I=p[I[n]]??!1}})),this._isTreePresetExecuted=!0,m}getColumnFilters(){return this._columnFilters}getPreviousFilters(){return this._previousFilters}getFiltersMetadata(){return this._filtersMetadata}getCurrentLocalFilters(){var t;const e=[];if(this._columnFilters)for(const i of Object.keys(this._columnFilters)){const s=this._columnFilters[i],n={columnId:i||""},o=this.sharedService.allColumns.find(a=>a.id===n.columnId),l=((t=o==null?void 0:o.filter)==null?void 0:t.emptySearchTermReturnAllValues)??!0;s!=null&&s.searchTerms&&(n.searchTerms=s.searchTerms),s.operator&&(n.operator=s.operator),s.targetSelector&&(n.targetSelector=s.targetSelector),Array.isArray(n.searchTerms)&&n.searchTerms.length>0&&(!l||n.searchTerms[0]!=="")&&e.push(n)}return e}emitFilterChanged(e,t=!1){const i=t?"onBeforeFilterChange":"onFilterChanged";if(e===oe.remote&&this._gridOptions.backendServiceApi){let s=[];const n=this._gridOptions.backendServiceApi.service;return n!=null&&n.getCurrentFilters&&(s=n.getCurrentFilters()),this.pubSubService.publish(i,s)}else if(e===oe.local)return this.pubSubService.publish(i,this.getCurrentLocalFilters())}async onBackendFilterChange(e,t){var o,l;const i=t==null?void 0:t.shouldTriggerQuery;if(i&&await this.emitFilterChanged(oe.remote,!0),!t||!t.grid)throw new Error('Something went wrong when trying to bind the "onBackendFilterChange(event, args)" function, it seems that "args" is not populated correctly');const s=this._gridOptions.backendServiceApi;if(!s||!s.process||!s.service)throw new Error('BackendServiceApi requires at least a "process" function and a "service" defined');const n=new Date;if(s.preProcess&&s.preProcess(),i){const a=await s.service.processOnFilterChanged(e,t),h=((o=this._gridOptions.pagination)==null?void 0:o.totalItems)??0;(l=this.backendUtilities)==null||l.executeBackendCallback(s,a,t,n,h,{errorCallback:this.resetToPreviousSearchFilters.bind(this),successCallback:d=>this._previousFilters=this.extractBasicFilterDetails(d.columnFilters),emitActionChangedCallback:this.emitFilterChanged.bind(this),httpCancelRequestSubject:this.httpCancelRequests$})}}populateColumnFilterSearchTermPresets(e){return Array.isArray(e)&&(this._columnDefinitions.forEach(t=>{var s;(s=t.filter)!=null&&s.searchTerms&&delete t.filter.searchTerms;const i=e.find(n=>n.columnId===t.id);i&&Array.isArray(i==null?void 0:i.searchTerms)&&(t.filter=t.filter||{},t.filter.operator=i.operator||t.filter.operator||"",t.filter.searchTerms=i.searchTerms)}),this._gridOptions.enableTreeData&&this.refreshTreeDataFilters(),this._previousFilters=this.extractBasicFilterDetails(this._columnFilters)),this._columnDefinitions}refreshTreeDataFilters(e){var i;const t=e??((i=this._dataView)==null?void 0:i.getItems())??[];this._dataView&&this._gridOptions.enableTreeData&&t.length>0?(this._tmpPreFilteredData=this.preFilterTreeData(t,this._columnFilters),this._dataView.refresh()):t.length===0&&Array.isArray(this.sharedService.hierarchicalDataset)&&this.sharedService.hierarchicalDataset.length>0&&queueMicrotask(()=>this.refreshTreeDataFilters())}disableFilterFunctionality(e=!0,t=!0){const s=!this._gridOptions.enableFiltering;s!==e&&(t&&e&&this.clearFilters(),this.disableAllFilteringCommands(e),this._grid.setOptions({enableFiltering:s},!1,!0),this._grid.setHeaderRowVisibility(s),this._gridOptions.enableFiltering=!e,this.sharedService.gridOptions=this._gridOptions,this._grid.setColumns(this.sharedService.columnDefinitions))}resetToPreviousSearchFilters(){this.updateFilters(this._previousFilters,!1,!1,!1)}toggleFilterFunctionality(e=!0){const t=this._gridOptions.enableFiltering;this.disableFilterFunctionality(t,e)}toggleHeaderFilterRow(){let e=this._gridOptions.showHeaderRow??!1;e=!e,this._grid.setHeaderRowVisibility(e),e===!0&&this._grid.setColumns(this.sharedService.columnDefinitions)}setSortColumnIcons(e){this._grid&&Array.isArray(e)&&this._grid.setSortColumns(e)}async updateFilters(e,t=!0,i=!0,s=!1){var n;if(!this._filtersMetadata||this._filtersMetadata.length===0||!this._gridOptions||!this._gridOptions.enableFiltering)throw new Error('[Slickgrid-Universal] in order to use "updateFilters" method, you need to have Filterable Columns defined in your grid and "enableFiltering" set in your Grid Options');if(Array.isArray(e)){this.clearFilters(!1),e.forEach(a=>{const h=this._filtersMetadata.find(d=>a.columnId===d.columnDef.id);if(a&&h){const d=a.operator||h.defaultOperator;this.updateColumnFilters(a.searchTerms,h.columnDef,d),h.setValues(a.searchTerms||[],d),(s||this._gridOptions.enableTreeData)&&this.callbackSearchEvent(void 0,{columnDef:h.columnDef,operator:d,searchTerms:a.searchTerms,shouldTriggerQuery:!0,forceOnSearchChangeEvent:!0})}});const o=this._gridOptions.backendServiceApi,l=o?oe.remote:oe.local;if(t&&await this.emitFilterChanged(l,!0),this._dataView.refresh(),o){const a=o==null?void 0:o.service;a!=null&&a.updateFilters&&(a.updateFilters(e,!0),i&&((n=this.backendUtilities)==null||n.refreshBackendDataset(this._gridOptions)))}t&&await this.emitFilterChanged(l)}return!0}async updateSingleFilter(e,t=!0,i=!0){var n,o;const s=this.sharedService.allColumns.find(l=>l.id===e.columnId);if(s&&e.columnId){this._columnFilters={};const l=((n=s.filter)==null?void 0:n.emptySearchTermReturnAllValues)??!0;Array.isArray(e.searchTerms)&&(e.searchTerms.length>1||e.searchTerms.length===1&&(!l||e.searchTerms[0]!==""))&&(this._columnFilters[e.columnId]={columnId:e.columnId,operator:e.operator,searchTerms:e.searchTerms,columnDef:s,type:s.type??w.string});const a=this._gridOptions.backendServiceApi,h=a?oe.remote:oe.local;if(t&&await this.emitFilterChanged(h,!0),a){const d=a==null?void 0:a.service;d!=null&&d.updateFilters&&(d.updateFilters(this._columnFilters,!0),i&&((o=this.backendUtilities)==null||o.refreshBackendDataset(this._gridOptions)))}else this._dataView.setFilterArgs({columnFilters:this._columnFilters,grid:this._grid}),this._gridOptions.enableTreeData&&this.refreshTreeDataFilters(),this._dataView.refresh();t&&await this.emitFilterChanged(h)}return!0}drawFilterTemplate(e,t){let i;if(typeof t=="string"){if(i=document.querySelector(t),i===null)return null}else i=t;const s=typeof e=="string"?this.sharedService.allColumns.find(o=>o.id===e):e;if(((s==null?void 0:s.id)??"")!=="selector"&&(s!=null&&s.filterable)){let o,l;const a=this.filterFactory.createFilter(s.filter);l=s&&s.filter&&s.filter.operator||a&&a.operator,this._columnFilters[s.id]?(o=this._columnFilters[s.id].searchTerms||void 0,l=this._columnFilters[s.id].operator||void 0):s.filter&&(o=s.filter.searchTerms||void 0,this.updateColumnFilters(o,s,l));const h={grid:this._grid,operator:l,searchTerms:o,columnDef:s,filterContainerElm:i,callback:this.callbackSearchEvent.bind(this)};return a&&(a.init(h),o&&a.setValues&&a.setValues(o,l)),a}return null}addFilterTemplateToHeaderRow(e,t=!0){const i=e.column;if(((i==null?void 0:i.id)??"")!=="selector"&&(i!=null&&i.filterable)&&!(i!=null&&i.hidden)){let n,o;const l=this.filterFactory.createFilter(i.filter);o=i&&i.filter&&i.filter.operator||l&&l.operator,this._columnFilters[i.id]?(n=this._columnFilters[i.id].searchTerms||void 0,o=this._columnFilters[i.id].operator||void 0):i.filter&&(n=i.filter.searchTerms||void 0,this.updateColumnFilters(n,i,o));const a={grid:this._grid,operator:o,searchTerms:n,columnDef:i,filterContainerElm:e.node,callback:this.callbackSearchEvent.bind(this)};if(l&&a.filterContainerElm){l.init(a,t);const h=this._filtersMetadata.findIndex(d=>l.columnDef.id===d.columnDef.id);h===-1?this._filtersMetadata.push(l):this._filtersMetadata[h]=l,n&&l.setValues&&l.setValues(n,o)}}}callbackSearchEvent(e,t){var i,s;if(t){const n=e!=null&&e.target?e.target.value:void 0,o=t.searchTerms&&Array.isArray(t.searchTerms)?t.searchTerms:n?[n]:void 0,l=t.columnDef||null,a=(l==null?void 0:l.id)??"",h=((i=l==null?void 0:l.filter)==null?void 0:i.type)??(l==null?void 0:l.type)??w.string,d=t.operator||void 0,c=o&&Array.isArray(o),u=c&&o&&o.length,p={...this._columnFilters},m=((s=l.filter)==null?void 0:s.emptySearchTermReturnAllValues)??!0;let f;if(l&&a)if(!c||u===0||u===1&&Array.isArray(o)&&m&&o[0]==="")delete this._columnFilters[a];else{const C=`${a}`,b={columnId:C,columnDef:l,parsedSearchTerms:[],type:h,targetSelector:this.getSelectorStringFromElement(e==null?void 0:e.target)},S=this.parseFormInputFilterConditions(o,b);b.operator=d||S.operator||bn(h),f=js(S.searchTerms,h),f!==void 0&&(b.parsedSearchTerms=f),b.searchTerms=S.searchTerms||[],this._columnFilters[C]=b}const g=e&&typeof e.isPropagationStopped!="function"?de({},new le,e):e,_=e==null?void 0:e.key;if(this._onSearchChange&&(t.forceOnSearchChangeEvent||_==="Enter"||!pt(p,this._columnFilters))){const C={clearFilterTriggered:t.clearFilterTriggered,shouldTriggerQuery:t.shouldTriggerQuery,columnId:a,columnDef:l,columnFilters:this._columnFilters,operator:d||bn(h),searchTerms:o,parsedSearchTerms:f,grid:this._grid,target:e==null?void 0:e.target};this.pubSubService.publish("onBeforeSearchChange",C)===!1?this._gridOptions.resetFilterSearchValueAfterOnBeforeCancellation&&this.resetToPreviousSearchFilters():this._onSearchChange.notify(C,g)}}}disableAllFilteringCommands(e=!0){var s;const t=this._grid.getColumns();t.forEach(n=>{var o,l;(o=n==null?void 0:n.header)!=null&&o.menu&&((l=n.header.menu.commandItems)==null||l.forEach(a=>{a&&typeof a!="string"&&a.command==="clear-filter"&&(a.hidden=e)}))});const i=(s=this._gridOptions.gridMenu)==null?void 0:s.commandItems;return i&&i.forEach(n=>{if(n&&typeof n!="string"){const o=n.command;(o==="clear-filter"||o==="toggle-filter")&&(n.hidden=e)}}),t}extractBasicFilterDetails(e){const t=[];if(e&&typeof e=="object")for(const i of Object.keys(e)){const{operator:s,searchTerms:n}=e[`${i}`];t.push({columnId:i,operator:s,searchTerms:n})}return t}getSelectorStringFromElement(e){return e!=null&&e.localName?e!=null&&e.className?`${e.localName}.${Array.from(e.classList).join(".")}`:e.localName:""}removeAllColumnFiltersProperties(){typeof this._columnFilters=="object"&&Object.keys(this._columnFilters).forEach(e=>{e&&this._columnFilters[e]&&delete this._columnFilters[e]})}subscribeToOnHeaderRowCellRendered(e){this._eventHandler.subscribe(e.onBeforeHeaderRowCellDestroy,(t,i)=>{var n;const s=this._filtersMetadata.find(o=>o.columnDef.id===i.column.id);(n=s==null?void 0:s.destroy)==null||n.call(s)})}updateColumnFilters(e,t,i){var o;const s=((o=t.filter)==null?void 0:o.type)??t.type??w.string,n=js(e,s);e&&t&&(this._columnFilters[t.id]={columnId:t.id,columnDef:t,searchTerms:e,operator:i,parsedSearchTerms:n,type:s})}}const Ys={skipError:!1,triggerEvent:!0},rs={highlightRow:!0,resortGrid:!1,selectRow:!1,scrollRowIntoView:!0,skipError:!1,triggerEvent:!0},wr={highlightRow:!1,selectRow:!1,scrollRowIntoView:!1,skipError:!1,triggerEvent:!0},Sa={applySetColumns:!0,autoResizeColumns:!0,triggerEvent:!0,hideFromColumnPicker:!1,hideFromGridMenu:!1},cu={autoResizeColumns:!0,triggerEvent:!0};class uu{constructor(e,t,i,s,n,o,l){this.gridStateService=e,this.filterService=t,this.pubSubService=i,this.paginationService=s,this.sharedService=n,this.sortService=o,this.treeDataService=l}get _dataView(){var e;return(e=this._grid)==null?void 0:e.getData()}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}dispose(){var e;(e=this._rowSelectionPlugin)==null||e.dispose()}init(e){this._grid=e}clearAllFiltersAndSorts(){this.sortService&&this.sortService.clearSorting&&this.sortService.clearSorting(!1),this.filterService&&this.filterService.clearFilters&&this.filterService.clearFilters()}clearPinning(e=!0){const t=[...this.sharedService.visibleColumns];this.sharedService.slickGrid.setOptions({frozenColumn:-1,frozenRow:-1,frozenBottom:!1,enableMouseWheelScrollHandler:!1}),e&&Array.isArray(t)&&this.sharedService.slickGrid.setColumns(t)}setPinning(e,t=!0,i=!1,s=!0){To(e)?this.clearPinning():(this.sharedService.slickGrid.setOptions(e,i,s),this.sharedService.gridOptions={...this.sharedService.gridOptions,...e}),t&&this.sharedService.slickGrid.autosizeColumns()}getAllColumnDefinitions(){return this.sharedService.allColumns}getVisibleColumnDefinitions(){return this.sharedService.visibleColumns}getColumnFromEventArguments(e){if(!e||!e.grid||!e.grid.getColumns||!e.grid.getDataItem)throw new Error("[Slickgrid-Universal] To get the column definition and data, we need to have these arguments passed as objects (row, cell, grid)");return{row:e.row,cell:e.cell,columnDef:e.grid.getColumns()[e.cell],dataContext:e.grid.getDataItem(e.row),dataView:this._dataView,grid:this._grid}}getDataItemByRowNumber(e){if(!this._grid||typeof this._grid.getDataItem!="function")throw new Error(`[Slickgrid-Universal] We could not find SlickGrid Grid object or it's "getDataItem" method`);return this._grid.getDataItem(e)}getDataItemByRowIndex(e){if(!this._grid||typeof this._grid.getDataItem!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getDataItem" method');return this._grid.getDataItem(e)}getDataItemByRowIndexes(e){if(!this._grid||typeof this._grid.getDataItem!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getDataItem" method');const t=[];return Array.isArray(e)&&e.forEach(i=>{t.push(this._grid.getDataItem(i))}),t}getSelectedRows(){if(!this._grid||typeof this._grid.getSelectedRows!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getSelectedRows" method');return this._grid.getSelectedRows()}getSelectedRowsDataItem(){if(!this._grid||typeof this._grid.getSelectedRows!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getSelectedRows" method');const e=this._grid.getSelectedRows();return this.getDataItemByRowIndexes(e)}hideColumnById(e,t){if(this._grid){t={...Sa,...t};const i=this._grid.getColumns(),s=i.findIndex(n=>n.id===e);if(s>=0){const n=En(i,s);t!=null&&t.applySetColumns&&(this.sharedService.visibleColumns=n,this._grid.setColumns(n));const o=this.sharedService.allColumns.findIndex(l=>l.id===e);return o&&(t!=null&&t.hideFromColumnPicker&&(this.sharedService.allColumns[o].excludeFromColumnPicker=!0),t!=null&&t.hideFromGridMenu&&(this.sharedService.allColumns[o].excludeFromGridMenu=!0)),this.executeVisibilityCommands(t,["onHeaderMenuHideColumns"],n),s}}return-1}hideColumnByIds(e,t){if(Array.isArray(e)){const i=this._grid.getColumns().filter(s=>!e.includes(s.id));t={...Sa,...t};for(const s of e)this.hideColumnById(s,{...t,triggerEvent:!1,applySetColumns:!1,autoResizeColumns:!1});this.sharedService.visibleColumns=i,this._grid.setColumns(i),this.executeVisibilityCommands(t,["onHeaderMenuHideColumns","onHideColumns"],i)}}showColumnByIds(e,t){if(this._grid){t={...cu,...t};const i=this.sharedService.allColumns.filter(s=>e.includes(s.id));this._grid.setColumns(i),this.sharedService.visibleColumns=i,this.executeVisibilityCommands(t,["onShowColumns"],this.sharedService.visibleColumns)}}executeVisibilityCommands(e,t,i){e!=null&&e.autoResizeColumns&&this._grid.autosizeColumns(),e!=null&&e.triggerEvent&&t.forEach(s=>this.pubSubService.publish(s,{columns:i}))}highlightRow(e,t){this._grid.getSelectionModel()||(this._rowSelectionPlugin=new fr(this._gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionPlugin)),t||(t=this._gridOptions.rowHighlightDuration),Array.isArray(e)?e.forEach(i=>this._grid.highlightRow(i)):this._grid.highlightRow(e,t)}setSelectedRow(e){var t;(t=this._grid)!=null&&t.setSelectedRows&&this._grid.setSelectedRows([e])}setSelectedRows(e){var t;(t=this._grid)!=null&&t.setSelectedRows&&this._grid.setSelectedRows(e)}renderGrid(){var e;typeof((e=this._grid)==null?void 0:e.invalidate)=="function"&&this._grid.invalidate()}resetGrid(e){var t,i,s;if(this.clearPinning(!1),this._grid){const n=this.sharedService.allColumns||[];Array.isArray(n)&&n.length>0&&(this._grid.setColumns(n),(t=this._gridOptions)!=null&&t.enableAutoSizeColumns&&this._grid.autosizeColumns(),this.gridStateService.resetColumns(e))}typeof((i=this.filterService)==null?void 0:i.clearFilters)=="function"&&this.filterService.clearFilters(),typeof((s=this.sortService)==null?void 0:s.clearSorting)=="function"&&this.sortService.clearSorting()}addItem(e,t){var h,d,c,u;const i={...rs,...t};if(!(i!=null&&i.skipError)&&(!this._grid||!this._gridOptions||!this._dataView))throw new Error("[Slickgrid-Universal] We could not find SlickGrid Grid, DataView objects");const s=this._gridOptions.datasetIdPropertyName||"id";if(!(i!=null&&i.skipError)&&(!e||!e.hasOwnProperty(s)))throw new Error(`[Slickgrid-Universal] Adding an item requires the item to include an "${s}" property`);if((h=this._gridOptions)!=null&&h.enableTreeData&&(t==null?void 0:t.position)==="top")throw new Error('[Slickgrid-Universal] Please note that `addItem({ position: "top" })` is not supported when used with Tree Data because of the extra complexity.');const n=i==null?void 0:i.position;n==="bottom"||(d=this._gridOptions)!=null&&d.enableTreeData?this._dataView.addItem(e):this._dataView.insertItem(0,e);let o=0;const l=(e==null?void 0:e[s])??"";return(c=this._gridOptions)!=null&&c.enableTreeData?(this.invalidateHierarchicalDataset(),o=this._dataView.getRowById(l),i.scrollRowIntoView&&this._grid.scrollRowIntoView(o??0,!1)):i.resortGrid?(this._dataView.reSort(),o=this._dataView.getRowById(l)):(o=n==="bottom"?this._dataView.getRowById(l):0,i.scrollRowIntoView&&this._grid.scrollRowIntoView(o??0)),i.highlightRow&&o!==void 0&&this.highlightRow(o),o!==void 0&&i.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRow(o),i.triggerEvent&&this.pubSubService.publish("onItemAdded",e),!((u=this._gridOptions)!=null&&u.backendServiceApi)&&this._gridOptions.enablePagination&&(n==="bottom"?this.paginationService.goToLastPage():this.paginationService.goToFirstPage()),o}addItems(e,t){var l,a,h,d;const i={...rs,...t},s=this._gridOptions.datasetIdPropertyName||"id",n=i==null?void 0:i.position,o=[];if(Array.isArray(e))this._dataView.beginUpdate(!0),n==="bottom"||(l=this._gridOptions)!=null&&l.enableTreeData?this._dataView.addItems(e):this._dataView.insertItems(0,e),this._dataView.endUpdate();else return[this.addItem(e,i)||0];if((a=this._gridOptions)!=null&&a.enableTreeData){this.invalidateHierarchicalDataset();const c=((h=e[0])==null?void 0:h[s])??"",u=this._dataView.getRowById(c);i.scrollRowIntoView&&this._grid.scrollRowIntoView(u??0,!1)}else i.resortGrid&&this._dataView.reSort();return n&&i.scrollRowIntoView&&!((d=this._gridOptions)!=null&&d.enableTreeData)&&(n==="bottom"?this._grid.navigateBottom():this._grid.navigateTop()),e.forEach(c=>o.push(this._dataView.getRowById(c[s]))),i.highlightRow&&this.highlightRow(o),i.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows(o),i.triggerEvent&&this.pubSubService.publish("onItemAdded",e),o}deleteItem(e,t){t={...Ys,...t};const i=this._gridOptions.datasetIdPropertyName||"id";if(!(t!=null&&t.skipError)&&(!e||!e.hasOwnProperty(i)))throw new Error(`[Slickgrid-Universal] Deleting an item requires the item to include an "${i}" property`);return this.deleteItemById(e[i],t)}deleteItems(e,t){t={...Ys,...t};const i=this._gridOptions.datasetIdPropertyName||"id";if(!Array.isArray(e))return this.deleteItem(e,t),[e[i]];this._dataView.beginUpdate(!0);const s=[];return e.forEach(n=>{(n==null?void 0:n[i])!==void 0&&s.push(n[i])}),this._dataView.deleteItems(s),this._dataView.endUpdate(),t.triggerEvent&&this.pubSubService.publish("onItemDeleted",e),s}deleteItemById(e,t){if(t={...Ys,...t},!(t!=null&&t.skipError)&&e==null)throw new Error('[Slickgrid-Universal] Cannot delete a row without a valid "id"');return!(this.gridStateService&&this.gridStateService.needToPreserveRowSelection()||!1)&&this._grid&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows([]),this._dataView.deleteItem(e),t.triggerEvent&&this.pubSubService.publish("onItemDeleted",e),e}deleteItemByIds(e,t){if(t={...Ys,...t},Array.isArray(e)){this._dataView.beginUpdate(!0);for(let i=0;i<e.length;i++)e[i]!==null&&this.deleteItemById(e[i],{triggerEvent:!1});return this._dataView.endUpdate(),t.triggerEvent&&this.pubSubService.publish("onItemDeleted",e),e}return[]}updateItem(e,t){t={...wr,...t};const i=this._gridOptions.datasetIdPropertyName||"id",s=!e||!e.hasOwnProperty(i)?void 0:e[i];if(!(t!=null&&t.skipError)&&s===void 0)throw new Error(`[Slickgrid-Universal] Calling Update of an item requires the item to include an "${i}" property`);return this.updateItemById(s,e,t)}updateItems(e,t){var o;t={...wr,...t};const i=this._gridOptions.datasetIdPropertyName||"id";if(!Array.isArray(e))return[this.updateItem(e,t)];this._dataView.beginUpdate(!0);const s=[],n=[];return e.forEach(l=>{const a=!l||!l.hasOwnProperty(i)?void 0:l[i];if(n.push(a),this._dataView.getIdxById(a)!==void 0){const h=this._dataView.getRowById(a);h!==void 0&&(s.push(h),this._grid.updateRow(h))}}),this._dataView.updateItems(n,e),this._dataView.endUpdate(),(o=this._gridOptions)!=null&&o.enableTreeData&&this.invalidateHierarchicalDataset(),t.highlightRow&&this.highlightRow(s),t.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows(s),t.triggerEvent&&this.pubSubService.publish("onItemUpdated",e),s}updateItemById(e,t,i){var n;if(i={...wr,...i},!(i!=null&&i.skipError)&&e===void 0)throw new Error('[Slickgrid-Universal] Cannot update a row without a valid "id"');const s=this._dataView.getRowById(e);if(!(i!=null&&i.skipError)&&!t&&!this._gridOptions.enablePagination)throw new Error(`[Slickgrid-Universal] The item to update in the grid was not found with id: ${e}`);return this._dataView.getIdxById(e)!==void 0&&(this._dataView.updateItem(e,t),s!==void 0&&this._grid.updateRow(s),(n=this._gridOptions)!=null&&n.enableTreeData&&this.invalidateHierarchicalDataset(),i.scrollRowIntoView&&s!==void 0&&this._grid.scrollRowIntoView(s),i.highlightRow&&s!==void 0&&this.highlightRow(s),s!==void 0&&i.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRow(s),i.triggerEvent&&this.pubSubService.publish("onItemUpdated",t)),s}upsertItem(e,t){t={...rs,...t};const i=this._gridOptions.datasetIdPropertyName||"id",s=!e||!e.hasOwnProperty(i)?void 0:e[i];if(!(t!=null&&t.skipError)&&s===void 0)throw new Error(`[Slickgrid-Universal] Calling Upsert of an item requires the item to include an "${i}" property`);return this.upsertItemById(s,e,t)}upsertItems(e,t){if(t={...rs,...t},!Array.isArray(e))return[this.upsertItem(e,t)];this._dataView.beginUpdate(!0);const i=[];e.forEach(n=>{i.push(this.upsertItem(n,{...t,highlightRow:!1,resortGrid:!1,selectRow:!1,triggerEvent:!1}))}),this._dataView.endUpdate();const s=i.map(n=>n.added!==void 0?n.added:n.updated);if(t.highlightRow&&this.highlightRow(s),t.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows(s),t.triggerEvent){this.pubSubService.publish("onItemUpserted",e);const n=i.filter(l=>l.added!==void 0);Array.isArray(n)&&n.length>0&&this.pubSubService.publish("onItemAdded",n);const o=i.filter(l=>l.updated!==void 0);Array.isArray(o)&&o.length>0&&this.pubSubService.publish("onItemUpdated",o)}return i}upsertItemById(e,t,i){let s=!1;if(i={...rs,...i},!(i!=null&&i.skipError)&&e===void 0&&!this.hasRowSelectionEnabled())throw new Error('[Slickgrid-Universal] Calling Upsert of an item requires the item to include a valid and unique "id" property');let n,o;return this._dataView.getRowById(e)===void 0?(n=this.addItem(t,i),s=!0):(o=this.updateItem(t,{highlightRow:i.highlightRow,selectRow:i.selectRow,triggerEvent:i.triggerEvent}),s=!1),i.triggerEvent&&(this.pubSubService.publish("onItemUpserted",t),s?this.pubSubService.publish("onItemAdded",t):this.pubSubService.publish("onItemUpdated",t)),{added:n,updated:o}}invalidateHierarchicalDataset(e){var t;if((t=this._gridOptions)!=null&&t.enableTreeData&&this.treeDataService){const i=e??this._dataView.getItems(),s=this.sortService.getCurrentColumnSorts(),n=this.treeDataService.convertFlatParentChildToTreeDatasetAndSort(i||[],this.sharedService.allColumns,this._gridOptions,s);this.sharedService.hierarchicalDataset=n.hierarchical,this.filterService.refreshTreeDataFilters(e),this._dataView.setItems(n.flat),this._grid.invalidate()}}hasRowSelectionEnabled(){const e=this._grid.getSelectionModel();return!!(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&!!e}}class pu{get eventHandler(){return this._eventHandler}constructor(){this._eventHandler=new pe}dispose(){this._eventHandler.unsubscribeAll()}bindOnBeforeEditCell(e){const t=e==null?void 0:e.getData();this._eventHandler.subscribe(e.onBeforeEditCell,(i,s)=>{if(!i||!s||!e||s.cell===void 0||!e.getColumns||!e.getDataItem)return;const n=e.getColumns()[s.cell];if(typeof n.onBeforeEditCell=="function"){const o={row:s.row,cell:s.cell,dataView:t,grid:e,columnDef:n,dataContext:e.getDataItem(s.row)};n.onBeforeEditCell(i instanceof le?i.getNativeEvent():i,o)}})}bindOnCellChange(e){const t=e==null?void 0:e.getData();this._eventHandler.subscribe(e.onCellChange,(i,s)=>{if(!i||!s||!e||s.cell===void 0||!e.getColumns||!e.getDataItem)return;const n=e.getColumns()[s.cell];if(typeof n.onCellChange=="function"){const o={row:s.row,cell:s.cell,dataView:t,grid:e,columnDef:n,dataContext:e.getDataItem(s.row)};n.onCellChange(i instanceof le?i.getNativeEvent():i,o)}})}bindOnClick(e){const t=e==null?void 0:e.getData();this._eventHandler.subscribe(e.onClick,(i,s)=>{if(!i||!s||!e||s.cell===void 0||!e.getColumns||!e.getDataItem)return;const n=e.getColumns()[s.cell];if(typeof n.onCellClick=="function"){const o={row:s.row,cell:s.cell,dataView:t,grid:e,columnDef:n,dataContext:e.getDataItem(s.row)};n.onCellClick(i instanceof le?i.getNativeEvent():i,o)}})}}class mu{constructor(e,t,i,s,n,o){this.extensionService=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this.treeDataService=o,this._columns=[],this._subscriptions=[],this._selectedRowIndexes=[],this._selectedRowDataContextIds=[],this._wasRecheckedAfterPageChange=!0,this._eventHandler=new pe}get _dataView(){var e;return((e=this._grid)==null?void 0:e.getData())??{}}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get selectedRowDataContextIds(){return this._selectedRowDataContextIds}set selectedRowDataContextIds(e){this._selectedRowDataContextIds=e}init(e){this._grid=e,this.subscribeToAllGridChanges(e)}dispose(){this._columns=[],this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}changeColumnsArrangement(e,t=!0,i=!1){var s,n,o,l,a,h;if(Array.isArray(e)&&e.length>0){const d=this.getAssociatedGridColumns(this._grid,e);if(d&&Array.isArray(d)&&d.length>0){if(Array.isArray(this.sharedService.allColumns)){const c=[];if(this._gridOptions.enableCheckboxSelector){const u=((n=(s=this._gridOptions)==null?void 0:s.checkboxSelector)==null?void 0:n.columnIndexPosition)??0;c.push({columnId:"_checkbox_selector",columnIndexPosition:u})}if(this._gridOptions.enableRowDetailView){const u=((l=(o=this._gridOptions)==null?void 0:o.rowDetailView)==null?void 0:l.columnIndexPosition)??0;c.push({columnId:"_detail_selector",columnIndexPosition:u})}if(this._gridOptions.enableRowMoveManager){const u=((h=(a=this._gridOptions)==null?void 0:a.rowMoveManager)==null?void 0:h.columnIndexPosition)??0;c.push({columnId:"_move",columnIndexPosition:u})}this.addColumnDynamicWhenFeatureEnabled(c,this.sharedService.allColumns,d)}d.forEach(c=>c.originalWidth=c.width||c.originalWidth),this._grid.setColumns(d),this.sharedService.visibleColumns=d,t?this._grid.autosizeColumns():(i||this._gridOptions.enableAutoResizeColumnsByCellContent&&!this._gridOptions.autosizeColumnsByCellContentOnFirstLoad)&&this.pubSubService.publish("onFullResizeByContentRequested",{caller:"GridStateService"})}}}getCurrentGridState(){var o;const{frozenColumn:e,frozenRow:t,frozenBottom:i}=this.sharedService.gridOptions,s={columns:this.getCurrentColumns(),filters:this.getCurrentFilters(),sorters:this.getCurrentSorters(),pinning:{frozenColumn:e,frozenRow:t,frozenBottom:i}},n=this.getCurrentPagination();if(n&&(s.pagination=n),this.hasRowSelectionEnabled()){const l=this.getCurrentRowSelections();l&&(s.rowSelection=l)}if((o=this._gridOptions)!=null&&o.enableTreeData){const l=this.getCurrentTreeDataToggleState();l&&(s.treeData=l)}return s}getColumns(){return this._columns}getAssociatedCurrentColumns(e){const t=[];return e&&Array.isArray(e)&&e.forEach(i=>{i!=null&&i.id&&t.push({columnId:i.id,cssClass:i.cssClass||"",headerCssClass:i.headerCssClass||"",width:i.width||0})}),t}getAssociatedGridColumns(e,t){const i=[],s=this.sharedService.allColumns||e.getColumns();return t&&Array.isArray(t)&&t.forEach(n=>{const o=s.find(l=>l.id===n.columnId);o!=null&&o.id&&i.push({...o,cssClass:n.cssClass||o.cssClass,headerCssClass:n.headerCssClass||o.headerCssClass,width:n.width})}),this._columns=i,i}getCurrentColumns(){return this.getAssociatedCurrentColumns(this._grid.getColumns()||[])}getCurrentFilters(){var e,t;if((e=this._gridOptions)!=null&&e.backendServiceApi){const i=this._gridOptions.backendServiceApi.service;if(i!=null&&i.getCurrentFilters)return i.getCurrentFilters()}else if((t=this.filterService)!=null&&t.getCurrentLocalFilters)return this.filterService.getCurrentLocalFilters();return null}getCurrentPagination(){var e;if((e=this._gridOptions)!=null&&e.enablePagination)if(this._gridOptions.backendServiceApi){const t=this._gridOptions.backendServiceApi.service;if(t!=null&&t.getCurrentPagination)return t.getCurrentPagination()}else return this.sharedService.currentPagination;return null}getCurrentRowSelections(){return this._grid&&this._dataView&&this.hasRowSelectionEnabled()?{gridRowIndexes:this._grid.getSelectedRows()||[],dataContextIds:this._dataView.getAllSelectedIds()||[],filteredDataContextIds:this._dataView.getAllSelectedFilteredIds()||[]}:null}getCurrentSorters(){var e,t;if((e=this._gridOptions)!=null&&e.backendServiceApi){const i=this._gridOptions.backendServiceApi.service;if(i!=null&&i.getCurrentSorters)return i.getCurrentSorters()}else if((t=this.sortService)!=null&&t.getCurrentLocalSorters)return this.sortService.getCurrentLocalSorters();return null}getCurrentTreeDataToggleState(){var e;return(e=this._gridOptions)!=null&&e.enableTreeData&&this.treeDataService?this.treeDataService.getCurrentToggleState():null}needToPreserveRowSelection(){var t;let e=!1;if((t=this._gridOptions)!=null&&t.dataView&&this._gridOptions.dataView.hasOwnProperty("syncGridSelection")){const i=this._gridOptions.dataView.syncGridSelection;typeof i=="boolean"?e=this._gridOptions.dataView.syncGridSelection:typeof i=="object"&&(e=i.preserveHidden||i.preserveHiddenOnSelectionChange),e&&this._gridOptions.backendServiceApi&&this._gridOptions.dataView.hasOwnProperty("syncGridSelectionWithBackendService")&&(e=this._gridOptions.dataView.syncGridSelectionWithBackendService)}return e}resetColumns(e){const t=e||this._columns,i=this.getAssociatedCurrentColumns(t);this.pubSubService.publish("onGridStateChanged",{change:{newValues:i,type:$e.columns},gridState:this.getCurrentGridState()})}resetToOriginalColumns(e=!0){this._grid.setColumns(this.sharedService.allColumns),this.sharedService.visibleColumns=this.sharedService.allColumns,e&&this._grid.autosizeColumns()}resetRowSelectionWhenRequired(){var e,t;if(!this.needToPreserveRowSelection()&&(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)){const i=(t=(e=this.extensionService)==null?void 0:e.getExtensionByName)==null?void 0:t.call(e,G.rowSelection);i!=null&&i.instance&&this._grid.setSelectedRows([])}}subscribeToAllGridChanges(e){this._subscriptions.push(this.pubSubService.subscribe("onFilterChanged",t=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onFilterCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:$e.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortChanged",t=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.sorter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:$e.sorter},gridState:this.getCurrentGridState()})})),this.bindExtensionAddonEventToGridStateChange(G.columnPicker,"onColumnsChanged"),this.bindExtensionAddonEventToGridStateChange(G.gridMenu,"onColumnsChanged"),this.bindSlickGridColumnChangeEventToGridStateChange("onColumnsReordered",e),this.bindSlickGridColumnChangeEventToGridStateChange("onColumnsResized",e),this.bindSlickGridOnSetOptionsEventToGridStateChange(e),(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&this._eventHandler.subscribe(this._dataView.onSelectedRowIdsChanged,(t,i)=>{const s=(this._selectedRowIndexes||[]).slice(),n=(this.selectedRowDataContextIds||[]).slice();if(this.selectedRowDataContextIds=i.filteredIds,this._selectedRowIndexes=i.rows,!pt(this.selectedRowDataContextIds,n)||!pt(this._selectedRowIndexes,s)){const o={gridRowIndexes:this._selectedRowIndexes||[],dataContextIds:i.selectedRowIds,filteredDataContextIds:i.filteredIds};this.pubSubService.publish("onGridStateChanged",{change:{newValues:o,type:$e.rowSelection},gridState:this.getCurrentGridState()})}}),this._subscriptions.push(this.pubSubService.subscribe(["onHeaderMenuHideColumns","onHideColumns","onShowColumns"],t=>{const i=this.getAssociatedCurrentColumns(t.columns);this.pubSubService.publish("onGridStateChanged",{change:{newValues:i,type:$e.columns},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeItemToggled",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.treeData},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeFullToggleEnd",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.treeData},gridState:this.getCurrentGridState()})}))}addColumnDynamicWhenFeatureEnabled(e,t,i){e.sort((s,n)=>s.columnIndexPosition-n.columnIndexPosition),e.forEach(s=>{const n=t.findIndex(l=>l.id===s.columnId),o=i.findIndex(l=>l.id===s.columnId);if(n>=0&&o===-1){const l=t[n];n===0?i.unshift(l):i.splice(n,0,l)}})}bindExtensionAddonEventToGridStateChange(e,t){var n,o,l;const i=(o=(n=this.extensionService)==null?void 0:n.getExtensionByName)==null?void 0:o.call(n,e),s=(l=i==null?void 0:i.instance)==null?void 0:l[t];s&&typeof s.subscribe=="function"&&this._eventHandler.subscribe(s,(a,h)=>{const d=h==null?void 0:h.columns,c=this.getAssociatedCurrentColumns(d);this.pubSubService.publish("onGridStateChanged",{change:{newValues:c,type:$e.columns},gridState:this.getCurrentGridState()})})}bindSlickGridColumnChangeEventToGridStateChange(e,t){const i=t==null?void 0:t[e];i&&typeof i.subscribe=="function"&&this._eventHandler.subscribe(i,()=>{const s=t.getColumns(),n=this.getAssociatedCurrentColumns(s);this.pubSubService.publish("onGridStateChanged",{change:{newValues:n,type:$e.columns},gridState:this.getCurrentGridState()})})}bindSlickGridOnSetOptionsEventToGridStateChange(e){const t=e.onSetOptions;this._eventHandler.subscribe(t,(i,s)=>{const{frozenBottom:n,frozenColumn:o,frozenRow:l}=s.optionsBefore,{frozenBottom:a,frozenColumn:h,frozenRow:d}=s.optionsAfter;if(n!==a||o!==h||l!==d){const c={frozenBottom:a,frozenColumn:h,frozenRow:d},u=this.getCurrentGridState();this.pubSubService.publish("onGridStateChanged",{change:{newValues:c,type:$e.pinning},gridState:u})}})}hasRowSelectionEnabled(){const e=this._grid.getSelectionModel();return!!(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&!!e}}class fu{constructor(e){this.extensionUtility=e,this._subscriptions=[],this._eventHandler=new pe}get _dataView(){var e;return((e=this._grid)==null?void 0:e.getData())??{}}get eventHandler(){return this._eventHandler}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get _columnDefinitions(){var e;return((e=this._grid)==null?void 0:e.getColumns())??[]}init(e){this._grid=e,e&&this._gridOptions&&this._gridOptions.createPreHeaderPanel&&(this._gridOptions.enableTranslate&&this.translateHeaderGrouping(),this._eventHandler.subscribe(e.onRendered,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onAutosizeColumns,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(this._dataView.onRowCountChanged,()=>this.delayRenderPreHeaderRowGroupingTitles(0)),this._eventHandler.subscribe(e.onSetOptions,(t,i)=>{var s,n;((s=i==null?void 0:i.optionsBefore)==null?void 0:s.frozenColumn)!==((n=i==null?void 0:i.optionsAfter)==null?void 0:n.frozenColumn)&&this.delayRenderPreHeaderRowGroupingTitles(0)}),this.delayRenderPreHeaderRowGroupingTitles(75))}dispose(){this._eventHandler.unsubscribeAll()}delayRenderPreHeaderRowGroupingTitles(e=0){window.setTimeout(()=>this.renderPreHeaderRowGroupingTitles(),e)}renderPreHeaderRowGroupingTitles(){var t;const e=this._columnDefinitions.length;if(((t=this._gridOptions)==null?void 0:t.frozenColumn)!==void 0&&this._gridOptions.frozenColumn>=0){const i=this._gridOptions.frozenColumn;this.renderHeaderGroups(this._grid.getPreHeaderPanelLeft(),0,i+1),this.renderHeaderGroups(this._grid.getPreHeaderPanelRight(),i+1,e)}else this.renderHeaderGroups(this._grid.getPreHeaderPanel(),0,e)}renderHeaderGroups(e,t,i){var c,u,p;ee(e),e.className="slick-header-columns",e.style.left="-1000px",e.style.width=`${this._grid.getHeadersWidth()}px`,(c=e.parentElement)==null||c.classList.add("slick-header");const s=this._grid.getHeaderColumnWidthDiff();let n,o=null,l="",a=0;const h=((u=this._gridOptions)==null?void 0:u.frozenHeaderWidthCalcDifferential)??0,d=((p=this._gridOptions)==null?void 0:p.frozenColumn)!==void 0&&this._gridOptions.frozenColumn>=0;for(let m=t;m<i;m++)n=this._columnDefinitions[m],n&&(l===n.columnGroup&&m>0?(a+=n.width||0,o!=null&&o.style&&(o.style.width=`${a-s-h}px`)):(a=n.width||0,o=v("div",{className:`slick-state-default slick-header-column ${d?"frozen":""}`,dataset:{group:n.columnGroup},style:{width:`${a-s}px`}}),v("span",{className:"slick-column-name",textContent:n.columnGroup||""},o),e.appendChild(o)),l=n.columnGroup||"")}translateHeaderGrouping(){const e=this._grid.getColumns();this.extensionUtility.translateItems(e,"columnGroupKey","columnGroup"),this._grid.setColumns(e),this.renderPreHeaderRowGroupingTitles()}}class gu{constructor(e,t,i,s){this.pubSubService=e,this.sharedService=t,this.backendUtilities=i,this.rxjs=s,this._initialized=!1,this._isLocalGrid=!0,this._dataFrom=1,this._dataTo=1,this._itemsPerPage=0,this._pageCount=1,this._pageNumber=1,this._totalItems=0,this._availablePageSizes=[],this._subscriptions=[],this._isCursorBased=!1,this._eventHandler=new pe}get dataView(){var e;return((e=this.grid)==null?void 0:e.getData())??{}}set paginationOptions(e){this._paginationOptions=e}get paginationOptions(){return this._paginationOptions}get availablePageSizes(){return this._availablePageSizes}get dataFrom(){return this._dataFrom}get dataTo(){return this._dataTo}get itemsPerPage(){return this._itemsPerPage}get pageCount(){return this._pageCount}get pageNumber(){return this._pageNumber}get totalItems(){return this._totalItems}set totalItems(e){this._totalItems=e,this._initialized&&this.refreshPagination()}get isCursorBased(){return this._isCursorBased}addRxJsResource(e){this.rxjs=e}init(e,t,i){var n,o;if(this._availablePageSizes=t.pageSizes||[],this.grid=e,this._backendServiceApi=i,this._paginationOptions=t,this._isLocalGrid=!i,this._pageNumber=t.pageNumber||1,this._isCursorBased=((n=i==null?void 0:i.options)==null?void 0:n.useCursor)??!1,i&&(!i.service||!i.process))throw new Error('BackendServiceApi requires the following 2 properties "process" and "service" to be defined.');this._isLocalGrid&&this.dataView&&(this._eventHandler.subscribe(this.dataView.onPagingInfoChanged,(l,a)=>{this._totalItems!==a.totalRows&&(this.updateTotalItems(a.totalRows),this._previousPagination={pageNumber:a.pageNum,pageSize:a.pageSize,pageSizes:this.availablePageSizes,totalItems:a.totalRows})}),queueMicrotask(()=>{this.dataView&&(this.dataView.setRefreshHints({isFilterUnchanged:!0}),this.dataView.setPagingOptions({pageSize:this.paginationOptions.pageSize,pageNum:this._pageNumber-1}))})),this._subscriptions.push(this.pubSubService.subscribe(["onFilterChanged","onFilterCleared"],()=>this.resetPagination())),(o=i==null?void 0:i.options)!=null&&o.infiniteScroll&&this._subscriptions.push(this.pubSubService.subscribe("onSortChanged",()=>this.resetPagination())),this.dataView&&(this._subscriptions.push(this.pubSubService.subscribe("onItemAdded",l=>this.processOnItemAddedOrRemoved(l,!0))),this._subscriptions.push(this.pubSubService.subscribe("onItemDeleted",l=>this.processOnItemAddedOrRemoved(l,!1)))),this.refreshPagination(!1,!1,!0);const s=this.getFullPagination();this._previousPagination={pageNumber:s.pageNumber,pageSize:s.pageSize,pageSizes:s.pageSizes,totalItems:this.totalItems},this._initialized=!0,hs(t,"totalItems",l=>this._totalItems=l)}dispose(){this._initialized=!1,this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}getCurrentPagination(){return{pageNumber:this._pageNumber,pageSize:this._itemsPerPage,pageSizes:this._availablePageSizes}}getFullPagination(){return{pageCount:this._pageCount,pageNumber:this._pageNumber,pageSize:this._itemsPerPage,pageSizes:this._availablePageSizes,totalItems:this._totalItems,dataFrom:this._dataFrom,dataTo:this._dataTo}}getCurrentPageNumber(){return this._pageNumber}getCurrentItemPerPage(){return this._itemsPerPage}changeItemPerPage(e,t,i=!0){return this._pageNumber=1,this._pageCount=Math.ceil(this._totalItems/e),this._itemsPerPage=e,i?this.processOnPageChanged(this._pageNumber,t):Promise.resolve(this.getFullPagination())}goToFirstPage(e,t=!0){return this._pageNumber=1,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,first:this._itemsPerPage}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())}goToLastPage(e,t=!0){return this._pageNumber=this._pageCount||1,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,last:this._itemsPerPage}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())}goToNextPage(e,t=!0){return this._pageNumber<this._pageCount?(this._pageNumber++,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,first:this._itemsPerPage,after:this._cursorPageInfo.endCursor}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())):Promise.resolve(!1)}goToPageNumber(e,t,i=!0){if(this.isCursorBased)return console.assert(!0,"Cursor based navigation cannot navigate to arbitrary page"),Promise.resolve(!1);const s=this._pageNumber;return e<1?this._pageNumber=1:e>this._pageCount?this._pageNumber=this._pageCount:this._pageNumber=e,this._pageNumber!==s?i?this.processOnPageChanged(this._pageNumber,t):Promise.resolve(this.getFullPagination()):Promise.resolve(!1)}goToPreviousPage(e,t=!0){return this._pageNumber>1?(this._pageNumber--,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,last:this._itemsPerPage,before:this._cursorPageInfo.startCursor}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())):Promise.resolve(!1)}refreshPagination(e=!1,t=!0,i=!1){var o,l,a;const s={...this.getFullPagination()};if(this._paginationOptions){const h=this._paginationOptions;this._itemsPerPage||(this._isLocalGrid?this._itemsPerPage=h.pageSize:this._itemsPerPage=+((a=(l=(o=this._backendServiceApi)==null?void 0:o.options)==null?void 0:l.paginationOptions)!=null&&a.first?this._backendServiceApi.options.paginationOptions.first:h.pageSize)),(e||this._totalItems!==h.totalItems)&&(e?(this._pageNumber=1,this.paginationOptions.pageNumber=1):!this._initialized&&h.pageNumber&&h.pageNumber>1&&(this._pageNumber=h.pageNumber||1),this._pageNumber===1&&this._backendServiceApi&&this._backendServiceApi.service.resetPaginationOptions()),this._availablePageSizes=h.pageSizes||[],!this._totalItems&&h.totalItems&&(this._totalItems=h.totalItems),this.recalculateFromToIndexes()}this._pageCount=Math.ceil(this._totalItems/this._itemsPerPage),this.sharedService.currentPagination=this.getCurrentPagination(),this.pubSubService.publish("onPaginationRefreshed",this.getFullPagination()),t&&!pt(s,this.getFullPagination())&&this.pubSubService.publish("onPaginationChanged",this.getFullPagination()),i&&!pt(s,this.getFullPagination())&&this.pubSubService.publish("onPaginationPresetsInitialized",this.getFullPagination());const n=this.getFullPagination();this._previousPagination={pageNumber:n.pageNumber,pageSize:n.pageSize,pageSizes:n.pageSizes,totalItems:this.totalItems}}resetPagination(e=!0,t=!0){var i,s;this._isLocalGrid&&this.dataView&&((s=(i=this.sharedService)==null?void 0:i.gridOptions)!=null&&s.enablePagination)&&this.dataView.setPagingOptions({pageSize:this._itemsPerPage,pageNum:0}),this._cursorPageInfo=void 0,this.refreshPagination(!0,e),t&&this.grid.scrollTo(0)}togglePaginationVisibility(e){var t;if(this.grid&&((t=this.sharedService)!=null&&t.gridOptions)){const i=e!==void 0?e:!this.sharedService.gridOptions.enablePagination;if(i&&this.goToFirstPage(),this._isLocalGrid&&this.dataView){const s=e?this._itemsPerPage:0;this.dataView.setPagingOptions({pageSize:s,pageNum:0})}this.sharedService.gridOptions.enablePagination=i,this.pubSubService.publish("onPaginationVisibilityChanged",{visible:i})}}processOnPageChanged(e,t,i){return console.assert(!this.isCursorBased||i,"Configured for cursor based pagination - cursorArgs expected"),this.pubSubService.publish("onBeforePaginationChange",this.getFullPagination())===!1?(this.resetToPreviousPagination(),Promise.resolve(this.getFullPagination())):new Promise((s,n)=>{var o,l,a;if(this.recalculateFromToIndexes(),this._isLocalGrid&&this.dataView)this.dataView.setPagingOptions({pageSize:this._itemsPerPage,pageNum:e-1}),this.pubSubService.publish("onPaginationChanged",this.getFullPagination()),this.pubSubService.publish("onPaginationRefreshed",this.getFullPagination()),s(this.getFullPagination());else{const h=+this._itemsPerPage,d=new Date;if((o=this._backendServiceApi)!=null&&o.preProcess&&this._backendServiceApi.preProcess(),(l=this._backendServiceApi)!=null&&l.process){const c=this.isCursorBased&&i?this._backendServiceApi.service.processOnPaginationChanged(t,i):this._backendServiceApi.service.processOnPaginationChanged(t,{newPage:e,pageSize:h}),u=this._backendServiceApi.process(c);u instanceof Promise?u.then(p=>{var f;(f=this.backendUtilities)==null||f.executeBackendProcessesCallback(d,p,this._backendServiceApi,this._totalItems);const m=this.getFullPagination();this._previousPagination={pageNumber:m.pageNumber,pageSize:m.pageSize,pageSizes:m.pageSizes,totalItems:this.totalItems},s(this.getFullPagination())}).catch(p=>{var m,f,g;this.resetToPreviousPagination(),(m=this.backendUtilities)==null||m.onBackendError(p,this._backendServiceApi),(!((f=this._backendServiceApi)!=null&&f.onError)||!((g=this.backendUtilities)!=null&&g.onBackendError))&&n(u)}):(a=this.rxjs)!=null&&a.isObservable(u)&&this._subscriptions.push(u.subscribe(p=>{var f;const m=this.getFullPagination();this._previousPagination={pageNumber:m.pageNumber,pageSize:m.pageSize,pageSizes:m.pageSizes,totalItems:this.totalItems},s((f=this.backendUtilities)==null?void 0:f.executeBackendProcessesCallback(d,p,this._backendServiceApi,this._totalItems))},p=>{var m,f,g;this.resetToPreviousPagination(),(m=this.backendUtilities)==null||m.onBackendError(p,this._backendServiceApi),(!((f=this._backendServiceApi)!=null&&f.onError)||!((g=this.backendUtilities)!=null&&g.onBackendError))&&n(u)})),this.pubSubService.publish("onPaginationRefreshed",this.getFullPagination()),this.pubSubService.publish("onPaginationChanged",this.getFullPagination())}}})}recalculateFromToIndexes(){((this._pageNumber-1)*this._itemsPerPage>this._totalItems||this._totalItems>0&&this._pageNumber===0)&&(this._pageNumber=1),this._totalItems===0?(this._dataFrom=0,this._dataTo=1,this._pageNumber=0):(this._dataFrom=this._pageNumber>1?this._pageNumber*this._itemsPerPage-this._itemsPerPage+1:1,this._dataTo=this._totalItems<this._itemsPerPage?this._totalItems:(this._pageNumber||1)*this._itemsPerPage,this._dataTo>this._totalItems&&(this._dataTo=this._totalItems)),this._dataTo>this._totalItems?this._dataTo=this._totalItems:this._totalItems<this._itemsPerPage&&(this._dataTo=this._totalItems)}resetToPreviousPagination(){var i,s,n,o,l,a,h,d,c;const e=((i=this._previousPagination)==null?void 0:i.pageNumber)!==this.getFullPagination().pageNumber,t=((s=this._previousPagination)==null?void 0:s.pageSize)!==this.getFullPagination().pageSize;t&&this.changeItemPerPage(((n=this._previousPagination)==null?void 0:n.pageSize)??0,null,!1),e&&this.goToPageNumber(((o=this._previousPagination)==null?void 0:o.pageNumber)??0,null,!1),(e||t)&&(this.refreshPagination(),(c=(a=(l=this._backendServiceApi)==null?void 0:l.service)==null?void 0:a.updatePagination)==null||c.call(a,((h=this._previousPagination)==null?void 0:h.pageNumber)??0,((d=this._previousPagination)==null?void 0:d.pageSize)??0))}setCursorBased(e){this._isCursorBased=e,e&&this.setCursorPageInfo({startCursor:"",endCursor:"",hasNextPage:!1,hasPreviousPage:!1}),this.goToFirstPage(),this.pubSubService.publish("onPaginationSetCursorBased",{isCursorBased:e})}setCursorPageInfo(e){this._cursorPageInfo=e}updateTotalItems(e,t=!1){this._totalItems=e,this._paginationOptions&&(this._paginationOptions.totalItems=e,this.refreshPagination(!1,t))}processOnItemAddedOrRemoved(e,t=!0){if(e!==null){const i=this._dataTo,s=Array.isArray(e)?e.length:1,n=t?+s:-s;this._totalItems+=n,this.recalculateFromToIndexes(),this._dataTo=i+n,this.pubSubService.publish("onPaginationChanged",this.getFullPagination())}}}const _u=20,Cu=25,vu=35,bu=180,Su=300,yu=200;class Eu{get autoHeightRecalcRow(){return this._autoHeightRecalcRow||100}get isAutoHeightEnabled(){var e;return!!(this.gridOptions.enableAutoResize&&((e=this.gridOptions.autoResize)!=null&&e.autoHeight))}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get dataView(){var e;return(e=this._grid)==null?void 0:e.getData()}get gridUid(){var e;return((e=this._grid)==null?void 0:e.getUID())??""}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}get intervalRetryDelay(){return this._intervalRetryDelay}set intervalRetryDelay(e){this._intervalRetryDelay=e}get resizeByContentOptions(){var e;return((e=this.gridOptions)==null?void 0:e.resizeByContentOptions)??{}}constructor(e){this.pubSubService=e,this._allHeaderHeight=0,this._autoHeightRecalcRow=0,this._intervalRetryDelay=yu,this._isStopResizeIntervalRequested=!1,this._hasResizedByContentAtLeastOnce=!1,this._totalColumnsWidthByContent=0,this._resizePaused=!1,this._subscriptions=[],this._eventHandler=new pe,this._bindingEventService=new Pe}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions),window.clearInterval(this._intervalId),window.clearTimeout(this._timer),((t=this.gridOptions.autoResize)==null?void 0:t.resizeDetection)==="container"&&this._resizeObserver&&this._resizeObserver.disconnect(),this._bindingEventService.unbindAll()}init(e,t){var s,n,o,l,a,h;if(!e||!this.gridOptions||!t)throw new Error(`
|
|
13
13
|
[Slickgrid-Universal] Resizer Service requires a valid Grid object and DOM Element Container to be provided.
|
|
14
14
|
You can fix this by setting your gridOption to use "enableAutoResize" or create an instance of the ResizerService by calling bindAutoResizeDataGrid() once.`);this._grid=e,this._gridContainerElm=t;const i=(s=this.gridOptions)!=null&&s.gridHeight||(n=this.gridOptions)!=null&&n.gridWidth?{height:(o=this.gridOptions)==null?void 0:o.gridHeight,width:(l=this.gridOptions)==null?void 0:l.gridWidth}:void 0;this._autoResizeOptions=((a=this.gridOptions)==null?void 0:a.autoResize)??{container:"grid1",bottomPadding:0},i!=null&&i.width&&(t!=null&&t.style)&&(t.style.width=typeof i.width=="string"?i.width:`${i.width}px`),this._gridDomElm=e.getContainerNode(),typeof this._autoResizeOptions.container=="string"?this._pageContainerElm=typeof this._autoResizeOptions.container=="string"?document.querySelector(this._autoResizeOptions.container):this._autoResizeOptions.container:this._pageContainerElm=this._autoResizeOptions.container,i&&(this._fixedHeight=i.height,this._fixedWidth=i.width),this.gridOptions.enableAutoResize&&(this._autoHeightRecalcRow=((h=this.gridOptions.autoResize)==null?void 0:h.autoHeightRecalcRow)??100,this.bindAutoResizeDataGrid()),this.gridOptions.autoResize&&this._subscriptions.push(this.pubSubService.subscribe("onFullResizeByContentRequested",()=>this.resizeColumnsByCellContent(!0))),this._eventHandler.subscribe(this._grid.onAutosizeColumns,()=>{this.cacheHeaderHeightTotal()}),this.gridOptions.enableColumnResizeOnDoubleClick&&(this._subscriptions.push(this.pubSubService.subscribe("onHeaderMenuColumnResizeByContent",d=>{this.handleSingleColumnResizeByContent(d.columnId)})),this._eventHandler.subscribe(this._grid.onColumnsResizeDblClick,(d,c)=>{this.handleSingleColumnResizeByContent(c.triggeredByColumn)}))}bindAutoResizeDataGrid(e){var t;if(((t=this.gridOptions.autoResize)==null?void 0:t.resizeDetection)==="container"){if(!this._pageContainerElm||!this._pageContainerElm)throw new Error(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slickgrid-universal/vanilla-force-bundle",
|
|
3
|
-
"version": "5.13.
|
|
3
|
+
"version": "5.13.4",
|
|
4
4
|
"description": "Vanilla Slick Grid Bundle (mostly exist for our Salesforce implementation) - Similar to Vanilla Bundle, the only difference is that it adds extra packages within its bundle (CustomTooltip, CompositeEditor & TextExport)",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
@@ -39,18 +39,18 @@
|
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@slickgrid-universal/binding": "5.12.2",
|
|
42
|
-
"@slickgrid-universal/common": "5.13.
|
|
43
|
-
"@slickgrid-universal/composite-editor-component": "5.13.
|
|
44
|
-
"@slickgrid-universal/custom-footer-component": "5.13.
|
|
45
|
-
"@slickgrid-universal/custom-tooltip-plugin": "5.13.
|
|
46
|
-
"@slickgrid-universal/empty-warning-component": "5.13.
|
|
42
|
+
"@slickgrid-universal/common": "5.13.4",
|
|
43
|
+
"@slickgrid-universal/composite-editor-component": "5.13.4",
|
|
44
|
+
"@slickgrid-universal/custom-footer-component": "5.13.4",
|
|
45
|
+
"@slickgrid-universal/custom-tooltip-plugin": "5.13.4",
|
|
46
|
+
"@slickgrid-universal/empty-warning-component": "5.13.4",
|
|
47
47
|
"@slickgrid-universal/event-pub-sub": "5.13.0",
|
|
48
|
-
"@slickgrid-universal/excel-export": "5.13.
|
|
49
|
-
"@slickgrid-universal/pagination-component": "5.13.
|
|
50
|
-
"@slickgrid-universal/text-export": "5.13.
|
|
48
|
+
"@slickgrid-universal/excel-export": "5.13.4",
|
|
49
|
+
"@slickgrid-universal/pagination-component": "5.13.4",
|
|
50
|
+
"@slickgrid-universal/text-export": "5.13.4",
|
|
51
51
|
"@slickgrid-universal/utils": "5.12.0",
|
|
52
|
-
"@slickgrid-universal/vanilla-bundle": "5.13.
|
|
52
|
+
"@slickgrid-universal/vanilla-bundle": "5.13.4",
|
|
53
53
|
"whatwg-fetch": "^3.6.20"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "0493d2347e821f8ad6abe6299523eadc5e586c7c"
|
|
56
56
|
}
|