@slickgrid-universal/vanilla-force-bundle 5.3.2 → 5.3.3
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,12 +8,12 @@
|
|
|
8
8
|
`,this._addonOptions.replaceNewlinesWith||`
|
|
9
9
|
`).replaceAll("\r","").replaceAll('"',this._addonOptions.removeDoubleQuotesOnPaste?"":'"')]:l[o++]=y.split(" ");const a=this._grid.getActiveCell(),h=(E=this._grid.getSelectionModel())==null?void 0:E.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._grid.getData().length-c;let _=0;if(g<m&&typeof this._addonOptions.newRowCreator=="function"){const y=this._grid.getData();for(_=1;_<=m-g;_++)y.push({});this._grid.setData(y),this._grid.render()}if(c+m>this._grid.getDataLength()&&typeof this._addonOptions.newRowCreator=="function"){const y=c+m-this._grid.getDataLength();this._addonOptions.newRowCreator(y)}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._grid.getDataLength(),maxDestX:this._grid.getColumns().length,h:0,w:0,execute:()=>{var T;C.h=0;for(let x=0;x<C.destH;x++){C.oldValues[x]=[],C.w=0,C.h++;for(let O=0;O<C.destW;O++){C.w++;const I=c+x,A=u+O;if(I<C.maxDestY&&A<C.maxDestX){const k=this._grid.getDataItem(I);if(this._grid.triggerEvent(this.onBeforePasteCell,{row:I,cell:A,dt:k,column:i[A],target:"grid"}).getReturnValue()===!1)continue;C.oldValues[x][O]=k[i[A].field],p?this.setDataItemValueForColumn(k,i[A],l[0][0]):this.setDataItemValueForColumn(k,i[A],l[x]?l[x][O]:""),this._grid.updateCell(I,A),this._grid.onCellChange.notify({row:I,cell:A,item:k,grid:this._grid,column:{}})}}}const y=new Je(c,u,c+C.h-1,u+C.w-1);this.markCopySelection([y]),(T=this._grid.getSelectionModel())==null||T.setSelectedRanges([y]),this.onPasteCells.notify({ranges:[y]})},undo:()=>{var T;for(let x=0;x<C.destH;x++)for(let O=0;O<C.destW;O++){const I=c+x,A=u+O;if(I<C.maxDestY&&A<C.maxDestX){const k=this._grid.getDataItem(I);p?this.setDataItemValueForColumn(k,i[A],C.oldValues[0][0]):this.setDataItemValueForColumn(k,i[A],C.oldValues[x][O]),this._grid.updateCell(I,A),this._grid.onCellChange.notify({row:I,cell:A,item:k,grid:this._grid,column:{}})}}const y=new Je(c,u,c+C.h-1,u+C.w-1);if(this.markCopySelection([y]),(T=this._grid.getSelectionModel())==null||T.setSelectedRanges([y]),this.onPasteCells.notify({ranges:[y]}),typeof this._addonOptions.onPasteCells=="function"&&this._addonOptions.onPasteCells(new le,{ranges:[y]}),_>1){const x=this._grid.getData();for(;_>1;_--)x.splice(x.length-1,1);this._grid.setData(x),this._grid.render()}}};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._grid.getDataItem(c);if(d.length===0&&this._addonOptions.includeHeaderWhenCopying){const m=[];for(let f=h.fromCell;f<h.toCell+1;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].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(),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)??Xl),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 setTimeout(()=>this.decodeTabularData(this._grid,o),((n=this.addonOptions)==null?void 0:n.clipboardPasteDelay)??Xl),!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),clearTimeout(this._clearCopyTI),this._clearCopyTI=setTimeout(()=>this.clearCopySelection(),((s=this.addonOptions)==null?void 0:s.clearCopySelectionDelay)||Yc)}}class Hs{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 Ae,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(),J(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]?(J(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"&&ie(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 ql extends Hs{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${Jt(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${Jt(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 _,b,C,E,y;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(((b=this._addonOptions)==null?void 0:b.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"),(C=this.gridOptions)!=null&&C.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),(E=this.addonOptions)!=null&&E.width&&(p.style.width=It((y=this.addonOptions)==null?void 0:y.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 T=v("div",{className:`${this._menuCssPrefix}-option-list`,role:"menu"},p);this.populateCommandOrOptionTitle("option",this.addonOptions,T,i),!this.addonOptions.hideCloseButton&&i<1&&this.populateCommandOrOptionCloseBtn("option",g,T),s&&i>0&&this.addSubMenuTitleWhenExists(s,T),this.populateCommandOrOptionItems("option",this.addonOptions,T,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 T=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},p);this.populateCommandOrOptionTitle("command",this.addonOptions,T,i),!this.addonOptions.hideCloseButton&&i<1&&(!h||t.length===0||this.addonOptions.hideOptionSection)&&this.populateCommandOrOptionCloseBtn("command",g,T),s&&i>0&&this.addSubMenuTitleWhenExists(s,T),this.populateCommandOrOptionItems("command",this.addonOptions,T,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=me(s);let a=s&&this._camelPluginName==="cellMenu"?(l==null?void 0:l.left)??0:o.pageX,h=s&&this._camelPluginName==="cellMenu"?(l==null?void 0:l.top)??0:o.pageY;i&&this._camelPluginName==="contextMenu"&&(a=(l==null?void 0:l.left)??0,h=(l==null?void 0:l.top)??0);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:_}=Li(s),b=g+m-p,C=_-m+p;(b<c&&C>b?"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 b=document.documentElement.clientWidth;(_>=g.width||_>=b?"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 qc extends ql{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){this.disposeAllMenus();const i=this.grid.getCellFromEvent(e);if(i){const s=this.grid.getDataItem(i.row),n=this.grid.getColumns()[i.cell];n!=null&&n.cellMenu&&e.preventDefault(),this._addonOptions={...this._addonOptions,...n.cellMenu};const o=t||{};if(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&&(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 Kc{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=Kt(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 Kl{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=Kt(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 Kc(e,this._options),this._canvas=e.getCanvasNode(),this._gridOptions=e.getOptions(),this._gridUid=e.getUID();const t=e.getPubSubService();t&&w.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(),J(this._activeCanvas),J(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=me(this._activeViewport),h=(a==null?void 0:a.left)??0,d=(a==null?void 0:a.top)??0,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&&(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=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,o,l;const i=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,s=this._grid.getCellFromPoint(i.pageX-(((o=me(this._activeCanvas))==null?void 0:o.left)??0)+this._columnOffset,i.pageY-(((l=me(this._activeCanvas))==null?void 0:l.top)??0)+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 a=this._grid.getCellNodeBox(s.row,s.cell);if(a){const h=this._draggingMouseOffset.viewport;(a.left<h.left||a.right>h.right||a.top<h.top||a.bottom>h.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 a=new Je(t.range.start.row??0,t.range.start.cell??0,s.row,s.cell);this._decorator.show(a),this.onCellRangeSelecting.notify({range:a})}}}handleDragEnd(e,t){this._decorator.hide(),this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),this.stopIntervalTimer(),this.onCellRangeSelected.notify({range:new Je(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=me(this._canvas);let n=t.startX-((s==null?void 0:s.left)??0);this._gridOptions.frozenColumn>=0&&this._isRightCanvas&&(n+=this._scrollLeft);let o=t.startY-((s==null?void 0:s.top)??0);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 Je(l.row,l.cell))}handleScroll(e,t){this._scrollTop=t.scrollTop,this._scrollLeft=t.scrollLeft}}class Qc{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 Kl({selectionCss:{border:"2px solid black"}}):this._selector=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,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=ie(t.cell),s=ie(t.row);(n=this._addonOptions)!=null&&n.selectActiveCell&&s&&i?this.setSelectedRanges([new Je(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){return["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","PageDown","PageUp","Home","End"].some(t=>t===e)}handleKeyDown(e){var l;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)&&(t=this.getSelectedRanges().slice(),t.length||t.push(new Je(n.row,n.cell)),i=t.pop(),typeof(i==null?void 0:i.contains)=="function")){i.contains(n.row,n.cell)||(i=new Je(n.row,n.cell));let a=i.toRow-i.fromRow,h=i.toCell-i.fromCell;const d=n.row===i.fromRow?1:-1,c=n.cell===i.fromCell?1:-1,u=e.key.startsWith("Arrow");let p,m=0;u&&!e.ctrlKey?(e.key==="ArrowLeft"?h-=c:e.key==="ArrowRight"?h+=c:e.key==="ArrowUp"?a-=d:e.key==="ArrowDown"&&(a+=d),m=n.row+d*a):(this._cachedPageRowCount<1&&(this._cachedPageRowCount=this._grid.getViewportRowCount()),this._prevSelectedRow===void 0&&(this._prevSelectedRow=n.row),e.shiftKey&&!e.ctrlKey&&e.key==="Home"?(p=0,m=n.row):e.shiftKey&&!e.ctrlKey&&e.key==="End"?(p=s-1,m=n.row):e.ctrlKey&&e.shiftKey&&e.key==="Home"?(p=0,m=0):e.ctrlKey&&e.shiftKey&&e.key==="End"?(p=s-1,m=o-1):e.key==="PageUp"?(this._prevSelectedRow>=0&&(m=this._prevSelectedRow-this._cachedPageRowCount),m<0&&(m=0)):e.key==="PageDown"&&(this._prevSelectedRow<=o-1&&(m=this._prevSelectedRow+this._cachedPageRowCount),m>o-1&&(m=o-1)),this._prevSelectedRow=m),p??(p=n.cell+c*h);const f=new Je(n.row,n.cell,m,p);if(this.removeInvalidRanges([f]).length){t.push(f);const g=d>0?f.toRow:f.fromRow,_=c>0?f.toCell:f.fromCell;u?(this._grid.scrollRowIntoView(g),this._grid.scrollCellIntoView(g,_,!1)):(this._grid.scrollRowIntoView(m),this._grid.scrollCellIntoView(m,_,!1))}else t.push(i);this.setSelectedRanges(t),e.preventDefault(),e.stopPropagation(),this._prevKeyDown=e.key}}}class hr{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 Kl({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 Je(t.range.fromRow,0,t.range.toRow,this._grid.getColumns().length-1)])}handleActiveCellChange(e,t){this._options.selectActiveRow&&t.row!==null&&this.setSelectedRanges([new Je(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 Je(s,0,s,i))),t}}const Ql="mdi-icon-check",Zl="mdi-icon-uncheck";class Jl{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 Ae,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 hr(this.gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionModel)),this.gridOptions.preselectedRows&&this._rowSelectionModel&&this._grid.getSelectionModel()&&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){const i=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?Ql:Zl}`})),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")){J(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?Ql:Zl}`)}}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 ea extends Hs{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:250,contentMinWidth:0,resizeOnShowHeaderRow:!1,syncResizeTitle:"Synchronous resize",subMenuOpenByEvent:"mouseover",headerColumnValueExtractor:l=>gt(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,Vs.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()??"",w.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&&(na.call(this,this._menuElm),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(this._menuElm,"click",ra.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=me(i),u=me(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,b=(_>g?_:g)||0,C=(c==null?void 0:c.top)??0,E=(c==null?void 0:c.right)??0;let y,T;if(o?(T=(u==null?void 0:u.top)??0,y=(u==null?void 0:u.left)??0):(T=C+d.offsetHeight,y=(p==null?void 0:p.dropSide)==="right"?E-f:E-b),o){const k=(t==null?void 0:t.clientHeight)||0,{bottom:L,top:N}=Li(l);(L<k&&N>L?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),T-=k-l.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}const x=this.grid.getGridPosition();let O=y+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&&(y-=Number(g))):(t.classList.remove("dropleft"),t.classList.add("dropright"),o&&(y+=l.offsetWidth)),t.style.top=`${T}px`,t.style.left=`${y}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(),J(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(),Vs.call(this),this._columnCheckboxes=[],la.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=It(a==null?void 0:a.minHeight,""),(a==null?void 0:a.height)!==void 0?this._menuElm.style.height=It(a.height,""):this._menuElm.style.maxHeight=It(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=ot(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:wt.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:wt.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"),sa.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 ta="mdi-icon-picker-check",ia="mdi-icon-picker-uncheck";function sa(r){const t=v("button",{type:"button",className:"close",ariaLabel:"Close",textContent:"×",dataset:{dismiss:this instanceof cr?"slick-column-picker":"slick-grid-menu"}});r.appendChild(t)}function na(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 ra(r){var o,l;const e=this,t=e instanceof cr?"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),oa(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,oa(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${Jt(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 oa(r,e=!1){r&&(r.className=`mdi ${e?ta:ia}`)}function dr(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?ta:ia}`}),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 la(r){const e=this,t=e instanceof ea?"gridmenu-":"";for(const i of e.columns){const s=i.id,n=document.createElement("li");i.excludeFromColumnPicker&&(n.className="hidden");const o=`${e._gridUid}-${t}colpicker-${s}`,l=e.grid.getColumnIndex(s)>=0,{inputElm:a,labelElm:h,labelSpanElm:d}=dr(n,o,{columnid:`${s}`},l);e._columnCheckboxes.push(a);const u=(typeof(r==null?void 0:r.headerColumnValueExtractor)=="function"?r.headerColumnValueExtractor:e._defaults.headerColumnValueExtractor)(i,e.gridOptions);this.grid.applyHtmlCode(d,u),n.appendChild(h),e._listElm.appendChild(n)}if((!r.hideForceFitButton||!r.hideSyncResizeButton)&&e._listElm.appendChild(document.createElement("hr")),!(r!=null&&r.hideForceFitButton)){const i=document.createElement("li"),s=`${e._gridUid}-${t}colpicker-forcefit`,{labelSpanElm:n}=dr(i,s,{option:"autoresize"},e.gridOptions.forceFitColumns);n.textContent=(r==null?void 0:r.forceFitTitle)??"",e._listElm.appendChild(i)}if(!(r!=null&&r.hideSyncResizeButton)){const i=document.createElement("li"),s=`${e._gridUid}-${t}colpicker-syncresize`,{labelSpanElm:n}=dr(i,s,{option:"syncresize"},e.gridOptions.forceFitColumns);n.textContent=(r==null?void 0:r.syncResizeTitle)??"",e._listElm.appendChild(i)}}function Vs(){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 cr{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:200,syncResizeTitle:"Synchronous resize",headerColumnValueExtractor:o=>gt(o.name||"","innerHTML")},this._bindEventService=new Ae,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,Vs.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 Vs.call(this),na.call(this,e),sa.call(this,e),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(e,"click",ra.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(),J(this._listElm),this._columnCheckboxes=[],this._menuElm=this.createPickerMenu(),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),la.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;this._menuElm&&(this._menuElm.style.top=`${t.pageY-10}px`,this._menuElm.style.left=`${t.pageX-10}px`,this._menuElm.style.minHeight=It(this.addonOptions.minHeight,""),this._menuElm.style.maxHeight=It(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 Bs=(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
|
-
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 aa(r,e){if(Array.isArray(r)){for(const t of r)if(t.editor)if(t.formatter&&t.formatter!==Bs&&t.formatter!==e){const i=t.formatter;t.formatter=Bs,t.params={...t.params,formatters:[i,e]}}else t.formatter&&t.formatter===Bs&&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=yt("minDecimal",r,a,s),d=yt("maxDecimal",r,a,n),c=yt("decimalSeparator",r,a,R.DEFAULT_NUMBER_DECIMAL_SEPARATOR),u=yt("thousandSeparator",r,a,R.DEFAULT_NUMBER_THOUSAND_SEPARATOR),p=yt("displayNegativeNumberWithParentheses",r,a,R.DEFAULT_NEGATIVE_NUMBER_WRAPPED_IN_BRAQUET),m=yt("currencyPrefix",r,a,""),f=yt("currencySuffix",r,a,"");return i==="cell"&&(o=yt("numberPrefix",r,a,""),l=yt("numberSuffix",r,a,"")),{minDecimal:h,maxDecimal:d,decimalSeparator:c,thousandSeparator:u,wrapNegativeNumber:p,currencyPrefix:m,currencySuffix:f,numberPrefix:o,numberSuffix:l}}function yt(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=Ze(r,!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)??S.date,u=Ze(c,!0),p=((_=o==null?void 0:o.params)==null?void 0:_.parseDateAsUtc)??!1,m=At(n,u);let f=n;if(m){let b=n;p&&(b=Uh(m)),f=Qe(b,t,"en-US")}if(f&&d!==e){const b=new RegExp(e,"ig");f=f.replace(b,d)}return f}}function ur(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=zs(l,r,e,t,i,s);return n!=null&&n.sanitizeDataExport&&typeof a=="string"?we(a):a}function zs(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=Zt(d)?d:d.html||d.text;o=gt(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 Zc extends ql{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=ot(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=Mi(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:wt.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:wt.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=ur(o,n,l,a,h,d);typeof l.queryFieldNameGetterFn=="function"&&(c=Mi(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 Jc{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.columnsGroupBy=[],this.pluginName="DraggableGrouping",this._gridColumns=[],this._gridUid="",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 Ae,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()}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.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(!En((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(),J(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,chosenClass:"slick-header-column-active",ghostClass:"slick-sortable-placeholder",draggable:".slick-header-column",dataIdAttr:"data-id",group:{name:"shared",pull:"clone",put:!1},revertClone:!0,onStart:()=>{c&&(c.style.display="inline-block"),d.querySelectorAll(".slick-dropped-grouping").forEach(f=>f.style.display="none"),u&&(u.style.display="none")},onEnd:m=>{var C,E,y;d==null||d.classList.remove("slick-dropzone-hover"),(C=c==null?void 0:c.parentElement)==null||C.classList.remove("slick-dropzone-placeholder-hover");const f=d.querySelectorAll(".slick-dropped-grouping");if(f.forEach(T=>T.style.display="flex"),f.length&&(c&&(c.style.display="none"),u&&(u.style.display="inline-flex")),!e.getEditorLock().commitCurrentEdit())return;const g=((E=this.sortableLeftInstance)==null?void 0:E.toArray())??[];if(t.length>1){const T=((y=this._sortableRightInstance)==null?void 0:y.toArray())??[];for(const x of T)g.push(x)}const _=[],b=e.getColumns();for(const T of g)_.push(b[l.call(e,T)]);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),{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)=>mi(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&&!En(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 eu extends Hs{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 Ae,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 tu extends Hs{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=Sn(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 u,p;const i=e.target,s=t.classList.contains("slick-submenu"),n=s?e.target.closest(".slick-menu-item"):i,o=no(this.sharedService.gridContainerElement,i),l=this.grid.getGridPosition(),a=t.offsetWidth,h=me(n);let d=s?(h==null?void 0:h.left)??0:(o==null?void 0:o.left)??0,c=s?(h==null?void 0:h.top)??0:((o==null?void 0:o.top)??0)+(((u=this.addonOptions)==null?void 0:u.menuOffsetTop)??0)+i.clientHeight;if(s){const m=(t==null?void 0:t.clientHeight)||0,{bottom:f,top:g}=Li(n);(f<m&&g>f?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),c-=m-n.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}if(s&&n){const m=d+Number(a)+n.clientWidth,f=document.documentElement.clientWidth;(m>=l.width||m>=f?"left":"right")==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),d-=a):(t.classList.remove("dropleft"),t.classList.add("dropright"),d+=n.offsetWidth)}else d=(o==null?void 0:o.left)??0,this.addonOptions.autoAlign&&(l!=null&&l.width)&&d+(t.clientWidth??0)>=l.width&&(d=d+i.clientWidth-t.clientWidth+(((p=this.addonOptions)==null?void 0:p.autoAlignOffset)||0));t.style.top=`${c}px`,t.style.left=`${d}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=ot(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?ui(p.title):(p.titleKey||"").toLowerCase().replaceAll("_","-");c.push({...p,command:m,action:(f,g)=>{const _=this.filterService.getFiltersMetadata().find(b=>b.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){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));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 $s="slick-rbe-editmode",iu="slick-rbe-unsaved-cell",ha="slick-rbe-unsaved-highlight",pr="action-btns--delete",mr="action-btns--edit",fr="action-btns--update",gr="action-btns--cancel";class da{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||ji.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]:iu}},l=`${ha}_${[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=`${ha}_${[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,_,b,C,E,y;const i=t.dataContext,s=e.target,n=this.gridOptions.datasetIdPropertyName??"id",o=this._editedRows.get(i[n]);if((s.classList.contains(pr)||(l=s.parentElement)!=null&&l.classList.contains(pr))&&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(mr)||(d=s.parentElement)!=null&&d.classList.contains(mr)){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(fr)||(p=s.parentElement)!=null&&p.classList.contains(fr)){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()),(b=this._addonOptions)!=null&&b.onBeforeRowUpdated&&await this._addonOptions.onBeforeRowUpdated(t)!==!0))return;this.removeUnsavedStylingFromRow(t.row),this.toggleEditmode(i,!1)}else if(s.classList.contains(gr)||(C=s.parentElement)!=null&&C.classList.contains(gr)){if((y=(E=this._addonOptions)==null?void 0:E.actionButtons)!=null&&y.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,_,b,C,E,y,T,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 `+mr,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 `+pr,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:`${((C=(b=o.rowBasedEditOptions)==null?void 0:b.actionButtons)==null?void 0:C.updateButtonClassName)||"button-style padding-1px mr-2"} action-btns `+fr,title:a.btnUpdateTitle,style:{display:l?"":"none"}})).appendChild(v("span",{className:((y=(E=o.rowBasedEditOptions)==null?void 0:E.actionButtons)==null?void 0:y.iconUpdateButtonClassName)||"mdi mdi-check-bold text-color-success"})),h.appendChild(v("span",{className:`${((x=(T=o.rowBasedEditOptions)==null?void 0:T.actionButtons)==null?void 0:x.cancelButtonClassName)||"button-style padding-1px"} action-btns `+gr,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($s)?s.cssClasses=(s.cssClasses||"")+" "+$s:!this._editedRows.has(i[n])&&s.cssClasses.includes($s)&&(s.cssClasses=s.cssClasses.replace($s,""))}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 ca{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(),w.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,o;if(this._dragging){e.stopImmediatePropagation();const l=e.getNativeEvent(),h=(((i=l==null?void 0:l.touches)==null?void 0:i[0])??l).pageY-(((s=me(this._canvas))==null?void 0:s.top)??0);t.selectionProxy.style.top=`${h-5}px`,t.selectionProxy.style.display="block",t.clonedSlickRow&&(t.clonedSlickRow.style.top=`${h-6}px`,t.clonedSlickRow.style.display="block");const d=Math.max(0,Math.min(Math.round(h/(this.gridOptions.rowHeight||0)),this._grid.getDataLength()));if(d!==t.insertBefore){const c={grid:this._grid,rows:t.selectedRows,insertBefore:d};if(((o=(n=this._addonOptions)==null?void 0:n.onBeforeMoveRows)==null?void 0:o.call(n,l,c))===!1||this.onBeforeMoveRows.notify(c).getReturnValue()===!1?t.canMove=!1:t.canMove=!0,this._usabilityOverride&&t.canMove){const u=this._grid.getDataItem(d);t.canMove=this.checkUsabilityOverride(d,u,this._grid)}t.canMove?t.guide.style.top=`${d*(this.gridOptions.rowHeight||0)}px`:t.guide.style.top="-1000px",t.insertBefore=d}}}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=It((l=this._addonOptions)==null?void 0:l.rowMoveShadowMarginLeft,"0px"),t.clonedSlickRow.style.marginTop=It((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 su{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={}}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 da(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 Uc((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 jc,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 qc(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 hr(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 Jl(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 cr(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 Zc(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 ea(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 eu(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 tu(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 ca(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})}}}createExtensionsBeforeGridCreation(e,t){var s,n,o;const i=[];t.enableCheckboxSelector&&(this.getCreatedExtensionByName(G.checkboxSelector)||(this._checkboxSelectColumn=new Jl(this.pubSubService,this.sharedService.gridOptions.checkboxSelector),i.push({name:G.checkboxSelector,extension: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 ca(this.pubSubService),i.push({name:G.rowMoveManager,extension: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 da(this.extensionUtility,this.pubSubService),i.push({name:G.rowBasedEdit,extension:this._rowBasedEdit,columnIndexPosition:((o=t==null?void 0:t.rowMoveManager)==null?void 0:o.columnIndexPosition)??i.length}))),this.createExtensionByTheirColumnIndex(i,e,t),t.enableDraggableGrouping&&(this.getCreatedExtensionByName(G.draggableGrouping)||(this._draggleGroupingPlugin=new Jc(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.columnIndexPosition-n.columnIndexPosition),e.forEach(s=>{const n=s.extension.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 ua(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 nu(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 Gt=(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},pa=(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?ci(r.cellValue,!0):r.cellValue.toLowerCase();if(typeof t=="string"&&(t=r!=null&&r.ignoreAccentOnStringFilterAndSort?ci(t,!0):t.toLowerCase()),typeof i=="string"&&(i=r!=null&&r.ignoreAccentOnStringFilterAndSort?ci(i,!0):i.toLowerCase()),r.operator===H.startsWithEndsWith&&t!==void 0&&i!==void 0)return ou(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=_r(l?">=":">",s,t,r.searchInputLastChar),h=_r(l?"<=":"<",s,i,r.searchInputLastChar);return a&&h}return _r(r.operator,s,t,r.searchInputLastChar)};function ru(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 _r(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:Gt(r||"==",e,t)}function ou(r,[e,t]){return r.startsWith(e)&&r.endsWith(t)}const lu=(r,e)=>{if(e===void 0&&!r.operator)return!0;switch((r.operator||"").toUpperCase()){case"!=":case"<>":case"NE":return!ua(r.cellValue,e,r.dataKey);case"=":case"==":case"EQ":default:return ua(r.cellValue,e,r.dataKey)}};function au(r){return(Array.isArray(r)&&r.length>0?r[0]:"")||""}const ma=(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=Gt(o?">=":">",t,+i),a=Gt(o?"<=":"<",t,+s);return l&&a}return Gt(r.operator||"==",t,+i)};function hu(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 fa=(r,e)=>us(r.cellValue)===us(e);function du(r){const e=Array.isArray(r)&&r[0]||!1;return us(e)}const ga=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}`,Gt(e||"IN",t,r.searchTerms||[])};function cu(r,e){const t=r&&(r.filterSearchType||r.fieldType)||S.dateIso,i=Ze(t),[s,n]=e,o=At(r.cellValue,i,!0);if(!s&&!n||!o)return!1;const l=i==="ISO8601"||i.toLowerCase().includes("h")?o.valueOf():ko(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=Gt(d?">=":">",l,s.valueOf()),u=Gt(d?"<=":"<",l,n.valueOf());return c&&u}const a=i==="ISO8601"||i.toLowerCase().includes("h")?s.valueOf():ko(new Date(s)).valueOf();return Gt(r.operator||"==",l,a)}function uu(r,e){const t=Array.isArray(r)&&r||[],i=e||S.dateIso,s=Ze(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=At(l,s,!0),d=At(a,s,!0);if(!h||!d)return[];n.push(h,d)}else{const o=At(t[0],s,!0);if(!o)return[];n.push(o)}return n}const pu=(r,e)=>{if(nu(r.operator))return ga(r);switch(_a(r.filterSearchType||r.fieldType)){case"boolean":return fa(r,e);case"date":return cu(r,e||[]);case"number":return ma(r,e||[]);case"object":return lu(r,e);case"string":default:return pa(r,e||[])}};function Ws(r,e){const t=_a(e);let i;switch(t){case"boolean":i=du(r);break;case"date":i=uu(r,e);break;case"number":i=hu(r);break;case"object":i=au(r);break;case"string":i=ru(r);break}return i}function _a(r){switch(r){case S.boolean:return"boolean";case S.date:case S.dateIso:case S.dateUtc:case S.dateTime:case S.dateTimeIso:case S.dateTimeIsoAmPm:case S.dateTimeIsoAM_PM:case S.dateTimeShortIso:case S.dateEuro:case S.dateEuroShort:case S.dateTimeShortEuro:case S.dateTimeEuro:case S.dateTimeEuroAmPm:case S.dateTimeEuroAM_PM:case S.dateTimeEuroShort:case S.dateTimeEuroShortAmPm:case S.dateTimeEuroShortAM_PM:case S.dateUs:case S.dateUsShort:case S.dateTimeShortUs:case S.dateTimeUs:case S.dateTimeUsAmPm:case S.dateTimeUsAM_PM:case S.dateTimeUsShort:case S.dateTimeUsShortAmPm:case S.dateTimeUsShortAM_PM:return"date";case S.integer:case S.float:case S.number:return"number";case S.object:return"object";case S.string:case S.text:case S.password:case S.readonly:default:return"string"}}const Ca={executeFilterConditionTest:pu,booleanFilter:fa,collectionSearchFilter:ga,numberFilter:ma,stringFilter:pa};class mu{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)),i.columnId!==null&&this._dataView.refresh(),s||await this.emitFilterChanged(oe.local),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=Di(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=Ws(h.searchTerms,h.columnDef.type||S.string),u!==void 0&&(h.parsedSearchTerms=u)),!Ca.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??S.string;let l=null;o!==S.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;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(f=>f.field===n)),!s)return!0;if(this._gridOptions.enableRowDetailView){const f=this._gridOptions.rowDetailView&&this._gridOptions.rowDetailView.keyPrefix||"__";e[`${f}isPadding`]&&e[`${f}parent`]&&(e=e[`${f}parent`])}let l=((u=s.filter)==null?void 0:u.queryField)||s.queryFieldFilter||s.queryField||s.field||"";typeof s.queryFieldNameGetterFn=="function"&&(l=s.queryFieldNameGetterFn(e));const a=((p=s.filter)==null?void 0:p.type)??s.type??S.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!==S.object)for(let f=0,g=c.length;f<g;f++)c[f]=(c[f]===void 0||c[f]===null?"":c[f])+"";if(((m=s==null?void 0:s.params)==null?void 0:m.useFormatterOuputToFilter)===!0){const f=i.getData(),g=this._gridOptions.datasetIdPropertyName||"id",_=f&&typeof f.getIdxById=="function"?f.getIdxById(e[g]):0,b=s&&typeof s.formatter=="function"?s.formatter(_||0,o,h,s,e,this._grid):"";h=we(b)}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,_,b,C,E,y;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=((b=this._gridOptions.treeDataOptions)==null?void 0:b.initiallyCollapsed)??!1,d=(C=this._gridOptions.treeDataOptions)==null?void 0:C.columnId,c=(E=this._gridOptions.treeDataOptions)==null?void 0:E.excludeChildrenWhenFilteringTree,u=!c&&((y=this._gridOptions.treeDataOptions)==null?void 0:y.autoApproveParentItemWhenTreeColumnIsValid)===!0,p={},m=new Set,f=new Map;return Array.isArray(e)&&(e.forEach(T=>{p[T[l]]=T,delete p[T[l]].__used}),typeof t=="object"&&Object.keys(t).forEach(T=>{var N;const x=t[T],O=x!=null&&x.searchTerms?de(!0,[],x.searchTerms):[],I=this.parseFormInputFilterConditions(O,x),A=x.columnDef,k=((N=A==null?void 0:A.filter)==null?void 0:N.type)??(A==null?void 0:A.type)??S.string,L=Ws(I.searchTerms,k);L!==void 0&&(x.parsedSearchTerms=L)}),e.forEach(T=>{const x=T[o];let O=!0;for(const I of Object.keys(t)){const A=t[I],k=this.preProcessFilterConditionOnDataContext(T,A,this._grid);if(k){const L=A==null?void 0:A.parsedSearchTerms,N=typeof k=="boolean"?k:Ca.executeFilterConditionTest(k,L);if(N&&u&&x&&A.columnId===d){f.set(T[l],!0);break}if(N||!c&&f.get(T[n])===!0){if(x&&A.columnId===d&&f.set(T[l],!0),N||!c&&A.columnId===d)continue}else x&&f.get(T[n])!==!0&&A.columnId!==d&&f.set(T[l],!1)}O=!1}if(O){m.add(T[l]);let I=p[T[n]]??!1;const A=!h;for(!this._isTreePresetExecuted&&Array.isArray(a)&&a.some(k=>k.itemId===I.id&&k.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??S.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,s=(i==null?void 0:i.id)??"";if(s!=="selector"&&(i!=null&&i.filterable)){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:this._grid.getHeaderRowColumn(s),callback:this.callbackSearchEvent.bind(this)};if(l){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)??S.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 b=`${a}`,C={columnId:b,columnDef:l,parsedSearchTerms:[],type:h,targetSelector:this.getSelectorStringFromElement(e==null?void 0:e.target)},E=this.parseFormInputFilterConditions(o,C);C.operator=d||E.operator||Cn(h),f=Ws(E.searchTerms,h),f!==void 0&&(C.parsedSearchTerms=f),C.searchTerms=E.searchTerms||[],this._columnFilters[b]=C}const g=e&&typeof e.isPropagationStopped!="function"?de({},new le,e):e,_=e==null?void 0:e.key;if(this._onSearchChange&&(t.forceOnSearchChangeEvent||_==="Enter"||!ut(p,this._columnFilters))){const b={clearFilterTriggered:t.clearFilterTriggered,shouldTriggerQuery:t.shouldTriggerQuery,columnId:a,columnDef:l,columnFilters:this._columnFilters,operator:d||Cn(h),searchTerms:o,parsedSearchTerms:f,grid:this._grid,target:e==null?void 0:e.target};this.pubSubService.publish("onBeforeSearchChange",b)===!1?this._gridOptions.resetFilterSearchValueAfterOnBeforeCancellation&&this.resetToPreviousSearchFilters():this._onSearchChange.notify(b,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??S.string,n=Ws(e,s);e&&t&&(this._columnFilters[t.id]={columnId:t.id,columnDef:t,searchTerms:e,operator:i,parsedSearchTerms:n,type:s})}}const Gs={skipError:!1,triggerEvent:!0},ss={highlightRow:!0,resortGrid:!1,selectRow:!1,scrollRowIntoView:!0,skipError:!1,triggerEvent:!0},Cr={highlightRow:!1,selectRow:!1,scrollRowIntoView:!1,skipError:!1,triggerEvent:!0},va={autoResizeColumns:!0,triggerEvent:!0,hideFromColumnPicker:!1,hideFromGridMenu:!1};class fu{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){vo(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(t={...va,...t},this._grid&&this._grid.getColumns&&this._grid.setColumns){const i=this._grid.getColumns(),s=i.findIndex(n=>n.id===e);if(s>=0){const n=Sn(i,s);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)),t!=null&&t.autoResizeColumns&&this._grid.autosizeColumns(),t!=null&&t.triggerEvent&&this.pubSubService.publish("onHeaderMenuHideColumns",{columns:n}),s}}return-1}hideColumnByIds(e,t){if(t={...va,...t},Array.isArray(e)){for(const i of e)this.hideColumnById(i,{...t,triggerEvent:!1,autoResizeColumns:!1});t!=null&&t.autoResizeColumns&&this._grid.autosizeColumns(),t!=null&&t.triggerEvent&&this.pubSubService.publish("onHeaderMenuHideColumns",{columns:this.sharedService.visibleColumns})}}highlightRow(e,t){this._grid.getSelectionModel()||(this._rowSelectionPlugin=new hr(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={...ss,...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={...ss,...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={...Gs,...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={...Gs,...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={...Gs,...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={...Gs,...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={...Cr,...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={...Cr,...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={...Cr,...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={...ss,...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={...ss,...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={...ss,...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 gu{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 _u{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:ze.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:ze.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onFilterCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:ze.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortChanged",t=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:ze.sorter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:ze.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,!ut(this.selectedRowDataContextIds,n)||!ut(this._selectedRowIndexes,s)){const o={gridRowIndexes:this._selectedRowIndexes||[],dataContextIds:i.selectedRowIds,filteredDataContextIds:i.filteredIds};this.pubSubService.publish("onGridStateChanged",{change:{newValues:o,type:ze.rowSelection},gridState:this.getCurrentGridState()})}}),this._subscriptions.push(this.pubSubService.subscribe("onHeaderMenuHideColumns",t=>{const i=this.getAssociatedCurrentColumns(t);this.pubSubService.publish("onGridStateChanged",{change:{newValues:i,type:ze.columns},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeItemToggled",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:ze.treeData},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeFullToggleEnd",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:ze.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:ze.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:ze.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:ze.pinning},gridState:u})}})}hasRowSelectionEnabled(){const e=this._grid.getSelectionModel();return!!(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&!!e}}class Cu{constructor(e,t){this.extensionUtility=e,this.pubSubService=t,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){if(this._grid=e,e&&this._gridOptions&&this._gridOptions.createPreHeaderPanel){this._gridOptions.enableTranslate&&this.translateGroupingAndColSpan(),this._eventHandler.subscribe(e.onSort,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onRendered,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onAutosizeColumns,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onColumnsResized,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onColumnsReordered,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(this._dataView.onRowCountChanged,()=>this.delayRenderPreHeaderRowGroupingTitles(0)),this._subscriptions.push(this.pubSubService.subscribe("onColumnPickerColumnsChanged",()=>this.renderPreHeaderRowGroupingTitles()),this.pubSubService.subscribe("onHeaderMenuHideColumns",()=>this.delayRenderPreHeaderRowGroupingTitles(0)),this.pubSubService.subscribe("onGridMenuColumnsChanged",()=>this.renderPreHeaderRowGroupingTitles()),this.pubSubService.subscribe("onGridMenuMenuClose",()=>this.renderPreHeaderRowGroupingTitles()));const t=e.getPluginByName("Resizer");t!=null&&t.onGridAfterResize&&this._eventHandler.subscribe(t.onGridAfterResize,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onSetOptions,(i,s)=>{var n,o;((n=s==null?void 0:s.optionsBefore)==null?void 0:n.frozenColumn)!==((o=s==null?void 0:s.optionsAfter)==null?void 0:o.frozenColumn)&&this.delayRenderPreHeaderRowGroupingTitles(0)}),this.delayRenderPreHeaderRowGroupingTitles(75)}}dispose(){this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}delayRenderPreHeaderRowGroupingTitles(e=0){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;J(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||"")}translateGroupingAndColSpan(){const e=this._grid.getColumns();this.extensionUtility.translateItems(e,"columnGroupKey","columnGroup"),this._grid.setColumns(e),this.renderPreHeaderRowGroupingTitles()}}class vu{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;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,(o,l)=>{this._totalItems!==l.totalRows&&(this.updateTotalItems(l.totalRows),this._previousPagination={pageNumber:l.pageNum,pageSize:l.pageSize,pageSizes:this.availablePageSizes,totalItems:l.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",()=>this.resetPagination())),this._subscriptions.push(this.pubSubService.subscribe("onFilterCleared",()=>this.resetPagination())),this.dataView&&(this._subscriptions.push(this.pubSubService.subscribe("onItemAdded",o=>this.processOnItemAddedOrRemoved(o,!0))),this._subscriptions.push(this.pubSubService.subscribe("onItemDeleted",o=>this.processOnItemAddedOrRemoved(o,!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,ls(t,"totalItems",o=>this._totalItems=o)}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&&!ut(s,this.getFullPagination())&&this.pubSubService.publish("onPaginationChanged",this.getFullPagination()),i&&!ut(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){var t,i;this._isLocalGrid&&this.dataView&&((i=(t=this.sharedService)==null?void 0:t.gridOptions)!=null&&i.enablePagination)&&this.dataView.setPagingOptions({pageSize:this._itemsPerPage,pageNum:0}),this._cursorPageInfo=void 0,this.refreshPagination(!0,e)}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 bu=20,Su=25,yu=35,Eu=180,wu=300,Tu=200;class Ou{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._intervalRetryDelay=Tu,this._isStopResizeIntervalRequested=!1,this._hasResizedByContentAtLeastOnce=!1,this._totalColumnsWidthByContent=0,this._resizePaused=!1,this._subscriptions=[],this._eventHandler=new pe,this._bindingEventService=new Ae}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions),this._intervalId&&clearInterval(this._intervalId),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;if(!e||!this.gridOptions||!t)throw new Error(`
|
|
11
|
+
`}if(window.clipboardData)return window.clipboardData.setData("Text",l),!0;{const a=document.activeElement,h=this.createTextBox(l);if(h.focus(),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)??Xl),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 setTimeout(()=>this.decodeTabularData(this._grid,o),((n=this.addonOptions)==null?void 0:n.clipboardPasteDelay)??Xl),!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),clearTimeout(this._clearCopyTI),this._clearCopyTI=setTimeout(()=>this.clearCopySelection(),((s=this.addonOptions)==null?void 0:s.clearCopySelectionDelay)||Yc)}}class Hs{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 Ae,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(),J(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]?(J(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"&&ie(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 ql extends Hs{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${Jt(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${Jt(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 _,b,C,E,y;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(((b=this._addonOptions)==null?void 0:b.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"),(C=this.gridOptions)!=null&&C.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),(E=this.addonOptions)!=null&&E.width&&(p.style.width=It((y=this.addonOptions)==null?void 0:y.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 T=v("div",{className:`${this._menuCssPrefix}-option-list`,role:"menu"},p);this.populateCommandOrOptionTitle("option",this.addonOptions,T,i),!this.addonOptions.hideCloseButton&&i<1&&this.populateCommandOrOptionCloseBtn("option",g,T),s&&i>0&&this.addSubMenuTitleWhenExists(s,T),this.populateCommandOrOptionItems("option",this.addonOptions,T,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 T=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},p);this.populateCommandOrOptionTitle("command",this.addonOptions,T,i),!this.addonOptions.hideCloseButton&&i<1&&(!h||t.length===0||this.addonOptions.hideOptionSection)&&this.populateCommandOrOptionCloseBtn("command",g,T),s&&i>0&&this.addSubMenuTitleWhenExists(s,T),this.populateCommandOrOptionItems("command",this.addonOptions,T,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=me(s);let a=s&&this._camelPluginName==="cellMenu"?(l==null?void 0:l.left)??0:o.pageX,h=s&&this._camelPluginName==="cellMenu"?(l==null?void 0:l.top)??0:o.pageY;i&&this._camelPluginName==="contextMenu"&&(a=(l==null?void 0:l.left)??0,h=(l==null?void 0:l.top)??0);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:_}=Li(s),b=g+m-p,C=_-m+p;(b<c&&C>b?"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 b=document.documentElement.clientWidth;(_>=g.width||_>=b?"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 qc extends ql{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 Kc{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=Kt(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 Kl{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=Kt(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 Kc(e,this._options),this._canvas=e.getCanvasNode(),this._gridOptions=e.getOptions(),this._gridUid=e.getUID();const t=e.getPubSubService();t&&w.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(),J(this._activeCanvas),J(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=me(this._activeViewport),h=(a==null?void 0:a.left)??0,d=(a==null?void 0:a.top)??0,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&&(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=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,o,l;const i=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,s=this._grid.getCellFromPoint(i.pageX-(((o=me(this._activeCanvas))==null?void 0:o.left)??0)+this._columnOffset,i.pageY-(((l=me(this._activeCanvas))==null?void 0:l.top)??0)+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 a=this._grid.getCellNodeBox(s.row,s.cell);if(a){const h=this._draggingMouseOffset.viewport;(a.left<h.left||a.right>h.right||a.top<h.top||a.bottom>h.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 a=new Je(t.range.start.row??0,t.range.start.cell??0,s.row,s.cell);this._decorator.show(a),this.onCellRangeSelecting.notify({range:a})}}}handleDragEnd(e,t){this._decorator.hide(),this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),this.stopIntervalTimer(),this.onCellRangeSelected.notify({range:new Je(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=me(this._canvas);let n=t.startX-((s==null?void 0:s.left)??0);this._gridOptions.frozenColumn>=0&&this._isRightCanvas&&(n+=this._scrollLeft);let o=t.startY-((s==null?void 0:s.top)??0);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 Je(l.row,l.cell))}handleScroll(e,t){this._scrollTop=t.scrollTop,this._scrollLeft=t.scrollLeft}}class Qc{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 Kl({selectionCss:{border:"2px solid black"}}):this._selector=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,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=ie(t.cell),s=ie(t.row);(n=this._addonOptions)!=null&&n.selectActiveCell&&s&&i?this.setSelectedRanges([new Je(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){return["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","PageDown","PageUp","Home","End"].some(t=>t===e)}handleKeyDown(e){var l;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)&&(t=this.getSelectedRanges().slice(),t.length||t.push(new Je(n.row,n.cell)),i=t.pop(),typeof(i==null?void 0:i.contains)=="function")){i.contains(n.row,n.cell)||(i=new Je(n.row,n.cell));let a=i.toRow-i.fromRow,h=i.toCell-i.fromCell;const d=n.row===i.fromRow?1:-1,c=n.cell===i.fromCell?1:-1,u=e.key.startsWith("Arrow");let p,m=0;u&&!e.ctrlKey?(e.key==="ArrowLeft"?h-=c:e.key==="ArrowRight"?h+=c:e.key==="ArrowUp"?a-=d:e.key==="ArrowDown"&&(a+=d),m=n.row+d*a):(this._cachedPageRowCount<1&&(this._cachedPageRowCount=this._grid.getViewportRowCount()),this._prevSelectedRow===void 0&&(this._prevSelectedRow=n.row),e.shiftKey&&!e.ctrlKey&&e.key==="Home"?(p=0,m=n.row):e.shiftKey&&!e.ctrlKey&&e.key==="End"?(p=s-1,m=n.row):e.ctrlKey&&e.shiftKey&&e.key==="Home"?(p=0,m=0):e.ctrlKey&&e.shiftKey&&e.key==="End"?(p=s-1,m=o-1):e.key==="PageUp"?(this._prevSelectedRow>=0&&(m=this._prevSelectedRow-this._cachedPageRowCount),m<0&&(m=0)):e.key==="PageDown"&&(this._prevSelectedRow<=o-1&&(m=this._prevSelectedRow+this._cachedPageRowCount),m>o-1&&(m=o-1)),this._prevSelectedRow=m),p??(p=n.cell+c*h);const f=new Je(n.row,n.cell,m,p);if(this.removeInvalidRanges([f]).length){t.push(f);const g=d>0?f.toRow:f.fromRow,_=c>0?f.toCell:f.fromCell;u?(this._grid.scrollRowIntoView(g),this._grid.scrollCellIntoView(g,_,!1)):(this._grid.scrollRowIntoView(m),this._grid.scrollCellIntoView(m,_,!1))}else t.push(i);this.setSelectedRanges(t),e.preventDefault(),e.stopPropagation(),this._prevKeyDown=e.key}}}class hr{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 Kl({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 Je(t.range.fromRow,0,t.range.toRow,this._grid.getColumns().length-1)])}handleActiveCellChange(e,t){this._options.selectActiveRow&&t.row!==null&&this.setSelectedRanges([new Je(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 Je(s,0,s,i))),t}}const Ql="mdi-icon-check",Zl="mdi-icon-uncheck";class Jl{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 Ae,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 hr(this.gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionModel)),this.gridOptions.preselectedRows&&this._rowSelectionModel&&this._grid.getSelectionModel()&&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){const i=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?Ql:Zl}`})),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")){J(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?Ql:Zl}`)}}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 ea extends Hs{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:250,contentMinWidth:0,resizeOnShowHeaderRow:!1,syncResizeTitle:"Synchronous resize",subMenuOpenByEvent:"mouseover",headerColumnValueExtractor:l=>gt(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,Vs.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()??"",w.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&&(na.call(this,this._menuElm),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(this._menuElm,"click",ra.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=me(i),u=me(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,b=(_>g?_:g)||0,C=(c==null?void 0:c.top)??0,E=(c==null?void 0:c.right)??0;let y,T;if(o?(T=(u==null?void 0:u.top)??0,y=(u==null?void 0:u.left)??0):(T=C+d.offsetHeight,y=(p==null?void 0:p.dropSide)==="right"?E-f:E-b),o){const k=(t==null?void 0:t.clientHeight)||0,{bottom:L,top:N}=Li(l);(L<k&&N>L?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),T-=k-l.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}const x=this.grid.getGridPosition();let O=y+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&&(y-=Number(g))):(t.classList.remove("dropleft"),t.classList.add("dropright"),o&&(y+=l.offsetWidth)),t.style.top=`${T}px`,t.style.left=`${y}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(),J(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(),Vs.call(this),this._columnCheckboxes=[],la.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=It(a==null?void 0:a.minHeight,""),(a==null?void 0:a.height)!==void 0?this._menuElm.style.height=It(a.height,""):this._menuElm.style.maxHeight=It(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=ot(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:wt.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:wt.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"),sa.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 ta="mdi-icon-picker-check",ia="mdi-icon-picker-uncheck";function sa(r){const t=v("button",{type:"button",className:"close",ariaLabel:"Close",textContent:"×",dataset:{dismiss:this instanceof cr?"slick-column-picker":"slick-grid-menu"}});r.appendChild(t)}function na(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 ra(r){var o,l;const e=this,t=e instanceof cr?"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),oa(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,oa(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${Jt(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 oa(r,e=!1){r&&(r.className=`mdi ${e?ta:ia}`)}function dr(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?ta:ia}`}),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 la(r){const e=this,t=e instanceof ea?"gridmenu-":"";for(const i of e.columns){const s=i.id,n=document.createElement("li");i.excludeFromColumnPicker&&(n.className="hidden");const o=`${e._gridUid}-${t}colpicker-${s}`,l=e.grid.getColumnIndex(s)>=0,{inputElm:a,labelElm:h,labelSpanElm:d}=dr(n,o,{columnid:`${s}`},l);e._columnCheckboxes.push(a);const u=(typeof(r==null?void 0:r.headerColumnValueExtractor)=="function"?r.headerColumnValueExtractor:e._defaults.headerColumnValueExtractor)(i,e.gridOptions);this.grid.applyHtmlCode(d,u),n.appendChild(h),e._listElm.appendChild(n)}if((!r.hideForceFitButton||!r.hideSyncResizeButton)&&e._listElm.appendChild(document.createElement("hr")),!(r!=null&&r.hideForceFitButton)){const i=document.createElement("li"),s=`${e._gridUid}-${t}colpicker-forcefit`,{labelSpanElm:n}=dr(i,s,{option:"autoresize"},e.gridOptions.forceFitColumns);n.textContent=(r==null?void 0:r.forceFitTitle)??"",e._listElm.appendChild(i)}if(!(r!=null&&r.hideSyncResizeButton)){const i=document.createElement("li"),s=`${e._gridUid}-${t}colpicker-syncresize`,{labelSpanElm:n}=dr(i,s,{option:"syncresize"},e.gridOptions.forceFitColumns);n.textContent=(r==null?void 0:r.syncResizeTitle)??"",e._listElm.appendChild(i)}}function Vs(){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 cr{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:200,syncResizeTitle:"Synchronous resize",headerColumnValueExtractor:o=>gt(o.name||"","innerHTML")},this._bindEventService=new Ae,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,Vs.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 Vs.call(this),na.call(this,e),sa.call(this,e),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(e,"click",ra.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(),J(this._listElm),this._columnCheckboxes=[],this._menuElm=this.createPickerMenu(),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),la.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;this._menuElm&&(this._menuElm.style.top=`${t.pageY-10}px`,this._menuElm.style.left=`${t.pageX-10}px`,this._menuElm.style.minHeight=It(this.addonOptions.minHeight,""),this._menuElm.style.maxHeight=It(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 Bs=(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
|
+
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 aa(r,e){if(Array.isArray(r)){for(const t of r)if(t.editor)if(t.formatter&&t.formatter!==Bs&&t.formatter!==e){const i=t.formatter;t.formatter=Bs,t.params={...t.params,formatters:[i,e]}}else t.formatter&&t.formatter===Bs&&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=yt("minDecimal",r,a,s),d=yt("maxDecimal",r,a,n),c=yt("decimalSeparator",r,a,R.DEFAULT_NUMBER_DECIMAL_SEPARATOR),u=yt("thousandSeparator",r,a,R.DEFAULT_NUMBER_THOUSAND_SEPARATOR),p=yt("displayNegativeNumberWithParentheses",r,a,R.DEFAULT_NEGATIVE_NUMBER_WRAPPED_IN_BRAQUET),m=yt("currencyPrefix",r,a,""),f=yt("currencySuffix",r,a,"");return i==="cell"&&(o=yt("numberPrefix",r,a,""),l=yt("numberSuffix",r,a,"")),{minDecimal:h,maxDecimal:d,decimalSeparator:c,thousandSeparator:u,wrapNegativeNumber:p,currencyPrefix:m,currencySuffix:f,numberPrefix:o,numberSuffix:l}}function yt(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=Ze(r,!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)??S.date,u=Ze(c,!0),p=((_=o==null?void 0:o.params)==null?void 0:_.parseDateAsUtc)??!1,m=At(n,u);let f=n;if(m){let b=n;p&&(b=Uh(m)),f=Qe(b,t,"en-US")}if(f&&d!==e){const b=new RegExp(e,"ig");f=f.replace(b,d)}return f}}function ur(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=zs(l,r,e,t,i,s);return n!=null&&n.sanitizeDataExport&&typeof a=="string"?we(a):a}function zs(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=Zt(d)?d:d.html||d.text;o=gt(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 Zc extends ql{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=ot(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=Mi(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:wt.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:wt.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=ur(o,n,l,a,h,d);typeof l.queryFieldNameGetterFn=="function"&&(c=Mi(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 Jc{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.columnsGroupBy=[],this.pluginName="DraggableGrouping",this._gridColumns=[],this._gridUid="",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 Ae,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()}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.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(!En((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(),J(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,chosenClass:"slick-header-column-active",ghostClass:"slick-sortable-placeholder",draggable:".slick-header-column",dataIdAttr:"data-id",group:{name:"shared",pull:"clone",put:!1},revertClone:!0,onStart:()=>{c&&(c.style.display="inline-block"),d.querySelectorAll(".slick-dropped-grouping").forEach(f=>f.style.display="none"),u&&(u.style.display="none")},onEnd:m=>{var C,E,y;d==null||d.classList.remove("slick-dropzone-hover"),(C=c==null?void 0:c.parentElement)==null||C.classList.remove("slick-dropzone-placeholder-hover");const f=d.querySelectorAll(".slick-dropped-grouping");if(f.forEach(T=>T.style.display="flex"),f.length&&(c&&(c.style.display="none"),u&&(u.style.display="inline-flex")),!e.getEditorLock().commitCurrentEdit())return;const g=((E=this.sortableLeftInstance)==null?void 0:E.toArray())??[];if(t.length>1){const T=((y=this._sortableRightInstance)==null?void 0:y.toArray())??[];for(const x of T)g.push(x)}const _=[],b=e.getColumns();for(const T of g)_.push(b[l.call(e,T)]);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),{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)=>mi(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&&!En(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 eu extends Hs{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 Ae,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 tu extends Hs{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=Sn(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 u,p;const i=e.target,s=t.classList.contains("slick-submenu"),n=s?e.target.closest(".slick-menu-item"):i,o=no(this.sharedService.gridContainerElement,i),l=this.grid.getGridPosition(),a=t.offsetWidth,h=me(n);let d=s?(h==null?void 0:h.left)??0:(o==null?void 0:o.left)??0,c=s?(h==null?void 0:h.top)??0:((o==null?void 0:o.top)??0)+(((u=this.addonOptions)==null?void 0:u.menuOffsetTop)??0)+i.clientHeight;if(s){const m=(t==null?void 0:t.clientHeight)||0,{bottom:f,top:g}=Li(n);(f<m&&g>f?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),c-=m-n.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}if(s&&n){const m=d+Number(a)+n.clientWidth,f=document.documentElement.clientWidth;(m>=l.width||m>=f?"left":"right")==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),d-=a):(t.classList.remove("dropleft"),t.classList.add("dropright"),d+=n.offsetWidth)}else d=(o==null?void 0:o.left)??0,this.addonOptions.autoAlign&&(l!=null&&l.width)&&d+(t.clientWidth??0)>=l.width&&(d=d+i.clientWidth-t.clientWidth+(((p=this.addonOptions)==null?void 0:p.autoAlignOffset)||0));t.style.top=`${c}px`,t.style.left=`${d}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=ot(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?ui(p.title):(p.titleKey||"").toLowerCase().replaceAll("_","-");c.push({...p,command:m,action:(f,g)=>{const _=this.filterService.getFiltersMetadata().find(b=>b.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 $s="slick-rbe-editmode",iu="slick-rbe-unsaved-cell",ha="slick-rbe-unsaved-highlight",pr="action-btns--delete",mr="action-btns--edit",fr="action-btns--update",gr="action-btns--cancel";class da{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||ji.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]:iu}},l=`${ha}_${[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=`${ha}_${[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,_,b,C,E,y;const i=t.dataContext,s=e.target,n=this.gridOptions.datasetIdPropertyName??"id",o=this._editedRows.get(i[n]);if((s.classList.contains(pr)||(l=s.parentElement)!=null&&l.classList.contains(pr))&&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(mr)||(d=s.parentElement)!=null&&d.classList.contains(mr)){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(fr)||(p=s.parentElement)!=null&&p.classList.contains(fr)){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()),(b=this._addonOptions)!=null&&b.onBeforeRowUpdated&&await this._addonOptions.onBeforeRowUpdated(t)!==!0))return;this.removeUnsavedStylingFromRow(t.row),this.toggleEditmode(i,!1)}else if(s.classList.contains(gr)||(C=s.parentElement)!=null&&C.classList.contains(gr)){if((y=(E=this._addonOptions)==null?void 0:E.actionButtons)!=null&&y.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,_,b,C,E,y,T,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 `+mr,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 `+pr,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:`${((C=(b=o.rowBasedEditOptions)==null?void 0:b.actionButtons)==null?void 0:C.updateButtonClassName)||"button-style padding-1px mr-2"} action-btns `+fr,title:a.btnUpdateTitle,style:{display:l?"":"none"}})).appendChild(v("span",{className:((y=(E=o.rowBasedEditOptions)==null?void 0:E.actionButtons)==null?void 0:y.iconUpdateButtonClassName)||"mdi mdi-check-bold text-color-success"})),h.appendChild(v("span",{className:`${((x=(T=o.rowBasedEditOptions)==null?void 0:T.actionButtons)==null?void 0:x.cancelButtonClassName)||"button-style padding-1px"} action-btns `+gr,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($s)?s.cssClasses=(s.cssClasses||"")+" "+$s:!this._editedRows.has(i[n])&&s.cssClasses.includes($s)&&(s.cssClasses=s.cssClasses.replace($s,""))}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 ca{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(),w.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,o;if(this._dragging){e.stopImmediatePropagation();const l=e.getNativeEvent(),h=(((i=l==null?void 0:l.touches)==null?void 0:i[0])??l).pageY-(((s=me(this._canvas))==null?void 0:s.top)??0);t.selectionProxy.style.top=`${h-5}px`,t.selectionProxy.style.display="block",t.clonedSlickRow&&(t.clonedSlickRow.style.top=`${h-6}px`,t.clonedSlickRow.style.display="block");const d=Math.max(0,Math.min(Math.round(h/(this.gridOptions.rowHeight||0)),this._grid.getDataLength()));if(d!==t.insertBefore){const c={grid:this._grid,rows:t.selectedRows,insertBefore:d};if(((o=(n=this._addonOptions)==null?void 0:n.onBeforeMoveRows)==null?void 0:o.call(n,l,c))===!1||this.onBeforeMoveRows.notify(c).getReturnValue()===!1?t.canMove=!1:t.canMove=!0,this._usabilityOverride&&t.canMove){const u=this._grid.getDataItem(d);t.canMove=this.checkUsabilityOverride(d,u,this._grid)}t.canMove?t.guide.style.top=`${d*(this.gridOptions.rowHeight||0)}px`:t.guide.style.top="-1000px",t.insertBefore=d}}}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=It((l=this._addonOptions)==null?void 0:l.rowMoveShadowMarginLeft,"0px"),t.clonedSlickRow.style.marginTop=It((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 su{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={}}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 da(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 Uc((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 jc,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 qc(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 hr(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 Jl(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 cr(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 Zc(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 ea(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 eu(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 tu(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 ca(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})}}}createExtensionsBeforeGridCreation(e,t){var s,n,o;const i=[];t.enableCheckboxSelector&&(this.getCreatedExtensionByName(G.checkboxSelector)||(this._checkboxSelectColumn=new Jl(this.pubSubService,this.sharedService.gridOptions.checkboxSelector),i.push({name:G.checkboxSelector,extension: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 ca(this.pubSubService),i.push({name:G.rowMoveManager,extension: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 da(this.extensionUtility,this.pubSubService),i.push({name:G.rowBasedEdit,extension:this._rowBasedEdit,columnIndexPosition:((o=t==null?void 0:t.rowMoveManager)==null?void 0:o.columnIndexPosition)??i.length}))),this.createExtensionByTheirColumnIndex(i,e,t),t.enableDraggableGrouping&&(this.getCreatedExtensionByName(G.draggableGrouping)||(this._draggleGroupingPlugin=new Jc(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.columnIndexPosition-n.columnIndexPosition),e.forEach(s=>{const n=s.extension.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 ua(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 nu(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 Gt=(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},pa=(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?ci(r.cellValue,!0):r.cellValue.toLowerCase();if(typeof t=="string"&&(t=r!=null&&r.ignoreAccentOnStringFilterAndSort?ci(t,!0):t.toLowerCase()),typeof i=="string"&&(i=r!=null&&r.ignoreAccentOnStringFilterAndSort?ci(i,!0):i.toLowerCase()),r.operator===H.startsWithEndsWith&&t!==void 0&&i!==void 0)return ou(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=_r(l?">=":">",s,t,r.searchInputLastChar),h=_r(l?"<=":"<",s,i,r.searchInputLastChar);return a&&h}return _r(r.operator,s,t,r.searchInputLastChar)};function ru(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 _r(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:Gt(r||"==",e,t)}function ou(r,[e,t]){return r.startsWith(e)&&r.endsWith(t)}const lu=(r,e)=>{if(e===void 0&&!r.operator)return!0;switch((r.operator||"").toUpperCase()){case"!=":case"<>":case"NE":return!ua(r.cellValue,e,r.dataKey);case"=":case"==":case"EQ":default:return ua(r.cellValue,e,r.dataKey)}};function au(r){return(Array.isArray(r)&&r.length>0?r[0]:"")||""}const ma=(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=Gt(o?">=":">",t,+i),a=Gt(o?"<=":"<",t,+s);return l&&a}return Gt(r.operator||"==",t,+i)};function hu(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 fa=(r,e)=>us(r.cellValue)===us(e);function du(r){const e=Array.isArray(r)&&r[0]||!1;return us(e)}const ga=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}`,Gt(e||"IN",t,r.searchTerms||[])};function cu(r,e){const t=r&&(r.filterSearchType||r.fieldType)||S.dateIso,i=Ze(t),[s,n]=e,o=At(r.cellValue,i,!0);if(!s&&!n||!o)return!1;const l=i==="ISO8601"||i.toLowerCase().includes("h")?o.valueOf():ko(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=Gt(d?">=":">",l,s.valueOf()),u=Gt(d?"<=":"<",l,n.valueOf());return c&&u}const a=i==="ISO8601"||i.toLowerCase().includes("h")?s.valueOf():ko(new Date(s)).valueOf();return Gt(r.operator||"==",l,a)}function uu(r,e){const t=Array.isArray(r)&&r||[],i=e||S.dateIso,s=Ze(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=At(l,s,!0),d=At(a,s,!0);if(!h||!d)return[];n.push(h,d)}else{const o=At(t[0],s,!0);if(!o)return[];n.push(o)}return n}const pu=(r,e)=>{if(nu(r.operator))return ga(r);switch(_a(r.filterSearchType||r.fieldType)){case"boolean":return fa(r,e);case"date":return cu(r,e||[]);case"number":return ma(r,e||[]);case"object":return lu(r,e);case"string":default:return pa(r,e||[])}};function Ws(r,e){const t=_a(e);let i;switch(t){case"boolean":i=du(r);break;case"date":i=uu(r,e);break;case"number":i=hu(r);break;case"object":i=au(r);break;case"string":i=ru(r);break}return i}function _a(r){switch(r){case S.boolean:return"boolean";case S.date:case S.dateIso:case S.dateUtc:case S.dateTime:case S.dateTimeIso:case S.dateTimeIsoAmPm:case S.dateTimeIsoAM_PM:case S.dateTimeShortIso:case S.dateEuro:case S.dateEuroShort:case S.dateTimeShortEuro:case S.dateTimeEuro:case S.dateTimeEuroAmPm:case S.dateTimeEuroAM_PM:case S.dateTimeEuroShort:case S.dateTimeEuroShortAmPm:case S.dateTimeEuroShortAM_PM:case S.dateUs:case S.dateUsShort:case S.dateTimeShortUs:case S.dateTimeUs:case S.dateTimeUsAmPm:case S.dateTimeUsAM_PM:case S.dateTimeUsShort:case S.dateTimeUsShortAmPm:case S.dateTimeUsShortAM_PM:return"date";case S.integer:case S.float:case S.number:return"number";case S.object:return"object";case S.string:case S.text:case S.password:case S.readonly:default:return"string"}}const Ca={executeFilterConditionTest:pu,booleanFilter:fa,collectionSearchFilter:ga,numberFilter:ma,stringFilter:pa};class mu{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)),i.columnId!==null&&this._dataView.refresh(),s||await this.emitFilterChanged(oe.local),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=Di(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=Ws(h.searchTerms,h.columnDef.type||S.string),u!==void 0&&(h.parsedSearchTerms=u)),!Ca.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??S.string;let l=null;o!==S.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;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(f=>f.field===n)),!s)return!0;if(this._gridOptions.enableRowDetailView){const f=this._gridOptions.rowDetailView&&this._gridOptions.rowDetailView.keyPrefix||"__";e[`${f}isPadding`]&&e[`${f}parent`]&&(e=e[`${f}parent`])}let l=((u=s.filter)==null?void 0:u.queryField)||s.queryFieldFilter||s.queryField||s.field||"";typeof s.queryFieldNameGetterFn=="function"&&(l=s.queryFieldNameGetterFn(e));const a=((p=s.filter)==null?void 0:p.type)??s.type??S.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!==S.object)for(let f=0,g=c.length;f<g;f++)c[f]=(c[f]===void 0||c[f]===null?"":c[f])+"";if(((m=s==null?void 0:s.params)==null?void 0:m.useFormatterOuputToFilter)===!0){const f=i.getData(),g=this._gridOptions.datasetIdPropertyName||"id",_=f&&typeof f.getIdxById=="function"?f.getIdxById(e[g]):0,b=s&&typeof s.formatter=="function"?s.formatter(_||0,o,h,s,e,this._grid):"";h=we(b)}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,_,b,C,E,y;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=((b=this._gridOptions.treeDataOptions)==null?void 0:b.initiallyCollapsed)??!1,d=(C=this._gridOptions.treeDataOptions)==null?void 0:C.columnId,c=(E=this._gridOptions.treeDataOptions)==null?void 0:E.excludeChildrenWhenFilteringTree,u=!c&&((y=this._gridOptions.treeDataOptions)==null?void 0:y.autoApproveParentItemWhenTreeColumnIsValid)===!0,p={},m=new Set,f=new Map;return Array.isArray(e)&&(e.forEach(T=>{p[T[l]]=T,delete p[T[l]].__used}),typeof t=="object"&&Object.keys(t).forEach(T=>{var N;const x=t[T],O=x!=null&&x.searchTerms?de(!0,[],x.searchTerms):[],I=this.parseFormInputFilterConditions(O,x),A=x.columnDef,k=((N=A==null?void 0:A.filter)==null?void 0:N.type)??(A==null?void 0:A.type)??S.string,L=Ws(I.searchTerms,k);L!==void 0&&(x.parsedSearchTerms=L)}),e.forEach(T=>{const x=T[o];let O=!0;for(const I of Object.keys(t)){const A=t[I],k=this.preProcessFilterConditionOnDataContext(T,A,this._grid);if(k){const L=A==null?void 0:A.parsedSearchTerms,N=typeof k=="boolean"?k:Ca.executeFilterConditionTest(k,L);if(N&&u&&x&&A.columnId===d){f.set(T[l],!0);break}if(N||!c&&f.get(T[n])===!0){if(x&&A.columnId===d&&f.set(T[l],!0),N||!c&&A.columnId===d)continue}else x&&f.get(T[n])!==!0&&A.columnId!==d&&f.set(T[l],!1)}O=!1}if(O){m.add(T[l]);let I=p[T[n]]??!1;const A=!h;for(!this._isTreePresetExecuted&&Array.isArray(a)&&a.some(k=>k.itemId===I.id&&k.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??S.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,s=(i==null?void 0:i.id)??"";if(s!=="selector"&&(i!=null&&i.filterable)){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:this._grid.getHeaderRowColumn(s),callback:this.callbackSearchEvent.bind(this)};if(l){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)??S.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 b=`${a}`,C={columnId:b,columnDef:l,parsedSearchTerms:[],type:h,targetSelector:this.getSelectorStringFromElement(e==null?void 0:e.target)},E=this.parseFormInputFilterConditions(o,C);C.operator=d||E.operator||Cn(h),f=Ws(E.searchTerms,h),f!==void 0&&(C.parsedSearchTerms=f),C.searchTerms=E.searchTerms||[],this._columnFilters[b]=C}const g=e&&typeof e.isPropagationStopped!="function"?de({},new le,e):e,_=e==null?void 0:e.key;if(this._onSearchChange&&(t.forceOnSearchChangeEvent||_==="Enter"||!ut(p,this._columnFilters))){const b={clearFilterTriggered:t.clearFilterTriggered,shouldTriggerQuery:t.shouldTriggerQuery,columnId:a,columnDef:l,columnFilters:this._columnFilters,operator:d||Cn(h),searchTerms:o,parsedSearchTerms:f,grid:this._grid,target:e==null?void 0:e.target};this.pubSubService.publish("onBeforeSearchChange",b)===!1?this._gridOptions.resetFilterSearchValueAfterOnBeforeCancellation&&this.resetToPreviousSearchFilters():this._onSearchChange.notify(b,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??S.string,n=Ws(e,s);e&&t&&(this._columnFilters[t.id]={columnId:t.id,columnDef:t,searchTerms:e,operator:i,parsedSearchTerms:n,type:s})}}const Gs={skipError:!1,triggerEvent:!0},ss={highlightRow:!0,resortGrid:!1,selectRow:!1,scrollRowIntoView:!0,skipError:!1,triggerEvent:!0},Cr={highlightRow:!1,selectRow:!1,scrollRowIntoView:!1,skipError:!1,triggerEvent:!0},va={autoResizeColumns:!0,triggerEvent:!0,hideFromColumnPicker:!1,hideFromGridMenu:!1};class fu{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){vo(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(t={...va,...t},this._grid&&this._grid.getColumns&&this._grid.setColumns){const i=this._grid.getColumns(),s=i.findIndex(n=>n.id===e);if(s>=0){const n=Sn(i,s);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)),t!=null&&t.autoResizeColumns&&this._grid.autosizeColumns(),t!=null&&t.triggerEvent&&this.pubSubService.publish("onHeaderMenuHideColumns",{columns:n}),s}}return-1}hideColumnByIds(e,t){if(t={...va,...t},Array.isArray(e)){for(const i of e)this.hideColumnById(i,{...t,triggerEvent:!1,autoResizeColumns:!1});t!=null&&t.autoResizeColumns&&this._grid.autosizeColumns(),t!=null&&t.triggerEvent&&this.pubSubService.publish("onHeaderMenuHideColumns",{columns:this.sharedService.visibleColumns})}}highlightRow(e,t){this._grid.getSelectionModel()||(this._rowSelectionPlugin=new hr(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={...ss,...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={...ss,...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={...Gs,...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={...Gs,...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={...Gs,...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={...Gs,...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={...Cr,...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={...Cr,...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={...Cr,...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={...ss,...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={...ss,...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={...ss,...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 gu{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 _u{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:ze.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:ze.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onFilterCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:ze.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortChanged",t=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:ze.sorter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:ze.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,!ut(this.selectedRowDataContextIds,n)||!ut(this._selectedRowIndexes,s)){const o={gridRowIndexes:this._selectedRowIndexes||[],dataContextIds:i.selectedRowIds,filteredDataContextIds:i.filteredIds};this.pubSubService.publish("onGridStateChanged",{change:{newValues:o,type:ze.rowSelection},gridState:this.getCurrentGridState()})}}),this._subscriptions.push(this.pubSubService.subscribe("onHeaderMenuHideColumns",t=>{const i=this.getAssociatedCurrentColumns(t);this.pubSubService.publish("onGridStateChanged",{change:{newValues:i,type:ze.columns},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeItemToggled",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:ze.treeData},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeFullToggleEnd",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:ze.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:ze.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:ze.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:ze.pinning},gridState:u})}})}hasRowSelectionEnabled(){const e=this._grid.getSelectionModel();return!!(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&!!e}}class Cu{constructor(e,t){this.extensionUtility=e,this.pubSubService=t,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){if(this._grid=e,e&&this._gridOptions&&this._gridOptions.createPreHeaderPanel){this._gridOptions.enableTranslate&&this.translateGroupingAndColSpan(),this._eventHandler.subscribe(e.onSort,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onRendered,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onAutosizeColumns,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onColumnsResized,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onColumnsReordered,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(this._dataView.onRowCountChanged,()=>this.delayRenderPreHeaderRowGroupingTitles(0)),this._subscriptions.push(this.pubSubService.subscribe("onColumnPickerColumnsChanged",()=>this.renderPreHeaderRowGroupingTitles()),this.pubSubService.subscribe("onHeaderMenuHideColumns",()=>this.delayRenderPreHeaderRowGroupingTitles(0)),this.pubSubService.subscribe("onGridMenuColumnsChanged",()=>this.renderPreHeaderRowGroupingTitles()),this.pubSubService.subscribe("onGridMenuMenuClose",()=>this.renderPreHeaderRowGroupingTitles()));const t=e.getPluginByName("Resizer");t!=null&&t.onGridAfterResize&&this._eventHandler.subscribe(t.onGridAfterResize,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onSetOptions,(i,s)=>{var n,o;((n=s==null?void 0:s.optionsBefore)==null?void 0:n.frozenColumn)!==((o=s==null?void 0:s.optionsAfter)==null?void 0:o.frozenColumn)&&this.delayRenderPreHeaderRowGroupingTitles(0)}),this.delayRenderPreHeaderRowGroupingTitles(75)}}dispose(){this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}delayRenderPreHeaderRowGroupingTitles(e=0){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;J(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||"")}translateGroupingAndColSpan(){const e=this._grid.getColumns();this.extensionUtility.translateItems(e,"columnGroupKey","columnGroup"),this._grid.setColumns(e),this.renderPreHeaderRowGroupingTitles()}}class vu{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;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,(o,l)=>{this._totalItems!==l.totalRows&&(this.updateTotalItems(l.totalRows),this._previousPagination={pageNumber:l.pageNum,pageSize:l.pageSize,pageSizes:this.availablePageSizes,totalItems:l.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",()=>this.resetPagination())),this._subscriptions.push(this.pubSubService.subscribe("onFilterCleared",()=>this.resetPagination())),this.dataView&&(this._subscriptions.push(this.pubSubService.subscribe("onItemAdded",o=>this.processOnItemAddedOrRemoved(o,!0))),this._subscriptions.push(this.pubSubService.subscribe("onItemDeleted",o=>this.processOnItemAddedOrRemoved(o,!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,ls(t,"totalItems",o=>this._totalItems=o)}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&&!ut(s,this.getFullPagination())&&this.pubSubService.publish("onPaginationChanged",this.getFullPagination()),i&&!ut(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){var t,i;this._isLocalGrid&&this.dataView&&((i=(t=this.sharedService)==null?void 0:t.gridOptions)!=null&&i.enablePagination)&&this.dataView.setPagingOptions({pageSize:this._itemsPerPage,pageNum:0}),this._cursorPageInfo=void 0,this.refreshPagination(!0,e)}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 bu=20,Su=25,yu=35,Eu=180,wu=300,Tu=200;class Ou{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._intervalRetryDelay=Tu,this._isStopResizeIntervalRequested=!1,this._hasResizedByContentAtLeastOnce=!1,this._totalColumnsWidthByContent=0,this._resizePaused=!1,this._subscriptions=[],this._eventHandler=new pe,this._bindingEventService=new Ae}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions),this._intervalId&&clearInterval(this._intervalId),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;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.bindAutoResizeDataGrid(),this.gridOptions.autoResize&&this._subscriptions.push(this.pubSubService.subscribe("onFullResizeByContentRequested",()=>this.resizeColumnsByCellContent(!0))),this.gridOptions.enableColumnResizeOnDoubleClick&&(this._subscriptions.push(this.pubSubService.subscribe("onHeaderMenuColumnResizeByContent",h=>{this.handleSingleColumnResizeByContent(h.columnId)})),this._eventHandler.subscribe(this._grid.onColumnsResizeDblClick,(h,d)=>{this.handleSingleColumnResizeByContent(d.triggeredByColumn)}))}bindAutoResizeDataGrid(e){var t;if(((t=this.gridOptions.autoResize)==null?void 0:t.resizeDetection)==="container"){if(!this._pageContainerElm||!this._pageContainerElm)throw new Error(`
|
|
15
15
|
[Slickgrid-Universal] Resizer Service requires a container when gridOption.autoResize.resizeDetection="container"
|
|
16
|
-
You can fix this by setting your gridOption.autoResize.container`);this._resizeObserver||(this._resizeObserver=new ResizeObserver(()=>this.resizeObserverCallback())),this._resizeObserver.observe(this._pageContainerElm)}else{if(this._gridDomElm===void 0||me(this._gridDomElm)===void 0)return null;this.resizeGrid().then(()=>this.resizeGridWhenStylingIsBrokenUntilCorrected()).catch(i=>console.log("Error:",i)),this.resizeGrid(10,e),this._bindingEventService.bind(window,"resize",this.handleResizeGrid.bind(this,e))}}handleResizeGrid(e){this.pubSubService.publish("onGridBeforeResize"),this._resizePaused||(this.resizeGrid(0,e),this.resizeGrid(0,e))}resizeObserverCallback(){this._resizePaused||this.resizeGrid()}calculateGridNewDimensions(e){var f,g;const t=(e==null?void 0:e.autoResize)??{},i=me(this._gridDomElm);if(!window||i===void 0)return null;let s=(t==null?void 0:t.bottomPadding)!==void 0?t.bottomPadding:bu;if(s&&e.enablePagination&&(s+=yu),s&&e.showCustomFooter){const _=((g=(f=this.gridOptions)==null?void 0:f.customFooterOptions)==null?void 0:g.footerHeight)??Su;s+=parseInt(`${_}`,10)}let n=0,o=0;t.calculateAvailableSizeBy==="container"?n=ds(this._pageContainerElm,"height")||0:(n=window.innerHeight||0,o=(i==null?void 0:i.top)??0);const l=n-o-s,a=ds(this._pageContainerElm,"width")||window.innerWidth||0,h=t==null?void 0:t.maxHeight,d=(t==null?void 0:t.minHeight)??Eu,c=t==null?void 0:t.maxWidth,u=(t==null?void 0:t.minWidth)??wu;let p=l,m=t!=null&&t.rightPadding?a-t.rightPadding:a;return p<d&&(p=d),h&&p>h&&(p=h),m<u&&(m=u),c&&m>c&&(m=c),{height:this._fixedHeight||p,width:this._fixedWidth||m}}getLastResizeDimensions(){return this._lastDimensions}pauseResizer(e){this._resizePaused=e}resizeGrid(e,t){return new Promise(i=>{e=e||0,e>0?(clearTimeout(this._timer),this._timer=setTimeout(()=>i(this.resizeGridCallback(t)),e)):i(this.resizeGridCallback(t))})}resizeGridCallback(e){var i,s;const t=this.resizeGridWithDimensions(e);return this.pubSubService.publish("onGridAfterResize",t),this.gridOptions.enableAutoResizeColumnsByCellContent&&(!((i=this._lastDimensions)!=null&&i.width)||(t==null?void 0:t.width)!==((s=this._lastDimensions)==null?void 0:s.width))&&this.resizeColumnsByCellContent(!1),this._lastDimensions=t,t}resizeGridWithDimensions(e){var i,s,n,o;const t=this.calculateGridNewDimensions(this.gridOptions);if((e||t)&&this._gridDomElm){const l=e!=null&&e.height?e.height:t==null?void 0:t.height,a=e!=null&&e.width?e.width:t==null?void 0:t.width;this.gridOptions.autoHeight||(this._gridDomElm.style.height=`${l}px`),this._gridDomElm.style.width=`${a}px`,this._gridContainerElm&&(this._gridContainerElm.style.width=`${a}px`),(i=this._grid)!=null&&i.resizeCanvas&&this._gridContainerElm&&this._grid.resizeCanvas(),this._grid&&((s=this.gridOptions)!=null&&s.enableAutoSizeColumns)?this.gridUid&&document.querySelector(this.gridUidSelector)&&(!this._lastDimensions||this._lastDimensions.height!==l||this._lastDimensions.width!==a)&&this._grid.autosizeColumns():this.gridOptions.enableAutoResizeColumnsByCellContent&&(!((n=this._lastDimensions)!=null&&n.width)||a!==((o=this._lastDimensions)==null?void 0:o.width))&&this.resizeColumnsByCellContent(!1),this._lastDimensions={height:l||0,width:a||0}}return this._lastDimensions}requestStopOfAutoFixResizeGrid(e=!0){this._isStopResizeIntervalRequested=e}resizeColumnsByCellContent(e=!1){var h,d;const t=this._grid.getColumns(),i=this.dataView.getItems(),s={};let n=!1,o=0;const l=((h=this._gridContainerElm)==null?void 0:h.offsetWidth)??0;if(!Array.isArray(i)||i.length===0||!e&&this._totalColumnsWidthByContent>0&&this._totalColumnsWidthByContent<l){this._grid.autosizeColumns();return}if(this._hasResizedByContentAtLeastOnce&&((d=this.gridOptions)!=null&&d.resizeByContentOnlyOnFirstLoad)&&!e)return;if(this.pubSubService.publish("onBeforeResizeByContent",void 0,0),this._totalColumnsWidthByContent===0||e){for(const u of t)s[u.id]=u.originalWidth??u.minWidth??0;o=this.calculateCellWidthByReadingDataset(t,s,this.resizeByContentOptions.maxItemToInspectCellContentWidth);let c=0;for(const u of t){const p=u.resizeAlwaysRecalculateWidth??this.resizeByContentOptions.alwaysRecalculateColumnWidth??!1;u.originalWidth&&!p?u.width=u.originalWidth:s[u.id]!==void 0&&(u.rerenderOnResize&&(n=!0),this.applyNewCalculatedColumnWidthByReference(u,s[u.id])),c+=u.width||0,this._totalColumnsWidthByContent=c}}this._grid.setColumns(t),this._hasResizedByContentAtLeastOnce=!0;const a={};for(const c of t)a[c.id]=c.width;this._totalColumnsWidthByContent>l?this._grid.reRenderColumns(n):this._grid.autosizeColumns(),this.pubSubService.publish("onAfterResizeByContent",{readItemCount:o,calculateColumnWidths:a})}calculateCellWidthByReadingDataset(e,t,i=1e3,s){const n=Array.isArray(e)?e:[e],o=this.dataView.getItems();let l=0;for(const[a,h]of o.entries()){if(a>i)break;Array.isArray(n)&&typeof t=="object"&&n.forEach((d,c)=>{const u=this.calculateCellWidthByContent(h,d,a,s??c,t[d.id]);u!==void 0&&(t[d.id]=u)}),l=a+1}return l}calculateCellWidthByContent(e,t,i,s,n){const o=this.resizeByContentOptions.cellCharWidthInPx??7;if(!t.originalWidth){const l=(t==null?void 0:t.resizeCharWidthInPx)??o,a=zs(t==null?void 0:t.formatter,i,s,t,e,this._grid),h=Zt(a)?we(a):"",d=Math.ceil(h.length*l),c=t.resizeMaxWidthThreshold;t&&(n===void 0||d>n)&&(n=c!==void 0&&d>c?c:t.maxWidth!==void 0&&d>t.maxWidth?t.maxWidth:d)}return n}applyNewCalculatedColumnWidthByReference(e,t){var a;const i=this.resizeByContentOptions.cellPaddingWidthInPx??6,s=this.resizeByContentOptions.formatterPaddingWidthInPx??6,n=((a=e==null?void 0:e.filter)==null?void 0:a.type)??(e==null?void 0:e.type)??S.string;let o=t;const l=(e==null?void 0:e.resizeCalcWidthRatio)??this.resizeByContentOptions.defaultRatioForStringType??.9;o*=n==="string"?l:1,o+=i,e.resizeExtraWidthPadding&&(o+=e.resizeExtraWidthPadding),e.editor&&this.gridOptions.editable&&(o+=s),e.maxWidth!==void 0&&o>e.maxWidth&&(o=e.maxWidth),e.resizeMaxWidthThreshold!==void 0&&o>e.resizeMaxWidthThreshold&&(o=e.resizeMaxWidthThreshold),o=Math.ceil(o),(e.originalWidth===void 0||e.resizeAlwaysRecalculateWidth===!0||this.resizeByContentOptions.alwaysRecalculateColumnWidth===!0)&&(e.width=this.readjustNewColumnWidthWhenOverLimit(e,o))}handleSingleColumnResizeByContent(e){const t=this._grid.getColumns(),i=t.findIndex(s=>s.id===e);if(i>=0){const s=t[i],n={[e]:s.originalWidth??s.minWidth??0};s.originalWidth=void 0,this.calculateCellWidthByReadingDataset(s,n,this.resizeByContentOptions.maxItemToInspectSingleColumnWidthByContent,i),this.applyNewCalculatedColumnWidthByReference(s,n[e]),this._grid.reRenderColumns((s==null?void 0:s.rerenderOnResize)??!1)}}readjustNewColumnWidthWhenOverLimit(e,t){var o,l;const i=this.gridOptions.frozenColumn??-1,s=this._grid.getColumns().findIndex(a=>a.id===e.id)??0;let n=t;if(i>=0&&s<=i){const a=Array.from(this._grid.getViewports());if(a){const h=((o=a.find(m=>m.classList.contains("slick-viewport-left")))==null?void 0:o.clientWidth)??0,d=((l=a.find(m=>m.classList.contains("slick-viewport-right")))==null?void 0:l.clientWidth)??0,c=h+d,u=h-(e.width??0);if(u+t>c){const m=this.resizeByContentOptions.widthToRemoveFromExceededWidthReadjustment??50;n=h-u+d-m}}}return Math.ceil(n)}checkIsGridShown(){var e;return!!(((e=document.querySelector(`${this.gridUidSelector}`))==null?void 0:e.offsetParent)??!1)}resizeGridWhenStylingIsBrokenUntilCorrected(){var l,a;const e=((l=this.gridOptions)==null?void 0:l.autoFixResizeTimeout)??18e3,t=((a=this.gridOptions)==null?void 0:a.autoFixResizeRequiredGoodCount)??5,i=this._gridContainerElm.querySelector(`${this.gridUidSelector} .slick-header`),s=this._gridContainerElm.querySelector(`${this.gridUidSelector} .slick-viewport`);let n=0,o=0;if(i&&s&&this.gridOptions.autoFixResizeWhenBrokenStyleDetected){const h=this.dataView.getItemCount(),d=this._grid.getColumns()||[];this._intervalId=setInterval(async()=>{var C,E,y;const u=me(i);let p=(u==null?void 0:u.top)??0;(C=this.gridOptions)!=null&&C.enableFiltering&&this.gridOptions.headerRowHeight&&(p+=this.gridOptions.headerRowHeight),(E=this.gridOptions)!=null&&E.createPreHeaderPanel&&this.gridOptions.showPreHeaderPanel&&this.gridOptions.preHeaderPanelHeight&&(p+=this.gridOptions.preHeaderPanelHeight),p+=44;const m=me(s),f=(m==null?void 0:m.top)??0,g=me(this._gridContainerElm);let _=(u==null?void 0:u.top)===0||p-f>2||(g==null?void 0:g.left)===0&&(g==null?void 0:g.top)===0;const b=((y=this._grid.getRenderedRange())==null?void 0:y.rightPx)??0;!_&&h>0&&b===0&&d.length>1&&(_=!0),this._isStopResizeIntervalRequested&&(_=!1,n=e),this.checkIsGridShown()&&(_||(g==null?void 0:g.left)===0||(g==null?void 0:g.top)===0)&&(await this.resizeGrid(),o<5&&this._grid.updateColumns(),this.checkIsGridShown()&&(_=!1)),this.checkIsGridShown()&&o++,this.checkIsGridShown()&&!_&&(o>=t||n++>=e)&&clearInterval(this._intervalId)},this.intervalRetryDelay)}}}class xu{constructor(){this._hasColumnsReordered=!1,this._hideHeaderRowAfterPageLoad=!1}get allColumns(){return this._allColumns}set allColumns(e){this._allColumns=e}get columnDefinitions(){var e;return((e=this._grid)==null?void 0:e.getColumns())??[]}get currentPagination(){return this._currentPagination}set currentPagination(e){this._currentPagination=e}get dataView(){return this._dataView}set dataView(e){this._dataView=e}get frozenVisibleColumnId(){return this._frozenVisibleColumnId}set frozenVisibleColumnId(e){this._frozenVisibleColumnId=e}get hasColumnsReordered(){return this._hasColumnsReordered}set hasColumnsReordered(e){this._hasColumnsReordered=e}get slickGrid(){return this._grid}set slickGrid(e){this._grid=e}get gridContainerElement(){return this._gridContainerElm}set gridContainerElement(e){this._gridContainerElm=e}get gridOptions(){var e;return this._gridOptions||((e=this._grid)==null?void 0:e.getOptions())||{}}set gridOptions(e){this._gridOptions=e}get groupItemMetadataProvider(){return this._groupItemMetadataProvider}set groupItemMetadataProvider(e){this._groupItemMetadataProvider=e}get hideHeaderRowAfterPageLoad(){return this._hideHeaderRowAfterPageLoad}set hideHeaderRowAfterPageLoad(e){this._hideHeaderRowAfterPageLoad=e}get externalRegisteredResources(){return this._externalRegisteredResources}set externalRegisteredResources(e){this._externalRegisteredResources=e}get visibleColumns(){return this._visibleColumns}set visibleColumns(e){this._visibleColumns=e}get hierarchicalDataset(){return this._hierarchicalDataset}set hierarchicalDataset(e){this._hierarchicalDataset=e}}class Iu{constructor(e,t,i,s){this.sharedService=e,this.pubSubService=t,this.backendUtilities=i,this.rxjs=s,this._currentLocalSorters=[],this._isBackendGrid=!1,this._eventHandler=new pe,this.rxjs&&(this.httpCancelRequests$=this.rxjs.createSubject())}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())??[]}dispose(){var e,t;(e=this._eventHandler)!=null&&e.unsubscribeAll&&this._eventHandler.unsubscribeAll(),this.httpCancelRequests$&&((t=this.rxjs)!=null&&t.isObservable(this.httpCancelRequests$))&&(this.httpCancelRequests$.next(),this.httpCancelRequests$.complete())}addRxJsResource(e){this.rxjs=e}bindBackendOnSort(e){this._isBackendGrid=!0,this._grid=e,this._dataView=e==null?void 0:e.getData(),this._eventHandler.subscribe(e.onSort,this.onBackendSortChanged.bind(this))}bindLocalOnSort(e){this._isBackendGrid=!1,this._grid=e,this._dataView=e==null?void 0:e.getData(),this.processTreeDataInitialSort(),this._eventHandler.subscribe(e.onSort,this.handleLocalOnSort.bind(this))}handleLocalOnSort(e,t){var s;const i=t.multiColumnSort?t.sortCols:new Array({columnId:((s=t.sortCol)==null?void 0:s.id)??"",sortAsc:t.sortAsc,sortCol:t.sortCol});this._currentLocalSorters=[],Array.isArray(i)&&i.forEach(n=>{n.sortCol&&this._currentLocalSorters.push({columnId:n.sortCol.id,direction:n.sortAsc?dt.ASC:dt.DESC})}),this.onLocalSortChanged(this._grid,i),this.emitSortChanged(oe.local)}clearSortByColumnId(e,t){var n;const i=this.getCurrentColumnSorts(),s=this.getCurrentColumnSorts(`${t}`);if(Array.isArray(i)&&Array.isArray(s)&&i.length!==s.length){if(this._gridOptions.backendServiceApi)this.onBackendSortChanged(e,{multiColumnSort:!0,sortCols:s,grid:this._grid});else if(this._dataView)this.onLocalSortChanged(this._grid,s,!0,!0);else{const a=((n=this._gridOptions)==null?void 0:n.multiColumnSort)??!1?s:s[0];this._grid.onSort.notify(a)}const o=s.map(l=>{var a;return{columnId:((a=l==null?void 0:l.sortCol)==null?void 0:a.id)??"",sortAsc:l==null?void 0:l.sortAsc,sortCol:l==null?void 0:l.sortCol}});this._grid.setSortColumns(o)}Array.isArray(s)&&s.length===0&&this.sortLocalGridByDefaultSortFieldId()}clearSorting(e=!0){var t,i;if(this._grid&&this._gridOptions&&this._dataView){if(this._grid.setSortColumns([]),e)this._isBackendGrid?this.onBackendSortChanged(void 0,{grid:this._grid,multiColumnSort:!0,sortCols:[],clearSortTriggered:!0}):this._columnDefinitions&&Array.isArray(this._columnDefinitions)&&this._columnDefinitions.length>0&&this.sortLocalGridByDefaultSortFieldId();else if(this._isBackendGrid){const s=(i=(t=this._gridOptions)==null?void 0:t.backendServiceApi)==null?void 0:i.service;s!=null&&s.clearSorters&&s.clearSorters()}}this._currentLocalSorters=[],this.pubSubService.publish("onSortCleared",!0)}disableSortFunctionality(e=!0,t=!0){const s=!this._gridOptions.enableSorting;this._gridOptions.enableSorting=s;let n;e?(t&&this.clearSorting(),this._eventHandler.unsubscribeAll(),n=this.disableAllSortingCommands(!0)):(n=this.disableAllSortingCommands(!1),this._eventHandler.subscribe(this._grid.onSort,(o,l)=>this.handleLocalOnSort(o,l))),this._grid.setOptions({enableSorting:this._gridOptions.enableSorting},!1,!0),this.sharedService.gridOptions=this._gridOptions,this._grid.setColumns(n)}toggleSortFunctionality(e=!0){const t=this._gridOptions.enableSorting;this.disableSortFunctionality(t,e)}emitSortChanged(e,t){var i;if(e===oe.remote&&((i=this._gridOptions)!=null&&i.backendServiceApi)){let s=[];const n=this._gridOptions.backendServiceApi.service;n!=null&&n.getCurrentSorters&&(s=n.getCurrentSorters()),this.pubSubService.publish("onSortChanged",s)}else e===oe.local&&(t&&(this._currentLocalSorters=t),this.pubSubService.publish("onSortChanged",this.getCurrentLocalSorters()))}getCurrentLocalSorters(){return this._currentLocalSorters}getCurrentColumnSorts(e){if(this._grid){const t=this._grid.getSortColumns();if(Array.isArray(t))return t.reduce((s,n)=>(n&&(!e||n.columnId!==e)&&s.push({columnId:n.columnId||"",sortCol:this._columnDefinitions[this._grid.getColumnIndex(n.columnId||"")],sortAsc:n.sortAsc}),s),[])}return[]}loadGridSorters(e){this._currentLocalSorters=[];const t=[];return Array.isArray(e)&&((this._gridOptions.multiColumnSort?e:e.slice(0,1)).forEach(s=>{const n=this._columnDefinitions.find(o=>o.id===s.columnId);if(n){if(!n.sortable){let o="[Slickgrid-Universal] Cannot add sort icon to a column that is not sortable, please add `sortable: true` to your column or remove it from your list of columns to sort.";throw this._gridOptions.enableTreeData&&(o+=" Also note that TreeData feature requires the column holding the tree (expand/collapse icons) to be sortable."),new Error(o)}t.push({columnId:n.id,sortAsc:s.direction.toUpperCase()===dt.ASC,sortCol:n}),this._currentLocalSorters.push({columnId:String(n.id),direction:s.direction.toUpperCase()})}}),this.onLocalSortChanged(this._grid,t),this._grid.setSortColumns(t.map(s=>({columnId:s.columnId,sortAsc:s.sortAsc})))),t}processTreeDataInitialSort(){var e,t,i;if((e=this._gridOptions)!=null&&e.enableTreeData&&this._gridOptions.treeDataOptions){const s=this._gridOptions.treeDataOptions,n=this._columnDefinitions.find(o=>o.id===s.columnId);if(n){let o=dt.ASC,l={columnId:s.columnId,sortCol:n,sortAsc:!0};if((t=s==null?void 0:s.initialSort)!=null&&t.columnId){const a=s.initialSort.columnId,h=this._columnDefinitions.find(d=>d.id===a);o=(s.initialSort.direction||dt.ASC).toUpperCase(),l={columnId:a,sortCol:h,sortAsc:o===dt.ASC}}l!=null&&l.columnId&&((i=this.sharedService)!=null&&i.hierarchicalDataset)&&this.updateSorting([{columnId:l.columnId||"",direction:o}])}}}onBackendSortChanged(e,t){var a,h,d;if(!t||!t.grid)throw new Error('Something went wrong when trying to bind the "onBackendSortChanged(event, args)" function, it seems that "args" is not populated correctly');const i=((a=t.grid)==null?void 0:a.getOptions())??{},s=i.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;s.preProcess&&s.preProcess();const o=s.service.processOnSortChanged(e,t),l=((h=i==null?void 0:i.pagination)==null?void 0:h.totalItems)||0;(d=this.backendUtilities)==null||d.executeBackendCallback(s,o,t,n,l,{emitActionChangedCallback:this.emitSortChanged.bind(this),errorCallback:()=>{var u,p,m;this._grid.setSortColumns(t.previousSortColumns||[]);const c=(u=t.previousSortColumns)==null?void 0:u.map(f=>({columnId:f.columnId,sortAsc:f.sortAsc,sortCol:this._columnDefinitions.find(g=>g.id===f.columnId)}));(m=(p=s==null?void 0:s.service)==null?void 0:p.updateSorters)==null||m.call(p,c||[])},httpCancelRequestSubject:this.httpCancelRequests$})}async onLocalSortChanged(e,t,i=!1,s=!1){var a,h;const n=((a=this._gridOptions)==null?void 0:a.datasetIdPropertyName)??"id",o=((h=this._gridOptions)==null?void 0:h.enableTreeData)??!1,l=e.getData();if(await this.pubSubService.publish("onBeforeSortChange",{sortColumns:t},0),e&&l){if(i&&!o&&l.reSort(),o&&this.sharedService&&Array.isArray(this.sharedService.hierarchicalDataset)){const d=this.sortHierarchicalDataset(this.sharedService.hierarchicalDataset,t);this._dataView.setItems(d.flat,n),this._dataView.onRowCountChanged.notify({previous:this._dataView.getFilteredItemCount(),current:this._dataView.getLength(),itemCount:this._dataView.getItemCount(),dataView:this._dataView,callingOnRowsChanged:!0})}else l.sort(this.sortComparers.bind(this,t));e.invalidate(),s&&this.emitSortChanged(oe.local,t.map(d=>{var c;return{columnId:((c=d.sortCol)==null?void 0:c.id)??"id",direction:d.sortAsc?dt.ASC:dt.DESC}}))}}sortHierarchicalDataset(e,t,i=!1){var a,h,d;this.sortTreeData(e,t);const s=((a=this._gridOptions)==null?void 0:a.datasetIdPropertyName)??"id",n=((h=this._gridOptions)==null?void 0:h.treeDataOptions)??{columnId:""},o={...n,identifierPropName:n.identifierPropName??s,shouldAddTreeLevelNumber:!0},l=to(e,o);if(i){this._currentLocalSorters=[],t.forEach(u=>{this._currentLocalSorters.push({columnId:u.columnId,direction:u.sortAsc?"ASC":"DESC"})});const c=(d=this._gridOptions)!=null&&d.backendServiceApi?oe.remote:oe.local;this.emitSortChanged(c)}return{hierarchical:e,flat:l}}sortLocalGridByDefaultSortFieldId(){const e=this._gridOptions&&this._gridOptions.defaultColumnSortFieldId||this._gridOptions.datasetIdPropertyName||"id",t={id:e,field:e};this.onLocalSortChanged(this._grid,new Array({columnId:t.id,sortAsc:!0,sortCol:t,clearSortTriggered:!0}),!1,!0)}sortComparers(e,t,i){if(Array.isArray(e))for(const s of e){const n=this.sortComparer(s,t,i);if(n!==void 0)return n}return ae.neutral}sortComparer(e,t,i,s){if(e!=null&&e.sortCol){const n=e.sortCol,o=e.sortAsc?ae.asc:ae.desc;let l=s||n.queryFieldSorter||n.queryField||n.field,a=l;const h=n.type||S.string;typeof n.queryFieldNameGetterFn=="function"&&(l=n.queryFieldNameGetterFn(t),a=n.queryFieldNameGetterFn(i));let d=t[l],c=i[a];if((l==null?void 0:l.indexOf("."))>=0&&(d=Ee(t,l)),(a==null?void 0:a.indexOf("."))>=0&&(c=Ee(i,a)),n.sortComparer){const u=n.sortComparer(d,c,o,n,this._gridOptions);if(u!==ae.neutral)return u}else{const u=mi(h,d,c,o,n,this._gridOptions);if(u!==ae.neutral)return u}}}sortTreeData(e,t){Array.isArray(t)&&t.forEach(i=>{this.sortTreeChildren(e,i,0)})}sortTreeChildren(e,t,i){var o;const s=(o=this._gridOptions)==null?void 0:o.treeDataOptions,n=(s==null?void 0:s.childrenPropName)??"children";e.sort((l,a)=>this.sortComparer(t,l,a)??ae.neutral),e.forEach(l=>{l&&l.hasOwnProperty(n)&&Array.isArray(l[n])&&(i++,this.sortTreeChildren(l[n],t,i),i--)})}updateSorting(e,t=!0,i=!0){var s,n;if(!this._gridOptions||!this._gridOptions.enableSorting)throw new Error('[Slickgrid-Universal] in order to use "updateSorting" method, you need to have Sortable Columns defined in your grid and "enableSorting" set in your Grid Options');if(Array.isArray(e)){const o=(s=this._gridOptions)==null?void 0:s.backendServiceApi;if(o){const l=o==null?void 0:o.service;l!=null&&l.updateSorters&&(l.updateSorters(void 0,e),i&&((n=this.backendUtilities)==null||n.refreshBackendDataset(this._gridOptions)))}else this.loadGridSorters(e);if(t){const l=o?oe.remote:oe.local;this.emitSortChanged(l)}}}disableAllSortingCommands(e=!0){var s,n;const t=this._grid.getColumns();t.forEach(o=>{var l,a;o.sortable!==void 0&&(o.sortable=!e),(l=o==null?void 0:o.header)!=null&&l.menu&&((a=o.header.menu.commandItems)==null||a.forEach(h=>{if(h&&typeof h!="string"){const d=h.command;(d==="sort-asc"||d==="sort-desc"||d==="clear-sort")&&(h.hidden=e)}}))});const i=(n=(s=this._gridOptions)==null?void 0:s.gridMenu)==null?void 0:n.commandItems;return i&&i.forEach(o=>{o&&typeof o!="string"&&o.command==="clear-sorting"&&(o.hidden=e)}),t}}class Ru{constructor(e,t,i){this.pubSubService=e,this.sharedService=t,this.sortService=i,this._currentToggledItems=[],this._isLastFullToggleCollapsed=!1,this._isOneCpuCyclePassed=!1,this._isTreeDataEnabled=!1,this._subscriptions=[],this._treeDataRecalcHandler=null,this._eventHandler=new pe,setTimeout(()=>this._isOneCpuCyclePassed=!0)}set currentToggledItems(e){this._currentToggledItems=e}get dataset(){var e;return(e=this.dataView)==null?void 0:e.getItems()}get datasetHierarchical(){return this.sharedService.hierarchicalDataset}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 treeDataOptions(){return this.gridOptions.treeDataOptions}dispose(){this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}init(e){var t,i,s,n,o,l,a,h;if(this._grid=e,this._isTreeDataEnabled=((t=this.gridOptions)==null?void 0:t.enableTreeData)??!1,this._isLastFullToggleCollapsed=((i=this.treeDataOptions)==null?void 0:i.initiallyCollapsed)??!1,this._currentToggledItems=((n=(s=this.gridOptions.presets)==null?void 0:s.treeData)==null?void 0:n.toggledItems)??[],this._lastToggleStateChange={type:this._isLastFullToggleCollapsed?"full-collapse":"full-expand",previousFullToggleType:this._isLastFullToggleCollapsed?"full-collapse":"full-expand",toggledItems:this._currentToggledItems},this._isTreeDataEnabled){if((o=this.gridOptions)!=null&&o.multiColumnSort)throw new Error('[Slickgrid-Universal] It looks like you are trying to use Tree Data with multi-column sorting, unfortunately it is not supported because of its complexity, you can disable it via "multiColumnSort: false" grid option and/or help in providing support for this feature.');if(!((l=this.gridOptions)!=null&&l.enableFiltering))throw new Error('[Slickgrid-Universal] It looks like you are trying to use Tree Data without using the filtering option, unfortunately that is not possible with Tree Data since it relies heavily on the filters to expand/collapse the tree. You need to enable it via "enableFiltering: true"');if((a=this.gridOptions)!=null&&a.backendServiceApi||(h=this.gridOptions)!=null&&h.enablePagination)throw new Error("[Slickgrid-Universal] It looks like you are trying to use Tree Data with Pagination and/or a Backend Service (OData, GraphQL) but unfortunately that is simply not supported because of its complexity.");if(!this.gridOptions.treeDataOptions||!this.gridOptions.treeDataOptions.columnId)throw new Error('[Slickgrid-Universal] When enabling tree data, you must also provide the "treeDataOption" property in your Grid Options with "childrenPropName" or "parentPropName" (depending if your array is hierarchical or flat) for the Tree Data to work properly.')}this._eventHandler.subscribe(e.onClick,this.handleOnCellClick.bind(this)),this._subscriptions.push(this.pubSubService.subscribe("onGridMenuClearAllSorting",this.clearSorting.bind(this))),this._treeDataRecalcHandler=this.setAutoRecalcTotalsCallbackWhenFeatEnabled(this.gridOptions),this._eventHandler.subscribe(this.dataView.onRowCountChanged,()=>{var d;typeof this._treeDataRecalcHandler=="function"&&this._isOneCpuCyclePassed&&(clearTimeout(this._timer),this._timer=setTimeout(()=>{var c;return(c=this._treeDataRecalcHandler)==null?void 0:c.call(this)},((d=this.treeDataOptions)==null?void 0:d.autoRecalcTotalsDebounce)??0))})}applyToggledItemStateChanges(e,t,i=!0,s=!1){if(Array.isArray(e)){const n=this.getTreeDataOptionPropName("collapsedPropName"),o=this.getTreeDataOptionPropName("hasChildrenPropName");this.dataView.beginUpdate(!0);const a=(t??this._lastToggleStateChange.previousFullToggleType)==="full-collapse";t&&(this._lastToggleStateChange.previousFullToggleType=t),i&&(this.dataView.getItems()||[]).forEach(h=>{h[o]&&(h[n]=a)}),this.dynamicallyToggleItemState(e,s)}}dynamicallyToggleItemState(e,t=!0){Array.isArray(e)&&(this.dataView.beginUpdate(!0),e.forEach(i=>{const s=this.dataView.getItemById(i.itemId);if(this.updateToggledItem(s,i.isCollapsed),t){const n=this._currentToggledItems.findIndex(o=>o.itemId===i.itemId);n>=0?this._currentToggledItems[n].isCollapsed=i.isCollapsed:this._currentToggledItems.push({itemId:i.itemId,isCollapsed:i.isCollapsed}),this.pubSubService.publish("onTreeItemToggled",{...this._lastToggleStateChange,fromItemId:i.itemId,toggledItems:this._currentToggledItems,type:i.isCollapsed?Tt.toggleCollapse:Tt.toggleExpand})}}),this.dataView.endUpdate(),this.dataView.refresh())}getCurrentToggleState(){return this._lastToggleStateChange}getInitialSort(e,t){var o;const i=t==null?void 0:t.treeDataOptions,s=(i==null?void 0:i.initialSort)??{columnId:(i==null?void 0:i.columnId)??"",direction:"ASC"},n=e.find(l=>l.id===s.columnId);return{columnId:s.columnId,sortAsc:((o=s==null?void 0:s.direction)==null?void 0:o.toUpperCase())!=="DESC",sortCol:n}}getItemCount(e){if(e!==void 0){const t=this.getTreeDataOptionPropName("levelPropName");return this.dataView.getItems().filter(i=>i[t]===e).length}return this.dataView.getItemCount()}getToggledItems(){return this._currentToggledItems}getTreeDataOptionPropName(e){var i,s,n,o,l,a,h;let t="";switch(e){case"childrenPropName":t=((i=this.treeDataOptions)==null?void 0:i.childrenPropName)??R.treeDataProperties.CHILDREN_PROP;break;case"collapsedPropName":t=((s=this.treeDataOptions)==null?void 0:s.collapsedPropName)??R.treeDataProperties.COLLAPSED_PROP;break;case"hasChildrenPropName":t=((n=this.treeDataOptions)==null?void 0:n.hasChildrenPropName)??R.treeDataProperties.HAS_CHILDREN_PROP;break;case"identifierPropName":t=((o=this.treeDataOptions)==null?void 0:o.identifierPropName)??((l=this.gridOptions)==null?void 0:l.datasetIdPropertyName)??"id";break;case"levelPropName":t=((a=this.treeDataOptions)==null?void 0:a.levelPropName)??R.treeDataProperties.TREE_LEVEL_PROP;break;case"parentPropName":t=((h=this.treeDataOptions)==null?void 0:h.parentPropName)??R.treeDataProperties.PARENT_PROP;break}return t}clearSorting(){const e=this.getInitialSort(this.sharedService.columnDefinitions,this.sharedService.gridOptions);this.sortService.loadGridSorters([{columnId:e.columnId,direction:e.sortAsc?"ASC":"DESC"}])}convertFlatParentChildToTreeDatasetAndSort(e,t,i,s){var a;const n=this.convertFlatParentChildToTreeDataset(e,i),o=Array.isArray(s)&&s.length?s[0]:this.getInitialSort(t,i),l=this.sortService.sortHierarchicalDataset(n,[o],!0);return(a=this._grid)==null||a.setSortColumns([o]),l}convertFlatParentChildToTreeDataset(e,t){const i=(t==null?void 0:t.datasetIdPropertyName)??"id",s=(t==null?void 0:t.treeDataOptions)??{columnId:"id"},n={...s,identifierPropName:s.identifierPropName??i,initiallyCollapsed:this._isLastFullToggleCollapsed};return io(e,n)}enableAutoRecalcTotalsFeature(e=!0){e&&this._isTreeDataEnabled?this._treeDataRecalcHandler=this.recalculateTreeTotals.bind(this,this.gridOptions):this._treeDataRecalcHandler=null}recalculateTreeTotals(e){const t=e.treeDataOptions,i=(t==null?void 0:t.childrenPropName)??R.treeDataProperties.CHILDREN_PROP,s=(t==null?void 0:t.levelPropName)??R.treeDataProperties.TREE_LEVEL_PROP;t!=null&&t.aggregators&&(t.aggregators.forEach(n=>{Fi(this.sharedService.hierarchicalDataset||[],{childrenPropName:i,levelPropName:s,aggregator:n})}),this._grid.invalidate())}sortHierarchicalDataset(e,t){const i=t??this.getInitialSort(this.sharedService.allColumns,this.gridOptions),s=Array.isArray(i)?i:[i];return this.sortService.sortHierarchicalDataset(e,s)}async toggleTreeDataCollapse(e,t=!0){var s;if((s=this.gridOptions)!=null&&s.enableTreeData){const n=this.getTreeDataOptionPropName("hasChildrenPropName");t&&await this.pubSubService.publish("onTreeFullToggleStart",{collapsing:e}),this.dataView.beginUpdate(!0),(this.dataView.getItems()||[]).forEach(o=>{o[n]&&this.updateToggledItem(o,e)}),this.dataView.endUpdate(),this.dataView.refresh(),this._isLastFullToggleCollapsed=e}const i=e?Tt.fullCollapse:Tt.fullExpand;this._lastToggleStateChange={type:i,previousFullToggleType:i,toggledItems:null},t&&this.pubSubService.publish("onTreeFullToggleEnd",this._lastToggleStateChange)}handleOnCellClick(e,t){if(e&&t){const i=e.target||{},s=this.gridOptions.datasetIdPropertyName??"id",n=this.getTreeDataOptionPropName("collapsedPropName"),o=this.getTreeDataOptionPropName("childrenPropName");if(typeof(i==null?void 0:i.className)=="string"&&(i.className.indexOf("toggle")>=0||!1)){const a=this.dataView.getItem(t.row);if(a){a[n]=!a[n];const h=a[n],d=a[s],c=this._currentToggledItems.findIndex(m=>m.itemId===d);c>=0?this._currentToggledItems[c].isCollapsed=h:this._currentToggledItems.push({itemId:d,isCollapsed:h}),this.dataView.updateItem(d,a);const u=m=>m[s]===d,p=Di(this.sharedService.hierarchicalDataset||[],u,o);p&&(p[n]=h),this._grid.invalidate(),this._lastToggleStateChange={type:h?Tt.toggleCollapse:Tt.toggleExpand,previousFullToggleType:this._isLastFullToggleCollapsed?"full-collapse":"full-expand",toggledItems:this._currentToggledItems},this.pubSubService.publish("onTreeItemToggled",{...this._lastToggleStateChange,fromItemId:d})}e.stopImmediatePropagation()}}}updateToggledItem(e,t){var o;const i=((o=this.gridOptions)==null?void 0:o.datasetIdPropertyName)??"id",s=this.getTreeDataOptionPropName("childrenPropName"),n=this.getTreeDataOptionPropName("collapsedPropName");if(e){e[n]=t,this.dataView.updateItem(e[i],e);const l=h=>h[i]===e[i],a=Di(this.sharedService.hierarchicalDataset||[],l,s);a&&(a[n]=t)}}setAutoRecalcTotalsCallbackWhenFeatEnabled(e){var t,i;return e!=null&&e.enableTreeData&&((t=e==null?void 0:e.treeDataOptions)!=null&&t.autoRecalcTotalsOnFilterChange)&&((i=e==null?void 0:e.treeDataOptions)!=null&&i.aggregators)?this.recalculateTreeTotals.bind(this,e):null}}class Ut{constructor(e){this.translaterService=e,this._debounceTypingDelay=0,this._shouldTriggerQuery=!0,this._inputType="text",this.inputFilterType="single",this.searchTerms=[],this._bindEventService=new Ae}get columnFilter(){var e;return((e=this.columnDef)==null?void 0:e.filter)??{}}get defaultOperator(){return H.empty}get inputType(){return this._inputType}set inputType(e){this._inputType=e}get operator(){var e;return((e=this.columnFilter)==null?void 0:e.operator)??this.defaultOperator}set operator(e){this.columnFilter&&(this.columnFilter.operator=e)}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())??{}}init(e){var s,n,o;if(!e)throw new Error('[Slickgrid-Universal] A filter must always have an "init()" with valid arguments.');this.grid=e.grid,this.callback=e.callback,this.columnDef=e.columnDef,this.inputFilterType==="compound"&&(this.operator=e.operator||""),this.searchTerms=(e==null?void 0:e.searchTerms)??[],this._cellContainerElm=e.filterContainerElm;const t=(s=this.gridOptions)==null?void 0:s.backendServiceApi;this._debounceTypingDelay=(t?(t==null?void 0:t.filterTypingDebounce)??((n=this.gridOptions)==null?void 0:n.defaultBackendServiceFilterTypingDebounce):(o=this.gridOptions)==null?void 0:o.filterTypingDebounce)??0;const i=Array.isArray(this.searchTerms)&&this.searchTerms.length>=0?this.searchTerms[0]:"";this.createDomFilterElement(i),this._bindEventService.bind(this._filterInputElm,["keyup","blur","change"],this.onTriggerEvent.bind(this)),this._bindEventService.bind(this._filterInputElm,"wheel",this.onTriggerEvent.bind(this),{passive:!0}),this.inputFilterType==="compound"&&this._selectOperatorElm&&this._bindEventService.bind(this._selectOperatorElm,"change",this.onTriggerEvent.bind(this))}clear(e=!0){this._filterInputElm&&(this._shouldTriggerQuery=e,this.searchTerms=[],this._filterInputElm.value="",this._currentValue=void 0,this.updateFilterStyle(!1),this.inputFilterType==="compound"&&this._selectOperatorElm&&(this._selectOperatorElm.selectedIndex=0),this.onTriggerEvent(void 0,!0))}destroy(){var e,t,i,s;this._bindEventService.unbindAll(),(t=(e=this._selectOperatorElm)==null?void 0:e.remove)==null||t.call(e),(s=(i=this._filterInputElm)==null?void 0:i.remove)==null||s.call(i)}getValues(){return this._filterInputElm.value}setValues(e,t,i=!1){const s=Array.isArray(e)?e:[e];let n="";for(const o of s)this.inputFilterType==="single"?n=t?this.addOptionalOperatorIntoSearchString(o,t):o:n=`${o}`,this._filterInputElm.value=`${n??""}`,this._currentValue=this._filterInputElm.value;if(this.updateFilterStyle(this.getValues()!==""),this.operator=t||this.defaultOperator,t&&this._selectOperatorElm){const o=di(this.operator);this._selectOperatorElm.value=o}i&&this.onTriggerEvent(void 0,!1)}addOptionalOperatorIntoSearchString(e,t){let i="",s="",n=e==null?"":`${e}`;if(t&&n){switch(t){case"<>":case"!=":case"=":case"==":case">":case">=":case"<":case"<=":i=t;break;case"EndsWith":case"*z":i="*";break;case"StartsWith":case"a*":s="*";break}n=`${i}${n}${s}`}return n}getCompoundOperatorOptionValues(){var s;const e=this.columnDef.type&&this.columnDef.type?this.columnDef.type:S.string;let t,i="text";if((s=this.columnFilter)!=null&&s.compoundOperatorList)t=this.columnFilter.compoundOperatorList;else switch(e){case S.string:case S.text:case S.readonly:case S.password:i="text",t=qh(this.gridOptions,this.translaterService);break;default:i="numeric",t=Dn(this.gridOptions,this.translaterService);break}return Mn(this.gridOptions,t,i),t}createDomFilterElement(e){var n,o,l,a;const t=((n=this.columnDef)==null?void 0:n.id)??"";J(this._cellContainerElm);let i=((o=this.gridOptions)==null?void 0:o.defaultFilterPlaceholder)??"";(l=this.columnFilter)!=null&&l.placeholder&&(i=this.columnFilter.placeholder);const s=`${e??""}`;if(this._filterInputElm=v("input",{type:this._inputType||"text",autocomplete:"off",ariaAutoComplete:"none",placeholder:i,ariaLabel:((a=this.columnFilter)==null?void 0:a.ariaLabel)??`${_t(t+"")} Search Filter`,className:`form-control filter-${t}`,value:s,dataset:{columnid:`${t}`}}),this.updateFilterStyle(!!e),e!==void 0&&(this._currentValue=s),this.inputFilterType==="single")this._filterContainerElm=this._filterInputElm,this._filterInputElm.classList.add("search-filter"),this._cellContainerElm.appendChild(this._filterInputElm),this._cellContainerElm.appendChild(document.createElement("span"));else{this._filterInputElm.classList.add("compound-input"),this._selectOperatorElm=Fn(this.getCompoundOperatorOptionValues(),this.grid),this._filterContainerElm=v("div",{className:`form-group search-filter filter-${t}`});const h=v("div",{className:"input-group"},this._filterContainerElm);v("div",{className:"input-group-addon input-group-prepend operator"},h).appendChild(this._selectOperatorElm),h.appendChild(this._filterInputElm),h.appendChild(v("span")),this.operator&&(this._selectOperatorElm.value=di(this.operator)),this._filterContainerElm&&this._cellContainerElm.appendChild(this._filterContainerElm)}}onTriggerEvent(e,t=!1){var i,s;if(t)this.callback(e,{columnDef:this.columnDef,clearFilterTriggered:t,shouldTriggerQuery:this._shouldTriggerQuery}),this.updateFilterStyle(!1);else{const n=(e==null?void 0:e.type)??"",o=((i=this._selectOperatorElm)==null?void 0:i.value)??this.operator;let l=this._filterInputElm.value;const a=this.gridOptions.enableFilterTrimWhiteSpace||this.columnFilter.enableTrimWhiteSpace;typeof l=="string"&&a&&(l=l.trim()),((s=e==null?void 0:e.target)==null?void 0:s.tagName.toLowerCase())!=="select"&&(this._currentValue=l),this.updateFilterStyle(l!=="");const h={columnDef:this.columnDef,operator:o,searchTerms:l?[l]:null,shouldTriggerQuery:this._shouldTriggerQuery},d=n==="keyup"&&(e==null?void 0:e.key)!=="Enter"?this._debounceTypingDelay:0,c=this.columnFilter.skipCompoundOperatorFilterWithNullInput??this.gridOptions.skipCompoundOperatorFilterWithNullInput,u=c&&ie(this._currentValue)||this._currentValue===""&&ie(this._lastSearchValue);(this.inputFilterType==="single"||!c||u)&&(d>0?(clearTimeout(this._timer),this._timer=setTimeout(()=>this.callback(e,h),d)):this.callback(e,h)),this._lastSearchValue=l}this._shouldTriggerQuery=!0}updateFilterStyle(e){var t,i;e?((t=this._filterContainerElm)==null||t.classList.add("filled"),this._filterInputElm.classList.add("filled")):((i=this._filterContainerElm)==null||i.classList.remove("filled"),this._filterInputElm.classList.remove("filled"))}}class ba extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="text",this.inputFilterType="compound"}}class Au extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="number",this.inputFilterType="compound"}}class Pu extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="password",this.inputFilterType="compound"}}const vr="#86bff8",Us=0,ku=20;class br{constructor(e){this.translaterService=e,this._clearFilterTriggered=!1,this._shouldTriggerQuery=!0,this._sliderTrackFilledColor=vr,this.sliderType="double",this.searchTerms=[],this._bindEventService=new Ae}get columnFilter(){var e;return((e=this.columnDef)==null?void 0:e.filter)??{}}get currentValue(){return this._currentValue}get currentValues(){return this._currentValues}get defaultOperator(){return this.sliderType==="compound"?H.empty:this.sliderType==="single"?H.greaterThanOrEqual:this.gridOptions.defaultFilterRangeOperator||H.rangeInclusive}get filterOptions(){var e,t;return{...(e=this.gridOptions.defaultFilterOptions)==null?void 0:e.slider,...(t=this.columnFilter)==null?void 0:t.filterOptions}}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())??{}}get sliderOptions(){return this._sliderOptions}get operator(){return this._operator||(this.columnFilter.operator??this.defaultOperator)}set operator(e){this._operator=e}init(e){if(!e)throw new Error('[Slickgrid-Universal] A filter must always have an "init()" with valid arguments.');this.grid=e.grid,this.callback=e.callback,this.columnDef=e.columnDef,this.operator=e.operator||"",this.searchTerms=(e==null?void 0:e.searchTerms)??[],this._argFilterContainerElm=e.filterContainerElm,this._sliderTrackFilledColor=window.getComputedStyle(document.documentElement).getPropertyValue("--slick-slider-filter-filled-track-color")||vr,this._filterElm=this.createDomFilterElement(this.searchTerms)}clear(e=!0){var t,i,s,n,o,l,a;if(this._filterElm){this._clearFilterTriggered=!0,this._shouldTriggerQuery=e,this.searchTerms=[];const h=+(((t=this.filterOptions)==null?void 0:t.sliderStartValue)??R.SLIDER_DEFAULT_MIN_VALUE),d=+(((i=this.filterOptions)==null?void 0:i.sliderEndValue)??R.SLIDER_DEFAULT_MAX_VALUE);this.sliderType==="double"?(this._sliderLeftInputElm&&(this._sliderLeftInputElm.value=`${h}`),this._sliderRightInputElm&&(this._sliderRightInputElm.value=`${d}`),this._currentValues=[h,d],(s=this._sliderLeftInputElm)==null||s.dispatchEvent(new Event("change")),(n=this._sliderRightInputElm)==null||n.dispatchEvent(new Event("change"))):(this._sliderRightInputElm&&(this._sliderRightInputElm.value=`${h}`),this._selectOperatorElm&&(this._selectOperatorElm.selectedIndex=0),this._currentValue=h,(o=this._sliderRightInputElm)==null||o.dispatchEvent(new Event("change"))),(((l=this.filterOptions)==null?void 0:l.hideSliderNumber)??((a=this.filterOptions)==null?void 0:a.hideSliderNumbers))||(this.sliderType==="double"?this.renderSliderValues(h,d):this.renderSliderValues(void 0,h)),this.updateFilterStyle(!1),this.callback(void 0,{columnDef:this.columnDef,clearFilterTriggered:!0,shouldTriggerQuery:e,searchTerms:[]})}}destroy(){var e,t,i;this._bindEventService.unbindAll(),(e=this._sliderTrackElm)==null||e.remove(),(t=this._sliderLeftInputElm)==null||t.remove(),(i=this._sliderRightInputElm)==null||i.remove()}renderSliderValues(e,t,i=!0){var o,l;const s=(e==null?void 0:e.toString())||"",n=(t==null?void 0:t.toString())||"";(o=this._leftSliderNumberElm)!=null&&o.textContent&&(this._leftSliderNumberElm.textContent=s),(l=this._rightSliderNumberElm)!=null&&l.textContent&&(this._rightSliderNumberElm.textContent=n),this._sliderRangeContainElm.title=this.sliderType==="double"?`${s} - ${n}`:`${n}`,i&&this.grid.onHeaderRowMouseLeave.notify({column:this.columnDef,grid:this.grid})}getValues(){return this.sliderType==="double"?this._currentValues:this._currentValue}setValues(e,t,i=!1){var o;if(e){let l=[];const a=Array.isArray(e)?e==null?void 0:e[0]:e;if(Array.isArray(e)&&e.length===2?l=e:typeof a=="string"&&a.indexOf("..")>0?(l=a.split(".."),this._currentValue=+((l==null?void 0:l[0])??0)):(ie(a)||a==="")&&(this._currentValue=a===null?void 0:+a,l=[a]),this.sliderType!=="double"&&this._sliderRightInputElm)this._sliderRightInputElm.value=typeof e=="string"?e:`${a}`,this.renderSliderValues(void 0,this._sliderRightInputElm.value);else if(Array.isArray(l)&&l.length===2&&!((o=this.filterOptions)!=null&&o.hideSliderNumbers)){const[h,d]=l;this._sliderLeftInputElm&&(this._sliderLeftInputElm.value=String(h??R.SLIDER_DEFAULT_MIN_VALUE)),this._sliderRightInputElm&&(this._sliderRightInputElm.value=String(d??R.SLIDER_DEFAULT_MAX_VALUE)),this.renderSliderValues(...l)}}else this._currentValue=void 0,this._currentValues=void 0;const s=this.getValues(),n=s===void 0?[]:Array.isArray(s)?s:[s];if(this.updateFilterStyle(n.length>0),t!==void 0&&(this.operator=t),this.operator&&this._selectOperatorElm){const l=di(this.operator);this._selectOperatorElm.value=l}i&&this.callback(void 0,{columnDef:this.columnDef,operator:this.operator,searchTerms:n,shouldTriggerQuery:!0})}createDomFilterElement(e){var c,u,p,m,f;const t=((c=this.columnDef)==null?void 0:c.id)??"",i=+(this.columnFilter.minValue??R.SLIDER_DEFAULT_MIN_VALUE),s=+(this.columnFilter.maxValue??R.SLIDER_DEFAULT_MAX_VALUE),n=+(this.columnFilter.valueStep??R.SLIDER_DEFAULT_STEP);J(this._argFilterContainerElm);const o=+((Array.isArray(e)&&(e==null?void 0:e[0]))??((u=this.filterOptions)==null?void 0:u.sliderStartValue)??i),l=+((Array.isArray(e)&&(e==null?void 0:e[1]))??((p=this.filterOptions)==null?void 0:p.sliderEndValue)??s);if(this._sliderRangeContainElm=v("div",{className:`filter-input filter-${t} slider-input-container slider-values`,title:this.sliderType==="double"?`${o} - ${l}`:`${o}`}),this._sliderTrackElm=v("div",{className:"slider-track"}),this.sliderType==="compound"){const g=v("span",{className:"input-group-addon input-group-prepend operator"});this._selectOperatorElm=Fn(this.getOperatorOptionValues(),this.grid),g.appendChild(this._selectOperatorElm)}this.sliderType==="double"&&(this._sliderLeftInputElm=v("input",{type:"range",className:"slider-filter-input",ariaLabel:this.columnFilter.ariaLabel??`${_t(t+"")} Search Filter`,defaultValue:`${o}`,value:`${o}`,min:`${i}`,max:`${s}`,step:`${n}`}));const a=this.sliderType==="double"?l:o;this._sliderRightInputElm=v("input",{type:"range",className:"slider-filter-input",ariaLabel:this.columnFilter.ariaLabel??`${_t(t+"")} Search Filter`,defaultValue:`${a}`,value:`${a}`,min:`${i}`,max:`${s}`,step:`${n}`});const h=((m=this.filterOptions)==null?void 0:m.hideSliderNumber)??((f=this.filterOptions)==null?void 0:f.hideSliderNumbers),d=h?"":"input-group";if(this._divContainerFilterElm=v("div",{className:`${d} search-filter slider-container slider-values filter-${t}`.trim()}),this._sliderRangeContainElm.appendChild(this._sliderTrackElm),this.sliderType==="double"&&this._sliderLeftInputElm&&this._sliderRangeContainElm.appendChild(this._sliderLeftInputElm),this._sliderRangeContainElm.appendChild(this._sliderRightInputElm),h)this._divContainerFilterElm.appendChild(this._sliderRangeContainElm);else{let g;this.sliderType==="compound"&&this._selectOperatorElm?(g=v("span",{className:"input-group-addon input-group-prepend operator"}),g.appendChild(this._selectOperatorElm)):this.sliderType==="double"&&(g=v("div",{className:"input-group-addon input-group-prepend slider-range-value"}),this._leftSliderNumberElm=v("span",{className:`input-group-text lowest-range-${t}`,textContent:`${o}`}),g.appendChild(this._leftSliderNumberElm));const _=v("div",{className:"input-group-addon input-group-append slider-range-value"});this._rightSliderNumberElm=v("span",{className:`input-group-text highest-range-${t}`,textContent:`${a}`},_),g&&this._divContainerFilterElm.appendChild(g),this._divContainerFilterElm.appendChild(this._sliderRangeContainElm),this._divContainerFilterElm.appendChild(_)}return this._sliderOptions={minValue:i,maxValue:s,step:n},this._currentValues=[o,l],Array.isArray(e)&&e.length>0&&e[0]!==""&&(this.updateFilterStyle(!0),this._currentValue=o),(this.filterOptions.sliderStartValue!==void 0||this.columnFilter.minValue!==void 0)&&(this._currentValue=o),this._argFilterContainerElm.appendChild(this._divContainerFilterElm),this.updateTrackFilledColorWhenEnabled(),this._bindEventService.bind(this._sliderTrackElm,"click",this.sliderTrackClicked.bind(this)),this._bindEventService.bind(this._sliderRightInputElm,["input","change"],this.slideRightInputChanged.bind(this)),this._bindEventService.bind(this._sliderRightInputElm,["change","mouseup","touchend"],this.onValueChanged.bind(this)),this.sliderType==="compound"&&this._selectOperatorElm?this._bindEventService.bind(this._selectOperatorElm,["change"],this.onValueChanged.bind(this)):this.sliderType==="double"&&this._sliderLeftInputElm&&(this._bindEventService.bind(this._sliderLeftInputElm,["input","change"],this.slideLeftInputChanged.bind(this)),this._bindEventService.bind(this._sliderLeftInputElm,["change","mouseup","touchend"],this.onValueChanged.bind(this))),this._divContainerFilterElm}getOperatorOptionValues(){let e;return this.columnFilter.compoundOperatorList?e=this.columnFilter.compoundOperatorList:e=Dn(this.gridOptions,this.translaterService),Mn(this.gridOptions,e,"numeric"),e}onValueChanged(e){var n,o,l,a,h;const t=parseInt(((n=this._sliderRightInputElm)==null?void 0:n.value)??"",10);let i,s;if(this.sliderType==="compound"||this.sliderType==="single")((l=(o=e==null?void 0:e.target)==null?void 0:o.tagName)==null?void 0:l.toLowerCase())!=="select"&&(this._currentValue=+t),i=this._currentValue,s=[i||"0"];else if(this.sliderType==="double"){const c=[parseInt(((a=this._sliderLeftInputElm)==null?void 0:a.value)??"",10),t];i=c.join(".."),s=c}if(this._clearFilterTriggered)this.updateFilterStyle(!1),this.callback(e,{columnDef:this.columnDef,clearFilterTriggered:this._clearFilterTriggered,searchTerms:[],shouldTriggerQuery:this._shouldTriggerQuery});else{const d=((h=this._selectOperatorElm)==null?void 0:h.value)??this.operator;this.updateFilterStyle(i!=="");const c=this.columnFilter.skipCompoundOperatorFilterWithNullInput??this.gridOptions.skipCompoundOperatorFilterWithNullInput,u=c&&ie(this._currentValue)||!ie(this._currentValue)&&ie(this._lastSearchValue);(this.sliderType!=="compound"||!c||u)&&this.callback(e,{columnDef:this.columnDef,operator:d||"",searchTerms:s,shouldTriggerQuery:this._shouldTriggerQuery})}this._clearFilterTriggered=!1,this._shouldTriggerQuery=!0,this.changeBothSliderFocuses(!1),this.grid.onHeaderRowMouseEnter.notify({column:this.columnDef,grid:this.grid},new le(e)),this._lastSearchValue=i}changeBothSliderFocuses(e){var i,s;const t=e?"add":"remove";(i=this._sliderLeftInputElm)==null||i.classList[t]("focus"),(s=this._sliderRightInputElm)==null||s.classList[t]("focus")}slideLeftInputChanged(e){var s,n,o,l;const t=parseInt(((s=this._sliderLeftInputElm)==null?void 0:s.value)??"",10),i=parseInt(((n=this._sliderRightInputElm)==null?void 0:n.value)??"",10);this._sliderLeftInputElm&&i-t<=(((o=this.filterOptions)==null?void 0:o.stopGapBetweenSliderHandles)??Us)&&(this._sliderLeftInputElm.value=String(t-(((l=this.filterOptions)==null?void 0:l.stopGapBetweenSliderHandles)??Us))),this._sliderLeftInputElm&&this._sliderRightInputElm&&(+this._sliderLeftInputElm.value>=+this._sliderRightInputElm.value-ku?(this._sliderLeftInputElm.style.zIndex="1",this._sliderRightInputElm.style.zIndex="0"):(this._sliderLeftInputElm.style.zIndex="0",this._sliderRightInputElm.style.zIndex="1")),this.sliderLeftOrRightChanged(e,t,i)}slideRightInputChanged(e){var s,n,o,l;const t=parseInt(((s=this._sliderLeftInputElm)==null?void 0:s.value)??"",10),i=parseInt(((n=this._sliderRightInputElm)==null?void 0:n.value)??"",10);this.sliderType==="double"&&this._sliderRightInputElm&&i-t<=(((o=this.filterOptions)==null?void 0:o.stopGapBetweenSliderHandles)??Us)&&(this._sliderRightInputElm.value=String(t+(((l=this.filterOptions)==null?void 0:l.stopGapBetweenSliderHandles)??Us))),this.sliderLeftOrRightChanged(e,t,i)}sliderLeftOrRightChanged(e,t,i){var n,o,l,a,h,d;this.updateTrackFilledColorWhenEnabled(),this.changeBothSliderFocuses(!0),this._sliderRangeContainElm.title=this.sliderType==="double"?`${t} - ${i}`:`${i}`,(((n=this.filterOptions)==null?void 0:n.hideSliderNumber)??((o=this.filterOptions)==null?void 0:o.hideSliderNumbers))||((l=this._leftSliderNumberElm)!=null&&l.textContent&&(this._leftSliderNumberElm.textContent=((a=this._sliderLeftInputElm)==null?void 0:a.value)??""),(h=this._rightSliderNumberElm)!=null&&h.textContent&&(this._rightSliderNumberElm.textContent=((d=this._sliderRightInputElm)==null?void 0:d.value)??"")),this.grid.onHeaderRowMouseEnter.notify({column:this.columnDef,grid:this.grid},new le(e))}sliderTrackClicked(e){e.preventDefault();const t=e.offsetX,i=this._sliderTrackElm.offsetWidth,s=(t+0)*100/i;this._sliderRightInputElm&&this.sliderType!=="double"?(this._sliderRightInputElm.value=`${s}`,this._sliderRightInputElm.dispatchEvent(new Event("change"))):this._sliderLeftInputElm&&this._sliderRightInputElm&&(s<=50?(this._sliderLeftInputElm.value=`${s}`,this._sliderLeftInputElm.dispatchEvent(new Event("change"))):(this._sliderRightInputElm.value=`${s}`,this._sliderRightInputElm.dispatchEvent(new Event("change"))))}updateTrackFilledColorWhenEnabled(){var e,t,i,s;if((e=this.filterOptions)!=null&&e.enableSliderTrackColoring&&this._sliderRightInputElm){let n=0;this._sliderLeftInputElm&&(n=(+this._sliderLeftInputElm.value-+this._sliderLeftInputElm.min)/(((t=this.sliderOptions)==null?void 0:t.maxValue)??0-+this._sliderLeftInputElm.min)*100);const o=(+this._sliderRightInputElm.value-+this._sliderRightInputElm.min)/(((i=this.sliderOptions)==null?void 0:i.maxValue)??0-+this._sliderRightInputElm.min)*100,l="linear-gradient(to right, %b %p1, %c %p1, %c %p2, %b %p2)".replace(/%b/g,"#eee").replace(/%c/g,((s=this.filterOptions)==null?void 0:s.sliderTrackFilledColor)||this._sliderTrackFilledColor||vr).replace(/%p1/g,`${n}%`).replace(/%p2/g,`${o}%`);this._sliderTrackElm.style.background=l,this._sliderOptions.sliderTrackBackground=l}}updateFilterStyle(e){var t,i;e?(this._divContainerFilterElm.classList.add("filled"),(t=this._filterElm)==null||t.classList.add("filled")):(this._divContainerFilterElm.classList.remove("filled"),(i=this._filterElm)==null||i.classList.remove("filled"))}}class Fu extends br{constructor(e){super(e),this.translaterService=e,this.sliderType="compound"}}class Du extends _l{constructor(e){super(e),this.translaterService=e,this.inputFilterType="range"}}class Mu extends Ut{constructor(e){super(e),this.translaterService=e,this._inputMask="",this.inputType="text"}get inputMask(){return this._inputMask}init(e){var i,s,n,o;if(!e)throw new Error('[Slickgrid-Universal] A filter must always have an "init()" with valid arguments.');if(this.grid=e.grid,this.callback=e.callback,this.columnDef=e.columnDef,this.searchTerms=(e.hasOwnProperty("searchTerms")?e.searchTerms:[])||[],this._cellContainerElm=e.filterContainerElm,(s=(i=this.columnDef)==null?void 0:i.params)!=null&&s.mask?this._inputMask=this.columnDef.params.mask:(o=(n=this.columnFilter)==null?void 0:n.params)!=null&&o.mask&&(this._inputMask=this.columnFilter.params.mask),!this._inputMask)throw new Error(`[Slickgrid-Universal] The Filters.inputMask requires the mask to be passed in the filter params or the column definition params
|
|
16
|
+
You can fix this by setting your gridOption.autoResize.container`);this._resizeObserver||(this._resizeObserver=new ResizeObserver(()=>this.resizeObserverCallback())),this._resizeObserver.observe(this._pageContainerElm)}else{if(this._gridDomElm===void 0||me(this._gridDomElm)===void 0)return null;this.resizeGrid().then(()=>this.resizeGridWhenStylingIsBrokenUntilCorrected()).catch(i=>console.log("Error:",i)),this.resizeGrid(10,e),this._bindingEventService.bind(window,"resize",this.handleResizeGrid.bind(this,e))}}handleResizeGrid(e){this.pubSubService.publish("onGridBeforeResize"),this._resizePaused||(this.resizeGrid(0,e),this.resizeGrid(0,e))}resizeObserverCallback(){this._resizePaused||this.resizeGrid()}calculateGridNewDimensions(e){var f,g;const t=(e==null?void 0:e.autoResize)??{},i=me(this._gridDomElm);if(!window||i===void 0)return null;let s=(t==null?void 0:t.bottomPadding)!==void 0?t.bottomPadding:bu;if(s&&e.enablePagination&&(s+=yu),s&&e.showCustomFooter){const _=((g=(f=this.gridOptions)==null?void 0:f.customFooterOptions)==null?void 0:g.footerHeight)??Su;s+=parseInt(`${_}`,10)}let n=0,o=0;t.calculateAvailableSizeBy==="container"?n=ds(this._pageContainerElm,"height")||0:(n=window.innerHeight||0,o=(i==null?void 0:i.top)??0);const l=n-o-s,a=ds(this._pageContainerElm,"width")||window.innerWidth||0,h=t==null?void 0:t.maxHeight,d=(t==null?void 0:t.minHeight)??Eu,c=t==null?void 0:t.maxWidth,u=(t==null?void 0:t.minWidth)??wu;let p=l,m=t!=null&&t.rightPadding?a-t.rightPadding:a;return p<d&&(p=d),h&&p>h&&(p=h),m<u&&(m=u),c&&m>c&&(m=c),{height:this._fixedHeight||p,width:this._fixedWidth||m}}getLastResizeDimensions(){return this._lastDimensions}pauseResizer(e){this._resizePaused=e}resizeGrid(e,t){return new Promise(i=>{e=e||0,e>0?(clearTimeout(this._timer),this._timer=setTimeout(()=>i(this.resizeGridCallback(t)),e)):i(this.resizeGridCallback(t))})}resizeGridCallback(e){var i,s;const t=this.resizeGridWithDimensions(e);return this.pubSubService.publish("onGridAfterResize",t),this.gridOptions.enableAutoResizeColumnsByCellContent&&(!((i=this._lastDimensions)!=null&&i.width)||(t==null?void 0:t.width)!==((s=this._lastDimensions)==null?void 0:s.width))&&this.resizeColumnsByCellContent(!1),this._lastDimensions=t,t}resizeGridWithDimensions(e){var i,s,n,o;const t=this.calculateGridNewDimensions(this.gridOptions);if((e||t)&&this._gridDomElm){const l=e!=null&&e.height?e.height:t==null?void 0:t.height,a=e!=null&&e.width?e.width:t==null?void 0:t.width;this.gridOptions.autoHeight||(this._gridDomElm.style.height=`${l}px`),this._gridDomElm.style.width=`${a}px`,this._gridContainerElm&&(this._gridContainerElm.style.width=`${a}px`),(i=this._grid)!=null&&i.resizeCanvas&&this._gridContainerElm&&this._grid.resizeCanvas(),this._grid&&((s=this.gridOptions)!=null&&s.enableAutoSizeColumns)?this.gridUid&&document.querySelector(this.gridUidSelector)&&(!this._lastDimensions||this._lastDimensions.height!==l||this._lastDimensions.width!==a)&&this._grid.autosizeColumns():this.gridOptions.enableAutoResizeColumnsByCellContent&&(!((n=this._lastDimensions)!=null&&n.width)||a!==((o=this._lastDimensions)==null?void 0:o.width))&&this.resizeColumnsByCellContent(!1),this._lastDimensions={height:l||0,width:a||0}}return this._lastDimensions}requestStopOfAutoFixResizeGrid(e=!0){this._isStopResizeIntervalRequested=e}resizeColumnsByCellContent(e=!1){var h,d;const t=this._grid.getColumns(),i=this.dataView.getItems(),s={};let n=!1,o=0;const l=((h=this._gridContainerElm)==null?void 0:h.offsetWidth)??0;if(!Array.isArray(i)||i.length===0||!e&&this._totalColumnsWidthByContent>0&&this._totalColumnsWidthByContent<l){this._grid.autosizeColumns();return}if(this._hasResizedByContentAtLeastOnce&&((d=this.gridOptions)!=null&&d.resizeByContentOnlyOnFirstLoad)&&!e)return;if(this.pubSubService.publish("onBeforeResizeByContent",void 0,0),this._totalColumnsWidthByContent===0||e){for(const u of t)s[u.id]=u.originalWidth??u.minWidth??0;o=this.calculateCellWidthByReadingDataset(t,s,this.resizeByContentOptions.maxItemToInspectCellContentWidth);let c=0;for(const u of t){const p=u.resizeAlwaysRecalculateWidth??this.resizeByContentOptions.alwaysRecalculateColumnWidth??!1;u.originalWidth&&!p?u.width=u.originalWidth:s[u.id]!==void 0&&(u.rerenderOnResize&&(n=!0),this.applyNewCalculatedColumnWidthByReference(u,s[u.id])),c+=u.width||0,this._totalColumnsWidthByContent=c}}this._grid.setColumns(t),this._hasResizedByContentAtLeastOnce=!0;const a={};for(const c of t)a[c.id]=c.width;this._totalColumnsWidthByContent>l?this._grid.reRenderColumns(n):this._grid.autosizeColumns(),this.pubSubService.publish("onAfterResizeByContent",{readItemCount:o,calculateColumnWidths:a})}calculateCellWidthByReadingDataset(e,t,i=1e3,s){const n=Array.isArray(e)?e:[e],o=this.dataView.getItems();let l=0;for(const[a,h]of o.entries()){if(a>i)break;Array.isArray(n)&&typeof t=="object"&&n.forEach((d,c)=>{const u=this.calculateCellWidthByContent(h,d,a,s??c,t[d.id]);u!==void 0&&(t[d.id]=u)}),l=a+1}return l}calculateCellWidthByContent(e,t,i,s,n){const o=this.resizeByContentOptions.cellCharWidthInPx??7;if(!t.originalWidth){const l=(t==null?void 0:t.resizeCharWidthInPx)??o,a=zs(t==null?void 0:t.formatter,i,s,t,e,this._grid),h=Zt(a)?we(a):"",d=Math.ceil(h.length*l),c=t.resizeMaxWidthThreshold;t&&(n===void 0||d>n)&&(n=c!==void 0&&d>c?c:t.maxWidth!==void 0&&d>t.maxWidth?t.maxWidth:d)}return n}applyNewCalculatedColumnWidthByReference(e,t){var a;const i=this.resizeByContentOptions.cellPaddingWidthInPx??6,s=this.resizeByContentOptions.formatterPaddingWidthInPx??6,n=((a=e==null?void 0:e.filter)==null?void 0:a.type)??(e==null?void 0:e.type)??S.string;let o=t;const l=(e==null?void 0:e.resizeCalcWidthRatio)??this.resizeByContentOptions.defaultRatioForStringType??.9;o*=n==="string"?l:1,o+=i,e.resizeExtraWidthPadding&&(o+=e.resizeExtraWidthPadding),e.editor&&this.gridOptions.editable&&(o+=s),e.maxWidth!==void 0&&o>e.maxWidth&&(o=e.maxWidth),e.resizeMaxWidthThreshold!==void 0&&o>e.resizeMaxWidthThreshold&&(o=e.resizeMaxWidthThreshold),o=Math.ceil(o),(e.originalWidth===void 0||e.resizeAlwaysRecalculateWidth===!0||this.resizeByContentOptions.alwaysRecalculateColumnWidth===!0)&&(e.width=this.readjustNewColumnWidthWhenOverLimit(e,o))}handleSingleColumnResizeByContent(e){const t=this._grid.getColumns(),i=t.findIndex(s=>s.id===e);if(i>=0){const s=t[i],n={[e]:s.originalWidth??s.minWidth??0};s.originalWidth=void 0,this.calculateCellWidthByReadingDataset(s,n,this.resizeByContentOptions.maxItemToInspectSingleColumnWidthByContent,i),this.applyNewCalculatedColumnWidthByReference(s,n[e]),this._grid.reRenderColumns((s==null?void 0:s.rerenderOnResize)??!1)}}readjustNewColumnWidthWhenOverLimit(e,t){var o,l;const i=this.gridOptions.frozenColumn??-1,s=this._grid.getColumns().findIndex(a=>a.id===e.id)??0;let n=t;if(i>=0&&s<=i){const a=Array.from(this._grid.getViewports());if(a){const h=((o=a.find(m=>m.classList.contains("slick-viewport-left")))==null?void 0:o.clientWidth)??0,d=((l=a.find(m=>m.classList.contains("slick-viewport-right")))==null?void 0:l.clientWidth)??0,c=h+d,u=h-(e.width??0);if(u+t>c){const m=this.resizeByContentOptions.widthToRemoveFromExceededWidthReadjustment??50;n=h-u+d-m}}}return Math.ceil(n)}checkIsGridShown(){var e;return!!(((e=document.querySelector(`${this.gridUidSelector}`))==null?void 0:e.offsetParent)??!1)}resizeGridWhenStylingIsBrokenUntilCorrected(){var l,a;const e=((l=this.gridOptions)==null?void 0:l.autoFixResizeTimeout)??18e3,t=((a=this.gridOptions)==null?void 0:a.autoFixResizeRequiredGoodCount)??5,i=this._gridContainerElm.querySelector(`${this.gridUidSelector} .slick-header`),s=this._gridContainerElm.querySelector(`${this.gridUidSelector} .slick-viewport`);let n=0,o=0;if(i&&s&&this.gridOptions.autoFixResizeWhenBrokenStyleDetected){const h=this.dataView.getItemCount(),d=this._grid.getColumns()||[];this._intervalId=setInterval(async()=>{var C,E,y;const u=me(i);let p=(u==null?void 0:u.top)??0;(C=this.gridOptions)!=null&&C.enableFiltering&&this.gridOptions.headerRowHeight&&(p+=this.gridOptions.headerRowHeight),(E=this.gridOptions)!=null&&E.createPreHeaderPanel&&this.gridOptions.showPreHeaderPanel&&this.gridOptions.preHeaderPanelHeight&&(p+=this.gridOptions.preHeaderPanelHeight),p+=44;const m=me(s),f=(m==null?void 0:m.top)??0,g=me(this._gridContainerElm);let _=(u==null?void 0:u.top)===0||p-f>2||(g==null?void 0:g.left)===0&&(g==null?void 0:g.top)===0;const b=((y=this._grid.getRenderedRange())==null?void 0:y.rightPx)??0;!_&&h>0&&b===0&&d.length>1&&(_=!0),this._isStopResizeIntervalRequested&&(_=!1,n=e),this.checkIsGridShown()&&(_||(g==null?void 0:g.left)===0||(g==null?void 0:g.top)===0)&&(await this.resizeGrid(),o<5&&this._grid.updateColumns(),this.checkIsGridShown()&&(_=!1)),this.checkIsGridShown()&&o++,this.checkIsGridShown()&&!_&&(o>=t||n++>=e)&&clearInterval(this._intervalId)},this.intervalRetryDelay)}}}class xu{constructor(){this._hasColumnsReordered=!1,this._hideHeaderRowAfterPageLoad=!1}get allColumns(){return this._allColumns}set allColumns(e){this._allColumns=e}get columnDefinitions(){var e;return((e=this._grid)==null?void 0:e.getColumns())??[]}get currentPagination(){return this._currentPagination}set currentPagination(e){this._currentPagination=e}get dataView(){return this._dataView}set dataView(e){this._dataView=e}get frozenVisibleColumnId(){return this._frozenVisibleColumnId}set frozenVisibleColumnId(e){this._frozenVisibleColumnId=e}get hasColumnsReordered(){return this._hasColumnsReordered}set hasColumnsReordered(e){this._hasColumnsReordered=e}get slickGrid(){return this._grid}set slickGrid(e){this._grid=e}get gridContainerElement(){return this._gridContainerElm}set gridContainerElement(e){this._gridContainerElm=e}get gridOptions(){var e;return this._gridOptions||((e=this._grid)==null?void 0:e.getOptions())||{}}set gridOptions(e){this._gridOptions=e}get groupItemMetadataProvider(){return this._groupItemMetadataProvider}set groupItemMetadataProvider(e){this._groupItemMetadataProvider=e}get hideHeaderRowAfterPageLoad(){return this._hideHeaderRowAfterPageLoad}set hideHeaderRowAfterPageLoad(e){this._hideHeaderRowAfterPageLoad=e}get externalRegisteredResources(){return this._externalRegisteredResources}set externalRegisteredResources(e){this._externalRegisteredResources=e}get visibleColumns(){return this._visibleColumns}set visibleColumns(e){this._visibleColumns=e}get hierarchicalDataset(){return this._hierarchicalDataset}set hierarchicalDataset(e){this._hierarchicalDataset=e}}class Iu{constructor(e,t,i,s){this.sharedService=e,this.pubSubService=t,this.backendUtilities=i,this.rxjs=s,this._currentLocalSorters=[],this._isBackendGrid=!1,this._eventHandler=new pe,this.rxjs&&(this.httpCancelRequests$=this.rxjs.createSubject())}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())??[]}dispose(){var e,t;(e=this._eventHandler)!=null&&e.unsubscribeAll&&this._eventHandler.unsubscribeAll(),this.httpCancelRequests$&&((t=this.rxjs)!=null&&t.isObservable(this.httpCancelRequests$))&&(this.httpCancelRequests$.next(),this.httpCancelRequests$.complete())}addRxJsResource(e){this.rxjs=e}bindBackendOnSort(e){this._isBackendGrid=!0,this._grid=e,this._dataView=e==null?void 0:e.getData(),this._eventHandler.subscribe(e.onSort,this.onBackendSortChanged.bind(this))}bindLocalOnSort(e){this._isBackendGrid=!1,this._grid=e,this._dataView=e==null?void 0:e.getData(),this.processTreeDataInitialSort(),this._eventHandler.subscribe(e.onSort,this.handleLocalOnSort.bind(this))}handleLocalOnSort(e,t){var s;const i=t.multiColumnSort?t.sortCols:new Array({columnId:((s=t.sortCol)==null?void 0:s.id)??"",sortAsc:t.sortAsc,sortCol:t.sortCol});this._currentLocalSorters=[],Array.isArray(i)&&i.forEach(n=>{n.sortCol&&this._currentLocalSorters.push({columnId:n.sortCol.id,direction:n.sortAsc?dt.ASC:dt.DESC})}),this.onLocalSortChanged(this._grid,i),this.emitSortChanged(oe.local)}clearSortByColumnId(e,t){var n;const i=this.getCurrentColumnSorts(),s=this.getCurrentColumnSorts(`${t}`);if(Array.isArray(i)&&Array.isArray(s)&&i.length!==s.length){if(this._gridOptions.backendServiceApi)this.onBackendSortChanged(e,{multiColumnSort:!0,sortCols:s,grid:this._grid});else if(this._dataView)this.onLocalSortChanged(this._grid,s,!0,!0);else{const a=((n=this._gridOptions)==null?void 0:n.multiColumnSort)??!1?s:s[0];this._grid.onSort.notify(a)}const o=s.map(l=>{var a;return{columnId:((a=l==null?void 0:l.sortCol)==null?void 0:a.id)??"",sortAsc:l==null?void 0:l.sortAsc,sortCol:l==null?void 0:l.sortCol}});this._grid.setSortColumns(o)}Array.isArray(s)&&s.length===0&&this.sortLocalGridByDefaultSortFieldId()}clearSorting(e=!0){var t,i;if(this._grid&&this._gridOptions&&this._dataView){if(this._grid.setSortColumns([]),e)this._isBackendGrid?this.onBackendSortChanged(void 0,{grid:this._grid,multiColumnSort:!0,sortCols:[],clearSortTriggered:!0}):this._columnDefinitions&&Array.isArray(this._columnDefinitions)&&this._columnDefinitions.length>0&&this.sortLocalGridByDefaultSortFieldId();else if(this._isBackendGrid){const s=(i=(t=this._gridOptions)==null?void 0:t.backendServiceApi)==null?void 0:i.service;s!=null&&s.clearSorters&&s.clearSorters()}}this._currentLocalSorters=[],this.pubSubService.publish("onSortCleared",!0)}disableSortFunctionality(e=!0,t=!0){const s=!this._gridOptions.enableSorting;this._gridOptions.enableSorting=s;let n;e?(t&&this.clearSorting(),this._eventHandler.unsubscribeAll(),n=this.disableAllSortingCommands(!0)):(n=this.disableAllSortingCommands(!1),this._eventHandler.subscribe(this._grid.onSort,(o,l)=>this.handleLocalOnSort(o,l))),this._grid.setOptions({enableSorting:this._gridOptions.enableSorting},!1,!0),this.sharedService.gridOptions=this._gridOptions,this._grid.setColumns(n)}toggleSortFunctionality(e=!0){const t=this._gridOptions.enableSorting;this.disableSortFunctionality(t,e)}emitSortChanged(e,t){var i;if(e===oe.remote&&((i=this._gridOptions)!=null&&i.backendServiceApi)){let s=[];const n=this._gridOptions.backendServiceApi.service;n!=null&&n.getCurrentSorters&&(s=n.getCurrentSorters()),this.pubSubService.publish("onSortChanged",s)}else e===oe.local&&(t&&(this._currentLocalSorters=t),this.pubSubService.publish("onSortChanged",this.getCurrentLocalSorters()))}getCurrentLocalSorters(){return this._currentLocalSorters}getCurrentColumnSorts(e){if(this._grid){const t=this._grid.getSortColumns();if(Array.isArray(t))return t.reduce((s,n)=>(n&&(!e||n.columnId!==e)&&s.push({columnId:n.columnId||"",sortCol:this._columnDefinitions[this._grid.getColumnIndex(n.columnId||"")],sortAsc:n.sortAsc}),s),[])}return[]}loadGridSorters(e){this._currentLocalSorters=[];const t=[];return Array.isArray(e)&&((this._gridOptions.multiColumnSort?e:e.slice(0,1)).forEach(s=>{const n=this._columnDefinitions.find(o=>o.id===s.columnId);if(n){if(!n.sortable){let o="[Slickgrid-Universal] Cannot add sort icon to a column that is not sortable, please add `sortable: true` to your column or remove it from your list of columns to sort.";throw this._gridOptions.enableTreeData&&(o+=" Also note that TreeData feature requires the column holding the tree (expand/collapse icons) to be sortable."),new Error(o)}t.push({columnId:n.id,sortAsc:s.direction.toUpperCase()===dt.ASC,sortCol:n}),this._currentLocalSorters.push({columnId:String(n.id),direction:s.direction.toUpperCase()})}}),this.onLocalSortChanged(this._grid,t),this._grid.setSortColumns(t.map(s=>({columnId:s.columnId,sortAsc:s.sortAsc})))),t}processTreeDataInitialSort(){var e,t,i;if((e=this._gridOptions)!=null&&e.enableTreeData&&this._gridOptions.treeDataOptions){const s=this._gridOptions.treeDataOptions,n=this._columnDefinitions.find(o=>o.id===s.columnId);if(n){let o=dt.ASC,l={columnId:s.columnId,sortCol:n,sortAsc:!0};if((t=s==null?void 0:s.initialSort)!=null&&t.columnId){const a=s.initialSort.columnId,h=this._columnDefinitions.find(d=>d.id===a);o=(s.initialSort.direction||dt.ASC).toUpperCase(),l={columnId:a,sortCol:h,sortAsc:o===dt.ASC}}l!=null&&l.columnId&&((i=this.sharedService)!=null&&i.hierarchicalDataset)&&this.updateSorting([{columnId:l.columnId||"",direction:o}])}}}onBackendSortChanged(e,t){var a,h,d;if(!t||!t.grid)throw new Error('Something went wrong when trying to bind the "onBackendSortChanged(event, args)" function, it seems that "args" is not populated correctly');const i=((a=t.grid)==null?void 0:a.getOptions())??{},s=i.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;s.preProcess&&s.preProcess();const o=s.service.processOnSortChanged(e,t),l=((h=i==null?void 0:i.pagination)==null?void 0:h.totalItems)||0;(d=this.backendUtilities)==null||d.executeBackendCallback(s,o,t,n,l,{emitActionChangedCallback:this.emitSortChanged.bind(this),errorCallback:()=>{var u,p,m;this._grid.setSortColumns(t.previousSortColumns||[]);const c=(u=t.previousSortColumns)==null?void 0:u.map(f=>({columnId:f.columnId,sortAsc:f.sortAsc,sortCol:this._columnDefinitions.find(g=>g.id===f.columnId)}));(m=(p=s==null?void 0:s.service)==null?void 0:p.updateSorters)==null||m.call(p,c||[])},httpCancelRequestSubject:this.httpCancelRequests$})}async onLocalSortChanged(e,t,i=!1,s=!1){var a,h;const n=((a=this._gridOptions)==null?void 0:a.datasetIdPropertyName)??"id",o=((h=this._gridOptions)==null?void 0:h.enableTreeData)??!1,l=e.getData();if(await this.pubSubService.publish("onBeforeSortChange",{sortColumns:t},0),e&&l){if(i&&!o&&l.reSort(),o&&this.sharedService&&Array.isArray(this.sharedService.hierarchicalDataset)){const d=this.sortHierarchicalDataset(this.sharedService.hierarchicalDataset,t);this._dataView.setItems(d.flat,n),this._dataView.onRowCountChanged.notify({previous:this._dataView.getFilteredItemCount(),current:this._dataView.getLength(),itemCount:this._dataView.getItemCount(),dataView:this._dataView,callingOnRowsChanged:!0})}else l.sort(this.sortComparers.bind(this,t));e.invalidate(),s&&this.emitSortChanged(oe.local,t.map(d=>{var c;return{columnId:((c=d.sortCol)==null?void 0:c.id)??"id",direction:d.sortAsc?dt.ASC:dt.DESC}}))}}sortHierarchicalDataset(e,t,i=!1){var a,h,d;this.sortTreeData(e,t);const s=((a=this._gridOptions)==null?void 0:a.datasetIdPropertyName)??"id",n=((h=this._gridOptions)==null?void 0:h.treeDataOptions)??{columnId:""},o={...n,identifierPropName:n.identifierPropName??s,shouldAddTreeLevelNumber:!0},l=to(e,o);if(i){this._currentLocalSorters=[],t.forEach(u=>{this._currentLocalSorters.push({columnId:u.columnId,direction:u.sortAsc?"ASC":"DESC"})});const c=(d=this._gridOptions)!=null&&d.backendServiceApi?oe.remote:oe.local;this.emitSortChanged(c)}return{hierarchical:e,flat:l}}sortLocalGridByDefaultSortFieldId(){const e=this._gridOptions&&this._gridOptions.defaultColumnSortFieldId||this._gridOptions.datasetIdPropertyName||"id",t={id:e,field:e};this.onLocalSortChanged(this._grid,new Array({columnId:t.id,sortAsc:!0,sortCol:t,clearSortTriggered:!0}),!1,!0)}sortComparers(e,t,i){if(Array.isArray(e))for(const s of e){const n=this.sortComparer(s,t,i);if(n!==void 0)return n}return ae.neutral}sortComparer(e,t,i,s){if(e!=null&&e.sortCol){const n=e.sortCol,o=e.sortAsc?ae.asc:ae.desc;let l=s||n.queryFieldSorter||n.queryField||n.field,a=l;const h=n.type||S.string;typeof n.queryFieldNameGetterFn=="function"&&(l=n.queryFieldNameGetterFn(t),a=n.queryFieldNameGetterFn(i));let d=t[l],c=i[a];if((l==null?void 0:l.indexOf("."))>=0&&(d=Ee(t,l)),(a==null?void 0:a.indexOf("."))>=0&&(c=Ee(i,a)),n.sortComparer){const u=n.sortComparer(d,c,o,n,this._gridOptions);if(u!==ae.neutral)return u}else{const u=mi(h,d,c,o,n,this._gridOptions);if(u!==ae.neutral)return u}}}sortTreeData(e,t){Array.isArray(t)&&t.forEach(i=>{this.sortTreeChildren(e,i,0)})}sortTreeChildren(e,t,i){var o;const s=(o=this._gridOptions)==null?void 0:o.treeDataOptions,n=(s==null?void 0:s.childrenPropName)??"children";e.sort((l,a)=>this.sortComparer(t,l,a)??ae.neutral),e.forEach(l=>{l&&l.hasOwnProperty(n)&&Array.isArray(l[n])&&(i++,this.sortTreeChildren(l[n],t,i),i--)})}updateSorting(e,t=!0,i=!0){var s,n;if(!this._gridOptions||!this._gridOptions.enableSorting)throw new Error('[Slickgrid-Universal] in order to use "updateSorting" method, you need to have Sortable Columns defined in your grid and "enableSorting" set in your Grid Options');if(Array.isArray(e)){const o=(s=this._gridOptions)==null?void 0:s.backendServiceApi;if(o){const l=o==null?void 0:o.service;l!=null&&l.updateSorters&&(l.updateSorters(void 0,e),i&&((n=this.backendUtilities)==null||n.refreshBackendDataset(this._gridOptions)))}else this.loadGridSorters(e);if(t){const l=o?oe.remote:oe.local;this.emitSortChanged(l)}}}disableAllSortingCommands(e=!0){var s,n;const t=this._grid.getColumns();t.forEach(o=>{var l,a;o.sortable!==void 0&&(o.sortable=!e),(l=o==null?void 0:o.header)!=null&&l.menu&&((a=o.header.menu.commandItems)==null||a.forEach(h=>{if(h&&typeof h!="string"){const d=h.command;(d==="sort-asc"||d==="sort-desc"||d==="clear-sort")&&(h.hidden=e)}}))});const i=(n=(s=this._gridOptions)==null?void 0:s.gridMenu)==null?void 0:n.commandItems;return i&&i.forEach(o=>{o&&typeof o!="string"&&o.command==="clear-sorting"&&(o.hidden=e)}),t}}class Ru{constructor(e,t,i){this.pubSubService=e,this.sharedService=t,this.sortService=i,this._currentToggledItems=[],this._isLastFullToggleCollapsed=!1,this._isOneCpuCyclePassed=!1,this._isTreeDataEnabled=!1,this._subscriptions=[],this._treeDataRecalcHandler=null,this._eventHandler=new pe,setTimeout(()=>this._isOneCpuCyclePassed=!0)}set currentToggledItems(e){this._currentToggledItems=e}get dataset(){var e;return(e=this.dataView)==null?void 0:e.getItems()}get datasetHierarchical(){return this.sharedService.hierarchicalDataset}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 treeDataOptions(){return this.gridOptions.treeDataOptions}dispose(){this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}init(e){var t,i,s,n,o,l,a,h;if(this._grid=e,this._isTreeDataEnabled=((t=this.gridOptions)==null?void 0:t.enableTreeData)??!1,this._isLastFullToggleCollapsed=((i=this.treeDataOptions)==null?void 0:i.initiallyCollapsed)??!1,this._currentToggledItems=((n=(s=this.gridOptions.presets)==null?void 0:s.treeData)==null?void 0:n.toggledItems)??[],this._lastToggleStateChange={type:this._isLastFullToggleCollapsed?"full-collapse":"full-expand",previousFullToggleType:this._isLastFullToggleCollapsed?"full-collapse":"full-expand",toggledItems:this._currentToggledItems},this._isTreeDataEnabled){if((o=this.gridOptions)!=null&&o.multiColumnSort)throw new Error('[Slickgrid-Universal] It looks like you are trying to use Tree Data with multi-column sorting, unfortunately it is not supported because of its complexity, you can disable it via "multiColumnSort: false" grid option and/or help in providing support for this feature.');if(!((l=this.gridOptions)!=null&&l.enableFiltering))throw new Error('[Slickgrid-Universal] It looks like you are trying to use Tree Data without using the filtering option, unfortunately that is not possible with Tree Data since it relies heavily on the filters to expand/collapse the tree. You need to enable it via "enableFiltering: true"');if((a=this.gridOptions)!=null&&a.backendServiceApi||(h=this.gridOptions)!=null&&h.enablePagination)throw new Error("[Slickgrid-Universal] It looks like you are trying to use Tree Data with Pagination and/or a Backend Service (OData, GraphQL) but unfortunately that is simply not supported because of its complexity.");if(!this.gridOptions.treeDataOptions||!this.gridOptions.treeDataOptions.columnId)throw new Error('[Slickgrid-Universal] When enabling tree data, you must also provide the "treeDataOption" property in your Grid Options with "childrenPropName" or "parentPropName" (depending if your array is hierarchical or flat) for the Tree Data to work properly.')}this._eventHandler.subscribe(e.onClick,this.handleOnCellClick.bind(this)),this._subscriptions.push(this.pubSubService.subscribe("onGridMenuClearAllSorting",this.clearSorting.bind(this))),this._treeDataRecalcHandler=this.setAutoRecalcTotalsCallbackWhenFeatEnabled(this.gridOptions),this._eventHandler.subscribe(this.dataView.onRowCountChanged,()=>{var d;typeof this._treeDataRecalcHandler=="function"&&this._isOneCpuCyclePassed&&(clearTimeout(this._timer),this._timer=setTimeout(()=>{var c;return(c=this._treeDataRecalcHandler)==null?void 0:c.call(this)},((d=this.treeDataOptions)==null?void 0:d.autoRecalcTotalsDebounce)??0))})}applyToggledItemStateChanges(e,t,i=!0,s=!1){if(Array.isArray(e)){const n=this.getTreeDataOptionPropName("collapsedPropName"),o=this.getTreeDataOptionPropName("hasChildrenPropName");this.dataView.beginUpdate(!0);const a=(t??this._lastToggleStateChange.previousFullToggleType)==="full-collapse";t&&(this._lastToggleStateChange.previousFullToggleType=t),i&&(this.dataView.getItems()||[]).forEach(h=>{h[o]&&(h[n]=a)}),this.dynamicallyToggleItemState(e,s)}}dynamicallyToggleItemState(e,t=!0){Array.isArray(e)&&(this.dataView.beginUpdate(!0),e.forEach(i=>{const s=this.dataView.getItemById(i.itemId);if(this.updateToggledItem(s,i.isCollapsed),t){const n=this._currentToggledItems.findIndex(o=>o.itemId===i.itemId);n>=0?this._currentToggledItems[n].isCollapsed=i.isCollapsed:this._currentToggledItems.push({itemId:i.itemId,isCollapsed:i.isCollapsed}),this.pubSubService.publish("onTreeItemToggled",{...this._lastToggleStateChange,fromItemId:i.itemId,toggledItems:this._currentToggledItems,type:i.isCollapsed?Tt.toggleCollapse:Tt.toggleExpand})}}),this.dataView.endUpdate(),this.dataView.refresh())}getCurrentToggleState(){return this._lastToggleStateChange}getInitialSort(e,t){var o;const i=t==null?void 0:t.treeDataOptions,s=(i==null?void 0:i.initialSort)??{columnId:(i==null?void 0:i.columnId)??"",direction:"ASC"},n=e.find(l=>l.id===s.columnId);return{columnId:s.columnId,sortAsc:((o=s==null?void 0:s.direction)==null?void 0:o.toUpperCase())!=="DESC",sortCol:n}}getItemCount(e){if(e!==void 0){const t=this.getTreeDataOptionPropName("levelPropName");return this.dataView.getItems().filter(i=>i[t]===e).length}return this.dataView.getItemCount()}getToggledItems(){return this._currentToggledItems}getTreeDataOptionPropName(e){var i,s,n,o,l,a,h;let t="";switch(e){case"childrenPropName":t=((i=this.treeDataOptions)==null?void 0:i.childrenPropName)??R.treeDataProperties.CHILDREN_PROP;break;case"collapsedPropName":t=((s=this.treeDataOptions)==null?void 0:s.collapsedPropName)??R.treeDataProperties.COLLAPSED_PROP;break;case"hasChildrenPropName":t=((n=this.treeDataOptions)==null?void 0:n.hasChildrenPropName)??R.treeDataProperties.HAS_CHILDREN_PROP;break;case"identifierPropName":t=((o=this.treeDataOptions)==null?void 0:o.identifierPropName)??((l=this.gridOptions)==null?void 0:l.datasetIdPropertyName)??"id";break;case"levelPropName":t=((a=this.treeDataOptions)==null?void 0:a.levelPropName)??R.treeDataProperties.TREE_LEVEL_PROP;break;case"parentPropName":t=((h=this.treeDataOptions)==null?void 0:h.parentPropName)??R.treeDataProperties.PARENT_PROP;break}return t}clearSorting(){const e=this.getInitialSort(this.sharedService.columnDefinitions,this.sharedService.gridOptions);this.sortService.loadGridSorters([{columnId:e.columnId,direction:e.sortAsc?"ASC":"DESC"}])}convertFlatParentChildToTreeDatasetAndSort(e,t,i,s){var a;const n=this.convertFlatParentChildToTreeDataset(e,i),o=Array.isArray(s)&&s.length?s[0]:this.getInitialSort(t,i),l=this.sortService.sortHierarchicalDataset(n,[o],!0);return(a=this._grid)==null||a.setSortColumns([o]),l}convertFlatParentChildToTreeDataset(e,t){const i=(t==null?void 0:t.datasetIdPropertyName)??"id",s=(t==null?void 0:t.treeDataOptions)??{columnId:"id"},n={...s,identifierPropName:s.identifierPropName??i,initiallyCollapsed:this._isLastFullToggleCollapsed};return io(e,n)}enableAutoRecalcTotalsFeature(e=!0){e&&this._isTreeDataEnabled?this._treeDataRecalcHandler=this.recalculateTreeTotals.bind(this,this.gridOptions):this._treeDataRecalcHandler=null}recalculateTreeTotals(e){const t=e.treeDataOptions,i=(t==null?void 0:t.childrenPropName)??R.treeDataProperties.CHILDREN_PROP,s=(t==null?void 0:t.levelPropName)??R.treeDataProperties.TREE_LEVEL_PROP;t!=null&&t.aggregators&&(t.aggregators.forEach(n=>{Fi(this.sharedService.hierarchicalDataset||[],{childrenPropName:i,levelPropName:s,aggregator:n})}),this._grid.invalidate())}sortHierarchicalDataset(e,t){const i=t??this.getInitialSort(this.sharedService.allColumns,this.gridOptions),s=Array.isArray(i)?i:[i];return this.sortService.sortHierarchicalDataset(e,s)}async toggleTreeDataCollapse(e,t=!0){var s;if((s=this.gridOptions)!=null&&s.enableTreeData){const n=this.getTreeDataOptionPropName("hasChildrenPropName");t&&await this.pubSubService.publish("onTreeFullToggleStart",{collapsing:e}),this.dataView.beginUpdate(!0),(this.dataView.getItems()||[]).forEach(o=>{o[n]&&this.updateToggledItem(o,e)}),this.dataView.endUpdate(),this.dataView.refresh(),this._isLastFullToggleCollapsed=e}const i=e?Tt.fullCollapse:Tt.fullExpand;this._lastToggleStateChange={type:i,previousFullToggleType:i,toggledItems:null},t&&this.pubSubService.publish("onTreeFullToggleEnd",this._lastToggleStateChange)}handleOnCellClick(e,t){if(e&&t){const i=e.target||{},s=this.gridOptions.datasetIdPropertyName??"id",n=this.getTreeDataOptionPropName("collapsedPropName"),o=this.getTreeDataOptionPropName("childrenPropName");if(typeof(i==null?void 0:i.className)=="string"&&(i.className.indexOf("toggle")>=0||!1)){const a=this.dataView.getItem(t.row);if(a){a[n]=!a[n];const h=a[n],d=a[s],c=this._currentToggledItems.findIndex(m=>m.itemId===d);c>=0?this._currentToggledItems[c].isCollapsed=h:this._currentToggledItems.push({itemId:d,isCollapsed:h}),this.dataView.updateItem(d,a);const u=m=>m[s]===d,p=Di(this.sharedService.hierarchicalDataset||[],u,o);p&&(p[n]=h),this._grid.invalidate(),this._lastToggleStateChange={type:h?Tt.toggleCollapse:Tt.toggleExpand,previousFullToggleType:this._isLastFullToggleCollapsed?"full-collapse":"full-expand",toggledItems:this._currentToggledItems},this.pubSubService.publish("onTreeItemToggled",{...this._lastToggleStateChange,fromItemId:d})}e.stopImmediatePropagation()}}}updateToggledItem(e,t){var o;const i=((o=this.gridOptions)==null?void 0:o.datasetIdPropertyName)??"id",s=this.getTreeDataOptionPropName("childrenPropName"),n=this.getTreeDataOptionPropName("collapsedPropName");if(e){e[n]=t,this.dataView.updateItem(e[i],e);const l=h=>h[i]===e[i],a=Di(this.sharedService.hierarchicalDataset||[],l,s);a&&(a[n]=t)}}setAutoRecalcTotalsCallbackWhenFeatEnabled(e){var t,i;return e!=null&&e.enableTreeData&&((t=e==null?void 0:e.treeDataOptions)!=null&&t.autoRecalcTotalsOnFilterChange)&&((i=e==null?void 0:e.treeDataOptions)!=null&&i.aggregators)?this.recalculateTreeTotals.bind(this,e):null}}class Ut{constructor(e){this.translaterService=e,this._debounceTypingDelay=0,this._shouldTriggerQuery=!0,this._inputType="text",this.inputFilterType="single",this.searchTerms=[],this._bindEventService=new Ae}get columnFilter(){var e;return((e=this.columnDef)==null?void 0:e.filter)??{}}get defaultOperator(){return H.empty}get inputType(){return this._inputType}set inputType(e){this._inputType=e}get operator(){var e;return((e=this.columnFilter)==null?void 0:e.operator)??this.defaultOperator}set operator(e){this.columnFilter&&(this.columnFilter.operator=e)}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())??{}}init(e){var s,n,o;if(!e)throw new Error('[Slickgrid-Universal] A filter must always have an "init()" with valid arguments.');this.grid=e.grid,this.callback=e.callback,this.columnDef=e.columnDef,this.inputFilterType==="compound"&&(this.operator=e.operator||""),this.searchTerms=(e==null?void 0:e.searchTerms)??[],this._cellContainerElm=e.filterContainerElm;const t=(s=this.gridOptions)==null?void 0:s.backendServiceApi;this._debounceTypingDelay=(t?(t==null?void 0:t.filterTypingDebounce)??((n=this.gridOptions)==null?void 0:n.defaultBackendServiceFilterTypingDebounce):(o=this.gridOptions)==null?void 0:o.filterTypingDebounce)??0;const i=Array.isArray(this.searchTerms)&&this.searchTerms.length>=0?this.searchTerms[0]:"";this.createDomFilterElement(i),this._bindEventService.bind(this._filterInputElm,["keyup","blur","change"],this.onTriggerEvent.bind(this)),this._bindEventService.bind(this._filterInputElm,"wheel",this.onTriggerEvent.bind(this),{passive:!0}),this.inputFilterType==="compound"&&this._selectOperatorElm&&this._bindEventService.bind(this._selectOperatorElm,"change",this.onTriggerEvent.bind(this))}clear(e=!0){this._filterInputElm&&(this._shouldTriggerQuery=e,this.searchTerms=[],this._filterInputElm.value="",this._currentValue=void 0,this.updateFilterStyle(!1),this.inputFilterType==="compound"&&this._selectOperatorElm&&(this._selectOperatorElm.selectedIndex=0),this.onTriggerEvent(void 0,!0))}destroy(){var e,t,i,s;this._bindEventService.unbindAll(),(t=(e=this._selectOperatorElm)==null?void 0:e.remove)==null||t.call(e),(s=(i=this._filterInputElm)==null?void 0:i.remove)==null||s.call(i)}getValues(){return this._filterInputElm.value}setValues(e,t,i=!1){const s=Array.isArray(e)?e:[e];let n="";for(const o of s)this.inputFilterType==="single"?n=t?this.addOptionalOperatorIntoSearchString(o,t):o:n=`${o}`,this._filterInputElm.value=`${n??""}`,this._currentValue=this._filterInputElm.value;if(this.updateFilterStyle(this.getValues()!==""),this.operator=t||this.defaultOperator,t&&this._selectOperatorElm){const o=di(this.operator);this._selectOperatorElm.value=o}i&&this.onTriggerEvent(void 0,!1)}addOptionalOperatorIntoSearchString(e,t){let i="",s="",n=e==null?"":`${e}`;if(t&&n){switch(t){case"<>":case"!=":case"=":case"==":case">":case">=":case"<":case"<=":i=t;break;case"EndsWith":case"*z":i="*";break;case"StartsWith":case"a*":s="*";break}n=`${i}${n}${s}`}return n}getCompoundOperatorOptionValues(){var s;const e=this.columnDef.type&&this.columnDef.type?this.columnDef.type:S.string;let t,i="text";if((s=this.columnFilter)!=null&&s.compoundOperatorList)t=this.columnFilter.compoundOperatorList;else switch(e){case S.string:case S.text:case S.readonly:case S.password:i="text",t=qh(this.gridOptions,this.translaterService);break;default:i="numeric",t=Dn(this.gridOptions,this.translaterService);break}return Mn(this.gridOptions,t,i),t}createDomFilterElement(e){var n,o,l,a;const t=((n=this.columnDef)==null?void 0:n.id)??"";J(this._cellContainerElm);let i=((o=this.gridOptions)==null?void 0:o.defaultFilterPlaceholder)??"";(l=this.columnFilter)!=null&&l.placeholder&&(i=this.columnFilter.placeholder);const s=`${e??""}`;if(this._filterInputElm=v("input",{type:this._inputType||"text",autocomplete:"off",ariaAutoComplete:"none",placeholder:i,ariaLabel:((a=this.columnFilter)==null?void 0:a.ariaLabel)??`${_t(t+"")} Search Filter`,className:`form-control filter-${t}`,value:s,dataset:{columnid:`${t}`}}),this.updateFilterStyle(!!e),e!==void 0&&(this._currentValue=s),this.inputFilterType==="single")this._filterContainerElm=this._filterInputElm,this._filterInputElm.classList.add("search-filter"),this._cellContainerElm.appendChild(this._filterInputElm),this._cellContainerElm.appendChild(document.createElement("span"));else{this._filterInputElm.classList.add("compound-input"),this._selectOperatorElm=Fn(this.getCompoundOperatorOptionValues(),this.grid),this._filterContainerElm=v("div",{className:`form-group search-filter filter-${t}`});const h=v("div",{className:"input-group"},this._filterContainerElm);v("div",{className:"input-group-addon input-group-prepend operator"},h).appendChild(this._selectOperatorElm),h.appendChild(this._filterInputElm),h.appendChild(v("span")),this.operator&&(this._selectOperatorElm.value=di(this.operator)),this._filterContainerElm&&this._cellContainerElm.appendChild(this._filterContainerElm)}}onTriggerEvent(e,t=!1){var i,s;if(t)this.callback(e,{columnDef:this.columnDef,clearFilterTriggered:t,shouldTriggerQuery:this._shouldTriggerQuery}),this.updateFilterStyle(!1);else{const n=(e==null?void 0:e.type)??"",o=((i=this._selectOperatorElm)==null?void 0:i.value)??this.operator;let l=this._filterInputElm.value;const a=this.gridOptions.enableFilterTrimWhiteSpace||this.columnFilter.enableTrimWhiteSpace;typeof l=="string"&&a&&(l=l.trim()),((s=e==null?void 0:e.target)==null?void 0:s.tagName.toLowerCase())!=="select"&&(this._currentValue=l),this.updateFilterStyle(l!=="");const h={columnDef:this.columnDef,operator:o,searchTerms:l?[l]:null,shouldTriggerQuery:this._shouldTriggerQuery},d=n==="keyup"&&(e==null?void 0:e.key)!=="Enter"?this._debounceTypingDelay:0,c=this.columnFilter.skipCompoundOperatorFilterWithNullInput??this.gridOptions.skipCompoundOperatorFilterWithNullInput,u=c&&ie(this._currentValue)||this._currentValue===""&&ie(this._lastSearchValue);(this.inputFilterType==="single"||!c||u)&&(d>0?(clearTimeout(this._timer),this._timer=setTimeout(()=>this.callback(e,h),d)):this.callback(e,h)),this._lastSearchValue=l}this._shouldTriggerQuery=!0}updateFilterStyle(e){var t,i;e?((t=this._filterContainerElm)==null||t.classList.add("filled"),this._filterInputElm.classList.add("filled")):((i=this._filterContainerElm)==null||i.classList.remove("filled"),this._filterInputElm.classList.remove("filled"))}}class ba extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="text",this.inputFilterType="compound"}}class Au extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="number",this.inputFilterType="compound"}}class Pu extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="password",this.inputFilterType="compound"}}const vr="#86bff8",Us=0,ku=20;class br{constructor(e){this.translaterService=e,this._clearFilterTriggered=!1,this._shouldTriggerQuery=!0,this._sliderTrackFilledColor=vr,this.sliderType="double",this.searchTerms=[],this._bindEventService=new Ae}get columnFilter(){var e;return((e=this.columnDef)==null?void 0:e.filter)??{}}get currentValue(){return this._currentValue}get currentValues(){return this._currentValues}get defaultOperator(){return this.sliderType==="compound"?H.empty:this.sliderType==="single"?H.greaterThanOrEqual:this.gridOptions.defaultFilterRangeOperator||H.rangeInclusive}get filterOptions(){var e,t;return{...(e=this.gridOptions.defaultFilterOptions)==null?void 0:e.slider,...(t=this.columnFilter)==null?void 0:t.filterOptions}}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())??{}}get sliderOptions(){return this._sliderOptions}get operator(){return this._operator||(this.columnFilter.operator??this.defaultOperator)}set operator(e){this._operator=e}init(e){if(!e)throw new Error('[Slickgrid-Universal] A filter must always have an "init()" with valid arguments.');this.grid=e.grid,this.callback=e.callback,this.columnDef=e.columnDef,this.operator=e.operator||"",this.searchTerms=(e==null?void 0:e.searchTerms)??[],this._argFilterContainerElm=e.filterContainerElm,this._sliderTrackFilledColor=window.getComputedStyle(document.documentElement).getPropertyValue("--slick-slider-filter-filled-track-color")||vr,this._filterElm=this.createDomFilterElement(this.searchTerms)}clear(e=!0){var t,i,s,n,o,l,a;if(this._filterElm){this._clearFilterTriggered=!0,this._shouldTriggerQuery=e,this.searchTerms=[];const h=+(((t=this.filterOptions)==null?void 0:t.sliderStartValue)??R.SLIDER_DEFAULT_MIN_VALUE),d=+(((i=this.filterOptions)==null?void 0:i.sliderEndValue)??R.SLIDER_DEFAULT_MAX_VALUE);this.sliderType==="double"?(this._sliderLeftInputElm&&(this._sliderLeftInputElm.value=`${h}`),this._sliderRightInputElm&&(this._sliderRightInputElm.value=`${d}`),this._currentValues=[h,d],(s=this._sliderLeftInputElm)==null||s.dispatchEvent(new Event("change")),(n=this._sliderRightInputElm)==null||n.dispatchEvent(new Event("change"))):(this._sliderRightInputElm&&(this._sliderRightInputElm.value=`${h}`),this._selectOperatorElm&&(this._selectOperatorElm.selectedIndex=0),this._currentValue=h,(o=this._sliderRightInputElm)==null||o.dispatchEvent(new Event("change"))),(((l=this.filterOptions)==null?void 0:l.hideSliderNumber)??((a=this.filterOptions)==null?void 0:a.hideSliderNumbers))||(this.sliderType==="double"?this.renderSliderValues(h,d):this.renderSliderValues(void 0,h)),this.updateFilterStyle(!1),this.callback(void 0,{columnDef:this.columnDef,clearFilterTriggered:!0,shouldTriggerQuery:e,searchTerms:[]})}}destroy(){var e,t,i;this._bindEventService.unbindAll(),(e=this._sliderTrackElm)==null||e.remove(),(t=this._sliderLeftInputElm)==null||t.remove(),(i=this._sliderRightInputElm)==null||i.remove()}renderSliderValues(e,t,i=!0){var o,l;const s=(e==null?void 0:e.toString())||"",n=(t==null?void 0:t.toString())||"";(o=this._leftSliderNumberElm)!=null&&o.textContent&&(this._leftSliderNumberElm.textContent=s),(l=this._rightSliderNumberElm)!=null&&l.textContent&&(this._rightSliderNumberElm.textContent=n),this._sliderRangeContainElm.title=this.sliderType==="double"?`${s} - ${n}`:`${n}`,i&&this.grid.onHeaderRowMouseLeave.notify({column:this.columnDef,grid:this.grid})}getValues(){return this.sliderType==="double"?this._currentValues:this._currentValue}setValues(e,t,i=!1){var o;if(e){let l=[];const a=Array.isArray(e)?e==null?void 0:e[0]:e;if(Array.isArray(e)&&e.length===2?l=e:typeof a=="string"&&a.indexOf("..")>0?(l=a.split(".."),this._currentValue=+((l==null?void 0:l[0])??0)):(ie(a)||a==="")&&(this._currentValue=a===null?void 0:+a,l=[a]),this.sliderType!=="double"&&this._sliderRightInputElm)this._sliderRightInputElm.value=typeof e=="string"?e:`${a}`,this.renderSliderValues(void 0,this._sliderRightInputElm.value);else if(Array.isArray(l)&&l.length===2&&!((o=this.filterOptions)!=null&&o.hideSliderNumbers)){const[h,d]=l;this._sliderLeftInputElm&&(this._sliderLeftInputElm.value=String(h??R.SLIDER_DEFAULT_MIN_VALUE)),this._sliderRightInputElm&&(this._sliderRightInputElm.value=String(d??R.SLIDER_DEFAULT_MAX_VALUE)),this.renderSliderValues(...l)}}else this._currentValue=void 0,this._currentValues=void 0;const s=this.getValues(),n=s===void 0?[]:Array.isArray(s)?s:[s];if(this.updateFilterStyle(n.length>0),t!==void 0&&(this.operator=t),this.operator&&this._selectOperatorElm){const l=di(this.operator);this._selectOperatorElm.value=l}i&&this.callback(void 0,{columnDef:this.columnDef,operator:this.operator,searchTerms:n,shouldTriggerQuery:!0})}createDomFilterElement(e){var c,u,p,m,f;const t=((c=this.columnDef)==null?void 0:c.id)??"",i=+(this.columnFilter.minValue??R.SLIDER_DEFAULT_MIN_VALUE),s=+(this.columnFilter.maxValue??R.SLIDER_DEFAULT_MAX_VALUE),n=+(this.columnFilter.valueStep??R.SLIDER_DEFAULT_STEP);J(this._argFilterContainerElm);const o=+((Array.isArray(e)&&(e==null?void 0:e[0]))??((u=this.filterOptions)==null?void 0:u.sliderStartValue)??i),l=+((Array.isArray(e)&&(e==null?void 0:e[1]))??((p=this.filterOptions)==null?void 0:p.sliderEndValue)??s);if(this._sliderRangeContainElm=v("div",{className:`filter-input filter-${t} slider-input-container slider-values`,title:this.sliderType==="double"?`${o} - ${l}`:`${o}`}),this._sliderTrackElm=v("div",{className:"slider-track"}),this.sliderType==="compound"){const g=v("span",{className:"input-group-addon input-group-prepend operator"});this._selectOperatorElm=Fn(this.getOperatorOptionValues(),this.grid),g.appendChild(this._selectOperatorElm)}this.sliderType==="double"&&(this._sliderLeftInputElm=v("input",{type:"range",className:"slider-filter-input",ariaLabel:this.columnFilter.ariaLabel??`${_t(t+"")} Search Filter`,defaultValue:`${o}`,value:`${o}`,min:`${i}`,max:`${s}`,step:`${n}`}));const a=this.sliderType==="double"?l:o;this._sliderRightInputElm=v("input",{type:"range",className:"slider-filter-input",ariaLabel:this.columnFilter.ariaLabel??`${_t(t+"")} Search Filter`,defaultValue:`${a}`,value:`${a}`,min:`${i}`,max:`${s}`,step:`${n}`});const h=((m=this.filterOptions)==null?void 0:m.hideSliderNumber)??((f=this.filterOptions)==null?void 0:f.hideSliderNumbers),d=h?"":"input-group";if(this._divContainerFilterElm=v("div",{className:`${d} search-filter slider-container slider-values filter-${t}`.trim()}),this._sliderRangeContainElm.appendChild(this._sliderTrackElm),this.sliderType==="double"&&this._sliderLeftInputElm&&this._sliderRangeContainElm.appendChild(this._sliderLeftInputElm),this._sliderRangeContainElm.appendChild(this._sliderRightInputElm),h)this._divContainerFilterElm.appendChild(this._sliderRangeContainElm);else{let g;this.sliderType==="compound"&&this._selectOperatorElm?(g=v("span",{className:"input-group-addon input-group-prepend operator"}),g.appendChild(this._selectOperatorElm)):this.sliderType==="double"&&(g=v("div",{className:"input-group-addon input-group-prepend slider-range-value"}),this._leftSliderNumberElm=v("span",{className:`input-group-text lowest-range-${t}`,textContent:`${o}`}),g.appendChild(this._leftSliderNumberElm));const _=v("div",{className:"input-group-addon input-group-append slider-range-value"});this._rightSliderNumberElm=v("span",{className:`input-group-text highest-range-${t}`,textContent:`${a}`},_),g&&this._divContainerFilterElm.appendChild(g),this._divContainerFilterElm.appendChild(this._sliderRangeContainElm),this._divContainerFilterElm.appendChild(_)}return this._sliderOptions={minValue:i,maxValue:s,step:n},this._currentValues=[o,l],Array.isArray(e)&&e.length>0&&e[0]!==""&&(this.updateFilterStyle(!0),this._currentValue=o),(this.filterOptions.sliderStartValue!==void 0||this.columnFilter.minValue!==void 0)&&(this._currentValue=o),this._argFilterContainerElm.appendChild(this._divContainerFilterElm),this.updateTrackFilledColorWhenEnabled(),this._bindEventService.bind(this._sliderTrackElm,"click",this.sliderTrackClicked.bind(this)),this._bindEventService.bind(this._sliderRightInputElm,["input","change"],this.slideRightInputChanged.bind(this)),this._bindEventService.bind(this._sliderRightInputElm,["change","mouseup","touchend"],this.onValueChanged.bind(this)),this.sliderType==="compound"&&this._selectOperatorElm?this._bindEventService.bind(this._selectOperatorElm,["change"],this.onValueChanged.bind(this)):this.sliderType==="double"&&this._sliderLeftInputElm&&(this._bindEventService.bind(this._sliderLeftInputElm,["input","change"],this.slideLeftInputChanged.bind(this)),this._bindEventService.bind(this._sliderLeftInputElm,["change","mouseup","touchend"],this.onValueChanged.bind(this))),this._divContainerFilterElm}getOperatorOptionValues(){let e;return this.columnFilter.compoundOperatorList?e=this.columnFilter.compoundOperatorList:e=Dn(this.gridOptions,this.translaterService),Mn(this.gridOptions,e,"numeric"),e}onValueChanged(e){var n,o,l,a,h;const t=parseInt(((n=this._sliderRightInputElm)==null?void 0:n.value)??"",10);let i,s;if(this.sliderType==="compound"||this.sliderType==="single")((l=(o=e==null?void 0:e.target)==null?void 0:o.tagName)==null?void 0:l.toLowerCase())!=="select"&&(this._currentValue=+t),i=this._currentValue,s=[i||"0"];else if(this.sliderType==="double"){const c=[parseInt(((a=this._sliderLeftInputElm)==null?void 0:a.value)??"",10),t];i=c.join(".."),s=c}if(this._clearFilterTriggered)this.updateFilterStyle(!1),this.callback(e,{columnDef:this.columnDef,clearFilterTriggered:this._clearFilterTriggered,searchTerms:[],shouldTriggerQuery:this._shouldTriggerQuery});else{const d=((h=this._selectOperatorElm)==null?void 0:h.value)??this.operator;this.updateFilterStyle(i!=="");const c=this.columnFilter.skipCompoundOperatorFilterWithNullInput??this.gridOptions.skipCompoundOperatorFilterWithNullInput,u=c&&ie(this._currentValue)||!ie(this._currentValue)&&ie(this._lastSearchValue);(this.sliderType!=="compound"||!c||u)&&this.callback(e,{columnDef:this.columnDef,operator:d||"",searchTerms:s,shouldTriggerQuery:this._shouldTriggerQuery})}this._clearFilterTriggered=!1,this._shouldTriggerQuery=!0,this.changeBothSliderFocuses(!1),this.grid.onHeaderRowMouseEnter.notify({column:this.columnDef,grid:this.grid},new le(e)),this._lastSearchValue=i}changeBothSliderFocuses(e){var i,s;const t=e?"add":"remove";(i=this._sliderLeftInputElm)==null||i.classList[t]("focus"),(s=this._sliderRightInputElm)==null||s.classList[t]("focus")}slideLeftInputChanged(e){var s,n,o,l;const t=parseInt(((s=this._sliderLeftInputElm)==null?void 0:s.value)??"",10),i=parseInt(((n=this._sliderRightInputElm)==null?void 0:n.value)??"",10);this._sliderLeftInputElm&&i-t<=(((o=this.filterOptions)==null?void 0:o.stopGapBetweenSliderHandles)??Us)&&(this._sliderLeftInputElm.value=String(t-(((l=this.filterOptions)==null?void 0:l.stopGapBetweenSliderHandles)??Us))),this._sliderLeftInputElm&&this._sliderRightInputElm&&(+this._sliderLeftInputElm.value>=+this._sliderRightInputElm.value-ku?(this._sliderLeftInputElm.style.zIndex="1",this._sliderRightInputElm.style.zIndex="0"):(this._sliderLeftInputElm.style.zIndex="0",this._sliderRightInputElm.style.zIndex="1")),this.sliderLeftOrRightChanged(e,"left",t,i)}slideRightInputChanged(e){var s,n,o,l;const t=parseInt(((s=this._sliderLeftInputElm)==null?void 0:s.value)??"",10),i=parseInt(((n=this._sliderRightInputElm)==null?void 0:n.value)??"",10);this.sliderType==="double"&&this._sliderRightInputElm&&i-t<=(((o=this.filterOptions)==null?void 0:o.stopGapBetweenSliderHandles)??Us)&&(this._sliderRightInputElm.value=String(t+(((l=this.filterOptions)==null?void 0:l.stopGapBetweenSliderHandles)??Us))),this.sliderLeftOrRightChanged(e,"right",t,i)}sliderLeftOrRightChanged(e,t,i,s){var l,a,h,d,c,u;let n=!0;this.updateTrackFilledColorWhenEnabled(),this.changeBothSliderFocuses(!0),this._sliderRangeContainElm.title=this.sliderType==="double"?`${i} - ${s}`:`${s}`,this.sliderType==="double"&&this._sliderLeftInputElm&&this._sliderRightInputElm&&(t==="left"&&i>s?(this._sliderLeftInputElm.value=`${s}`,n=!1):t==="right"&&i>s&&(this._sliderRightInputElm.value=`${i}`,n=!1)),(((l=this.filterOptions)==null?void 0:l.hideSliderNumber)??((a=this.filterOptions)==null?void 0:a.hideSliderNumbers))||((h=this._leftSliderNumberElm)!=null&&h.textContent&&(this._leftSliderNumberElm.textContent=((d=this._sliderLeftInputElm)==null?void 0:d.value)??""),(c=this._rightSliderNumberElm)!=null&&c.textContent&&(this._rightSliderNumberElm.textContent=((u=this._sliderRightInputElm)==null?void 0:u.value)??"")),n&&this.grid.onHeaderRowMouseEnter.notify({column:this.columnDef,grid:this.grid},new le(e))}sliderTrackClicked(e){e.preventDefault();const t=e.offsetX,i=this._sliderTrackElm.offsetWidth,s=(t+0)*100/i;this._sliderRightInputElm&&this.sliderType!=="double"?(this._sliderRightInputElm.value=`${s}`,this._sliderRightInputElm.dispatchEvent(new Event("change"))):this._sliderLeftInputElm&&this._sliderRightInputElm&&(s<=50?(this._sliderLeftInputElm.value=`${s}`,this._sliderLeftInputElm.dispatchEvent(new Event("change"))):(this._sliderRightInputElm.value=`${s}`,this._sliderRightInputElm.dispatchEvent(new Event("change"))))}updateTrackFilledColorWhenEnabled(){var e,t,i,s;if((e=this.filterOptions)!=null&&e.enableSliderTrackColoring&&this._sliderRightInputElm){let n=0;this._sliderLeftInputElm&&(n=(+this._sliderLeftInputElm.value-+this._sliderLeftInputElm.min)/(((t=this.sliderOptions)==null?void 0:t.maxValue)??0-+this._sliderLeftInputElm.min)*100);const o=(+this._sliderRightInputElm.value-+this._sliderRightInputElm.min)/(((i=this.sliderOptions)==null?void 0:i.maxValue)??0-+this._sliderRightInputElm.min)*100,l="linear-gradient(to right, %b %p1, %c %p1, %c %p2, %b %p2)".replace(/%b/g,"#eee").replace(/%c/g,((s=this.filterOptions)==null?void 0:s.sliderTrackFilledColor)||this._sliderTrackFilledColor||vr).replace(/%p1/g,`${n}%`).replace(/%p2/g,`${o}%`);this._sliderTrackElm.style.background=l,this._sliderOptions.sliderTrackBackground=l}}updateFilterStyle(e){var t,i;e?(this._divContainerFilterElm.classList.add("filled"),(t=this._filterElm)==null||t.classList.add("filled")):(this._divContainerFilterElm.classList.remove("filled"),(i=this._filterElm)==null||i.classList.remove("filled"))}}class Fu extends br{constructor(e){super(e),this.translaterService=e,this.sliderType="compound"}}class Du extends _l{constructor(e){super(e),this.translaterService=e,this.inputFilterType="range"}}class Mu extends Ut{constructor(e){super(e),this.translaterService=e,this._inputMask="",this.inputType="text"}get inputMask(){return this._inputMask}init(e){var i,s,n,o;if(!e)throw new Error('[Slickgrid-Universal] A filter must always have an "init()" with valid arguments.');if(this.grid=e.grid,this.callback=e.callback,this.columnDef=e.columnDef,this.searchTerms=(e.hasOwnProperty("searchTerms")?e.searchTerms:[])||[],this._cellContainerElm=e.filterContainerElm,(s=(i=this.columnDef)==null?void 0:i.params)!=null&&s.mask?this._inputMask=this.columnDef.params.mask:(o=(n=this.columnFilter)==null?void 0:n.params)!=null&&o.mask&&(this._inputMask=this.columnFilter.params.mask),!this._inputMask)throw new Error(`[Slickgrid-Universal] The Filters.inputMask requires the mask to be passed in the filter params or the column definition params
|
|
17
17
|
for example:: this.columnDefinitions: [{ id: 'phone', field: 'phone', filter: { model: Filters.inputMask, params: { mask: '000-000-0000' }}}]`);const t=Array.isArray(this.searchTerms)&&this.searchTerms.length>=0?this.searchTerms[0]:"";this.createDomFilterElement(t),this._bindEventService.bind(this._filterInputElm,["keyup","blur","change"],this.onTriggerEvent.bind(this))}onTriggerEvent(e,t=!1){var s,n;let i="";if((s=e==null?void 0:e.target)!=null&&s.value){let o=((n=e==null?void 0:e.target)==null?void 0:n.value)??"";const l=this.gridOptions.enableFilterTrimWhiteSpace||this.columnFilter.enableTrimWhiteSpace;typeof o=="string"&&l&&(o=o.trim());const a=this.unmaskValue(o),h=this.maskValue(a);i=a,(e==null?void 0:e.keyCode)>=48&&(this._filterInputElm.value=h,e.preventDefault())}t?(this.callback(e,{columnDef:this.columnDef,clearFilterTriggered:t,shouldTriggerQuery:this._shouldTriggerQuery}),this._filterInputElm.classList.remove("filled")):(this._filterInputElm.classList.add("filled"),this.callback(e,{columnDef:this.columnDef,operator:this.operator,searchTerms:[i],shouldTriggerQuery:this._shouldTriggerQuery})),this._shouldTriggerQuery=!0}maskValue(e){let t=0,i="";return this._inputMask&&(i=this._inputMask.replace(/[09A]/gi,s=>((s==="0"||s==="9")&&/\d+/g.test(e[t])||s.toUpperCase()==="A"&&/[^\d]+/gi.test(e[t]))&&e[t++]||"")),i}unmaskValue(e){const t=e.replace(/[^0-9a-z]*/gi,""),i=this._inputMask.replace(/[^0-9a-z]*/gi,"");let s="";for(let n=0;n<i.length;n++)t[n]&&((i[n]==="0"||i[n]==="9")&&/\d+/g.test(t[n])||i[n].toUpperCase()==="A"&&/[^\d]+/gi.test(t[n]))&&(s+=t[n]);return s}}class Nu extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="number"}}class Lu extends Ut{constructor(e){super(e),this.translaterService=e,this.inputType="password"}}var Hu=Object.defineProperty,Vu=(r,e,t)=>e in r?Hu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,V=(r,e,t)=>Vu(r,typeof e!="symbol"?e+"":e,t),Bu=class{constructor(r){V(this,"_distinctEvent"),V(this,"_boundedEvents",[]),this._distinctEvent=(r==null?void 0:r.distinctEvent)??!1}get boundedEvents(){return this._boundedEvents}dispose(){this.unbindAll(),this._boundedEvents=[]}bind(r,e,t,i,s=""){let n=Array.isArray(e)?e:[e];if(typeof(r==null?void 0:r.forEach)=="function")r.forEach(o=>{for(let l of n)(!this._distinctEvent||this._distinctEvent&&!this.hasBinding(o,l))&&(o.addEventListener(l,t,i),this._boundedEvents.push({element:o,eventName:l,listener:t,groupName:s}))});else for(let o of n)(!this._distinctEvent||this._distinctEvent&&!this.hasBinding(r,o))&&(r.addEventListener(o,t,i),this._boundedEvents.push({element:r,eventName:o,listener:t,groupName:s}))}hasBinding(r,e){return this._boundedEvents.some(t=>t.element===r&&(!e||t.eventName===e))}unbind(r,e,t){var i;if(r){let s=Array.isArray(r)?r:[r],n=Array.isArray(e)?e||"":[e||""];for(let o of s){t||(t=this._boundedEvents.find(l=>{if(l.element===o&&(!e||l.eventName===e))return l.listener}));for(let l of n)(i=o==null?void 0:o.removeEventListener)==null||i.call(o,l,t)}}}unbindAll(r){if(r){let e=Array.isArray(r)?r:[r];for(let t=this._boundedEvents.length-1;t>=0;--t){let i=this._boundedEvents[t];if(e.some(s=>s===i.groupName)){let{element:s,eventName:n,listener:o}=i;this.unbind(s,n,o),this._boundedEvents.splice(t,1)}}}else for(;this._boundedEvents.length>0;){let e=this._boundedEvents.pop(),{element:t,eventName:i,listener:s}=e;this.unbind(t,i,s)}}},Sa=typeof window<"u"&&window.multipleSelect!==void 0?window.multipleSelect:{locales:{}},zu={formatSelectAll(){return"[Select all]"},formatAllSelected(){return"All selected"},formatCountSelected(r,e){return`${r} of ${e} selected`},formatNoMatchesFound(){return"No matches found"},formatOkButton(){return"OK"}};Sa.locales["en-US"]=zu;var ya=Sa.locales,$u=50,Wu=4,Ea={name:"",placeholder:"",classes:"",classPrefix:"",data:void 0,locale:void 0,selectAll:!0,single:void 0,singleRadio:!1,multiple:!1,hideOptgroupCheckboxes:!1,multipleWidth:80,width:void 0,dropWidth:void 0,maxHeight:250,maxHeightUnit:"px",position:"bottom",displayValues:!1,displayTitle:!1,displayDelimiter:", ",minimumCountSelected:3,ellipsis:!1,isOpen:!1,keepOpen:!1,openOnHover:!1,container:null,filter:!1,filterGroup:!1,filterPlaceholder:"",filterAcceptOnEnter:!1,filterByDataLength:void 0,customFilter(r){let{text:e,label:t,search:i}=r;return(t||e||"").includes(i)},showClear:!1,autoAdjustDropHeight:!1,autoAdjustDropPosition:!1,autoAdjustDropWidthByTextSize:!1,adjustedHeightPadding:10,useSelectOptionLabel:!1,useSelectOptionLabelToHtml:!1,navigationHighlight:!0,infiniteScroll:!1,virtualScroll:!0,cssStyler:()=>null,textTemplate:r=>r.innerHTML.trim(),labelTemplate:r=>r.label,onOpen:()=>!1,onClose:()=>!1,onCheckAll:()=>!1,onUncheckAll:()=>!1,onFocus:()=>!1,onBlur:()=>!1,onOptgroupClick:()=>!1,onBeforeClick:()=>!0,onClick:()=>!1,onFilter:()=>!1,onFilterClear:()=>!1,onClear:()=>!1,onAfterCreate:()=>!1,onDestroy:()=>!1,onAfterDestroy:()=>!1,onDestroyed:()=>!1},Gu=["init","getOptions","refreshOptions","getSelects","setSelects","enable","disable","open","close","check","uncheck","checkAll","uncheckAll","checkInvert","focus","blur","refresh","destroy"];Object.assign(Ea,ya["en-US"]);var Uu={BLOCK_ROWS:$u,CLUSTER_BLOCKS:Wu,DEFAULTS:Ea,METHODS:Gu},ft=Uu;function ju(r,e,t=!1){let i=Object.keys(r),s=Object.keys(e);if(t&&i.length!==s.length)return!1;for(let n of i)if(s.includes(n)&&r[n]!==e[n])return!1;return!0}function Sr(r){let e=()=>{let s={};for(let n in r)Object.prototype.hasOwnProperty.call(r,n)&&(s[n]=Sr(r[n]));return s},t=()=>r.map(s=>Sr(s)),i=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return i==="object"?e():i==="array"?t():r}function yr(r){return r!=null&&r!==""}function Yu(r,e){return typeof r=="object"?Object.fromEntries(e?Object.entries(r).filter(([t,i])=>!yr(i)&&!e.includes(t)||yr(i)):Object.entries(r).filter(([t,i])=>yr(i))):r}function Xu(r){let e=0;return r.forEach((t,i)=>{t.type==="optgroup"?(t._key=`group_${i}`,t.visible=typeof t.visible>"u"?!0:t.visible,t.children.forEach((s,n)=>{s&&(s.visible=typeof(s==null?void 0:s.visible)>"u"?!0:s.visible,s.divider||(s._key=`option_${i}_${n}`,e+=1))})):(t.visible=typeof t.visible>"u"?!0:t.visible,t.divider||(t._key=`option_${i}`,e+=1))}),e}function js(r,e,t){if(Array.isArray(r))for(let i of r){if(i[e]===t||i[e]===`${+i[e]}`&&+i[e]===t)return i;if(i.type==="optgroup"){for(let s of i.children)if(s&&(s[e]===t||s[e]===`${+s[e]}`&&+s[e]===t))return s}}}function qu(r){return r.replace(/(\b)(on[a-z]+)(\s*)=([^>]*)|javascript:([^>]*)[^>]*|(<\s*)(\/*)script([<>]*).*(<\s*)(\/*)script(>*)|(<|<)(\/*)(script|script defer)(.*)(>|>|>">)/gi,"")}function Er(r){return Object.keys(r).forEach(e=>r[e]===void 0?delete r[e]:""),r}function Ei(r,e){if(typeof r!="string")return r;if(typeof e=="function")return e(r);if(typeof r.normalize=="function")return r.normalize("NFD").replace(/[\u0300-\u036F]/g,"");throw new Error("[Multiple-Select-Vanilla] `normalize()` function is not defined, you can optionally provide a custom parser via the `diacriticParser` option.")}function wr(r){let e=0,t=0,i=0,s=0,n=window.innerHeight??0,o=window.innerWidth??0,l=Zu(),a=l.top,h=l.left,d=xr(r);if(d){let c=d.top??0,u=d.left??0;t=c-a,e=n-(c-a),i=u-h,s=o-(u-h)}return{top:t,bottom:e,left:i,right:s}}function Tr(r=""){return r.split(" ").filter(e=>e)}function Ge(r,e,t){let i=document.createElement(r);return e&&Object.keys(e).forEach(s=>{let n=e[s];typeof n=="object"?Object.assign(i[s],n):i[s]=e[s]}),t!=null&&t.appendChild&&t.appendChild(i),i}function wa(r,e,t){var n;let i=(n=r.props)!=null&&n.innerHTML?Qu(r.props,"innerHTML"):r.props,s=Ge(r.tagName,Yu(i,["className","title","style"]),e);if(r.props.innerHTML&&(s.innerHTML=r.props.innerHTML),r.attrs)for(let o of Object.keys(r.attrs))s.setAttribute(o,r.attrs[o]);if(r.children)for(let o of r.children)wa(o,s);return e==null||e.appendChild(s),s}function Or(r){return r.hasOwnProperty("tagName")?wa(r):document.createElement("li")}function Ys(r){for(;r!=null&&r.firstChild;)r.lastChild&&r.removeChild(r.lastChild);return r}function xr(r){var o;if(!r)return;let e=(o=r==null?void 0:r.getBoundingClientRect)==null?void 0:o.call(r),t=0,i=0,s=0,n=0;return(e==null?void 0:e.top)!==void 0&&e.left!==void 0&&(t=e.top+window.pageYOffset,i=e.left+window.pageXOffset,n=e.right,s=e.bottom),{top:t,left:i,bottom:s,right:n}}function Xs(r,e,t){if(!r)return 0;let i=Number.parseFloat(r.style[t]);if(!i||Number.isNaN(i)){switch(e){case"outer":i=r[t==="width"?"offsetWidth":"offsetHeight"];break;case"scroll":i=r[t==="width"?"scrollWidth":"scrollHeight"];break;case"inner":default:i=r[t==="width"?"clientWidth":"clientHeight"];break}i=r.getBoundingClientRect()[t]}if(!i||Number.isNaN(i)){let s=r.style.display,n=r.style.position;r.style.display="block",r.style.position="absolute";let o=window.getComputedStyle(r)[t];i=Number.parseFloat(o),Number.isNaN(i)&&(i=0),r.style.display=s,r.style.position=n}return i||0}function Ta(r,e){let t=null,i=r==null?void 0:r.parentElement;for(;i;){let[s,n,o,l]=e.match(/^([a-z]*)([#.]{1})([a-z\-]+)$/i)||[];if(o&&l)for(let a of l.replace(o,"").split(" "))i.classList.contains(a)&&(n?(i==null?void 0:i.tagName.toLowerCase())===n&&(t=i):t=i);i=i.parentElement}return t}function Ku(r,e){var t;(t=r.parentNode)==null||t.insertBefore(e,r.nextSibling)}function Qu(r,e){let{[e]:t,...i}=r;return i}function Oa(r,e){r!=null&&r.style&&(r.style.display=r.style.display==="none"&&e!==!1||e===!0?"block":"none")}function Zu(){return{left:window.pageXOffset||document.documentElement.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||0}}var Ju=class{constructor(e){var i;V(this,"clusterRows"),V(this,"cache"),V(this,"scrollEl"),V(this,"blockHeight"),V(this,"clusterHeight"),V(this,"contentEl"),V(this,"parentEl"),V(this,"itemHeight"),V(this,"lastCluster"),V(this,"scrollTop"),V(this,"dataStart"),V(this,"dataEnd"),V(this,"rows"),V(this,"destroy"),V(this,"callback"),V(this,"sanitizer"),this.rows=e.rows,this.scrollEl=e.scrollEl,this.contentEl=e.contentEl,this.parentEl=(i=e.contentEl)==null?void 0:i.parentElement,this.callback=e.callback,this.cache={},this.scrollTop=this.scrollEl.scrollTop,this.initDOM(this.rows),this.scrollEl.scrollTop=this.scrollTop,this.lastCluster=0;let t=()=>{this.lastCluster!==(this.lastCluster=this.getNum())&&(this.initDOM(this.rows),this.callback())};this.scrollEl.addEventListener("scroll",t,!1),this.destroy=()=>{this.scrollEl.removeEventListener("scroll",t,!1),Ys(this.contentEl)}}reset(e){this.lastCluster=0,this.cache={},Ys(this.contentEl),this.initDOM(e)}initDOM(e){if(typeof this.clusterHeight>"u"){this.cache.scrollTop=this.scrollEl.scrollTop;let o=Or(e[0]);this.contentEl.appendChild(o),this.contentEl.appendChild(o),this.contentEl.appendChild(o),this.cache.data=[e[0]],this.getRowsHeight()}let t=this.initData(e,this.getNum()),i=this.checkChanges("data",t.rows),s=this.checkChanges("top",t.topOffset),n=this.checkChanges("bottom",t.bottomOffset);Ys(this.contentEl),i&&s?(t.topOffset&&this.contentEl.appendChild(this.getExtra("top",t.topOffset)),t.rows.forEach(o=>this.contentEl.appendChild(Or(o))),t.bottomOffset&&this.contentEl.appendChild(this.getExtra("bottom",t.bottomOffset))):n&&this.contentEl.lastChild&&(this.contentEl.lastChild.style.height=`${t.bottomOffset}px`)}getRowsHeight(){var e;if(typeof this.itemHeight>"u"){let t=((e=this.parentEl)==null?void 0:e.style.display)||"";this.parentEl&&(t===""||t==="none")&&(this.parentEl.style.display="block");let i=this.contentEl.children,s=i[Math.floor(i.length/2)];this.itemHeight=s.offsetHeight,this.parentEl&&(this.parentEl.style.display=t)}this.blockHeight=this.itemHeight*ft.BLOCK_ROWS,this.clusterRows=ft.BLOCK_ROWS*ft.CLUSTER_BLOCKS,this.clusterHeight=this.blockHeight*ft.CLUSTER_BLOCKS}getNum(){this.scrollTop=this.scrollEl.scrollTop;let e=(this.clusterHeight||0)-(this.blockHeight||0);return e&&Math.floor(this.scrollTop/e)||0}initData(e,t){if(e.length<ft.BLOCK_ROWS)return{topOffset:0,bottomOffset:0,rowsAbove:0,rows:e};let i=Math.max((this.clusterRows-ft.BLOCK_ROWS)*t,0),s=i+this.clusterRows,n=Math.max(i*this.itemHeight,0),o=Math.max((e.length-s)*this.itemHeight,0),l=[],a=i;n<1&&a++;for(let h=i;h<s;h++)e[h]&&l.push(e[h]);return this.dataStart=i,this.dataEnd=s,{topOffset:n,bottomOffset:o,rowsAbove:a,rows:l}}checkChanges(e,t){let i=t!==this.cache[e];return this.cache[e]=t,i}getExtra(e,t){let i=document.createElement("li");return i.className=`virtual-scroll-${e}`,t&&(i.style.height=`${t}px`),i}},ns=".ms-select-all, ul li[data-key]",ep=".ms-select-all.highlighted, ul li[data-key].highlighted",tp=class{constructor(e,t){this.elm=e,V(this,"_bindEventService"),V(this,"isAllSelected",!1),V(this,"isPartiallyAllSelected",!1),V(this,"fromHtml",!1),V(this,"choiceElm"),V(this,"selectClearElm"),V(this,"closeElm"),V(this,"clearSearchIconElm"),V(this,"filterText",""),V(this,"updateData",[]),V(this,"data",[]),V(this,"dataTotal"),V(this,"dropElm"),V(this,"okButtonElm"),V(this,"filterParentElm"),V(this,"lastFocusedItemKey",""),V(this,"lastMouseOverPosition",""),V(this,"ulElm"),V(this,"parentElm"),V(this,"labelElm"),V(this,"selectAllParentElm"),V(this,"selectAllElm"),V(this,"searchInputElm"),V(this,"selectGroupElms"),V(this,"selectItemElms"),V(this,"noResultsElm"),V(this,"options"),V(this,"selectAllName",""),V(this,"selectGroupName",""),V(this,"selectItemName",""),V(this,"scrolledByMouse",!1),V(this,"openDelayTimer"),V(this,"updateDataStart"),V(this,"updateDataEnd"),V(this,"virtualScroll"),V(this,"_currentHighlightIndex",-1),V(this,"_currentSelectedElm"),V(this,"isMoveUpRecalcRequired",!1),V(this,"locales",{}),this.options=Object.assign({},ft.DEFAULTS,this.elm.dataset,t),this._bindEventService=new Bu({distinctEvent:!0})}get isRenderAsHtml(){return this.options.renderOptionLabelAsHtml||this.options.useSelectOptionLabelToHtml}init(){this.initLocale(),this.initContainer(),this.initData(),this.initSelected(!0),this.initFilter(),this.initDrop(),this.initView(),this.options.onAfterCreate()}destroy(e=!0){var t,i,s,n,o;this.elm&&this.parentElm&&(this.options.onDestroy({hardDestroy:e}),e&&this.options.onHardDestroy(),this.elm.parentElement&&this.parentElm.parentElement&&this.elm.parentElement.insertBefore(this.elm,this.parentElm.parentElement.firstChild),this.elm.classList.remove("ms-offscreen"),this._bindEventService.unbindAll(),(t=this.virtualScroll)==null||t.destroy(),(i=this.dropElm)==null||i.remove(),this.dropElm=void 0,(s=this.parentElm.parentNode)==null||s.removeChild(this.parentElm),this.fromHtml&&(delete this.options.data,this.fromHtml=!1),this.options.onAfterDestroy({hardDestroy:e}),e&&((o=(n=this.options).onAfterHardDestroy)==null||o.call(n),Object.keys(this.options).forEach(l=>delete this[l])))}initLocale(){if(this.options.locale){if(typeof this.options.locale=="object"){Object.assign(this.options,this.options.locale);return}let e=window.multipleSelect.locales,t=this.options.locale.split(/-|_/);if(t[0]=t[0].toLowerCase(),t[1]&&(t[1]=t[1].toUpperCase()),e[this.options.locale])Object.assign(this.options,e[this.options.locale]);else if(e[t.join("-")])Object.assign(this.options,e[t.join("-")]);else if(e[t[0]])Object.assign(this.options,e[t[0]]);else throw new Error(`[multiple-select-vanilla] invalid locales "${this.options.locale}", make sure to import it before using it`)}}initContainer(){var s;let e=this.elm.getAttribute("name")||this.options.name||"";this.options.classes&&this.elm.classList.add(this.options.classes),this.options.classPrefix&&(this.elm.classList.add(this.options.classPrefix),this.options.size&&this.elm.classList.add(`${this.options.classPrefix}-${this.options.size}`)),this.elm.style.display="none",this.labelElm=this.elm.closest("label"),!this.labelElm&&this.elm.id&&(this.labelElm=document.createElement("label"),this.labelElm.htmlFor=this.elm.id),(s=this.labelElm)!=null&&s.querySelector("input")&&(this.labelElm=null),typeof this.options.single>"u"&&(this.options.single=!this.elm.multiple),this.parentElm=Ge("div",{className:Tr(`ms-parent ${this.elm.className||""} ${this.options.classes}`).join(" "),dataset:{test:"sel"}}),this.options.darkMode&&this.parentElm.classList.add("ms-dark-mode");let t=this.elm.getAttribute("title")||"";t&&(this.parentElm.title=t),this.options.placeholder=this.options.placeholder||this.elm.getAttribute("placeholder")||"",this.choiceElm=Ge("button",{className:"ms-choice",type:"button"},this.parentElm),this.options.labelId&&(this.choiceElm.id=this.options.labelId,this.choiceElm.setAttribute("aria-labelledby",this.options.labelId)),this.choiceElm.appendChild(Ge("span",{className:"ms-placeholder",textContent:this.options.placeholder})),this.options.showClear&&(this.selectClearElm=Ge("div",{className:"ms-icon ms-icon-close"}),this.selectClearElm.style.display="none",this.choiceElm.appendChild(this.selectClearElm)),this.choiceElm.appendChild(Ge("div",{className:"ms-icon ms-icon-caret"})),this.dropElm=Ge("div",{className:`ms-drop ${this.options.position}`,ariaExpanded:"false"},this.parentElm),this.options.darkMode&&this.dropElm.classList.add("ms-dark-mode"),e&&(this.dropElm.dataset.name=e);let i=this.elm.getAttribute("data-test")||this.options.dataTest;i&&(this.parentElm.dataset.test=i,this.dropElm.dataset.test=i),this.closeElm=this.choiceElm.querySelector(".ms-icon-close"),this.options.dropWidth&&(this.dropElm.style.width=typeof this.options.dropWidth=="string"?this.options.dropWidth:`${this.options.dropWidth}px`),Ku(this.elm,this.parentElm),this.elm.disabled&&(this.choiceElm.classList.add("disabled"),this.choiceElm.disabled=!0),this.selectAllName=`selectAll${e}`,this.selectGroupName=`selectGroup${e}`,this.selectItemName=`selectItem${e}`,this.options.keepOpen||(this._bindEventService.unbindAll("body-click"),this._bindEventService.bind(document.body,"click",n=>{this.getEventTarget(n)===this.choiceElm||Ta(this.getEventTarget(n),".ms-choice")===this.choiceElm||(this.getEventTarget(n)===this.dropElm||Ta(this.getEventTarget(n),".ms-drop")!==this.dropElm&&this.getEventTarget(n)!==this.elm)&&this.options.isOpen&&this.close("body.click")},void 0,"body-click"))}initData(){let e=[];if(this.options.data){if(Array.isArray(this.options.data))this.data=this.options.data.map(t=>typeof t=="string"||typeof t=="number"?{text:t,value:t}:t);else if(typeof this.options.data=="object"){for(let[t,i]of Object.entries(this.options.data))e.push({value:t,text:`${i}`});this.data=e}}else this.elm.childNodes.forEach(t=>{let i=this.initRow(t);i&&e.push(i)}),this.options.data=e,this.data=e,this.fromHtml=!0;this.dataTotal=Xu(this.data||[])}initRow(e,t){var s,n;let i={};return((s=e.tagName)==null?void 0:s.toLowerCase())==="option"?(i.type="option",i.text=this.options.textTemplate(e),i.value=e.value,i.visible=!0,i.selected=!!e.selected,i.disabled=t||e.disabled,i.classes=e.getAttribute("class")||"",i.title=e.getAttribute("title")||"",e.dataset.value&&(i._value=e.dataset.value),Object.keys(e.dataset).length&&(i._data=e.dataset,i._data.divider&&(i.divider=i._data.divider)),i):((n=e.tagName)==null?void 0:n.toLowerCase())==="optgroup"?(i.type="optgroup",i.label=this.options.labelTemplate(e),i.visible=!0,i.selected=!!e.selected,i.disabled=e.disabled,i.children=[],Object.keys(e.dataset).length&&(i._data=e.dataset),e.childNodes.forEach(o=>{i.children.push(this.initRow(o,i.disabled))}),i):null}initDrop(){this.initList(),this.update(!0),this.options.isOpen&&this.open(10),this.options.openOnHover&&this.parentElm&&(this._bindEventService.bind(this.parentElm,"mouseover",()=>this.open(null)),this._bindEventService.bind(this.parentElm,"mouseout",()=>this.close("hover.mouseout")))}initFilter(){if(this.filterText="",this.options.filter||!this.options.filterByDataLength)return;let e=0;for(let t of this.data||[])t.type==="optgroup"?e+=t.children.length:e+=1;this.options.filter=e>this.options.filterByDataLength}initList(){var e,t;if(this.options.filter&&(this.filterParentElm=Ge("div",{className:"ms-search"},this.dropElm),this.filterParentElm.appendChild(Ge("input",{autocomplete:"off",autocapitalize:"off",spellcheck:!1,type:"text",placeholder:this.options.filterPlaceholder||"🔎︎"})),this.options.showSearchClear&&this.filterParentElm.appendChild(Ge("span",{className:"ms-icon ms-icon-close"}))),this.options.selectAll&&!this.options.single){let i=this.elm.getAttribute("name")||this.options.name||"";this.selectAllParentElm=Ge("div",{className:"ms-select-all",dataset:{key:"select_all"}});let s=document.createElement("label"),n=`ms-icon ${this.isAllSelected?"ms-icon-check":this.isPartiallyAllSelected?"ms-icon-minus":"ms-icon-uncheck"}`,o=Ge("div",{className:"icon-checkbox-container"},s);Ge("input",{type:"checkbox",ariaChecked:String(this.isAllSelected),checked:this.isAllSelected,dataset:{name:`selectAll${i}`}},o),Ge("div",{className:n},o),s.appendChild(Ge("span",{textContent:this.formatSelectAll()})),this.selectAllParentElm.appendChild(s),(e=this.dropElm)==null||e.appendChild(this.selectAllParentElm)}this.ulElm=document.createElement("ul"),this.ulElm.role="combobox",this.ulElm.ariaExpanded="false",this.ulElm.ariaMultiSelectable=String(!this.options.single),(t=this.dropElm)==null||t.appendChild(this.ulElm),this.options.showOkButton&&!this.options.single&&(this.okButtonElm=Ge("button",{className:"ms-ok-button",type:"button",textContent:this.formatOkButton()},this.dropElm)),this.initListItems()}initListItems(){var i;let e=0,t=this.getListRows();if(this.options.selectAll&&!this.options.single&&(e=-1),t.length>ft.BLOCK_ROWS*ft.CLUSTER_BLOCKS){let s=this.dropElm&&((i=this.dropElm)==null?void 0:i.style.display)!=="none";!s&&this.dropElm&&(this.dropElm.style.left="-10000",this.dropElm.style.display="block",this.dropElm.ariaExpanded="true");let n=()=>{if(this.virtualScroll){this._currentHighlightIndex=0,this.updateDataStart=this.virtualScroll.dataStart+e,this.updateDataEnd=this.virtualScroll.dataEnd+e,this.updateDataStart<0&&(this.updateDataStart=0,this._currentHighlightIndex=0);let o=this.getDataLength();this.updateDataEnd>o&&(this.updateDataEnd=o),this.ulElm&&(this.isMoveUpRecalcRequired?this.recalculateArrowMove("up"):this.virtualScroll.dataStart>this.updateDataStart&&this.recalculateArrowMove("down"))}};this.ulElm&&(this.virtualScroll?this.virtualScroll.reset(t):this.virtualScroll=new Ju({rows:t,scrollEl:this.ulElm,contentEl:this.ulElm,sanitizer:this.options.sanitizer,callback:()=>{n(),this.events()}})),n(),!s&&this.dropElm&&(this.dropElm.style.left="0",this.dropElm.style.display="none",this.dropElm.ariaExpanded="false")}else this.ulElm&&(Ys(this.ulElm),t.forEach(s=>this.ulElm.appendChild(Or(s)))),this.updateDataStart=0,this.updateDataEnd=this.updateData.length;return this.events(),t}getEventTarget(e){return e.composedPath?e.composedPath()[0]:e.target}getListRows(){var t;let e=[];return this.updateData=[],(t=this.data)==null||t.forEach(i=>e.push(...this.initListItem(i))),this.options.infiniteScroll&&e.push({tagName:"li",props:{className:"ms-infinite-option",role:"option"}}),e.push({tagName:"li",props:{className:"ms-no-results",textContent:this.formatNoMatchesFound()}}),e}initListItem(e,t=0){let i=(e==null?void 0:e.title)||"",s=this.options.multiple?"multiple":"",n=this.options.single?"radio":"checkbox",o=!!(e!=null&&e.selected),l=this.options.single&&!this.options.singleRadio,a="";if(!(e!=null&&e.visible))return[];if(this.updateData.push(e),l&&(a="hide-radio "),e.selected&&(a+="selected "),e.type==="optgroup"){let g=[],_;if(this.options.hideOptgroupCheckboxes||this.options.single)_={tagName:"span",props:{dataset:{name:this.selectGroupName,key:e._key}}};else{let y={tagName:"input",props:{type:"checkbox",dataset:{name:this.selectGroupName,key:e._key},checked:o,disabled:e.disabled}};l?_=y:_={tagName:"div",props:{className:`icon-checkbox-container${n==="radio"?" radio":""}`},children:[y,{tagName:"div",props:{className:`ms-icon ${o?n==="radio"?"ms-icon-radio":"ms-icon-check":"ms-icon-uncheck"}`}}]}}!a.includes("hide-radio")&&(this.options.hideOptgroupCheckboxes||this.options.single)&&(a+="hide-radio ");let b={tagName:"span",props:{}};this.applyAsTextOrHtmlWhenEnabled(b.props,e.label);let C={tagName:"li",props:{className:Tr(`group${this.options.single||e.disabled?" disabled":""} ${a}`).join(" "),role:"option",ariaSelected:String(o),dataset:{key:e._key}},children:[{tagName:"label",props:{className:Tr(`optgroup${this.options.single||e.disabled?" disabled":""}`).join(" ")},children:[_,b]}]},E=this.options.cssStyler(e);return E&&(C.props.style=E),g.push(C),e.children.forEach(y=>g.push(...this.initListItem(y,1))),g}if(a+=e.classes||"",t&&this.options.single&&(a+=`option-level-${t} `),e.divider)return[{tagName:"li",props:{className:"option-divider"}}];let h=s||a?(s+a).trim():"";e.disabled&&(h+=" disabled");let d=`${e.disabled?"disabled":""}`,c={tagName:"span",props:{}};this.applyAsTextOrHtmlWhenEnabled(c.props,e.text);let u={tagName:"input",props:{type:n,value:encodeURI(e.value),dataset:{key:e._key,name:this.selectItemName},checked:o,disabled:!!e.disabled}};e.selected&&(u.attrs={checked:"checked"});let p={tagName:"div",props:{className:`icon-checkbox-container${n==="radio"?" radio":""}`},children:[u,{tagName:"div",props:{className:`ms-icon ${u.props.checked?n==="radio"?"ms-icon-radio":"ms-icon-check":"ms-icon-uncheck"}`}}]},m={tagName:"li",props:{role:"option",title:i,ariaSelected:String(o),dataset:{key:e._key}},children:[{tagName:"label",props:{className:d},children:[l?u:p,c]}]};h&&(m.props.className=h);let f=this.options.cssStyler(e);return f&&(m.props.style=f),[m]}initSelected(e=!1){var i,s;let t=0;for(let n of this.data||[])if(n.type==="optgroup"){let o=n.children.filter(l=>(l==null?void 0:l.selected)&&!l.disabled&&l.visible).length;n.children.length&&(n.selected=!this.options.single&&o&&o===n.children.filter(l=>l&&!l.disabled&&l.visible&&!l.divider).length),t+=o}else t+=n.selected&&!n.disabled&&n.visible?1:0;this.isAllSelected=((i=this.data)==null?void 0:i.filter(n=>n.selected&&!n.disabled&&n.visible).length)===((s=this.data)==null?void 0:s.filter(n=>!n.disabled&&n.visible&&!n.divider).length),this.isPartiallyAllSelected=!this.isAllSelected&&t>0,e||(this.isAllSelected?this.options.onCheckAll():t===0&&this.options.onUncheckAll())}initView(){let e;window.getComputedStyle?(e=window.getComputedStyle(this.elm).width,e==="auto"&&(e=Xs(this.dropElm,"outer","width")+20)):e=Xs(this.elm,"outer","width")+20,this.parentElm.style.width=`${this.options.width||e}px`,this.elm.classList.add("ms-offscreen")}events(){var t,i,s,n,o,l,a;this._bindEventService.unbindAll(["ok-button","search-input","select-all-checkbox","input-checkbox-list","group-checkbox-list","hover-highlight","arrow-highlight","option-list-scroll"]),this.clearSearchIconElm=(t=this.filterParentElm)==null?void 0:t.querySelector(".ms-icon-close"),this.searchInputElm=(i=this.dropElm)==null?void 0:i.querySelector(".ms-search input"),this.selectAllElm=(s=this.dropElm)==null?void 0:s.querySelector(`input[data-name="${this.selectAllName}"]`),this.selectGroupElms=(n=this.dropElm)==null?void 0:n.querySelectorAll(`input[data-name="${this.selectGroupName}"],span[data-name="${this.selectGroupName}"]`),this.selectItemElms=(o=this.dropElm)==null?void 0:o.querySelectorAll(`input[data-name="${this.selectItemName}"]:enabled`),this.noResultsElm=(l=this.dropElm)==null?void 0:l.querySelector(".ms-no-results");let e=h=>{h.preventDefault(),!this.getEventTarget(h).classList.contains("ms-icon-close")&&(this.options.isOpen?this.close("toggle.close"):this.open())};this.labelElm&&this._bindEventService.bind(this.labelElm,"click",h=>{this.getEventTarget(h).nodeName.toLowerCase()==="label"&&(e(h),(!this.options.filter||!this.options.isOpen)&&this.focus(),h.stopPropagation())}),this._bindEventService.bind(this.choiceElm,"click",e),this.options.onFocus&&this._bindEventService.bind(this.choiceElm,"focus",this.options.onFocus),this.options.onBlur&&this._bindEventService.bind(this.choiceElm,"blur",this.options.onBlur),this._bindEventService.bind(this.parentElm,"keydown",h=>{h.code==="Escape"&&this.handleEscapeKey()}),this.closeElm&&this._bindEventService.bind(this.closeElm,"click",h=>{h.preventDefault(),this._checkAll(!1,!0),this.initSelected(!1),this.updateSelected(),this.update(),this.options.onClear()}),this.clearSearchIconElm&&this._bindEventService.bind(this.clearSearchIconElm,"click",h=>{h.preventDefault(),this.searchInputElm&&(this.searchInputElm.value="",this.searchInputElm.focus()),this._currentHighlightIndex=-1,this.moveHighlightDown(),this.filter(),this.options.onFilterClear()}),this.searchInputElm&&(this._bindEventService.bind(this.searchInputElm,"keydown",h=>{h.code==="Tab"&&h.shiftKey&&this.close("key.shift+tab")},void 0,"search-input"),this._bindEventService.bind(this.searchInputElm,"keyup",h=>{var d,c,u;if(this.options.filterAcceptOnEnter&&["Enter","Space"].includes(h.code)&&((d=this.searchInputElm)!=null&&d.value)){if(this.options.single){let p=[];(c=this.selectItemElms)==null||c.forEach(m=>{var f;((f=m.closest("li"))==null?void 0:f.style.display)!=="none"&&p.push(m)}),p.length&&p[0].hasAttribute("data-name")&&this.setSelects([p[0].value])}else(u=this.selectAllElm)==null||u.click();this.close(`key.${h.code.toLowerCase()}`),this.focus();return}this.filter()},void 0,"search-input")),this.selectAllElm&&this._bindEventService.bind(this.selectAllElm,"click",h=>{var d;return this._checkAll((d=h.currentTarget)==null?void 0:d.checked)},void 0,"select-all-checkbox"),this.okButtonElm&&this._bindEventService.bind(this.okButtonElm,"click",h=>{e(h),h.stopPropagation()},void 0,"ok-button"),this.selectGroupElms&&this._bindEventService.bind(this.selectGroupElms,"click",h=>{let d=h.currentTarget,c=d.checked,u=js(this.data,"_key",d.dataset.key);this._checkGroup(u,c),this.options.onOptgroupClick(Er({label:u.label,selected:u.selected,data:u._data,children:u.children.map(p=>{if(p)return Er({text:p.text,value:p.value,selected:p.selected,disabled:p.disabled,data:p._data})})}))},void 0,"group-checkbox-list"),this.selectItemElms&&this._bindEventService.bind(this.selectItemElms,"click",h=>{let d=h.currentTarget,c=d.checked,u=js(this.data,"_key",d.dataset.key),p=()=>{this.options.single&&this.options.isOpen&&!this.options.keepOpen&&this.close("selection")};if(this.options.onBeforeClick(u)===!1){p();return}this._check(u,c),this.options.onClick(Er({text:u.text,value:u.value,selected:u.selected,data:u._data})),p()},void 0,"input-checkbox-list"),this.lastFocusedItemKey&&this.dropElm&&((a=this.dropElm.querySelector(`li[data-key=${this.lastFocusedItemKey}]`))==null||a.focus()),this.options.navigationHighlight&&this.dropElm&&(this._bindEventService.bind(this.dropElm,"mouseover",h=>{var c,u;let d=this.getEventTarget(h).closest(".ms-select-all")||this.getEventTarget(h).closest("li");if((c=this.dropElm)!=null&&c.contains(d)&&this.lastMouseOverPosition!==`${h.clientX}:${h.clientY}`){let p=((u=this.dropElm)==null?void 0:u.querySelectorAll(ns))||[],m=Array.from(p).findIndex(f=>f.dataset.key===d.dataset.key);this._currentHighlightIndex!==m&&!d.classList.contains("disabled")&&(this._currentSelectedElm=d,this._currentHighlightIndex=m,this.changeCurrentOptionHighlight(d))}this.lastMouseOverPosition=`${h.clientX}:${h.clientY}`},void 0,"hover-highlight"),this._bindEventService.bind(this.dropElm,"keydown",h=>{var d,c,u,p;switch(h.key){case"ArrowUp":h.preventDefault(),this.moveHighlightUp();break;case"ArrowDown":h.preventDefault(),this.moveHighlightDown();break;case"Escape":this.handleEscapeKey();break;case"Enter":case" ":{if(document.activeElement!==this.okButtonElm){let m=this.getEventTarget(h).closest(".ms-select-all")||this.getEventTarget(h).closest("li");if(h.key===" "&&this.options.filter||this.options.filterAcceptOnEnter&&!m)return;h.preventDefault(),(c=(d=this._currentSelectedElm)==null?void 0:d.querySelector("input"))==null||c.click(),this.options.single&&(this.choiceElm.focus(),this.lastFocusedItemKey=((u=this.choiceElm)==null?void 0:u.dataset.key)||"")}break}case"Tab":{h.preventDefault(),h.shiftKey?document.activeElement===this.okButtonElm?(this.focusSelectAllOrList(),this.highlightCurrentOption()):(this.close("key.shift+tab"),this.choiceElm.focus()):(this.changeCurrentOptionHighlight(),(p=this.okButtonElm)==null||p.focus());break}}},void 0,"arrow-highlight")),this.ulElm&&this.options.infiniteScroll&&this._bindEventService.bind(this.ulElm,"scroll",this.infiniteScrollHandler.bind(this),void 0,"option-list-scroll")}handleEscapeKey(){this.options.keepOpen||(this.close("key.escape"),this.choiceElm.focus())}infiniteScrollHandler(e,t,i){let s=!1;e&&this.getEventTarget(e)&&this.ulElm&&this.scrolledByMouse?this.getEventTarget(e).scrollTop+this.getEventTarget(e).clientHeight===this.ulElm.scrollHeight&&(s=!0):t!==void 0&&t+1===i&&(s=!0),s&&this.ulElm&&(this.virtualScroll?this.initListItems():this.ulElm.scrollTop=0,this._currentHighlightIndex=0,this.highlightCurrentOption())}open(e=0){return new Promise(t=>{e!==null&&e>=0?(clearTimeout(this.openDelayTimer),this.openDelayTimer=setTimeout(()=>{this.openDrop(),t()},e)):(this.openDrop(),t())})}openDrop(){var s,n,o,l,a;if(!this.dropElm||(s=this.choiceElm)!=null&&s.classList.contains("disabled"))return;if(this.options.isOpen=!0,this.parentElm.classList.add("ms-parent-open"),(o=(n=this.choiceElm)==null?void 0:n.querySelector("div.ms-icon-caret"))==null||o.classList.add("open"),this.dropElm.style.display="block",this.dropElm.ariaExpanded="true",(l=this.selectAllElm)!=null&&l.parentElement&&(this.selectAllElm.parentElement.style.display="inline-flex"),this.noResultsElm&&(this.noResultsElm.style.display="none"),this.getDataLength()||((a=this.selectAllElm)!=null&&a.parentElement&&(this.selectAllElm.parentElement.style.display="none"),this.noResultsElm&&(this.noResultsElm.style.display="block")),this.options.container){let h=xr(this.dropElm),d;this.options.container instanceof Node?d=this.options.container:typeof this.options.container=="string"&&(d=this.options.container==="body"?document.body:document.querySelector(this.options.container)),d.appendChild(this.dropElm),this.dropElm.style.top=`${(h==null?void 0:h.top)??0}px`,this.dropElm.style.left=`${(h==null?void 0:h.left)??0}px`,this.dropElm.style.minWidth="auto",this.dropElm.style.width=`${Xs(this.parentElm,"outer","width")}px`}let e=this.options.minHeight,t=this.options.maxHeight;this.options.maxHeightUnit==="row"&&(t=Xs(this.dropElm.querySelector("ul>li"),"outer","height")*this.options.maxHeight),this.ulElm??(this.ulElm=this.dropElm.querySelector("ul")),this.ulElm&&(e&&(this.ulElm.style.minHeight=`${e}px`),this.ulElm.style.maxHeight=`${t}px`),this.dropElm.querySelectorAll(".multiple").forEach(h=>{h.style.width=`${this.options.multipleWidth}px`}),this.getDataLength()&&this.options.filter?(this.searchInputElm&&(this.searchInputElm.value="",this.searchInputElm.focus()),this.filter(!0)):this.focusSelectAllOrList(),this._currentHighlightIndex<0?this.moveHighlightDown():this.highlightCurrentOption(),this.options.autoAdjustDropWidthByTextSize&&this.adjustDropWidthByText();let i=this.options.position;if(this.options.autoAdjustDropHeight){if(this.options.autoAdjustDropPosition){let{bottom:h,top:d}=wr(this.dropElm),c=this.dropElm.getBoundingClientRect().height;i=h<c&&d>h?"top":"bottom"}this.adjustDropHeight(i)}this.options.autoAdjustDropPosition&&this.adjustDropPosition(!0),this.options.onOpen()}focusSelectAllOrList(){this.selectAllElm?this.selectAllElm.focus():this.ulElm&&(this.ulElm.tabIndex=0,this.ulElm.focus())}highlightCurrentOption(){var t;let e=((t=this.dropElm)==null?void 0:t.querySelectorAll(ns))||[];if(this._currentHighlightIndex<=e.length){let i=e[this._currentHighlightIndex];i&&(this.lastFocusedItemKey=i.dataset.key||"",this._currentSelectedElm=i,this.scrolledByMouse=!1,i.scrollIntoView({block:"nearest"}),this.changeCurrentOptionHighlight(i),setTimeout(()=>this.scrolledByMouse=!0,10))}}changeCurrentOptionHighlight(e){var t;e==null||e.classList.add("highlighted"),(((t=this.dropElm)==null?void 0:t.querySelectorAll(ep))||[]).forEach(i=>{i!==e&&i.classList.remove("highlighted")})}moveHighlightDown(){var i,s;let e=((i=this.dropElm)==null?void 0:i.querySelectorAll(ns))||[],t=e.length;this._currentHighlightIndex<t-1?(this._currentHighlightIndex++,(s=e[this._currentHighlightIndex])!=null&&s.classList.contains("disabled")&&this.moveHighlightDown()):this.options.infiniteScroll&&this.infiniteScrollHandler(null,this._currentHighlightIndex,t),this.highlightCurrentOption()}moveHighlightUp(){var i,s;let e=((i=this.dropElm)==null?void 0:i.querySelectorAll(ns))||[],t=this.options.single?0:1;if(this.virtualScroll&&this._currentHighlightIndex<=t&&this.updateDataStart>0&&this.ulElm){let n=e[this._currentHighlightIndex+(this.options.single?0:1)],o=n==null?void 0:n.dataset.key;this.lastFocusedItemKey=o,this.ulElm.scrollTop=this.ulElm.scrollTop-(n==null?void 0:n.getBoundingClientRect().height)||10,this.isMoveUpRecalcRequired=!0;return}this._currentHighlightIndex>0&&(this._currentHighlightIndex--,(s=e[this._currentHighlightIndex])!=null&&s.classList.contains("disabled")&&this.moveHighlightUp()),this.highlightCurrentOption()}recalculateArrowMove(e){var s;let t=((s=this.dropElm)==null?void 0:s.querySelectorAll(ns))||[],i=Array.from(t).findIndex(n=>n.dataset.key===this.lastFocusedItemKey);this._currentHighlightIndex=i-1,e==="down"?this.moveHighlightDown():e==="up"&&(this.moveHighlightUp(),this.isMoveUpRecalcRequired=!1)}close(e){var t,i;this.options.isOpen=!1,this.parentElm.classList.remove("ms-parent-open"),(i=(t=this.choiceElm)==null?void 0:t.querySelector("div.ms-icon-caret"))==null||i.classList.remove("open"),this.dropElm&&(this.dropElm.style.display="none",this.dropElm.ariaExpanded="false",this.options.container&&(this.parentElm.appendChild(this.dropElm),this.dropElm.style.top="auto",this.dropElm.style.left="auto")),this.options.onClose(e)}applyAsTextOrHtmlWhenEnabled(e,t){e||(e={}),this.isRenderAsHtml?e.innerHTML=typeof this.options.sanitizer=="function"?this.options.sanitizer(t):t:e.textContent=t}update(e=!1){var h;let t=this.getSelects(),i=this.getSelects("text");this.options.displayValues&&(i=t);let s=(h=this.choiceElm)==null?void 0:h.querySelector("span"),n=t.length,o=null,l=()=>{if(this.options.useSelectOptionLabel||this.options.useSelectOptionLabelToHtml){let d=t.join(this.options.displayDelimiter);return this.options.useSelectOptionLabelToHtml?qu(d):d}return i.join(this.options.displayDelimiter)};if(s){if(n===0){let d=this.options.placeholder||"";s.classList.add("ms-placeholder"),this.applyAsTextOrHtmlWhenEnabled(s,d)}else n<this.options.minimumCountSelected?o=l():this.formatAllSelected()&&n===this.dataTotal?o=this.formatAllSelected():this.options.ellipsis&&n>this.options.minimumCountSelected?o=`${i.slice(0,this.options.minimumCountSelected).join(this.options.displayDelimiter)}...`:this.formatCountSelected(n,this.dataTotal)&&n>this.options.minimumCountSelected?o=this.formatCountSelected(n,this.dataTotal):o=l();if(o!==null&&(s==null||s.classList.remove("ms-placeholder"),this.applyAsTextOrHtmlWhenEnabled(s,o)),this.options.showClear&&this.selectClearElm){let d=o?"block":"none";this.selectClearElm.style.display=d}if(this.options.displayTitle){let d=this.options.useSelectOptionLabel||this.options.useSelectOptionLabelToHtml?"value":"text";s.title=this.getSelects(d).join(this.options.displayDelimiter)}}let a=this.getSelects();this.options.single?this.elm.value=a.length?a[0]:"":Array.from(this.elm.options).forEach(d=>{d.selected=a.some(c=>c===d.value)}),e||this.elm.dispatchEvent(new Event("change"))}updateSelected(e){var i,s,n;for(let o=this.updateDataStart;o<this.updateDataEnd;o++){let l=this.updateData[o],a=(i=this.dropElm)==null?void 0:i.querySelector(`input[data-key=${l._key}]`);if(a){a.checked=l.selected;let h=a.closest("li"),d=h==null?void 0:h.querySelector(".icon-checkbox-container div");h&&(l.selected&&!h.classList.contains("selected")?(h.classList.add("selected"),h.ariaSelected="true",d&&(d.className=`ms-icon ms-icon-${a.type==="radio"?"radio":"check"}`)):l.selected||(h.classList.remove("selected"),h.ariaSelected="false",d&&(d.className="ms-icon ms-icon-uncheck")))}}let t=((s=this.data)==null?void 0:s.filter(o=>o.visible).length)===0;if(this.selectAllElm){this.selectAllElm.ariaChecked=String(this.isAllSelected);let o=(n=this.dropElm)==null?void 0:n.querySelector(".ms-select-all .icon-checkbox-container div");if(o){let l="";this.isAllSelected?l="ms-icon-check":this.isPartiallyAllSelected?l="ms-icon-minus":l="ms-icon-uncheck",o.className=`ms-icon ${l}`}this.selectAllElm.checked=this.isAllSelected,Oa(this.selectAllElm.closest("li"),!t)}Oa(this.noResultsElm,t),this.virtualScroll&&(this.virtualScroll.rows=e??this.getListRows())}getData(){return this.options.data}getDataLength(){var e;return((e=this.data)==null?void 0:e.length)??0}getOptions(e=!0){let t=Object.assign({},this.options);return delete t.data,e?Sr(t):this.options}refreshOptions(e){ju(this.options,e,!0)||(this.options=Object.assign(this.options,e),this.destroy(!1),this.init())}getDropElement(){return this.dropElm}getParentElement(){return this.parentElm}getSelects(e="value"){let t=[];for(let i of this.data||[])if(i.type==="optgroup"){let s=i.children.filter(n=>n==null?void 0:n.selected);if(!s.length)continue;if(e==="value"||this.options.single)t.push(...s.map(n=>e==="value"&&n._value||n[e]));else{let n=[];n.push("["),n.push(i.label),n.push(`: ${s.map(o=>o[e]).join(", ")}`),n.push("]"),t.push(n.join(""))}}else i.selected&&t.push(e==="value"&&i._value||i[e]);return t}setSelects(e,t="value",i=!1){let s=!1,n=o=>{var l;for(let a of o){let h=!1;if(t==="text"){let d=document.createElement("div");this.applyAsTextOrHtmlWhenEnabled(d,a.text),h=e.includes(((l=d.textContent)==null?void 0:l.trim())??"")}else h=e.includes(a._value||a.value),!h&&a.value===`${+a.value}`&&(h=e.includes(+a.value));a.selected!==h&&(s=!0),a.selected=h}};for(let o of this.data||[])o.type==="optgroup"?n(o.children):n([o]);s&&(this.initSelected(i),this.updateSelected(),this.update(i))}enable(){this.choiceElm&&(this.choiceElm.classList.remove("disabled"),this.choiceElm.disabled=!1)}disable(){var e;this.choiceElm&&((e=this.choiceElm)==null||e.classList.add("disabled"),this.choiceElm.disabled=!0)}check(e){let t=js(this.data,"value",e);t&&this._check(t,!0)}uncheck(e){let t=js(this.data,"value",e);t&&this._check(t,!1)}_check(e,t){this.options.single&&this._checkAll(!1,!0),e.selected=t,this.initSelected(),this.updateSelected(),this.update()}checkAll(){this._checkAll(!0)}uncheckAll(){this._checkAll(!1)}_checkAll(e,t){for(let i of this.data||[])i.type==="optgroup"?this._checkGroup(i,e,!0):!i.disabled&&!i.divider&&(t||i.visible)&&(i.selected=e);t||(this.initSelected(),this.updateSelected(),this.update())}_checkGroup(e,t,i){e.selected=t,e.children.forEach(s=>{s&&!s.disabled&&!s.divider&&(i||s.visible)&&(s.selected=t)}),i||(this.initSelected(),this.updateSelected(),this.update())}checkInvert(){if(!this.options.single){for(let e of this.data||[])if(e.type==="optgroup")for(let t of e.children)t&&(t.divider||(t.selected=!t.selected));else e&&!e.divider&&(e.selected=!e.selected);this.initSelected(),this.updateSelected(),this.update()}}focus(){var e;(e=this.choiceElm)==null||e.focus(),this.options.onFocus()}blur(){var e;(e=this.choiceElm)==null||e.blur(),this.options.onBlur()}refresh(){this.destroy(!1),this.init()}filter(e){var n;let t=((n=this.searchInputElm)==null?void 0:n.value.trim())??"",i=t.toLowerCase();if(this.filterText===i)return;this.filterText=i;for(let o of this.data||[])if(o.type==="optgroup")if(this.options.filterGroup){let l=`${(o==null?void 0:o.label)??""}`;if(o!=null){let a=this.options.customFilter({label:Ei(l.toString().toLowerCase(),this.options.diacriticParser),search:Ei(i,this.options.diacriticParser),originalLabel:l,originalSearch:t,row:o});o.visible=a;for(let h of o.children)h&&(h.visible=a)}}else{for(let l of o.children)if(l!=null){let a=`${(l==null?void 0:l.text)??""}`;l.visible=this.options.customFilter({text:Ei(a.toString().toLowerCase(),this.options.diacriticParser),search:Ei(i,this.options.diacriticParser),originalText:a,originalSearch:t,row:l,parent:o})}o.visible=o.children.filter(l=>l==null?void 0:l.visible).length>0}else{let l=`${(o==null?void 0:o.text)??""}`;o.visible=this.options.customFilter({text:Ei(l.toString().toLowerCase(),this.options.diacriticParser),search:Ei(i,this.options.diacriticParser),originalText:l,originalSearch:t,row:o})}let s=this.initListItems();this.initSelected(e),this.updateSelected(s),e||this.options.onFilter(t)}adjustDropHeight(e){var d,c,u,p;let t=e!=="top",i=((d=this.filterParentElm)==null?void 0:d.getBoundingClientRect().height)??0,s=((c=this.okButtonElm)==null?void 0:c.getBoundingClientRect().height)??0,n=this.options.single?0:((u=this.selectAllParentElm)==null?void 0:u.getBoundingClientRect().height)??0,o=i+s+n+5,{bottom:l,top:a}=wr(this.parentElm),h=this.options.maxHeight;if(t?h=l-o-this.options.adjustedHeightPadding:h=a-o-this.options.adjustedHeightPadding,!this.options.maxHeight||this.options.maxHeight&&h<this.options.maxHeight){let m=(p=this.dropElm)==null?void 0:p.querySelector("ul");return m&&(m.style.maxHeight=`${h}px`),!0}return!1}adjustDropPosition(e){let t="bottom";if(this.dropElm&&this.parentElm){let{bottom:i,top:s}=wr(this.dropElm),{top:n,left:o}=xr(this.parentElm),l=this.dropElm.getBoundingClientRect().height,a=this.dropElm.getBoundingClientRect().width,h=document.body.offsetWidth||window.innerWidth,d=this.parentElm.getBoundingClientRect().width;if(i>l)t="bottom";else if(l>i&&s>i){if(this.options.container){let c=n-l;c<0&&(c=0),(c>0||e)&&(t="top",this.dropElm.style.top=`${c<0?0:c}px`)}else t="top",this.dropElm.classList.add(t);this.dropElm.classList.remove("bottom")}h-a<o&&(this.dropElm.style.left=`${o-(a-d)}px`)}return t}adjustDropWidthByText(){if(this.dropElm){let e=this.parentElm.scrollWidth;(this.options.dropWidth||this.options.width)&&(e=this.options.dropWidth||this.options.width||0);let t=this.dropElm.querySelector(".ms-select-all span"),i=this.dropElm.querySelector("ul"),s=26,n=(t==null?void 0:t.clientWidth)??0+s,o=i.scrollHeight>i.clientHeight?this.getScrollbarWidth():0,l=0;this.dropElm.querySelectorAll("li label").forEach(a=>{a.scrollWidth>l&&(l=a.scrollWidth)}),l+=s+o,l<n&&(l=n),this.options.maxWidth&&l>this.options.maxWidth&&(l=this.options.maxWidth),this.options.minWidth&&l<this.options.minWidth&&(l=this.options.minWidth),(e==="100%"||+e<l)&&(this.dropElm.style.width=`${l}px`,this.dropElm.style.maxWidth=`${l}px`)}}getScrollbarWidth(){var n;let e=document.createElement("div");e.style.visibility="hidden",e.style.width="100px",document.body.appendChild(e);let t=e.offsetWidth;e.style.overflow="scroll";let i=document.createElement("div");i.style.width="100%",e.appendChild(i);let s=i.offsetWidth;return(n=e.parentNode)==null||n.removeChild(e),t-s}formatAllSelected(){return this.options.allSelectedText||this.options.formatAllSelected()}formatCountSelected(e,t){return this.options.countSelectedText?this.options.countSelectedText.replace("#",`${e}`).replace("%",`${t}`):this.options.formatCountSelected(e,t)}formatNoMatchesFound(){return this.options.noMatchesFoundText||this.options.formatNoMatchesFound()}formatOkButton(){return this.options.okButtonText||this.options.formatOkButton()}formatSelectAll(){return this.options.selectAllText||this.options.formatSelectAll()}},wi=(r,e)=>typeof r=="string"?Ir(document.querySelectorAll(r),e):r instanceof Node?Ir([r],e):Ir(r,e);function Ir(r,e){let t=Array.from(r),i=[];for(let s=0;s<t.length;s++){let n=t[s];try{n._multipleSelect!==void 0&&(n._multipleSelect.destroy(),delete n._multipleSelect),n._multipleSelect=new tp(n,e||{}),n._multipleSelect.init();let o=n._multipleSelect.getOptions(!1);o.onHardDestroy=()=>delete n._multipleSelect,o.onAfterHardDestroyed=()=>i[s]=null,i.push(n._multipleSelect)}catch(o){console.error(o)}}return i.length===1?i[0]:i}wi.defaults=ft.DEFAULTS,wi.locales={...ya},wi.methods=ft.METHODS,typeof window<"u"&&(window.multipleSelect=wi);class xa{constructor(e,t,i,s=!0){this.translaterService=e,this.collectionService=t,this.rxjs=i,this._isMultipleSelect=!0,this._collectionLength=0,this._shouldTriggerQuery=!0,this.isFilled=!1,this.enableTranslateLabel=!1,this.subscriptions=[],this._isMultipleSelect=s}get collectionOptions(){var e,t;return((t=(e=this.columnDef)==null?void 0:e.filter)==null?void 0:t.collectionOptions)??{}}get columnFilter(){var e;return((e=this.columnDef)==null?void 0:e.filter)??{}}get customStructure(){var e,t;return(t=(e=this.columnDef)==null?void 0:e.filter)==null?void 0:t.customStructure}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())??{}}get defaultOperator(){return this.isMultipleSelect?H.in:H.equal}get filterOptions(){var e,t;return{...(e=this.gridOptions.defaultFilterOptions)==null?void 0:e.select,...(t=this.columnFilter)==null?void 0:t.filterOptions}}get isMultipleSelect(){return this._isMultipleSelect}get msInstance(){return this._msInstance}get selectOptions(){return this.defaultOptions}get operator(){var e;return((e=this.columnFilter)==null?void 0:e.operator)??this.defaultOperator}set operator(e){this.columnFilter&&(this.columnFilter.operator=e)}init(e){var s,n,o,l,a,h,d,c,u,p,m;if(!e)throw new Error('[Slickgrid-Universal] A filter must always have an "init()" with valid arguments.');if(this.grid=e.grid,this.callback=e.callback,this.columnDef=e.columnDef,this.searchTerms=(e.hasOwnProperty("searchTerms")?e.searchTerms:[])||[],this.filterContainerElm=e.filterContainerElm,!this.grid||!this.columnDef||!this.columnFilter||!this.columnFilter.collection&&!this.columnFilter.collectionAsync)throw new Error(`[Slickgrid-Universal] You need to pass a "collection" (or "collectionAsync") for the MultipleSelect/SingleSelect Filter to work correctly. Also each option should include a value/label pair (or value/labelKey when using Locale). For example:: { filter: model: Filters.multipleSelect, collection: [{ value: true, label: 'True' }, { value: false, label: 'False'}] }`);if(this.enableTranslateLabel=((s=this.columnFilter)==null?void 0:s.enableTranslateLabel)??!1,this.labelName=((n=this.customStructure)==null?void 0:n.label)??"label",this.labelPrefixName=((o=this.customStructure)==null?void 0:o.labelPrefix)??"labelPrefix",this.labelSuffixName=((l=this.customStructure)==null?void 0:l.labelSuffix)??"labelSuffix",this.optionLabel=((a=this.customStructure)==null?void 0:a.optionLabel)??"value",this.valueName=((h=this.customStructure)==null?void 0:h.value)??"value",this.enableTranslateLabel&&(!this.translaterService||typeof this.translaterService.translate!="function"))throw new Error('[select-filter] The Translate Service is required for the Select Filter to work correctly when "enableTranslateLabel" is set.');this._locales=((d=this.gridOptions)==null?void 0:d.locales)??R.locales,this.initMultipleSelectTemplate();let t=((c=this.gridOptions)==null?void 0:c.defaultFilterPlaceholder)||"";(u=this.columnFilter)!=null&&u.placeholder&&(t=this.columnFilter.placeholder),this.defaultOptions.placeholder=t||"",this._isMultipleSelect&&((p=this.columnDef)!=null&&p.filter)&&(this.columnDef.filter.emptySearchTermReturnAllValues=((m=this.columnDef.filter)==null?void 0:m.emptySearchTermReturnAllValues)??!1);const i=this.columnFilter.collection||[];return new Promise(async(f,g)=>{try{let _;this.columnFilter.collectionAsync&&!this.columnFilter.collection?(_=zo(this.columnFilter.collectionAsync,this.columnDef,this.renderDomElement.bind(this),this.rxjs,this.subscriptions),f(_)):(_=i,this.renderDomElement(i),f(i)),(this.columnFilter.collectionAsync||this.columnFilter.enableCollectionWatch)&&(await(_??this.columnFilter.collectionAsync),this.watchCollectionChanges())}catch(_){g(_)}})}clear(e=!0){this._msInstance&&this._collectionLength>0&&(this._msInstance.setSelects([]),this.updateFilterStyle(!1),this.searchTerms=[],this._shouldTriggerQuery=e,this.callback(void 0,{columnDef:this.columnDef,clearFilterTriggered:!0,shouldTriggerQuery:this._shouldTriggerQuery}),this._shouldTriggerQuery=!0)}destroy(){var e,t;typeof((e=this._msInstance)==null?void 0:e.destroy)=="function"&&this._msInstance.destroy(),(t=this.filterElm)==null||t.remove(),hs(this.subscriptions)}getValues(){var e;return((e=this._msInstance)==null?void 0:e.getSelects())??[]}setValues(e,t,i=!1){e!==void 0&&this._msInstance&&(e=Array.isArray(e)?e.every(s=>Bi(s))?e.map(String):e:[e],this._msInstance.setSelects(e)),this.updateFilterStyle(this.getValues().length>0),this.operator=t||this.defaultOperator,i&&this.onTriggerEvent()}filterCollection(e){var i,s;let t=e;if(this.columnFilter&&this.columnFilter.collectionFilterBy){const n=this.columnFilter.collectionFilterBy,o=((i=this.columnFilter.collectionOptions)==null?void 0:i.filterResultAfterEachPass)||null;t=((s=this.collectionService)==null?void 0:s.filterCollection(t,n,o))||[]}return t}sortCollection(e){var i;let t=e;if(this.columnFilter&&this.columnFilter.collectionSortBy){const s=this.columnFilter.collectionSortBy;t=((i=this.collectionService)==null?void 0:i.sortCollection(this.columnDef,t,s,this.enableTranslateLabel))||[]}return t}watchCollectionChanges(){var e;(e=this.columnFilter)!=null&&e.collection&&(Pi(this.columnFilter.collection,this.watchCallback.bind(this)),ls(this.columnFilter,"collection",this.propertyObserverCallback.bind(this)))}propertyObserverCallback(e){this.renderDomElement(e||[]),this.columnFilter.collection&&Pi(this.columnFilter.collection,this.watchCallback.bind(this))}watchCallback(e){this.renderDomElement(this.columnFilter.collection||e||[])}renderDomElement(e){var n,o,l,a;if(!Array.isArray(e)&&((n=this.collectionOptions)!=null&&n.collectionInsideObjectProperty)){const h=this.collectionOptions.collectionInsideObjectProperty;e=Ee(e,h||"")}if(!Array.isArray(e))throw new Error('The "collection" passed to the Select Filter is not a valid array.');let t=[];if(e.length>0&&(t=[...e]),(o=this.collectionOptions)!=null&&o.addBlankEntry&&Array.isArray(t)&&t.length>0&&t[0][this.valueName]!==""&&t.unshift(this.createBlankEntry()),(l=this.collectionOptions)!=null&&l.addCustomFirstEntry&&Array.isArray(t)&&t.length>0&&t[0][this.valueName]!==this.collectionOptions.addCustomFirstEntry[this.valueName]&&t.unshift(this.collectionOptions.addCustomFirstEntry),(a=this.collectionOptions)!=null&&a.addCustomLastEntry&&Array.isArray(t)&&t.length>0){const h=t.length-1;t[h][this.valueName]!==this.collectionOptions.addCustomLastEntry[this.valueName]&&t.push(this.collectionOptions.addCustomLastEntry)}let i=t;i=this.filterCollection(i),i=this.sortCollection(i);const s=vl("filter",i,this.columnDef,this.grid,this.isMultipleSelect,this.translaterService,this.searchTerms||[]);this.isFilled=s.hasFoundSearchTerm,this.createFilterElement(s.selectElement,s.dataCollection),this._collectionLength=i.length}createBlankEntry(){const e={[this.labelName]:"",[this.valueName]:""};return this.labelPrefixName&&(e[this.labelPrefixName]=""),this.labelSuffixName&&(e[this.labelSuffixName]=""),e}createFilterElement(e,t){var s;const i=((s=this.columnDef)==null?void 0:s.id)??"";this.elementName=`filter-${i}`,this.defaultOptions.name=this.elementName,J(this.filterContainerElm),this.filterElm=e,this.filterElm.dataset.columnId=`${i}`,this.updateFilterStyle(this.isFilled),this.filterContainerElm.appendChild(e),this.filterElmOptions={...this.defaultOptions,...this.filterOptions,data:t},this._msInstance=wi(e,this.filterElmOptions)}initMultipleSelectTemplate(){var s,n,o,l,a,h,d,c,u,p,m,f,g;const e=((s=this.gridOptions)==null?void 0:s.enableTranslate)??!1,i={autoAdjustDropHeight:!0,autoAdjustDropPosition:!0,autoAdjustDropWidthByTextSize:!0,name:`${((n=this.columnDef)==null?void 0:n.id)??""}`,container:"body",darkMode:!!this.gridOptions.darkMode,filter:!1,maxHeight:275,single:!0,singleRadio:!0,showSearchClear:!0,renderOptionLabelAsHtml:((o=this.columnFilter)==null?void 0:o.enableRenderHtml)??!1,sanitizer:_=>this.grid.sanitizeHtmlString(_),onClose:()=>this.onTriggerEvent(),onClear:()=>this.clear()};if(this._isMultipleSelect){i.single=!1,i.singleRadio=!1,i.showOkButton=!0,i.displayTitle=!0;const _=ot(this.gridOptions);i.countSelectedText=e&&((l=this.translaterService)!=null&&l.translate)?this.translaterService.translate(`${_}X_OF_Y_SELECTED`):(a=this._locales)==null?void 0:a.TEXT_X_OF_Y_SELECTED,i.allSelectedText=e&&((h=this.translaterService)!=null&&h.translate)?this.translaterService.translate(`${_}ALL_SELECTED`):(d=this._locales)==null?void 0:d.TEXT_ALL_SELECTED,i.noMatchesFoundText=e&&((c=this.translaterService)!=null&&c.translate)?this.translaterService.translate(`${_}NO_MATCHES_FOUND`):(u=this._locales)==null?void 0:u.TEXT_NO_MATCHES_FOUND,i.okButtonText=e&&((p=this.translaterService)!=null&&p.translate)?this.translaterService.translate(`${_}OK`):(m=this._locales)==null?void 0:m.TEXT_OK,i.selectAllText=e&&((f=this.translaterService)!=null&&f.translate)?this.translaterService.translate(`${_}SELECT_ALL`):(g=this._locales)==null?void 0:g.TEXT_SELECT_ALL}this.defaultOptions=i}onTriggerEvent(){if(this._msInstance){const e=this.getValues();this.updateFilterStyle(Array.isArray(e)&&e.length>1||e.length===1&&e[0]!==""),this.searchTerms=e,this.callback(void 0,{columnDef:this.columnDef,operator:this.operator,searchTerms:e,shouldTriggerQuery:this._shouldTriggerQuery}),this._shouldTriggerQuery=!0}}updateFilterStyle(e){var t,i,s,n,o,l;e?(this.isFilled=!0,(t=this.filterElm)==null||t.classList.add("filled"),(s=(i=this._msInstance)==null?void 0:i.getParentElement())==null||s.classList.add("filled")):(this.isFilled=!1,(n=this.filterElm)==null||n.classList.remove("filled"),(l=(o=this._msInstance)==null?void 0:o.getParentElement())==null||l.classList.remove("filled"))}}class ip extends xa{constructor(e,t,i){super(e,t,i,!0),this.translaterService=e,this.collectionService=t,this.rxjs=i}}class sp extends xa{constructor(e,t,i){super(e,t,i,!1),this.translaterService=e,this.collectionService=t,this.rxjs=i}}class np extends br{constructor(e){super(e),this.translaterService=e,this.sliderType="single"}}class rp extends br{constructor(e){super(e),this.translaterService=e,this.sliderType="double"}}const qs={autocompleter:Kh,compoundDate:uc,compoundInput:ba,compoundInputNumber:Au,compoundInputPassword:Pu,compoundInputText:ba,compoundSlider:Fu,dateRange:Du,input:Ut,inputMask:Mu,inputNumber:Nu,inputPassword:Lu,inputText:Ut,multipleSelect:ip,singleSelect:sp,slider:np,sliderRange:rp};class op{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}}const Rr={alwaysShowVerticalScroll:!0,autoEdit:!1,asyncEditorLoading:!1,autoFitColumnsOnFirstLoad:!0,autoFixResizeTimeout:5*60*5,autoFixResizeRequiredGoodCount:2,autoFixResizeWhenBrokenStyleDetected:!1,autoParseInputFilterOperator:!0,autoResize:{applyResizeToContainer:!0,calculateAvailableSizeBy:"window",bottomPadding:20,minHeight:180,minWidth:300,rightPadding:0},cellHighlightCssClass:"slick-cell-modified",checkboxSelector:{cssClass:"slick-cell-checkboxsel",width:40},columnGroupSeparator:" - ",columnPicker:{hideForceFitButton:!1,hideSyncResizeButton:!0,headerColumnValueExtractor:Ia},cellMenu:{autoAdjustDrop:!0,autoAlignSide:!0,hideCloseButton:!0,hideCommandSection:!1,hideOptionSection:!1,showBulletWhenIconMissing:!0,subItemChevronClass:"mdi mdi-chevron-down mdi-rotate-270"},compositeEditorOptions:{labels:{cancelButtonKey:"CANCEL",cloneButtonKey:"CLONE",resetEditorButtonTooltipKey:"RESET_INPUT_VALUE",resetFormButtonKey:"RESET_FORM",massSelectionButtonKey:"APPLY_TO_SELECTION",massSelectionStatusKey:"X_OF_Y_MASS_SELECTED",massUpdateButtonKey:"APPLY_MASS_UPDATE",massUpdateStatusKey:"ALL_X_RECORDS_SELECTED",saveButtonKey:"SAVE"}},contextMenu:{autoAdjustDrop:!0,autoAlignSide:!0,hideCloseButton:!0,hideClearAllGrouping:!1,hideCollapseAllGroups:!1,hideCommandSection:!1,hideCopyCellValueCommand:!1,hideExpandAllGroups:!1,hideExportCsvCommand:!1,hideExportExcelCommand:!1,hideExportTextDelimitedCommand:!0,hideMenuOnScroll:!0,hideOptionSection:!1,iconCollapseAllGroupsCommand:"mdi mdi-arrow-collapse",iconExpandAllGroupsCommand:"mdi mdi-arrow-expand",iconClearGroupingCommand:"mdi mdi-close",iconCopyCellValueCommand:"mdi mdi-content-copy",iconExportCsvCommand:"mdi mdi-download",iconExportExcelCommand:"mdi mdi-file-excel-outline",iconExportTextDelimitedCommand:"mdi mdi-download",showBulletWhenIconMissing:!0,subItemChevronClass:"mdi mdi-chevron-down mdi-rotate-270"},customFooterOptions:{dateFormat:"YYYY-MM-DD, hh:mm a",hideRowSelectionCount:!1,hideTotalItemCount:!1,hideLastUpdateTimestamp:!0,footerHeight:25,leftContainerClass:"col-xs-12 col-sm-5",rightContainerClass:"col-xs-6 col-sm-7",metricSeparator:"|",metricTexts:{itemsKey:"ITEMS",ofKey:"OF",itemsSelectedKey:"ITEMS_SELECTED"}},customTooltip:{tooltipTextMaxLength:700,maxWidth:500},dataView:{syncGridSelection:{preserveHidden:!1,preserveHiddenOnSelectionChange:!0},syncGridSelectionWithBackendService:!1},datasetIdPropertyName:"id",defaultFilter:qs.input,defaultBackendServiceFilterTypingDebounce:500,enableFilterTrimWhiteSpace:!1,defaultFilterPlaceholder:"🔎︎",defaultFilterRangeOperator:H.rangeInclusive,defaultColumnSortFieldId:"id",draggableGrouping:{hideToggleAllButton:!1,toggleAllButtonText:"",dropPlaceHolderTextKey:"DROP_COLUMN_HEADER_TO_GROUP_BY"},editable:!1,editorTypingDebounce:450,filterTypingDebounce:0,enableEmptyDataWarningMessage:!0,emptyDataWarning:{className:"slick-empty-data-warning",messageKey:"EMPTY_DATA_WARNING_MESSAGE",hideFrozenLeftWarning:!1,hideFrozenRightWarning:!1,leftViewportMarginLeft:"40%",rightViewportMarginLeft:"40%",frozenLeftViewportMarginLeft:"0px",frozenRightViewportMarginLeft:"40%"},enableAutoResize:!0,enableAutoSizeColumns:!0,enableCellNavigation:!1,enableColumnPicker:!0,enableColumnReorder:!0,enableColumnResizeOnDoubleClick:!0,enableContextMenu:!0,enableExcelExport:!1,enableTextExport:!1,enableGridMenu:!0,enableHeaderMenu:!0,enableMouseHoverHighlightRow:!0,enableSorting:!0,enableTextSelectionOnCells:!0,explicitInitialization:!0,excelExportOptions:{addGroupIndentation:!0,autoDetectCellFormat:!0,exportWithFormatter:!1,filename:"export",format:ve.xlsx,groupingColumnHeaderTitle:"Group By",groupCollapsedSymbol:"⮞",groupExpandedSymbol:"⮟",groupingAggregatorRowText:"",sanitizeDataExport:!0},textExportOptions:{delimiter:wt.comma,exportWithFormatter:!1,filename:"export",format:ve.csv,groupingColumnHeaderTitle:"Group By",groupingAggregatorRowText:"",sanitizeDataExport:!0,useUtf8WithBom:!0},eventNamingStyle:ct.lowerCase,forceFitColumns:!1,frozenHeaderWidthCalcDifferential:1,gridMenu:{dropSide:"left",commandLabels:{clearAllFiltersCommandKey:"CLEAR_ALL_FILTERS",clearAllSortingCommandKey:"CLEAR_ALL_SORTING",clearFrozenColumnsCommandKey:"CLEAR_PINNING",exportCsvCommandKey:"EXPORT_TO_CSV",exportExcelCommandKey:"EXPORT_TO_EXCEL",exportTextDelimitedCommandKey:"EXPORT_TO_TAB_DELIMITED",refreshDatasetCommandKey:"REFRESH_DATASET",toggleDarkModeCommandKey:"TOGGLE_DARK_MODE",toggleFilterCommandKey:"TOGGLE_FILTER_ROW",togglePreHeaderCommandKey:"TOGGLE_PRE_HEADER_ROW"},hideClearAllFiltersCommand:!1,hideClearAllSortingCommand:!1,hideClearFrozenColumnsCommand:!0,hideExportCsvCommand:!1,hideExportExcelCommand:!1,hideExportTextDelimitedCommand:!0,hideForceFitButton:!1,hideRefreshDatasetCommand:!1,hideSyncResizeButton:!0,hideToggleFilterCommand:!1,hideToggleDarkModeCommand:!0,hideTogglePreHeaderCommand:!1,iconCssClass:"mdi mdi-menu",iconClearAllFiltersCommand:"mdi mdi-filter-remove-outline",iconClearAllSortingCommand:"mdi mdi-sort-variant-off",iconClearFrozenColumnsCommand:"mdi mdi-pin-off-outline",iconExportCsvCommand:"mdi mdi-download",iconExportExcelCommand:"mdi mdi-file-excel-outline",iconExportTextDelimitedCommand:"mdi mdi-download",iconRefreshDatasetCommand:"mdi mdi-sync",iconToggleDarkModeCommand:"mdi mdi-brightness-4",iconToggleFilterCommand:"mdi mdi-flip-vertical",iconTogglePreHeaderCommand:"mdi mdi-flip-vertical",menuWidth:16,resizeOnShowHeaderRow:!0,showBulletWhenIconMissing:!0,subItemChevronClass:"mdi mdi-chevron-down mdi-rotate-270",headerColumnValueExtractor:Ia},headerMenu:{autoAlign:!0,autoAlignOffset:4,minWidth:140,iconClearFilterCommand:"mdi mdi-filter-remove-outline",iconClearSortCommand:"mdi mdi-sort-variant-off",iconFilterShortcutSubMenu:"mdi mdi-filter-outline",iconFreezeColumns:"mdi mdi-pin-outline",iconSortAscCommand:"mdi mdi-sort-ascending",iconSortDescCommand:"mdi mdi-sort-descending",iconColumnHideCommand:"mdi mdi-close",iconColumnResizeByContentCommand:"mdi mdi-arrow-expand-horizontal",hideColumnResizeByContentCommand:!1,hideColumnHideCommand:!1,hideClearFilterCommand:!1,hideClearSortCommand:!1,hideFreezeColumnsCommand:!0,hideSortCommands:!1,subItemChevronClass:"mdi mdi-chevron-down mdi-rotate-270"},ignoreAccentOnStringFilterAndSort:!1,multiColumnSort:!0,numberedMultiColumnSort:!0,tristateMultiColumnSort:!1,sortColNumberInSeparateSpan:!0,suppressActiveCellChangeOnEdit:!1,pagination:{pageSizes:[10,15,20,25,30,40,50,75,100],pageSize:25,totalItems:0},headerRowHeight:35,rowHeight:35,topPanelHeight:30,translationNamespaceSeparator:":",resetFilterSearchValueAfterOnBeforeCancellation:!0,resizeByContentOnlyOnFirstLoad:!0,resizeByContentOptions:{alwaysRecalculateColumnWidth:!1,cellCharWidthInPx:7.8,cellPaddingWidthInPx:14,defaultRatioForStringType:.88,formatterPaddingWidthInPx:0,maxItemToInspectCellContentWidth:1e3,maxItemToInspectSingleColumnWidthByContent:5e3,widthToRemoveFromExceededWidthReadjustment:50},treeDataOptions:{exportIndentMarginLeft:5,exportIndentationLeadingChar:"͏͏͏͏͏͏͏͏͏·"}};function Ia(r,e){const t=(r==null?void 0:r.columnGroup)||"",i=(e==null?void 0:e.columnGroupSeparator)??" - ";return t?t+i+r.name:(r==null?void 0:r.name)??""}class lp{constructor(e){this._isInitialized=!1,this._isTreeAggregator=!1,this._sum=0,this._itemCount=0,this._type="sum",this._field=e}get field(){return this._field}get isInitialized(){return this._isInitialized}get type(){return this._type}init(e,t=!1){this._isTreeAggregator=t,this._isInitialized=!0,this._sum=0,this._itemCount=0,t&&(e.__treeTotals||(e.__treeTotals={}),e.__treeTotals[this._type]===void 0&&(e.__treeTotals[this._type]={},e.__treeTotals.count={}),e.__treeTotals.count[this._field]=0,e.__treeTotals[this._type][this._field]=0)}accumulate(e,t=!1){const i=e!=null&&e.hasOwnProperty(this._field)?e[this._field]:null;this._isTreeAggregator?t?(e.__treeTotals||(e.__treeTotals={}),this.addGroupTotalPropertiesWhenNotExist(e.__treeTotals),this._sum=parseFloat(e.__treeTotals[this._type][this._field]??0),this._itemCount=e.__treeTotals.count[this._field]??0):U(i)&&(this._sum=parseFloat(i),this._itemCount=1):U(i)&&(this._sum+=parseFloat(i))}storeResult(e){(!e||e[this._type]===void 0)&&(e[this._type]={}),this.addGroupTotalPropertiesWhenNotExist(e);let t=this._sum,i=this._itemCount;this._isTreeAggregator&&(t+=e[this._type][this._field],i+=e.count[this._field],e.count[this._field]=i),e[this._type][this._field]=t}addGroupTotalPropertiesWhenNotExist(e){e[this._type]===void 0&&(e[this._type]={}),this._isTreeAggregator&&e.count===void 0&&(e.count={})}}class ap{constructor(e){this._isInitialized=!1,this._isTreeAggregator=!1,this._max=null,this._type="max",this._field=e}get field(){return this._field}get isInitialized(){return this._isInitialized}get type(){return this._type}init(e,t=!1){this._max=null,this._isInitialized=!0,this._isTreeAggregator=t,t&&(e.__treeTotals||(e.__treeTotals={}),e.__treeTotals[this._type]===void 0&&(e.__treeTotals[this._type]={}),e.__treeTotals[this._type][this._field]=null)}accumulate(e,t=!1){const i=e!=null&&e.hasOwnProperty(this._field)?e[this._field]:null;if(!this._isTreeAggregator)this.keepMaxValueWhenFound(i);else if(t){e.__treeTotals||(e.__treeTotals={}),this.addGroupTotalPropertiesWhenNotExist(e.__treeTotals);const s=e.__treeTotals[this._type][this._field]!==null?parseFloat(e.__treeTotals[this._type][this._field]):null;s!==null&&U(s)&&(this._max===null||s>this._max)&&(this._max=s)}else U(i)&&this.keepMaxValueWhenFound(i)}storeResult(e){let t=this._max;if(this.addGroupTotalPropertiesWhenNotExist(e),this._isTreeAggregator&&t!==null){const i=e[this._type][this._field];U(i)&&i>t&&(t=i)}e[this._type][this._field]=t}addGroupTotalPropertiesWhenNotExist(e){e[this._type]===void 0&&(e[this._type]={})}keepMaxValueWhenFound(e){U(e)&&(this._max===null||e>this._max)&&(this._max=parseFloat(e))}}class hp{constructor(e){this._isInitialized=!1,this._distinctValues=[],this._type="distinct",this._field=e}get field(){return this._field}get isInitialized(){return this._isInitialized}get type(){return this._type}init(e,t=!1){if(this._distinctValues=[],this._isInitialized=!0,t)throw new Error("[Slickgrid-Universal] CloneAggregator is not currently supported for use with Tree Data")}accumulate(e){const t=e&&e.hasOwnProperty(this._field)?e[this._field]:void 0;this._distinctValues.indexOf(t)===-1&&t!==void 0&&this._distinctValues.push(t)}storeResult(e){(!e||e[this._type]===void 0)&&(e[this._type]={}),e[this._type][this._field]=this._distinctValues}}class dp{constructor(e){this._isInitialized=!1,this._isTreeAggregator=!1,this._min=null,this._type="min",this._field=e}get field(){return this._field}get isInitialized(){return this._isInitialized}get type(){return this._type}init(e,t=!1){this._min=null,this._isInitialized=!0,this._isTreeAggregator=t,t&&(e.__treeTotals||(e.__treeTotals={}),e.__treeTotals[this._type]===void 0&&(e.__treeTotals[this._type]={}),e.__treeTotals[this._type][this._field]=null)}accumulate(e,t=!1){const i=e!=null&&e.hasOwnProperty(this._field)?e[this._field]:null;if(!this._isTreeAggregator)this.keepMinValueWhenFound(i);else if(t){e.__treeTotals||(e.__treeTotals={}),this.addGroupTotalPropertiesWhenNotExist(e.__treeTotals);const s=e.__treeTotals[this._type][this._field]!==null?parseFloat(e.__treeTotals[this._type][this._field]):null;s!==null&&U(s)&&(this._min===null||s<this._min)&&(this._min=s)}else U(i)&&this.keepMinValueWhenFound(i)}storeResult(e){let t=this._min;if(this.addGroupTotalPropertiesWhenNotExist(e),this._isTreeAggregator&&t!==null){const i=e[this._type][this._field];U(i)&&i<t&&(t=i)}e[this._type][this._field]=t}addGroupTotalPropertiesWhenNotExist(e){e[this._type]===void 0&&(e[this._type]={})}keepMinValueWhenFound(e){U(e)&&(this._min===null||e<this._min)&&(this._min=parseFloat(e))}}class cp{constructor(e){this._isInitialized=!1,this._isTreeAggregator=!1,this._count=0,this._type="count",this._field=e}get field(){return this._field}get isInitialized(){return this._isInitialized}get type(){return this._type}init(e,t=!1){this._count=0,this._isInitialized=!0,this._isTreeAggregator=t,t&&(e.__treeTotals||(e.__treeTotals={}),e.__treeTotals[this._type]===void 0&&(e.__treeTotals[this._type]={}),e.__treeTotals[this._type][this._field]=0)}accumulate(e,t=!1){const i=e!=null&&e.hasOwnProperty(this._field)?e[this._field]:null;this._isTreeAggregator&&(t?(e.__treeTotals||(e.__treeTotals={}),e.__treeTotals[this._type]===void 0&&(e.__treeTotals[this._type]={}),this._count=e.__treeTotals[this._type][this._field]??0):U(i)&&(this._count=1))}storeResult(e){var i;(!e||e[this._type]===void 0)&&(e[this._type]={});let t=this._count;this._isTreeAggregator?t+=e[this._type][this._field]:t=((i=e.group)==null?void 0:i.rows.length)??0,e[this._type][this._field]=t}}class up{constructor(e){this._isInitialized=!1,this._data="",this._type="clone",this._field=e}get field(){return this._field}get isInitialized(){return this._isInitialized}get type(){return this._type}init(e,t=!1){if(this._data="",this._isInitialized=!0,t)throw new Error("[Slickgrid-Universal] CloneAggregator is not currently supported for use with Tree Data")}accumulate(e){const t=e&&e.hasOwnProperty(this._field)?e[this._field]:null;t!==null&&t!==""&&(this._data=t)}storeResult(e){(!e||e[this._type]===void 0)&&(e[this._type]={}),e[this._type][this._field]=this._data}}class pp{constructor(e){this._isInitialized=!1,this._isTreeAggregator=!1,this._nonNullCount=0,this._sum=0,this._type="avg",this._field=e}get field(){return this._field}get isInitialized(){return this._isInitialized}get type(){return this._type}init(e,t=!1){this._sum=0,this._nonNullCount=0,this._isInitialized=!0,this._isTreeAggregator=t,t&&(e.__treeTotals||(e.__treeTotals={}),e.__treeTotals[this._type]===void 0&&(e.__treeTotals[this._type]={},e.__treeTotals.sum={},e.__treeTotals.count={}),e.__treeTotals[this._type][this._field]=0,e.__treeTotals.count[this._field]=0,e.__treeTotals.sum[this._field]=0)}accumulate(e,t=!1){const i=e!=null&&e.hasOwnProperty(this._field)?e[this._field]:null;this._isTreeAggregator?t?(e.__treeTotals||(e.__treeTotals={}),this.addGroupTotalPropertiesWhenNotExist(e.__treeTotals),this._sum=parseFloat(e.__treeTotals.sum[this._field]??0),this._nonNullCount=e.__treeTotals.count[this._field]??0):U(i)&&(this._sum=parseFloat(i),this._nonNullCount=1):U(i)&&(this._nonNullCount++,this._sum+=parseFloat(i))}storeResult(e){let t=this._sum,i=this._nonNullCount;this.addGroupTotalPropertiesWhenNotExist(e),this._isTreeAggregator&&(t+=e.sum[this._field],i+=e.count[this._field],e.sum[this._field]=t,e.count[this._field]=i),i!==0&&(e[this._type][this._field]=i===0?t:t/i)}addGroupTotalPropertiesWhenNotExist(e){e[this._type]===void 0&&(e[this._type]={}),this._isTreeAggregator&&e.sum===void 0&&(e.sum={}),this._isTreeAggregator&&e.count===void 0&&(e.count={})}}const Ar={Avg:pp,Clone:up,Count:cp,Distinct:hp,Min:dp,Max:ap,Sum:lp};function Ks(r,e){const t=e.errorMessage,i=e.required,s=e.minLength,n=e.maxLength,o=e.operatorConditionalType||"inclusive",l={"{{minLength}}":s,"{{maxLength}}":n};let a=!0,h="";const d=(r==null?void 0:r.length)??0;if(e.validator)return e.validator(r,e.editorArgs);if(i&&r==="")a=!1,h=t||R.VALIDATION_REQUIRED_FIELD;else if(s!==void 0&&n!==void 0&&(o==="exclusive"&&(d<=s||d>=n)||o==="inclusive"&&(d<s||d>n)))a=!1,h=t||R.VALIDATION_EDITOR_TEXT_LENGTH_BETWEEN.replace(/{{minLength}}|{{maxLength}}/gi,c=>l[c]);else if(s!==void 0&&d!==null&&(o==="exclusive"&&d<=s||o==="inclusive"&&d!==null&&d<s)){a=!1;const c=o==="inclusive"?R.VALIDATION_EDITOR_TEXT_MIN_LENGTH_INCLUSIVE:R.VALIDATION_EDITOR_TEXT_MIN_LENGTH;h=t||c.replace(/{{minLength}}/gi,u=>l[u])}else if(n!==void 0&&d!==null&&(o==="exclusive"&&d>=n||o==="inclusive"&&d!==null&&d>n)){a=!1;const c=o==="inclusive"?R.VALIDATION_EDITOR_TEXT_MAX_LENGTH_INCLUSIVE:R.VALIDATION_EDITOR_TEXT_MAX_LENGTH;h=t||c.replace(/{{maxLength}}/gi,u=>l[u])}return{valid:a,msg:h}}const mp=3;class fp{constructor(e){var t;if(this.args=e,this._isValueTouched=!1,this._lastTriggeredByClearInput=!1,this.disabled=!1,this.forceUserInput=!1,this.finalCollection=[],!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this._bindEventService=new Ae,(t=this.gridOptions)!=null&&t.translater&&(this._translater=this.gridOptions.translater),this._locales=this.gridOptions&&this.gridOptions.locales||R.locales,this.init()}get autocompleterOptions(){return this._autocompleterOptions||{}}get collection(){var e;return((e=this.columnEditor)==null?void 0:e.collection)??[]}get editorDomElement(){return this._inputElm}get elementCollection(){return this._elementCollection}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)||{}}get customStructure(){var i,s,n,o,l;let e=(i=this.columnEditor)==null?void 0:i.customStructure;const t=((s=this.columnEditor)==null?void 0:s.type)??((n=this.columnDef)==null?void 0:n.type);return!e&&t===S.object&&((o=this.columnDef)!=null&&o.dataKey)&&((l=this.columnDef)!=null&&l.labelKey)&&(e={label:this.columnDef.labelKey,value:this.columnDef.dataKey}),e}get dataContext(){return this.args.item}get editorOptions(){var e,t;return{...(e=this.gridOptions.defaultEditorOptions)==null?void 0:e.autocompleter,...(t=this.columnEditor)==null?void 0:t.editorOptions}}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())??{}}get instance(){return this._instance}get hasAutoCommitEdit(){return this.gridOptions.autoCommitEdit??!1}get validator(){var e,t;return((e=this.columnEditor)==null?void 0:e.validator)??((t=this.columnDef)==null?void 0:t.validator)}init(){var t,i,s,n,o,l;this.labelName=((t=this.customStructure)==null?void 0:t.label)??"label",this.valueName=((i=this.customStructure)==null?void 0:i.value)??"value",this.labelPrefixName=((s=this.customStructure)==null?void 0:s.labelPrefix)??"labelPrefix",this.labelSuffixName=((n=this.customStructure)==null?void 0:n.labelSuffix)??"labelSuffix";let e=this.columnEditor.collection;(o=this.columnEditor)!=null&&o.collectionAsync&&!e&&(e=[]),this.renderDomElement(e),(this.disabled||(l=this.columnEditor)!=null&&l.collectionAsync&&Array.isArray(e)&&e.length===0)&&this.disable(!0)}destroy(){var e,t,i;this._bindEventService.unbindAll(),typeof((e=this._instance)==null?void 0:e.destroy)=="function"&&this._instance.destroy(),(i=(t=this._inputElm)==null?void 0:t.remove)==null||i.call(t),this._elementCollection=null}disable(e=!0){var i;const t=this.disabled;if(this.disabled=e,this._inputElm)if(e){this._inputElm.disabled=!0;const s=this.getValue();t!==e&&((i=this.args)!=null&&i.compositeEditorOptions)&&s!==""&&this.clear(!0)}else this._inputElm.disabled=!1}focus(){this.grid.focus(),this._inputElm&&(this._inputElm.focus(),this._inputElm.select())}show(){var t;!!((t=this.args)!=null&&t.compositeEditorOptions)&&this.applyInputUsabilityState()}getValue(){return this._inputElm.value}setValue(e,t=!1,i=!0){if(this._inputElm.value=e!=null&&e.hasOwnProperty(this.labelName)?e[this.labelName]:e,t){this._currentValue=e,this._defaultTextValue=typeof e=="string"?e:(e==null?void 0:e[this.labelName])??"",this.applyValue(this.args.item,this.serializeValue());const s=this.args.compositeEditorOptions;s&&i&&this.handleChangeOnCompositeEditor(null,s,"system")}}applyValue(e,t){var n,o;let i=t;const s=(n=this.columnDef)==null?void 0:n.field;if(s!==void 0){Array.isArray(this.collection)&&this.collection.length>0&&(i=xt(this.collection,h=>h&&Ht(t)&&h.hasOwnProperty(this.valueName)?h[this.valueName].toString()===(t.hasOwnProperty(this.valueName)&&t[this.valueName].toString()):h&&typeof t=="string"&&h.hasOwnProperty(this.valueName)?h[this.valueName].toString()===t:(h==null?void 0:h.toString())===t,""));const l=(s==null?void 0:s.indexOf("."))>0,a=this.validate(null,i);if(i=a!=null&&a.valid?i:"",l){const h=((o=this.columnEditor)==null?void 0:o.complexObjectPath)??s??"";$e(e,h,i)}else e[s]=i}}isValueChanged(){var s,n;const e=this._inputElm.value,t=(s=this._lastInputKeyEvent)==null?void 0:s.key;if((n=this.columnEditor)!=null&&n.alwaysSaveOnEnterKey&&t==="Enter")return!0;const i=!(e===""&&(this._defaultTextValue===null||this._defaultTextValue===void 0))&&e!==this._defaultTextValue;return this._lastTriggeredByClearInput||i}isValueTouched(){return this._isValueTouched}loadValue(e){var i;const t=(i=this.columnDef)==null?void 0:i.field;if(e&&t!==void 0){const n=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e[t];this._currentValue=n,this._originalValue=n,this._defaultTextValue=typeof n=="string"?n:(n==null?void 0:n[this.labelName])??"",this._inputElm.value=this._defaultTextValue,this._inputElm.select()}}clear(e=!1){this._inputElm&&(this._currentValue="",this._defaultTextValue="",this.setValue("",!0)),this._isValueTouched=!0,this._lastTriggeredByClearInput=!0;const t=this.args.compositeEditorOptions;if(t){const i=!e;this.handleChangeOnCompositeEditor(null,t,"user",i)}else this.save()}reset(e,t=!0,i=!1){const s=e??this._originalValue??"";this._inputElm&&(this._currentValue=s,this._defaultTextValue=typeof s=="string"?s:(s==null?void 0:s[this.labelName])??"",this._inputElm.value=this._defaultTextValue),this._isValueTouched=!1;const n=this.args.compositeEditorOptions;if(n&&t){const o=!i;this.handleChangeOnCompositeEditor(null,n,"user",o)}}save(){const e=this.validate(),t=(e==null?void 0:e.valid)??!1;this.hasAutoCommitEdit&&t?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges()}serializeValue(){var e,t,i,s,n;if(this._inputElm&&this.editorOptions.forceUserInput){const o=((e=this.editorOptions)==null?void 0:e.minLength)??mp;this._currentValue=this._inputElm.value.length>o?this._inputElm.value:this._currentValue}return this.customStructure&&this._currentValue&&this._currentValue.hasOwnProperty(this.valueName)&&((t=this.columnDef)==null?void 0:t.type)!==S.object&&((i=this.columnEditor)==null?void 0:i.type)!==S.object?this._currentValue[this.valueName]:this._currentValue&&this._currentValue.value!==void 0?((s=this.columnDef)==null?void 0:s.type)===S.object||((n=this.columnEditor)==null?void 0:n.type)===S.object?{[this.labelName]:this._currentValue.label,[this.valueName]:this._currentValue.value}:this._currentValue.value:this._currentValue}validate(e,t){var s,n;if(this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};const i=t!==void 0?t:(s=this._inputElm)==null?void 0:s.value;return Ks(i,{editorArgs:this.args,errorMessage:this.columnEditor.errorMessage,minLength:this.columnEditor.minLength,maxLength:this.columnEditor.maxLength,operatorConditionalType:this.columnEditor.operatorConditionalType,required:(n=this.args)!=null&&n.compositeEditorOptions?!1:this.columnEditor.required,validator:this.validator})}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}handleChangeOnCompositeEditor(e,t,i="user",s=!1){var u,p,m;const n=this.grid.getActiveCell(),o=this.args.column,l=((u=this.columnDef)==null?void 0:u.id)??"",a=this.dataContext,h=this.grid,d=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,d),this.applyValue(t.formValues,d);const c=((m=(p=this.gridOptions)==null?void 0:p.compositeEditorOptions)==null?void 0:m.excludeDisabledFieldFormValues)??!1;(s||this.disabled&&c&&t.formValues.hasOwnProperty(l))&&delete t.formValues[l],h.onCompositeEditorChange.notify({...n,item:a,grid:h,column:o,formValues:t.formValues,editors:t.editors,triggeredBy:i},new le(e))}handleSelect(e){var t;if(e!==void 0){const s=e;this._currentValue=s,this._isValueTouched=!0;const n=this.args.compositeEditorOptions,o=((t=this.editorOptions)==null?void 0:t.renderItem)??!1,l=typeof s=="string"?s:o?s[this.labelName]:s.label;if(this.setValue(l),n?this.handleChangeOnCompositeEditor(null,n):this.save(),typeof this.editorOptions.onSelectItem=="function"){const{row:a,cell:h}=this.grid.getActiveCell()||{};this.editorOptions.onSelectItem(e,a,h,this.args.column,this.args.item)}setTimeout(()=>this._lastTriggeredByClearInput=!1)}return!1}renderRegularItem(e){const t=typeof e=="string"?e:(e==null?void 0:e.label)??"";return v("div",{textContent:t||""})}renderCustomItem(e){var s,n;const t=((n=(s=this._autocompleterOptions)==null?void 0:s.renderItem)==null?void 0:n.templateCallback(e))??"",i=document.createElement("div");return this.grid.applyHtmlCode(i,t),i}renderCollectionItem(e){var h;const t=((h=this.columnEditor)==null?void 0:h.enableRenderHtml)??!1,i=e.labelPrefix||"",s=e.label||"",n=e.labelSuffix||"",o=i+s+n,l=this.grid.sanitizeHtmlString(o)||"",a=document.createElement("div");return a[t?"innerHTML":"textContent"]=l,a}renderDomElement(e){var l,a,h,d,c,u,p,m,f,g,_,b;const t=((l=this.columnDef)==null?void 0:l.id)??"",i=((a=this.columnEditor)==null?void 0:a.placeholder)??"",s=((h=this.columnEditor)==null?void 0:h.title)??"";this._editorInputGroupElm=v("div",{className:"autocomplete-container input-group"});const n=v("span",{className:"input-group-btn input-group-append",dataset:{clear:""}});this._clearButtonElm=v("button",{type:"button",className:"btn btn-default btn-clear"}),this._clearButtonElm.appendChild(v("i",{className:"icon-clear"})),this._inputElm=v("input",{type:"text",placeholder:i,title:s,autocomplete:"off",ariaAutoComplete:"none",className:`autocomplete form-control editor-text input-group-editor editor-${t}`,dataset:{input:""}},this._editorInputGroupElm),this._editorInputGroupElm.appendChild(document.createElement("span")),(d=this.editorOptions)!=null&&d.hideClearButton||(n.appendChild(this._clearButtonElm),this._editorInputGroupElm.appendChild(n),this._bindEventService.bind(this._clearButtonElm,"click",()=>this.clear())),this._bindEventService.bind(this._inputElm,"focus",()=>{var C;return(C=this._inputElm)==null?void 0:C.select()}),this._bindEventService.bind(this._inputElm,"keydown",C=>{this._lastInputKeyEvent=C,(C.key==="ArrowLeft"||C.key==="ArrowRight")&&C.stopImmediatePropagation(),C.key==="Enter"&&C.target.value===""&&this.columnEditor.alwaysSaveOnEnterKey&&(this._currentValue=null)});let o=e;if(o&&((c=this.columnEditor)!=null&&c.collectionOverride)){const C={column:this.columnDef,dataContext:this.dataContext,grid:this.grid,originalCollections:this.collection};if(this.args.compositeEditorOptions){const{formValues:E,modalType:y}=this.args.compositeEditorOptions;C.compositeEditorOptions={formValues:E,modalType:y}}o=this.columnEditor.collectionOverride(o,C)}o&&(this.finalCollection=o),Array.isArray(o)&&(this.collection.every(C=>Bi(C))?o=o.map(C=>({label:C,value:C})):o=o.map(C=>({label:C==null?void 0:C[this.labelName],value:C==null?void 0:C[this.valueName],labelPrefix:(C==null?void 0:C[this.labelPrefixName])??"",labelSuffix:(C==null?void 0:C[this.labelSuffixName])??""})),this._elementCollection=o),this._autocompleterOptions={input:this._inputElm,debounceWaitMs:200,className:`slick-autocomplete ${((u=this.editorOptions)==null?void 0:u.className)??""}`.trim(),emptyMsg:this.gridOptions.enableTranslate&&((p=this._translater)!=null&&p.translate)?this._translater.translate("NO_ELEMENTS_FOUND"):((m=this._locales)==null?void 0:m.TEXT_NO_ELEMENTS_FOUND)??"No elements found",customize:(C,E,y)=>{y.style.width=""},onSelect:this.handleSelect.bind(this),...this.editorOptions},(f=this.gridOptions)!=null&&f.darkMode&&(this._autocompleterOptions.className+=" slick-dark-mode"),this.autocompleterOptions.className=he(this.autocompleterOptions.className).join(" "),(g=this._autocompleterOptions.renderItem)!=null&&g.layout?(this._autocompleterOptions.className+=` autocomplete-custom-${ui(this._autocompleterOptions.renderItem.layout)}`,this._autocompleterOptions.render=this.renderCustomItem.bind(this)):Array.isArray(e)?this._autocompleterOptions.render=((_=this._autocompleterOptions.render)==null?void 0:_.bind(this))??this.renderCollectionItem.bind(this):this._autocompleterOptions.render||(this._autocompleterOptions.render=this.renderRegularItem.bind(this)),(b=this._autocompleterOptions)!=null&&b.fetch?(Bo(this._inputElm,this._autocompleterOptions),this._instance=fs(this._autocompleterOptions)):this._instance=fs({...this._autocompleterOptions,fetch:(C,E)=>{o&&E(o.filter(y=>((typeof y=="string"?y:y==null?void 0:y.label)||"").toLowerCase().includes(C.toLowerCase())))}}),this.args.container.appendChild(this._editorInputGroupElm),this.args.compositeEditorOptions||setTimeout(()=>this.focus(),50)}}class gp{constructor(e){if(this.args=e,this._isValueTouched=!1,this.disabled=!1,!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this.gridOptions=this.grid.getOptions()||{},this._bindEventService=new Ae,this.init()}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)||{}}get dataContext(){return this.args.item}get editorDomElement(){return this._input}get hasAutoCommitEdit(){return this.gridOptions.autoCommitEdit??!1}get validator(){var e,t;return((e=this.columnEditor)==null?void 0:e.validator)??((t=this.columnDef)==null?void 0:t.validator)}init(){var s,n,o,l;const e=((s=this.columnDef)==null?void 0:s.id)??"",t=this.args.compositeEditorOptions;this._checkboxContainerElm=v("div",{className:`checkbox-editor-container editor-${e}`}),this._input=v("input",{type:"checkbox",value:"true",ariaLabel:((n=this.columnEditor)==null?void 0:n.ariaLabel)??`${_t(e+"")} Checkbox Editor`,className:`editor-checkbox editor-${e}`,title:((o=this.columnEditor)==null?void 0:o.title)??""});const i=(l=this.args)==null?void 0:l.container;i&&typeof i.appendChild=="function"&&(t?(this._checkboxContainerElm.appendChild(this._input),i.appendChild(this._checkboxContainerElm)):i.appendChild(this._input)),this.hasAutoCommitEdit&&!t&&this._bindEventService.bind(this._input,"click",()=>{this._isValueTouched=!0,this.save()}),t?this._bindEventService.bind(this._input,"change",a=>{this._isValueTouched=!0,this.handleChangeOnCompositeEditor(a,t)}):this.focus()}destroy(){var e,t;this._bindEventService.unbindAll(),(t=(e=this._input)==null?void 0:e.remove)==null||t.call(e)}disable(e=!0){var i;const t=this.disabled;if(this.disabled=e,this._input)if(e){this._input.setAttribute("disabled","disabled"),this._checkboxContainerElm.classList.add("disabled");const s=this.getValue();t!==e&&((i=this.args)!=null&&i.compositeEditorOptions)&&s!==!1&&this.reset(!1,!0,!0)}else this._input.removeAttribute("disabled"),this._checkboxContainerElm.classList.remove("disabled")}focus(){var e;this.grid.focus(),(e=this._input)==null||e.focus()}preClick(){this._input&&(this._input.checked=!this._input.checked)}show(){var t;!!((t=this.args)!=null&&t.compositeEditorOptions)&&this.applyInputUsabilityState()}getValue(){var e;return((e=this._input)==null?void 0:e.checked)??!1}setValue(e,t=!1,i=!0){const s=!!e;if(this._input&&(this._input.checked=s),t){this.applyValue(this.args.item,this.serializeValue());const n=this.args.compositeEditorOptions;n&&i&&this.handleChangeOnCompositeEditor(null,n,"system")}}applyValue(e,t){var s;const i=this.columnDef&&this.columnDef.field;if(i!==void 0){const n=(i==null?void 0:i.indexOf("."))>0,o=this.validate(null,t),l=o&&o.valid?t:"";if(n){const a=((s=this.columnEditor)==null?void 0:s.complexObjectPath)??i??"";$e(e,a,l)}else e[i]=l}}isValueChanged(){return this.serializeValue()!==this._originalValue}isValueTouched(){return this._isValueTouched}loadValue(e){const t=this.columnDef&&this.columnDef.field;if(e&&t!==void 0&&this._input){const s=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e[t];this._originalValue=s,this._input.checked=!!this._originalValue}}reset(e,t=!0,i=!1){const s=e??this._originalValue??!1;this._input&&(this._originalValue=s,this._input.checked=!!s),this._isValueTouched=!1;const n=this.args.compositeEditorOptions;if(n&&t){const o=!i;this.handleChangeOnCompositeEditor(null,n,"user",o)}}save(){const e=this.validate(),t=e&&e.valid||!1;this.hasAutoCommitEdit&&t?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges()}serializeValue(){var e;return((e=this._input)==null?void 0:e.checked)??!1}validate(e,t){var o,l;const i=(o=this.args)!=null&&o.compositeEditorOptions?!1:this.columnEditor.required,s=t!==void 0?t:(l=this._input)==null?void 0:l.checked,n=this.columnEditor.errorMessage;return this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled?{valid:!0,msg:""}:this.validator?this.validator(s,this.args):i&&!s?{valid:!1,msg:n||R.VALIDATION_REQUIRED_FIELD}:{valid:!0,msg:null}}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}handleChangeOnCompositeEditor(e,t,i="user",s=!1){var u,p,m;const n=this.grid.getActiveCell(),o=this.args.column,l=((u=this.columnDef)==null?void 0:u.id)??"",a=this.dataContext,h=this.grid,d=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,d),this.applyValue(t.formValues,d);const c=((m=(p=this.gridOptions)==null?void 0:p.compositeEditorOptions)==null?void 0:m.excludeDisabledFieldFormValues)??!1;(s||this.disabled&&c&&t.formValues.hasOwnProperty(l))&&delete t.formValues[l],h.onCompositeEditorChange.notify({...n,item:a,grid:h,column:o,formValues:t.formValues,editors:t.editors,triggeredBy:i},new le(e))}}class _p{constructor(e){var t;if(this.args=e,this._isValueTouched=!1,this._lastClickIsDate=!1,this._lastTriggeredByClearDate=!1,this.hasTimePicker=!1,this.disabled=!1,!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this.gridOptions=this.grid.getOptions()||{},(t=this.gridOptions)!=null&&t.translater&&(this._translaterService=this.gridOptions.translater),this._bindEventService=new Ae,this.init()}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)||{}}get dataContext(){return this.args.item}get editorDomElement(){return this._inputElm}get editorOptions(){var e,t;return{...(e=this.gridOptions.defaultEditorOptions)==null?void 0:e.date,...(t=this.columnEditor)==null?void 0:t.editorOptions}}get hasAutoCommitEdit(){return this.gridOptions.autoCommitEdit??!1}get pickerOptions(){return this._pickerMergedOptions}get validator(){var e,t;return((e=this.columnEditor)==null?void 0:e.validator)??((t=this.columnDef)==null?void 0:t.validator)}async init(){var e,t,i,s,n,o,l;if(this.args&&this.columnDef){const a=this.args.compositeEditorOptions,h=((e=this.columnDef)==null?void 0:e.id)??"",d=this.args.grid.getOptions()||{};this.defaultDate=(t=this.args.item)==null?void 0:t[this.columnDef.field];const c=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||S.dateUtc,u=Ze(c),p=((s=(i=this._translaterService)==null?void 0:i.getCurrentLanguage)==null?void 0:s.call(i))||d.locale||"en";u&&(u==="ISO8601"||u.toLowerCase().includes("h"))&&(this.hasTimePicker=!0);const m=Ze(this.hasTimePicker?S.dateTimeIsoAM_PM:S.dateIso),f={input:!0,jumpToSelectedDate:!0,sanitizer:b=>this.grid.sanitizeHtmlString(b),toggleSelected:!1,actions:{clickDay:()=>{this._lastClickIsDate=!0},changeToInput:(b,C)=>{if(C.HTMLInputElement){let E="";if(C.selectedDates[0]?(E=C.selectedDates[0],C.HTMLInputElement.value=Ct(C.selectedDates[0],void 0,c)):C.HTMLInputElement.value="",E&&this.hasTimePicker){const y=ms(E,m);y.setHours(+(C.selectedHours||0)),y.setMinutes(+(C.selectedMinutes||0)),C.HTMLInputElement.value=Ct(y,void 0,c)}this._lastClickIsDate&&(this.handleOnDateChange(),C.hide())}}},settings:{lang:p,iso8601:!1,visibility:{theme:(n=this.gridOptions)!=null&&n.darkMode?"dark":"light",positionToInput:"auto",weekend:!1}}};this.hasTimePicker&&(f.settings.selection={time:24}),this._pickerMergedOptions=de(!0,{},f,{settings:this.editorOptions,type:"default"});const g=`.editor-text.date-picker.editor-${h}.form-control.input-group-editor`;this._editorInputGroupElm=v("div",{className:"vanilla-picker input-group"});const _=v("span",{className:"input-group-btn input-group-append",dataset:{clear:""}});this._clearButtonElm=v("button",{type:"button",className:"btn btn-default btn-clear"}),this._clearButtonElm.appendChild(v("i",{className:"icon-clear"})),this._inputElm=v("input",{placeholder:((o=this.columnEditor)==null?void 0:o.placeholder)??"",title:this.columnEditor&&this.columnEditor.title||"",className:g.replace(/\./g," "),dataset:{input:"",defaultdate:this.defaultDate},readOnly:!0},this._editorInputGroupElm),this.args.container.appendChild(this._editorInputGroupElm),(l=this.columnEditor.editorOptions)!=null&&l.hideClearButton||(_.appendChild(this._clearButtonElm),this._editorInputGroupElm.appendChild(_),this._bindEventService.bind(this._clearButtonElm,"click",()=>{this.clear(),this.handleOnDateChange()})),queueMicrotask(()=>{this.calendarInstance=new gl(this._inputElm,this._pickerMergedOptions),this.calendarInstance.init(),a||(this.show(),this.focus()),this.calendarInstance&&$i(this.columnEditor,this._inputElm,this.calendarInstance,{columnDef:this.columnDef,newVal:this.defaultDate,updatePickerUI:!0})})}}destroy(){queueMicrotask(()=>{var e,t,i;this.hide(),(e=this.calendarInstance)==null||e.destroy(),J(this._editorInputGroupElm),J(this._inputElm),(t=this._editorInputGroupElm)==null||t.remove(),(i=this._inputElm)==null||i.remove()}),this._bindEventService.unbindAll()}clear(){this._lastTriggeredByClearDate=!0,this.calendarInstance&&(this.calendarInstance.settings.selected.dates=[],this._inputElm.value="")}disable(e=!0){var i;const t=this.disabled;if(this.disabled=e,this._inputElm)if(e){this._inputElm.setAttribute("disabled","disabled"),this._clearButtonElm.disabled=!0;const s=this.getValue();t!==e&&((i=this.args)!=null&&i.compositeEditorOptions)&&s!==""&&this.reset("",!0,!0)}else this._inputElm.removeAttribute("disabled"),this._clearButtonElm.disabled=!1}changeEditorOption(e,t){this.columnEditor.editorOptions||(this.columnEditor.editorOptions={}),this.columnEditor.editorOptions[e]=t,this._pickerMergedOptions=de(!0,{},this._pickerMergedOptions,{settings:{[e]:t}})}focus(){var e;this.grid.focus(),this.show(),(e=this._inputElm)==null||e.focus()}hide(){var e;(e=this.calendarInstance)==null||e.hide()}show(){var t;const e=!!((t=this.args)!=null&&t.compositeEditorOptions);!e&&this.calendarInstance?this.calendarInstance.show():e&&this.applyInputUsabilityState()}getValue(){return this._inputElm.value}setValue(e,t=!1,i=!0){if(this.calendarInstance&&$i(this.columnEditor,this._inputElm,this.calendarInstance,{columnDef:this.columnDef,newVal:e,updatePickerUI:!0}),t){this.applyValue(this.args.item,this.serializeValue());const s=this.args.compositeEditorOptions;s&&i&&this.handleChangeOnCompositeEditor(s,"system")}}applyValue(e,t){var s,n;const i=(s=this.columnDef)==null?void 0:s.field;if(this.columnDef&&i!==void 0){const o=this.columnDef.saveOutputType||this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||S.dateUtc,l=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||S.dateUtc,a=i.indexOf(".")>0,h=this.validate(null,t),d=t&&(h!=null&&h.valid)?Ct(t,l,o):"";if(a){const c=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i;$e(e,c,d)}else e[i]=d}}isValueChanged(){let e=!1;const t=this.getValue();return this.columnDef&&(e=this._lastTriggeredByClearDate||!(t===""&&this._originalDate==="")&&t!==this._originalDate),e}isValueTouched(){return this._isValueTouched}loadValue(e){var i,s;const t=(i=this.columnDef)==null?void 0:i.field;if(e&&this.columnDef&&t!==void 0){const o=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e[t],l=this.columnEditor.type||((s=this.columnDef)==null?void 0:s.type)||S.dateIso,a=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||S.dateIso;this._originalDate=Ct(o,l,a),this._inputElm.value=this._originalDate}}reset(e,t=!0,i=!1){const s=e??this._originalDate??"";this.calendarInstance&&(this._originalDate=s,this.calendarInstance.settings.selected.dates=[s],s||(this.calendarInstance.settings.selected.dates=[],this._inputElm.value="")),this._isValueTouched=!1;const n=this.args.compositeEditorOptions;if(n&&t){const o=!i;this.handleChangeOnCompositeEditor(n,"user",o)}}save(){const e=this.validate(),t=(e==null?void 0:e.valid)??!1;this.hasAutoCommitEdit&&t?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges()}serializeValue(){const e=this.getValue();return e||""}validate(e,t){var o,l;const i=(o=this.args)!=null&&o.compositeEditorOptions?!1:this.columnEditor.required,s=t??((l=this._inputElm)==null?void 0:l.value),n=this.columnEditor.errorMessage;return this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled?{valid:!0,msg:""}:this.validator?this.validator(s,this.args):i&&s===""?{valid:!1,msg:n||R.VALIDATION_REQUIRED_FIELD}:{valid:!0,msg:null}}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}handleOnDateChange(){if(this._isValueTouched=!0,this.args){const e=this.args.compositeEditorOptions;e?this.handleChangeOnCompositeEditor(e):this.save()}setTimeout(()=>this._lastTriggeredByClearDate=!1)}handleChangeOnCompositeEditor(e,t="user",i=!1){var c,u,p;const s=this.grid.getActiveCell(),n=this.args.column,o=((c=this.columnDef)==null?void 0:c.id)??"",l=this.dataContext,a=this.grid,h=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,h),this.applyValue(e.formValues,h);const d=((p=(u=this.gridOptions)==null?void 0:u.compositeEditorOptions)==null?void 0:p.excludeDisabledFieldFormValues)??!1;(i||this.disabled&&d&&e.formValues.hasOwnProperty(o))&&delete e.formValues[o],a.onCompositeEditorChange.notify({...s,item:l,grid:a,column:n,formValues:e.formValues,editors:e.editors,triggeredBy:t},new le)}}function Ra(r,e){const t=isNaN(r)?null:parseFloat(r),i=e.decimal||0,s=e.required,n=e.minValue,o=e.maxValue,l=e.operatorConditionalType||"inclusive",a=e.errorMessage,h={"{{minValue}}":n,"{{maxValue}}":o,"{{minDecimal}}":0,"{{maxDecimal}}":i};let d=!0,c="";if(typeof e.validator=="function")return e.validator(r,e.editorArgs);if(s&&r==="")d=!1,c=a||R.VALIDATION_REQUIRED_FIELD;else if(r!==""&&(isNaN(r)||i===0&&!/^[-+]?(\d*(\.)?(\d)*)$/.test(r)))d=!1,c=a||R.VALIDATION_EDITOR_VALID_NUMBER;else if(n!==void 0&&o!==void 0&&t!==null&&(l==="exclusive"&&(t<=+n||t>=+o)||l==="inclusive"&&(t<+n||t>+o)))d=!1,c=a||R.VALIDATION_EDITOR_NUMBER_BETWEEN.replace(/{{minValue}}|{{maxValue}}/gi,u=>h[u]);else if(n!==void 0&&t!==null&&(l==="exclusive"&&t<=+n||l==="inclusive"&&t<+n)){d=!1;const u=l==="inclusive"?R.VALIDATION_EDITOR_NUMBER_MIN_INCLUSIVE:R.VALIDATION_EDITOR_NUMBER_MIN;c=a||u.replace(/{{minValue}}/gi,p=>h[p])}else if(o!==void 0&&t!==null&&(l==="exclusive"&&t>=+o||l==="inclusive"&&t>+o)){d=!1;const u=l==="inclusive"?R.VALIDATION_EDITOR_NUMBER_MAX_INCLUSIVE:R.VALIDATION_EDITOR_NUMBER_MAX;c=a||u.replace(/{{maxValue}}/gi,p=>h[p])}else i>0&&!new RegExp(`^[-+]?(\\d*(\\.)?(\\d){0,${i}})$`).test(r)&&(d=!1,c=a||R.VALIDATION_EDITOR_DECIMAL_BETWEEN.replace(/{{minDecimal}}|{{maxDecimal}}/gi,u=>h[u]));return{valid:d,msg:c}}function Aa(r,e){let t=isNaN(r)?null:parseInt(r,10);t!==null&&isNaN(t)&&(t=null);const i=e.errorMessage,s=e.required,n=e.minValue,o=e.maxValue,l=e.operatorConditionalType||"inclusive",a={"{{minValue}}":n,"{{maxValue}}":o};let h=!0,d="";if(e.validator)return e.validator(r,e.editorArgs);if(s&&r==="")h=!1,d=i||R.VALIDATION_REQUIRED_FIELD;else if(r!==""&&(isNaN(r)||!/^[+-]?\d+$/.test(r)))h=!1,d=i||R.VALIDATION_EDITOR_VALID_INTEGER;else if(n!==void 0&&o!==void 0&&t!==null&&(l==="exclusive"&&(t<=+n||t>=+o)||l==="inclusive"&&(t<+n||t>+o)))h=!1,d=i||R.VALIDATION_EDITOR_INTEGER_BETWEEN.replace(/{{minValue}}|{{maxValue}}/gi,c=>a[c]);else if(n!==void 0&&t!==null&&(l==="exclusive"&&t<=+n||l==="inclusive"&&t!==null&&t<+n)){h=!1;const c=l==="inclusive"?R.VALIDATION_EDITOR_INTEGER_MIN_INCLUSIVE:R.VALIDATION_EDITOR_INTEGER_MIN;d=i||c.replace(/{{minValue}}/gi,u=>a[u])}else if(o!==void 0&&t!==null&&(l==="exclusive"&&t>=+o||l==="inclusive"&&t!==null&&t>+o)){h=!1;const c=l==="inclusive"?R.VALIDATION_EDITOR_INTEGER_MAX_INCLUSIVE:R.VALIDATION_EDITOR_INTEGER_MAX;d=i||c.replace(/{{maxValue}}/gi,u=>a[u])}return{valid:h,msg:d}}function Cp(r,e){const t=e.required,i=e.minValue,s=e.maxValue,n=e.errorMessage,o={"{{minValue}}":i,"{{maxValue}}":s};return e.validator?e.validator(r,e.editorArgs):t&&r===""?{valid:!1,msg:n||R.VALIDATION_REQUIRED_FIELD}:i!==void 0&&s!==void 0&&r!==null&&(r<i||r>s)?{valid:!1,msg:n||R.VALIDATION_EDITOR_NUMBER_BETWEEN.replace(/{{minValue}}|{{maxValue}}/gi,l=>o[l])}:{valid:!0,msg:null}}class vp{constructor(e){if(this.args=e,this._isValueSaveCalled=!1,this._isLeftValueTouched=!1,this._isRightValueTouched=!1,this.disabled=!1,!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this.gridOptions=this.grid.getOptions()||{},this._eventHandler=new pe,this._bindEventService=new Ae,this.init(),this._eventHandler.subscribe(this.grid.onValidationError,()=>this._isValueSaveCalled=!0)}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)||{}}get dataContext(){return this.args.item}get editorDomElement(){return{leftInput:this._leftInput,rightInput:this._rightInput}}get editorParams(){return this.columnEditor.params||{}}get eventHandler(){return this._eventHandler}get hasAutoCommitEdit(){return this.gridOptions.autoCommitEdit??!1}get isValueSaveCalled(){return this._isValueSaveCalled}get validator(){var e,t;return((e=this.columnEditor)==null?void 0:e.validator)??((t=this.columnDef)==null?void 0:t.validator)}init(){var i,s,n,o;if(!this.editorParams||!this.editorParams.leftInput||!this.editorParams.leftInput.field||!this.editorParams.rightInput||!this.editorParams.rightInput.field)throw new Error(`[Slickgrid-Universal] Please make sure that your Combo Input Editor has params defined with "leftInput" and "rightInput" (example: { editor: { model: Editors.comboInput, params: { leftInput: { field: 'firstName' }, { rightSide: { field: 'lastName' } }}}`);this._leftFieldName=(i=this.editorParams.leftInput)==null?void 0:i.field,this._rightFieldName=(s=this.editorParams.rightInput)==null?void 0:s.field,this._leftInput=this.createInput("leftInput"),this._rightInput=this.createInput("rightInput");const e=(n=this.args)==null?void 0:n.container;e&&typeof e.appendChild=="function"&&(e.appendChild(this._leftInput),e.appendChild(this._rightInput)),this._bindEventService.bind(this._leftInput,"keydown",l=>this.handleKeyDown(l,"leftInput")),this._bindEventService.bind(this._rightInput,"keydown",l=>this.handleKeyDown(l,"rightInput")),this.hasAutoCommitEdit&&(this._bindEventService.bind(this._leftInput,"focusout",l=>this.handleFocusOut(l,"leftInput")),this._bindEventService.bind(this._rightInput,"focusout",l=>this.handleFocusOut(l,"rightInput"))),((o=this.args)==null?void 0:o.compositeEditorOptions)?(this._bindEventService.bind(this._leftInput,"input",this.handleChangeOnCompositeEditorDebounce.bind(this)),this._bindEventService.bind(this._rightInput,"input",this.handleChangeOnCompositeEditorDebounce.bind(this))):setTimeout(()=>this._leftInput.select(),50)}handleFocusOut(e,t){var o;const i=((o=e.relatedTarget)==null?void 0:o.className)||"";!this.args.compositeEditorOptions&&i.indexOf("dual-editor")===-1&&this._lastEventType!=="focusout-right"&&(t==="rightInput"||t==="leftInput"&&this._lastEventType!=="focusout-left")&&(t==="leftInput"?this._isLeftValueTouched=!0:this._isRightValueTouched=!0,this.save());const n=t==="leftInput"?"left":"right";this._lastEventType=`${e==null?void 0:e.type}-${n}`}handleKeyDown(e,t){t==="leftInput"?this._isLeftValueTouched=!0:this._isRightValueTouched=!0,this._lastInputKeyEvent=e,(e.key==="ArrowLeft"||e.key==="ArrowRight"||e.key==="Tab")&&e.stopImmediatePropagation()}destroy(){var e,t,i,s;this._eventHandler.unsubscribeAll(),this._bindEventService.unbindAll(),(t=(e=this._leftInput)==null?void 0:e.remove)==null||t.call(e),(s=(i=this._rightInput)==null?void 0:i.remove)==null||s.call(i)}createInput(e){var a,h,d,c;const t=this.editorParams[e],i=((a=this.columnDef)==null?void 0:a.id)??"",s=this.gridOptions.datasetIdPropertyName||"id",n=((d=(h=this.args)==null?void 0:h.item)==null?void 0:d[s])??"";let o=t.type||"text";(o==="float"||o==="integer")&&(o="number");const l=v("input",{type:o||"text",id:`item-${n}-${e}`,ariaLabel:((c=this.columnEditor)==null?void 0:c.ariaLabel)??`${_t(i+"")} Input Editor`,className:`dual-editor-text editor-${i} ${e.replace(/input/gi,"")}`,autocomplete:"off",ariaAutoComplete:"none",placeholder:t.placeholder||"",title:t.title||""});return o==="readonly"&&(l.readOnly=!0,o="text"),o==="number"&&(l.step=this.getInputDecimalSteps(e)),l}disable(e=!0){var i;const t=this.disabled;this.disabled=e,this._leftInput&&this._rightInput&&(e?(this._leftInput.setAttribute("disabled","disabled"),this._rightInput.setAttribute("disabled","disabled"),t!==e&&((i=this.args)!=null&&i.compositeEditorOptions)&&this.reset("",!0,!0)):(this._leftInput.removeAttribute("disabled"),this._rightInput.removeAttribute("disabled")))}focus(){this.grid.focus()}show(){var t;!!((t=this.args)!=null&&t.compositeEditorOptions)&&this.applyInputUsabilityState()}getValues(){const e={},t=this._leftInput.value,i=this._rightInput.value,s=this.editorParams.leftInput&&(this.editorParams.leftInput.type==="float"||this.editorParams.leftInput.type==="integer"),n=this.editorParams.rightInput&&(this.editorParams.rightInput.type==="float"||this.editorParams.rightInput.type==="integer"),o=t!==""&&s?+this._leftInput.value:t||"",l=i!==""&&n?+this._rightInput.value:i||"";return $e(e,this._leftFieldName,o),$e(e,this._rightFieldName,l),e}setValues(e){Array.isArray(e)&&e.length===2&&(this._leftInput.value=`${e[0]}`,this._rightInput.value=`${e[1]}`)}applyValue(e,t){this.applyValueByPosition(e,t,"leftInput"),this.applyValueByPosition(e,t,"rightInput")}applyValueByPosition(e,t,i){var n;const s=i==="leftInput"?this._leftFieldName:this._rightFieldName;if(s!==void 0){const o=(s==null?void 0:s.indexOf("."))>0;let l=s;if(o){const d=s.split(/\.(.*)/);l=d.length>1?d[1]:d}const a=o?Ee(t,l):t[s],h=this.validate(null,{position:i,inputValue:a});if(o){const d=Ee(t,l),c=h&&h.valid?d:"",u=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??s??"";$e(e,u,c)}else s&&(e[s]=h&&h.valid?t[s]:"")}}isValueChanged(){var a,h,d;const e=this._leftInput.value,t=this._rightInput.value,i=(a=this.editorParams)==null?void 0:a.leftInput,s=(h=this.editorParams)==null?void 0:h.rightInput,n=(d=this._lastInputKeyEvent)==null?void 0:d.key;if((i&&i.alwaysSaveOnEnterKey||s&&s.alwaysSaveOnEnterKey)&&n==="Enter")return!0;const o=!(e===""&&(this._originalLeftValue===null||this._originalLeftValue===void 0))&&e!==this._originalLeftValue,l=!(t===""&&(this._originalRightValue===null||this._originalRightValue===void 0))&&t!==this._originalRightValue;return o||l}isValueTouched(){return this._isLeftValueTouched||this._isRightValueTouched}loadValue(e){this.loadValueByPosition(e,"leftInput"),this.loadValueByPosition(e,"rightInput"),this._leftInput.select()}loadValueByPosition(e,t){const i=t==="leftInput"?this._leftFieldName:this._rightFieldName,s=t==="leftInput"?"_originalLeftValue":"_originalRightValue",n=t==="leftInput"?"_leftInput":"_rightInput";if(e&&i!==void 0){const l=(i==null?void 0:i.indexOf("."))>0?Ee(e,i):e.hasOwnProperty(i)?e[i]:"";if(this[s]=l,this.editorParams[t].type==="float"){const a=this.getDecimalPlaces(t);a!==null&&(this[s]||this[s]===0)&&this[s]!==void 0&&(this[s]=(+this[s]).toFixed(a))}this[n]&&(this[n].value=`${this[s]}`)}}reset(e,t=!0,i=!1){const s=e??this._originalLeftValue??"",n=e??this._originalRightValue??"";this._leftInput&&this._rightInput&&(this._originalLeftValue=s,this._originalRightValue=n,this._leftInput.value=`${s}`,this._rightInput.value=`${n}`),this._isLeftValueTouched=!1,this._isRightValueTouched=!1;const o=this.args.compositeEditorOptions;if(o&&t){const l=!i;this.handleChangeOnCompositeEditor(null,o,"user",l)}}save(){const e=this.validate(),t=e&&e.valid||!1;this._isValueSaveCalled||(this.hasAutoCommitEdit&&t?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges(),this._isValueSaveCalled=!0)}serializeValue(){const e={},t=this.serializeValueByPosition("leftInput"),i=this.serializeValueByPosition("rightInput");return $e(e,this._leftFieldName,t),$e(e,this._rightFieldName,i),e}serializeValueByPosition(e){const t=e==="leftInput"?this._leftInput.value:this._rightInput.value;if(t===""||isNaN(+t))return t;let i=parseFloat(t);const s=this.getDecimalPlaces(e);return s!==null&&(i||i===0)&&i.toFixed&&(i=parseFloat(i.toFixed(s))),i}getDecimalPlaces(e){const i=e==="leftInput"?"leftInput":"rightInput",s=this.editorParams[i],n=s==null?void 0:s.decimal;return n===void 0?0:n}getInputDecimalSteps(e){const t=this.getDecimalPlaces(e);let i="";for(let s=1;s<t;s++)i+="0";return t>0?`0.${i}1`:"1"}validate(e,t){if(this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};if(t){const i=this.validateByPosition(t.position,t.inputValue);if(!i.valid)return t.position==="leftInput"?this._leftInput.select():this._rightInput.select(),i}else{const i=this.validateByPosition("leftInput"),s=this.validateByPosition("rightInput");if(!i.valid)return this._leftInput.select(),i;if(!s.valid)return this._rightInput.select(),s}return{valid:!0,msg:""}}validateByPosition(e,t){var l;const i=this.editorParams[e];let s="";if(t)s=t;else{const a=e==="leftInput"?this._leftInput:this._rightInput;s=a&&a.value}const n=this.validator;s=typeof n=="function"?this.getValues():s;const o={editorArgs:this.args,errorMessage:i.errorMessage,required:(l=this.args)!=null&&l.compositeEditorOptions?!1:i.required,validator:typeof n=="function"?n:i.validator};switch(i.type){case"float":return Ra(s,{...o,decimal:this.getDecimalPlaces(e),minValue:i.minValue,maxValue:i.maxValue,operatorConditionalType:i.operatorConditionalType});case"integer":return Aa(s,{...o,minValue:i.minValue,maxValue:i.maxValue,operatorConditionalType:i.operatorConditionalType});case"text":case"password":default:return Ks(s,o)}}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}handleChangeOnCompositeEditor(e,t,i="user",s=!1){var p,m,f,g,_,b;const n=this.grid.getActiveCell(),o=this.args.column,l=((m=(p=this.columnEditor.params)==null?void 0:p.leftInput)==null?void 0:m.field)??"",a=((g=(f=this.columnEditor.params)==null?void 0:f.rightInput)==null?void 0:g.field)??"",h=this.dataContext,d=this.grid,c=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,c),this.applyValue(t.formValues,c);const u=((b=(_=this.gridOptions)==null?void 0:_.compositeEditorOptions)==null?void 0:b.excludeDisabledFieldFormValues)??!1;(s||this.disabled&&u&&t.formValues.hasOwnProperty(l))&&delete t.formValues[l],(s||this.disabled&&u&&t.formValues.hasOwnProperty(a))&&delete t.formValues[a],d.onCompositeEditorChange.notify({...n,item:h,grid:d,column:o,formValues:t.formValues,editors:t.editors,triggeredBy:i},new le(e))}handleChangeOnCompositeEditorDebounce(e){var i,s;const t=(i=this.args)==null?void 0:i.compositeEditorOptions;if(t){const n=((s=this.gridOptions)==null?void 0:s.editorTypingDebounce)??500;clearTimeout(this._timer),this._timer=setTimeout(()=>this.handleChangeOnCompositeEditor(e,t),n)}}}const bp=0;class Qs{constructor(e,t="text"){if(this.args=e,this._inputType="text",this._isValueTouched=!1,this.disabled=!1,!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this.gridOptions=e.grid&&e.grid.getOptions(),this._bindEventService=new Ae,this.inputType=t,this.init()}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)||{}}get dataContext(){return this.args.item}get editorDomElement(){return this._input}get hasAutoCommitEdit(){return this.gridOptions.autoCommitEdit??!1}get inputType(){return this._inputType}set inputType(e){this._inputType=e}get validator(){var e,t;return((e=this.columnEditor)==null?void 0:e.validator)??((t=this.columnDef)==null?void 0:t.validator)}init(){var s,n,o,l;const e=((s=this.columnDef)==null?void 0:s.id)??"",t=this.args.compositeEditorOptions;this._input=v("input",{type:this._inputType||"text",autocomplete:"off",ariaAutoComplete:"none",ariaLabel:((n=this.columnEditor)==null?void 0:n.ariaLabel)??`${_t(e+"")} Input Editor`,className:`editor-text editor-${e}`,placeholder:((o=this.columnEditor)==null?void 0:o.placeholder)??"",title:((l=this.columnEditor)==null?void 0:l.title)??""}),this.inputType==="number"&&(this._input.step=`${this.columnEditor.valueStep!==void 0?this.columnEditor.valueStep:this.getInputDecimalSteps()}`);const i=this.args.container;i&&typeof i.appendChild=="function"&&i.appendChild(this._input),this._bindEventService.bind(this._input,"focus",()=>{var a;return(a=this._input)==null?void 0:a.select()}),this._bindEventService.bind(this._input,"keydown",a=>{this._isValueTouched=!0,this._lastInputKeyEvent=a,(a.key==="ArrowLeft"||a.key==="ArrowRight")&&a.stopImmediatePropagation()}),this.hasAutoCommitEdit&&!t&&this._bindEventService.bind(this._input,["focusout","blur"],()=>{this._isValueTouched=!0,this.save()}),t&&(this._bindEventService.bind(this._input,["input","paste"],this.handleOnInputChange.bind(this)),this.inputType==="number"&&this._bindEventService.bind(this._input,"wheel",this.handleOnMouseWheel.bind(this),{passive:!0}))}destroy(){var e,t;this._bindEventService.unbindAll(),(t=(e=this._input)==null?void 0:e.remove)==null||t.call(e)}disable(e=!0){var i;const t=this.disabled;if(this.disabled=e,this._input)if(e){this._input.setAttribute("disabled","disabled");const s=this.getValue();t!==e&&((i=this.args)!=null&&i.compositeEditorOptions)&&s!==""&&this.reset("",!0,!0)}else this._input.removeAttribute("disabled")}focus(){var e;this.grid.focus(),(e=this._input)==null||e.focus()}getDecimalPlaces(){var t,i,s;let e=((t=this.columnEditor)==null?void 0:t.decimal)??((s=(i=this.columnEditor)==null?void 0:i.params)==null?void 0:s.decimalPlaces)??void 0;return e===void 0&&(e=bp),!e&&e!==0?null:e}getInputDecimalSteps(){const e=this.getDecimalPlaces();let t="";for(let i=1;i<e;i++)t+="0";return e>0?`0.${t}1`:"1"}show(){var t;!!((t=this.args)!=null&&t.compositeEditorOptions)&&this.applyInputUsabilityState()}getValue(){var e;return((e=this._input)==null?void 0:e.value)||""}setValue(e,t=!1,i=!0){if(this._input&&(this._input.value=`${e}`,t)){this.applyValue(this.args.item,this.serializeValue());const s=this.args.compositeEditorOptions;s&&i&&this.handleChangeOnCompositeEditor(null,s,"system")}}applyValue(e,t){var s;const i=this.columnDef&&this.columnDef.field;if(i!==void 0){const n=(i==null?void 0:i.indexOf("."))>0,o=this.validate(null,t),l=o!=null&&o.valid?t:"";if(n){const a=((s=this.columnEditor)==null?void 0:s.complexObjectPath)??i??"";$e(e,a,l)}else i&&(e[i]=l)}}isValueChanged(){var i,s,n;const e=(i=this._input)==null?void 0:i.value,t=(s=this._lastInputKeyEvent)==null?void 0:s.key;return(n=this.columnEditor)!=null&&n.alwaysSaveOnEnterKey&&t==="Enter"?!0:!(e===""&&(this._originalValue===null||this._originalValue===void 0))&&e!==this._originalValue}isValueTouched(){return this._isValueTouched}loadValue(e){var i;const t=(i=this.columnDef)==null?void 0:i.field;if(e&&t!==void 0&&this._input){const n=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e.hasOwnProperty(t)&&e[t]||"";this._originalValue=n,this._input.value=this._originalValue,this._input.select()}}reset(e,t=!0,i=!1){const s=e??this._originalValue??"";this._input&&(this._originalValue=s,this._input.value=`${s}`),this._isValueTouched=!1;const n=this.args.compositeEditorOptions;if(n&&t){const o=!i;this.handleChangeOnCompositeEditor(null,n,"user",o)}}save(){const e=this.validate(),t=e&&e.valid||!1;this.hasAutoCommitEdit&&t?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges()}serializeValue(){var e;return((e=this._input)==null?void 0:e.value)??""}validate(e,t){var s;if(this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};const i=t!==void 0?t:this._input&&this._input.value;return Ks(i,{editorArgs:this.args,errorMessage:this.columnEditor.errorMessage,minLength:this.columnEditor.minLength,maxLength:this.columnEditor.maxLength,operatorConditionalType:this.columnEditor.operatorConditionalType,required:(s=this.args)!=null&&s.compositeEditorOptions?!1:this.columnEditor.required,validator:this.validator})}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}handleChangeOnCompositeEditor(e,t,i="user",s=!1){var u,p,m;const n=this.grid.getActiveCell(),o=this.args.column,l=((u=this.columnDef)==null?void 0:u.id)??"",a=this.dataContext,h=this.grid,d=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,d),this.applyValue(t.formValues,d);const c=((m=(p=this.gridOptions)==null?void 0:p.compositeEditorOptions)==null?void 0:m.excludeDisabledFieldFormValues)??!1;(s||this.disabled&&c&&t.formValues.hasOwnProperty(l))&&delete t.formValues[l],h.onCompositeEditorChange.notify({...n,item:a,grid:h,column:o,formValues:t.formValues,editors:t.editors,triggeredBy:i},new le(e))}handleOnInputChange(e){var i;this._isValueTouched=!0;const t=this.args.compositeEditorOptions;if(t){const s=((i=this.gridOptions)==null?void 0:i.editorTypingDebounce)??500;clearTimeout(this._timer),this._timer=setTimeout(()=>this.handleChangeOnCompositeEditor(e,t),s)}}handleOnMouseWheel(e){this._isValueTouched=!0;const t=this.args.compositeEditorOptions;t&&this.handleChangeOnCompositeEditor(e,t)}}class Sp extends Qs{constructor(e){super(e,"number"),this.args=e}loadValue(e){const t=this.columnDef&&this.columnDef.field;if(t!==void 0&&e&&t!==void 0&&this._input){const s=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e[t];this._originalValue=s;const n=this.getDecimalPlaces();n!==null&&(this._originalValue||this._originalValue===0)&&this._originalValue!==void 0&&(this._originalValue=(+this._originalValue).toFixed(n)),this._input.value=`${this._originalValue}`,this._input.select()}}serializeValue(){var s;const e=(s=this._input)==null?void 0:s.value;if(e===void 0||e===""||isNaN(+e))return e;let t=parseFloat(e);const i=this.getDecimalPlaces();return i!==null&&(t||t===0)&&t.toFixed&&(t=parseFloat(t.toFixed(i))),t}validate(e,t){var s,n;if(this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};const i=t!==void 0?t:(s=this._input)==null?void 0:s.value;return Ra(i,{editorArgs:this.args,errorMessage:this.columnEditor.errorMessage,decimal:this.getDecimalPlaces(),minValue:this.columnEditor.minValue,maxValue:this.columnEditor.maxValue,operatorConditionalType:this.columnEditor.operatorConditionalType,required:(n=this.args)!=null&&n.compositeEditorOptions?!1:this.columnEditor.required,validator:this.validator})}}class yp extends Qs{constructor(e){super(e,"password"),this.args=e}}class Ep extends Qs{constructor(e){super(e,"number"),this.args=e}loadValue(e){var i;const t=(i=this.columnDef)==null?void 0:i.field;if(t!==void 0&&e&&t!==void 0&&this._input){const n=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e[t];this._originalValue=isNaN(n)||n===null||n===void 0?n:`${n}`,this._input.value=`${this._originalValue}`,this._input.select()}}serializeValue(){var i;const e=(i=this._input)==null?void 0:i.value;if(e===void 0||e===""||isNaN(+e))return e;const t=isNaN(+e)?e:parseInt(e,10);return isNaN(+t)?e:t}validate(e,t){var s;if(this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};const i=t!==void 0?t:this.getValue();return Aa(i,{editorArgs:this.args,errorMessage:this.columnEditor.errorMessage,minValue:this.columnEditor.minValue,maxValue:this.columnEditor.maxValue,operatorConditionalType:this.columnEditor.operatorConditionalType,required:(s=this.args)!=null&&s.compositeEditorOptions?!1:this.columnEditor.required,validator:this.validator})}handleOnMouseWheel(e){this._isValueTouched=!0;const t=this.args.compositeEditorOptions;t&&this.handleChangeOnCompositeEditor(e,t)}}class wp{constructor(e){var i,s;if(this.args=e,this._isValueTouched=!1,this.disabled=!1,!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this.gridOptions=(i=e.grid)==null?void 0:i.getOptions();const t=this.gridOptions||this.args.column.params||{};t!=null&&t.translater&&(this._translater=t.translater),this._locales=((s=this.gridOptions)==null?void 0:s.locales)||R.locales,this._bindEventService=new Ae,this.init()}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)??{}}get dataContext(){return this.args.item}get editorDomElement(){return this._textareaElm}get editorOptions(){var e,t;return{...(e=this.gridOptions.defaultEditorOptions)==null?void 0:e.longText,...(t=this.columnEditor)==null?void 0:t.editorOptions}}get hasAutoCommitEdit(){var e;return((e=this.gridOptions)==null?void 0:e.autoCommitEdit)??!1}get validator(){var e,t;return((e=this.columnEditor)==null?void 0:e.validator)??((t=this.columnDef)==null?void 0:t.validator)}init(){var d,c,u,p,m,f,g,_,b,C,E,y,T,x,O;let e="",t="";if(this._translater&&this._translater.translate&&this.gridOptions.enableTranslate){const I=ot(this.gridOptions),A=((d=this.editorOptions.buttonTexts)==null?void 0:d.cancelKey)??`${I}CANCEL`,k=((c=this.editorOptions.buttonTexts)==null?void 0:c.saveKey)??`${I}SAVE`;e=this._translater.translate(`${I}${A}`),t=this._translater.translate(`${I}${k}`)}else e=((u=this.editorOptions.buttonTexts)==null?void 0:u.cancel)??((p=this._locales)==null?void 0:p.TEXT_CANCEL)??"Cancel",t=((m=this.editorOptions.buttonTexts)==null?void 0:m.save)??((f=this._locales)==null?void 0:f.TEXT_SAVE)??"Save";const i=this.args.compositeEditorOptions,s=((g=this.columnDef)==null?void 0:g.id)??"",n=(_=this.columnEditor)==null?void 0:_.maxLength,o=((b=this.editorOptions)==null?void 0:b.rows)??4,l=i?this.args.container:document.body;this._wrapperElm=v("div",{className:`slick-large-editor-text editor-${s}`,style:{position:i?"relative":"absolute"}}),(C=this.gridOptions)!=null&&C.darkMode&&this._wrapperElm.classList.add("slick-dark-mode"),l.appendChild(this._wrapperElm),this._textareaElm=v("textarea",{ariaLabel:((E=this.columnEditor)==null?void 0:E.ariaLabel)??`${_t(s+"")} Text Editor`,cols:((y=this.editorOptions)==null?void 0:y.cols)??40,rows:i&&o>3?3:o,placeholder:((T=this.columnEditor)==null?void 0:T.placeholder)??"",title:((x=this.columnEditor)==null?void 0:x.title)??""},this._wrapperElm);const a=v("div",{className:"editor-footer"}),h=v("span",{className:"counter"});if(this._currentLengthElm=v("span",{className:"text-length",textContent:"0"}),h.appendChild(this._currentLengthElm),n!==void 0&&(h.appendChild(v("span",{className:"separator",textContent:"/"})),h.appendChild(v("span",{className:"max-length",textContent:`${n}`}))),a.appendChild(h),!i){const I=v("button",{className:"btn btn-cancel btn-default btn-xs",textContent:e},a),A=v("button",{className:"btn btn-save btn-primary btn-xs",textContent:t},a);this._bindEventService.bind(I,"click",this.cancel.bind(this)),this._bindEventService.bind(A,"click",this.save.bind(this)),this.position((O=this.args)==null?void 0:O.position),this._textareaElm.focus(),this._textareaElm.select()}this._wrapperElm.appendChild(a),this._bindEventService.bind(this._textareaElm,"keydown",this.handleKeyDown.bind(this)),this._bindEventService.bind(this._textareaElm,"input",this.handleOnInputChange.bind(this)),this._bindEventService.bind(this._textareaElm,"paste",this.handleOnInputChange.bind(this))}cancel(){var t;const e=this._defaultTextValue||"";this._textareaElm.value=e,this._currentLengthElm.textContent=`${e.length}`,(t=this.args)!=null&&t.cancelChanges&&this.args.cancelChanges()}hide(){this._wrapperElm.style.display="none"}show(){var t;!!((t=this.args)!=null&&t.compositeEditorOptions)?this.applyInputUsabilityState():this._wrapperElm.style.display="block"}destroy(){var e,t;this._bindEventService.unbindAll(),(t=(e=this._wrapperElm)==null?void 0:e.remove)==null||t.call(e)}disable(e=!0){var i;const t=this.disabled;if(this.disabled=e,this._textareaElm&&this._wrapperElm)if(e){this._textareaElm.disabled=!0,this._wrapperElm.classList.add("disabled");const s=this.getValue();t!==e&&((i=this.args)!=null&&i.compositeEditorOptions)&&s!==""&&this.reset("",!0,!0)}else this._textareaElm.disabled=!1,this._wrapperElm.classList.remove("disabled")}focus(){this.grid.focus(),this._textareaElm&&(this._textareaElm.focus(),this._textareaElm.select())}getValue(){return this._textareaElm.value}setValue(e,t=!1,i=!0){if(this._textareaElm.value=e,this._currentLengthElm.textContent=`${e.length}`,t){this.applyValue(this.args.item,this.serializeValue());const s=this.args.compositeEditorOptions;s&&i&&this.handleChangeOnCompositeEditor(null,s,"system")}}applyValue(e,t){var s,n;const i=(s=this.columnDef)==null?void 0:s.field;if(i!==void 0){const o=(i==null?void 0:i.indexOf("."))>0,l=this.validate(void 0,t),a=l!=null&&l.valid?t:"";if(o){const h=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i??"";$e(e,h,a)}else e[i]=a}}isValueChanged(){const e=this._textareaElm.value;return!(e===""&&(this._defaultTextValue===null||this._defaultTextValue===void 0))&&e!==this._defaultTextValue}isValueTouched(){return this._isValueTouched}loadValue(e){var i;const t=(i=this.columnDef)==null?void 0:i.field;if(e&&t!==void 0){const n=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e[t];this._defaultTextValue=n||"",this._textareaElm.value=this._defaultTextValue,this._currentLengthElm.textContent=this._defaultTextValue.length,this._textareaElm.defaultValue=this._defaultTextValue,this._textareaElm.select()}}position(e){var u,p;const t=me(this.args.container),i=this.args.container.offsetHeight,s=this.args.container.offsetWidth,n=this._wrapperElm.getBoundingClientRect().height||this.args.position.height,o=this._wrapperElm.getBoundingClientRect().width||this.args.position.width,l=document.body.offsetHeight||window.innerHeight,a=document.body.offsetWidth||window.innerWidth;let h=(t==null?void 0:t.top)??e.top??0,d=(t==null?void 0:t.left)??e.left??0;const c=((u=this.editorOptions)==null?void 0:u.position)??"auto";if(c==="left"||c==="auto"&&d+o>a){const m=((p=this.editorOptions)==null?void 0:p.marginRight)??0;d-=o-s+m}(c==="top"||c==="auto"&&h+n>l)&&(h-=n-i),this._wrapperElm.style.top=`${h}px`,this._wrapperElm.style.left=`${d}px`}reset(e,t=!0,i=!1){const s=e??this._defaultTextValue??"";this._textareaElm&&(this._defaultTextValue=s,this._textareaElm.value=s,this._currentLengthElm.textContent=s.length),this._isValueTouched=!1;const n=this.args.compositeEditorOptions;if(n&&t){const o=!i;this.handleChangeOnCompositeEditor(null,n,"user",o)}}save(){const e=this.validate(),t=(e==null?void 0:e.valid)??!1;this.hasAutoCommitEdit&&t?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges()}serializeValue(){return this._textareaElm.value}validate(e,t){var s,n;if(this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};const i=t!==void 0?t:(s=this._textareaElm)==null?void 0:s.value;return Ks(i,{editorArgs:this.args,errorMessage:this.columnEditor.errorMessage,minLength:this.columnEditor.minLength,maxLength:this.columnEditor.maxLength,operatorConditionalType:this.columnEditor.operatorConditionalType,required:(n=this.args)!=null&&n.compositeEditorOptions?!1:this.columnEditor.required,validator:this.validator})}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}handleKeyDown(e){const t=e.key;this._isValueTouched=!0,this.args.compositeEditorOptions||(t==="Enter"&&e.ctrlKey||e.ctrlKey&&e.key.toUpperCase()==="S"?(e.preventDefault(),this.save()):t==="Escape"?(e.preventDefault(),this.cancel()):t==="Tab"&&e.shiftKey?(e.preventDefault(),this.args&&this.grid&&this.grid.navigatePrev()):t==="Tab"&&(e.preventDefault(),this.args&&this.grid&&this.grid.navigateNext()))}handleOnInputChange(e){var n,o;const t=this.args.compositeEditorOptions,i=(n=this.columnEditor)==null?void 0:n.maxLength;let s=!1;if(i&&(s=this.truncateText(this._textareaElm,i)),s)this._currentLengthElm.textContent=`${i}`;else{const l=e.type==="paste"?e.clipboardData.getData("text"):e.target.value;this._currentLengthElm.textContent=`${l.length}`}if(t){const l=((o=this.gridOptions)==null?void 0:o.editorTypingDebounce)??500;clearTimeout(this._timer),this._timer=setTimeout(()=>this.handleChangeOnCompositeEditor(e,t),l)}}handleChangeOnCompositeEditor(e,t,i="user",s=!1){var u,p,m;const n=this.grid.getActiveCell(),o=this.args.column,l=((u=this.columnDef)==null?void 0:u.id)??"",a=this.dataContext,h=this.grid,d=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,d),this.applyValue(t.formValues,d);const c=((m=(p=this.gridOptions)==null?void 0:p.compositeEditorOptions)==null?void 0:m.excludeDisabledFieldFormValues)??!1;(s||this.disabled&&c&&t.formValues.hasOwnProperty(l))&&delete t.formValues[l],h.onCompositeEditorChange.notify({...n,item:a,grid:h,column:o,formValues:t.formValues,editors:t.editors,triggeredBy:i},new le(e))}truncateText(e,t){const i=e.value+"";return i.length>t?(e.value=i.substring(0,t),!0):!1}}class Pa{constructor(e,t,i=-1){var l,a,h,d,c,u,p,m,f;if(this.args=e,this.isMultipleSelect=t,this.delayOpening=i,this._isValueTouched=!1,this._isDisposingOrCallingSave=!1,this.disabled=!1,this.enableTranslateLabel=!1,this.finalCollection=[],!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this.gridOptions=this.grid.getOptions()||{},(l=this.gridOptions)!=null&&l.translater&&(this._translaterService=this.gridOptions.translater),this._locales=this.gridOptions.locales||R.locales;const s=((a=this.columnDef)==null?void 0:a.id)??"";this.elementName=`editor-${s}`;const n=this.args.compositeEditorOptions,o={autoAdjustDropHeight:!0,autoAdjustDropPosition:!0,autoAdjustDropWidthByTextSize:!0,container:"body",darkMode:!!this.gridOptions.darkMode,filter:!1,maxHeight:275,minHeight:25,name:this.elementName,single:!0,singleRadio:!0,renderOptionLabelAsHtml:((h=this.columnEditor)==null?void 0:h.enableRenderHtml)??!1,sanitizer:g=>this.grid.sanitizeHtmlString(g),onClick:()=>this._isValueTouched=!0,onCheckAll:()=>this._isValueTouched=!0,onUncheckAll:()=>this._isValueTouched=!0,onClose:g=>{if(g==="key.escape"||g==="body.click"||!this.hasAutoCommitEdit&&!this.isValueChanged()){g==="key.escape"&&this.cancel();return}n?this.handleChangeOnCompositeEditor(n):(this._isDisposingOrCallingSave=!0,this.save(this.hasAutoCommitEdit))}};if(t)if(o.single=!1,o.singleRadio=!1,o.displayTitle=!0,o.showOkButton=!0,(d=this._translaterService)!=null&&d.getCurrentLanguage()){const g=ot(this.gridOptions);o.countSelectedText=this._translaterService.translate(`${g}X_OF_Y_SELECTED`),o.allSelectedText=this._translaterService.translate(`${g}ALL_SELECTED`),o.selectAllText=this._translaterService.translate(`${g}SELECT_ALL`),o.okButtonText=this._translaterService.translate(`${g}OK`),o.noMatchesFoundText=this._translaterService.translate(`${g}NO_MATCHES_FOUND`)}else o.countSelectedText=(c=this._locales)==null?void 0:c.TEXT_X_OF_Y_SELECTED,o.allSelectedText=(u=this._locales)==null?void 0:u.TEXT_ALL_SELECTED,o.selectAllText=(p=this._locales)==null?void 0:p.TEXT_SELECT_ALL,o.okButtonText=(m=this._locales)==null?void 0:m.TEXT_OK,o.noMatchesFoundText=(f=this._locales)==null?void 0:f.TEXT_NO_MATCHES_FOUND;this.defaultOptions=o,this.init()}get collection(){var e;return((e=this.columnEditor)==null?void 0:e.collection)??[]}get collectionOptions(){var e;return(e=this.columnEditor)==null?void 0:e.collectionOptions}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)??{}}get dataContext(){return this.args.item}get editorDomElement(){return this.editorElm}get editorOptions(){var e,t;return{...(e=this.gridOptions.defaultEditorOptions)==null?void 0:e.select,...(t=this.columnEditor)==null?void 0:t.editorOptions}}get isCompositeEditor(){var e;return!!((e=this.args)!=null&&e.compositeEditorOptions)}get customStructure(){var e,t;return(t=(e=this.columnDef)==null?void 0:e.editor)==null?void 0:t.customStructure}get hasAutoCommitEdit(){return this.gridOptions.autoCommitEdit??!1}get msInstance(){return this._msInstance}get selectOptions(){return this.defaultOptions}get currentValues(){var s,n,o;const e=((s=this._msInstance)==null?void 0:s.getSelects())??[];if(this.collection.every(l=>typeof l=="number"||typeof l=="string"))return this.collection.filter(l=>e==null?void 0:e.some(a=>`${a}`===(l==null?void 0:l.toString())));const t=((n=this.collectionOptions)==null?void 0:n.separatorBetweenTextLabels)??"",i=((o=this.collectionOptions)==null?void 0:o.includePrefixSuffixToSelectedValues)??!1;return this.collection.filter(l=>e.some(a=>{var h;return`${a}`===((h=l==null?void 0:l[this.valueName])==null?void 0:h.toString())})).map(l=>{var m,f;const a=l[this.valueName];let h=l[this.labelPrefixName]||"",d=l[this.labelSuffixName]||"";const c=((m=this.columnDef)==null?void 0:m.field)??"",u=(c==null?void 0:c.indexOf("."))>0,p=((f=this.columnEditor)==null?void 0:f.serializeComplexValueFormat)??"object";return u&&typeof l=="object"&&p==="object"?l:(h=this.enableTranslateLabel&&this._translaterService&&h&&typeof h=="string"?this._translaterService.translate(h||" "):h,d=this.enableTranslateLabel&&this._translaterService&&d&&typeof d=="string"?this._translaterService.translate(d||" "):d,i?[h,a,d].filter(_=>_).join(t):a)})}get currentValue(){var s,n,o,l,a;const e=((s=this._msInstance)==null?void 0:s.getSelects())??[],t=e.length?e[0]:"",i=(n=this.columnDef)==null?void 0:n.field;if(i!==void 0){if(this.collection.every(m=>typeof m=="number"||typeof m=="string"))return xt(this.collection,m=>{var f;return((f=m==null?void 0:m.toString)==null?void 0:f.call(m))===`${t}`});const h=((o=this.collectionOptions)==null?void 0:o.separatorBetweenTextLabels)??"",d=((l=this.collectionOptions)==null?void 0:l.includePrefixSuffixToSelectedValues)??!1,c=xt(this.collection,m=>{var f;return m.hasOwnProperty(this.valueName)&&((f=m[this.valueName])==null?void 0:f.toString())===`${t}`}),u=(i==null?void 0:i.indexOf("."))>0,p=((a=this.columnEditor)==null?void 0:a.serializeComplexValueFormat)??"object";if(u&&typeof c=="object"&&p==="object")return c;if(c&&c.hasOwnProperty(this.valueName)){const m=c[this.valueName];if(d){let f=c[this.labelPrefixName]||"",g=c[this.labelSuffixName]||"";return f=this.enableTranslateLabel&&this._translaterService&&f&&typeof f=="string"?this._translaterService.translate(f||" "):f,g=this.enableTranslateLabel&&this._translaterService&&g&&typeof g=="string"?this._translaterService.translate(g||" "):g,[f,m,g].filter(b=>b).join(h)}return m}}return""}get validator(){var e,t;return((e=this.columnEditor)==null?void 0:e.validator)??((t=this.columnDef)==null?void 0:t.validator)}init(){var e,t,i,s,n,o,l;if(!this.columnDef||!this.columnDef.editor||!this.columnDef.editor.collection&&!this.columnDef.editor.collectionAsync)throw new Error(`[Slickgrid-Universal] You need to pass a "collection" (or "collectionAsync") inside Column Definition Editor for the MultipleSelect/SingleSelect Editor to work correctly.
|
|
18
18
|
Also each option should include a value/label pair (or value/labelKey when using Locale).
|
|
19
19
|
For example: { editor: { collection: [{ value: true, label: 'True' },{ value: false, label: 'False'}] } }`);if(this._collectionService=new Cl(this._translaterService),this.enableTranslateLabel=((e=this.columnEditor)==null?void 0:e.enableTranslateLabel)??!1,this.labelName=((t=this.customStructure)==null?void 0:t.label)??"label",this.labelPrefixName=((i=this.customStructure)==null?void 0:i.labelPrefix)??"labelPrefix",this.labelSuffixName=((s=this.customStructure)==null?void 0:s.labelSuffix)??"labelSuffix",this.optionLabel=((n=this.customStructure)==null?void 0:n.optionLabel)??"value",this.valueName=((o=this.customStructure)==null?void 0:o.value)??"value",this.enableTranslateLabel&&(!this._translaterService||typeof this._translaterService.translate!="function"))throw new Error('[Slickgrid-Universal] requires a Translate Service to be installed and configured when the grid option "enableTranslate" is enabled.');this.renderDomElement(this.collection),(this.disabled||(l=this.columnEditor)!=null&&l.collectionAsync&&Array.isArray(this.collection)&&this.collection.length===0)&&this.disable(!0)}getValue(){return this.isMultipleSelect?this.currentValues:this.currentValue}setValue(e,t=!1,i=!0){if(this.isMultipleSelect&&Array.isArray(e)?this.loadMultipleValues(e):this.loadSingleValue(e),t){this.applyValue(this.args.item,this.serializeValue());const s=this.args.compositeEditorOptions;s&&i&&this.handleChangeOnCompositeEditor(s,"system")}}cancel(){var e;(e=this.args)!=null&&e.cancelChanges&&this.args.cancelChanges()}hide(){this._msInstance&&this._msInstance.close()}show(e){!this.isCompositeEditor&&this._msInstance?this._msInstance.open(e):this.isCompositeEditor&&this.applyInputUsabilityState()}applyValue(e,t){var o,l,a;const i=(o=this.columnDef)==null?void 0:o.field,s=(l=this.columnDef)==null?void 0:l.type;let n=t;if(i!==void 0){(s===S.number||s===S.integer||s===S.boolean)&&!isNaN(parseFloat(t))&&(n=parseFloat(t)),this.isMultipleSelect&&typeof t=="string"&&t.indexOf(",")>=0&&(n=t.split(","));const h=(i==null?void 0:i.indexOf("."))>0,d=this.validate(null,n);if(n=d!=null&&d.valid?n:"",h){const c=((a=this.columnEditor)==null?void 0:a.complexObjectPath)??i??"";$e(e,c,n)}else e[i]=n}}destroy(){var e,t;this._msInstance&&this.hasAutoCommitEdit&&this.isValueChanged()&&!this._isDisposingOrCallingSave&&!this.isCompositeEditor&&(this._isDisposingOrCallingSave=!0,this.save(!0)),this._isDisposingOrCallingSave=!0,typeof((e=this._msInstance)==null?void 0:e.destroy)=="function"&&this._msInstance.destroy(),(t=this.editorElm)==null||t.remove(),this._msInstance=void 0}loadValue(e){var s,n;const t=(s=this.columnDef)==null?void 0:s.field,i=t!==void 0&&(t==null?void 0:t.indexOf("."))>0;if(e&&t!==void 0){const o=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??t,l=i?Ee(e,o):e.hasOwnProperty(t)&&e[t],a=i&&(l!=null&&l.hasOwnProperty(this.valueName))?l[this.valueName]:l;this.isMultipleSelect&&Array.isArray(a)?this.loadMultipleValues(a):this.loadSingleValue(a)}}loadMultipleValues(e){var t;if(Array.isArray(e)){this.originalValue=e.map(s=>typeof s=="number"||typeof s=="boolean"?`${s}`:s),(t=this._msInstance)==null||t.setSelects(this.originalValue);const i=this.args.compositeEditorOptions;i&&this.handleChangeOnCompositeEditor(i)}}loadSingleValue(e){var t;this.originalValue=typeof e=="number"||typeof e=="boolean"?`${e}`:e,(t=this._msInstance)==null||t.setSelects([this.originalValue])}serializeValue(){return this.isMultipleSelect?this.currentValues:this.currentValue}changeEditorOption(e,t){var i;this.columnEditor&&(this.columnEditor.editorOptions||(this.columnEditor.editorOptions={}),this.columnEditor.editorOptions[e]=t,this.editorElmOptions={...this.editorElmOptions,[e]:t},(i=this._msInstance)==null||i.refreshOptions(this.editorElmOptions))}disable(e=!0){const t=this.disabled;if(this.disabled=e,this._msInstance)if(e){this._msInstance.disable();const i=this.getValue(),s=Array.isArray(i)&&this.isMultipleSelect?(i==null?void 0:i[0])==="":i==="";t!==e&&this.isCompositeEditor&&!s&&this.reset("",!0,!0)}else this._msInstance.enable()}focus(){var e;this.grid.focus(),(e=this._msInstance)==null||e.focus()}isValueChanged(){var i;const e=(i=this._msInstance)==null?void 0:i.getSelects();if(this.isMultipleSelect)return!ut(e,this.originalValue);const t=Array.isArray(e)&&e.length>0?e[0]:void 0;return t!==void 0&&t!==this.originalValue}isValueTouched(){return this._isValueTouched}reset(e,t=!0,i=!1){const s=e??this.originalValue;if(this._msInstance){this.originalValue=this.isMultipleSelect?s!==void 0?[s]:[]:s;const o=this.originalValue===void 0?[]:[this.originalValue];this._msInstance.setSelects(o)}this._isValueTouched=!1;const n=this.args.compositeEditorOptions;if(n&&t){const o=!i;this.handleChangeOnCompositeEditor(n,"user",o)}}save(e=!1){const t=this.validate(),i=(t==null?void 0:t.valid)??!1;(!this._isDisposingOrCallingSave||e)&&this.hasAutoCommitEdit&&i?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges()}validate(e,t){var o,l;const i=this.isCompositeEditor?!1:(o=this.columnEditor)==null?void 0:o.required,s=t!==void 0?t:(l=this._msInstance)==null?void 0:l.getSelects(),n=this.columnEditor&&this.columnEditor.errorMessage;if(this.isCompositeEditor&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};if(this.validator){const a=t!==void 0?t:this.isMultipleSelect?this.currentValues:this.currentValue;return this.validator(a,this.args)}return i&&(s===""||Array.isArray(s)&&s.length===0)?{valid:!1,msg:n||R.VALIDATION_REQUIRED_FIELD}:{valid:!0,msg:null}}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}filterCollection(e){var i;let t=e;if(this.columnEditor&&this.columnEditor.collectionFilterBy){const s=this.columnEditor.collectionFilterBy,n=((i=this.columnEditor.collectionOptions)==null?void 0:i.filterResultAfterEachPass)??null;t=this._collectionService.filterCollection(t,s,n)}return t}sortCollection(e){let t=e;if(this.columnDef&&this.columnEditor&&this.columnEditor.collectionSortBy){const i=this.columnEditor.collectionSortBy;t=this._collectionService.sortCollection(this.columnDef,t,i,this.enableTranslateLabel)}return t}renderDomElement(e){var n,o,l,a,h;if(!Array.isArray(e)&&((n=this.collectionOptions)!=null&&n.collectionInsideObjectProperty)){const d=this.collectionOptions.collectionInsideObjectProperty;e=Ee(e,d)}if(!Array.isArray(e))throw new Error('The "collection" passed to the Select Editor is not a valid array.');let t=[];if(e.length>0&&(t=[...e]),(o=this.collectionOptions)!=null&&o.addBlankEntry&&Array.isArray(t)&&t.length>0&&t[0][this.valueName]!==""&&(t.unshift(this.createBlankEntry()),this.collection.unshift(this.createBlankEntry())),(l=this.collectionOptions)!=null&&l.addCustomFirstEntry&&Array.isArray(t)&&t.length>0&&t[0][this.valueName]!==this.collectionOptions.addCustomFirstEntry[this.valueName]&&(t.unshift(this.collectionOptions.addCustomFirstEntry),this.collection.unshift(this.collectionOptions.addCustomFirstEntry)),(a=this.collectionOptions)!=null&&a.addCustomLastEntry&&Array.isArray(t)&&t.length>0){const d=t.length-1;t[d][this.valueName]!==this.collectionOptions.addCustomLastEntry[this.valueName]&&t.push(this.collectionOptions.addCustomLastEntry)}let i=t;if(i=this.filterCollection(i),i=this.sortCollection(i),(h=this.columnEditor)!=null&&h.collectionOverride){const d={column:this.columnDef,dataContext:this.dataContext,grid:this.grid,originalCollections:this.collection};if(this.args.compositeEditorOptions){const{formValues:c,modalType:u}=this.args.compositeEditorOptions;d.compositeEditorOptions={formValues:c,modalType:u}}i=this.columnEditor.collectionOverride(i,d)}this.finalCollection=i;const s=vl("editor",i,this.columnDef,this.grid,this.isMultipleSelect,this._translaterService);this.createDomElement(s.selectElement,s.dataCollection)}createBlankEntry(){const e={[this.labelName]:"",[this.valueName]:""};return this.labelPrefixName&&(e[this.labelPrefixName]=""),this.labelSuffixName&&(e[this.labelSuffixName]=""),e}createDomElement(e,t){var n;const i=this.args.container;e&&i&&typeof i.appendChild=="function"&&(J(i),i.appendChild(e));const s=((n=this.columnEditor)==null?void 0:n.placeholder)??"";this.defaultOptions.placeholder=s||"",this.editorElmOptions={...this.defaultOptions,...this.editorOptions,data:t},this._msInstance=wi(e,this.editorElmOptions),this.editorElm=this._msInstance.getParentElement(),this.isCompositeEditor||this.show(this.delayOpening)}handleChangeOnCompositeEditor(e,t="user",i=!1){var c,u,p;const s=this.grid.getActiveCell(),n=this.args.column,o=((c=this.columnDef)==null?void 0:c.id)??"",l=this.dataContext,a=this.grid,h=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,h),this.applyValue(e.formValues,h);const d=((p=(u=this.gridOptions)==null?void 0:u.compositeEditorOptions)==null?void 0:p.excludeDisabledFieldFormValues)??!1;(i||this.disabled&&d&&e.formValues.hasOwnProperty(o))&&delete e.formValues[o],a.onCompositeEditorChange.notify({...s,item:l,grid:a,column:n,formValues:e.formValues,editors:e.editors,triggeredBy:t},new le)}}class Tp extends Pa{constructor(e,t=0){super(e,!0,t),this.args=e,this.delayOpening=t}}class Op extends Pa{constructor(e,t=0){super(e,!1,t),this.args=e,this.delayOpening=t}}class xp{constructor(e){if(this.args=e,this._defaultValue=0,this._isValueTouched=!1,this._sliderNumberElm=null,this.disabled=!1,!e)throw new Error("[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.");this.grid=e.grid,this.gridOptions=this.grid.getOptions()||{},this._bindEventService=new Ae,this.init()}get columnDef(){return this.args.column}get columnEditor(){var e;return((e=this.columnDef)==null?void 0:e.editor)??{}}get dataContext(){return this.args.item}get editorDomElement(){return this._editorElm}get editorInputDomElement(){return this._inputElm}get editorOptions(){var e,t;return{...(e=this.gridOptions.defaultEditorOptions)==null?void 0:e.slider,...(t=this.columnEditor)==null?void 0:t.editorOptions}}get hasAutoCommitEdit(){return this.gridOptions.autoCommitEdit??!1}get sliderOptions(){return this._sliderOptions}get validator(){var e;return this.columnEditor.validator??((e=this.columnDef)==null?void 0:e.validator)}init(){var e;if(this._cellContainerElm=(e=this.args)==null?void 0:e.container,this._cellContainerElm&&this.columnDef){const t=this.args.compositeEditorOptions;this._editorElm=this.buildDomElement(),t||this.focus(),this._cellContainerElm.appendChild(this._editorElm),this._bindEventService.bind(this._sliderTrackElm,["click","mouseup"],this.sliderTrackClicked.bind(this)),this._bindEventService.bind(this._inputElm,["change","mouseup","touchend"],this.handleChangeEvent.bind(this)),this._bindEventService.bind(this._inputElm,["input","change"],this.handleChangeSliderNumber.bind(this))}}cancel(){this._inputElm&&(this._inputElm.value=`${this._originalValue}`),this.args.cancelChanges()}destroy(){var e,t,i;this._bindEventService.unbindAll(),(e=this._inputElm)==null||e.remove(),(t=this._editorElm)==null||t.remove(),(i=this._sliderTrackElm)==null||i.remove()}disable(e=!0){var i;const t=this.disabled;if(this.disabled=e,this._inputElm)if(e){this._inputElm.disabled=!0;const s=this.getValue();t!==e&&((i=this.args)!=null&&i.compositeEditorOptions)&&s!==""&&this.reset(0,!0,!0)}else this._inputElm.disabled=!1}focus(){var e;this.grid.focus(),(e=this._inputElm)==null||e.focus()}show(){var t;!!((t=this.args)!=null&&t.compositeEditorOptions)&&this.applyInputUsabilityState()}getValue(){var e;return((e=this._inputElm)==null?void 0:e.value)??""}setValue(e,t=!1,i=!0){if(this._inputElm&&(this._inputElm.value=`${e}`),this._sliderNumberElm&&(this._sliderNumberElm.textContent=`${e}`),t){this.applyValue(this.args.item,this.serializeValue());const s=this.args.compositeEditorOptions;s&&i&&this.handleChangeOnCompositeEditor(null,s,"system")}}applyValue(e,t){var s;const i=((s=this.columnDef)==null?void 0:s.field)??"";if(i!==void 0){const n=(i==null?void 0:i.indexOf("."))>0,o=this.validate(void 0,t),l=o&&o.valid?t:"";if(n){const a=this.columnEditor.complexObjectPath??i??"";$e(e,a,l)}else e&&(e[i]=l)}}isValueChanged(){var t;const e=((t=this._inputElm)==null?void 0:t.value)??"";return!(e===""&&this._originalValue===void 0)&&+e!==this._originalValue}isValueTouched(){return this._isValueTouched}loadValue(e){var i;const t=((i=this.columnDef)==null?void 0:i.field)??"";if(e&&t!==void 0){let n=(t==null?void 0:t.indexOf("."))>0?Ee(e,t):e.hasOwnProperty(t)?e[t]:this._defaultValue;(n===""||n===null||n===void 0)&&(n=this._defaultValue),this._originalValue=+n,this._inputElm&&(this._inputElm.value=`${n}`,this._inputElm.title=`${n}`),this._sliderNumberElm&&(this._sliderNumberElm.textContent=`${n}`)}this.updateTrackFilledColorWhenEnabled()}reset(e,t=!0,i=!1){const s=e??this._originalValue??0;this._inputElm&&(this._inputElm.value=`${s}`),this._sliderNumberElm&&(this._sliderNumberElm.textContent=`${s}`),this._isValueTouched=!1;const n=this.args.compositeEditorOptions;if(n&&t){const o=!i;this.handleChangeOnCompositeEditor(null,n,"user",o)}}save(){const e=this.validate(),t=e&&e.valid||!1;this.hasAutoCommitEdit&&t?this.grid.getEditorLock().commitCurrentEdit():this.args.commitChanges()}serializeValue(){var t;const e=((t=this._inputElm)==null?void 0:t.value)??"";return e!==""?parseInt(e,10):this._originalValue}validate(e,t){var s,n;if(this.args.compositeEditorOptions&&this.applyInputUsabilityState(),this.disabled)return{valid:!0,msg:""};const i=t!==void 0?t:(s=this._inputElm)==null?void 0:s.value;return Cp(i,{editorArgs:this.args,errorMessage:this.columnEditor.errorMessage,minValue:this.columnEditor.minValue,maxValue:this.columnEditor.maxValue,required:(n=this.args)!=null&&n.compositeEditorOptions?!1:this.columnEditor.required,validator:this.validator})}buildDomElement(){var h;const e=((h=this.columnDef)==null?void 0:h.id)??"",t=this.columnEditor.title??"",i=+(this.columnEditor.minValue??R.SLIDER_DEFAULT_MIN_VALUE),s=+(this.columnEditor.maxValue??R.SLIDER_DEFAULT_MAX_VALUE),n=+(this.columnEditor.valueStep??R.SLIDER_DEFAULT_STEP),o=this.editorOptions.sliderStartValue??i;this._defaultValue=+o,this._sliderTrackElm=v("div",{className:"slider-track"}),this._inputElm=v("input",{type:"range",title:t,defaultValue:`${o}`,value:`${o}`,min:`${i}`,max:`${s}`,step:`${this.columnEditor.valueStep??R.SLIDER_DEFAULT_STEP}`,ariaLabel:this.columnEditor.ariaLabel??`${_t(e+"")} Slider Editor`,className:`slider-editor-input editor-${e}`});const l=v("div",{className:"slider-container slider-editor"}),a=v("div",{className:"slider-input-container slider-editor"});if(a.appendChild(this._sliderTrackElm),a.appendChild(this._inputElm),l.appendChild(a),!this.editorOptions.hideSliderNumber){l.classList.add("input-group");const d=v("div",{className:"input-group-addon input-group-append slider-value"});this._sliderNumberElm=v("span",{className:"input-group-text",textContent:`${o}`}),d.appendChild(this._sliderNumberElm),l.appendChild(d)}return this._sliderOptions={minValue:i,maxValue:s,step:n},l}applyInputUsabilityState(){const e=this.grid.getActiveCell(),t=this.grid.onBeforeEditCell.notify({...e,item:this.dataContext,column:this.args.column,grid:this.grid,target:"composite",compositeEditorOptions:this.args.compositeEditorOptions}).getReturnValue();this.disable(t===!1)}handleChangeEvent(e){this._isValueTouched=!0;const t=this.args.compositeEditorOptions;t?this.handleChangeOnCompositeEditor(e,t):this.save()}handleChangeSliderNumber(e){var i,s;const t=((i=e.target)==null?void 0:i.value)??"";t!==""&&(!this.editorOptions.hideSliderNumber&&this._sliderNumberElm&&(this._sliderNumberElm.textContent=t),this._inputElm.title=t,(s=this.args)!=null&&s.compositeEditorOptions||this.grid.onMouseEnter.notify({column:this.columnDef,grid:this.grid},new le(e))),this.updateTrackFilledColorWhenEnabled()}handleChangeOnCompositeEditor(e,t,i="user",s=!1){var u,p,m;const n=this.grid.getActiveCell(),o=this.args.column,l=((u=this.columnDef)==null?void 0:u.id)??"",a=this.dataContext,h=this.grid,d=this.serializeValue();this.validate().valid&&this.applyValue(this.dataContext,d),this.applyValue(t.formValues,d);const c=((m=(p=this.gridOptions)==null?void 0:p.compositeEditorOptions)==null?void 0:m.excludeDisabledFieldFormValues)??!1;(s||this.disabled&&c&&t.formValues.hasOwnProperty(l))&&delete t.formValues[l],h.onCompositeEditorChange.notify({...n,item:a,grid:h,column:o,formValues:t.formValues,editors:t.editors,triggeredBy:i},new le(e))}sliderTrackClicked(e){e.preventDefault();const t=e.offsetX,i=this._sliderTrackElm.offsetWidth,s=(t+0)*100/i;this._inputElm&&(this._inputElm.value=`${s}`,this._inputElm.dispatchEvent(new Event("change")))}updateTrackFilledColorWhenEnabled(){var e,t;if(this.editorOptions.enableSliderTrackColoring&&this._inputElm){const s=(+this.getValue()-+this._inputElm.min)/(((e=this.sliderOptions)==null?void 0:e.maxValue)??0-+this._inputElm.min)*100,n="linear-gradient(to right, %b %p1, %c %p1, %c %p2, %b %p2)".replace(/%b/g,"#eee").replace(/%c/g,((t=this.editorOptions)==null?void 0:t.sliderTrackFilledColor)??"var(--slick-slider-filter-thumb-color, #86bff8)").replace(/%p1/g,"0%").replace(/%p2/g,`${s}%`);this._sliderTrackElm.style.background=n,this._sliderOptions.sliderTrackBackground=n}}}const Pr={autocompleter:fp,checkbox:gp,date:_p,dualInput:vp,float:Sp,integer:Ep,longText:wp,multipleSelect:Tp,password:yp,singleSelect:Op,slider:xp,text:Qs},Ip=(r,e,t,i,s)=>{var h;const n=i&&i.params||{},o=n.propertyNames,l=(n==null?void 0:n.includeTitle)??!0;let a=n.dataContextProperty;if(a||(a=((h=i==null?void 0:i.field)==null?void 0:h.split(".")[0])||""),!o||!Array.isArray(o)||!a)throw new Error(`Formatters.arrayObjectToCsv requires you to pass an array of "propertyNames" (declared in "params") that you want to pull the data from.
|