@slickgrid-universal/vanilla-force-bundle 5.13.1 → 5.13.2
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,13 +8,13 @@
|
|
|
8
8
|
`,this._addonOptions.replaceNewlinesWith||`
|
|
9
9
|
`).replaceAll("\r","").replaceAll('"',this._addonOptions.removeDoubleQuotesOnPaste?"":'"')]:l[o++]=S.split(" ");const a=this._grid.getActiveCell(),h=(b=this._grid.getSelectionModel())==null?void 0:b.getSelectedRanges(),d=h!=null&&h.length?h[0]:null;let c,u;if(d)c=d.fromRow,u=d.fromCell;else if(a)c=a.row,u=a.cell;else return;let p=!1,m=l.length,f=l.length?l[0].length:0;l.length===1&&l[0].length===1&&d&&(p=!0,m=d.toRow-d.fromRow+1,f=d.toCell-d.fromCell+1);const g=this._dataWrapper.getDataLength()-c;if(g<m&&typeof this._addonOptions.newRowCreator=="function"){const S=m-g,E=this._dataWrapper.getDataLength();this._addonOptions.newRowCreator(S);const y=this._dataWrapper.getDataLength();y!==E+S&&console.warn(`[Slickgrid-Universal] The "newRowCreator" did not add the correct amount of rows, it should add "${S}" rows but it added "${y-E}" rows`),this._grid.render()}if(c+m>this._dataWrapper.getDataLength()&&typeof this._addonOptions.newRowCreator=="function"){const S=c+m-this._dataWrapper.getDataLength();this._addonOptions.newRowCreator(S)}const C={isClipboardCommand:!0,clippedRange:l,oldValues:[],cellExternalCopyManager:this,_options:this._addonOptions,setDataItemValueForColumn:this.setDataItemValueForColumn,markCopySelection:this.markCopySelection,oneCellToMultiple:p,activeRow:c,activeCell:u,destH:m,destW:f,maxDestY:this._dataWrapper.getDataLength(),maxDestX:this._grid.getColumns().length,h:0,w:0,execute:()=>{var E;C.h=0;for(let y=0;y<C.destH;y++){C.oldValues[y]=[],C.w=0,C.h++;let x=0;for(let O=0;O<C.destW;O++){const I=c+y,A=u+O,D=i[A];if(D.hidden){C.destW++,x++;continue}if(C.w++,I<C.maxDestY&&A<C.maxDestX){const L=this._dataWrapper.getDataItem(I);if(this._grid.triggerEvent(this.onBeforePasteCell,{row:I,cell:A,dt:L,column:D,target:"grid"}).getReturnValue()===!1)continue;C.oldValues[y][O-x]=L[D.field],p?this.setDataItemValueForColumn(L,D,l[0][0]):this.setDataItemValueForColumn(L,D,l[y]?l[y][O-x]:""),this._grid.updateCell(I,A),this._grid.onCellChange.notify({row:I,cell:A,item:L,grid:this._grid,column:{}})}}}const S=new tt(c,u,c+C.h-1,u+C.w-1);this.markCopySelection([S]),(E=this._grid.getSelectionModel())==null||E.setSelectedRanges([S]),this.onPasteCells.notify({ranges:[S]})},undo:()=>{var E;for(let y=0;y<C.destH;y++)for(let x=0;x<C.destW;x++){const O=c+y,I=u+x;if(O<C.maxDestY&&I<C.maxDestX){const A=this._dataWrapper.getDataItem(O);p?this.setDataItemValueForColumn(A,i[I],C.oldValues[0][0]):this.setDataItemValueForColumn(A,i[I],C.oldValues[y][x]),this._grid.updateCell(O,I),this._grid.onCellChange.notify({row:O,cell:I,item:A,grid:this._grid,column:{}})}}const S=new tt(c,u,c+C.h-1,u+C.w-1);this.markCopySelection([S]),(E=this._grid.getSelectionModel())==null||E.setSelectedRanges([S]),this.onPasteCells.notify({ranges:[S]}),typeof this._addonOptions.onPasteCells=="function"&&this._addonOptions.onPasteCells(new le,{ranges:[S]})}};this._addonOptions.clipboardCommandHandler?this._addonOptions.clipboardCommandHandler(C):C.execute()}handleKeyDown(e){var i,s,n;let t;if(!this._grid.getEditorLock().isActive()||this._grid.getOptions().autoEdit){if(e.key==="Escape"&&this._copiedRanges&&(e.preventDefault(),this.clearCopySelection(),this.onCopyCancelled.notify({ranges:this._copiedRanges}),typeof this._addonOptions.onCopyCancelled=="function"&&this._addonOptions.onCopyCancelled(e,{ranges:this._copiedRanges}),this._copiedRanges=null),(e.key==="c"||e.key==="Insert")&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&(typeof this._onCopyInit=="function"&&this._onCopyInit.call(this),t=((i=this._grid.getSelectionModel())==null?void 0:i.getSelectedRanges())??[],t.length!==0)){this._copiedRanges=t,this.markCopySelection(t),this.onCopyCells.notify({ranges:t}),typeof this._addonOptions.onCopyCells=="function"&&this._addonOptions.onCopyCells(e,{ranges:t});const o=this._grid.getColumns();let l="";for(let a=0;a<t.length;a++){const h=t[a],d=[];for(let c=h.fromRow;c<h.toRow+1;c++){const u=[],p=this._dataWrapper.getDataItem(c);if(d.length===0&&this._addonOptions.includeHeaderWhenCopying){const m=[];for(let f=h.fromCell;f<h.toCell+1;f++)o[f]&&(o[f].name instanceof HTMLElement?we(o[f].name.innerHTML):o[f].name).length>0&&!o[f].hidden&&m.push(this.getHeaderValueForColumn(o[f]));d.push(m.join(" "))}for(let m=h.fromCell;m<h.toCell+1;m++)o[m]&&(o[m].name instanceof HTMLElement?we(o[m].name.innerHTML):o[m].name).length>0&&!o[m].hidden&&u.push(this.getDataItemValueForColumn(p,o[m],c,m,e));d.push(u.join(" "))}l+=d.join(`\r
|
|
10
10
|
`)+`\r
|
|
11
|
-
`}if(window.clipboardData)return window.clipboardData.setData("Text",l),!0;{const a=document.activeElement,h=this.createTextBox(l);if(h.focus(),window.setTimeout(()=>{this._bodyElement.removeChild(h),a?a.focus():console.log("No element to restore focus to after copy?")},((s=this.addonOptions)==null?void 0:s.clipboardPasteDelay)??Ql),typeof this._onCopySuccess=="function"){const d=t.length===1?t[0].toRow+1-t[0].fromRow:t.length;this._onCopySuccess(d)}return!1}}if(!this._addonOptions.readOnlyMode&&(e.key==="v"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey||e.key==="Insert"&&e.shiftKey&&!e.ctrlKey)){const o=this.createTextBox("");return window.setTimeout(()=>this.decodeTabularData(this._grid,o),((n=this.addonOptions)==null?void 0:n.clipboardPasteDelay)??Ql),!1}}}markCopySelection(e){var s;this.clearCopySelection();const t=this._grid.getColumns(),i={};for(const n of e)for(let o=n.fromRow;o<=n.toRow;o++){i[o]={};for(let l=n.fromCell;l<=n.toCell&&l<t.length;l++)i[o][t[l].id]=this._copiedCellStyle}this._grid.setCellCssStyles(this._copiedCellStyleLayerKey,i),window.clearTimeout(this._clearCopyTI),this._clearCopyTI=window.setTimeout(()=>this.clearCopySelection(),((s=this.addonOptions)==null?void 0:s.clearCopySelectionDelay)||$c)}}class zs{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._addonOptions={},this._camelPluginName="",this._gridUid="",this._menuCssPrefix="",this._menuPluginCssPrefix="",this._bindEventService=new Pe,this._eventHandler=new pe}get addonOptions(){return this._addonOptions}set addonOptions(e){this._addonOptions=e}get eventHandler(){return this._eventHandler}get grid(){return this.sharedService.slickGrid}get gridOptions(){return this.sharedService.gridOptions??{}}get gridUid(){var e;return this._gridUid||(((e=this.grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}get menuCssClass(){return this._menuPluginCssPrefix||this._menuCssPrefix}get menuElement(){return this._menuElm||document.querySelector(`.${this.menuCssClass}${this.gridUidSelector}`)}dispose(){var e,t,i,s,n;(e=this._eventHandler)==null||e.unsubscribeAll(),this._bindEventService.unbindAll(),this.pubSubService.unsubscribeAll(),(t=this._commandTitleElm)==null||t.remove(),(i=this._optionTitleElm)==null||i.remove(),this.disposeAllMenus(),ee(this._menuElm),(s=this.menuElement)==null||s.remove(),(n=this._menuElm)==null||n.remove()}disposeAllMenus(){this.disposeSubMenus(),this._bindEventService.unbindAll("parent-menu"),document.querySelectorAll(`.${this.menuCssClass}${this.gridUidSelector}`).forEach(e=>e.remove())}disposeSubMenus(){this._bindEventService.unbindAll("sub-menu"),document.querySelectorAll(`.${this.menuCssClass}.slick-submenu${this.gridUidSelector}`).forEach(e=>e.remove())}setOptions(e){this._addonOptions={...this._addonOptions,...e}}addSubMenuTitleWhenExists(e,t){if(e!=="divider"&&(e!=null&&e.subMenuTitle)){const i=document.createElement("div");i.className="slick-menu-title",i.textContent=e.subMenuTitle;const s=e.subMenuTitleCssClass;s&&i.classList.add(...he(s)),t.appendChild(i)}}populateCommandOrOptionItems(e,t,i,s,n,o,l){if(n&&s&&t)for(const a of s)this.populateSingleCommandOrOptionItem(e,t,i,a,n,o,l)}populateCommandOrOptionTitle(e,t,i,s){var n;if(t){const o=s>0,l=((n=this._menuElm)==null?void 0:n.querySelector(`.slick-${e}-header`))??v("div",{className:`slick-${e}-header`}),a=`${e}Title`;o||(t!=null&&t[a]?(ee(l),this[`_${e}TitleElm`]=v("span",{className:"slick-menu-title",textContent:t[a]}),l.appendChild(this[`_${e}TitleElm`]),l.classList.add("with-title")):l.classList.add("no-title"),i.appendChild(l))}}populateSingleCommandOrOptionItem(e,t,i,s,n,o,l){var h;let a=null;if(n&&s&&t){const d=(n==null?void 0:n.level)||0,c=this._camelPluginName==="headerButtons"?"":"-item",u=`${this._menuCssPrefix}${c}`;let p=!0,m=!0;if(typeof s=="object"&&(p=this.extensionUtility.runOverrideFunctionWhenExists(s.itemVisibilityOverride,n),m=this.extensionUtility.runOverrideFunctionWhenExists(s.itemUsabilityOverride,n)),!p)return null;if(typeof s=="object"&&s.itemUsabilityOverride&&(s.disabled=!m),a=v("li",{className:u,role:"menuitem"}),typeof s=="object"&&q(s[e])&&(a.dataset[e]=s==null?void 0:s[e]),i&&i.appendChild(a),typeof s=="object"&&s.divider||s==="divider")return a.classList.add(`${u}-divider`),a;if(s.disabled&&a.classList.add(`${u}-disabled`),(s.hidden||s.showOnHover)&&a.classList.add(`${u}-hidden`),s.cssClass&&a.classList.add(...he(s.cssClass)),s.tooltip&&(a.title=s.tooltip),this._camelPluginName!=="headerButtons"){const g=v("div",{className:`${this._menuCssPrefix}-icon`});a.appendChild(g),s.iconCssClass?g.classList.add(...he(s.iconCssClass)):!s.commandItems&&!s.optionItems&&(g.textContent="◦");const _=v("span",{className:`${this._menuCssPrefix}-content`,textContent:typeof s=="object"&&s.title||""},a);s.textCssClass&&_.classList.add(...he(s.textCssClass))}const f=d>0?"sub-menu":"parent-menu";if(this._bindEventService.bind(a,"click",g=>o.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),((h=this._addonOptions)==null?void 0:h.subMenuOpenByEvent)==="mouseover"&&typeof l=="function"&&this._bindEventService.bind(a,"mouseover",g=>l.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),s.commandItems||s.optionItems){const g=document.createElement("span");g.className="sub-item-chevron",this._addonOptions.subItemChevronClass?g.classList.add(...he(this._addonOptions.subItemChevronClass)):g.textContent="⮞",a.classList.add("slick-submenu-item"),a.appendChild(g)}}return a}}class Zl extends zs{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._currentCell=-1,this._currentRow=-1,this._lastMenuTypeClicked="",this._subMenuParentId=""}createParentMenu(e){var i,s,n,o,l;(i=this.menuElement)==null||i.remove(),this._menuElm=void 0;const t=this.grid.getCellFromEvent(e);if(t){this._currentCell=t.cell??0,this._currentRow=t.row??0;const a=((s=this._addonOptions)==null?void 0:s.commandItems)||[],h=((n=this._addonOptions)==null?void 0:n.optionItems)||[],d={cell:this._currentCell,row:this._currentRow,grid:this.grid};if(this.closeMenu(e,d),typeof e.stopPropagation=="function"&&(this.pubSubService.publish(`on${ti(this._camelPluginName)}BeforeMenuShow`,d),typeof((o=this.addonOptions)==null?void 0:o.onBeforeMenuShow)=="function"&&this.addonOptions.onBeforeMenuShow(e,d)===!1)||(this._menuElm=this.createMenu(a,h),this._menuElm&&(this._menuElm.style.top=`${(e.pageY||0)+5}px`,this._menuElm.style.left=`${e.pageX}px`,this._menuElm.style.display="block",document.body.appendChild(this._menuElm)),this.pubSubService.publish(`on${ti(this._camelPluginName)}AfterMenuShow`,d),typeof((l=this.addonOptions)==null?void 0:l.onAfterMenuShow)=="function"&&this.addonOptions.onAfterMenuShow(e,d)===!1))return}return this._menuElm}createMenu(e,t,i=0,s){var _,C,b,S,E;const n=this.grid.getColumns()[this._currentCell],o=this.grid.getDataItem(this._currentRow),l=(s==null?void 0:s.command)||(s==null?void 0:s.option);let a=i===1&&l?String(l).replace(/\s/g,""):"";a&&(this._subMenuParentId=a),i>1&&(a=this._subMenuParentId);let h=!0,d=!0;if(this._camelPluginName==="contextMenu"){if(h=this.checkIsColumnAllowed(((_=this._addonOptions)==null?void 0:_.optionShownOverColumnIds)??[],n.id),d=this.checkIsColumnAllowed(((C=this._addonOptions)==null?void 0:C.commandShownOverColumnIds)??[],n.id),!n||(!d||!e.length)&&(!h||!t.length)){this.hideMenu();return}}else if(!n||!n.cellMenu||!e.length&&!t.length)return;const c=`${this.menuCssClass} slick-menu-level-${i} ${this.gridUid}`,u=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${i}${this.gridUidSelector}`);if(u){if(u.dataset.subMenuParent===a)return u;this.disposeSubMenus()}const p=document.createElement("div");p.className=c,i>0&&(p.classList.add("slick-submenu"),(b=this.gridOptions)!=null&&b.darkMode&&p.classList.add("slick-dark-mode"),a&&(p.dataset.subMenuParent=a));const m=isNaN(this.addonOptions.maxHeight)?this.addonOptions.maxHeight:`${this.addonOptions.maxHeight??0}px`,f=isNaN(this.addonOptions.maxWidth)?this.addonOptions.maxWidth:`${this.addonOptions.maxWidth??0}px`;m&&(p.style.maxHeight=m),f&&(p.style.maxWidth=f),(S=this.addonOptions)!=null&&S.width&&(p.style.width=Pt((E=this.addonOptions)==null?void 0:E.width));const g=v("button",{ariaLabel:"Close",className:"close",type:"button",textContent:"×",dataset:{dismiss:this._menuCssPrefix}});if(!this.addonOptions.hideOptionSection&&h&&t.length>0){const y=v("div",{className:`${this._menuCssPrefix}-option-list`,role:"menu"},p);this.populateCommandOrOptionTitle("option",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&this.populateCommandOrOptionCloseBtn("option",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("option",this.addonOptions,y,t,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}if(!this.addonOptions.hideCommandSection&&d&&e.length>0){const y=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},p);this.populateCommandOrOptionTitle("command",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&(!h||t.length===0||this.addonOptions.hideOptionSection)&&this.populateCommandOrOptionCloseBtn("command",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("command",this.addonOptions,y,e,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}return i++,p}closeMenu(e,t){var i;if(this.menuElement){if(typeof((i=this.addonOptions)==null?void 0:i.onBeforeMenuClose)=="function"&&this.addonOptions.onBeforeMenuClose(e,t)===!1)return;this.hideMenu()}}hideMenu(){var e;(e=this.menuElement)==null||e.remove(),this._menuElm=null,this.disposeSubMenus()}checkIsColumnAllowed(e,t){return(e==null?void 0:e.length)>0?e.findIndex(i=>i===t)>=0:!0}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.closeMenu(e,{cell:this._currentCell,row:this._currentRow,grid:this.grid})}}handleCloseButtonClicked(e){e.defaultPrevented||this.closeMenu(e,{cell:0,row:0,grid:this.grid})}handleMenuItemMouseOver(e,t,i,s=0){(i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems||i.optionItems?(this.repositionSubMenu(i,t,s,e),this._lastMenuTypeClicked=t):s===0&&this.disposeSubMenus())}handleMenuItemCommandClick(e,t,i,s=0){var n;if((i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&this._currentCell!==void 0&&this._currentRow!==void 0){if(t==="option"&&!this.grid.getEditorLock().commitCurrentEdit())return;const o=this._currentCell,l=this._currentRow,a=this.grid.getColumns()[this._currentCell],h=this.grid.getDataItem(this._currentRow),d=i[t]!==void 0?i[t]:"";if(d!==void 0&&!i[`${t}Items`]){const c={cell:this._currentCell,row:this._currentRow,grid:this.grid,[t]:d,item:i,column:a,dataContext:h},u=t==="command"?"onCommand":"onOptionSelected",p=`${this._camelPluginName}:${u}`;this.pubSubService.publish(p,c),typeof((n=this._addonOptions)==null?void 0:n[u])=="function"&&this._addonOptions[u](e,c),typeof i.action=="function"&&i.action.call(this,e,c),e.defaultPrevented||this.closeMenu(e,{cell:o,row:l,grid:this.grid})}else(i.commandItems||i.optionItems)&&this.repositionSubMenu(i,t,s,e);this._lastMenuTypeClicked=t}}populateCommandOrOptionCloseBtn(e,t,i){this._bindEventService.bind(t,"click",n=>this.handleCloseButtonClicked(n),void 0,"parent-menu");const s=i.querySelector(`.slick-${e}-header`)??v("div",{className:`slick-${e}-header`});s==null||s.appendChild(t),i.appendChild(s),s.classList.add("with-close")}repositionSubMenu(e,t,i,s){(s.target.classList.contains("slick-cell")||this._lastMenuTypeClicked!==t)&&this.disposeSubMenus();const n=this.createMenu((e==null?void 0:e.commandItems)||[],(e==null?void 0:e.optionItems)||[],i+1,e);n&&(n.style.display="block",document.body.appendChild(n),this.repositionMenu(s,n))}repositionMenu(e,t){var n;const i=t==null?void 0:t.classList.contains("slick-submenu"),s=i?e.target.closest(`.${this._menuCssPrefix}-item`):e.target.closest(".slick-cell");if(t&&s){t.style.top="0px",t.style.left="0px";const o=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,l=ge(s);let a=s&&this._camelPluginName==="cellMenu"?l.left:o.pageX,h=s&&this._camelPluginName==="cellMenu"?l.top:o.pageY;i&&this._camelPluginName==="contextMenu"&&(a=l.left,h=l.top);const d=s.offsetWidth||0,c=(t==null?void 0:t.offsetHeight)||0,u=(t==null?void 0:t.offsetWidth)||this._addonOptions.width||0,p=this.gridOptions.rowHeight||0,m=Number(this._addonOptions.autoAdjustDropOffset||0),f=Number(this._addonOptions.autoAlignSideOffset||0);if(this._addonOptions.autoAdjustDrop||this._addonOptions.dropDirection){const{bottom:g,top:_}=Vi(s),C=g+m-p,b=_-m+p;(C<c&&b>C?"top":"bottom")==="top"||this._addonOptions.dropDirection==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),i?h-=c-m-s.clientHeight:h-=c-m):(t.classList.remove("dropup"),t.classList.add("dropdown"),h=h+m,this._camelPluginName==="cellMenu"&&(i?h+=m:h+=p+m))}if(this._addonOptions.autoAlignSide||this._addonOptions.dropSide==="left"){const g=this.grid.getGridPosition();let _=a+Number(u);i&&(_+=s.clientWidth);const C=document.documentElement.clientWidth;(_>=g.width||_>=C?"left":"right")==="left"||!i&&this._addonOptions.dropSide==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),this._camelPluginName==="cellMenu"&&!i?a-=Number(u)-d-f:a-=Number(u)-f):(t.classList.remove("dropleft"),t.classList.add("dropright"),i?a+=f+s.offsetWidth:a+=f)}t.style.top=`${h}px`,t.style.left=`${a}px`}}}class Gc extends Zl{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.pluginName="CellMenu",this._defaults={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:0,autoAlignSideOffset:0,hideMenuOnScroll:!0,subMenuOpenByEvent:"mouseover"},this._camelPluginName="cellMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-cell-menu",this.init(i.gridOptions.cellMenu)}init(e){this._addonOptions={...this._defaults,...e},this.sortMenuItems(this.sharedService.allColumns),this._eventHandler.subscribe(this.grid.onClick,this.handleCellClick.bind(this)),this._addonOptions.hideMenuOnScroll&&this._eventHandler.subscribe(this.grid.onScroll,this.closeMenu.bind(this))}translateCellMenu(){var i;const e=(i=this.sharedService)==null?void 0:i.gridOptions,t=this.sharedService.allColumns;e!=null&&e.enableTranslate&&Array.isArray(t)&&t.forEach(s=>{if(s!=null&&s.cellMenu&&(Array.isArray(s.cellMenu.commandItems)||Array.isArray(s.cellMenu.optionItems))){const n=s.cellMenu.commandItems||[],o=s.cellMenu.optionItems||[];s.cellMenu.commandTitleKey&&(s.cellMenu.commandTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.commandTitleKey,"TEXT_COMMANDS")||s.cellMenu.commandTitle),s.cellMenu.optionTitleKey&&(s.cellMenu.optionTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.optionTitleKey,"TEXT_COMMANDS")||s.cellMenu.optionTitle),this.extensionUtility.translateMenuItemsFromTitleKey(n,"commandItems"),this.extensionUtility.translateMenuItemsFromTitleKey(o,"optionItems")}})}handleCellClick(e,t){var s;this.disposeAllMenus();const i=this.grid.getCellFromEvent(e);if(i){const n=this.grid.getDataItem(i.row),o=this.grid.getColumns()[i.cell];o!=null&&o.cellMenu&&!((s=this.gridOptions.cellMenu)!=null&&s.activateCellOnMenuClick)&&e.preventDefault(),this._addonOptions={...this._addonOptions,...o.cellMenu};const l=t||{};if(l.column=o,l.dataContext=n,l.grid=this.grid,!this.extensionUtility.runOverrideFunctionWhenExists(this._addonOptions.menuUsabilityOverride,l))return;this._menuElm=this.createParentMenu(e),this._menuElm&&(this.repositionMenu(e,this._menuElm),this._menuElm.ariaExpanded="true",this._menuElm.style.display="block",this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode")),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}}sortMenuItems(e){e.forEach(t=>{var i,s;(i=t==null?void 0:t.cellMenu)!=null&&i.commandItems&&this.extensionUtility.sortItems(t.cellMenu.commandItems||[],"positionOrder"),(s=t==null?void 0:t.cellMenu)!=null&&s.optionItems&&this.extensionUtility.sortItems(t.cellMenu.optionItems||[],"positionOrder")})}}class Uc{constructor(e,t){this.grid=e,this.pluginName="CellRangeDecorator",this._defaults={selectionCssClass:"slick-range-decorator",selectionCss:{border:"2px dashed red",zIndex:"9999"},offset:{top:-1,left:-1,height:-2,width:-2}},this._options=Zt(this._defaults,t)}get addonOptions(){return this._options}get addonElement(){return this._elem}destroy(){this.hide()}init(){}hide(){var e;(e=this._elem)==null||e.remove(),this._elem=null}show(e){var s,n;this._elem||(this._elem=v("div",{className:this._options.selectionCssClass}),Object.keys(this._options.selectionCss).forEach(o=>{this._elem.style[o]=this._options.selectionCss[o]}),this._elem.style.position="absolute",(s=this.grid.getActiveCanvasNode())==null||s.appendChild(this._elem));const t=this.grid.getCellNodeBox(e.fromRow,e.fromCell),i=this.grid.getCellNodeBox(e.toRow,e.toCell);return t&&i&&((n=this._options)!=null&&n.offset)&&(this._elem.style.top=`${t.top+this._options.offset.top}px`,this._elem.style.left=`${t.left+this._options.offset.left}px`,this._elem.style.height=`${i.bottom-t.top+this._options.offset.height}px`,this._elem.style.width=`${i.right-t.left+this._options.offset.width}px`),this._elem}}class mr{constructor(e){this.pluginName="CellRangeSelector",this._currentlySelectedRange=null,this._canvas=null,this._dragging=!1,this._gridUid="",this._columnOffset=0,this._rowOffset=0,this._isRightCanvas=!1,this._isBottomCanvas=!1,this._xDelayForNextCell=0,this._yDelayForNextCell=0,this._viewportHeight=0,this._viewportWidth=0,this._isRowMoveRegistered=!1,this._scrollLeft=0,this._scrollTop=0,this._defaults={autoScroll:!0,minIntervalToShowNextCell:30,maxIntervalToShowNextCell:600,accelerateInterval:5,selectionCss:{border:"2px dashed blue"}},this.onBeforeCellRangeSelected=new P("onBeforeCellRangeSelected"),this.onCellRangeSelecting=new P("onCellRangeSelecting"),this.onCellRangeSelected=new P("onCellRangeSelected"),this._eventHandler=new pe,this._options=Zt(this._defaults,e)}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridUid(){var e;return this._gridUid||(((e=this._grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}init(e){this._grid=e,this._decorator=this._options.cellDecorator||new Uc(e,this._options),this._canvas=e.getCanvasNode(),this._gridOptions=e.getOptions(),this._gridUid=e.getUID();const t=e.getPubSubService();t&&T.addSlickEventPubSubWhenDefined(t,this),this._eventHandler.subscribe(this._grid.onDrag,this.handleDrag.bind(this)).subscribe(this._grid.onDragInit,this.handleDragInit.bind(this)).subscribe(this._grid.onDragStart,this.handleDragStart.bind(this)).subscribe(this._grid.onDragEnd,this.handleDragEnd.bind(this)).subscribe(this._grid.onScroll,this.handleScroll.bind(this))}destroy(){this.dispose()}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),ee(this._activeCanvas),ee(this._canvas),(t=this._decorator)==null||t.destroy(),this.stopIntervalTimer()}getCellDecorator(){return this._decorator}getCurrentRange(){return this._currentlySelectedRange}getMouseOffsetViewport(e,t){var m;const i=((m=e==null?void 0:e.touches)==null?void 0:m[0])??e,s=this._activeViewport.scrollLeft,n=this._activeViewport.scrollTop,o=s+this._viewportWidth,l=n+this._viewportHeight,a=ge(this._activeViewport),h=a.left,d=a.top,c=h+this._viewportWidth,u=d+this._viewportHeight,p={e,dd:t,viewport:{left:s,top:n,right:o,bottom:l,offset:{left:h,top:d,right:c,bottom:u}},offset:{x:0,y:0},isOutsideViewport:!1};return i.pageX<h?p.offset.x=i.pageX-h:i.pageX>c&&(p.offset.x=i.pageX-c),i.pageY<d?p.offset.y=d-i.pageY:i.pageY>u&&(p.offset.y=u-i.pageY),p.isOutsideViewport=!!p.offset.x||!!p.offset.y,p}stopIntervalTimer(){this._autoScrollTimerId&&(window.clearInterval(this._autoScrollTimerId),this._autoScrollTimerId=void 0)}handleDrag(e,t){if(!this._dragging&&!this._gridOptions.enableRowMoveManager)return;this._gridOptions.enableRowMoveManager||e.stopImmediatePropagation();const i=e.getNativeEvent();if(this.addonOptions.autoScroll&&(this._draggingMouseOffset=this.getMouseOffsetViewport(i,t),this._draggingMouseOffset.isOutsideViewport))return this.handleDragOutsideViewport();this.stopIntervalTimer(),this.handleDragTo(i,t)}handleDragOutsideViewport(){if(this._xDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.x)*this.addonOptions.accelerateInterval,this._yDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.y)*this.addonOptions.accelerateInterval,!this._autoScrollTimerId){let e=0,t=0;this._autoScrollTimerId=window.setInterval(()=>{let i=!1,s=!1;this._draggingMouseOffset.offset.x?(e+=this.addonOptions.minIntervalToShowNextCell,i=e>=this._xDelayForNextCell):e=0,this._draggingMouseOffset.offset.y?(t+=this.addonOptions.minIntervalToShowNextCell,s=t>=this._yDelayForNextCell):t=0,(i||s)&&(i&&(e=0),s&&(t=0),this.handleDragToNewPosition(i,s))},this.addonOptions.minIntervalToShowNextCell)}}handleDragToNewPosition(e,t){let i=this._draggingMouseOffset.e.pageX,s=this._draggingMouseOffset.e.pageY;const n=this._draggingMouseOffset.offset.x,o=this._draggingMouseOffset.offset.y,l=this._draggingMouseOffset.viewport.offset;e&&n&&(n>0?i=l.right+this._moveDistanceForOneCell.x:i=l.left-this._moveDistanceForOneCell.x),t&&o&&(o>0?s=l.top-this._moveDistanceForOneCell.y:s=l.bottom+this._moveDistanceForOneCell.y),this.handleDragTo({pageX:i,pageY:s},this._draggingMouseOffset.dd)}handleDragTo(e,t){var n;const i=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,s=this._grid.getCellFromPoint(i.pageX-ge(this._activeCanvas).left+this._columnOffset,i.pageY-ge(this._activeCanvas).top+this._rowOffset);if(s!==void 0){if(this._gridOptions.frozenColumn>=0&&(!this._isRightCanvas&&s.cell>this._gridOptions.frozenColumn||this._isRightCanvas&&s.cell<=this._gridOptions.frozenColumn)||this._gridOptions.frozenRow>=0&&(!this._isBottomCanvas&&s.row>=this._gridOptions.frozenRow||this._isBottomCanvas&&s.row<this._gridOptions.frozenRow))return;if(this.addonOptions.autoScroll&&this._draggingMouseOffset){const o=this._grid.getCellNodeBox(s.row,s.cell);if(o){const l=this._draggingMouseOffset.viewport;(o.left<l.left||o.right>l.right||o.top<l.top||o.bottom>l.bottom)&&this._grid.scrollCellIntoView(s.row,s.cell)}}if(!this._grid.canCellBeSelected(s.row,s.cell))return;if(t!=null&&t.range){t.range.end=s;const o=new tt(t.range.start.row??0,t.range.start.cell??0,s.row,s.cell);this._decorator.show(o),this.onCellRangeSelecting.notify({range:o})}}}handleDragEnd(e,t){this._decorator.hide(),this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),this.stopIntervalTimer(),this.onCellRangeSelected.notify({range:new tt(t.range.start.row??0,t.range.start.cell??0,t.range.end.row,t.range.end.cell)}))}handleDragInit(e){var n,o;this._activeCanvas=this._grid.getActiveCanvasNode(e),this._activeViewport=this._grid.getActiveViewportNode(e);const t=this._grid.getDisplayedScrollbarDimensions();if(this._viewportWidth=this._activeViewport.offsetWidth-t.width,this._viewportHeight=this._activeViewport.offsetHeight-t.height,this._moveDistanceForOneCell={x:this._grid.getAbsoluteColumnMinWidth()/2,y:this._gridOptions.rowHeight/2},this._rowOffset=0,this._columnOffset=0,this._isBottomCanvas=this._activeCanvas.classList.contains("grid-canvas-bottom"),this._gridOptions.frozenRow>-1&&this._isBottomCanvas){const l=`${this.gridUidSelector} .grid-canvas-${this._gridOptions.frozenBottom?"bottom":"top"}`;this._rowOffset=((n=document.querySelector(l))==null?void 0:n.clientHeight)??0}this._isRightCanvas=this._activeCanvas.classList.contains("grid-canvas-right"),this._gridOptions.frozenColumn>-1&&this._isRightCanvas&&(this._columnOffset=((o=document.querySelector(`${this.gridUidSelector} .grid-canvas-left`))==null?void 0:o.clientWidth)??0);const i=this._grid.getCellFromEvent(e),s=this._grid.getActiveCell();(!this._grid.getEditorLock().isActive()||!(s&&i&&s.row===i.row&&s.cell===i.cell))&&(e.stopImmediatePropagation(),e.preventDefault())}handleDragStart(e,t){const i=this._grid.getCellFromEvent(e);if(i&&this.onBeforeCellRangeSelected.notify(i).getReturnValue()!==!1&&this._grid.canCellBeSelected(i.row,i.cell)&&(this._dragging=!0,e.stopImmediatePropagation()),!this._dragging)return;this._grid.focus();const s=ge(this._canvas);let n=t.startX-s.left;this._gridOptions.frozenColumn>=0&&this._isRightCanvas&&(n+=this._scrollLeft);let o=t.startY-s.top;this._gridOptions.frozenRow>=0&&this._isBottomCanvas&&(o+=this._scrollTop);const l=this._grid.getCellFromPoint(n,o);return t.range={start:l,end:{}},this._currentlySelectedRange=t.range,this._decorator.show(new tt(l.row,l.cell))}handleScroll(e,t){this._scrollTop=t.scrollTop,this._scrollLeft=t.scrollLeft}}class jc{constructor(e){this.pluginName="CellSelectionModel",this._cachedPageRowCount=0,this._prevKeyDown="",this._ranges=[],this._defaults={selectActiveCell:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._selector=e===void 0||e.cellRangeSelector===void 0?new mr({selectionCss:{border:"2px solid black"}}):e.cellRangeSelector,this._addonOptions=e}get addonOptions(){return this._addonOptions}get cellRangeSelector(){return this._selector}get eventHandler(){return this._eventHandler}init(e){this._grid=e,(this._addonOptions===void 0||this._addonOptions.cellRangeSelector===void 0)&&(this._selector=new mr({selectionCss:{border:`2px solid ${this._grid.getOptions().darkMode?"white":"black"}`}})),e.hasDataView()&&(this._dataView=e.getData()),this._addonOptions={...this._defaults,...this._addonOptions};const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)).subscribe(this._selector.onBeforeCellRangeSelected,this.handleBeforeCellRangeSelected.bind(this)).subscribe(this._selector.onCellRangeSelected,this.handleCellRangeSelected.bind(this)),e.registerPlugin(this._selector)}destroy(){this.dispose()}dispose(){var e,t;this._selector&&(this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this))),this._eventHandler.unsubscribeAll(),(e=this._grid)==null||e.unregisterPlugin(this._selector),(t=this._selector)==null||t.dispose()}getSelectedRanges(){return this._ranges}rangesAreEqual(e,t){let i=e.length!==t.length;if(!i){for(let s=0;s<e.length;s++)if(e[s].fromCell!==t[s].fromCell||e[s].fromRow!==t[s].fromRow||e[s].toCell!==t[s].toCell||e[s].toRow!==t[s].toRow){i=!0;break}}return!i}refreshSelections(){this.setSelectedRanges(this.getSelectedRanges())}removeInvalidRanges(e){const t=[];for(let i=0;i<e.length;i++){const s=e[i];this._grid.canCellBeSelected(s.fromRow,s.fromCell)&&this._grid.canCellBeSelected(s.toRow,s.toCell)&&t.push(s)}return t}resetPageRowCount(){this._cachedPageRowCount=0}setSelectedRanges(e,t="SlickCellSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;const i=!this.rangesAreEqual(this._ranges,e);if(this._ranges=this.removeInvalidRanges(e),i){const s=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,s)}}handleActiveCellChange(e,t){var n,o;this._prevSelectedRow=void 0;const i=q(t.cell),s=q(t.row);(n=this._addonOptions)!=null&&n.selectActiveCell&&s&&i?this.setSelectedRanges([new tt(t.row,t.cell)]):(!((o=this._addonOptions)!=null&&o.selectActiveCell)||!s&&!i)&&this.setSelectedRanges([])}handleBeforeCellRangeSelected(e){const t=this._grid.getCellFromEvent(e),i=this._grid.getActiveCell();if(this._grid.getEditorLock().isActive()&&i&&t&&i.row===t.row&&i.cell===t.cell)return e.stopPropagation(),!1}handleCellRangeSelected(e,t){this._grid.setActiveCell(t.range.fromRow,t.range.fromCell,!1,!1,!0),this.setSelectedRanges([t.range])}isKeyAllowed(e){return["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","PageDown","PageUp","Home","End","a","A"].some(t=>t===e)}handleKeyDown(e){var l,a;let t,i;const s=this._grid.getColumns().length,n=this._grid.getActiveCell();let o=0;if(this._dataView&&"getPagingInfo"in this._dataView?o=((l=this._dataView)==null?void 0:l.getPagingInfo().pageSize)||this._dataView.getLength():o=this._grid.getDataLength(),n&&(e.shiftKey||e.ctrlKey)&&!e.altKey&&this.isKeyAllowed(e.key)&&(t=this.getSelectedRanges().slice(),t.length||t.push(new tt(n.row,n.cell)),i=t.pop(),typeof(i==null?void 0:i.contains)=="function")){i.contains(n.row,n.cell)||(i=new tt(n.row,n.cell));let h=i.toRow-i.fromRow,d=i.toCell-i.fromCell,c,u=0;e.ctrlKey&&((a=e.key)==null?void 0:a.toLowerCase())==="a"&&(this._grid.setActiveCell(0,0,!1,!1,!0),n.row=0,n.cell=0,c=s-1,u=o-1);const p=n.row===i.fromRow?1:-1,m=n.cell===i.fromCell?1:-1,f=e.key.startsWith("Arrow");f&&!e.ctrlKey?(e.key==="ArrowLeft"?d-=m:e.key==="ArrowRight"?d+=m:e.key==="ArrowUp"?h-=p:e.key==="ArrowDown"&&(h+=p),u=n.row+p*h):(this._cachedPageRowCount<1&&(this._cachedPageRowCount=this._grid.getViewportRowCount()),this._prevSelectedRow===void 0&&(this._prevSelectedRow=n.row),!e.ctrlKey&&e.shiftKey&&e.key==="Home"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowLeft"?(c=0,u=n.row):!e.ctrlKey&&e.shiftKey&&e.key==="End"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowRight"?(c=s-1,u=n.row):e.ctrlKey&&e.shiftKey&&e.key==="ArrowUp"?u=0:e.ctrlKey&&e.shiftKey&&e.key==="ArrowDown"?u=o-1:e.ctrlKey&&e.shiftKey&&e.key==="Home"?(c=0,u=0):e.ctrlKey&&e.shiftKey&&e.key==="End"?(c=s-1,u=o-1):e.key==="PageUp"?(this._prevSelectedRow>=0&&(u=this._prevSelectedRow-this._cachedPageRowCount),u<0&&(u=0)):e.key==="PageDown"&&(this._prevSelectedRow<=o-1&&(u=this._prevSelectedRow+this._cachedPageRowCount),u>o-1&&(u=o-1)),this._prevSelectedRow=u),c??(c=n.cell+m*d);const g=new tt(n.row,n.cell,u,c);if(this.removeInvalidRanges([g]).length){t.push(g);const _=p>0?g.toRow:g.fromRow,C=m>0?g.toCell:g.fromCell;f?(this._grid.scrollRowIntoView(_),this._grid.scrollCellIntoView(_,C,!1)):(this._grid.scrollRowIntoView(u),this._grid.scrollCellIntoView(u,C,!1))}else t.push(i);this.setSelectedRanges(t),e.preventDefault(),e.stopPropagation(),this._prevKeyDown=e.key}}}class fr{constructor(e){this.pluginName="RowSelectionModel",this._inHandler=!1,this._ranges=[],this._defaults={autoScrollWhenDrag:!0,cellRangeSelector:void 0,dragToSelect:!1,selectActiveRow:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._options={...this._defaults,...e}}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return(e=this._grid)==null?void 0:e.getOptions()}init(e){this._grid=e,this._options={...this._defaults,...this._options},this._selector=this.addonOptions.cellRangeSelector;const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),!this._selector&&this._options.dragToSelect&&(this._selector=new mr({selectionCss:{border:"none"},autoScroll:this._options.autoScrollWhenDrag}),this.addonOptions.cellRangeSelector=this._selector),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onClick,this.handleClick.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)),this._selector&&(this._grid.registerPlugin(this._selector),this._selector.onCellRangeSelecting.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.subscribe(this.handleBeforeCellRangeSelected.bind(this)))}destroy(){this.dispose()}dispose(){this._eventHandler.unsubscribeAll(),this.disposeSelector()}disposeSelector(){var e,t;this._selector&&(this._selector.onCellRangeSelecting.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._grid.unregisterPlugin(this._selector),(e=this._selector)==null||e.destroy(),(t=this._selector)==null||t.dispose())}getCellRangeSelector(){return this._selector}getSelectedRanges(){return this._ranges}getSelectedRows(){return this.rangesToRows(this._ranges)}refreshSelections(){this.setSelectedRows(this.getSelectedRows())}setSelectedRows(e){this.setSelectedRanges(this.rowsToRanges(e),"SlickRowSelectionModel.setSelectedRows")}setSelectedRanges(e,t="SlickRowSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;this._ranges=e;const i=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,i)}getRowsRange(e,t){let i;const s=[];for(i=e;i<=t;i++)s.push(i);for(i=t;i<e;i++)s.push(i);return s}handleBeforeCellRangeSelected(e,t){let i=!1;if(this.gridOptions.enableRowMoveManager&&(i=this.isHandlerColumn(t.cell)??!1),this._grid.getEditorLock().isActive()||i)return e.stopPropagation(),!1;this._grid.setActiveCell(t.row,t.cell)}handleCellRangeSelected(e,t){if(!this.gridOptions.multiSelect||!this.addonOptions.selectActiveRow)return!1;this.setSelectedRanges([new tt(t.range.fromRow,0,t.range.toRow,this._grid.getColumns().length-1)])}handleActiveCellChange(e,t){this._options.selectActiveRow&&t.row!==null&&this.setSelectedRanges([new tt(t.row,0,t.row,this._grid.getColumns().length-1)])}handleClick(e){const t=this._grid.getCellFromEvent(e);if(!t||!this._grid.canCellBeActive(t.row,t.cell)||!this.gridOptions.multiSelect||!e.ctrlKey&&!e.shiftKey&&!e.metaKey)return!1;let i=this.rangesToRows(this._ranges);const s=i.indexOf(t.row);if(s===-1&&(e.ctrlKey||e.metaKey))i.push(t.row),this._grid.setActiveCell(t.row,t.cell);else if(s!==-1&&(e.ctrlKey||e.metaKey))i=i.filter(o=>o!==t.row),this._grid.setActiveCell(t.row,t.cell);else if(i.length&&e.shiftKey){const o=i.pop(),l=Math.min(t.row,o),a=Math.max(t.row,o);i=[];for(let h=l;h<=a;h++)h!==o&&i.push(h);i.push(o),this._grid.setActiveCell(t.row,t.cell)}const n=this.rowsToRanges(i);return this.setSelectedRanges(n),e.stopImmediatePropagation(),!0}handleKeyDown(e){const t=this._grid.getActiveCell();if(this.gridOptions.multiSelect&&t&&e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){let i=this.getSelectedRows();i.sort((l,a)=>l-a),i.length||(i=[t.row]);let s,n=i[0],o=i[i.length-1];if(e.key==="ArrowDown"?s=t.row<o||n===o?++o:++n:s=t.row<o?--o:--n,s>=0&&s<this._grid.getDataLength()){this._grid.scrollRowIntoView(s);const l=this.rowsToRanges(this.getRowsRange(n,o));this.setSelectedRanges(l)}e.preventDefault(),e.stopPropagation()}}isHandlerColumn(e){const i=this._grid.getColumns()[e].behavior||"";return/move|selectAndMove/.test(i)}rangesToRows(e){const t=[];for(let i=0;i<e.length;i++)for(let s=e[i].fromRow;s<=e[i].toRow;s++)t.push(s);return t}rowsToRanges(e){const t=[],i=this._grid.getColumns().length-1;return e.forEach(s=>t.push(new tt(s,0,s,i))),t}}const Jl="mdi-icon-check",ea="mdi-icon-uncheck";class ta{constructor(e,t){this.pubSubService=e,this.pluginName="CheckboxSelectColumn",this._defaults={columnId:"_checkbox_selector",cssClass:null,field:"_checkbox_selector",hideSelectAllCheckbox:!1,name:"",toolTip:"Select/Deselect All",width:30,reorderable:!1,applySelectOnAllPages:!0,hideInColumnTitleRow:!1,hideInFilterHeaderRow:!0},this._addonOptions=this._defaults,this._checkboxColumnCellIndex=null,this._isSelectAllChecked=!1,this._isUsingDataView=!1,this._selectedRowsLookup={},this._selectAll_UID=this.createUID(),this._bindEventService=new Pe,this._eventHandler=new pe,this._addonOptions={...this._defaults,...t}}get addonOptions(){return this._addonOptions}get headerRowNode(){return this._headerRowNode}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get selectAllUid(){return this._selectAll_UID}set selectedRowsLookup(e){this._selectedRowsLookup=e}init(e){this._grid=e,this._isUsingDataView=!Array.isArray(e.getData()),this._isUsingDataView&&(this._dataView=e.getData()),this.gridOptions.backendServiceApi&&(this._addonOptions.applySelectOnAllPages=!1),this._eventHandler.subscribe(e.onSelectedRowsChanged,this.handleSelectedRowsChanged.bind(this)).subscribe(e.onClick,this.handleClick.bind(this)).subscribe(e.onKeyDown,this.handleKeyDown.bind(this)),this._isUsingDataView&&this._dataView&&(this._eventHandler.subscribe(e.onAfterSetColumns,this.handleDataViewSelectedIdsChanged.bind(this)),this._addonOptions.applySelectOnAllPages&&this._eventHandler.subscribe(this._dataView.onSelectedRowIdsChanged,this.handleDataViewSelectedIdsChanged.bind(this)).subscribe(this._dataView.onPagingInfoChanged,this.handleDataViewSelectedIdsChanged.bind(this))),this._addonOptions.hideInFilterHeaderRow||this.addCheckboxToFilterHeaderRow(e),this._addonOptions.hideInColumnTitleRow||this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this)),(!this._rowSelectionModel||!this._grid.getSelectionModel())&&(this._rowSelectionModel=new fr(this.gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionModel)),this.gridOptions.preselectedRows&&this._rowSelectionModel&&this._grid.getSelectionModel()&&window.setTimeout(()=>this.selectRows(this.gridOptions.preselectedRows||[])),typeof this._addonOptions.selectableOverride=="function"&&this.selectableOverride(this._addonOptions.selectableOverride)}dispose(){this._bindEventService.unbindAll(),this._eventHandler.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.checkboxSelector},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=((i=t==null?void 0:t.checkboxSelector)==null?void 0:i.columnIndexPosition)??0;n>0?e.splice(n,0,s):e.unshift(s),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getOptions(){return this._addonOptions}setOptions(e){var t;if(this._addonOptions={...this._addonOptions,...e},this._addonOptions.hideSelectAllCheckbox)this.hideSelectAllFromColumnHeaderTitleRow(),this.hideSelectAllFromColumnHeaderFilterRow();else if(this._addonOptions.hideInColumnTitleRow?(this.hideSelectAllFromColumnHeaderTitleRow(),this._addonOptions.name&&this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name,"")):(this.renderSelectAllCheckbox(this._isSelectAllChecked),this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this))),this._addonOptions.hideInFilterHeaderRow)this.hideSelectAllFromColumnHeaderFilterRow();else{const i=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");if(i){i.style.display="flex",i.ariaChecked=String(this._isSelectAllChecked);const s=i.querySelector('input[type="checkbox"]');s&&(s.ariaChecked=String(this._isSelectAllChecked),s.checked=this._isSelectAllChecked)}}}deSelectRows(e){const t=[];for(const i of e)this._selectedRowsLookup[i]&&(t[t.length]=i);this._grid.setSelectedRows(this._grid.getSelectedRows().filter(i=>t.indexOf(i)<0),"SlickCheckboxSelectColumn.deSelectRows")}selectRows(e){var s;const t=[];for(const n of e)this._selectedRowsLookup[n]&&(t[t.length]=n);const i=(s=this._grid.getSelectedRows())==null?void 0:s.concat(t);this._grid.setSelectedRows(i)}createCheckboxElement(e,t=!1){var o;const i=(o=this.gridOptions)!=null&&o.preventDocumentFragmentUsage?document.createElement("span"):new DocumentFragment,s=v("label",{className:"checkbox-selector-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"});return n.appendChild(v("input",{id:e,type:"checkbox",checked:t,ariaChecked:String(t)})),n.appendChild(v("div",{className:`mdi ${t?Jl:ea}`})),s.appendChild(n),i.appendChild(s),i}getColumnDefinition(){var t;const e=String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId);return{id:e,name:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?this._addonOptions.name||"":this.createCheckboxElement(`header-selector${this._selectAll_UID}`),toolTip:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?"":this._addonOptions.toolTip,field:e,cssClass:this._addonOptions.cssClass,excludeFromExport:!0,excludeFromColumnPicker:!0,excludeFromGridMenu:!0,excludeFromQuery:!0,excludeFromHeaderMenu:!0,hideSelectAllCheckbox:this._addonOptions.hideSelectAllCheckbox,resizable:!1,reorderable:this._addonOptions.reorderable,sortable:!1,width:this._addonOptions.width||30,maxWidth:this._addonOptions.width||30,formatter:this.checkboxSelectionFormatter.bind(this)}}hideSelectAllFromColumnHeaderTitleRow(){this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name||"","")}hideSelectAllFromColumnHeaderFilterRow(){var t;const e=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");e&&(e.style.display="none")}toggleRowSelection(e){this.toggleRowSelectionWithEvent(null,e)}toggleRowSelectionWithEvent(e,t){const i=this._grid.getDataItem(t);if(!this.checkSelectableOverride(t,i,this._grid))return;const s=this._grid.getSelectedRows();typeof this._addonOptions.onRowToggleStart=="function"&&this._addonOptions.onRowToggleStart(e,{row:t,previousSelectedRows:s});const n=this._selectedRowsLookup[t]?this._grid.getSelectedRows().filter(o=>o!==t):this._grid.getSelectedRows().concat(t);this._grid.setSelectedRows(n,"click.toggle"),this._grid.setActiveCell(t,this.getCheckboxColumnCellIndex()),this._addonOptions.onRowToggleEnd&&this._addonOptions.onRowToggleEnd(e,{row:t,previousSelectedRows:s})}selectableOverride(e){this._selectableOverride=e}addCheckboxToFilterHeaderRow(e){this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{if(i.column.field===(this._addonOptions.field||"_checkbox_selector")){ee(i.node);const s=`header-filter-selector${this._selectAll_UID}`,n=v("label",{id:"filter-checkbox-selectall-container",htmlFor:s}),o=v("div",{className:"icon-checkbox-container"});o.appendChild(v("input",{id:s,type:"checkbox",ariaChecked:"false"})),o.appendChild(v("div",{className:"mdi mdi-icon-uncheck"})),n.appendChild(o),i.node.appendChild(n),this._headerRowNode=i.node,this._headerRowNode.classList.add("checkbox-header"),this._bindEventService.bind(n,"click",l=>this.handleHeaderClick(l,i))}})}checkboxSelectionFormatter(e,t,i,s,n,o){if(n&&this.checkSelectableOverride(e,n,o)){const l=this.createUID()+e;return this.createCheckboxElement(`selector${l}`,!!this._selectedRowsLookup[e])}return null}checkSelectableOverride(e,t,i){return typeof this._selectableOverride=="function"?this._selectableOverride(e,t,i):!0}createUID(){return Math.round(1e7*Math.random())}getCheckboxColumnCellIndex(){if(this._checkboxColumnCellIndex===null){this._checkboxColumnCellIndex=0;const e=this._grid.getColumns();for(let t=0;t<e.length;t++)e[t].id===this._addonOptions.columnId&&(this._checkboxColumnCellIndex=t)}return this._checkboxColumnCellIndex}handleDataViewSelectedIdsChanged(){var s,n;const e=this._dataView.getAllSelectedFilteredIds(),t=this._dataView.getFilteredItems();let i=0;if(typeof this._selectableOverride=="function"&&e.length>0)for(let o=0;o<this._dataView.getItemCount();o++){const l=this._dataView.getItemByIdx(o),a=this._dataView.getIdPropertyName(),h=l[a];t.findIndex(c=>c[a]===h)>=0&&!this.checkSelectableOverride(o,l,this._grid)&&i++}if(this._isSelectAllChecked=e.length+i>=t.length,!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow){const o=(s=this.headerRowNode)==null?void 0:s.querySelector(`#header-filter-selector${this._selectAll_UID}`),l=(n=this.headerRowNode)==null?void 0:n.querySelector(".icon-checkbox-container .mdi");o&&(o.ariaChecked=String(this._isSelectAllChecked),o.checked=this._isSelectAllChecked),l&&(l.className=`mdi ${this._isSelectAllChecked?Jl:ea}`)}}handleClick(e,t){if(this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}this.toggleRowSelectionWithEvent(e,t.row),e.stopPropagation(),e.stopImmediatePropagation()}}handleHeaderClick(e,t){if(t.column.id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}let i=e.target.checked;const s=i?"click.selectAll":"click.unselectAll",n=this._grid.getSelectedRows();this._addonOptions.onSelectAllToggleStart&&this._addonOptions.onSelectAllToggleStart(e,{previousSelectedRows:n,caller:s});let o=[];if(i){const l=[];for(let a=0;a<this._grid.getDataLength();a++){const h=this._grid.getDataItem(a);!h.__group&&!h.__groupTotals&&this.checkSelectableOverride(a,h,this._grid)&&l.push(a)}o=l,i=!0}if(this._isUsingDataView&&this._dataView&&this._addonOptions.applySelectOnAllPages){const l=[],a=this._dataView.getFilteredItems();for(let h=0;h<a.length;h++){const d=a[h];this.checkSelectableOverride(h,d,this._grid)&&l.push(d[this._dataView.getIdPropertyName()])}this._dataView.setSelectedIds(l,{isRowBeingAdded:i})}this._grid.setSelectedRows(o,s),this._addonOptions.onSelectAllToggleEnd&&this._addonOptions.onSelectAllToggleEnd(e,{rows:o,previousSelectedRows:n,caller:s}),e.stopPropagation(),e.stopImmediatePropagation()}}handleKeyDown(e,t){e.key===" "&&this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&((!this._grid.getEditorLock().isActive()||this._grid.getEditorLock().commitCurrentEdit())&&this.toggleRowSelectionWithEvent(e,t.row),e.preventDefault(),e.stopImmediatePropagation())}handleSelectedRowsChanged(){var a;const e=this._grid.getSelectedRows(),t={};let i=0,s=0,n=0,o=0;if(typeof this._selectableOverride=="function")for(n=0;n<this._grid.getDataLength();n++){const h=this._grid.getDataItem(n);this.checkSelectableOverride(s,h,this._grid)||o++}const l=[];for(s=0;s<e.length;s++){i=e[s];const h=this._grid.getDataItem(i);this.checkSelectableOverride(s,h,this._grid)?(t[i]=!0,t[i]!==this._selectedRowsLookup[i]&&(this._grid.invalidateRow(i),delete this._selectedRowsLookup[i])):l.push(i)}if(typeof this._selectedRowsLookup=="object"&&Object.keys(this._selectedRowsLookup).forEach(h=>{h!==void 0&&this._grid.invalidateRow(+h)}),this._selectedRowsLookup=t,this._grid.render(),this._isSelectAllChecked=((e==null?void 0:e.length)??0)+o>=this._grid.getDataLength(),(!this._isUsingDataView||!this._addonOptions.applySelectOnAllPages)&&(!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow)){const h=(a=this.headerRowNode)==null?void 0:a.querySelector(`#header-filter-selector${this._selectAll_UID}`);h&&(h.ariaChecked=String(this._isSelectAllChecked),h.checked=this._isSelectAllChecked)}if(l.length>0){for(const h of l){const d=e.indexOf(h);e.splice(d,1)}this._grid.setSelectedRows(e,"click.toggle")}}renderSelectAllCheckbox(e){const t=this._grid.updateColumnHeader(this._addonOptions.columnId||"",this.createCheckboxElement(`header-selector${this._selectAll_UID}`,!!e),this._addonOptions.toolTip);t==null||t.classList.add("header-checkbox-selectall")}}class ia extends zs{constructor(e,t,i,s,n){var o;super(e,i,s),this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this._areVisibleColumnDifferent=!1,this._columns=[],this._columnCheckboxes=[],this._commandMenuElm=null,this._headerElm=null,this._isMenuOpen=!1,this._subMenuParentId="",this._defaults={dropSide:"left",showButton:!0,hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",marginBottom:15,menuWidth:18,minHeight:150,contentMinWidth:0,resizeOnShowHeaderRow:!1,syncResizeTitle:"Synchronous resize",subMenuOpenByEvent:"mouseover",headerColumnValueExtractor:l=>_t(l.columnPickerLabel||l.name||"","innerHTML")},this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-grid-menu",this._camelPluginName="gridMenu",this._columns=this.sharedService.allColumns??[],this._gridUid=((o=this.grid)==null?void 0:o.getUID())??"",this.onAfterMenuShow=new P("onAfterMenuShow"),this.onBeforeMenuShow=new P("onBeforeMenuShow"),this.onMenuClose=new P("onMenuClose"),this.onCommand=new P("onCommand"),this.onColumnsChanged=new P("onColumnsChanged"),this.initEventHandlers(),this.init()}get addonOptions(){return this._addonOptions||{}}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())||{}}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}initEventHandlers(){this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,e=>this.hideMenu(e)),this._eventHandler.subscribe(this.grid.onBeforeDestroy,this.dispose.bind(this)),this._eventHandler.subscribe(this.grid.onSetOptions,(e,t)=>{if(t&&t.optionsBefore&&t.optionsAfter){const i=t.optionsBefore.frozenColumn>=0&&t.optionsAfter.frozenColumn===-1,s=t.optionsBefore.frozenColumn===-1&&t.optionsAfter.frozenColumn>=0;(i||s)&&this.recreateGridMenu()}})}init(){this._gridUid=this.grid.getUID()??"",T.addSlickEventPubSubWhenDefined(this.pubSubService,this),this._userOriginalGridMenu={...this.sharedService.gridOptions.gridMenu},this._addonOptions={...this._defaults,...this.getDefaultGridMenuOptions(),...this.sharedService.gridOptions.gridMenu},this.sharedService.gridOptions.gridMenu=this._addonOptions;const e=this._userOriginalGridMenu.commandItems,t=this._userOriginalGridMenu&&Array.isArray(e)?e:[];this._addonOptions.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(this._addonOptions.commandItems||[],"commandItems"),this.extensionUtility.sortItems(this._addonOptions.commandItems,"positionOrder"),this.createGridMenu()}dispose(){this.deleteMenu(),super.dispose()}deleteMenu(){var e,t;this._bindEventService.unbindAll(),(e=this._menuElm)==null||e.remove(),this._menuElm=null,(t=this._gridMenuButtonElm)==null||t.remove(),this._headerElm&&(this._headerElm.style.width="100%")}createColumnPickerContainer(){this._menuElm&&(oa.call(this,this._menuElm),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(this._menuElm,"click",la.bind(this),void 0,"parent-menu"))}createGridMenu(){var n,o;const e=this._gridUid?`.${this._gridUid}`:"",t=((n=this._addonOptions)==null?void 0:n.menuWidth)||this._defaults.menuWidth,i=this.gridOptions.hasOwnProperty("frozenColumn")&&this.gridOptions.frozenColumn>=0?"right":"left",s=this.grid.getContainerNode();if(this._headerElm=s.querySelector(`.slick-header-${i}`),this._headerElm&&this._addonOptions){if(this._headerElm.style.width=`calc(100% - ${t}px)`,(this._addonOptions.resizeOnShowHeaderRow??this._defaults.resizeOnShowHeaderRow)&&this.gridOptions.showHeaderRow){const h=s.querySelector(`${e} .slick-headerrow`);h&&(h.style.width=`calc(100% - ${t}px)`)}if(this._addonOptions.showButton??this._defaults.showButton){this._gridMenuButtonElm=v("button",{className:"slick-grid-menu-button",ariaLabel:"Grid Menu"}),(o=this._addonOptions)!=null&&o.iconCssClass&&this._gridMenuButtonElm.classList.add(...he(this._addonOptions.iconCssClass));const h=this._addonOptions.iconButtonContainer==="preheader"?"firstChild":"lastChild";this._headerElm.parentElement.insertBefore(this._gridMenuButtonElm,this._headerElm.parentElement[h]),this._bindEventService.bind(this._gridMenuButtonElm,"click",this.showGridMenu.bind(this))}this.sharedService.gridOptions.gridMenu={...this._defaults,...this._addonOptions},this.translateTitleLabels(this._addonOptions),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this)),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this))}}createCommandMenu(e,t=0,i){const s=i==null?void 0:i.command;let n=t===1&&s?s.replace(/\s/g,""):"";n&&(this._subMenuParentId=n),t>1&&(n=this._subMenuParentId);const o=`${this.menuCssClass} slick-menu-level-${t} ${this._gridUid}`,l=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${t}${this.gridUidSelector}`);if(l){if(l.dataset.subMenuParent===n)return l;this.disposeSubMenus()}const a=v("div",{role:"menu",className:o,ariaLabel:t>1?"SubMenu":"Grid Menu"});t>0&&(a.classList.add("slick-submenu"),n&&(a.dataset.subMenuParent=n));const h={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns(),level:t};return this._commandMenuElm=this.recreateCommandList(e,a,h,i),t++,a}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}hideMenu(e){var i,s,n;const t={grid:this.grid,menu:this._menuElm,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};if(this.pubSubService.publish("onGridMenuMenuClose",t),!(typeof((i=this._addonOptions)==null?void 0:i.onMenuClose)=="function"&&this._addonOptions.onMenuClose(e,t)===!1||this.onMenuClose.notify(t,null,this).getReturnValue()===!1)){if(this._isMenuOpen=!1,typeof((s=this.grid)==null?void 0:s.autosizeColumns)=="function"){const o=this.grid.getUID()||"";this._areVisibleColumnDifferent&&o&&document.querySelector(`.${o}`)!==null&&(this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this._areVisibleColumnDifferent=!1)}this.disposeSubMenus(),(n=this._menuElm)==null||n.remove(),this._menuElm=null}}recreateGridMenu(){this.deleteMenu(),this.init()}repositionMenu(e,t,i,s){var a,h;const n=((a=e==null?void 0:e.touches)==null?void 0:a[0])??e,o=t.classList.contains("slick-submenu"),l=o?e.target.closest(".slick-menu-item"):n.target;if(l){const d=i||this._gridMenuButtonElm,c=ge(i),u=ge(l),p=s??this._addonOptions,m=getComputedStyle(d),f=parseInt((m==null?void 0:m.width)??((h=this._defaults)==null?void 0:h.menuWidth),10),g=(t==null?void 0:t.offsetWidth)??0,_=(p==null?void 0:p.contentMinWidth)??this._defaults.contentMinWidth??0,C=(_>g?_:g)||0,b=c.top,S=c.right;let E,y;if(o?(y=u.top,E=u.left):(y=b+d.offsetHeight,E=(p==null?void 0:p.dropSide)==="right"?S-f:S-C),o){const D=(t==null?void 0:t.clientHeight)||0,{bottom:L,top:M}=Vi(l);(L<D&&M>L?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),y-=D-l.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}const x=this.grid.getGridPosition();let O=E+Number(g);o&&(O+=l.clientWidth);const I=document.documentElement.clientWidth;(O>=x.width||O>=I?"left":"right")==="left"||!o&&(p==null?void 0:p.dropSide)==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),o&&(E-=Number(g))):(t.classList.remove("dropleft"),t.classList.add("dropright"),o&&(E+=l.offsetWidth)),t.style.top=`${y}px`,t.style.left=`${E}px`,_>0&&(t.style.minWidth=`${_}px`),t.style.opacity="1",t.style.display="block"}}openGridMenu(){const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,composed:!1});Object.defineProperty(e,"target",{writable:!0,configurable:!0,value:v("button",{className:"slick-grid-menu-button"})}),this.showGridMenu(e)}showGridMenu(e,t){var s,n,o;const i=((s=e==null?void 0:e.touches)==null?void 0:s[0])??e;if(e.preventDefault(),ee(this._menuElm),(n=this._menuElm)==null||n.remove(),this._addonOptions){const l={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns()},a={...this._addonOptions,...t};if(a&&!this.extensionUtility.runOverrideFunctionWhenExists(a.menuUsabilityOverride,l)||typeof e.stopPropagation=="function"&&(this.pubSubService.publish("onGridMenuBeforeMenuShow",l),typeof(a==null?void 0:a.onBeforeMenuShow)=="function"&&a.onBeforeMenuShow(e,l)===!1||this.onBeforeMenuShow.notify(l,null,this).getReturnValue()===!1))return;this._menuElm=this.createCommandMenu(((o=this._addonOptions)==null?void 0:o.commandItems)??[]),this.createColumnPickerContainer(),$s.call(this),this._columnCheckboxes=[],ha.call(this,a),document.body.appendChild(this._menuElm),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),this._menuElm.style.opacity="0";const h=((a==null?void 0:a.marginBottom)!==void 0?a.marginBottom:this._defaults.marginBottom)||0;this._menuElm.style.minHeight=Pt(a==null?void 0:a.minHeight,""),(a==null?void 0:a.height)!==void 0?this._menuElm.style.height=Pt(a.height,""):this._menuElm.style.maxHeight=Pt(a==null?void 0:a.maxHeight,`${window.innerHeight-i.clientY-h}px`);let d=e.target.nodeName==="BUTTON"?e.target:e.target.querySelector("button");d||(d=e.target.parentElement),this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm),this.repositionMenu(e,this._menuElm,d,a),this._isMenuOpen=!0,this.pubSubService.publish("onGridMenuAfterMenuShow",l),typeof(a==null?void 0:a.onAfterMenuShow)=="function"&&a.onAfterMenuShow(e,l),this.onAfterMenuShow.notify(l,null,this)}}translateGridMenu(){var e;if(this.sharedService.gridOptions.gridMenu){this.sharedService.gridOptions.gridMenu.commandItems=[],this.sharedService.gridOptions.gridMenu.commandTitle="",this.sharedService.gridOptions.gridMenu.columnTitle="",this.sharedService.gridOptions.gridMenu.forceFitTitle="",this.sharedService.gridOptions.gridMenu.syncResizeTitle="";const t=this._userOriginalGridMenu&&Array.isArray(this._userOriginalGridMenu.commandItems)?this._userOriginalGridMenu.commandItems:[];this.sharedService.gridOptions.gridMenu.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(((e=this._addonOptions)==null?void 0:e.commandItems)||[],"commandItems"),this.extensionUtility.sortItems(this.sharedService.gridOptions.gridMenu.commandItems,"positionOrder"),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this.translateTitleLabels(this._addonOptions),this.extensionUtility.translateItems(this._columns,"nameKey","name")}}translateTitleLabels(e){e&&(e.commandTitle=this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"),e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),e.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),e.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"))}addGridMenuCustomCommands(e){var l,a;const t=this.gridOptions.backendServiceApi||null,i=[],s=this.gridOptions,n=lt(s),o=(l=this._addonOptions)==null?void 0:l.commandLabels;if(this._addonOptions&&this.gridOptions){if(!this._addonOptions.hideClearFrozenColumnsCommand){const d="clear-pinning";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearFrozenColumnsCommand||"mdi mdi-pin-off-outline",titleKey:`${n}${(o==null?void 0:o.clearFrozenColumnsCommandKey)??"CLEAR_PINNING"}`,disabled:!1,command:d,positionOrder:52})}if(this.gridOptions.enableFiltering&&!this.sharedService.hideHeaderRowAfterPageLoad){if(!this._addonOptions.hideClearAllFiltersCommand){const d="clear-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllFiltersCommand||"mdi mdi-filter-remove-outline",titleKey:`${n}${(o==null?void 0:o.clearAllFiltersCommandKey)??"CLEAR_ALL_FILTERS"}`,disabled:!1,command:d,positionOrder:50})}if(!this._addonOptions.hideToggleFilterCommand){const d="toggle-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleFilterCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.toggleFilterCommandKey)??"TOGGLE_FILTER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(t&&!this._addonOptions.hideRefreshDatasetCommand){const d="refresh-dataset";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconRefreshDatasetCommand||"mdi mdi-sync",titleKey:`${n}${(o==null?void 0:o.refreshDatasetCommandKey)??"REFRESH_DATASET"}`,disabled:!1,command:d,positionOrder:58})}}if(!this._addonOptions.hideToggleDarkModeCommand){const d="toggle-dark-mode";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleDarkModeCommand||"mdi mdi-brightness-4",titleKey:`${n}${(o==null?void 0:o.toggleDarkModeCommandKey)??"TOGGLE_DARK_MODE"}`,disabled:!1,command:d,positionOrder:54})}if(this.gridOptions.showPreHeaderPanel&&!this._addonOptions.hideTogglePreHeaderCommand){const d="toggle-preheader";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconTogglePreHeaderCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.togglePreHeaderCommandKey)??"TOGGLE_PRE_HEADER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(this.gridOptions.enableSorting&&!this._addonOptions.hideClearAllSortingCommand){const d="clear-sorting";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllSortingCommand||"mdi mdi-sort-variant-off",titleKey:`${n}${(o==null?void 0:o.clearAllSortingCommandKey)??"CLEAR_ALL_SORTING"}`,disabled:!1,command:d,positionOrder:51})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportCsvCommand){const d="export-csv";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportCsvCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportCsvCommandKey)??"EXPORT_TO_CSV"}`,disabled:!1,command:d,positionOrder:55})}if(this.gridOptions.enableExcelExport&&!this._addonOptions.hideExportExcelCommand){const d="export-excel";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportExcelCommand||"mdi mdi-file-excel-outline text-success",titleKey:`${n}${(o==null?void 0:o.exportExcelCommandKey)??"EXPORT_TO_EXCEL"}`,disabled:!1,command:d,positionOrder:56})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportTextDelimitedCommand){const d="export-text-delimited";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportTextDelimitedCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportTextDelimitedCommandKey)??"EXPORT_TO_TAB_DELIMITED"}`,disabled:!1,command:d,positionOrder:57})}const h=((a=this._addonOptions)==null?void 0:a.commandItems)||[];(Array.isArray(i)&&i.length>0||Array.isArray(h)&&h.length>0)&&(this._addonOptions.commandTitle=this._addonOptions.commandTitle||this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"))}return i}executeGridMenuInternalCustomCommands(e,t){var s,n,o;const i=((s=this.sharedService)==null?void 0:s.externalRegisteredResources)||[];if(t!=null&&t.command)switch(t.command){case"clear-pinning":const l=[...this.sharedService.visibleColumns],a={frozenColumn:-1,frozenRow:-1,frozenBottom:!1,enableMouseWheelScrollHandler:!1};this.grid.setOptions(a),this.sharedService.gridOptions.frozenColumn=a.frozenColumn,this.sharedService.gridOptions.frozenRow=a.frozenRow,this.sharedService.gridOptions.frozenBottom=a.frozenBottom,this.sharedService.gridOptions.enableMouseWheelScrollHandler=a.enableMouseWheelScrollHandler,Array.isArray(l)&&this.grid.setColumns(l),this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this.pubSubService.publish("onGridMenuClearAllPinning");break;case"clear-filter":this.filterService.clearFilters(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllFilters");break;case"clear-sorting":this.sortService.clearSorting(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllSorting");break;case"export-csv":const d=i.find(g=>g.className==="TextExportService");d!=null&&d.exportToFile?d.exportToFile({delimiter:Ot.comma,format:ve.csv}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"export-excel":const c=i.find(g=>g.className==="ExcelExportService");c!=null&&c.exportToExcel?c.exportToExcel():console.error("[Slickgrid-Universal] You must register the ExcelExportService to properly use Export to Excel in the Grid Menu. Example:: this.gridOptions = { enableExcelExport: true, externalResources: [new ExcelExportService()] };");break;case"export-text-delimited":const u=i.find(g=>g.className==="TextExportService");u!=null&&u.exportToFile?u.exportToFile({delimiter:Ot.tab,format:ve.txt}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"toggle-dark-mode":const p=this.sharedService.gridOptions.darkMode;this.grid.setOptions({darkMode:!p}),this.sharedService.gridOptions.darkMode=!p;break;case"toggle-filter":let m=((n=this.gridOptions)==null?void 0:n.showHeaderRow)??!1;m=!m,this.grid.setHeaderRowVisibility(m),m===!0&&(this.grid.setColumns(this.sharedService.columnDefinitions),this.grid.scrollColumnIntoView(0));break;case"toggle-preheader":const f=((o=this.gridOptions)==null?void 0:o.showPreHeaderPanel)??!1;this.grid.setPreHeaderPanelVisibility(!f);break;case"refresh-dataset":this.extensionUtility.refreshBackendDataset();break}}getDefaultGridMenuOptions(){return{commandTitle:void 0,columnTitle:this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),forceFitTitle:this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),syncResizeTitle:this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"),iconCssClass:"mdi mdi-menu",menuWidth:18,commandItems:[],hideClearAllFiltersCommand:!1,hideRefreshDatasetCommand:!1,hideToggleFilterCommand:!1}}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this._isMenuOpen&&this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.hideMenu(e)}}handleMenuItemCommandClick(e,t,i,s=0){var n,o;if(i!=="divider"&&!i.disabled&&!i.divider)if((i.command||"")&&!i.commandItems){const a={grid:this.grid,command:i.command,item:i,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};this.executeGridMenuInternalCustomCommands(e,a),this.pubSubService.publish("onGridMenuCommand",a),typeof((n=this._addonOptions)==null?void 0:n.onCommand)=="function"&&this._addonOptions.onCommand(e,a),this.onCommand.notify(a,null,this),typeof i.action=="function"&&i.action.call(this,e,a),!((o=this._addonOptions)!=null&&o.leaveOpen)&&!e.defaultPrevented&&this.hideMenu(e),e.preventDefault(),e.stopPropagation()}else i.commandItems&&this.repositionSubMenu(e,i,s)}handleMenuItemMouseOver(e,t,i,s=0){i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems?this.repositionSubMenu(e,i,s):s===0&&this.disposeSubMenus())}recreateCommandList(e,t,i,s){const n=i.level||0;if(e.length>0){const o=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},t);if(n===0){this.populateCommandOrOptionTitle("command",this.addonOptions,o,n);const l=t.querySelector(".slick-command-header")??v("div",{className:"slick-command-header"});l.classList.add("with-close"),ra.call(this,l),o.appendChild(l)}return s&&n>0&&this.addSubMenuTitleWhenExists(s,o),this.populateCommandOrOptionItems("command",this._addonOptions,o,e,i,this.handleMenuItemCommandClick,this.handleMenuItemMouseOver),o}return null}repositionSubMenu(e,t,i){const s=(t==null?void 0:t.commandItems)||[],n=this.createCommandMenu(s,i+1,t);n.style.display="block",document.body.appendChild(n),this.repositionMenu(e,n)}}const sa="mdi-icon-picker-check",na="mdi-icon-picker-uncheck";function ra(r){const t=v("button",{type:"button",className:"close",ariaLabel:"Close",textContent:"×",dataset:{dismiss:this instanceof _r?"slick-column-picker":"slick-grid-menu"}});r.appendChild(t)}function oa(r){var t,i;const e=this;(t=e.addonOptions)!=null&&t.columnTitle&&(e._columnTitleElm=v("div",{className:"slick-menu-title",textContent:((i=e.addonOptions)==null?void 0:i.columnTitle)??e._defaults.columnTitle},r))}function la(r){var o,l;const e=this,t=e instanceof _r?"columnPicker":"gridMenu",i=(o=r.target)==null?void 0:o.closest(".icon-checkbox-container"),s=i==null?void 0:i.querySelector(".mdi"),n=!!r.target.checked;if(r.target.ariaChecked=String(n),aa(s,n),r.target.dataset.option==="autoresize"){const a=e.getVisibleColumns();e.grid.setOptions({forceFitColumns:n}),e.grid.setColumns(a);return}if(r.target.dataset.option==="syncresize"){e.grid.setOptions({syncColumnCellResize:n});return}if(r.target.type==="checkbox"){e._areVisibleColumnDifferent=!0;const a=r.target.dataset.columnid||"",h=[];if(e._columnCheckboxes.forEach((u,p)=>{u.checked&&h.push(e.columns[p])}),!h.length){r.target.checked=!0,aa(s,!0);return}if(e.grid.setColumns(h),(!e.sharedService.visibleColumns||Array.isArray(h)&&h.length!==e.sharedService.visibleColumns.length)&&(e.sharedService.visibleColumns=h),e.gridOptions.enableRowSelection&&n){const u=e.grid.getSelectedRows();e.grid.setSelectedRows(u)}const d=e.gridOptions.frozenColumn??-1;d>=0&&e.extensionUtility.readjustFrozenColumnIndexWhenNeeded(d,e.columns,h);const c={columnId:a,showing:n,allColumns:e.columns,visibleColumns:h,columns:h,grid:e.grid};e.pubSubService.publish(`on${ti(t)}ColumnsChanged`,c),typeof((l=e.addonOptions)==null?void 0:l.onColumnsChanged)=="function"&&e.addonOptions.onColumnsChanged(r,c),e.onColumnsChanged.notify(c,null,e)}}function aa(r,e=!1){r&&(r.className=`mdi ${e?sa:na}`)}function gr(r,e,t,i=!1){const s=v("label",{className:"checkbox-picker-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"}),o=v("input",{id:e,type:"checkbox",dataset:t}),l=v("div",{className:`mdi ${i?sa:na}`}),a=v("span",{className:"checkbox-label"});return n.appendChild(o),n.appendChild(l),s.appendChild(n),s.appendChild(a),r.appendChild(s),i&&(o.ariaChecked="true",o.checked=!0),{inputElm:o,labelElm:s,labelSpanElm:a}}function ha(r){const e=this,t=e instanceof ia,i=t?"gridmenu-":"";for(const s of e.columns){const n=s.id,o=document.createElement("li");(s.excludeFromColumnPicker&&!t||s.excludeFromGridMenu&&t)&&(o.className="hidden");const l=`${e._gridUid}-${i}colpicker-${n}`,a=e.grid.getColumnIndex(n)>=0,{inputElm:h,labelElm:d,labelSpanElm:c}=gr(o,l,{columnid:`${n}`},a);e._columnCheckboxes.push(h);const p=(typeof(r==null?void 0:r.headerColumnValueExtractor)=="function"?r.headerColumnValueExtractor:e._defaults.headerColumnValueExtractor)(s,e.gridOptions);this.grid.applyHtmlCode(c,p),o.appendChild(d),e._listElm.appendChild(o)}if((!r.hideForceFitButton||!r.hideSyncResizeButton)&&e._listElm.appendChild(document.createElement("hr")),!(r!=null&&r.hideForceFitButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-forcefit`,{labelSpanElm:o}=gr(s,n,{option:"autoresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.forceFitTitle)??"",e._listElm.appendChild(s)}if(!(r!=null&&r.hideSyncResizeButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-syncresize`,{labelSpanElm:o}=gr(s,n,{option:"syncresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.syncResizeTitle)??"",e._listElm.appendChild(s)}}function $s(){const r=this,e=r.grid.getColumns().slice(0),t=new Array(r.columns.length);for(let i=0;i<t.length;i++)r.grid.getColumnIndex(r.columns[i].id)===void 0?t[i]=r.columns[i]:t[i]=e.shift();r._columns=t}class _r{constructor(e,t,i){var s,n;this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._areVisibleColumnDifferent=!1,this._columns=[],this._gridUid="",this._menuElm=null,this._columnCheckboxes=[],this._defaults={hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",minHeight:150,syncResizeTitle:"Synchronous resize",headerColumnValueExtractor:o=>_t(o.columnPickerLabel||o.name||"","innerHTML")},this._bindEventService=new Pe,this.onColumnsChanged=new P("onColumnsChanged"),this._eventHandler=new pe,this._columns=this.sharedService.allColumns??[],this._gridUid=((n=(s=this.grid)==null?void 0:s.getUID)==null?void 0:n.call(s))??"",this.init()}get addonOptions(){return this.gridOptions.columnPicker||{}}get eventHandler(){return this._eventHandler}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){return this.sharedService.gridOptions??{}}get grid(){return this.sharedService.slickGrid}get menuElement(){return this._menuElm}init(){this._gridUid=this.grid.getUID()??"",this.gridOptions.columnPicker={...this._defaults,...this.gridOptions.columnPicker},this.onColumnsChanged.setPubSubService(this.pubSubService),this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker"),this._eventHandler.subscribe(this.grid.onPreHeaderContextMenu,e=>{["slick-column-name","slick-header-column"].some(t=>{var i;return(i=e.target)==null?void 0:i.classList.contains(t)})&&this.handleHeaderContextMenu(e)}),this._eventHandler.subscribe(this.grid.onHeaderContextMenu,this.handleHeaderContextMenu.bind(this)),this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.disposeMenu.bind(this)),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this),void 0,"body"),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this),void 0,"body")}dispose(){this._eventHandler.unsubscribeAll(),this._bindEventService.unbindAll(),this.disposeMenu()}disposeMenu(){var e,t;this._bindEventService.unbindAll("parent-menu"),(e=this._listElm)==null||e.remove(),(t=this._menuElm)==null||t.remove(),this._menuElm=null}createPickerMenu(){const e=v("div",{ariaExpanded:"true",className:`slick-column-picker ${this._gridUid}`,role:"menu"});return $s.call(this),oa.call(this,e),ra.call(this,e),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(e,"click",la.bind(this),void 0,"parent-menu"),document.body.appendChild(e),e}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}translateColumnPicker(){this.addonOptions&&(this.addonOptions.columnTitle="",this.addonOptions.forceFitTitle="",this.addonOptions.syncResizeTitle="",this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker")),this.extensionUtility.translateItems(this._columns,"nameKey","name"),this.translateTitleLabels(this.addonOptions)}handleBodyMouseDown(e){var t;(this._menuElm!==e.target&&!((t=this._menuElm)!=null&&t.contains(e.target))||e.target.className==="close"&&e.target.closest(".slick-column-picker"))&&this.disposeMenu()}handleHeaderContextMenu(e){e.preventDefault(),ee(this._menuElm),this._columnCheckboxes=[],this._menuElm=this.createPickerMenu(),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),ha.call(this,this.addonOptions),document.body.appendChild(this._menuElm),this.repositionMenu(e)}repositionMenu(e){var i;const t=((i=e==null?void 0:e.touches)==null?void 0:i[0])??e;if(this._menuElm){const s=this.grid.getGridPosition(),n=this._menuElm.clientWidth||0;let o=t.pageX||0;s!=null&&s.width&&o+n>=s.width&&(o=o-n),this._menuElm.style.top=`${t.pageY-10}px`,this._menuElm.style.left=`${o}px`,this._menuElm.style.minHeight=Pt(this.addonOptions.minHeight,""),this._menuElm.style.maxHeight=Pt(this.addonOptions.maxHeight,`${window.innerHeight-t.clientY}px`),this._menuElm.style.display="block",this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm)}}translateTitleLabels(e){e&&(e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"))}}const Ws=(r,e,t,i,s,n)=>{const o=i.params||{};if(!o.formatters||!Array.isArray(o.formatters))throw new Error(`[Slickgrid-Universal] The multiple formatter requires the "formatters" to be provided as a column params.
|
|
11
|
+
`}if(window.clipboardData)return window.clipboardData.setData("Text",l),!0;{const a=document.activeElement,h=this.createTextBox(l);if(h.focus(),window.setTimeout(()=>{this._bodyElement.removeChild(h),a?a.focus():console.log("No element to restore focus to after copy?")},((s=this.addonOptions)==null?void 0:s.clipboardPasteDelay)??Ql),typeof this._onCopySuccess=="function"){const d=t.length===1?t[0].toRow+1-t[0].fromRow:t.length;this._onCopySuccess(d)}return!1}}if(!this._addonOptions.readOnlyMode&&(e.key==="v"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey||e.key==="Insert"&&e.shiftKey&&!e.ctrlKey)){const o=this.createTextBox("");return window.setTimeout(()=>this.decodeTabularData(this._grid,o),((n=this.addonOptions)==null?void 0:n.clipboardPasteDelay)??Ql),!1}}}markCopySelection(e){var s;this.clearCopySelection();const t=this._grid.getColumns(),i={};for(const n of e)for(let o=n.fromRow;o<=n.toRow;o++){i[o]={};for(let l=n.fromCell;l<=n.toCell&&l<t.length;l++)i[o][t[l].id]=this._copiedCellStyle}this._grid.setCellCssStyles(this._copiedCellStyleLayerKey,i),window.clearTimeout(this._clearCopyTI),this._clearCopyTI=window.setTimeout(()=>this.clearCopySelection(),((s=this.addonOptions)==null?void 0:s.clearCopySelectionDelay)||$c)}}class zs{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._addonOptions={},this._camelPluginName="",this._gridUid="",this._menuCssPrefix="",this._menuPluginCssPrefix="",this._bindEventService=new Pe,this._eventHandler=new pe}get addonOptions(){return this._addonOptions}set addonOptions(e){this._addonOptions=e}get eventHandler(){return this._eventHandler}get grid(){return this.sharedService.slickGrid}get gridOptions(){return this.sharedService.gridOptions??{}}get gridUid(){var e;return this._gridUid||(((e=this.grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}get menuCssClass(){return this._menuPluginCssPrefix||this._menuCssPrefix}get menuElement(){return this._menuElm||document.querySelector(`.${this.menuCssClass}${this.gridUidSelector}`)}dispose(){var e,t,i,s,n;(e=this._eventHandler)==null||e.unsubscribeAll(),this._bindEventService.unbindAll(),this.pubSubService.unsubscribeAll(),(t=this._commandTitleElm)==null||t.remove(),(i=this._optionTitleElm)==null||i.remove(),this.disposeAllMenus(),ee(this._menuElm),(s=this.menuElement)==null||s.remove(),(n=this._menuElm)==null||n.remove()}disposeAllMenus(){this.disposeSubMenus(),this._bindEventService.unbindAll("parent-menu"),document.querySelectorAll(`.${this.menuCssClass}${this.gridUidSelector}`).forEach(e=>e.remove())}disposeSubMenus(){this._bindEventService.unbindAll("sub-menu"),document.querySelectorAll(`.${this.menuCssClass}.slick-submenu${this.gridUidSelector}`).forEach(e=>e.remove())}setOptions(e){this._addonOptions={...this._addonOptions,...e}}addSubMenuTitleWhenExists(e,t){if(e!=="divider"&&(e!=null&&e.subMenuTitle)){const i=document.createElement("div");i.className="slick-menu-title",i.textContent=e.subMenuTitle;const s=e.subMenuTitleCssClass;s&&i.classList.add(...he(s)),t.appendChild(i)}}populateCommandOrOptionItems(e,t,i,s,n,o,l){if(n&&s&&t)for(const a of s)this.populateSingleCommandOrOptionItem(e,t,i,a,n,o,l)}populateCommandOrOptionTitle(e,t,i,s){var n;if(t){const o=s>0,l=((n=this._menuElm)==null?void 0:n.querySelector(`.slick-${e}-header`))??v("div",{className:`slick-${e}-header`}),a=`${e}Title`;o||(t!=null&&t[a]?(ee(l),this[`_${e}TitleElm`]=v("span",{className:"slick-menu-title",textContent:t[a]}),l.appendChild(this[`_${e}TitleElm`]),l.classList.add("with-title")):l.classList.add("no-title"),i.appendChild(l))}}populateSingleCommandOrOptionItem(e,t,i,s,n,o,l){var h;let a=null;if(n&&s&&t){const d=(n==null?void 0:n.level)||0,c=this._camelPluginName==="headerButtons"?"":"-item",u=`${this._menuCssPrefix}${c}`;let p=!0,m=!0;if(typeof s=="object"&&(p=this.extensionUtility.runOverrideFunctionWhenExists(s.itemVisibilityOverride,n),m=this.extensionUtility.runOverrideFunctionWhenExists(s.itemUsabilityOverride,n)),!p)return null;if(typeof s=="object"&&s.itemUsabilityOverride&&(s.disabled=!m),a=v("li",{className:u,role:"menuitem"}),typeof s=="object"&&q(s[e])&&(a.dataset[e]=s==null?void 0:s[e]),i&&i.appendChild(a),typeof s=="object"&&s.divider||s==="divider")return a.classList.add(`${u}-divider`),a;if(s.disabled&&a.classList.add(`${u}-disabled`),(s.hidden||s.showOnHover)&&a.classList.add(`${u}-hidden`),s.cssClass&&a.classList.add(...he(s.cssClass)),s.tooltip&&(a.title=s.tooltip),this._camelPluginName!=="headerButtons"){const g=v("div",{className:`${this._menuCssPrefix}-icon`});a.appendChild(g),s.iconCssClass?g.classList.add(...he(s.iconCssClass)):!s.commandItems&&!s.optionItems&&(g.textContent="◦");const _=v("span",{className:`${this._menuCssPrefix}-content`,textContent:typeof s=="object"&&s.title||""},a);s.textCssClass&&_.classList.add(...he(s.textCssClass))}const f=d>0?"sub-menu":"parent-menu";if(this._bindEventService.bind(a,"click",g=>o.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),((h=this._addonOptions)==null?void 0:h.subMenuOpenByEvent)==="mouseover"&&typeof l=="function"&&this._bindEventService.bind(a,"mouseover",g=>l.call(this,g,e,s,d,n==null?void 0:n.column),void 0,f),s.commandItems||s.optionItems){const g=document.createElement("span");g.className="sub-item-chevron",this._addonOptions.subItemChevronClass?g.classList.add(...he(this._addonOptions.subItemChevronClass)):g.textContent="⮞",a.classList.add("slick-submenu-item"),a.appendChild(g)}}return a}}class Zl extends zs{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._currentCell=-1,this._currentRow=-1,this._lastMenuTypeClicked="",this._subMenuParentId=""}createParentMenu(e){var i,s,n,o,l;(i=this.menuElement)==null||i.remove(),this._menuElm=void 0;const t=this.grid.getCellFromEvent(e);if(t){this._currentCell=t.cell??0,this._currentRow=t.row??0;const a=((s=this._addonOptions)==null?void 0:s.commandItems)||[],h=((n=this._addonOptions)==null?void 0:n.optionItems)||[],d={cell:this._currentCell,row:this._currentRow,grid:this.grid};if(this.closeMenu(e,d),typeof e.stopPropagation=="function"&&(this.pubSubService.publish(`on${ti(this._camelPluginName)}BeforeMenuShow`,d),typeof((o=this.addonOptions)==null?void 0:o.onBeforeMenuShow)=="function"&&this.addonOptions.onBeforeMenuShow(e,d)===!1)||(this._menuElm=this.createMenu(a,h),this._menuElm&&(this._menuElm.style.top=`${(e.pageY||0)+5}px`,this._menuElm.style.left=`${e.pageX}px`,this._menuElm.style.display="block",document.body.appendChild(this._menuElm)),this.pubSubService.publish(`on${ti(this._camelPluginName)}AfterMenuShow`,d),typeof((l=this.addonOptions)==null?void 0:l.onAfterMenuShow)=="function"&&this.addonOptions.onAfterMenuShow(e,d)===!1))return}return this._menuElm}createMenu(e,t,i=0,s){var _,C,b,S,E;const n=this.grid.getColumns()[this._currentCell],o=this.grid.getDataItem(this._currentRow),l=(s==null?void 0:s.command)||(s==null?void 0:s.option);let a=i===1&&l?String(l).replace(/\s/g,""):"";a&&(this._subMenuParentId=a),i>1&&(a=this._subMenuParentId);let h=!0,d=!0;if(this._camelPluginName==="contextMenu"){if(h=this.checkIsColumnAllowed(((_=this._addonOptions)==null?void 0:_.optionShownOverColumnIds)??[],n.id),d=this.checkIsColumnAllowed(((C=this._addonOptions)==null?void 0:C.commandShownOverColumnIds)??[],n.id),!n||(!d||!e.length)&&(!h||!t.length)){this.hideMenu();return}}else if(!n||!n.cellMenu||!e.length&&!t.length)return;const c=`${this.menuCssClass} slick-menu-level-${i} ${this.gridUid}`,u=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${i}${this.gridUidSelector}`);if(u){if(u.dataset.subMenuParent===a)return u;this.disposeSubMenus()}const p=document.createElement("div");p.className=c,i>0&&(p.classList.add("slick-submenu"),(b=this.gridOptions)!=null&&b.darkMode&&p.classList.add("slick-dark-mode"),a&&(p.dataset.subMenuParent=a));const m=isNaN(this.addonOptions.maxHeight)?this.addonOptions.maxHeight:`${this.addonOptions.maxHeight??0}px`,f=isNaN(this.addonOptions.maxWidth)?this.addonOptions.maxWidth:`${this.addonOptions.maxWidth??0}px`;m&&(p.style.maxHeight=m),f&&(p.style.maxWidth=f),(S=this.addonOptions)!=null&&S.width&&(p.style.width=Pt((E=this.addonOptions)==null?void 0:E.width));const g=v("button",{ariaLabel:"Close",className:"close",type:"button",textContent:"×",dataset:{dismiss:this._menuCssPrefix}});if(!this.addonOptions.hideOptionSection&&h&&t.length>0){const y=v("div",{className:`${this._menuCssPrefix}-option-list`,role:"menu"},p);this.populateCommandOrOptionTitle("option",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&this.populateCommandOrOptionCloseBtn("option",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("option",this.addonOptions,y,t,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}if(!this.addonOptions.hideCommandSection&&d&&e.length>0){const y=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},p);this.populateCommandOrOptionTitle("command",this.addonOptions,y,i),!this.addonOptions.hideCloseButton&&i<1&&(!h||t.length===0||this.addonOptions.hideOptionSection)&&this.populateCommandOrOptionCloseBtn("command",g,y),s&&i>0&&this.addSubMenuTitleWhenExists(s,y),this.populateCommandOrOptionItems("command",this.addonOptions,y,e,{cell:this._currentCell,row:this._currentRow,column:n,dataContext:o,grid:this.grid,level:i},this.handleMenuItemCommandClick,this.handleMenuItemMouseOver)}return i++,p}closeMenu(e,t){var i;if(this.menuElement){if(typeof((i=this.addonOptions)==null?void 0:i.onBeforeMenuClose)=="function"&&this.addonOptions.onBeforeMenuClose(e,t)===!1)return;this.hideMenu()}}hideMenu(){var e;(e=this.menuElement)==null||e.remove(),this._menuElm=null,this.disposeSubMenus()}checkIsColumnAllowed(e,t){return(e==null?void 0:e.length)>0?e.findIndex(i=>i===t)>=0:!0}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.closeMenu(e,{cell:this._currentCell,row:this._currentRow,grid:this.grid})}}handleCloseButtonClicked(e){e.defaultPrevented||this.closeMenu(e,{cell:0,row:0,grid:this.grid})}handleMenuItemMouseOver(e,t,i,s=0){(i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems||i.optionItems?(this.repositionSubMenu(i,t,s,e),this._lastMenuTypeClicked=t):s===0&&this.disposeSubMenus())}handleMenuItemCommandClick(e,t,i,s=0){var n;if((i==null?void 0:i[t])!==void 0&&i!=="divider"&&!i.disabled&&!i.divider&&this._currentCell!==void 0&&this._currentRow!==void 0){if(t==="option"&&!this.grid.getEditorLock().commitCurrentEdit())return;const o=this._currentCell,l=this._currentRow,a=this.grid.getColumns()[this._currentCell],h=this.grid.getDataItem(this._currentRow),d=i[t]!==void 0?i[t]:"";if(d!==void 0&&!i[`${t}Items`]){const c={cell:this._currentCell,row:this._currentRow,grid:this.grid,[t]:d,item:i,column:a,dataContext:h},u=t==="command"?"onCommand":"onOptionSelected",p=`${this._camelPluginName}:${u}`;this.pubSubService.publish(p,c),typeof((n=this._addonOptions)==null?void 0:n[u])=="function"&&this._addonOptions[u](e,c),typeof i.action=="function"&&i.action.call(this,e,c),e.defaultPrevented||this.closeMenu(e,{cell:o,row:l,grid:this.grid})}else(i.commandItems||i.optionItems)&&this.repositionSubMenu(i,t,s,e);this._lastMenuTypeClicked=t}}populateCommandOrOptionCloseBtn(e,t,i){this._bindEventService.bind(t,"click",n=>this.handleCloseButtonClicked(n),void 0,"parent-menu");const s=i.querySelector(`.slick-${e}-header`)??v("div",{className:`slick-${e}-header`});s==null||s.appendChild(t),i.appendChild(s),s.classList.add("with-close")}repositionSubMenu(e,t,i,s){(s.target.classList.contains("slick-cell")||this._lastMenuTypeClicked!==t)&&this.disposeSubMenus();const n=this.createMenu((e==null?void 0:e.commandItems)||[],(e==null?void 0:e.optionItems)||[],i+1,e);n&&(n.style.display="block",document.body.appendChild(n),this.repositionMenu(s,n))}repositionMenu(e,t){var n;const i=t==null?void 0:t.classList.contains("slick-submenu"),s=i?e.target.closest(`.${this._menuCssPrefix}-item`):e.target.closest(".slick-cell");if(t&&s){t.style.top="0px",t.style.left="0px";const o=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,l=ge(s);let a=s&&this._camelPluginName==="cellMenu"?l.left:o.pageX,h=s&&this._camelPluginName==="cellMenu"?l.top:o.pageY;i&&this._camelPluginName==="contextMenu"&&(a=l.left,h=l.top);const d=s.offsetWidth||0,c=(t==null?void 0:t.offsetHeight)||0,u=(t==null?void 0:t.offsetWidth)||this._addonOptions.width||0,p=this.gridOptions.rowHeight||0,m=Number(this._addonOptions.autoAdjustDropOffset||0),f=Number(this._addonOptions.autoAlignSideOffset||0);if(this._addonOptions.autoAdjustDrop||this._addonOptions.dropDirection){const{bottom:g,top:_}=Vi(s),C=g+m-p,b=_-m+p;(C<c&&b>C?"top":"bottom")==="top"||this._addonOptions.dropDirection==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),i?h-=c-m-s.clientHeight:h-=c-m):(t.classList.remove("dropup"),t.classList.add("dropdown"),h=h+m,this._camelPluginName==="cellMenu"&&(i?h+=m:h+=p+m))}if(this._addonOptions.autoAlignSide||this._addonOptions.dropSide==="left"){const g=this.grid.getGridPosition();let _=a+Number(u);i&&(_+=s.clientWidth);const C=document.documentElement.clientWidth;(_>=g.width||_>=C?"left":"right")==="left"||!i&&this._addonOptions.dropSide==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),this._camelPluginName==="cellMenu"&&!i?a-=Number(u)-d-f:a-=Number(u)-f):(t.classList.remove("dropleft"),t.classList.add("dropright"),i?a+=f+s.offsetWidth:a+=f)}t.style.top=`${h}px`,t.style.left=`${a}px`}}}class Gc extends Zl{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.pluginName="CellMenu",this._defaults={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:0,autoAlignSideOffset:0,hideMenuOnScroll:!0,subMenuOpenByEvent:"mouseover"},this._camelPluginName="cellMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-cell-menu",this.init(i.gridOptions.cellMenu)}init(e){this._addonOptions={...this._defaults,...e},this.sortMenuItems(this.sharedService.allColumns),this._eventHandler.subscribe(this.grid.onClick,this.handleCellClick.bind(this)),this._addonOptions.hideMenuOnScroll&&this._eventHandler.subscribe(this.grid.onScroll,this.closeMenu.bind(this))}translateCellMenu(){var i;const e=(i=this.sharedService)==null?void 0:i.gridOptions,t=this.sharedService.allColumns;e!=null&&e.enableTranslate&&Array.isArray(t)&&t.forEach(s=>{if(s!=null&&s.cellMenu&&(Array.isArray(s.cellMenu.commandItems)||Array.isArray(s.cellMenu.optionItems))){const n=s.cellMenu.commandItems||[],o=s.cellMenu.optionItems||[];s.cellMenu.commandTitleKey&&(s.cellMenu.commandTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.commandTitleKey,"TEXT_COMMANDS")||s.cellMenu.commandTitle),s.cellMenu.optionTitleKey&&(s.cellMenu.optionTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(s.cellMenu.optionTitleKey,"TEXT_COMMANDS")||s.cellMenu.optionTitle),this.extensionUtility.translateMenuItemsFromTitleKey(n,"commandItems"),this.extensionUtility.translateMenuItemsFromTitleKey(o,"optionItems")}})}handleCellClick(e,t){var s;this.disposeAllMenus();const i=this.grid.getCellFromEvent(e);if(i){const n=this.grid.getDataItem(i.row),o=this.grid.getColumns()[i.cell];o!=null&&o.cellMenu&&!((s=this.gridOptions.cellMenu)!=null&&s.activateCellOnMenuClick)&&e.preventDefault(),this._addonOptions={...this._addonOptions,...o.cellMenu};const l=t||{};if(l.column=o,l.dataContext=n,l.grid=this.grid,!this.extensionUtility.runOverrideFunctionWhenExists(this._addonOptions.menuUsabilityOverride,l))return;this._menuElm=this.createParentMenu(e),this._menuElm&&(this.repositionMenu(e,this._menuElm),this._menuElm.ariaExpanded="true",this._menuElm.style.display="block",this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode")),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}}sortMenuItems(e){e.forEach(t=>{var i,s;(i=t==null?void 0:t.cellMenu)!=null&&i.commandItems&&this.extensionUtility.sortItems(t.cellMenu.commandItems||[],"positionOrder"),(s=t==null?void 0:t.cellMenu)!=null&&s.optionItems&&this.extensionUtility.sortItems(t.cellMenu.optionItems||[],"positionOrder")})}}class Uc{constructor(e,t){this.grid=e,this.pluginName="CellRangeDecorator",this._defaults={selectionCssClass:"slick-range-decorator",selectionCss:{border:"2px dashed red",zIndex:"9999"},offset:{top:-1,left:-1,height:-2,width:-2}},this._options=Zt(this._defaults,t)}get addonOptions(){return this._options}get addonElement(){return this._elem}destroy(){this.hide()}init(){}hide(){var e;(e=this._elem)==null||e.remove(),this._elem=null}show(e){var s,n;this._elem||(this._elem=v("div",{className:this._options.selectionCssClass}),Object.keys(this._options.selectionCss).forEach(o=>{this._elem.style[o]=this._options.selectionCss[o]}),this._elem.style.position="absolute",(s=this.grid.getActiveCanvasNode())==null||s.appendChild(this._elem));const t=this.grid.getCellNodeBox(e.fromRow,e.fromCell),i=this.grid.getCellNodeBox(e.toRow,e.toCell);return t&&i&&((n=this._options)!=null&&n.offset)&&(this._elem.style.top=`${t.top+this._options.offset.top}px`,this._elem.style.left=`${t.left+this._options.offset.left}px`,this._elem.style.height=`${i.bottom-t.top+this._options.offset.height}px`,this._elem.style.width=`${i.right-t.left+this._options.offset.width}px`),this._elem}}class mr{constructor(e){this.pluginName="CellRangeSelector",this._currentlySelectedRange=null,this._canvas=null,this._dragging=!1,this._gridUid="",this._columnOffset=0,this._rowOffset=0,this._isRightCanvas=!1,this._isBottomCanvas=!1,this._xDelayForNextCell=0,this._yDelayForNextCell=0,this._viewportHeight=0,this._viewportWidth=0,this._isRowMoveRegistered=!1,this._scrollLeft=0,this._scrollTop=0,this._defaults={autoScroll:!0,minIntervalToShowNextCell:30,maxIntervalToShowNextCell:600,accelerateInterval:5,selectionCss:{border:"2px dashed blue"}},this.onBeforeCellRangeSelected=new P("onBeforeCellRangeSelected"),this.onCellRangeSelecting=new P("onCellRangeSelecting"),this.onCellRangeSelected=new P("onCellRangeSelected"),this._eventHandler=new pe,this._options=Zt(this._defaults,e)}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridUid(){var e;return this._gridUid||(((e=this._grid)==null?void 0:e.getUID())??"")}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}init(e){this._grid=e,this._decorator=this._options.cellDecorator||new Uc(e,this._options),this._canvas=e.getCanvasNode(),this._gridOptions=e.getOptions(),this._gridUid=e.getUID();const t=e.getPubSubService();t&&T.addSlickEventPubSubWhenDefined(t,this),this._eventHandler.subscribe(this._grid.onDrag,this.handleDrag.bind(this)).subscribe(this._grid.onDragInit,this.handleDragInit.bind(this)).subscribe(this._grid.onDragStart,this.handleDragStart.bind(this)).subscribe(this._grid.onDragEnd,this.handleDragEnd.bind(this)).subscribe(this._grid.onScroll,this.handleScroll.bind(this))}destroy(){this.dispose()}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),ee(this._activeCanvas),ee(this._canvas),(t=this._decorator)==null||t.destroy(),this.stopIntervalTimer()}getCellDecorator(){return this._decorator}getCurrentRange(){return this._currentlySelectedRange}getMouseOffsetViewport(e,t){var m;const i=((m=e==null?void 0:e.touches)==null?void 0:m[0])??e,s=this._activeViewport.scrollLeft,n=this._activeViewport.scrollTop,o=s+this._viewportWidth,l=n+this._viewportHeight,a=ge(this._activeViewport),h=a.left,d=a.top,c=h+this._viewportWidth,u=d+this._viewportHeight,p={e,dd:t,viewport:{left:s,top:n,right:o,bottom:l,offset:{left:h,top:d,right:c,bottom:u}},offset:{x:0,y:0},isOutsideViewport:!1};return i.pageX<h?p.offset.x=i.pageX-h:i.pageX>c&&(p.offset.x=i.pageX-c),i.pageY<d?p.offset.y=d-i.pageY:i.pageY>u&&(p.offset.y=u-i.pageY),p.isOutsideViewport=!!p.offset.x||!!p.offset.y,p}stopIntervalTimer(){this._autoScrollTimerId&&(window.clearInterval(this._autoScrollTimerId),this._autoScrollTimerId=void 0)}handleDrag(e,t){if(!this._dragging&&!this._gridOptions.enableRowMoveManager)return;this._gridOptions.enableRowMoveManager||e.stopImmediatePropagation();const i=e.getNativeEvent();if(this.addonOptions.autoScroll&&(this._draggingMouseOffset=this.getMouseOffsetViewport(i,t),this._draggingMouseOffset.isOutsideViewport))return this.handleDragOutsideViewport();this.stopIntervalTimer(),this.handleDragTo(i,t)}handleDragOutsideViewport(){if(this._xDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.x)*this.addonOptions.accelerateInterval,this._yDelayForNextCell=this.addonOptions.maxIntervalToShowNextCell-Math.abs(this._draggingMouseOffset.offset.y)*this.addonOptions.accelerateInterval,!this._autoScrollTimerId){let e=0,t=0;this._autoScrollTimerId=window.setInterval(()=>{let i=!1,s=!1;this._draggingMouseOffset.offset.x?(e+=this.addonOptions.minIntervalToShowNextCell,i=e>=this._xDelayForNextCell):e=0,this._draggingMouseOffset.offset.y?(t+=this.addonOptions.minIntervalToShowNextCell,s=t>=this._yDelayForNextCell):t=0,(i||s)&&(i&&(e=0),s&&(t=0),this.handleDragToNewPosition(i,s))},this.addonOptions.minIntervalToShowNextCell)}}handleDragToNewPosition(e,t){let i=this._draggingMouseOffset.e.pageX,s=this._draggingMouseOffset.e.pageY;const n=this._draggingMouseOffset.offset.x,o=this._draggingMouseOffset.offset.y,l=this._draggingMouseOffset.viewport.offset;e&&n&&(n>0?i=l.right+this._moveDistanceForOneCell.x:i=l.left-this._moveDistanceForOneCell.x),t&&o&&(o>0?s=l.top-this._moveDistanceForOneCell.y:s=l.bottom+this._moveDistanceForOneCell.y),this.handleDragTo({pageX:i,pageY:s},this._draggingMouseOffset.dd)}handleDragTo(e,t){var n;const i=((n=e==null?void 0:e.touches)==null?void 0:n[0])??e,s=this._grid.getCellFromPoint(i.pageX-ge(this._activeCanvas).left+this._columnOffset,i.pageY-ge(this._activeCanvas).top+this._rowOffset);if(s!==void 0){if(this._gridOptions.frozenColumn>=0&&(!this._isRightCanvas&&s.cell>this._gridOptions.frozenColumn||this._isRightCanvas&&s.cell<=this._gridOptions.frozenColumn)||this._gridOptions.frozenRow>=0&&(!this._isBottomCanvas&&s.row>=this._gridOptions.frozenRow||this._isBottomCanvas&&s.row<this._gridOptions.frozenRow))return;if(this.addonOptions.autoScroll&&this._draggingMouseOffset){const o=this._grid.getCellNodeBox(s.row,s.cell);if(o){const l=this._draggingMouseOffset.viewport;(o.left<l.left||o.right>l.right||o.top<l.top||o.bottom>l.bottom)&&this._grid.scrollCellIntoView(s.row,s.cell)}}if(!this._grid.canCellBeSelected(s.row,s.cell))return;if(t!=null&&t.range){t.range.end=s;const o=new tt(t.range.start.row??0,t.range.start.cell??0,s.row,s.cell);this._decorator.show(o),this.onCellRangeSelecting.notify({range:o})}}}handleDragEnd(e,t){this._decorator.hide(),this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),this.stopIntervalTimer(),this.onCellRangeSelected.notify({range:new tt(t.range.start.row??0,t.range.start.cell??0,t.range.end.row,t.range.end.cell)}))}handleDragInit(e){var n,o;this._activeCanvas=this._grid.getActiveCanvasNode(e),this._activeViewport=this._grid.getActiveViewportNode(e);const t=this._grid.getDisplayedScrollbarDimensions();if(this._viewportWidth=this._activeViewport.offsetWidth-t.width,this._viewportHeight=this._activeViewport.offsetHeight-t.height,this._moveDistanceForOneCell={x:this._grid.getAbsoluteColumnMinWidth()/2,y:this._gridOptions.rowHeight/2},this._rowOffset=0,this._columnOffset=0,this._isBottomCanvas=this._activeCanvas.classList.contains("grid-canvas-bottom"),this._gridOptions.frozenRow>-1&&this._isBottomCanvas){const l=`${this.gridUidSelector} .grid-canvas-${this._gridOptions.frozenBottom?"bottom":"top"}`;this._rowOffset=((n=document.querySelector(l))==null?void 0:n.clientHeight)??0}this._isRightCanvas=this._activeCanvas.classList.contains("grid-canvas-right"),this._gridOptions.frozenColumn>-1&&this._isRightCanvas&&(this._columnOffset=((o=document.querySelector(`${this.gridUidSelector} .grid-canvas-left`))==null?void 0:o.clientWidth)??0);const i=this._grid.getCellFromEvent(e),s=this._grid.getActiveCell();(!this._grid.getEditorLock().isActive()||!(s&&i&&s.row===i.row&&s.cell===i.cell))&&(e.stopImmediatePropagation(),e.preventDefault())}handleDragStart(e,t){const i=this._grid.getCellFromEvent(e);if(i&&this.onBeforeCellRangeSelected.notify(i).getReturnValue()!==!1&&this._grid.canCellBeSelected(i.row,i.cell)&&(this._dragging=!0,e.stopImmediatePropagation()),!this._dragging)return;this._grid.focus();const s=ge(this._canvas);let n=t.startX-s.left;this._gridOptions.frozenColumn>=0&&this._isRightCanvas&&(n+=this._scrollLeft);let o=t.startY-s.top;this._gridOptions.frozenRow>=0&&this._isBottomCanvas&&(o+=this._scrollTop);const l=this._grid.getCellFromPoint(n,o);return t.range={start:l,end:{}},this._currentlySelectedRange=t.range,this._decorator.show(new tt(l.row,l.cell))}handleScroll(e,t){this._scrollTop=t.scrollTop,this._scrollLeft=t.scrollLeft}}class jc{constructor(e){this.pluginName="CellSelectionModel",this._cachedPageRowCount=0,this._prevKeyDown="",this._ranges=[],this._defaults={selectActiveCell:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._selector=e===void 0||e.cellRangeSelector===void 0?new mr({selectionCss:{border:"2px solid black"}}):e.cellRangeSelector,this._addonOptions=e}get addonOptions(){return this._addonOptions}get cellRangeSelector(){return this._selector}get eventHandler(){return this._eventHandler}init(e){this._grid=e,(this._addonOptions===void 0||this._addonOptions.cellRangeSelector===void 0)&&(this._selector=new mr({selectionCss:{border:`2px solid ${this._grid.getOptions().darkMode?"white":"black"}`}})),e.hasDataView()&&(this._dataView=e.getData()),this._addonOptions={...this._defaults,...this._addonOptions};const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)).subscribe(this._selector.onBeforeCellRangeSelected,this.handleBeforeCellRangeSelected.bind(this)).subscribe(this._selector.onCellRangeSelected,this.handleCellRangeSelected.bind(this)),e.registerPlugin(this._selector)}destroy(){this.dispose()}dispose(){var e,t;this._selector&&(this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this))),this._eventHandler.unsubscribeAll(),(e=this._grid)==null||e.unregisterPlugin(this._selector),(t=this._selector)==null||t.dispose()}getSelectedRanges(){return this._ranges}rangesAreEqual(e,t){let i=e.length!==t.length;if(!i){for(let s=0;s<e.length;s++)if(e[s].fromCell!==t[s].fromCell||e[s].fromRow!==t[s].fromRow||e[s].toCell!==t[s].toCell||e[s].toRow!==t[s].toRow){i=!0;break}}return!i}refreshSelections(){this.setSelectedRanges(this.getSelectedRanges())}removeInvalidRanges(e){const t=[];for(let i=0;i<e.length;i++){const s=e[i];this._grid.canCellBeSelected(s.fromRow,s.fromCell)&&this._grid.canCellBeSelected(s.toRow,s.toCell)&&t.push(s)}return t}resetPageRowCount(){this._cachedPageRowCount=0}setSelectedRanges(e,t="SlickCellSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;const i=!this.rangesAreEqual(this._ranges,e);if(this._ranges=this.removeInvalidRanges(e),i){const s=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,s)}}handleActiveCellChange(e,t){var n,o;this._prevSelectedRow=void 0;const i=q(t.cell),s=q(t.row);(n=this._addonOptions)!=null&&n.selectActiveCell&&s&&i?this.setSelectedRanges([new tt(t.row,t.cell)]):(!((o=this._addonOptions)!=null&&o.selectActiveCell)||!s&&!i)&&this.setSelectedRanges([])}handleBeforeCellRangeSelected(e){const t=this._grid.getCellFromEvent(e),i=this._grid.getActiveCell();if(this._grid.getEditorLock().isActive()&&i&&t&&i.row===t.row&&i.cell===t.cell)return e.stopPropagation(),!1}handleCellRangeSelected(e,t){this._grid.setActiveCell(t.range.fromRow,t.range.fromCell,!1,!1,!0),this.setSelectedRanges([t.range])}isKeyAllowed(e,t){return["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","PageDown","PageUp","Home","End",...t?[]:["a","A"]].some(i=>i===e)}handleKeyDown(e){var l,a;let t,i;const s=this._grid.getColumns().length,n=this._grid.getActiveCell();let o=0;if(this._dataView&&"getPagingInfo"in this._dataView?o=((l=this._dataView)==null?void 0:l.getPagingInfo().pageSize)||this._dataView.getLength():o=this._grid.getDataLength(),n&&(e.shiftKey||e.ctrlKey)&&!e.altKey&&this.isKeyAllowed(e.key,e.shiftKey)&&(t=this.getSelectedRanges().slice(),t.length||t.push(new tt(n.row,n.cell)),i=t.pop(),typeof(i==null?void 0:i.contains)=="function")){i.contains(n.row,n.cell)||(i=new tt(n.row,n.cell));let h=i.toRow-i.fromRow,d=i.toCell-i.fromCell,c,u=0;e.ctrlKey&&((a=e.key)==null?void 0:a.toLowerCase())==="a"&&(this._grid.setActiveCell(0,0,!1,!1,!0),n.row=0,n.cell=0,c=s-1,u=o-1);const p=n.row===i.fromRow?1:-1,m=n.cell===i.fromCell?1:-1,f=e.key.startsWith("Arrow");f&&!e.ctrlKey?(e.key==="ArrowLeft"?d-=m:e.key==="ArrowRight"?d+=m:e.key==="ArrowUp"?h-=p:e.key==="ArrowDown"&&(h+=p),u=n.row+p*h):(this._cachedPageRowCount<1&&(this._cachedPageRowCount=this._grid.getViewportRowCount()),this._prevSelectedRow===void 0&&(this._prevSelectedRow=n.row),!e.ctrlKey&&e.shiftKey&&e.key==="Home"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowLeft"?(c=0,u=n.row):!e.ctrlKey&&e.shiftKey&&e.key==="End"||e.ctrlKey&&e.shiftKey&&e.key==="ArrowRight"?(c=s-1,u=n.row):e.ctrlKey&&e.shiftKey&&e.key==="ArrowUp"?u=0:e.ctrlKey&&e.shiftKey&&e.key==="ArrowDown"?u=o-1:e.ctrlKey&&e.shiftKey&&e.key==="Home"?(c=0,u=0):e.ctrlKey&&e.shiftKey&&e.key==="End"?(c=s-1,u=o-1):e.key==="PageUp"?(this._prevSelectedRow>=0&&(u=this._prevSelectedRow-this._cachedPageRowCount),u<0&&(u=0)):e.key==="PageDown"&&(this._prevSelectedRow<=o-1&&(u=this._prevSelectedRow+this._cachedPageRowCount),u>o-1&&(u=o-1)),this._prevSelectedRow=u),c??(c=n.cell+m*d);const g=new tt(n.row,n.cell,u,c);if(this.removeInvalidRanges([g]).length){t.push(g);const _=p>0?g.toRow:g.fromRow,C=m>0?g.toCell:g.fromCell;f?(this._grid.scrollRowIntoView(_),this._grid.scrollCellIntoView(_,C,!1)):(this._grid.scrollRowIntoView(u),this._grid.scrollCellIntoView(u,C,!1))}else t.push(i);this.setSelectedRanges(t),e.preventDefault(),e.stopPropagation(),this._prevKeyDown=e.key}}}class fr{constructor(e){this.pluginName="RowSelectionModel",this._inHandler=!1,this._ranges=[],this._defaults={autoScrollWhenDrag:!0,cellRangeSelector:void 0,dragToSelect:!1,selectActiveRow:!0},this.onSelectedRangesChanged=new P("onSelectedRangesChanged"),this._eventHandler=new pe,this._options={...this._defaults,...e}}get addonOptions(){return this._options}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return(e=this._grid)==null?void 0:e.getOptions()}init(e){this._grid=e,this._options={...this._defaults,...this._options},this._selector=this.addonOptions.cellRangeSelector;const t=e.getPubSubService();t&&this.onSelectedRangesChanged.setPubSubService(t),!this._selector&&this._options.dragToSelect&&(this._selector=new mr({selectionCss:{border:"none"},autoScroll:this._options.autoScrollWhenDrag}),this.addonOptions.cellRangeSelector=this._selector),this._eventHandler.subscribe(this._grid.onActiveCellChanged,this.handleActiveCellChange.bind(this)).subscribe(this._grid.onClick,this.handleClick.bind(this)).subscribe(this._grid.onKeyDown,this.handleKeyDown.bind(this)),this._selector&&(this._grid.registerPlugin(this._selector),this._selector.onCellRangeSelecting.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.subscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.subscribe(this.handleBeforeCellRangeSelected.bind(this)))}destroy(){this.dispose()}dispose(){this._eventHandler.unsubscribeAll(),this.disposeSelector()}disposeSelector(){var e,t;this._selector&&(this._selector.onCellRangeSelecting.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onCellRangeSelected.unsubscribe(this.handleCellRangeSelected.bind(this)),this._selector.onBeforeCellRangeSelected.unsubscribe(this.handleBeforeCellRangeSelected.bind(this)),this._grid.unregisterPlugin(this._selector),(e=this._selector)==null||e.destroy(),(t=this._selector)==null||t.dispose())}getCellRangeSelector(){return this._selector}getSelectedRanges(){return this._ranges}getSelectedRows(){return this.rangesToRows(this._ranges)}refreshSelections(){this.setSelectedRows(this.getSelectedRows())}setSelectedRows(e){this.setSelectedRanges(this.rowsToRanges(e),"SlickRowSelectionModel.setSelectedRows")}setSelectedRanges(e,t="SlickRowSelectionModel.setSelectedRanges"){if((!this._ranges||this._ranges.length===0)&&(!e||e.length===0))return;this._ranges=e;const i=new le(new CustomEvent("click",{detail:{caller:t}}),this._ranges);this.onSelectedRangesChanged.notify(this._ranges,i)}getRowsRange(e,t){let i;const s=[];for(i=e;i<=t;i++)s.push(i);for(i=t;i<e;i++)s.push(i);return s}handleBeforeCellRangeSelected(e,t){let i=!1;if(this.gridOptions.enableRowMoveManager&&(i=this.isHandlerColumn(t.cell)??!1),this._grid.getEditorLock().isActive()||i)return e.stopPropagation(),!1;this._grid.setActiveCell(t.row,t.cell)}handleCellRangeSelected(e,t){if(!this.gridOptions.multiSelect||!this.addonOptions.selectActiveRow)return!1;this.setSelectedRanges([new tt(t.range.fromRow,0,t.range.toRow,this._grid.getColumns().length-1)])}handleActiveCellChange(e,t){this._options.selectActiveRow&&t.row!==null&&this.setSelectedRanges([new tt(t.row,0,t.row,this._grid.getColumns().length-1)])}handleClick(e){const t=this._grid.getCellFromEvent(e);if(!t||!this._grid.canCellBeActive(t.row,t.cell)||!this.gridOptions.multiSelect||!e.ctrlKey&&!e.shiftKey&&!e.metaKey)return!1;let i=this.rangesToRows(this._ranges);const s=i.indexOf(t.row);if(s===-1&&(e.ctrlKey||e.metaKey))i.push(t.row),this._grid.setActiveCell(t.row,t.cell);else if(s!==-1&&(e.ctrlKey||e.metaKey))i=i.filter(o=>o!==t.row),this._grid.setActiveCell(t.row,t.cell);else if(i.length&&e.shiftKey){const o=i.pop(),l=Math.min(t.row,o),a=Math.max(t.row,o);i=[];for(let h=l;h<=a;h++)h!==o&&i.push(h);i.push(o),this._grid.setActiveCell(t.row,t.cell)}const n=this.rowsToRanges(i);return this.setSelectedRanges(n),e.stopImmediatePropagation(),!0}handleKeyDown(e){const t=this._grid.getActiveCell();if(this.gridOptions.multiSelect&&t&&e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){let i=this.getSelectedRows();i.sort((l,a)=>l-a),i.length||(i=[t.row]);let s,n=i[0],o=i[i.length-1];if(e.key==="ArrowDown"?s=t.row<o||n===o?++o:++n:s=t.row<o?--o:--n,s>=0&&s<this._grid.getDataLength()){this._grid.scrollRowIntoView(s);const l=this.rowsToRanges(this.getRowsRange(n,o));this.setSelectedRanges(l)}e.preventDefault(),e.stopPropagation()}}isHandlerColumn(e){const i=this._grid.getColumns()[e].behavior||"";return/move|selectAndMove/.test(i)}rangesToRows(e){const t=[];for(let i=0;i<e.length;i++)for(let s=e[i].fromRow;s<=e[i].toRow;s++)t.push(s);return t}rowsToRanges(e){const t=[],i=this._grid.getColumns().length-1;return e.forEach(s=>t.push(new tt(s,0,s,i))),t}}const Jl="mdi-icon-check",ea="mdi-icon-uncheck";class ta{constructor(e,t){this.pubSubService=e,this.pluginName="CheckboxSelectColumn",this._defaults={columnId:"_checkbox_selector",cssClass:null,field:"_checkbox_selector",hideSelectAllCheckbox:!1,name:"",toolTip:"Select/Deselect All",width:30,reorderable:!1,applySelectOnAllPages:!0,hideInColumnTitleRow:!1,hideInFilterHeaderRow:!0},this._addonOptions=this._defaults,this._checkboxColumnCellIndex=null,this._isSelectAllChecked=!1,this._isUsingDataView=!1,this._selectedRowsLookup={},this._selectAll_UID=this.createUID(),this._bindEventService=new Pe,this._eventHandler=new pe,this._addonOptions={...this._defaults,...t}}get addonOptions(){return this._addonOptions}get headerRowNode(){return this._headerRowNode}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get selectAllUid(){return this._selectAll_UID}set selectedRowsLookup(e){this._selectedRowsLookup=e}init(e){this._grid=e,this._isUsingDataView=!Array.isArray(e.getData()),this._isUsingDataView&&(this._dataView=e.getData()),this.gridOptions.backendServiceApi&&(this._addonOptions.applySelectOnAllPages=!1),this._eventHandler.subscribe(e.onSelectedRowsChanged,this.handleSelectedRowsChanged.bind(this)).subscribe(e.onClick,this.handleClick.bind(this)).subscribe(e.onKeyDown,this.handleKeyDown.bind(this)),this._isUsingDataView&&this._dataView&&(this._eventHandler.subscribe(e.onAfterSetColumns,this.handleDataViewSelectedIdsChanged.bind(this)),this._addonOptions.applySelectOnAllPages&&this._eventHandler.subscribe(this._dataView.onSelectedRowIdsChanged,this.handleDataViewSelectedIdsChanged.bind(this)).subscribe(this._dataView.onPagingInfoChanged,this.handleDataViewSelectedIdsChanged.bind(this))),this._addonOptions.hideInFilterHeaderRow||this.addCheckboxToFilterHeaderRow(e),this._addonOptions.hideInColumnTitleRow||this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this)),(!this._rowSelectionModel||!this._grid.getSelectionModel())&&(this._rowSelectionModel=new fr(this.gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionModel)),this.gridOptions.preselectedRows&&this._rowSelectionModel&&this._grid.getSelectionModel()&&window.setTimeout(()=>this.selectRows(this.gridOptions.preselectedRows||[])),typeof this._addonOptions.selectableOverride=="function"&&this.selectableOverride(this._addonOptions.selectableOverride)}dispose(){this._bindEventService.unbindAll(),this._eventHandler.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.checkboxSelector},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=((i=t==null?void 0:t.checkboxSelector)==null?void 0:i.columnIndexPosition)??0;n>0?e.splice(n,0,s):e.unshift(s),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getOptions(){return this._addonOptions}setOptions(e){var t;if(this._addonOptions={...this._addonOptions,...e},this._addonOptions.hideSelectAllCheckbox)this.hideSelectAllFromColumnHeaderTitleRow(),this.hideSelectAllFromColumnHeaderFilterRow();else if(this._addonOptions.hideInColumnTitleRow?(this.hideSelectAllFromColumnHeaderTitleRow(),this._addonOptions.name&&this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name,"")):(this.renderSelectAllCheckbox(this._isSelectAllChecked),this._eventHandler.subscribe(this._grid.onHeaderClick,this.handleHeaderClick.bind(this))),this._addonOptions.hideInFilterHeaderRow)this.hideSelectAllFromColumnHeaderFilterRow();else{const i=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");if(i){i.style.display="flex",i.ariaChecked=String(this._isSelectAllChecked);const s=i.querySelector('input[type="checkbox"]');s&&(s.ariaChecked=String(this._isSelectAllChecked),s.checked=this._isSelectAllChecked)}}}deSelectRows(e){const t=[];for(const i of e)this._selectedRowsLookup[i]&&(t[t.length]=i);this._grid.setSelectedRows(this._grid.getSelectedRows().filter(i=>t.indexOf(i)<0),"SlickCheckboxSelectColumn.deSelectRows")}selectRows(e){var s;const t=[];for(const n of e)this._selectedRowsLookup[n]&&(t[t.length]=n);const i=(s=this._grid.getSelectedRows())==null?void 0:s.concat(t);this._grid.setSelectedRows(i)}createCheckboxElement(e,t=!1){var o;const i=(o=this.gridOptions)!=null&&o.preventDocumentFragmentUsage?document.createElement("span"):new DocumentFragment,s=v("label",{className:"checkbox-selector-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"});return n.appendChild(v("input",{id:e,type:"checkbox",checked:t,ariaChecked:String(t)})),n.appendChild(v("div",{className:`mdi ${t?Jl:ea}`})),s.appendChild(n),i.appendChild(s),i}getColumnDefinition(){var t;const e=String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId);return{id:e,name:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?this._addonOptions.name||"":this.createCheckboxElement(`header-selector${this._selectAll_UID}`),toolTip:this._addonOptions.hideSelectAllCheckbox||this._addonOptions.hideInColumnTitleRow?"":this._addonOptions.toolTip,field:e,cssClass:this._addonOptions.cssClass,excludeFromExport:!0,excludeFromColumnPicker:!0,excludeFromGridMenu:!0,excludeFromQuery:!0,excludeFromHeaderMenu:!0,hideSelectAllCheckbox:this._addonOptions.hideSelectAllCheckbox,resizable:!1,reorderable:this._addonOptions.reorderable,sortable:!1,width:this._addonOptions.width||30,maxWidth:this._addonOptions.width||30,formatter:this.checkboxSelectionFormatter.bind(this)}}hideSelectAllFromColumnHeaderTitleRow(){this._grid.updateColumnHeader(this._addonOptions.columnId||"",this._addonOptions.name||"","")}hideSelectAllFromColumnHeaderFilterRow(){var t;const e=(t=this.headerRowNode)==null?void 0:t.querySelector("#filter-checkbox-selectall-container");e&&(e.style.display="none")}toggleRowSelection(e){this.toggleRowSelectionWithEvent(null,e)}toggleRowSelectionWithEvent(e,t){const i=this._grid.getDataItem(t);if(!this.checkSelectableOverride(t,i,this._grid))return;const s=this._grid.getSelectedRows();typeof this._addonOptions.onRowToggleStart=="function"&&this._addonOptions.onRowToggleStart(e,{row:t,previousSelectedRows:s});const n=this._selectedRowsLookup[t]?this._grid.getSelectedRows().filter(o=>o!==t):this._grid.getSelectedRows().concat(t);this._grid.setSelectedRows(n,"click.toggle"),this._grid.setActiveCell(t,this.getCheckboxColumnCellIndex()),this._addonOptions.onRowToggleEnd&&this._addonOptions.onRowToggleEnd(e,{row:t,previousSelectedRows:s})}selectableOverride(e){this._selectableOverride=e}addCheckboxToFilterHeaderRow(e){this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{if(i.column.field===(this._addonOptions.field||"_checkbox_selector")){ee(i.node);const s=`header-filter-selector${this._selectAll_UID}`,n=v("label",{id:"filter-checkbox-selectall-container",htmlFor:s}),o=v("div",{className:"icon-checkbox-container"});o.appendChild(v("input",{id:s,type:"checkbox",ariaChecked:"false"})),o.appendChild(v("div",{className:"mdi mdi-icon-uncheck"})),n.appendChild(o),i.node.appendChild(n),this._headerRowNode=i.node,this._headerRowNode.classList.add("checkbox-header"),this._bindEventService.bind(n,"click",l=>this.handleHeaderClick(l,i))}})}checkboxSelectionFormatter(e,t,i,s,n,o){if(n&&this.checkSelectableOverride(e,n,o)){const l=this.createUID()+e;return this.createCheckboxElement(`selector${l}`,!!this._selectedRowsLookup[e])}return null}checkSelectableOverride(e,t,i){return typeof this._selectableOverride=="function"?this._selectableOverride(e,t,i):!0}createUID(){return Math.round(1e7*Math.random())}getCheckboxColumnCellIndex(){if(this._checkboxColumnCellIndex===null){this._checkboxColumnCellIndex=0;const e=this._grid.getColumns();for(let t=0;t<e.length;t++)e[t].id===this._addonOptions.columnId&&(this._checkboxColumnCellIndex=t)}return this._checkboxColumnCellIndex}handleDataViewSelectedIdsChanged(){var s,n;const e=this._dataView.getAllSelectedFilteredIds(),t=this._dataView.getFilteredItems();let i=0;if(typeof this._selectableOverride=="function"&&e.length>0)for(let o=0;o<this._dataView.getItemCount();o++){const l=this._dataView.getItemByIdx(o),a=this._dataView.getIdPropertyName(),h=l[a];t.findIndex(c=>c[a]===h)>=0&&!this.checkSelectableOverride(o,l,this._grid)&&i++}if(this._isSelectAllChecked=e.length+i>=t.length,!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow){const o=(s=this.headerRowNode)==null?void 0:s.querySelector(`#header-filter-selector${this._selectAll_UID}`),l=(n=this.headerRowNode)==null?void 0:n.querySelector(".icon-checkbox-container .mdi");o&&(o.ariaChecked=String(this._isSelectAllChecked),o.checked=this._isSelectAllChecked),l&&(l.className=`mdi ${this._isSelectAllChecked?Jl:ea}`)}}handleClick(e,t){if(this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}this.toggleRowSelectionWithEvent(e,t.row),e.stopPropagation(),e.stopImmediatePropagation()}}handleHeaderClick(e,t){if(t.column.id===this._addonOptions.columnId&&e.target.type==="checkbox"){if(e.target.ariaChecked=String(e.target.checked),this._grid.getEditorLock().isActive()&&!this._grid.getEditorLock().commitCurrentEdit()){e.preventDefault(),e.stopImmediatePropagation();return}let i=e.target.checked;const s=i?"click.selectAll":"click.unselectAll",n=this._grid.getSelectedRows();this._addonOptions.onSelectAllToggleStart&&this._addonOptions.onSelectAllToggleStart(e,{previousSelectedRows:n,caller:s});let o=[];if(i){const l=[];for(let a=0;a<this._grid.getDataLength();a++){const h=this._grid.getDataItem(a);!h.__group&&!h.__groupTotals&&this.checkSelectableOverride(a,h,this._grid)&&l.push(a)}o=l,i=!0}if(this._isUsingDataView&&this._dataView&&this._addonOptions.applySelectOnAllPages){const l=[],a=this._dataView.getFilteredItems();for(let h=0;h<a.length;h++){const d=a[h];this.checkSelectableOverride(h,d,this._grid)&&l.push(d[this._dataView.getIdPropertyName()])}this._dataView.setSelectedIds(l,{isRowBeingAdded:i})}this._grid.setSelectedRows(o,s),this._addonOptions.onSelectAllToggleEnd&&this._addonOptions.onSelectAllToggleEnd(e,{rows:o,previousSelectedRows:n,caller:s}),e.stopPropagation(),e.stopImmediatePropagation()}}handleKeyDown(e,t){e.key===" "&&this._grid.getColumns()[t.cell].id===this._addonOptions.columnId&&((!this._grid.getEditorLock().isActive()||this._grid.getEditorLock().commitCurrentEdit())&&this.toggleRowSelectionWithEvent(e,t.row),e.preventDefault(),e.stopImmediatePropagation())}handleSelectedRowsChanged(){var a;const e=this._grid.getSelectedRows(),t={};let i=0,s=0,n=0,o=0;if(typeof this._selectableOverride=="function")for(n=0;n<this._grid.getDataLength();n++){const h=this._grid.getDataItem(n);this.checkSelectableOverride(s,h,this._grid)||o++}const l=[];for(s=0;s<e.length;s++){i=e[s];const h=this._grid.getDataItem(i);this.checkSelectableOverride(s,h,this._grid)?(t[i]=!0,t[i]!==this._selectedRowsLookup[i]&&(this._grid.invalidateRow(i),delete this._selectedRowsLookup[i])):l.push(i)}if(typeof this._selectedRowsLookup=="object"&&Object.keys(this._selectedRowsLookup).forEach(h=>{h!==void 0&&this._grid.invalidateRow(+h)}),this._selectedRowsLookup=t,this._grid.render(),this._isSelectAllChecked=((e==null?void 0:e.length)??0)+o>=this._grid.getDataLength(),(!this._isUsingDataView||!this._addonOptions.applySelectOnAllPages)&&(!this._addonOptions.hideInColumnTitleRow&&!this._addonOptions.hideSelectAllCheckbox&&this.renderSelectAllCheckbox(this._isSelectAllChecked),!this._addonOptions.hideInFilterHeaderRow)){const h=(a=this.headerRowNode)==null?void 0:a.querySelector(`#header-filter-selector${this._selectAll_UID}`);h&&(h.ariaChecked=String(this._isSelectAllChecked),h.checked=this._isSelectAllChecked)}if(l.length>0){for(const h of l){const d=e.indexOf(h);e.splice(d,1)}this._grid.setSelectedRows(e,"click.toggle")}}renderSelectAllCheckbox(e){const t=this._grid.updateColumnHeader(this._addonOptions.columnId||"",this.createCheckboxElement(`header-selector${this._selectAll_UID}`,!!e),this._addonOptions.toolTip);t==null||t.classList.add("header-checkbox-selectall")}}class ia extends zs{constructor(e,t,i,s,n){var o;super(e,i,s),this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this._areVisibleColumnDifferent=!1,this._columns=[],this._columnCheckboxes=[],this._commandMenuElm=null,this._headerElm=null,this._isMenuOpen=!1,this._subMenuParentId="",this._defaults={dropSide:"left",showButton:!0,hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",marginBottom:15,menuWidth:18,minHeight:150,contentMinWidth:0,resizeOnShowHeaderRow:!1,syncResizeTitle:"Synchronous resize",subMenuOpenByEvent:"mouseover",headerColumnValueExtractor:l=>_t(l.columnPickerLabel||l.name||"","innerHTML")},this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-grid-menu",this._camelPluginName="gridMenu",this._columns=this.sharedService.allColumns??[],this._gridUid=((o=this.grid)==null?void 0:o.getUID())??"",this.onAfterMenuShow=new P("onAfterMenuShow"),this.onBeforeMenuShow=new P("onBeforeMenuShow"),this.onMenuClose=new P("onMenuClose"),this.onCommand=new P("onCommand"),this.onColumnsChanged=new P("onColumnsChanged"),this.initEventHandlers(),this.init()}get addonOptions(){return this._addonOptions||{}}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){var e;return((e=this.grid)==null?void 0:e.getOptions())||{}}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}initEventHandlers(){this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,e=>this.hideMenu(e)),this._eventHandler.subscribe(this.grid.onBeforeDestroy,this.dispose.bind(this)),this._eventHandler.subscribe(this.grid.onSetOptions,(e,t)=>{if(t&&t.optionsBefore&&t.optionsAfter){const i=t.optionsBefore.frozenColumn>=0&&t.optionsAfter.frozenColumn===-1,s=t.optionsBefore.frozenColumn===-1&&t.optionsAfter.frozenColumn>=0;(i||s)&&this.recreateGridMenu()}})}init(){this._gridUid=this.grid.getUID()??"",T.addSlickEventPubSubWhenDefined(this.pubSubService,this),this._userOriginalGridMenu={...this.sharedService.gridOptions.gridMenu},this._addonOptions={...this._defaults,...this.getDefaultGridMenuOptions(),...this.sharedService.gridOptions.gridMenu},this.sharedService.gridOptions.gridMenu=this._addonOptions;const e=this._userOriginalGridMenu.commandItems,t=this._userOriginalGridMenu&&Array.isArray(e)?e:[];this._addonOptions.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(this._addonOptions.commandItems||[],"commandItems"),this.extensionUtility.sortItems(this._addonOptions.commandItems,"positionOrder"),this.createGridMenu()}dispose(){this.deleteMenu(),super.dispose()}deleteMenu(){var e,t;this._bindEventService.unbindAll(),(e=this._menuElm)==null||e.remove(),this._menuElm=null,(t=this._gridMenuButtonElm)==null||t.remove(),this._headerElm&&(this._headerElm.style.width="100%")}createColumnPickerContainer(){this._menuElm&&(oa.call(this,this._menuElm),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(this._menuElm,"click",la.bind(this),void 0,"parent-menu"))}createGridMenu(){var n,o;const e=this._gridUid?`.${this._gridUid}`:"",t=((n=this._addonOptions)==null?void 0:n.menuWidth)||this._defaults.menuWidth,i=this.gridOptions.hasOwnProperty("frozenColumn")&&this.gridOptions.frozenColumn>=0?"right":"left",s=this.grid.getContainerNode();if(this._headerElm=s.querySelector(`.slick-header-${i}`),this._headerElm&&this._addonOptions){if(this._headerElm.style.width=`calc(100% - ${t}px)`,(this._addonOptions.resizeOnShowHeaderRow??this._defaults.resizeOnShowHeaderRow)&&this.gridOptions.showHeaderRow){const h=s.querySelector(`${e} .slick-headerrow`);h&&(h.style.width=`calc(100% - ${t}px)`)}if(this._addonOptions.showButton??this._defaults.showButton){this._gridMenuButtonElm=v("button",{className:"slick-grid-menu-button",ariaLabel:"Grid Menu"}),(o=this._addonOptions)!=null&&o.iconCssClass&&this._gridMenuButtonElm.classList.add(...he(this._addonOptions.iconCssClass));const h=this._addonOptions.iconButtonContainer==="preheader"?"firstChild":"lastChild";this._headerElm.parentElement.insertBefore(this._gridMenuButtonElm,this._headerElm.parentElement[h]),this._bindEventService.bind(this._gridMenuButtonElm,"click",this.showGridMenu.bind(this))}this.sharedService.gridOptions.gridMenu={...this._defaults,...this._addonOptions},this.translateTitleLabels(this._addonOptions),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this)),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this))}}createCommandMenu(e,t=0,i){const s=i==null?void 0:i.command;let n=t===1&&s?s.replace(/\s/g,""):"";n&&(this._subMenuParentId=n),t>1&&(n=this._subMenuParentId);const o=`${this.menuCssClass} slick-menu-level-${t} ${this._gridUid}`,l=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${t}${this.gridUidSelector}`);if(l){if(l.dataset.subMenuParent===n)return l;this.disposeSubMenus()}const a=v("div",{role:"menu",className:o,ariaLabel:t>1?"SubMenu":"Grid Menu"});t>0&&(a.classList.add("slick-submenu"),n&&(a.dataset.subMenuParent=n));const h={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns(),level:t};return this._commandMenuElm=this.recreateCommandList(e,a,h,i),t++,a}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}hideMenu(e){var i,s,n;const t={grid:this.grid,menu:this._menuElm,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};if(this.pubSubService.publish("onGridMenuMenuClose",t),!(typeof((i=this._addonOptions)==null?void 0:i.onMenuClose)=="function"&&this._addonOptions.onMenuClose(e,t)===!1||this.onMenuClose.notify(t,null,this).getReturnValue()===!1)){if(this._isMenuOpen=!1,typeof((s=this.grid)==null?void 0:s.autosizeColumns)=="function"){const o=this.grid.getUID()||"";this._areVisibleColumnDifferent&&o&&document.querySelector(`.${o}`)!==null&&(this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this._areVisibleColumnDifferent=!1)}this.disposeSubMenus(),(n=this._menuElm)==null||n.remove(),this._menuElm=null}}recreateGridMenu(){this.deleteMenu(),this.init()}repositionMenu(e,t,i,s){var a,h;const n=((a=e==null?void 0:e.touches)==null?void 0:a[0])??e,o=t.classList.contains("slick-submenu"),l=o?e.target.closest(".slick-menu-item"):n.target;if(l){const d=i||this._gridMenuButtonElm,c=ge(i),u=ge(l),p=s??this._addonOptions,m=getComputedStyle(d),f=parseInt((m==null?void 0:m.width)??((h=this._defaults)==null?void 0:h.menuWidth),10),g=(t==null?void 0:t.offsetWidth)??0,_=(p==null?void 0:p.contentMinWidth)??this._defaults.contentMinWidth??0,C=(_>g?_:g)||0,b=c.top,S=c.right;let E,y;if(o?(y=u.top,E=u.left):(y=b+d.offsetHeight,E=(p==null?void 0:p.dropSide)==="right"?S-f:S-C),o){const D=(t==null?void 0:t.clientHeight)||0,{bottom:L,top:M}=Vi(l);(L<D&&M>L?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),y-=D-l.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}const x=this.grid.getGridPosition();let O=E+Number(g);o&&(O+=l.clientWidth);const I=document.documentElement.clientWidth;(O>=x.width||O>=I?"left":"right")==="left"||!o&&(p==null?void 0:p.dropSide)==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),o&&(E-=Number(g))):(t.classList.remove("dropleft"),t.classList.add("dropright"),o&&(E+=l.offsetWidth)),t.style.top=`${y}px`,t.style.left=`${E}px`,_>0&&(t.style.minWidth=`${_}px`),t.style.opacity="1",t.style.display="block"}}openGridMenu(){const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,composed:!1});Object.defineProperty(e,"target",{writable:!0,configurable:!0,value:v("button",{className:"slick-grid-menu-button"})}),this.showGridMenu(e)}showGridMenu(e,t){var s,n,o;const i=((s=e==null?void 0:e.touches)==null?void 0:s[0])??e;if(e.preventDefault(),ee(this._menuElm),(n=this._menuElm)==null||n.remove(),this._addonOptions){const l={grid:this.grid,menu:this._menuElm,columns:this.columns,allColumns:this.getAllColumns(),visibleColumns:this.getVisibleColumns()},a={...this._addonOptions,...t};if(a&&!this.extensionUtility.runOverrideFunctionWhenExists(a.menuUsabilityOverride,l)||typeof e.stopPropagation=="function"&&(this.pubSubService.publish("onGridMenuBeforeMenuShow",l),typeof(a==null?void 0:a.onBeforeMenuShow)=="function"&&a.onBeforeMenuShow(e,l)===!1||this.onBeforeMenuShow.notify(l,null,this).getReturnValue()===!1))return;this._menuElm=this.createCommandMenu(((o=this._addonOptions)==null?void 0:o.commandItems)??[]),this.createColumnPickerContainer(),$s.call(this),this._columnCheckboxes=[],ha.call(this,a),document.body.appendChild(this._menuElm),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),this._menuElm.style.opacity="0";const h=((a==null?void 0:a.marginBottom)!==void 0?a.marginBottom:this._defaults.marginBottom)||0;this._menuElm.style.minHeight=Pt(a==null?void 0:a.minHeight,""),(a==null?void 0:a.height)!==void 0?this._menuElm.style.height=Pt(a.height,""):this._menuElm.style.maxHeight=Pt(a==null?void 0:a.maxHeight,`${window.innerHeight-i.clientY-h}px`);let d=e.target.nodeName==="BUTTON"?e.target:e.target.querySelector("button");d||(d=e.target.parentElement),this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm),this.repositionMenu(e,this._menuElm,d,a),this._isMenuOpen=!0,this.pubSubService.publish("onGridMenuAfterMenuShow",l),typeof(a==null?void 0:a.onAfterMenuShow)=="function"&&a.onAfterMenuShow(e,l),this.onAfterMenuShow.notify(l,null,this)}}translateGridMenu(){var e;if(this.sharedService.gridOptions.gridMenu){this.sharedService.gridOptions.gridMenu.commandItems=[],this.sharedService.gridOptions.gridMenu.commandTitle="",this.sharedService.gridOptions.gridMenu.columnTitle="",this.sharedService.gridOptions.gridMenu.forceFitTitle="",this.sharedService.gridOptions.gridMenu.syncResizeTitle="";const t=this._userOriginalGridMenu&&Array.isArray(this._userOriginalGridMenu.commandItems)?this._userOriginalGridMenu.commandItems:[];this.sharedService.gridOptions.gridMenu.commandItems=[...t,...this.addGridMenuCustomCommands(t)],this.extensionUtility.translateMenuItemsFromTitleKey(((e=this._addonOptions)==null?void 0:e.commandItems)||[],"commandItems"),this.extensionUtility.sortItems(this.sharedService.gridOptions.gridMenu.commandItems,"positionOrder"),this.translateTitleLabels(this.sharedService.gridOptions.gridMenu),this.translateTitleLabels(this._addonOptions),this.extensionUtility.translateItems(this._columns,"nameKey","name")}}translateTitleLabels(e){e&&(e.commandTitle=this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"),e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),e.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),e.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"))}addGridMenuCustomCommands(e){var l,a;const t=this.gridOptions.backendServiceApi||null,i=[],s=this.gridOptions,n=lt(s),o=(l=this._addonOptions)==null?void 0:l.commandLabels;if(this._addonOptions&&this.gridOptions){if(!this._addonOptions.hideClearFrozenColumnsCommand){const d="clear-pinning";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearFrozenColumnsCommand||"mdi mdi-pin-off-outline",titleKey:`${n}${(o==null?void 0:o.clearFrozenColumnsCommandKey)??"CLEAR_PINNING"}`,disabled:!1,command:d,positionOrder:52})}if(this.gridOptions.enableFiltering&&!this.sharedService.hideHeaderRowAfterPageLoad){if(!this._addonOptions.hideClearAllFiltersCommand){const d="clear-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllFiltersCommand||"mdi mdi-filter-remove-outline",titleKey:`${n}${(o==null?void 0:o.clearAllFiltersCommandKey)??"CLEAR_ALL_FILTERS"}`,disabled:!1,command:d,positionOrder:50})}if(!this._addonOptions.hideToggleFilterCommand){const d="toggle-filter";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleFilterCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.toggleFilterCommandKey)??"TOGGLE_FILTER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(t&&!this._addonOptions.hideRefreshDatasetCommand){const d="refresh-dataset";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconRefreshDatasetCommand||"mdi mdi-sync",titleKey:`${n}${(o==null?void 0:o.refreshDatasetCommandKey)??"REFRESH_DATASET"}`,disabled:!1,command:d,positionOrder:58})}}if(!this._addonOptions.hideToggleDarkModeCommand){const d="toggle-dark-mode";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconToggleDarkModeCommand||"mdi mdi-brightness-4",titleKey:`${n}${(o==null?void 0:o.toggleDarkModeCommandKey)??"TOGGLE_DARK_MODE"}`,disabled:!1,command:d,positionOrder:54})}if(this.gridOptions.showPreHeaderPanel&&!this._addonOptions.hideTogglePreHeaderCommand){const d="toggle-preheader";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconTogglePreHeaderCommand||"mdi mdi-flip-vertical",titleKey:`${n}${(o==null?void 0:o.togglePreHeaderCommandKey)??"TOGGLE_PRE_HEADER_ROW"}`,disabled:!1,command:d,positionOrder:53})}if(this.gridOptions.enableSorting&&!this._addonOptions.hideClearAllSortingCommand){const d="clear-sorting";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconClearAllSortingCommand||"mdi mdi-sort-variant-off",titleKey:`${n}${(o==null?void 0:o.clearAllSortingCommandKey)??"CLEAR_ALL_SORTING"}`,disabled:!1,command:d,positionOrder:51})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportCsvCommand){const d="export-csv";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportCsvCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportCsvCommandKey)??"EXPORT_TO_CSV"}`,disabled:!1,command:d,positionOrder:55})}if(this.gridOptions.enableExcelExport&&!this._addonOptions.hideExportExcelCommand){const d="export-excel";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportExcelCommand||"mdi mdi-file-excel-outline text-success",titleKey:`${n}${(o==null?void 0:o.exportExcelCommandKey)??"EXPORT_TO_EXCEL"}`,disabled:!1,command:d,positionOrder:56})}if(this.gridOptions.enableTextExport&&!this._addonOptions.hideExportTextDelimitedCommand){const d="export-text-delimited";e.some(c=>c!=="divider"&&c.hasOwnProperty("command")&&c.command===d)||i.push({iconCssClass:this._addonOptions.iconExportTextDelimitedCommand||"mdi mdi-download",titleKey:`${n}${(o==null?void 0:o.exportTextDelimitedCommandKey)??"EXPORT_TO_TAB_DELIMITED"}`,disabled:!1,command:d,positionOrder:57})}const h=((a=this._addonOptions)==null?void 0:a.commandItems)||[];(Array.isArray(i)&&i.length>0||Array.isArray(h)&&h.length>0)&&(this._addonOptions.commandTitle=this._addonOptions.commandTitle||this.extensionUtility.getPickerTitleOutputString("commandTitle","gridMenu"))}return i}executeGridMenuInternalCustomCommands(e,t){var s,n,o;const i=((s=this.sharedService)==null?void 0:s.externalRegisteredResources)||[];if(t!=null&&t.command)switch(t.command){case"clear-pinning":const l=[...this.sharedService.visibleColumns],a={frozenColumn:-1,frozenRow:-1,frozenBottom:!1,enableMouseWheelScrollHandler:!1};this.grid.setOptions(a),this.sharedService.gridOptions.frozenColumn=a.frozenColumn,this.sharedService.gridOptions.frozenRow=a.frozenRow,this.sharedService.gridOptions.frozenBottom=a.frozenBottom,this.sharedService.gridOptions.enableMouseWheelScrollHandler=a.enableMouseWheelScrollHandler,Array.isArray(l)&&this.grid.setColumns(l),this.gridOptions.enableAutoSizeColumns&&this.grid.autosizeColumns(),this.pubSubService.publish("onGridMenuClearAllPinning");break;case"clear-filter":this.filterService.clearFilters(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllFilters");break;case"clear-sorting":this.sortService.clearSorting(),this.sharedService.dataView.refresh(),this.pubSubService.publish("onGridMenuClearAllSorting");break;case"export-csv":const d=i.find(g=>g.className==="TextExportService");d!=null&&d.exportToFile?d.exportToFile({delimiter:Ot.comma,format:ve.csv}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"export-excel":const c=i.find(g=>g.className==="ExcelExportService");c!=null&&c.exportToExcel?c.exportToExcel():console.error("[Slickgrid-Universal] You must register the ExcelExportService to properly use Export to Excel in the Grid Menu. Example:: this.gridOptions = { enableExcelExport: true, externalResources: [new ExcelExportService()] };");break;case"export-text-delimited":const u=i.find(g=>g.className==="TextExportService");u!=null&&u.exportToFile?u.exportToFile({delimiter:Ot.tab,format:ve.txt}):console.error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Grid Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };");break;case"toggle-dark-mode":const p=this.sharedService.gridOptions.darkMode;this.grid.setOptions({darkMode:!p}),this.sharedService.gridOptions.darkMode=!p;break;case"toggle-filter":let m=((n=this.gridOptions)==null?void 0:n.showHeaderRow)??!1;m=!m,this.grid.setHeaderRowVisibility(m),m===!0&&(this.grid.setColumns(this.sharedService.columnDefinitions),this.grid.scrollColumnIntoView(0));break;case"toggle-preheader":const f=((o=this.gridOptions)==null?void 0:o.showPreHeaderPanel)??!1;this.grid.setPreHeaderPanelVisibility(!f);break;case"refresh-dataset":this.extensionUtility.refreshBackendDataset();break}}getDefaultGridMenuOptions(){return{commandTitle:void 0,columnTitle:this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"),forceFitTitle:this.extensionUtility.getPickerTitleOutputString("forceFitTitle","gridMenu"),syncResizeTitle:this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","gridMenu"),iconCssClass:"mdi mdi-menu",menuWidth:18,commandItems:[],hideClearAllFiltersCommand:!1,hideRefreshDatasetCommand:!1,hideToggleFilterCommand:!1}}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this._isMenuOpen&&this.menuElement!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.hideMenu(e)}}handleMenuItemCommandClick(e,t,i,s=0){var n,o;if(i!=="divider"&&!i.disabled&&!i.divider)if((i.command||"")&&!i.commandItems){const a={grid:this.grid,command:i.command,item:i,allColumns:this.columns,visibleColumns:this.getVisibleColumns()};this.executeGridMenuInternalCustomCommands(e,a),this.pubSubService.publish("onGridMenuCommand",a),typeof((n=this._addonOptions)==null?void 0:n.onCommand)=="function"&&this._addonOptions.onCommand(e,a),this.onCommand.notify(a,null,this),typeof i.action=="function"&&i.action.call(this,e,a),!((o=this._addonOptions)!=null&&o.leaveOpen)&&!e.defaultPrevented&&this.hideMenu(e),e.preventDefault(),e.stopPropagation()}else i.commandItems&&this.repositionSubMenu(e,i,s)}handleMenuItemMouseOver(e,t,i,s=0){i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems?this.repositionSubMenu(e,i,s):s===0&&this.disposeSubMenus())}recreateCommandList(e,t,i,s){const n=i.level||0;if(e.length>0){const o=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},t);if(n===0){this.populateCommandOrOptionTitle("command",this.addonOptions,o,n);const l=t.querySelector(".slick-command-header")??v("div",{className:"slick-command-header"});l.classList.add("with-close"),ra.call(this,l),o.appendChild(l)}return s&&n>0&&this.addSubMenuTitleWhenExists(s,o),this.populateCommandOrOptionItems("command",this._addonOptions,o,e,i,this.handleMenuItemCommandClick,this.handleMenuItemMouseOver),o}return null}repositionSubMenu(e,t,i){const s=(t==null?void 0:t.commandItems)||[],n=this.createCommandMenu(s,i+1,t);n.style.display="block",document.body.appendChild(n),this.repositionMenu(e,n)}}const sa="mdi-icon-picker-check",na="mdi-icon-picker-uncheck";function ra(r){const t=v("button",{type:"button",className:"close",ariaLabel:"Close",textContent:"×",dataset:{dismiss:this instanceof _r?"slick-column-picker":"slick-grid-menu"}});r.appendChild(t)}function oa(r){var t,i;const e=this;(t=e.addonOptions)!=null&&t.columnTitle&&(e._columnTitleElm=v("div",{className:"slick-menu-title",textContent:((i=e.addonOptions)==null?void 0:i.columnTitle)??e._defaults.columnTitle},r))}function la(r){var o,l;const e=this,t=e instanceof _r?"columnPicker":"gridMenu",i=(o=r.target)==null?void 0:o.closest(".icon-checkbox-container"),s=i==null?void 0:i.querySelector(".mdi"),n=!!r.target.checked;if(r.target.ariaChecked=String(n),aa(s,n),r.target.dataset.option==="autoresize"){const a=e.getVisibleColumns();e.grid.setOptions({forceFitColumns:n}),e.grid.setColumns(a);return}if(r.target.dataset.option==="syncresize"){e.grid.setOptions({syncColumnCellResize:n});return}if(r.target.type==="checkbox"){e._areVisibleColumnDifferent=!0;const a=r.target.dataset.columnid||"",h=[];if(e._columnCheckboxes.forEach((u,p)=>{u.checked&&h.push(e.columns[p])}),!h.length){r.target.checked=!0,aa(s,!0);return}if(e.grid.setColumns(h),(!e.sharedService.visibleColumns||Array.isArray(h)&&h.length!==e.sharedService.visibleColumns.length)&&(e.sharedService.visibleColumns=h),e.gridOptions.enableRowSelection&&n){const u=e.grid.getSelectedRows();e.grid.setSelectedRows(u)}const d=e.gridOptions.frozenColumn??-1;d>=0&&e.extensionUtility.readjustFrozenColumnIndexWhenNeeded(d,e.columns,h);const c={columnId:a,showing:n,allColumns:e.columns,visibleColumns:h,columns:h,grid:e.grid};e.pubSubService.publish(`on${ti(t)}ColumnsChanged`,c),typeof((l=e.addonOptions)==null?void 0:l.onColumnsChanged)=="function"&&e.addonOptions.onColumnsChanged(r,c),e.onColumnsChanged.notify(c,null,e)}}function aa(r,e=!1){r&&(r.className=`mdi ${e?sa:na}`)}function gr(r,e,t,i=!1){const s=v("label",{className:"checkbox-picker-label",htmlFor:e}),n=v("div",{className:"icon-checkbox-container"}),o=v("input",{id:e,type:"checkbox",dataset:t}),l=v("div",{className:`mdi ${i?sa:na}`}),a=v("span",{className:"checkbox-label"});return n.appendChild(o),n.appendChild(l),s.appendChild(n),s.appendChild(a),r.appendChild(s),i&&(o.ariaChecked="true",o.checked=!0),{inputElm:o,labelElm:s,labelSpanElm:a}}function ha(r){const e=this,t=e instanceof ia,i=t?"gridmenu-":"";for(const s of e.columns){const n=s.id,o=document.createElement("li");(s.excludeFromColumnPicker&&!t||s.excludeFromGridMenu&&t)&&(o.className="hidden");const l=`${e._gridUid}-${i}colpicker-${n}`,a=e.grid.getColumnIndex(n)>=0,{inputElm:h,labelElm:d,labelSpanElm:c}=gr(o,l,{columnid:`${n}`},a);e._columnCheckboxes.push(h);const p=(typeof(r==null?void 0:r.headerColumnValueExtractor)=="function"?r.headerColumnValueExtractor:e._defaults.headerColumnValueExtractor)(s,e.gridOptions);this.grid.applyHtmlCode(c,p),o.appendChild(d),e._listElm.appendChild(o)}if((!r.hideForceFitButton||!r.hideSyncResizeButton)&&e._listElm.appendChild(document.createElement("hr")),!(r!=null&&r.hideForceFitButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-forcefit`,{labelSpanElm:o}=gr(s,n,{option:"autoresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.forceFitTitle)??"",e._listElm.appendChild(s)}if(!(r!=null&&r.hideSyncResizeButton)){const s=document.createElement("li"),n=`${e._gridUid}-${i}colpicker-syncresize`,{labelSpanElm:o}=gr(s,n,{option:"syncresize"},e.gridOptions.forceFitColumns);o.textContent=(r==null?void 0:r.syncResizeTitle)??"",e._listElm.appendChild(s)}}function $s(){const r=this,e=r.grid.getColumns().slice(0),t=new Array(r.columns.length);for(let i=0;i<t.length;i++)r.grid.getColumnIndex(r.columns[i].id)===void 0?t[i]=r.columns[i]:t[i]=e.shift();r._columns=t}class _r{constructor(e,t,i){var s,n;this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._areVisibleColumnDifferent=!1,this._columns=[],this._gridUid="",this._menuElm=null,this._columnCheckboxes=[],this._defaults={hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",minHeight:150,syncResizeTitle:"Synchronous resize",headerColumnValueExtractor:o=>_t(o.columnPickerLabel||o.name||"","innerHTML")},this._bindEventService=new Pe,this.onColumnsChanged=new P("onColumnsChanged"),this._eventHandler=new pe,this._columns=this.sharedService.allColumns??[],this._gridUid=((n=(s=this.grid)==null?void 0:s.getUID)==null?void 0:n.call(s))??"",this.init()}get addonOptions(){return this.gridOptions.columnPicker||{}}get eventHandler(){return this._eventHandler}get columns(){return this._columns}set columns(e){this._columns=e}get gridOptions(){return this.sharedService.gridOptions??{}}get grid(){return this.sharedService.slickGrid}get menuElement(){return this._menuElm}init(){this._gridUid=this.grid.getUID()??"",this.gridOptions.columnPicker={...this._defaults,...this.gridOptions.columnPicker},this.onColumnsChanged.setPubSubService(this.pubSubService),this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker"),this._eventHandler.subscribe(this.grid.onPreHeaderContextMenu,e=>{["slick-column-name","slick-header-column"].some(t=>{var i;return(i=e.target)==null?void 0:i.classList.contains(t)})&&this.handleHeaderContextMenu(e)}),this._eventHandler.subscribe(this.grid.onHeaderContextMenu,this.handleHeaderContextMenu.bind(this)),this._eventHandler.subscribe(this.grid.onColumnsReordered,$s.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.disposeMenu.bind(this)),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this),void 0,"body"),this._bindEventService.bind(document.body,"beforeunload",this.dispose.bind(this),void 0,"body")}dispose(){this._eventHandler.unsubscribeAll(),this._bindEventService.unbindAll(),this.disposeMenu()}disposeMenu(){var e,t;this._bindEventService.unbindAll("parent-menu"),(e=this._listElm)==null||e.remove(),(t=this._menuElm)==null||t.remove(),this._menuElm=null}createPickerMenu(){const e=v("div",{ariaExpanded:"true",className:`slick-column-picker ${this._gridUid}`,role:"menu"});return $s.call(this),oa.call(this,e),ra.call(this,e),this._listElm=v("div",{className:"slick-column-picker-list",role:"menu"}),this._bindEventService.bind(e,"click",la.bind(this),void 0,"parent-menu"),document.body.appendChild(e),e}getAllColumns(){return this._columns}getVisibleColumns(){return this.grid.getColumns()}translateColumnPicker(){this.addonOptions&&(this.addonOptions.columnTitle="",this.addonOptions.forceFitTitle="",this.addonOptions.syncResizeTitle="",this.addonOptions.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","columnPicker"),this.addonOptions.forceFitTitle=this.extensionUtility.getPickerTitleOutputString("forceFitTitle","columnPicker"),this.addonOptions.syncResizeTitle=this.extensionUtility.getPickerTitleOutputString("syncResizeTitle","columnPicker")),this.extensionUtility.translateItems(this._columns,"nameKey","name"),this.translateTitleLabels(this.addonOptions)}handleBodyMouseDown(e){var t;(this._menuElm!==e.target&&!((t=this._menuElm)!=null&&t.contains(e.target))||e.target.className==="close"&&e.target.closest(".slick-column-picker"))&&this.disposeMenu()}handleHeaderContextMenu(e){e.preventDefault(),ee(this._menuElm),this._columnCheckboxes=[],this._menuElm=this.createPickerMenu(),this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),ha.call(this,this.addonOptions),document.body.appendChild(this._menuElm),this.repositionMenu(e)}repositionMenu(e){var i;const t=((i=e==null?void 0:e.touches)==null?void 0:i[0])??e;if(this._menuElm){const s=this.grid.getGridPosition(),n=this._menuElm.clientWidth||0;let o=t.pageX||0;s!=null&&s.width&&o+n>=s.width&&(o=o-n),this._menuElm.style.top=`${t.pageY-10}px`,this._menuElm.style.left=`${o}px`,this._menuElm.style.minHeight=Pt(this.addonOptions.minHeight,""),this._menuElm.style.maxHeight=Pt(this.addonOptions.maxHeight,`${window.innerHeight-t.clientY}px`),this._menuElm.style.display="block",this._menuElm.ariaExpanded="true",this._menuElm.appendChild(this._listElm)}}translateTitleLabels(e){e&&(e.columnTitle=this.extensionUtility.getPickerTitleOutputString("columnTitle","gridMenu"))}}const Ws=(r,e,t,i,s,n)=>{const o=i.params||{};if(!o.formatters||!Array.isArray(o.formatters))throw new Error(`[Slickgrid-Universal] The multiple formatter requires the "formatters" to be provided as a column params.
|
|
12
12
|
For example: this.columnDefinitions = [{ id: title, field: title, formatter: Formatters.multiple, params: { formatters: [Formatters.lowercase, Formatters.uppercase] }`);const l=o.formatters;let a=t;return l.forEach((h,d)=>{if(typeof h!="function")throw new Error(`[Slickgrid-Universal] the "params.formatters" at index(${d}) to be used by "Formatters.multiple" is invalid, please verify all formatter functions.`);a=h.call(void 0,r,e,a,i,s,n)}),a};function da(r,e){if(Array.isArray(r)){for(const t of r)if(t.editor)if(t.formatter&&t.formatter!==Ws&&t.formatter!==e){const i=t.formatter;t.formatter=Ws,t.params={...t.params,formatters:[i,e]}}else t.formatter&&t.formatter===Ws&&t.params?t.params.formatters.findIndex(i=>i===e)===-1&&(t.params.formatters=[...t.params.formatters,e]):t.formatter=e}}function Se(r,e,t,i){let s,n,o="",l="";switch(t){case"currency":s=R.DEFAULT_FORMATTER_CURRENCY_MIN_DECIMAL,n=R.DEFAULT_FORMATTER_CURRENCY_MAX_DECIMAL;break;case"decimal":s=R.DEFAULT_FORMATTER_NUMBER_MIN_DECIMAL,n=R.DEFAULT_FORMATTER_NUMBER_MAX_DECIMAL;break;case"percent":s=R.DEFAULT_FORMATTER_PERCENT_MIN_DECIMAL,n=R.DEFAULT_FORMATTER_PERCENT_MAX_DECIMAL;break}const a=e&&typeof e.getOptions=="function"?e.getOptions():{},h=wt("minDecimal",r,a,s),d=wt("maxDecimal",r,a,n),c=wt("decimalSeparator",r,a,R.DEFAULT_NUMBER_DECIMAL_SEPARATOR),u=wt("thousandSeparator",r,a,R.DEFAULT_NUMBER_THOUSAND_SEPARATOR),p=wt("displayNegativeNumberWithParentheses",r,a,R.DEFAULT_NEGATIVE_NUMBER_WRAPPED_IN_BRAQUET),m=wt("currencyPrefix",r,a,""),f=wt("currencySuffix",r,a,"");return i==="cell"&&(o=wt("numberPrefix",r,a,""),l=wt("numberSuffix",r,a,"")),{minDecimal:h,maxDecimal:d,decimalSeparator:c,thousandSeparator:u,wrapNegativeNumber:p,currencyPrefix:m,currencySuffix:f,numberPrefix:o,numberSuffix:l}}function wt(r,e,t,i){var n;const s=e&&e.params;return s&&s.hasOwnProperty(r)?s[r]:(n=t==null?void 0:t.formatterOptions)!=null&&n.hasOwnProperty(r)?t.formatterOptions[r]:i}function ye(r,e){const t=Ke(r,{withZeroPadding:!0});return(i,s,n,o,l,a)=>{var g,_;const h=a&&typeof a.getOptions=="function"?a.getOptions():{},d=((g=h==null?void 0:h.formatterOptions)==null?void 0:g.dateSeparator)??e,c=(o==null?void 0:o.type)??w.date,u=Ke(c,{withDefaultIso8601:!0}),p=((_=o==null?void 0:o.params)==null?void 0:_.parseDateAsUtc)??!1,m=bt(n,u);let f=n;if(m){let C=m;p&&(C=Yh(m)),f=et(C,t,"en-US")}if(f&&d!==e){const C=new RegExp(e,"ig");f=f.replace(C,d)}return f}}function Cr(r,e,t,i,s,n){let o=!1;t!=null&&t.hasOwnProperty("exportWithFormatter")?o=!!t.exportWithFormatter:n!=null&&n.hasOwnProperty("exportWithFormatter")&&(o=!!n.exportWithFormatter);let l;i&&t.exportCustomFormatter?l=t.exportCustomFormatter:o&&t.formatter&&(l=t.formatter);const a=Gs(l,r,e,t,i,s);return n!=null&&n.sanitizeDataExport&&typeof a=="string"?we(a):a}function Gs(r,e,t,i,s,n){let o="",a=i.field||i.id||"";if(typeof i.field=="string"&&i.field.indexOf(".")>0){const d=i.field.split(".");a=d.length>0?d[0]:i.field}const h=s!=null&&s.hasOwnProperty(a)?s[a]:null;if(typeof r=="function"){const d=r(e,t,h,i,s,n),c=ei(d)?d:d.html||d.text;o=_t(c)}else o=s!=null&&s.hasOwnProperty(a)?h:"";return o==null&&(o=""),typeof o=="object"&&!(o instanceof Date)&&Object.entries(o).length===0&&(o=""),o}class Yc extends Zl{constructor(e,t,i,s){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.treeDataService=s,this._defaults={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:0,autoAlignSideOffset:0,hideMenuOnScroll:!1,optionShownOverColumnIds:[],commandShownOverColumnIds:[],subMenuOpenByEvent:"mouseover"},this.pluginName="ContextMenu",this._camelPluginName="contextMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-context-menu",this.init(i.gridOptions.contextMenu)}init(e){this._addonOptions={...this._defaults,...e};const t=this._addonOptions&&Array.isArray(this._addonOptions.commandItems)?this._addonOptions.commandItems:[];this._addonOptions.commandItems=[...t,...this.addMenuCustomCommands(t)],this._addonOptions={...this._addonOptions},this.sharedService.gridOptions.contextMenu=this._addonOptions,this.sortMenuItems(),this._eventHandler.subscribe(this.grid.onContextMenu,this.handleOnContextMenu.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.hideMenu.bind(this)),this._addonOptions.hideMenuOnScroll&&this._eventHandler.subscribe(this.grid.onScroll,this.closeMenu.bind(this))}translateContextMenu(){var i;const e=((i=this.sharedService)==null?void 0:i.gridOptions)??{},t=this.sharedService.gridOptions.contextMenu;if(t&&(e!=null&&e.enableTranslate)){const s=t.commandItems||[],n=t.optionItems||[];t.commandTitleKey&&(t.commandTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(t.commandTitleKey,"TEXT_COMMANDS")||t.commandTitle),t.optionTitleKey&&(t.optionTitle=this.extensionUtility.translateWhenEnabledAndServiceExist(t.optionTitleKey,"TEXT_COMMANDS")||t.optionTitle),this.extensionUtility.translateMenuItemsFromTitleKey(s,"commandItems"),this.extensionUtility.translateMenuItemsFromTitleKey(n,"optionItems")}}handleOnContextMenu(e,t){this.disposeAllMenus();const i=this.grid.getCellFromEvent(e);if(i){const s=this.grid.getDataItem(i.row),n=this.grid.getColumns()[i.cell],o=t||{};if(o.cell=i.cell,o.row=i.row,o.column=n,o.dataContext=s,o.grid=this.grid,!this.extensionUtility.runOverrideFunctionWhenExists(this._addonOptions.menuUsabilityOverride,o))return;this._menuElm=this.createParentMenu(e),this._menuElm&&e.preventDefault(),this._menuElm&&this.gridOptions.darkMode&&this._menuElm.classList.add("slick-dark-mode"),this._menuElm&&(this.repositionMenu(e,this._menuElm),this._menuElm.ariaExpanded="true",this._menuElm.style.display="block"),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}}addMenuCustomCommands(e){var l;const t=[],i=this.sharedService&&this.sharedService.gridOptions||{},s=i==null?void 0:i.contextMenu,n=(l=this.sharedService)==null?void 0:l.dataView,o=lt(i);if(s&&!s.hideCopyCellValueCommand){const a="copy";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconCopyCellValueCommand||"mdi mdi-content-copy",titleKey:`${o}COPY`,disabled:!1,command:a,positionOrder:50,action:(h,d)=>{this.copyToClipboard(d)},itemUsabilityOverride:h=>{const d=h==null?void 0:h.column,c=h==null?void 0:h.dataContext;if(typeof d.queryFieldNameGetterFn=="function"){const u=Ni(d,c,"");if(u!==""&&u!==void 0)return!0}else if(d&&c.hasOwnProperty(d.field))return c[d.field]!==""&&c[d.field]!==null&&c[d.field]!==void 0;return!1}})}if(i!=null&&i.enableTextExport&&s&&!s.hideExportCsvCommand){const a="export-csv";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExportCsvCommand||"mdi mdi-download",titleKey:`${o}EXPORT_TO_CSV`,disabled:!1,command:a,positionOrder:51,action:()=>{var c;const d=(((c=this.sharedService)==null?void 0:c.externalRegisteredResources)||[]).find(u=>u.className==="TextExportService");if(d!=null&&d.exportToFile)d.exportToFile({delimiter:Ot.comma,format:ve.csv});else throw new Error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Context Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };")}})}if(i&&i.enableExcelExport&&s&&!s.hideExportExcelCommand){const a="export-excel";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExportExcelCommand||"mdi mdi-file-excel-outline text-success",titleKey:`${o}EXPORT_TO_EXCEL`,disabled:!1,command:a,positionOrder:52,action:()=>{var c;const d=(((c=this.sharedService)==null?void 0:c.externalRegisteredResources)||[]).find(u=>u.className==="ExcelExportService");if(d!=null&&d.exportToExcel)d.exportToExcel();else throw new Error("[Slickgrid-Universal] You must register the ExcelExportService to properly use Export to Excel in the Context Menu. Example:: this.gridOptions = { enableExcelExport: true, externalResources: [new ExcelExportService()] };")}})}if(i!=null&&i.enableTextExport&&s&&!s.hideExportTextDelimitedCommand){const a="export-text-delimited";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExportTextDelimitedCommand||"mdi mdi-download",titleKey:`${o}EXPORT_TO_TAB_DELIMITED`,disabled:!1,command:a,positionOrder:53,action:()=>{var c;const d=(((c=this.sharedService)==null?void 0:c.externalRegisteredResources)||[]).find(u=>u.className==="TextExportService");if(d!=null&&d.exportToFile)d.exportToFile({delimiter:Ot.tab,format:ve.txt});else throw new Error("[Slickgrid-Universal] You must register the TextExportService to properly use Export to File in the Context Menu. Example:: this.gridOptions = { enableTextExport: true, externalResources: [new TextExportService()] };")}})}if(i&&(i.enableGrouping||i.enableDraggableGrouping||i.enableTreeData)){if(s&&!s.hideCopyCellValueCommand&&t.push({divider:!0,command:"",positionOrder:54}),i&&!i.enableTreeData&&s&&!s.hideClearAllGrouping){const a="clear-grouping";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconClearGroupingCommand||"mdi mdi-close",titleKey:`${o}CLEAR_ALL_GROUPING`,disabled:!1,command:a,positionOrder:55,action:()=>{n.setGrouping([]),this.pubSubService.publish("onContextMenuClearGrouping")},itemUsabilityOverride:()=>{const h=n&&n.getGrouping&&n.getGrouping();return Array.isArray(h)&&h.length>0}})}if(i&&s&&!s.hideCollapseAllGroups){const a="collapse-all-groups";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconCollapseAllGroupsCommand||"mdi mdi-arrow-collapse",titleKey:`${o}COLLAPSE_ALL_GROUPS`,disabled:!1,command:a,positionOrder:56,action:()=>{i.enableTreeData?this.treeDataService.toggleTreeDataCollapse(!0):n.collapseAllGroups(),this.pubSubService.publish("onContextMenuCollapseAllGroups")},itemUsabilityOverride:()=>{if(i.enableTreeData)return!0;const h=n&&n.getGrouping&&n.getGrouping();return Array.isArray(h)&&h.length>0}})}if(i&&s&&!s.hideExpandAllGroups){const a="expand-all-groups";e.some(h=>h!=="divider"&&h.hasOwnProperty("command")&&h.command===a)||t.push({iconCssClass:s.iconExpandAllGroupsCommand||"mdi mdi-arrow-expand",titleKey:`${o}EXPAND_ALL_GROUPS`,disabled:!1,command:a,positionOrder:57,action:()=>{i.enableTreeData?this.treeDataService.toggleTreeDataCollapse(!1):n.expandAllGroups(),this.pubSubService.publish("onContextMenuExpandAllGroups")},itemUsabilityOverride:()=>{if(i.enableTreeData)return!0;const h=n&&n.getGrouping&&n.getGrouping();return Array.isArray(h)&&h.length>0}})}}return this.extensionUtility.translateMenuItemsFromTitleKey(t),t}copyToClipboard(e){var t,i;try{if(e&&e.grid&&e.command){const s=((t=this.sharedService)==null?void 0:t.gridOptions)??{},n=(e==null?void 0:e.cell)??0,o=(e==null?void 0:e.row)??0,l=e==null?void 0:e.column,a=e==null?void 0:e.dataContext,h=(i=this.sharedService)==null?void 0:i.slickGrid,d=s&&(s.excelExportOptions||s.textExportOptions);let c=Cr(o,n,l,a,h,d);typeof l.queryFieldNameGetterFn=="function"&&(c=Ni(l,a,""));let u=c;typeof c=="string"&&(u=c.replace(/^([·|⮞|⮟]\s*)|([·|⮞|⮟])\s*/gi,"").replace(/[\u00b7|\u034f]/gi,"").trim());const p=document.createElement("textarea");p&&document.body&&(p.style.position="absolute",p.style.opacity="0",p.value=u,document.body.appendChild(p),p.select(),document.execCommand("copy",!1,u)&&p.remove())}}catch{}}sortMenuItems(){var t,i;const e=(i=(t=this.sharedService)==null?void 0:t.gridOptions)==null?void 0:i.contextMenu;e&&(this.extensionUtility.sortItems(e.commandItems||[],"positionOrder"),this.extensionUtility.sortItems(e.optionItems||[],"positionOrder"))}}class qc{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this.columnsGroupBy=[],this.pluginName="DraggableGrouping",this._gridColumns=[],this._gridUid="",this._isInitialized=!1,this._reorderedColumns=[],this._subscriptions=[],this._defaults={dropPlaceHolderText:"Drop a column header here to group by the column",hideGroupSortIcons:!1,hideToggleAllButton:!1,toggleAllButtonText:"",toggleAllPlaceholderText:"Toggle all Groups"},this._bindingEventService=new Pe,this.onGroupChanged=new P("onGroupChanged"),this._eventHandler=new pe}get addonOptions(){return this._addonOptions}get dataView(){var e;return((e=this.grid)==null?void 0:e.getData())??{}}get dropboxElement(){return this._dropzoneElm}get droppableInstance(){return this._droppableInstance}get sortableLeftInstance(){return this._sortableLeftInstance}get sortableRightInstance(){return this._sortableRightInstance}get eventHandler(){return this._eventHandler}get grid(){return this._grid??this.sharedService.slickGrid??{}}get gridOptions(){return this.sharedService.gridOptions??{}}get gridUid(){var e;return this._gridUid||(((e=this.grid)==null?void 0:e.getUID())??"")}get gridContainer(){return this.grid.getContainerNode()}set isInitialized(e){this._isInitialized=e}init(e,t){var i,s;if(this._addonOptions={...this._defaults,...t},this._grid=e,e){if(this._gridUid=e.getUID(),this._gridColumns=e.getColumns(),this._dropzoneElm=e.getTopHeaderPanel()||e.getPreHeaderPanel(),!this._dropzoneElm)throw new Error("[Slickgrid-Universal] Draggable Grouping requires the pre-header to be created and shown for the plugin to work correctly (use `createPreHeaderPanel` and `showPreHeaderPanel`).");if(this._dropzoneElm.classList.add("slick-dropzone"),this.onGroupChanged.setPubSubService(this.pubSubService),!this._addonOptions.hideToggleAllButton){this._groupToggler=v("div",{className:"slick-group-toggle-all",title:this._addonOptions.toggleAllPlaceholderText??"",style:{display:"none"}});const n=v("span",{className:"slick-group-toggle-all-icon"},this._groupToggler);this.gridOptions.enableTranslate&&this._addonOptions.toggleAllButtonTextKey&&(this._addonOptions.toggleAllButtonText=this.extensionUtility.translateWhenEnabledAndServiceExist(this._addonOptions.toggleAllButtonTextKey,"TEXT_TOGGLE_ALL_GROUPS")),this.gridOptions.enableTranslate&&this._addonOptions.toggleAllPlaceholderTextKey&&(this._addonOptions.toggleAllPlaceholderText=this.extensionUtility.translateWhenEnabledAndServiceExist(this._addonOptions.toggleAllPlaceholderTextKey,"TEXT_TOGGLE_ALL_GROUPS")),this._groupToggler.title=this._addonOptions.toggleAllPlaceholderText??"",this._addonOptions.toggleAllButtonText&&this._groupToggler.appendChild(v("span",{className:"slick-group-toggle-all-text",textContent:this._addonOptions.toggleAllButtonText||""})),this._dropzoneElm.appendChild(this._groupToggler),this._subscriptions.push(this.pubSubService.subscribe("onContextMenuCollapseAllGroups",()=>this.toggleGroupToggler(n,!0,!1)),this.pubSubService.subscribe("onContextMenuExpandAllGroups",()=>this.toggleGroupToggler(n,!1,!1)))}this._dropzonePlaceholderElm=v("div",{className:"slick-draggable-dropzone-placeholder"},this._dropzoneElm),this.gridOptions.enableTranslate&&((i=this._addonOptions)!=null&&i.dropPlaceHolderTextKey)&&(this._addonOptions.dropPlaceHolderText=this.extensionUtility.translateWhenEnabledAndServiceExist(this._addonOptions.dropPlaceHolderTextKey,"TEXT_TOGGLE_ALL_GROUPS")),this._dropzonePlaceholderElm.textContent=((s=this._addonOptions)==null?void 0:s.dropPlaceHolderText)??this._defaults.dropPlaceHolderText??"",this.setupColumnDropbox(),this._eventHandler.subscribe(e.onHeaderCellRendered,(n,o)=>{var a;const l=o.node;if(!Tn((a=o.column)==null?void 0:a.grouping)&&l&&(l.style.cursor="pointer",this._addonOptions.groupIconCssClass)){const h=v("span",{className:"slick-column-groupable"},l);this._addonOptions.groupIconCssClass&&h.classList.add(...he(this._addonOptions.groupIconCssClass))}}),this._subscriptions.push(this.pubSubService.subscribe("onContextMenuClearGrouping",()=>this.clearDroppedGroups()));for(const n of this._gridColumns){const o=n.field;e.updateColumnHeader(o)}}return this}dispose(){var e,t;this.destroySortableInstances(),(e=this._droppableInstance)!=null&&e.el&&((t=this._droppableInstance)==null||t.destroy()),this.onGroupChanged.unsubscribe(),this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions),this._bindingEventService.unbindAll(),ee(this.gridContainer.querySelector(`.${this.gridUid} .slick-preheader-panel,.${this.gridUid} .slick-topheader-panel`))}clearDroppedGroups(){this.columnsGroupBy=[],this.updateGroupBy("clear-all");const e=this._dropzoneElm.querySelectorAll(".slick-dropped-grouping");for(const t of Array.from(e)){const i=this._dropzoneElm.querySelector(".slick-groupby-remove");i==null||i.remove(),t==null||t.remove()}this._dropzonePlaceholderElm.style.display="inline-block",this._groupToggler&&(this._groupToggler.style.display="none")}destroySortableInstances(){var e,t,i,s;(e=this._sortableLeftInstance)!=null&&e.el&&((t=this._sortableLeftInstance)==null||t.destroy()),(i=this._sortableRightInstance)!=null&&i.el&&((s=this._sortableRightInstance)==null||s.destroy())}setAddonOptions(e){this._addonOptions={...this._addonOptions,...e}}setColumns(e){this._gridColumns=e}setDroppedGroups(e){this._dropzonePlaceholderElm.style.display="none";const t=Array.isArray(e)?e:[e];for(const i of t){const s=this.grid.getHeaderColumn(i);this.handleGroupByDrop(this._dropzoneElm,s)}}setupColumnReorder(e,t,i,s,n,o,l,a,h){this.destroySortableInstances();const d=e.getTopHeaderPanel()||e.getPreHeaderPanel(),c=d.querySelector(".slick-draggable-dropzone-placeholder"),u=d.querySelector(".slick-group-toggle-all"),p={animation:50,ghostClass:"slick-sortable-placeholder",draggable:".slick-header-column",dataIdAttr:"data-id",group:{name:"shared",pull:"clone",put:!1},revertClone:!0,onStart:m=>{m.item.classList.add("slick-header-column-active"),c&&(c.style.display="inline-block"),d.querySelectorAll(".slick-dropped-grouping").forEach(g=>g.style.display="none"),u&&(u.style.display="none")},onEnd:m=>{var b,S,E;m.item.classList.remove("slick-header-column-active"),d==null||d.classList.remove("slick-dropzone-hover"),(b=c==null?void 0:c.parentElement)==null||b.classList.remove("slick-dropzone-placeholder-hover");const f=d.querySelectorAll(".slick-dropped-grouping");if(f.forEach(y=>y.style.display="flex"),f.length&&(c&&(c.style.display="none"),u&&(u.style.display="inline-flex")),!e.getEditorLock().commitCurrentEdit())return;const g=((S=this.sortableLeftInstance)==null?void 0:S.toArray())??[];if(t.length>1){const y=((E=this._sortableRightInstance)==null?void 0:E.toArray())??[];for(const x of y)g.push(x)}const _=[],C=e.getColumns();for(const y of g)_.push(C[l.call(e,y)]);s.call(e,_),h.call(e,e.onColumnsReordered,{grid:e,impactedColumns:_}),m.stopPropagation(),n.call(e)}};return this._sortableLeftInstance=B.create(this.gridContainer.querySelector(`.${e.getUID()} .slick-header-columns.slick-header-columns-left`),p),this._sortableRightInstance=B.create(this.gridContainer.querySelector(`.${e.getUID()} .slick-header-columns.slick-header-columns-right`),p),this._addonOptions.initialGroupBy&&!this._isInitialized&&this.setDroppedGroups(this._addonOptions.initialGroupBy),this._isInitialized=!0,{sortableLeftInstance:this._sortableLeftInstance,sortableRightInstance:this._sortableRightInstance}}addColumnGroupBy(e){this.columnsGroupBy.push(e),this.updateGroupBy("add-group")}addGroupByRemoveClickHandler(e,t,i,s){this._bindingEventService.bind(t,"click",()=>{const n=this._bindingEventService.boundedEvents.filter(o=>o.element===t);for(const o of n)this._bindingEventService.unbind(o.element,"click",o.listener);this.removeGroupBy(e,i,s)})}addGroupSortClickHandler(e,t){const{grouping:i,type:s}=e;this._bindingEventService.bind(t,"click",()=>{if(this.toggleGroupAll(e,!1),i){const n=i.sortAsc?ae.desc:ae.asc;i.comparer=(o,l)=>_i(s||"text",o.value,l.value,n,e,this.gridOptions),this.getGroupBySortIcon(t,!i.sortAsc),this.updateGroupBy("sort-group"),i.sortAsc=!i.sortAsc,this.grid.invalidate()}})}getGroupBySortIcon(e,t=!0){t?this._addonOptions.sortAscIconCssClass?(e.classList.remove(...he(this._addonOptions.sortDescIconCssClass)),e.classList.add(...he(this._addonOptions.sortAscIconCssClass))):(e.classList.add("slick-groupby-sort-asc-icon"),e.classList.remove("slick-groupby-sort-desc-icon")):this._addonOptions.sortDescIconCssClass?(e.classList.remove(...he(this._addonOptions.sortAscIconCssClass)),e.classList.add(...he(this._addonOptions.sortDescIconCssClass))):this._addonOptions.sortDescIconCssClass||(e.classList.add("slick-groupby-sort-desc-icon"),e.classList.remove("slick-groupby-sort-asc-icon"))}handleGroupByDrop(e,t){var n,o,l;const i=(n=t.getAttribute("data-id"))==null?void 0:n.replace(this._gridUid,"");let s=!0;for(const a of this.columnsGroupBy)a.id===i&&(s=!1);if(s){for(const a of this._gridColumns)if(a.id===i&&a.grouping&&!Tn(a.grouping)){const h=t.querySelector(".slick-column-name"),d=v("div",{id:`${this._gridUid}_${a.id}_entry`,className:"slick-dropped-grouping",dataset:{id:`${a.id}`}});v("div",{className:"slick-dropped-grouping-title",style:{display:"inline-flex"},textContent:h?h.textContent:t.textContent},d);const c=v("div",{className:"slick-groupby-remove"});this._addonOptions.deleteIconCssClass&&c.classList.add(...he(this._addonOptions.deleteIconCssClass)),this._addonOptions.deleteIconCssClass||c.classList.add("slick-groupby-remove-icon");let u;((o=this._addonOptions)==null?void 0:o.hideGroupSortIcons)!==!0&&a.sortable&&(((l=a.grouping)==null?void 0:l.sortAsc)===void 0&&(a.grouping.sortAsc=!0),u=v("div",{className:"slick-groupby-sort"},d),this.getGroupBySortIcon(u,a.grouping.sortAsc)),d.appendChild(c),d.appendChild(document.createElement("div")),e.appendChild(d),this._groupToggler&&this.columnsGroupBy.length===0&&this.toggleGroupAll(a),this.addColumnGroupBy(a),this.addGroupByRemoveClickHandler(a.id,c,t,d),u&&this.addGroupSortClickHandler(a,u)}this._groupToggler&&this.columnsGroupBy.length>0&&(this._groupToggler.style.display="inline-flex")}}toggleGroupAll({grouping:e},t){var s;const i=(s=this._groupToggler)==null?void 0:s.querySelector(".slick-group-toggle-all-icon");t===!0||e!=null&&e.collapsed?(i==null||i.classList.add("collapsed"),i==null||i.classList.remove("expanded")):(i==null||i.classList.add("expanded"),i==null||i.classList.remove("collapsed"))}removeFromArray(e,t){if(Array.isArray(e)){const i=e.findIndex(s=>s.id===t.id);i>=0&&e.splice(i,1)}return e}removeGroupBy(e,t,i){i.remove();const s=[];this._gridColumns.forEach(n=>s[n.id]=n),this.removeFromArray(this.columnsGroupBy,s[e]),this.columnsGroupBy.length===0&&(this._dropzonePlaceholderElm.style.display="inline-block",this._groupToggler&&(this._groupToggler.style.display="none")),this.updateGroupBy("remove-group")}addDragOverDropzoneListeners(){const e=this._dropzoneElm.querySelector(".slick-draggable-dropzone-placeholder");e&&this._dropzoneElm&&(this._bindingEventService.bind(e,"dragover",t=>t.preventDefault()),this._bindingEventService.bind(e,"dragenter",()=>this._dropzoneElm.classList.add("slick-dropzone-hover")),this._bindingEventService.bind(e,"dragleave",()=>this._dropzoneElm.classList.remove("slick-dropzone-hover")))}setupColumnDropbox(){const e=this._dropzoneElm;this._droppableInstance=B.create(e,{group:"shared",ghostClass:"slick-droppable-sortitem-hover",draggable:".slick-dropped-grouping",dragoverBubble:!0,onAdd:t=>{var s,n;const i=t.item;(s=i.getAttribute("id"))!=null&&s.replace(this._gridUid,"")&&this.handleGroupByDrop(e,B.utils.clone(t.item)),(n=i.parentNode)==null||n.removeChild(i)},onUpdate:()=>{var s;const t=((s=this._droppableInstance)==null?void 0:s.toArray())??[],i=[];for(const n of t)for(const o of this.columnsGroupBy)if(o.id===n){i.push(o);break}this.columnsGroupBy=i,this.updateGroupBy("sort-group")}}),this.addDragOverDropzoneListeners(),this._groupToggler&&this._bindingEventService.bind(this._groupToggler,"click",t=>{const i=t.target.classList.contains("slick-group-toggle-all-icon")?t.target:t.currentTarget.querySelector(".slick-group-toggle-all-icon");this.toggleGroupToggler(i,i==null?void 0:i.classList.contains("expanded"))})}toggleGroupToggler(e,t=!0,i=!0){e&&(t===!0?(e.classList.add("collapsed"),e.classList.remove("expanded"),i&&this.dataView.collapseAllGroups()):(e.classList.remove("collapsed"),e.classList.add("expanded"),i&&this.dataView.expandAllGroups()))}updateGroupBy(e){if(this.columnsGroupBy.length===0){this.dataView.setGrouping([]),this._dropzonePlaceholderElm.style.display="inline-block",this.triggerOnGroupChangedEvent({caller:e,groupColumns:[]});return}const t=[];this.columnsGroupBy.forEach(i=>t.push(i.grouping)),this.dataView.setGrouping(t),this._dropzonePlaceholderElm.style.display="none",this.triggerOnGroupChangedEvent({caller:e,groupColumns:t})}triggerOnGroupChangedEvent(e){this._addonOptions&&typeof this._addonOptions.onGroupChanged=="function"&&this._addonOptions.onGroupChanged(new le,e),this.onGroupChanged.notify(e)}}class Kc extends zs{constructor(e,t,i){super(e,t,i),this.extensionUtility=e,this.pubSubService=t,this.sharedService=i,this._buttonElms=[],this._defaults={buttonCssClass:"slick-header-button"},this.pluginName="HeaderButtons",this._menuCssPrefix="slick-header-button",this._camelPluginName="headerButtons",this._bindEventService=new Pe,this._eventHandler=new pe,this.init(i.gridOptions.headerButton)}get addonOptions(){return this._addonOptions}set addonOptions(e){this._addonOptions=e}get eventHandler(){return this._eventHandler}get grid(){return this.sharedService.slickGrid}init(e){this._addonOptions={...this._defaults,...e},this._eventHandler.subscribe(this.grid.onHeaderCellRendered,this.handleHeaderCellRendered.bind(this)),this._eventHandler.subscribe(this.grid.onBeforeHeaderCellDestroy,this.handleBeforeHeaderCellDestroy.bind(this)),this.grid.setColumns(this.grid.getColumns())}dispose(){super.dispose(),this._buttonElms.forEach(e=>e.remove())}handleHeaderCellRendered(e,t){var s;const i=t.column;if((s=i.header)!=null&&s.buttons&&Array.isArray(i.header.buttons)){let n=i.header.buttons.length;for(;n--;){const o=i.header.buttons[n],l=this.populateSingleCommandOrOptionItem("command",this.addonOptions,null,o,t,this.handleButtonClick.bind(this));l&&o.handler&&!o.disabled&&this._bindEventService.bind(l,"click",a=>o.handler.call(this,a)),l&&(this._buttonElms.push(l),t.node.appendChild(l))}}}handleBeforeHeaderCellDestroy(e,t){var s,n,o;if((s=t.column.header)!=null&&s.buttons&&((n=this._addonOptions)!=null&&n.buttonCssClass)){const l=(((o=this._addonOptions)==null?void 0:o.buttonCssClass)||"").replace(/(\s+)/g,".");l&&t.node.querySelectorAll(`.${l}`).forEach(a=>a.remove())}}handleButtonClick(e,t,i,s,n){var o;if(i.command&&!i.disabled){const l=i.command||"",a={grid:this.grid,column:n,button:i};l&&(a.command=l),typeof i.action=="function"&&!i.disabled&&i.action.call(this,e,a),l!==null&&!i.disabled&&((o=this._addonOptions)!=null&&o.onCommand)&&(this.pubSubService.publish("onHeaderButtonCommand",a),this._addonOptions.onCommand(e,a),n!=null&&n.id&&this.grid.updateColumnHeader(n.id))}e.preventDefault(),e.stopPropagation()}}class Xc extends zs{constructor(e,t,i,s,n){super(e,i,s),this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this._subMenuParentId="",this._defaults={autoAlign:!0,autoAlignOffset:0,buttonCssClass:null,buttonImage:null,minWidth:100,hideColumnHideCommand:!1,hideSortCommands:!1,title:"",subMenuOpenByEvent:"mouseover"},this.pluginName="HeaderMenu",this._menuCssPrefix="slick-menu",this._menuPluginCssPrefix="slick-header-menu",this._camelPluginName="headerMenu",this.sharedService.gridOptions.headerMenu=this.addHeaderMenuCustomCommands(this.sharedService.columnDefinitions),this.init(s.gridOptions.headerMenu)}init(e){this._addonOptions={...this._defaults,...e},this._eventHandler.subscribe(this.grid.onBeforeSetColumns,(t,i)=>{this.sharedService.gridOptions.headerMenu=this.addHeaderMenuCustomCommands(i.newColumns)}),this._eventHandler.subscribe(this.grid.onHeaderCellRendered,this.handleHeaderCellRendered.bind(this)),this._eventHandler.subscribe(this.grid.onBeforeHeaderCellDestroy,this.handleBeforeHeaderCellDestroy.bind(this)),this._eventHandler.subscribe(this.grid.onClick,this.hideMenu.bind(this)),this.grid.setColumns(this.grid.getColumns()),this._bindEventService.bind(document.body,"mousedown",this.handleBodyMouseDown.bind(this))}dispose(){var e;super.dispose(),this._menuElm=this._menuElm||document.body.querySelector(`.slick-header-menu${this.gridUidSelector}`),(e=this._menuElm)==null||e.remove(),this._activeHeaderColumnElm=void 0}hideColumn(e){var t,i;if((i=(t=this.sharedService)==null?void 0:t.slickGrid)!=null&&i.getColumnIndex){const s=this.sharedService.slickGrid.getColumnIndex(e.id),n=this.sharedService.slickGrid.getColumns(),o=this.sharedService.gridOptions.frozenColumn??-1;o>=0&&o>=s&&(this.sharedService.gridOptions.frozenColumn=o-1,this.sharedService.slickGrid.setOptions({frozenColumn:this.sharedService.gridOptions.frozenColumn}));const l=En(n,s);this.sharedService.visibleColumns=l,this.sharedService.slickGrid.setColumns(l),this.pubSubService.publish("onHeaderMenuHideColumns",{columns:l,hiddenColumn:e})}}hideMenu(){var e;this.disposeSubMenus(),(e=this._menuElm)==null||e.remove(),this._menuElm=void 0}repositionSubMenu(e,t,i,s){const n=this.createCommandMenu(t.commandItems||[],s,i+1,t);document.body.appendChild(n),this.repositionMenu(e,n)}repositionMenu(e,t){var p,m;const i=e.target,s=t.classList.contains("slick-submenu"),n=s?e.target.closest(".slick-menu-item"):i,o=this.sharedService.gridContainerElement.classList.contains("slickgrid-container")?this.sharedService.gridContainerElement:this.sharedService.gridContainerElement.querySelector(".slickgrid-container")??this.sharedService.gridContainerElement,l=co(o,i),a=this.grid.getGridPosition(),h=t.offsetWidth,d=ge(n);let c=s?d.left:(l==null?void 0:l.left)??0,u=s?d.top:((l==null?void 0:l.top)??0)+(((p=this.addonOptions)==null?void 0:p.menuOffsetTop)??0)+i.clientHeight;if(s){const f=(t==null?void 0:t.clientHeight)||0,{bottom:g,top:_}=Vi(n);(g<f&&_>g?"top":"bottom")==="top"?(t.classList.remove("dropdown"),t.classList.add("dropup"),u-=f-n.clientHeight):(t.classList.remove("dropup"),t.classList.add("dropdown"))}if(s&&n){const f=c+Number(h)+n.clientWidth,g=document.documentElement.clientWidth;(f>=a.width||f>=g?"left":"right")==="left"?(t.classList.remove("dropright"),t.classList.add("dropleft"),c-=h):(t.classList.remove("dropleft"),t.classList.add("dropright"),c+=n.offsetWidth)}else c=(l==null?void 0:l.left)??0,this.addonOptions.autoAlign&&(a!=null&&a.width)&&c+(t.clientWidth??0)>=a.width&&(c=c+i.clientWidth-t.clientWidth+(((m=this.addonOptions)==null?void 0:m.autoAlignOffset)||0));t.style.top=`${u}px`,t.style.left=`${c}px`}translateHeaderMenu(){var e;(e=this.sharedService.gridOptions)!=null&&e.headerMenu&&this.resetHeaderMenuTranslations(this.sharedService.visibleColumns)}handleHeaderCellRendered(e,t){var n;const s=(n=t.column.header)==null?void 0:n.menu;if(s&&t.node){if(!this.extensionUtility.runOverrideFunctionWhenExists(this.addonOptions.menuUsabilityOverride,t))return;const o=v("div",{className:"slick-header-menu-button",ariaLabel:"Header Menu"},t.node);this.addonOptions.buttonCssClass&&o.classList.add(...he(this.addonOptions.buttonCssClass)),this.addonOptions.tooltip&&(o.title=this.addonOptions.tooltip),this._bindEventService.bind(o,"click",l=>{this.disposeAllMenus(),this.createParentMenu(l,t.column,s)})}}handleBeforeHeaderCellDestroy(e,t){var s;(s=t.column.header)!=null&&s.menu&&t.node.querySelectorAll(".slick-header-menu-button").forEach(n=>n.remove())}handleBodyMouseDown(e){if(this.menuElement){let t=!1;const i=e.target.closest(`.${this.menuCssClass}`);(this.menuElement.contains(e.target)||i)&&(t=!0),(this._menuElm!==e.target&&!t&&!e.defaultPrevented||e.target.className==="close"&&i)&&this.hideMenu()}}handleMenuItemCommandClick(e,t,i,s=0,n){var o;if(i!=="divider"&&!i.disabled&&!i.divider)if((i.command||"")&&!i.commandItems){const a={grid:this.grid,command:i.command,column:n,item:i};this.executeHeaderMenuInternalCommands(e,a),this.pubSubService.publish("onHeaderMenuCommand",a),typeof((o=this.addonOptions)==null?void 0:o.onCommand)=="function"&&this.addonOptions.onCommand(e,a),typeof i.action=="function"&&i.action.call(this,e,a),e.defaultPrevented||this.hideMenu(),e.preventDefault(),e.stopPropagation()}else i.commandItems&&this.repositionSubMenu(e,i,s,n)}handleMenuItemMouseOver(e,t,i,s=0,n){i!=="divider"&&!i.disabled&&!i.divider&&(i.commandItems?this.repositionSubMenu(e,i,s,n):s===0&&this.disposeSubMenus())}addHeaderMenuCustomCommands(e){const t=this.sharedService.gridOptions,i=t.headerMenu||{},s=lt(t);return Array.isArray(e)&&t.enableHeaderMenu&&e.forEach(n=>{var o,l,a;if(n&&!n.excludeFromHeaderMenu){n.header?n.header.menu||(n.header.menu={commandItems:[]}):n.header={menu:{commandItems:[]}};const h=((l=(o=n==null?void 0:n.header)==null?void 0:o.menu)==null?void 0:l.commandItems)??[];let d=!1;if(i&&!i.hideFreezeColumnsCommand&&(d=!0,h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="freeze-columns")||h.push({iconCssClass:i.iconFreezeColumns||"mdi mdi-pin-outline",titleKey:`${s}FREEZE_COLUMNS`,command:"freeze-columns",positionOrder:45})),i&&!i.hideColumnResizeByContentCommand&&this.sharedService.gridOptions.enableColumnResizeOnDoubleClick&&(d=!0,h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="column-resize-by-content")||h.push({iconCssClass:i.iconColumnResizeByContentCommand||"mdi mdi-arrow-expand-horizontal",titleKey:`${s}COLUMN_RESIZE_BY_CONTENT`,command:"column-resize-by-content",positionOrder:47})),d&&!h.some(c=>c!=="divider"&&c.positionOrder===48)&&h.push({divider:!0,command:"",positionOrder:48}),t.enableSorting&&n.sortable&&i&&!i.hideSortCommands&&(h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="sort-asc")||h.push({iconCssClass:i.iconSortAscCommand||"mdi mdi-sort-ascending",titleKey:`${s}SORT_ASCENDING`,command:"sort-asc",positionOrder:50}),h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="sort-desc")||h.push({iconCssClass:i.iconSortDescCommand||"mdi mdi-sort-descending",titleKey:`${s}SORT_DESCENDING`,command:"sort-desc",positionOrder:51}),h.some(c=>c!=="divider"&&c.positionOrder===52)||h.push({divider:!0,command:"",positionOrder:52}),!i.hideClearSortCommand&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="clear-sort")&&h.push({iconCssClass:i.iconClearSortCommand||"mdi mdi-sort-variant-off",titleKey:`${s}REMOVE_SORT`,command:"clear-sort",positionOrder:58})),(a=n.filter)!=null&&a.filterShortcuts&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="filter-shortcuts-root-menu")){const c=[];n.filter.filterShortcuts.forEach(p=>{const m=p.title?fi(p.title):(p.titleKey||"").toLowerCase().replaceAll("_","-");c.push({...p,command:m,action:(f,g)=>{const _=this.filterService.getFiltersMetadata().find(C=>C.columnDef.id===g.column.id);_==null||_.setValues(p.searchTerms,p.operator,!0)}})});const u=i.filterShortcutsPositionOrder??55;h.push({iconCssClass:i.iconFilterShortcutSubMenu||"mdi mdi-filter-outline",titleKey:`${s}FILTER_SHORTCUTS`,command:"filter-shortcuts-root-menu",positionOrder:u,commandItems:c}),d&&!h.some(p=>p!=="divider"&&p.positionOrder===u+1)&&h.push({divider:!0,command:"",positionOrder:u+1})}t.enableFiltering&&n.filterable&&i&&!i.hideFilterCommand&&!i.hideClearFilterCommand&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="clear-filter")&&h.push({iconCssClass:i.iconClearFilterCommand||"mdi mdi-filter-remove-outline",titleKey:`${s}REMOVE_FILTER`,command:"clear-filter",positionOrder:57}),i&&!i.hideColumnHideCommand&&!h.some(c=>c!=="divider"&&(c==null?void 0:c.command)==="hide-column")&&h.push({iconCssClass:i.iconColumnHideCommand||"mdi mdi-close",titleKey:`${s}HIDE_COLUMN`,command:"hide-column",positionOrder:59}),this.extensionUtility.translateMenuItemsFromTitleKey(h),this.extensionUtility.sortItems(h,"positionOrder")}}),i}clearColumnFilter(e,t){t!=null&&t.column&&this.filterService.clearFilterByColumnId(e,t.column.id)}clearColumnSort(e,t){t!=null&&t.column&&this.sharedService&&this.sortService.clearSortByColumnId(e,t.column.id)}executeHeaderMenuInternalCommands(e,t){var i;if(t!=null&&t.command)switch(t.command){case"hide-column":this.hideColumn(t.column),(i=this.sharedService.gridOptions)!=null&&i.enableAutoSizeColumns&&this.sharedService.slickGrid.autosizeColumns();break;case"clear-filter":this.clearColumnFilter(e,t);break;case"clear-sort":this.clearColumnSort(e,t);break;case"column-resize-by-content":this.pubSubService.publish("onHeaderMenuColumnResizeByContent",{columnId:t.column.id});break;case"freeze-columns":const s=[...this.sharedService.visibleColumns],o={frozenColumn:s.findIndex(d=>d.id===t.column.id),enableMouseWheelScrollHandler:!0},l=this.sharedService.slickGrid.getColumns();this.sharedService.slickGrid.setOptions(o,!1,!0),this.sharedService.gridOptions.frozenColumn=o.frozenColumn,this.sharedService.gridOptions.enableMouseWheelScrollHandler=o.enableMouseWheelScrollHandler,this.sharedService.frozenVisibleColumnId=t.column.id,this.sharedService.hasColumnsReordered||Array.isArray(s)&&Array.isArray(this.sharedService.allColumns)&&s.length!==this.sharedService.allColumns.length?this.sharedService.slickGrid.setColumns(s):this.sharedService.slickGrid.setColumns(l),this.sharedService.slickGrid.getOptions().enableAutoSizeColumns&&this.sharedService.slickGrid.autosizeColumns();break;case"sort-asc":case"sort-desc":const h=t.command==="sort-asc";this.sortColumn(e,t,h);break}}createParentMenu(e,t,i){var n,o,l,a,h;const s={grid:this.grid,column:t,menu:i};typeof e.stopPropagation=="function"&&(this.pubSubService.publish("onHeaderMenuBeforeMenuShow",s),typeof((n=this.addonOptions)==null?void 0:n.onBeforeMenuShow)=="function"&&((o=this.addonOptions)==null?void 0:o.onBeforeMenuShow(e,s))===!1)||(this._menuElm=this.createCommandMenu(i.commandItems,t),(l=this.grid.getContainerNode())==null||l.appendChild(this._menuElm),this.repositionMenu(e,this._menuElm),this.pubSubService.publish("onHeaderMenuAfterMenuShow",s),!(typeof((a=this.addonOptions)==null?void 0:a.onAfterMenuShow)=="function"&&((h=this.addonOptions)==null?void 0:h.onAfterMenuShow(e,s))===!1)&&(e.preventDefault(),e.stopPropagation()))}createCommandMenu(e,t,i=0,s){var u;const n=s==null?void 0:s.command;let o=i===1&&n?n.replace(/\s/g,""):"";o&&(this._subMenuParentId=o),i>1&&(o=this._subMenuParentId);const l=`${this.menuCssClass} slick-menu-level-${i} ${this.gridUid}`,a=document.body.querySelector(`.${this.menuCssClass}.slick-menu-level-${i}${this.gridUidSelector}`);if(a){if(a.dataset.subMenuParent===o)return a;this.disposeSubMenus()}const h=v("div",{ariaExpanded:"true",ariaLabel:i>1?"SubMenu":"Header Menu",role:"menu",className:l,style:{minWidth:`${this.addonOptions.minWidth}px`}});i>0&&(h.classList.add("slick-submenu"),o&&(h.dataset.subMenuParent=o),(u=this.gridOptions)!=null&&u.darkMode&&h.classList.add("slick-dark-mode"));const d=v("div",{className:`${this._menuCssPrefix}-command-list`,role:"menu"},h),c={grid:this.grid,column:t,level:i,menu:{commandItems:e}};return s&&i>0&&this.addSubMenuTitleWhenExists(s,d),this.populateCommandOrOptionItems("command",this.addonOptions,d,e,c,this.handleMenuItemCommandClick,this.handleMenuItemMouseOver),i++,h}resetHeaderMenuTranslations(e){e.forEach(t=>{var i,s;if((s=(i=t==null?void 0:t.header)==null?void 0:i.menu)!=null&&s.commandItems&&!t.excludeFromHeaderMenu){const n=t.header.menu.commandItems||[];this.extensionUtility.translateMenuItemsFromTitleKey(n)}})}sortColumn(e,t,i=!0){if(t!=null&&t.column){const s=t.column,n=this.sharedService.gridOptions.multiColumnSort?this.sortService.getCurrentColumnSorts(s.id+""):[];let o=oe.local;n.push({columnId:s.id,sortCol:s,sortAsc:i}),this.sharedService.gridOptions.backendServiceApi?(this.sortService.onBackendSortChanged(e,{multiColumnSort:!0,sortCols:n,grid:this.sharedService.slickGrid}),o=oe.remote):this.sharedService.dataView?(this.sortService.onLocalSortChanged(this.sharedService.slickGrid,n),o=oe.local):t.grid.onSort.notify(n);const l=n.map(a=>{var h;return{columnId:((h=a==null?void 0:a.sortCol)==null?void 0:h.id)??"",sortAsc:(a==null?void 0:a.sortAsc)??!0}});if(this.sharedService.slickGrid.setSortColumns(l),o){const a=[];l.forEach(h=>{a.push({columnId:`${h.columnId}`,direction:h.sortAsc?"ASC":"DESC"})}),this.sortService.emitSortChanged(o,a)}}}}const Us="slick-rbe-editmode",Qc="slick-rbe-unsaved-cell",ca="slick-rbe-unsaved-highlight",vr="action-btns--delete",br="action-btns--edit",Sr="action-btns--update",yr="action-btns--cancel";class ua{constructor(e,t,i){this.extensionUtility=e,this.pubSubService=t,this.pluginName="RowBasedEdit",this._defaults={actionsColumnLabel:"Actions",allowMultipleRows:!1,columnId:"_slick_rowbasededit_action",columnIndexPosition:-1,reorderable:!1},this._editedRows=new Map,this._currentLang="en",this._translations={},this.onBeforeEditCellHandler=(s,n)=>{var o;return this._editedRows.has((o=n.item)==null?void 0:o[this.gridOptions.datasetIdPropertyName??"id"])},this._eventHandler=new pe,this._addonOptions=i}get addonOptions(){return this._addonOptions}get gridOptions(){return this._grid.getOptions()||{}}get eventHandler(){return this._eventHandler}init(e,t){var n,o;this._grid=e,this._gridService=t,this._addonOptions={...this._defaults,...this.addonOptions};const i=this._grid.getData();if(this._eventHandler.subscribe(this._grid.onBeforeEditCell,this.onBeforeEditCellHandler),this.checkOptionsRequirements(this.gridOptions),this.gridOptions.autoEdit||(this._grid.setOptions({autoEdit:!0}),console.warn('[Slickgrid-Universal] The Row Based Edit Plugin works best with the gridOption "autoEdit" enabled, the option has now been set automatically for you.')),this._existingEditCommandHandler=this.gridOptions.editCommandHandler,this._grid.setOptions({editCommandHandler:this.rowBasedEditCommandHandler.bind(this)}),this.gridOptions.enableExcelCopyBuffer===!0){const l=(n=this.gridOptions.excelCopyBufferOptions)==null?void 0:n.onBeforePasteCell;this._grid.setOptions({excelCopyBufferOptions:{...this.gridOptions.excelCopyBufferOptions,onBeforePasteCell:(a,h)=>{let d=!0;if(l&&(d=l(a,h),d===!1))return!1;const c=i.getItem(h.row),u=this.gridOptions.datasetIdPropertyName??"id";return!!(this._editedRows.has(c[u])&&d===!0)}}})}const s=i.getItemMetadata;i.getItemMetadata=this.updateItemMetadata((o=s==null?void 0:s.bind)==null?void 0:o.call(s,i)),this._eventHandler.subscribe(this._grid.onSetOptions,this.optionsUpdatedHandler.bind(this)),this._eventHandler.subscribe(i.onRowsOrCountChanged,this.handleAllRowRerender.bind(this)),this.translate()}destroy(){this.dispose()}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),(t=this.pubSubService)==null||t.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.rowBasedEditOptions},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=((i=t==null?void 0:t.rowBasedEditOptions)==null?void 0:i.columnIndexPosition)??-1;n===-1?e.push(s):n>0&&n<e.length?e.splice(n,0,s):e.unshift(s),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getColumnDefinition(){var t,i,s,n;return{id:String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId),name:(i=this._addonOptions)==null?void 0:i.actionsColumnLabel,field:"action",minWidth:70,width:75,maxWidth:75,excludeFromExport:!0,reorderable:(s=this._addonOptions)==null?void 0:s.reorderable,formatter:this.actionColumnFormatter.bind(this),onCellClick:this.onCellClickHandler.bind(this),...((n=this._addonOptions)==null?void 0:n.actionColumnConfig)??{}}}rowBasedEditCommandHandler(e,t,i){var c;this._existingEditCommandHandler&&this._existingEditCommandHandler(e,t,i);const s=Array.isArray(i.prevSerializedValue)?i.prevSerializedValue:[i.prevSerializedValue],n=Array.isArray(i.serializedValue)?i.serializedValue:[i.serializedValue],o=(c=this._gridService)==null?void 0:c.getAllColumnDefinitions().filter(u=>u.editor!==void 0),l=[],a=this.gridOptions.datasetIdPropertyName??"id";s.forEach((u,p)=>{const m=s[p],f=n[p];if(m!==f||f===""){const g=Array.isArray(i.prevSerializedValue)?o==null?void 0:o[p]:t;if(!g)return;this._grid.invalidate(),i.execute(),this.renderUnsavedCellStyling(e[a],g),l.push(g)}});const h=this._editedRows.get(e[a]),d=[...(h==null?void 0:h.editCommands)||[]];l.length>0&&d.push(i),this._editedRows.set(e[a],{columns:[...(h==null?void 0:h.columns)||[],...l],editCommands:d,cssStyleKeys:(h==null?void 0:h.cssStyleKeys)||[]})}translate(e=!1){var t;return this._currentLang=((t=this.extensionUtility.translaterService)==null?void 0:t.getCurrentLanguage())??"en",(!this._translations[this._currentLang]||e)&&(this._translations[this._currentLang]={btnUpdateTitle:this.getTitleOrDefault("updateButtonTitle","Update the row"),btnEditTitle:this.getTitleOrDefault("editButtonTitle","Edit the Row"),btnDeleteTitle:this.getTitleOrDefault("deleteButtonTitle","Delete the Row"),btnCancelTitle:this.getTitleOrDefault("cancelButtonTitle","Cancel changes of the Row")}),this._translations[this._currentLang]}checkOptionsRequirements(e){if(!(e!=null&&e.enableCellNavigation))throw new Error("[Slickgrid-Universal] Row Based Edit Plugin requires the gridOption cell navigation (enableCellNavigation = true)");if(!(e!=null&&e.editable))throw new Error("[Slickgrid-Universal] Row Based Edit Plugin requires the gridOption editable (editable = true)")}undoRowEdit(e){const t=this.gridOptions.datasetIdPropertyName??"id",i=this._editedRows.get(e[t]),s=this._grid.getData().getRowByItem(e);if(s!==void 0&&(i!=null&&i.editCommands)&&i.editCommands.length||Ui.cancelCurrentEdit()){for(;i.editCommands.length>0;){const n=i.editCommands.pop();n&&n.undo()}i.columns.forEach(n=>{this.removeUnsavedStylingFromCell(n,s)}),i.columns=[],this._grid.invalidate()}}renderUnsavedCellStyling(e,t){var i,s;if(t){const n=(i=this._grid.getData())==null?void 0:i.getRowById(e);if(n!==void 0&&n>=0){const o={[n]:{[t.id]:Qc}},l=`${ca}_${[t.id]}${n}`;this._grid.setCellCssStyles(l,o),(s=this._editedRows.get(e))==null||s.cssStyleKeys.push(l)}}}handleAllRowRerender(e,t){this._editedRows.forEach((i,s)=>{i.cssStyleKeys.forEach(n=>{this._grid.removeCellCssStyles(n)}),i.cssStyleKeys=[],i.columns.forEach(n=>{this.renderUnsavedCellStyling(s,n)})})}removeUnsavedStylingFromCell(e,t){const i=`${ca}_${[e.id]}${t}`;this._grid.removeCellCssStyles(i)}removeUnsavedStylingFromRow(e){this._grid.getColumns().forEach(t=>{this.removeUnsavedStylingFromCell(t,e)})}optionsUpdatedHandler(e,t){this._addonOptions={...this._defaults,...t.optionsAfter.rowBasedEditOptions}}async onCellClickHandler(e,t){var l,a,h,d,c,u,p,m,f,g,_,C,b,S,E;const i=t.dataContext,s=e.target,n=this.gridOptions.datasetIdPropertyName??"id",o=this._editedRows.get(i[n]);if((s.classList.contains(vr)||(l=s.parentElement)!=null&&l.classList.contains(vr))&&this._gridService){if((h=(a=this._addonOptions)==null?void 0:a.actionButtons)!=null&&h.deleteButtonPrompt&&!window.confirm(this._addonOptions.actionButtons.deleteButtonPrompt))return;this.toggleEditmode(i,!1),this._gridService.deleteItem(i)}else if(s.classList.contains(br)||(d=s.parentElement)!=null&&d.classList.contains(br)){if(!((c=this._addonOptions)!=null&&c.allowMultipleRows)&&this._editedRows.size>0)return;typeof((u=this._addonOptions)==null?void 0:u.onBeforeEditMode)=="function"&&this._addonOptions.onBeforeEditMode(t),this.toggleEditmode(i,!0)}else if(s.classList.contains(Sr)||(p=s.parentElement)!=null&&p.classList.contains(Sr)){if((f=(m=this._addonOptions)==null?void 0:m.actionButtons)!=null&&f.updateButtonPrompt&&((o==null?void 0:o.editCommands.length)||0)>0&&!window.confirm(this._addonOptions.actionButtons.updateButtonPrompt)||(this._grid.getCellEditor()&&((g=this._grid.getActiveCell())==null?void 0:g.row)===t.row&&((_=this._grid.getEditController())==null||_.commitCurrentEdit()),(C=this._addonOptions)!=null&&C.onBeforeRowUpdated&&await this._addonOptions.onBeforeRowUpdated(t)!==!0))return;this.removeUnsavedStylingFromRow(t.row),this.toggleEditmode(i,!1)}else if(s.classList.contains(yr)||(b=s.parentElement)!=null&&b.classList.contains(yr)){if((E=(S=this._addonOptions)==null?void 0:S.actionButtons)!=null&&E.cancelButtonPrompt&&((o==null?void 0:o.editCommands.length)||0)>0&&!window.confirm(this._addonOptions.actionButtons.cancelButtonPrompt))return;this.undoRowEdit(i),this.toggleEditmode(i,!1)}}actionColumnFormatter(e,t,i,s,n){var d,c,u,p,m,f,g,_,C,b,S,E,y,x,O,I;const o=this.gridOptions,l=this._editedRows.has(n==null?void 0:n[o.datasetIdPropertyName??"id"]),a=this._translations[this._currentLang]??this.translate(),h=document.createDocumentFragment();return h.appendChild(v("span",{className:`${((c=(d=o.rowBasedEditOptions)==null?void 0:d.actionButtons)==null?void 0:c.editButtonClassName)||"button-style padding-1px mr-2"} action-btns `+br,title:a.btnEditTitle,style:{display:l?"none":""}})).appendChild(v("span",{className:((p=(u=o.rowBasedEditOptions)==null?void 0:u.actionButtons)==null?void 0:p.iconEditButtonClassName)||"mdi mdi-table-edit text-color-primary"})),h.appendChild(v("span",{className:`${((f=(m=o.rowBasedEditOptions)==null?void 0:m.actionButtons)==null?void 0:f.deleteButtonClassName)||"button-style padding-1px"} action-btns `+vr,title:a.btnDeleteTitle,style:{display:l?"none":""}})).appendChild(v("span",{className:((_=(g=o.rowBasedEditOptions)==null?void 0:g.actionButtons)==null?void 0:_.iconDeleteButtonClassName)||"mdi mdi-close text-color-danger"})),h.appendChild(v("span",{className:`${((b=(C=o.rowBasedEditOptions)==null?void 0:C.actionButtons)==null?void 0:b.updateButtonClassName)||"button-style padding-1px mr-2"} action-btns `+Sr,title:a.btnUpdateTitle,style:{display:l?"":"none"}})).appendChild(v("span",{className:((E=(S=o.rowBasedEditOptions)==null?void 0:S.actionButtons)==null?void 0:E.iconUpdateButtonClassName)||"mdi mdi-check-bold text-color-success"})),h.appendChild(v("span",{className:`${((x=(y=o.rowBasedEditOptions)==null?void 0:y.actionButtons)==null?void 0:x.cancelButtonClassName)||"button-style padding-1px"} action-btns `+yr,title:a.btnCancelTitle,style:{display:l?"":"none"}})).appendChild(v("span",{className:((I=(O=o.rowBasedEditOptions)==null?void 0:O.actionButtons)==null?void 0:I.iconCancelButtonClassName)||"mdi mdi-cancel text-color-danger"})),h}toggleEditmode(e,t){const i=this.gridOptions.datasetIdPropertyName??"id";t?this._editedRows.set(e[i],{columns:[],editCommands:[],cssStyleKeys:[]}):this._editedRows.delete(e[i]),this._grid.invalidate()}updateItemMetadata(e){return t=>{const i=this._grid.getData().getItem(t);let s={cssClasses:""};if(typeof e=="function"){const n=e(t);n&&(s=n)}if(s&&i){const n=this.gridOptions.datasetIdPropertyName??"id";this._editedRows.has(i[n])&&!s.cssClasses.includes(Us)?s.cssClasses=(s.cssClasses||"")+" "+Us:!this._editedRows.has(i[n])&&s.cssClasses.includes(Us)&&(s.cssClasses=s.cssClasses.replace(Us,""))}return s}}getTitleOrDefault(e,t){var s,n,o;const i=(s=this.gridOptions.rowBasedEditOptions)==null?void 0:s.actionButtons;return(i==null?void 0:i[e+"Key"])&&((o=(n=this.extensionUtility.translaterService)==null?void 0:n.translate)==null?void 0:o.call(n,(i==null?void 0:i[e+"Key"])||""))||(i==null?void 0:i[e])||t}}class pa{constructor(e){this.pubSubService=e,this.pluginName="RowMoveManager",this._dragging=!1,this._defaults={autoScroll:!0,columnId:"_move",cssClass:"slick-row-move-column",cancelEditOnDrag:!1,disableRowSelection:!1,hideRowMoveShadow:!0,reorderable:!1,rowMoveShadowMarginTop:0,rowMoveShadowMarginLeft:0,rowMoveShadowOpacity:.9,rowMoveShadowScale:.75,singleRowMove:!1,width:40},this.onBeforeMoveRows=new P("onBeforeMoveRows"),this.onMoveRows=new P("onMoveRows"),this._eventHandler=new pe}get addonOptions(){return this._addonOptions}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}init(e,t){var i;this._addonOptions={...this._defaults,...t},this._grid=e,this._canvas=this._grid.getCanvasNode(),T.addSlickEventPubSubWhenDefined(this.pubSubService,this),typeof((i=this._addonOptions)==null?void 0:i.usabilityOverride)=="function"&&this.usabilityOverride(this._addonOptions.usabilityOverride),this._eventHandler.subscribe(this._grid.onDragInit,this.handleDragInit.bind(this)).subscribe(this._grid.onDragStart,this.handleDragStart.bind(this)).subscribe(this._grid.onDrag,this.handleDrag.bind(this)).subscribe(this._grid.onDragEnd,this.handleDragEnd.bind(this))}dispose(){var e;(e=this._eventHandler)==null||e.unsubscribeAll()}create(e,t){var i;if(this._addonOptions={...this._defaults,...t.rowMoveManager},Array.isArray(e)&&t){const s=this.getColumnDefinition();if(!e.some(n=>n.id===s.id)){const n=Array.isArray(e)&&e.find(a=>(a==null?void 0:a.behavior)==="selectAndMove"),o=n||s,l=((i=t==null?void 0:t.rowMoveManager)==null?void 0:i.columnIndexPosition)??0;l>0?e.splice(l,0,o):e.unshift(o),this.pubSubService.publish("onPluginColumnsChanged",{columns:e,pluginName:this.pluginName})}}return this}getColumnDefinition(){var t;const e=String(((t=this._addonOptions)==null?void 0:t.columnId)??this._defaults.columnId);return{id:e,name:"",behavior:"selectAndMove",excludeFromExport:!0,excludeFromColumnPicker:!0,excludeFromGridMenu:!0,excludeFromQuery:!0,excludeFromHeaderMenu:!0,field:e,reorderable:this._addonOptions.reorderable,resizable:!1,width:this._addonOptions.width||40,formatter:this.moveIconFormatter.bind(this)}}usabilityOverride(e){this._usabilityOverride=e}setOptions(e){this._addonOptions={...this._addonOptions,...e}}handleDragInit(e){e.stopImmediatePropagation()}handleDragEnd(e,t){var i,s,n;if(this._dragging&&(this._dragging=!1,e.stopImmediatePropagation(),(i=t.guide)==null||i.remove(),(s=t.selectionProxy)==null||s.remove(),(n=t.clonedSlickRow)==null||n.remove(),t.canMove)){const o={grid:this._grid,rows:t.selectedRows,insertBefore:t.insertBefore};typeof this._addonOptions.onMoveRows=="function"&&this._addonOptions.onMoveRows(e instanceof le?e.getNativeEvent():e,o),this.onMoveRows.notify(o)}}handleDrag(e,t){var i,s,n;if(this._dragging){e.stopImmediatePropagation();const o=e.getNativeEvent(),a=(((i=o==null?void 0:o.touches)==null?void 0:i[0])??o).pageY-ge(this._canvas).top;t.selectionProxy.style.top=`${a-5}px`,t.selectionProxy.style.display="block",t.clonedSlickRow&&(t.clonedSlickRow.style.top=`${a-6}px`,t.clonedSlickRow.style.display="block");const h=Math.max(0,Math.min(Math.round(a/(this.gridOptions.rowHeight||0)),this._grid.getDataLength()));if(h!==t.insertBefore){const d={grid:this._grid,rows:t.selectedRows,insertBefore:h};if(((n=(s=this._addonOptions)==null?void 0:s.onBeforeMoveRows)==null?void 0:n.call(s,o,d))===!1||this.onBeforeMoveRows.notify(d).getReturnValue()===!1?t.canMove=!1:t.canMove=!0,this._usabilityOverride&&t.canMove){const c=this._grid.getDataItem(h);t.canMove=this.checkUsabilityOverride(h,c,this._grid)}t.canMove?t.guide.style.top=`${h*(this.gridOptions.rowHeight||0)}px`:t.guide.style.top="-1000px",t.insertBefore=h}}}handleDragStart(e,t){var o,l,a,h,d;const i=this._grid.getCellFromEvent(e)||{cell:-1,row:-1},s=i.row,n=this._grid.getDataItem(s);if(this.checkUsabilityOverride(s,n,this._grid)){if(this._addonOptions.cancelEditOnDrag&&this._grid.getEditorLock().isActive()&&this._grid.getEditorLock().cancelCurrentEdit(),this._grid.getEditorLock().isActive()||!/move|selectAndMove/.test(this._grid.getColumns()[i.cell].behavior||""))return!1;if(this._dragging=!0,e.stopImmediatePropagation(),!this.addonOptions.hideRowMoveShadow){const p=(o=this._grid.getCellNode(i.row,i.cell))==null?void 0:o.closest(".slick-row");p&&(t.clonedSlickRow=p.cloneNode(!0),t.clonedSlickRow.classList.add("slick-reorder-shadow-row"),t.clonedSlickRow.style.display="none",t.clonedSlickRow.style.marginLeft=Pt((l=this._addonOptions)==null?void 0:l.rowMoveShadowMarginLeft,"0px"),t.clonedSlickRow.style.marginTop=Pt((a=this._addonOptions)==null?void 0:a.rowMoveShadowMarginTop,"0px"),t.clonedSlickRow.style.opacity=`${((h=this._addonOptions)==null?void 0:h.rowMoveShadowOpacity)??.95}`,t.clonedSlickRow.style.transform=`scale(${((d=this.addonOptions)==null?void 0:d.rowMoveShadowScale)??.75})`,this._canvas.appendChild(t.clonedSlickRow))}let c=this._addonOptions.singleRowMove?[i.row]:this._grid.getSelectedRows();(c.length===0||!c.some(p=>p===i.row))&&(c=[i.row],this._addonOptions.disableRowSelection||this._grid.setSelectedRows(c));const u=this.gridOptions.rowHeight;t.selectedRows=c,t.selectionProxy=v("div",{className:"slick-reorder-proxy",style:{display:"none",position:"absolute",zIndex:"99999",width:`${this._canvas.clientWidth}px`,height:`${u*c.length}px`}},this._canvas),t.guide=v("div",{className:"slick-reorder-guide",style:{position:"absolute",zIndex:"99999",width:`${this._canvas.clientWidth}px`,top:"-1000px"}},this._canvas),t.insertBefore=-1}}checkUsabilityOverride(e,t,i){return typeof this._usabilityOverride=="function"?this._usabilityOverride(e,t,i):!0}moveIconFormatter(e,t,i,s,n,o){return this.checkUsabilityOverride(e,n,o)?{addClasses:"cell-reorder dnd",html:v("div",{className:this._addonOptions.cssClass||""})}:""}}class Zc{get extensionList(){return this._extensionList}get gridOptions(){return this.sharedService.gridOptions||{}}constructor(e,t,i,s,n,o,l,a){this.extensionUtility=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this.treeDataService=o,this.translaterService=l,this.lazyGridService=a,this._extensionCreatedList={},this._extensionList={},this._requireInitExternalExtensions=[]}dispose(){if(this.sharedService.visibleColumns=[],typeof this._extensionList=="object"){const e=Object.keys(this._extensionList);e.forEach(t=>{var i;if(this._extensionList.hasOwnProperty(t)){const s=this._extensionList[t];typeof((i=s==null?void 0:s.instance)==null?void 0:i.dispose)=="function"&&s.instance.dispose()}}),e.forEach(t=>{delete this._extensionList[t]})}this._cellMenuPlugin=null,this._cellExcelCopyManagerPlugin=null,this._checkboxSelectColumn=null,this._contextMenuPlugin=null,this._columnPickerControl=null,this._draggleGroupingPlugin=null,this._gridMenuControl=null,this._groupItemMetadataProviderService=null,this._headerMenuPlugin=null,this._rowMoveManagerPlugin=null,this._rowSelectionModel=null,this._extensionCreatedList=null,this._extensionList={}}addExtensionToList(e,t){this._extensionList[e]=t}getAllColumns(){return this.sharedService.allColumns||[]}getVisibleColumns(){return this.sharedService.visibleColumns||[]}getCreatedExtensionByName(e){var t;if((t=this._extensionCreatedList)!=null&&t.hasOwnProperty(e))return this._extensionCreatedList[e]}getExtensionByName(e){var t;return(t=this._extensionList)==null?void 0:t[e]}getExtensionInstanceByName(e){var t;return(t=this.getExtensionByName(e))==null?void 0:t.instance}autoResizeColumns(){this.sharedService.slickGrid.autosizeColumns()}bindDifferentExtensions(){var e,t,i,s,n,o,l,a,h,d,c,u,p;if(this.gridOptions){if(this.gridOptions.enableTranslate&&this.translateItems(this.sharedService.allColumns,"nameKey","name"),this.gridOptions.enableRowBasedEdit){this._rowBasedEdit=this._rowBasedEdit||new ua(this.extensionUtility,this.pubSubService,this.gridOptions.rowBasedEditOptions);const m=(e=this.lazyGridService)==null?void 0:e.call(this);if(!m)throw new Error("[Slickgrid-Universal] the RowBasedEdit Plugin requires a GridService to be configured and available");this._rowBasedEdit.init(this.sharedService.slickGrid,m),(t=this.gridOptions.rowBasedEditOptions)!=null&&t.onExtensionRegistered&&this.gridOptions.rowBasedEditOptions.onExtensionRegistered(this._rowBasedEdit),this._extensionList[G.rowBasedEdit]={name:G.rowBasedEdit,instance:this._rowBasedEdit}}if(this.gridOptions.enableAutoTooltip){const m=new Bc((i=this.gridOptions)==null?void 0:i.autoTooltipOptions);this.sharedService.slickGrid.registerPlugin(m),this._extensionList[G.autoTooltip]={name:G.autoTooltip,instance:m}}if(this.gridOptions.enableExcelCopyBuffer&&(this._cellExcelCopyManagerPlugin=new zc,this._cellExcelCopyManagerPlugin.init(this.sharedService.slickGrid,this.sharedService.gridOptions.excelCopyBufferOptions),(s=this.gridOptions.excelCopyBufferOptions)!=null&&s.onExtensionRegistered&&this.gridOptions.excelCopyBufferOptions.onExtensionRegistered(this._cellExcelCopyManagerPlugin),this._extensionList[G.cellExternalCopyManager]={name:G.cellExternalCopyManager,instance:this._cellExcelCopyManagerPlugin}),this.gridOptions.enableCellMenu&&(this._cellMenuPlugin=new Gc(this.extensionUtility,this.pubSubService,this.sharedService),(n=this.gridOptions.cellMenu)!=null&&n.onExtensionRegistered&&this.gridOptions.cellMenu.onExtensionRegistered(this._cellMenuPlugin),this._extensionList[G.cellMenu]={name:G.cellMenu,instance:this._cellMenuPlugin}),!this._rowSelectionModel&&(this.gridOptions.enableRowSelection||this.gridOptions.enableCheckboxSelector||this.gridOptions.enableRowDetailView||this.gridOptions.enableRowMoveManager)){if(!this._rowSelectionModel||!this.sharedService.slickGrid.getSelectionModel()){const m=this.gridOptions.rowSelectionOptions??{};this.gridOptions.enableRowMoveManager&&((o=this.gridOptions.rowMoveManager)==null?void 0:o.dragToSelect)!==!1&&(m.dragToSelect=!0),this._rowSelectionModel=new fr(m),this.sharedService.slickGrid.setSelectionModel(this._rowSelectionModel)}this._extensionList[G.rowSelection]={name:G.rowSelection,instance:this._rowSelectionModel}}if(this.gridOptions.enableCheckboxSelector){this._checkboxSelectColumn=this._checkboxSelectColumn||new ta(this.pubSubService,this.gridOptions.checkboxSelector),this._checkboxSelectColumn.init(this.sharedService.slickGrid);const m=this.getCreatedExtensionByName(G.checkboxSelector),f=m==null?void 0:m.instance;f&&((l=this.gridOptions.checkboxSelector)!=null&&l.onExtensionRegistered&&this.gridOptions.checkboxSelector.onExtensionRegistered(f),this._extensionList[G.checkboxSelector]={name:G.checkboxSelector,instance:this._checkboxSelectColumn})}if(this.gridOptions.enableColumnPicker&&(this._columnPickerControl=new _r(this.extensionUtility,this.pubSubService,this.sharedService),(a=this.gridOptions.columnPicker)!=null&&a.onExtensionRegistered&&this.gridOptions.columnPicker.onExtensionRegistered(this._columnPickerControl),this._extensionList[G.columnPicker]={name:G.columnPicker,instance:this._columnPickerControl}),this.gridOptions.enableContextMenu&&(this._contextMenuPlugin=new Yc(this.extensionUtility,this.pubSubService,this.sharedService,this.treeDataService),(h=this.gridOptions.contextMenu)!=null&&h.onExtensionRegistered&&this.gridOptions.contextMenu.onExtensionRegistered(this._contextMenuPlugin),this._extensionList[G.contextMenu]={name:G.contextMenu,instance:this._contextMenuPlugin}),this.gridOptions.enableDraggableGrouping&&(this._draggleGroupingPlugin&&(this._draggleGroupingPlugin.init(this.sharedService.slickGrid,this.gridOptions.draggableGrouping),(d=this.gridOptions.draggableGrouping)!=null&&d.onExtensionRegistered&&this.gridOptions.draggableGrouping.onExtensionRegistered(this._draggleGroupingPlugin),this._extensionList[G.contextMenu]={name:G.contextMenu,instance:this._draggleGroupingPlugin}),this._extensionList[G.draggableGrouping]={name:G.draggableGrouping,instance:this._draggleGroupingPlugin}),this.gridOptions.enableGridMenu&&(this._gridMenuControl=new ia(this.extensionUtility,this.filterService,this.pubSubService,this.sharedService,this.sortService),(c=this.gridOptions.gridMenu)!=null&&c.onExtensionRegistered&&this.gridOptions.gridMenu.onExtensionRegistered(this._gridMenuControl),this._extensionList[G.gridMenu]={name:G.gridMenu,instance:this._gridMenuControl}),this.gridOptions.enableHeaderButton){const m=new Kc(this.extensionUtility,this.pubSubService,this.sharedService);(u=this.gridOptions.headerButton)!=null&&u.onExtensionRegistered&&this.gridOptions.headerButton.onExtensionRegistered(m),this._extensionList[G.headerButton]={name:G.headerButton,instance:m}}if(this.gridOptions.enableHeaderMenu&&(this._headerMenuPlugin=new Xc(this.extensionUtility,this.filterService,this.pubSubService,this.sharedService,this.sortService),(p=this.gridOptions.headerMenu)!=null&&p.onExtensionRegistered&&this.gridOptions.headerMenu.onExtensionRegistered(this._headerMenuPlugin),this._extensionList[G.headerMenu]={name:G.headerMenu,instance:this._headerMenuPlugin}),this.gridOptions.enableRowMoveManager){this._rowMoveManagerPlugin=this._rowMoveManagerPlugin||new pa(this.pubSubService),this._rowMoveManagerPlugin.init(this.sharedService.slickGrid,this.gridOptions.rowMoveManager);const m=this.getCreatedExtensionByName(G.rowMoveManager);(m==null?void 0:m.instance)&&(this._extensionList[G.rowMoveManager]={name:G.rowMoveManager,instance:this._rowMoveManagerPlugin})}this._requireInitExternalExtensions.length&&this._requireInitExternalExtensions.forEach(m=>{m.instance.init(this.sharedService.slickGrid,void 0)})}}createExtensionsBeforeGridCreation(e,t){var s,n,o;const i=[];t.enableCheckboxSelector&&(this.getCreatedExtensionByName(G.checkboxSelector)||(this._checkboxSelectColumn=new ta(this.pubSubService,this.sharedService.gridOptions.checkboxSelector),i.push({name:G.checkboxSelector,instance:this._checkboxSelectColumn,columnIndexPosition:((s=t==null?void 0:t.checkboxSelector)==null?void 0:s.columnIndexPosition)??i.length}))),t.enableRowMoveManager&&(this.getCreatedExtensionByName(G.rowMoveManager)||(this._rowMoveManagerPlugin=new pa(this.pubSubService),i.push({name:G.rowMoveManager,instance:this._rowMoveManagerPlugin,columnIndexPosition:((n=t==null?void 0:t.rowMoveManager)==null?void 0:n.columnIndexPosition)??i.length}))),t.enableRowBasedEdit&&(this.getCreatedExtensionByName(G.rowBasedEdit)||(this._rowBasedEdit=new ua(this.extensionUtility,this.pubSubService),i.push({name:G.rowBasedEdit,instance:this._rowBasedEdit,columnIndexPosition:((o=t==null?void 0:t.rowMoveManager)==null?void 0:o.columnIndexPosition)??i.length}))),t.preRegisterExternalExtensions&&t.preRegisterExternalExtensions(this.pubSubService).forEach(a=>{i.push(a),this._requireInitExternalExtensions.push(a),this._extensionList[a.name]||this.addExtensionToList(a.name,a)}),this.createExtensionByTheirColumnIndex(i,e,t),t.enableDraggableGrouping&&(this.getCreatedExtensionByName(G.draggableGrouping)||(this._draggleGroupingPlugin=new qc(this.extensionUtility,this.pubSubService,this.sharedService),this._draggleGroupingPlugin&&(t.enableColumnReorder=this._draggleGroupingPlugin.setupColumnReorder.bind(this._draggleGroupingPlugin),this._extensionCreatedList[G.draggableGrouping]={name:G.draggableGrouping,instance:this._draggleGroupingPlugin})))}hideColumn(e){var t,i;if(typeof((i=(t=this.sharedService)==null?void 0:t.slickGrid)==null?void 0:i.getColumns)=="function"){const s=this.sharedService.slickGrid.getColumnIndex(e.id);this.sharedService.visibleColumns=this.removeColumnByIndex(this.sharedService.slickGrid.getColumns(),s),this.sharedService.slickGrid.setColumns(this.sharedService.visibleColumns)}}refreshBackendDataset(e){this.extensionUtility.refreshBackendDataset(e)}removeColumnByIndex(e,t){return Array.isArray(e)?e.filter((i,s)=>t!==s):e}translateAllExtensions(e){this.translateCellMenu(),this.translateContextMenu(),this.translateHeaderMenu(),this.translateRowEditPlugin(),this.translateColumnHeaders(e)}translateCellMenu(){var e;(e=this._cellMenuPlugin)==null||e.translateCellMenu()}translateColumnPicker(){var e;(e=this._columnPickerControl)==null||e.translateColumnPicker()}translateContextMenu(){var e;(e=this._contextMenuPlugin)==null||e.translateContextMenu()}translateGridMenu(){var e;(e=this._gridMenuControl)==null||e.translateGridMenu()}translateHeaderMenu(){var e;(e=this._headerMenuPlugin)==null||e.translateHeaderMenu()}translateRowEditPlugin(){var e;(e=this._rowBasedEdit)==null||e.translate()}translateColumnHeaders(e,t){var s;if(this.sharedService&&this.gridOptions&&this.gridOptions.enableTranslate&&(!this.translaterService||!this.translaterService.translate))throw new Error('[Slickgrid-Universal] requires a Translate Service to be installed and configured when the grid option "enableTranslate" is enabled.');e&&((s=this.translaterService)!=null&&s.use)&&this.translaterService.getCurrentLanguage()!==e&&this.translaterService.use(e);let i=t;i||(i=this.sharedService.columnDefinitions),this.translateItems(i,"nameKey","name"),this.translateItems(this.sharedService.allColumns,"nameKey","name"),this.translateItems(this.sharedService.allColumns,"columnGroupKey","columnGroup"),this.renderColumnHeaders(i,Array.isArray(t))}renderColumnHeaders(e,t=!1){var s;let i=e;i||(i=this.sharedService.columnDefinitions),Array.isArray(i)&&((s=this.sharedService.slickGrid)!=null&&s.setColumns)&&((i.length>this.sharedService.allColumns.length||t)&&(this.sharedService.allColumns=i),this.sharedService.slickGrid.setColumns(i)),this.gridOptions.enableColumnPicker&&this._columnPickerControl&&(this._columnPickerControl.columns=this.sharedService.allColumns,this._columnPickerControl.translateColumnPicker()),this.gridOptions.enableGridMenu&&this._gridMenuControl&&(this._gridMenuControl.columns=this.sharedService.allColumns??[],this._gridMenuControl.recreateGridMenu(),this._gridMenuControl.translateGridMenu())}createExtensionByTheirColumnIndex(e,t,i){e.sort((s,n)=>((s==null?void 0:s.columnIndexPosition)??0)-((n==null?void 0:n.columnIndexPosition)??0)),e.forEach(s=>{const n=s.instance.create(t,i);n&&(this._extensionCreatedList[s.name]={name:s.name,instance:n})})}translateItems(e,t,i){var s,n;if((s=this.gridOptions)!=null&&s.enableTranslate&&!((n=this.translaterService)!=null&&n.translate))throw new Error('[Slickgrid-Universal] requires a Translate Service to be installed and configured when the grid option "enableTranslate" is enabled.');this.extensionUtility.translateItems(e,t,i)}}function ma(r,e,t){if(t&&(r!=null&&r.hasOwnProperty(t)||e!=null&&e.hasOwnProperty(t)))return r[t]===e||r===e[t]||r[t]===e[t];if(typeof r=="object"&&typeof e=="object"&&Object.keys(r).length!==Object.keys(e).length)return!1;for(const i in r)if(r.hasOwnProperty(i)&&r[i]!==e[i])return!1;return!0}function Jc(r){switch(r&&r.toUpperCase()||""){case"IN":case"NIN":case"NOT_IN":case"IN_CONTAINS":case"NIN_CONTAINS":case"NOT_IN_CONTAINS":case"IN_COLLECTION":case"NOT_IN_COLLECTION":return!0;default:return!1}}const jt=(r,e,t)=>{switch(r.toUpperCase()){case"<":case"LT":return e<t;case"<=":case"LE":return e<=t;case">":case"GT":return e>t;case">=":case"GE":return e>=t;case"!=":case"<>":case"NE":return e!==t;case"=":case"==":case"EQ":return e===t;case"IN":return t&&Array.isArray(t)?t.includes(e):!1;case"NIN":case"NOT_IN":return t&&Array.isArray(t)?!t.includes(e):!1;case"IN_CONTAINS":return t&&Array.isArray(t)&&typeof e=="string"?t.some(i=>e.split(/[,]+/).map(s=>s.trim()).includes(i)):!1;case"NIN_CONTAINS":case"NOT_IN_CONTAINS":return t&&Array.isArray(t)&&typeof e=="string"?!t.some(i=>e.split(/[,]+/).map(s=>s.trim()).includes(i)):!1;case"IN_COLLECTION":return e&&t&&Array.isArray(e)&&Array.isArray(t)?t.some(i=>e.includes(i)):!1;case"NOT_IN_COLLECTION":return e&&t&&Array.isArray(e)&&Array.isArray(t)?!t.some(i=>e.includes(i)):!1}return!0},fa=(r,e)=>{let[t,i]=e;if(t===void 0&&!r.operator)return!0;r.cellValue=r.cellValue===void 0||r.cellValue===null?"":r.cellValue.toString();const s=r!=null&&r.ignoreAccentOnStringFilterAndSort?mi(r.cellValue,!0):r.cellValue.toLowerCase();if(typeof t=="string"&&(t=r!=null&&r.ignoreAccentOnStringFilterAndSort?mi(t,!0):t.toLowerCase()),typeof i=="string"&&(i=r!=null&&r.ignoreAccentOnStringFilterAndSort?mi(i,!0):i.toLowerCase()),r.operator===H.startsWithEndsWith&&t!==void 0&&i!==void 0)return tu(s,[t,i]);if(t!==void 0&&i!==void 0){let o=(r==null?void 0:r.operator)??r.defaultFilterRangeOperator;o!==H.rangeInclusive&&o!==H.rangeExclusive&&(o=r.defaultFilterRangeOperator);const l=o===H.rangeInclusive,a=Er(l?">=":">",s,t,r.searchInputLastChar),h=Er(l?"<=":"<",s,i,r.searchInputLastChar);return a&&h}return Er(r.operator,s,t,r.searchInputLastChar)};function eu(r){let t=Array.isArray(r)&&r||[""];const i=[];let s,n;if(t.length===1&&typeof t[0]=="string"){const o=t[0];o.indexOf("..")>0?t=o.split(".."):o.indexOf("*")>0&&o.indexOf("*")<o.length-1&&(t=o.split("*"))}if(t.length===2)s=`${t[0]}`,n=`${t[1]}`;else{const o=Array.isArray(r)&&r.length>0?r[0]:"";s=o==null?"":`${o}`}return s!==void 0&&n!==void 0?i.push(s,n):s!==void 0&&i.push(s),i}function Er(r,e,t,i){return r==="*"||r===H.endsWith||r==="*z"?e.endsWith(t):r===""&&i==="*"||r===H.startsWith||r==="a*"?e.startsWith(t):r===""||r===H.contains?e.indexOf(t)>-1:r==="<>"||r===H.notContains?e.indexOf(t)===-1:jt(r||"==",e,t)}function tu(r,[e,t]){return r.startsWith(e)&&r.endsWith(t)}const iu=(r,e)=>{if(e===void 0&&!r.operator)return!0;switch((r.operator||"").toUpperCase()){case"!=":case"<>":case"NE":return!ma(r.cellValue,e,r.dataKey);case"=":case"==":case"EQ":default:return ma(r.cellValue,e,r.dataKey)}};function su(r){return(Array.isArray(r)&&r.length>0?r[0]:"")||""}const ga=(r,e)=>{const t=parseFloat(r.cellValue),[i,s]=e;if(i===void 0&&!r.operator)return!0;if(i!==void 0&&s!==void 0){let n=(r==null?void 0:r.operator)??r.defaultFilterRangeOperator;n!==H.rangeInclusive&&n!==H.rangeExclusive&&(n=r.defaultFilterRangeOperator);const o=n===H.rangeInclusive,l=jt(o?">=":">",t,+i),a=jt(o?"<=":"<",t,+s);return l&&a}return jt(r.operator||"==",t,+i)};function nu(r){const t=Array.isArray(r)&&r||[0],i=[];let s,n;if(t.length===2||typeof t[0]=="string"&&t[0].indexOf("..")>0){const o=t.length===2?t:t[0].split("..");s=parseFloat(Array.isArray(o)?o[0]:""),n=parseFloat(Array.isArray(o)?o[1]:"")}else s=parseFloat(t[0]);return U(s,!0)&&U(n,!0)?i.push(s,n):U(s,!0)&&i.push(s),i}const _a=(r,e)=>ms(r.cellValue)===ms(e);function ru(r){const e=Array.isArray(r)&&r[0]||!1;return ms(e)}const Ca=r=>{const e=r.operator;let t;return Array.isArray(r.cellValue)&&(e==="IN_COLLECTION"||e==="NOT_IN_COLLECTION")?t=r.cellValue.length?r.cellValue.map(i=>`${i}`):[]:t=r.cellValue===void 0||r.cellValue===null?"":`${r.cellValue}`,jt(e||"IN",t,r.searchTerms||[])};function ou(r,e){const t=r&&(r.filterSearchType||r.fieldType)||w.dateIso,i=Ke(t),[s,n]=e,o=bt(r.cellValue,i,!0);if(!s&&!n||!o)return!1;const l=i==="ISO8601"||i.toLowerCase().includes("h")?o.valueOf():Ho(new Date(o)).valueOf();if(s&&n){let h=(r==null?void 0:r.operator)??r.defaultFilterRangeOperator;h!==H.rangeInclusive&&h!==H.rangeExclusive&&(h=r.defaultFilterRangeOperator);const d=h===H.rangeInclusive,c=jt(d?">=":">",l,s.valueOf()),u=jt(d?"<=":"<",l,n.valueOf());return c&&u}const a=i==="ISO8601"||i.toLowerCase().includes("h")?s.valueOf():Ho(new Date(s)).valueOf();return jt(r.operator||"==",l,a)}function lu(r,e){const t=Array.isArray(r)&&r||[],i=e||w.dateIso,s=Ke(i),n=[];if(t.length===2||typeof t[0]=="string"&&t[0].indexOf("..")>0){const o=t.length===2?t:t[0].split(".."),l=Array.isArray(o)&&o[0]||"",a=Array.isArray(o)&&o[1]||"",h=bt(l,s,!0),d=bt(a,s,!0);if(!h||!d)return[];n.push(h,d)}else{const o=bt(t[0],s,!0);if(!o)return[];n.push(o)}return n}const au=(r,e)=>{if(Jc(r.operator))return Ca(r);switch(va(r.filterSearchType||r.fieldType)){case"boolean":return _a(r,e);case"date":return ou(r,e||[]);case"number":return ga(r,e||[]);case"object":return iu(r,e);case"string":default:return fa(r,e||[])}};function js(r,e){const t=va(e);let i;switch(t){case"boolean":i=ru(r);break;case"date":i=lu(r,e);break;case"number":i=nu(r);break;case"object":i=su(r);break;case"string":i=eu(r);break}return i}function va(r){if(It(r))return"date";switch(r){case w.boolean:return"boolean";case w.integer:case w.float:case w.number:return"number";case w.object:return"object";case w.string:case w.text:case w.password:case w.readonly:default:return"string"}}const ba={executeFilterConditionTest:au,booleanFilter:_a,collectionSearchFilter:Ca,numberFilter:ga,stringFilter:fa};class hu{constructor(e,t,i,s){var n;this.config=e,this.translaterService=t,this.collectionService=i,this.rxjs=s,this._options=((n=this.config)==null?void 0:n.options)??{}}addRxJsResource(e){this.rxjs=e}createFilter(e){let t;return e!=null&&e.model&&(t=typeof e.model=="function"?new e.model(this.translaterService,this.collectionService,this.rxjs):e.model),!t&&this._options.defaultFilter&&(t=new this._options.defaultFilter(this.translaterService,this.collectionService,this.rxjs)),t}}class du{constructor(e,t,i,s,n){this.filterFactory=e,this.pubSubService=t,this.sharedService=i,this.backendUtilities=s,this.rxjs=n,this._isFilterFirstRender=!0,this._firstColumnIdRendered="",this._filtersMetadata=[],this._columnFilters={},this._isTreePresetExecuted=!1,this._previousFilters=[],this._onSearchChange=new P,this._eventHandler=new pe,this.rxjs&&(this.httpCancelRequests$=this.rxjs.createSubject())}get eventHandler(){return this._eventHandler}get isFilterFirstRender(){return this._isFilterFirstRender}get onSearchChange(){return this._onSearchChange}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get _columnDefinitions(){var e;return((e=this._grid)==null?void 0:e.getColumns())??[]}get _dataView(){var e;return((e=this._grid)==null?void 0:e.getData())??{}}addRxJsResource(e){this.rxjs=e}init(e){this._grid=e,this._gridOptions&&this._gridOptions.enableTreeData&&this._gridOptions.treeDataOptions&&this._grid.setSortColumns([{columnId:this._gridOptions.treeDataOptions.columnId,sortAsc:!0}])}dispose(){var e;this._eventHandler.unsubscribeAll(),this.httpCancelRequests$&&((e=this.rxjs)!=null&&e.isObservable(this.httpCancelRequests$))&&(this.httpCancelRequests$.next(),this.httpCancelRequests$.complete()),this.disposeColumnFilters(),this._onSearchChange=null}disposeColumnFilters(){if(this.removeAllColumnFiltersProperties(),Array.isArray(this._filtersMetadata)){let e=this._filtersMetadata.pop();for(;e;)typeof(e==null?void 0:e.destroy)=="function"&&e.destroy(),e=this._filtersMetadata.pop()}}bindBackendOnFilter(e){this._filtersMetadata=[],this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{i.column.id===this._firstColumnIdRendered&&(this._isFilterFirstRender=!1),this.addFilterTemplateToHeaderRow(i,this._isFilterFirstRender),this._firstColumnIdRendered===""&&(this._firstColumnIdRendered=i.column.id)}),this.subscribeToOnHeaderRowCellRendered(e),this._onSearchChange&&this._eventHandler.subscribe(this._onSearchChange,this.onBackendFilterChange.bind(this))}bindLocalOnFilter(e){this._filtersMetadata=[],this._dataView.setFilterArgs({columnFilters:this._columnFilters,grid:this._grid,dataView:this._dataView}),this._dataView.setFilter(this.customLocalFilter.bind(this)),this._onSearchChange&&this._eventHandler.subscribe(this._onSearchChange,async(t,i)=>{const s=(i==null?void 0:i.clearFilterTriggered)??!1;s||await this.emitFilterChanged(oe.local,!0),this._gridOptions.enableTreeData===!0&&(this._tmpPreFilteredData=this.preFilterTreeData(this._dataView.getItems(),this._columnFilters)),s||await this.emitFilterChanged(oe.local),i.columnId!==null&&this._dataView.refresh(),this._previousFilters=this.extractBasicFilterDetails(this._columnFilters)}),this._eventHandler.subscribe(e.onHeaderRowCellRendered,(t,i)=>{this.addFilterTemplateToHeaderRow(i)}),this.subscribeToOnHeaderRowCellRendered(e)}async clearFilterByColumnId(e,t){await this.pubSubService.publish("onBeforeFilterClear",{columnId:t},0);const i=this._gridOptions.backendServiceApi??!1,s=i?oe.remote:oe.local,n=Object.keys(this._columnFilters);let o;Array.isArray(n)&&(o=n.find(a=>a===`${t}`));const l=this._filtersMetadata.find(a=>a.columnDef.id===t);return l!=null&&l.clear&&l.clear(!0),i&&o!==void 0&&this.onBackendFilterChange(e,{grid:this._grid,columnFilters:this._columnFilters}),await this.emitFilterChanged(s),!0}async clearFilters(e=!0){var i,s;e&&await this.pubSubService.publish("onBeforeFilterClear",!0,0),this._filtersMetadata.forEach(n=>{n!=null&&n.clear&&n.clear(!1)}),this.removeAllColumnFiltersProperties(),Array.isArray(this._columnDefinitions)&&this._columnDefinitions.forEach(n=>{var o;(o=n.filter)!=null&&o.searchTerms&&delete n.filter.searchTerms}),this._dataView&&this._grid&&(this._dataView.refresh(),this._grid.invalidate());const t=this._gridOptions.backendServiceApi;if(t&&e){const n={clearFilterTriggered:!0,shouldTriggerQuery:e,grid:this._grid,columnFilters:this._columnFilters},l=t.service.processOnFilterChanged(void 0,n),a=((i=this._gridOptions.pagination)==null?void 0:i.totalItems)??0;(s=this.backendUtilities)==null||s.executeBackendCallback(t,l,n,new Date,a,{errorCallback:this.resetToPreviousSearchFilters.bind(this),successCallback:h=>this._previousFilters=this.extractBasicFilterDetails(h.columnFilters),emitActionChangedCallback:this.emitFilterChanged.bind(this)})}else this._previousFilters=this.extractBasicFilterDetails(this._columnFilters);e&&this.pubSubService.publish("onFilterCleared",!0)}customLocalFilter(e,t){var l;const i=t==null?void 0:t.grid,s=(t==null?void 0:t.columnFilters)??{},n=this._gridOptions.enableTreeData??!1,o=this._gridOptions.treeDataOptions;if(n&&o){const a=o.collapsedPropName??R.treeDataProperties.COLLAPSED_PROP,h=o.parentPropName??R.treeDataProperties.PARENT_PROP,d=(o==null?void 0:o.childrenPropName)??R.treeDataProperties.CHILDREN_PROP,c=this._gridOptions.datasetIdPropertyName??"id",u=o.autoRecalcTotalsOnFilterChange??!1;let p=!1;if(e[h]!==null){let m=this._dataView.getItemById(e[h]);for(;m;){if(m[a])if(u)p=!0;else return!1;m=this._dataView.getItemById(m[h])}}if(this._tmpPreFilteredData instanceof Set){const m=this._tmpPreFilteredData.has(e[c]);if(u){const f=Li(this.sharedService.hierarchicalDataset,g=>g[c]===e[c],d);if(f&&(f.__filteredOut=!m),p)return!1}return m}}else if(typeof s=="object")for(const a of Object.keys(s)){const h=s[a],d=(l=h.columnDef)==null?void 0:l.filter;if(typeof(d==null?void 0:d.filterPredicate)=="function"){if(!d.filterPredicate(e,h))return!1}else{const c=this.preProcessFilterConditionOnDataContext(e,h,i);if(typeof c=="boolean")return c;let u=h==null?void 0:h.parsedSearchTerms;if(u===void 0&&(u=js(h.searchTerms,h.columnDef.type||w.string),u!==void 0&&(h.parsedSearchTerms=u)),!ba.executeFilterConditionTest(c,u))return!1}}return!0}parseFormInputFilterConditions(e,t){var p;const i=de(!0,[],e)||[];let s=Array.isArray(i)&&i.length===1?i[0]:"";const n=t.columnDef,o=((p=n.filter)==null?void 0:p.type)??n.type??w.string;let l=null;o!==w.object&&(s=s==null?"":`${s}`,l=(n.autoParseInputFilterOperator??this._gridOptions.autoParseInputFilterOperator)!==!1?s.match(/^((.*[^\\*\r\n])[*]{1}(.*[^*\r\n]))|^([<>!=*]{0,2})(.*[^<>!=*])([*]?)$/)||[]:[s,"","","","",s,""]);const a=(l==null?void 0:l[2])||"",h=(l==null?void 0:l[3])||"";let d=(l==null?void 0:l[4])||t.operator,c=(l==null?void 0:l[1])||(l==null?void 0:l[5])||"";const u=(l==null?void 0:l[6])||(d==="*z"?"*":"");return typeof s=="string"&&(s=s.replace("'","''"),a&&h?(c=s,d=H.startsWithEndsWith):d==="*"||d==="*z"?d=H.endsWith:(d==="a*"||u==="*")&&(d=H.startsWith)),Array.isArray(l)&&l.length>=1&&Array.isArray(i)&&i.length===1&&(i[0]=c.length>0&&c.substring(0,1)===" "?c.substring(1):c),{dataKey:n.dataKey,fieldType:o,searchTerms:i||[],operator:d,searchInputLastChar:u,filterSearchType:n.filterSearchType,defaultFilterRangeOperator:this._gridOptions.defaultFilterRangeOperator}}preProcessFilterConditionOnDataContext(e,t,i){var u,p,m,f;const s=t.columnDef,n=t.columnId;let o=i.getColumnIndex(n);if(!s&&this.sharedService&&Array.isArray(this.sharedService.allColumns)&&(o=this.sharedService.allColumns.findIndex(g=>g.field===n)),!s)return!0;if(this._gridOptions.enableRowDetailView){const g=((u=this._gridOptions.rowDetailView)==null?void 0:u.keyPrefix)||"__";e[`${g}isPadding`]&&e[`${g}parent`]&&(e=e[`${g}parent`])}let l=((p=s.filter)==null?void 0:p.queryField)||s.queryFieldFilter||s.queryField||s.field||"";typeof s.queryFieldNameGetterFn=="function"&&(l=s.queryFieldNameGetterFn(e));const a=((m=s.filter)==null?void 0:m.type)??s.type??w.string;let h=e[l];(l==null?void 0:l.indexOf("."))>=0&&(h=Ee(e,l));const d=t.operator,c=t.searchTerms||[];if(!c||Array.isArray(c)&&(c.length===0||c.length===1&&d===c[0]))return!0;if(c&&Array.isArray(c)&&a!==w.object)for(let g=0,_=c.length;g<_;g++)c[g]=(c[g]===void 0||c[g]===null?"":c[g])+"";if(((f=s==null?void 0:s.params)==null?void 0:f.useFormatterOuputToFilter)===!0){const g=this._gridOptions.datasetIdPropertyName||"id",_=this._dataView&&typeof this._dataView.getIdxById=="function"?this._dataView.getIdxById(e[g]):0,C=s&&typeof s.formatter=="function"?s.formatter(_||0,o,h,s,e,this._grid):"";h=we(C)}return typeof h=="number"&&(h=h.toString()),{dataKey:s.dataKey,fieldType:a,searchTerms:c,cellValue:h,operator:d,searchInputLastChar:t.searchInputLastChar,filterSearchType:s.filterSearchType,ignoreAccentOnStringFilterAndSort:this._gridOptions.ignoreAccentOnStringFilterAndSort??!1,defaultFilterRangeOperator:this._gridOptions.defaultFilterRangeOperator}}preFilterTreeData(e,t){var g,_,C,b,S,E;const i=this._gridOptions.treeDataOptions,s=(i==null?void 0:i.collapsedPropName)??R.treeDataProperties.COLLAPSED_PROP,n=(i==null?void 0:i.parentPropName)??R.treeDataProperties.PARENT_PROP,o=(i==null?void 0:i.hasChildrenPropName)??R.treeDataProperties.HAS_CHILDREN_PROP,l=this._gridOptions.datasetIdPropertyName??"id",a=(_=(g=this._gridOptions.presets)==null?void 0:g.treeData)==null?void 0:_.toggledItems,h=((C=this._gridOptions.treeDataOptions)==null?void 0:C.initiallyCollapsed)??!1,d=(b=this._gridOptions.treeDataOptions)==null?void 0:b.columnId,c=(S=this._gridOptions.treeDataOptions)==null?void 0:S.excludeChildrenWhenFilteringTree,u=!c&&((E=this._gridOptions.treeDataOptions)==null?void 0:E.autoApproveParentItemWhenTreeColumnIsValid)===!0,p={},m=new Set,f=new Map;return Array.isArray(e)&&(e.forEach(y=>{p[y[l]]=y,delete p[y[l]].__used}),typeof t=="object"&&Object.keys(t).forEach(y=>{var M;const x=t[y],O=x!=null&&x.searchTerms?de(!0,[],x.searchTerms):[],I=this.parseFormInputFilterConditions(O,x),A=x.columnDef,D=((M=A==null?void 0:A.filter)==null?void 0:M.type)??(A==null?void 0:A.type)??w.string,L=js(I.searchTerms,D);L!==void 0&&(x.parsedSearchTerms=L)}),e.forEach(y=>{const x=y[o];let O=!0;for(const I of Object.keys(t)){const A=t[I],D=this.preProcessFilterConditionOnDataContext(y,A,this._grid);if(D){const L=A==null?void 0:A.parsedSearchTerms,M=typeof D=="boolean"?D:ba.executeFilterConditionTest(D,L);if(M&&u&&x&&A.columnId===d){f.set(y[l],!0);break}if(M||!c&&f.get(y[n])===!0){if(x&&A.columnId===d&&f.set(y[l],!0),M||!c&&A.columnId===d)continue}else x&&f.get(y[n])!==!0&&A.columnId!==d&&f.set(y[l],!1)}O=!1}if(O){m.add(y[l]);let I=p[y[n]]??!1;const A=!h;for(!this._isTreePresetExecuted&&Array.isArray(a)&&a.some(D=>D.itemId===I.id&&D.isCollapsed===A)&&(I[s]=A);I;)I.__used??m.add(I[l]),p[I[l]].__used=!0,I=p[I[n]]??!1}})),this._isTreePresetExecuted=!0,m}getColumnFilters(){return this._columnFilters}getPreviousFilters(){return this._previousFilters}getFiltersMetadata(){return this._filtersMetadata}getCurrentLocalFilters(){var t;const e=[];if(this._columnFilters)for(const i of Object.keys(this._columnFilters)){const s=this._columnFilters[i],n={columnId:i||""},o=this.sharedService.allColumns.find(a=>a.id===n.columnId),l=((t=o==null?void 0:o.filter)==null?void 0:t.emptySearchTermReturnAllValues)??!0;s!=null&&s.searchTerms&&(n.searchTerms=s.searchTerms),s.operator&&(n.operator=s.operator),s.targetSelector&&(n.targetSelector=s.targetSelector),Array.isArray(n.searchTerms)&&n.searchTerms.length>0&&(!l||n.searchTerms[0]!=="")&&e.push(n)}return e}emitFilterChanged(e,t=!1){const i=t?"onBeforeFilterChange":"onFilterChanged";if(e===oe.remote&&this._gridOptions.backendServiceApi){let s=[];const n=this._gridOptions.backendServiceApi.service;return n!=null&&n.getCurrentFilters&&(s=n.getCurrentFilters()),this.pubSubService.publish(i,s)}else if(e===oe.local)return this.pubSubService.publish(i,this.getCurrentLocalFilters())}async onBackendFilterChange(e,t){var o,l;const i=t==null?void 0:t.shouldTriggerQuery;if(i&&await this.emitFilterChanged(oe.remote,!0),!t||!t.grid)throw new Error('Something went wrong when trying to bind the "onBackendFilterChange(event, args)" function, it seems that "args" is not populated correctly');const s=this._gridOptions.backendServiceApi;if(!s||!s.process||!s.service)throw new Error('BackendServiceApi requires at least a "process" function and a "service" defined');const n=new Date;if(s.preProcess&&s.preProcess(),i){const a=await s.service.processOnFilterChanged(e,t),h=((o=this._gridOptions.pagination)==null?void 0:o.totalItems)??0;(l=this.backendUtilities)==null||l.executeBackendCallback(s,a,t,n,h,{errorCallback:this.resetToPreviousSearchFilters.bind(this),successCallback:d=>this._previousFilters=this.extractBasicFilterDetails(d.columnFilters),emitActionChangedCallback:this.emitFilterChanged.bind(this),httpCancelRequestSubject:this.httpCancelRequests$})}}populateColumnFilterSearchTermPresets(e){return Array.isArray(e)&&(this._columnDefinitions.forEach(t=>{var s;(s=t.filter)!=null&&s.searchTerms&&delete t.filter.searchTerms;const i=e.find(n=>n.columnId===t.id);i&&Array.isArray(i==null?void 0:i.searchTerms)&&(t.filter=t.filter||{},t.filter.operator=i.operator||t.filter.operator||"",t.filter.searchTerms=i.searchTerms)}),this._gridOptions.enableTreeData&&this.refreshTreeDataFilters(),this._previousFilters=this.extractBasicFilterDetails(this._columnFilters)),this._columnDefinitions}refreshTreeDataFilters(e){var i;const t=e??((i=this._dataView)==null?void 0:i.getItems())??[];this._dataView&&this._gridOptions.enableTreeData&&t.length>0?(this._tmpPreFilteredData=this.preFilterTreeData(t,this._columnFilters),this._dataView.refresh()):t.length===0&&Array.isArray(this.sharedService.hierarchicalDataset)&&this.sharedService.hierarchicalDataset.length>0&&queueMicrotask(()=>this.refreshTreeDataFilters())}disableFilterFunctionality(e=!0,t=!0){const s=!this._gridOptions.enableFiltering;s!==e&&(t&&e&&this.clearFilters(),this.disableAllFilteringCommands(e),this._grid.setOptions({enableFiltering:s},!1,!0),this._grid.setHeaderRowVisibility(s),this._gridOptions.enableFiltering=!e,this.sharedService.gridOptions=this._gridOptions,this._grid.setColumns(this.sharedService.columnDefinitions))}resetToPreviousSearchFilters(){this.updateFilters(this._previousFilters,!1,!1,!1)}toggleFilterFunctionality(e=!0){const t=this._gridOptions.enableFiltering;this.disableFilterFunctionality(t,e)}toggleHeaderFilterRow(){let e=this._gridOptions.showHeaderRow??!1;e=!e,this._grid.setHeaderRowVisibility(e),e===!0&&this._grid.setColumns(this.sharedService.columnDefinitions)}setSortColumnIcons(e){this._grid&&Array.isArray(e)&&this._grid.setSortColumns(e)}async updateFilters(e,t=!0,i=!0,s=!1){var n;if(!this._filtersMetadata||this._filtersMetadata.length===0||!this._gridOptions||!this._gridOptions.enableFiltering)throw new Error('[Slickgrid-Universal] in order to use "updateFilters" method, you need to have Filterable Columns defined in your grid and "enableFiltering" set in your Grid Options');if(Array.isArray(e)){this.clearFilters(!1),e.forEach(a=>{const h=this._filtersMetadata.find(d=>a.columnId===d.columnDef.id);if(a&&h){const d=a.operator||h.defaultOperator;this.updateColumnFilters(a.searchTerms,h.columnDef,d),h.setValues(a.searchTerms||[],d),(s||this._gridOptions.enableTreeData)&&this.callbackSearchEvent(void 0,{columnDef:h.columnDef,operator:d,searchTerms:a.searchTerms,shouldTriggerQuery:!0,forceOnSearchChangeEvent:!0})}});const o=this._gridOptions.backendServiceApi,l=o?oe.remote:oe.local;if(t&&await this.emitFilterChanged(l,!0),this._dataView.refresh(),o){const a=o==null?void 0:o.service;a!=null&&a.updateFilters&&(a.updateFilters(e,!0),i&&((n=this.backendUtilities)==null||n.refreshBackendDataset(this._gridOptions)))}t&&await this.emitFilterChanged(l)}return!0}async updateSingleFilter(e,t=!0,i=!0){var n,o;const s=this.sharedService.allColumns.find(l=>l.id===e.columnId);if(s&&e.columnId){this._columnFilters={};const l=((n=s.filter)==null?void 0:n.emptySearchTermReturnAllValues)??!0;Array.isArray(e.searchTerms)&&(e.searchTerms.length>1||e.searchTerms.length===1&&(!l||e.searchTerms[0]!==""))&&(this._columnFilters[e.columnId]={columnId:e.columnId,operator:e.operator,searchTerms:e.searchTerms,columnDef:s,type:s.type??w.string});const a=this._gridOptions.backendServiceApi,h=a?oe.remote:oe.local;if(t&&await this.emitFilterChanged(h,!0),a){const d=a==null?void 0:a.service;d!=null&&d.updateFilters&&(d.updateFilters(this._columnFilters,!0),i&&((o=this.backendUtilities)==null||o.refreshBackendDataset(this._gridOptions)))}else this._dataView.setFilterArgs({columnFilters:this._columnFilters,grid:this._grid}),this._gridOptions.enableTreeData&&this.refreshTreeDataFilters(),this._dataView.refresh();t&&await this.emitFilterChanged(h)}return!0}drawFilterTemplate(e,t){let i;if(typeof t=="string"){if(i=document.querySelector(t),i===null)return null}else i=t;const s=typeof e=="string"?this.sharedService.allColumns.find(o=>o.id===e):e;if(((s==null?void 0:s.id)??"")!=="selector"&&(s!=null&&s.filterable)){let o,l;const a=this.filterFactory.createFilter(s.filter);l=s&&s.filter&&s.filter.operator||a&&a.operator,this._columnFilters[s.id]?(o=this._columnFilters[s.id].searchTerms||void 0,l=this._columnFilters[s.id].operator||void 0):s.filter&&(o=s.filter.searchTerms||void 0,this.updateColumnFilters(o,s,l));const h={grid:this._grid,operator:l,searchTerms:o,columnDef:s,filterContainerElm:i,callback:this.callbackSearchEvent.bind(this)};return a&&(a.init(h),o&&a.setValues&&a.setValues(o,l)),a}return null}addFilterTemplateToHeaderRow(e,t=!0){const i=e.column;if(((i==null?void 0:i.id)??"")!=="selector"&&(i!=null&&i.filterable)&&!(i!=null&&i.hidden)){let n,o;const l=this.filterFactory.createFilter(i.filter);o=i&&i.filter&&i.filter.operator||l&&l.operator,this._columnFilters[i.id]?(n=this._columnFilters[i.id].searchTerms||void 0,o=this._columnFilters[i.id].operator||void 0):i.filter&&(n=i.filter.searchTerms||void 0,this.updateColumnFilters(n,i,o));const a={grid:this._grid,operator:o,searchTerms:n,columnDef:i,filterContainerElm:e.node,callback:this.callbackSearchEvent.bind(this)};if(l&&a.filterContainerElm){l.init(a,t);const h=this._filtersMetadata.findIndex(d=>l.columnDef.id===d.columnDef.id);h===-1?this._filtersMetadata.push(l):this._filtersMetadata[h]=l,n&&l.setValues&&l.setValues(n,o)}}}callbackSearchEvent(e,t){var i,s;if(t){const n=e!=null&&e.target?e.target.value:void 0,o=t.searchTerms&&Array.isArray(t.searchTerms)?t.searchTerms:n?[n]:void 0,l=t.columnDef||null,a=(l==null?void 0:l.id)??"",h=((i=l==null?void 0:l.filter)==null?void 0:i.type)??(l==null?void 0:l.type)??w.string,d=t.operator||void 0,c=o&&Array.isArray(o),u=c&&o&&o.length,p={...this._columnFilters},m=((s=l.filter)==null?void 0:s.emptySearchTermReturnAllValues)??!0;let f;if(l&&a)if(!c||u===0||u===1&&Array.isArray(o)&&m&&o[0]==="")delete this._columnFilters[a];else{const C=`${a}`,b={columnId:C,columnDef:l,parsedSearchTerms:[],type:h,targetSelector:this.getSelectorStringFromElement(e==null?void 0:e.target)},S=this.parseFormInputFilterConditions(o,b);b.operator=d||S.operator||bn(h),f=js(S.searchTerms,h),f!==void 0&&(b.parsedSearchTerms=f),b.searchTerms=S.searchTerms||[],this._columnFilters[C]=b}const g=e&&typeof e.isPropagationStopped!="function"?de({},new le,e):e,_=e==null?void 0:e.key;if(this._onSearchChange&&(t.forceOnSearchChangeEvent||_==="Enter"||!pt(p,this._columnFilters))){const C={clearFilterTriggered:t.clearFilterTriggered,shouldTriggerQuery:t.shouldTriggerQuery,columnId:a,columnDef:l,columnFilters:this._columnFilters,operator:d||bn(h),searchTerms:o,parsedSearchTerms:f,grid:this._grid,target:e==null?void 0:e.target};this.pubSubService.publish("onBeforeSearchChange",C)===!1?this._gridOptions.resetFilterSearchValueAfterOnBeforeCancellation&&this.resetToPreviousSearchFilters():this._onSearchChange.notify(C,g)}}}disableAllFilteringCommands(e=!0){var s;const t=this._grid.getColumns();t.forEach(n=>{var o,l;(o=n==null?void 0:n.header)!=null&&o.menu&&((l=n.header.menu.commandItems)==null||l.forEach(a=>{a&&typeof a!="string"&&a.command==="clear-filter"&&(a.hidden=e)}))});const i=(s=this._gridOptions.gridMenu)==null?void 0:s.commandItems;return i&&i.forEach(n=>{if(n&&typeof n!="string"){const o=n.command;(o==="clear-filter"||o==="toggle-filter")&&(n.hidden=e)}}),t}extractBasicFilterDetails(e){const t=[];if(e&&typeof e=="object")for(const i of Object.keys(e)){const{operator:s,searchTerms:n}=e[`${i}`];t.push({columnId:i,operator:s,searchTerms:n})}return t}getSelectorStringFromElement(e){return e!=null&&e.localName?e!=null&&e.className?`${e.localName}.${Array.from(e.classList).join(".")}`:e.localName:""}removeAllColumnFiltersProperties(){typeof this._columnFilters=="object"&&Object.keys(this._columnFilters).forEach(e=>{e&&this._columnFilters[e]&&delete this._columnFilters[e]})}subscribeToOnHeaderRowCellRendered(e){this._eventHandler.subscribe(e.onBeforeHeaderRowCellDestroy,(t,i)=>{var n;const s=this._filtersMetadata.find(o=>o.columnDef.id===i.column.id);(n=s==null?void 0:s.destroy)==null||n.call(s)})}updateColumnFilters(e,t,i){var o;const s=((o=t.filter)==null?void 0:o.type)??t.type??w.string,n=js(e,s);e&&t&&(this._columnFilters[t.id]={columnId:t.id,columnDef:t,searchTerms:e,operator:i,parsedSearchTerms:n,type:s})}}const Ys={skipError:!1,triggerEvent:!0},rs={highlightRow:!0,resortGrid:!1,selectRow:!1,scrollRowIntoView:!0,skipError:!1,triggerEvent:!0},wr={highlightRow:!1,selectRow:!1,scrollRowIntoView:!1,skipError:!1,triggerEvent:!0},Sa={applySetColumns:!0,autoResizeColumns:!0,triggerEvent:!0,hideFromColumnPicker:!1,hideFromGridMenu:!1},cu={autoResizeColumns:!0,triggerEvent:!0};class uu{constructor(e,t,i,s,n,o,l){this.gridStateService=e,this.filterService=t,this.pubSubService=i,this.paginationService=s,this.sharedService=n,this.sortService=o,this.treeDataService=l}get _dataView(){var e;return(e=this._grid)==null?void 0:e.getData()}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}dispose(){var e;(e=this._rowSelectionPlugin)==null||e.dispose()}init(e){this._grid=e}clearAllFiltersAndSorts(){this.sortService&&this.sortService.clearSorting&&this.sortService.clearSorting(!1),this.filterService&&this.filterService.clearFilters&&this.filterService.clearFilters()}clearPinning(e=!0){const t=[...this.sharedService.visibleColumns];this.sharedService.slickGrid.setOptions({frozenColumn:-1,frozenRow:-1,frozenBottom:!1,enableMouseWheelScrollHandler:!1}),e&&Array.isArray(t)&&this.sharedService.slickGrid.setColumns(t)}setPinning(e,t=!0,i=!1,s=!0){To(e)?this.clearPinning():(this.sharedService.slickGrid.setOptions(e,i,s),this.sharedService.gridOptions={...this.sharedService.gridOptions,...e}),t&&this.sharedService.slickGrid.autosizeColumns()}getAllColumnDefinitions(){return this.sharedService.allColumns}getVisibleColumnDefinitions(){return this.sharedService.visibleColumns}getColumnFromEventArguments(e){if(!e||!e.grid||!e.grid.getColumns||!e.grid.getDataItem)throw new Error("[Slickgrid-Universal] To get the column definition and data, we need to have these arguments passed as objects (row, cell, grid)");return{row:e.row,cell:e.cell,columnDef:e.grid.getColumns()[e.cell],dataContext:e.grid.getDataItem(e.row),dataView:this._dataView,grid:this._grid}}getDataItemByRowNumber(e){if(!this._grid||typeof this._grid.getDataItem!="function")throw new Error(`[Slickgrid-Universal] We could not find SlickGrid Grid object or it's "getDataItem" method`);return this._grid.getDataItem(e)}getDataItemByRowIndex(e){if(!this._grid||typeof this._grid.getDataItem!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getDataItem" method');return this._grid.getDataItem(e)}getDataItemByRowIndexes(e){if(!this._grid||typeof this._grid.getDataItem!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getDataItem" method');const t=[];return Array.isArray(e)&&e.forEach(i=>{t.push(this._grid.getDataItem(i))}),t}getSelectedRows(){if(!this._grid||typeof this._grid.getSelectedRows!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getSelectedRows" method');return this._grid.getSelectedRows()}getSelectedRowsDataItem(){if(!this._grid||typeof this._grid.getSelectedRows!="function")throw new Error('[Slickgrid-Universal] We could not find SlickGrid Grid object and/or "getSelectedRows" method');const e=this._grid.getSelectedRows();return this.getDataItemByRowIndexes(e)}hideColumnById(e,t){if(this._grid){t={...Sa,...t};const i=this._grid.getColumns(),s=i.findIndex(n=>n.id===e);if(s>=0){const n=En(i,s);t!=null&&t.applySetColumns&&(this.sharedService.visibleColumns=n,this._grid.setColumns(n));const o=this.sharedService.allColumns.findIndex(l=>l.id===e);return o&&(t!=null&&t.hideFromColumnPicker&&(this.sharedService.allColumns[o].excludeFromColumnPicker=!0),t!=null&&t.hideFromGridMenu&&(this.sharedService.allColumns[o].excludeFromGridMenu=!0)),this.executeVisibilityCommands(t,["onHeaderMenuHideColumns"],n),s}}return-1}hideColumnByIds(e,t){if(Array.isArray(e)){const i=this._grid.getColumns().filter(s=>!e.includes(s.id));t={...Sa,...t};for(const s of e)this.hideColumnById(s,{...t,triggerEvent:!1,applySetColumns:!1,autoResizeColumns:!1});this.sharedService.visibleColumns=i,this._grid.setColumns(i),this.executeVisibilityCommands(t,["onHeaderMenuHideColumns","onHideColumns"],i)}}showColumnByIds(e,t){if(this._grid){t={...cu,...t};const i=this.sharedService.allColumns.filter(s=>e.includes(s.id));this._grid.setColumns(i),this.sharedService.visibleColumns=i,this.executeVisibilityCommands(t,["onShowColumns"],this.sharedService.visibleColumns)}}executeVisibilityCommands(e,t,i){e!=null&&e.autoResizeColumns&&this._grid.autosizeColumns(),e!=null&&e.triggerEvent&&t.forEach(s=>this.pubSubService.publish(s,{columns:i}))}highlightRow(e,t){this._grid.getSelectionModel()||(this._rowSelectionPlugin=new fr(this._gridOptions.rowSelectionOptions),this._grid.setSelectionModel(this._rowSelectionPlugin)),t||(t=this._gridOptions.rowHighlightDuration),Array.isArray(e)?e.forEach(i=>this._grid.highlightRow(i)):this._grid.highlightRow(e,t)}setSelectedRow(e){var t;(t=this._grid)!=null&&t.setSelectedRows&&this._grid.setSelectedRows([e])}setSelectedRows(e){var t;(t=this._grid)!=null&&t.setSelectedRows&&this._grid.setSelectedRows(e)}renderGrid(){var e;typeof((e=this._grid)==null?void 0:e.invalidate)=="function"&&this._grid.invalidate()}resetGrid(e){var t,i,s;if(this.clearPinning(!1),this._grid){const n=this.sharedService.allColumns||[];Array.isArray(n)&&n.length>0&&(this._grid.setColumns(n),(t=this._gridOptions)!=null&&t.enableAutoSizeColumns&&this._grid.autosizeColumns(),this.gridStateService.resetColumns(e))}typeof((i=this.filterService)==null?void 0:i.clearFilters)=="function"&&this.filterService.clearFilters(),typeof((s=this.sortService)==null?void 0:s.clearSorting)=="function"&&this.sortService.clearSorting()}addItem(e,t){var h,d,c,u;const i={...rs,...t};if(!(i!=null&&i.skipError)&&(!this._grid||!this._gridOptions||!this._dataView))throw new Error("[Slickgrid-Universal] We could not find SlickGrid Grid, DataView objects");const s=this._gridOptions.datasetIdPropertyName||"id";if(!(i!=null&&i.skipError)&&(!e||!e.hasOwnProperty(s)))throw new Error(`[Slickgrid-Universal] Adding an item requires the item to include an "${s}" property`);if((h=this._gridOptions)!=null&&h.enableTreeData&&(t==null?void 0:t.position)==="top")throw new Error('[Slickgrid-Universal] Please note that `addItem({ position: "top" })` is not supported when used with Tree Data because of the extra complexity.');const n=i==null?void 0:i.position;n==="bottom"||(d=this._gridOptions)!=null&&d.enableTreeData?this._dataView.addItem(e):this._dataView.insertItem(0,e);let o=0;const l=(e==null?void 0:e[s])??"";return(c=this._gridOptions)!=null&&c.enableTreeData?(this.invalidateHierarchicalDataset(),o=this._dataView.getRowById(l),i.scrollRowIntoView&&this._grid.scrollRowIntoView(o??0,!1)):i.resortGrid?(this._dataView.reSort(),o=this._dataView.getRowById(l)):(o=n==="bottom"?this._dataView.getRowById(l):0,i.scrollRowIntoView&&this._grid.scrollRowIntoView(o??0)),i.highlightRow&&o!==void 0&&this.highlightRow(o),o!==void 0&&i.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRow(o),i.triggerEvent&&this.pubSubService.publish("onItemAdded",e),!((u=this._gridOptions)!=null&&u.backendServiceApi)&&this._gridOptions.enablePagination&&(n==="bottom"?this.paginationService.goToLastPage():this.paginationService.goToFirstPage()),o}addItems(e,t){var l,a,h,d;const i={...rs,...t},s=this._gridOptions.datasetIdPropertyName||"id",n=i==null?void 0:i.position,o=[];if(Array.isArray(e))this._dataView.beginUpdate(!0),n==="bottom"||(l=this._gridOptions)!=null&&l.enableTreeData?this._dataView.addItems(e):this._dataView.insertItems(0,e),this._dataView.endUpdate();else return[this.addItem(e,i)||0];if((a=this._gridOptions)!=null&&a.enableTreeData){this.invalidateHierarchicalDataset();const c=((h=e[0])==null?void 0:h[s])??"",u=this._dataView.getRowById(c);i.scrollRowIntoView&&this._grid.scrollRowIntoView(u??0,!1)}else i.resortGrid&&this._dataView.reSort();return n&&i.scrollRowIntoView&&!((d=this._gridOptions)!=null&&d.enableTreeData)&&(n==="bottom"?this._grid.navigateBottom():this._grid.navigateTop()),e.forEach(c=>o.push(this._dataView.getRowById(c[s]))),i.highlightRow&&this.highlightRow(o),i.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows(o),i.triggerEvent&&this.pubSubService.publish("onItemAdded",e),o}deleteItem(e,t){t={...Ys,...t};const i=this._gridOptions.datasetIdPropertyName||"id";if(!(t!=null&&t.skipError)&&(!e||!e.hasOwnProperty(i)))throw new Error(`[Slickgrid-Universal] Deleting an item requires the item to include an "${i}" property`);return this.deleteItemById(e[i],t)}deleteItems(e,t){t={...Ys,...t};const i=this._gridOptions.datasetIdPropertyName||"id";if(!Array.isArray(e))return this.deleteItem(e,t),[e[i]];this._dataView.beginUpdate(!0);const s=[];return e.forEach(n=>{(n==null?void 0:n[i])!==void 0&&s.push(n[i])}),this._dataView.deleteItems(s),this._dataView.endUpdate(),t.triggerEvent&&this.pubSubService.publish("onItemDeleted",e),s}deleteItemById(e,t){if(t={...Ys,...t},!(t!=null&&t.skipError)&&e==null)throw new Error('[Slickgrid-Universal] Cannot delete a row without a valid "id"');return!(this.gridStateService&&this.gridStateService.needToPreserveRowSelection()||!1)&&this._grid&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows([]),this._dataView.deleteItem(e),t.triggerEvent&&this.pubSubService.publish("onItemDeleted",e),e}deleteItemByIds(e,t){if(t={...Ys,...t},Array.isArray(e)){this._dataView.beginUpdate(!0);for(let i=0;i<e.length;i++)e[i]!==null&&this.deleteItemById(e[i],{triggerEvent:!1});return this._dataView.endUpdate(),t.triggerEvent&&this.pubSubService.publish("onItemDeleted",e),e}return[]}updateItem(e,t){t={...wr,...t};const i=this._gridOptions.datasetIdPropertyName||"id",s=!e||!e.hasOwnProperty(i)?void 0:e[i];if(!(t!=null&&t.skipError)&&s===void 0)throw new Error(`[Slickgrid-Universal] Calling Update of an item requires the item to include an "${i}" property`);return this.updateItemById(s,e,t)}updateItems(e,t){var o;t={...wr,...t};const i=this._gridOptions.datasetIdPropertyName||"id";if(!Array.isArray(e))return[this.updateItem(e,t)];this._dataView.beginUpdate(!0);const s=[],n=[];return e.forEach(l=>{const a=!l||!l.hasOwnProperty(i)?void 0:l[i];if(n.push(a),this._dataView.getIdxById(a)!==void 0){const h=this._dataView.getRowById(a);h!==void 0&&(s.push(h),this._grid.updateRow(h))}}),this._dataView.updateItems(n,e),this._dataView.endUpdate(),(o=this._gridOptions)!=null&&o.enableTreeData&&this.invalidateHierarchicalDataset(),t.highlightRow&&this.highlightRow(s),t.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows(s),t.triggerEvent&&this.pubSubService.publish("onItemUpdated",e),s}updateItemById(e,t,i){var n;if(i={...wr,...i},!(i!=null&&i.skipError)&&e===void 0)throw new Error('[Slickgrid-Universal] Cannot update a row without a valid "id"');const s=this._dataView.getRowById(e);if(!(i!=null&&i.skipError)&&!t&&!this._gridOptions.enablePagination)throw new Error(`[Slickgrid-Universal] The item to update in the grid was not found with id: ${e}`);return this._dataView.getIdxById(e)!==void 0&&(this._dataView.updateItem(e,t),s!==void 0&&this._grid.updateRow(s),(n=this._gridOptions)!=null&&n.enableTreeData&&this.invalidateHierarchicalDataset(),i.scrollRowIntoView&&s!==void 0&&this._grid.scrollRowIntoView(s),i.highlightRow&&s!==void 0&&this.highlightRow(s),s!==void 0&&i.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRow(s),i.triggerEvent&&this.pubSubService.publish("onItemUpdated",t)),s}upsertItem(e,t){t={...rs,...t};const i=this._gridOptions.datasetIdPropertyName||"id",s=!e||!e.hasOwnProperty(i)?void 0:e[i];if(!(t!=null&&t.skipError)&&s===void 0)throw new Error(`[Slickgrid-Universal] Calling Upsert of an item requires the item to include an "${i}" property`);return this.upsertItemById(s,e,t)}upsertItems(e,t){if(t={...rs,...t},!Array.isArray(e))return[this.upsertItem(e,t)];this._dataView.beginUpdate(!0);const i=[];e.forEach(n=>{i.push(this.upsertItem(n,{...t,highlightRow:!1,resortGrid:!1,selectRow:!1,triggerEvent:!1}))}),this._dataView.endUpdate();const s=i.map(n=>n.added!==void 0?n.added:n.updated);if(t.highlightRow&&this.highlightRow(s),t.selectRow&&this._gridOptions&&(this._gridOptions.enableCheckboxSelector||this._gridOptions.enableRowSelection)&&this.setSelectedRows(s),t.triggerEvent){this.pubSubService.publish("onItemUpserted",e);const n=i.filter(l=>l.added!==void 0);Array.isArray(n)&&n.length>0&&this.pubSubService.publish("onItemAdded",n);const o=i.filter(l=>l.updated!==void 0);Array.isArray(o)&&o.length>0&&this.pubSubService.publish("onItemUpdated",o)}return i}upsertItemById(e,t,i){let s=!1;if(i={...rs,...i},!(i!=null&&i.skipError)&&e===void 0&&!this.hasRowSelectionEnabled())throw new Error('[Slickgrid-Universal] Calling Upsert of an item requires the item to include a valid and unique "id" property');let n,o;return this._dataView.getRowById(e)===void 0?(n=this.addItem(t,i),s=!0):(o=this.updateItem(t,{highlightRow:i.highlightRow,selectRow:i.selectRow,triggerEvent:i.triggerEvent}),s=!1),i.triggerEvent&&(this.pubSubService.publish("onItemUpserted",t),s?this.pubSubService.publish("onItemAdded",t):this.pubSubService.publish("onItemUpdated",t)),{added:n,updated:o}}invalidateHierarchicalDataset(e){var t;if((t=this._gridOptions)!=null&&t.enableTreeData&&this.treeDataService){const i=e??this._dataView.getItems(),s=this.sortService.getCurrentColumnSorts(),n=this.treeDataService.convertFlatParentChildToTreeDatasetAndSort(i||[],this.sharedService.allColumns,this._gridOptions,s);this.sharedService.hierarchicalDataset=n.hierarchical,this.filterService.refreshTreeDataFilters(e),this._dataView.setItems(n.flat),this._grid.invalidate()}}hasRowSelectionEnabled(){const e=this._grid.getSelectionModel();return!!(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&!!e}}class pu{get eventHandler(){return this._eventHandler}constructor(){this._eventHandler=new pe}dispose(){this._eventHandler.unsubscribeAll()}bindOnBeforeEditCell(e){const t=e==null?void 0:e.getData();this._eventHandler.subscribe(e.onBeforeEditCell,(i,s)=>{if(!i||!s||!e||s.cell===void 0||!e.getColumns||!e.getDataItem)return;const n=e.getColumns()[s.cell];if(typeof n.onBeforeEditCell=="function"){const o={row:s.row,cell:s.cell,dataView:t,grid:e,columnDef:n,dataContext:e.getDataItem(s.row)};n.onBeforeEditCell(i instanceof le?i.getNativeEvent():i,o)}})}bindOnCellChange(e){const t=e==null?void 0:e.getData();this._eventHandler.subscribe(e.onCellChange,(i,s)=>{if(!i||!s||!e||s.cell===void 0||!e.getColumns||!e.getDataItem)return;const n=e.getColumns()[s.cell];if(typeof n.onCellChange=="function"){const o={row:s.row,cell:s.cell,dataView:t,grid:e,columnDef:n,dataContext:e.getDataItem(s.row)};n.onCellChange(i instanceof le?i.getNativeEvent():i,o)}})}bindOnClick(e){const t=e==null?void 0:e.getData();this._eventHandler.subscribe(e.onClick,(i,s)=>{if(!i||!s||!e||s.cell===void 0||!e.getColumns||!e.getDataItem)return;const n=e.getColumns()[s.cell];if(typeof n.onCellClick=="function"){const o={row:s.row,cell:s.cell,dataView:t,grid:e,columnDef:n,dataContext:e.getDataItem(s.row)};n.onCellClick(i instanceof le?i.getNativeEvent():i,o)}})}}class mu{constructor(e,t,i,s,n,o){this.extensionService=e,this.filterService=t,this.pubSubService=i,this.sharedService=s,this.sortService=n,this.treeDataService=o,this._columns=[],this._subscriptions=[],this._selectedRowIndexes=[],this._selectedRowDataContextIds=[],this._wasRecheckedAfterPageChange=!0,this._eventHandler=new pe}get _dataView(){var e;return((e=this._grid)==null?void 0:e.getData())??{}}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get selectedRowDataContextIds(){return this._selectedRowDataContextIds}set selectedRowDataContextIds(e){this._selectedRowDataContextIds=e}init(e){this._grid=e,this.subscribeToAllGridChanges(e)}dispose(){this._columns=[],this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}changeColumnsArrangement(e,t=!0,i=!1){var s,n,o,l,a,h;if(Array.isArray(e)&&e.length>0){const d=this.getAssociatedGridColumns(this._grid,e);if(d&&Array.isArray(d)&&d.length>0){if(Array.isArray(this.sharedService.allColumns)){const c=[];if(this._gridOptions.enableCheckboxSelector){const u=((n=(s=this._gridOptions)==null?void 0:s.checkboxSelector)==null?void 0:n.columnIndexPosition)??0;c.push({columnId:"_checkbox_selector",columnIndexPosition:u})}if(this._gridOptions.enableRowDetailView){const u=((l=(o=this._gridOptions)==null?void 0:o.rowDetailView)==null?void 0:l.columnIndexPosition)??0;c.push({columnId:"_detail_selector",columnIndexPosition:u})}if(this._gridOptions.enableRowMoveManager){const u=((h=(a=this._gridOptions)==null?void 0:a.rowMoveManager)==null?void 0:h.columnIndexPosition)??0;c.push({columnId:"_move",columnIndexPosition:u})}this.addColumnDynamicWhenFeatureEnabled(c,this.sharedService.allColumns,d)}d.forEach(c=>c.originalWidth=c.width||c.originalWidth),this._grid.setColumns(d),this.sharedService.visibleColumns=d,t?this._grid.autosizeColumns():(i||this._gridOptions.enableAutoResizeColumnsByCellContent&&!this._gridOptions.autosizeColumnsByCellContentOnFirstLoad)&&this.pubSubService.publish("onFullResizeByContentRequested",{caller:"GridStateService"})}}}getCurrentGridState(){var o;const{frozenColumn:e,frozenRow:t,frozenBottom:i}=this.sharedService.gridOptions,s={columns:this.getCurrentColumns(),filters:this.getCurrentFilters(),sorters:this.getCurrentSorters(),pinning:{frozenColumn:e,frozenRow:t,frozenBottom:i}},n=this.getCurrentPagination();if(n&&(s.pagination=n),this.hasRowSelectionEnabled()){const l=this.getCurrentRowSelections();l&&(s.rowSelection=l)}if((o=this._gridOptions)!=null&&o.enableTreeData){const l=this.getCurrentTreeDataToggleState();l&&(s.treeData=l)}return s}getColumns(){return this._columns}getAssociatedCurrentColumns(e){const t=[];return e&&Array.isArray(e)&&e.forEach(i=>{i!=null&&i.id&&t.push({columnId:i.id,cssClass:i.cssClass||"",headerCssClass:i.headerCssClass||"",width:i.width||0})}),t}getAssociatedGridColumns(e,t){const i=[],s=this.sharedService.allColumns||e.getColumns();return t&&Array.isArray(t)&&t.forEach(n=>{const o=s.find(l=>l.id===n.columnId);o!=null&&o.id&&i.push({...o,cssClass:n.cssClass||o.cssClass,headerCssClass:n.headerCssClass||o.headerCssClass,width:n.width})}),this._columns=i,i}getCurrentColumns(){return this.getAssociatedCurrentColumns(this._grid.getColumns()||[])}getCurrentFilters(){var e,t;if((e=this._gridOptions)!=null&&e.backendServiceApi){const i=this._gridOptions.backendServiceApi.service;if(i!=null&&i.getCurrentFilters)return i.getCurrentFilters()}else if((t=this.filterService)!=null&&t.getCurrentLocalFilters)return this.filterService.getCurrentLocalFilters();return null}getCurrentPagination(){var e;if((e=this._gridOptions)!=null&&e.enablePagination)if(this._gridOptions.backendServiceApi){const t=this._gridOptions.backendServiceApi.service;if(t!=null&&t.getCurrentPagination)return t.getCurrentPagination()}else return this.sharedService.currentPagination;return null}getCurrentRowSelections(){return this._grid&&this._dataView&&this.hasRowSelectionEnabled()?{gridRowIndexes:this._grid.getSelectedRows()||[],dataContextIds:this._dataView.getAllSelectedIds()||[],filteredDataContextIds:this._dataView.getAllSelectedFilteredIds()||[]}:null}getCurrentSorters(){var e,t;if((e=this._gridOptions)!=null&&e.backendServiceApi){const i=this._gridOptions.backendServiceApi.service;if(i!=null&&i.getCurrentSorters)return i.getCurrentSorters()}else if((t=this.sortService)!=null&&t.getCurrentLocalSorters)return this.sortService.getCurrentLocalSorters();return null}getCurrentTreeDataToggleState(){var e;return(e=this._gridOptions)!=null&&e.enableTreeData&&this.treeDataService?this.treeDataService.getCurrentToggleState():null}needToPreserveRowSelection(){var t;let e=!1;if((t=this._gridOptions)!=null&&t.dataView&&this._gridOptions.dataView.hasOwnProperty("syncGridSelection")){const i=this._gridOptions.dataView.syncGridSelection;typeof i=="boolean"?e=this._gridOptions.dataView.syncGridSelection:typeof i=="object"&&(e=i.preserveHidden||i.preserveHiddenOnSelectionChange),e&&this._gridOptions.backendServiceApi&&this._gridOptions.dataView.hasOwnProperty("syncGridSelectionWithBackendService")&&(e=this._gridOptions.dataView.syncGridSelectionWithBackendService)}return e}resetColumns(e){const t=e||this._columns,i=this.getAssociatedCurrentColumns(t);this.pubSubService.publish("onGridStateChanged",{change:{newValues:i,type:$e.columns},gridState:this.getCurrentGridState()})}resetToOriginalColumns(e=!0){this._grid.setColumns(this.sharedService.allColumns),this.sharedService.visibleColumns=this.sharedService.allColumns,e&&this._grid.autosizeColumns()}resetRowSelectionWhenRequired(){var e,t;if(!this.needToPreserveRowSelection()&&(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)){const i=(t=(e=this.extensionService)==null?void 0:e.getExtensionByName)==null?void 0:t.call(e,G.rowSelection);i!=null&&i.instance&&this._grid.setSelectedRows([])}}subscribeToAllGridChanges(e){this._subscriptions.push(this.pubSubService.subscribe("onFilterChanged",t=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onFilterCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:$e.filter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortChanged",t=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.sorter},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onSortCleared",()=>{this.resetRowSelectionWhenRequired(),this.pubSubService.publish("onGridStateChanged",{change:{newValues:[],type:$e.sorter},gridState:this.getCurrentGridState()})})),this.bindExtensionAddonEventToGridStateChange(G.columnPicker,"onColumnsChanged"),this.bindExtensionAddonEventToGridStateChange(G.gridMenu,"onColumnsChanged"),this.bindSlickGridColumnChangeEventToGridStateChange("onColumnsReordered",e),this.bindSlickGridColumnChangeEventToGridStateChange("onColumnsResized",e),this.bindSlickGridOnSetOptionsEventToGridStateChange(e),(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&this._eventHandler.subscribe(this._dataView.onSelectedRowIdsChanged,(t,i)=>{const s=(this._selectedRowIndexes||[]).slice(),n=(this.selectedRowDataContextIds||[]).slice();if(this.selectedRowDataContextIds=i.filteredIds,this._selectedRowIndexes=i.rows,!pt(this.selectedRowDataContextIds,n)||!pt(this._selectedRowIndexes,s)){const o={gridRowIndexes:this._selectedRowIndexes||[],dataContextIds:i.selectedRowIds,filteredDataContextIds:i.filteredIds};this.pubSubService.publish("onGridStateChanged",{change:{newValues:o,type:$e.rowSelection},gridState:this.getCurrentGridState()})}}),this._subscriptions.push(this.pubSubService.subscribe(["onHeaderMenuHideColumns","onHideColumns","onShowColumns"],t=>{const i=this.getAssociatedCurrentColumns(t.columns);this.pubSubService.publish("onGridStateChanged",{change:{newValues:i,type:$e.columns},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeItemToggled",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.treeData},gridState:this.getCurrentGridState()})})),this._subscriptions.push(this.pubSubService.subscribe("onTreeFullToggleEnd",t=>{this.pubSubService.publish("onGridStateChanged",{change:{newValues:t,type:$e.treeData},gridState:this.getCurrentGridState()})}))}addColumnDynamicWhenFeatureEnabled(e,t,i){e.sort((s,n)=>s.columnIndexPosition-n.columnIndexPosition),e.forEach(s=>{const n=t.findIndex(l=>l.id===s.columnId),o=i.findIndex(l=>l.id===s.columnId);if(n>=0&&o===-1){const l=t[n];n===0?i.unshift(l):i.splice(n,0,l)}})}bindExtensionAddonEventToGridStateChange(e,t){var n,o,l;const i=(o=(n=this.extensionService)==null?void 0:n.getExtensionByName)==null?void 0:o.call(n,e),s=(l=i==null?void 0:i.instance)==null?void 0:l[t];s&&typeof s.subscribe=="function"&&this._eventHandler.subscribe(s,(a,h)=>{const d=h==null?void 0:h.columns,c=this.getAssociatedCurrentColumns(d);this.pubSubService.publish("onGridStateChanged",{change:{newValues:c,type:$e.columns},gridState:this.getCurrentGridState()})})}bindSlickGridColumnChangeEventToGridStateChange(e,t){const i=t==null?void 0:t[e];i&&typeof i.subscribe=="function"&&this._eventHandler.subscribe(i,()=>{const s=t.getColumns(),n=this.getAssociatedCurrentColumns(s);this.pubSubService.publish("onGridStateChanged",{change:{newValues:n,type:$e.columns},gridState:this.getCurrentGridState()})})}bindSlickGridOnSetOptionsEventToGridStateChange(e){const t=e.onSetOptions;this._eventHandler.subscribe(t,(i,s)=>{const{frozenBottom:n,frozenColumn:o,frozenRow:l}=s.optionsBefore,{frozenBottom:a,frozenColumn:h,frozenRow:d}=s.optionsAfter;if(n!==a||o!==h||l!==d){const c={frozenBottom:a,frozenColumn:h,frozenRow:d},u=this.getCurrentGridState();this.pubSubService.publish("onGridStateChanged",{change:{newValues:c,type:$e.pinning},gridState:u})}})}hasRowSelectionEnabled(){const e=this._grid.getSelectionModel();return!!(this._gridOptions.enableRowSelection||this._gridOptions.enableCheckboxSelector)&&!!e}}class fu{constructor(e){this.extensionUtility=e,this._subscriptions=[],this._eventHandler=new pe}get _dataView(){var e;return((e=this._grid)==null?void 0:e.getData())??{}}get eventHandler(){return this._eventHandler}get _gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get _columnDefinitions(){var e;return((e=this._grid)==null?void 0:e.getColumns())??[]}init(e){this._grid=e,e&&this._gridOptions&&this._gridOptions.createPreHeaderPanel&&(this._gridOptions.enableTranslate&&this.translateHeaderGrouping(),this._eventHandler.subscribe(e.onRendered,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(e.onAutosizeColumns,()=>this.renderPreHeaderRowGroupingTitles()),this._eventHandler.subscribe(this._dataView.onRowCountChanged,()=>this.delayRenderPreHeaderRowGroupingTitles(0)),this._eventHandler.subscribe(e.onSetOptions,(t,i)=>{var s,n;((s=i==null?void 0:i.optionsBefore)==null?void 0:s.frozenColumn)!==((n=i==null?void 0:i.optionsAfter)==null?void 0:n.frozenColumn)&&this.delayRenderPreHeaderRowGroupingTitles(0)}),this.delayRenderPreHeaderRowGroupingTitles(75))}dispose(){this._eventHandler.unsubscribeAll()}delayRenderPreHeaderRowGroupingTitles(e=0){window.setTimeout(()=>this.renderPreHeaderRowGroupingTitles(),e)}renderPreHeaderRowGroupingTitles(){var t;const e=this._columnDefinitions.length;if(((t=this._gridOptions)==null?void 0:t.frozenColumn)!==void 0&&this._gridOptions.frozenColumn>=0){const i=this._gridOptions.frozenColumn;this.renderHeaderGroups(this._grid.getPreHeaderPanelLeft(),0,i+1),this.renderHeaderGroups(this._grid.getPreHeaderPanelRight(),i+1,e)}else this.renderHeaderGroups(this._grid.getPreHeaderPanel(),0,e)}renderHeaderGroups(e,t,i){var c,u,p;ee(e),e.className="slick-header-columns",e.style.left="-1000px",e.style.width=`${this._grid.getHeadersWidth()}px`,(c=e.parentElement)==null||c.classList.add("slick-header");const s=this._grid.getHeaderColumnWidthDiff();let n,o=null,l="",a=0;const h=((u=this._gridOptions)==null?void 0:u.frozenHeaderWidthCalcDifferential)??0,d=((p=this._gridOptions)==null?void 0:p.frozenColumn)!==void 0&&this._gridOptions.frozenColumn>=0;for(let m=t;m<i;m++)n=this._columnDefinitions[m],n&&(l===n.columnGroup&&m>0?(a+=n.width||0,o!=null&&o.style&&(o.style.width=`${a-s-h}px`)):(a=n.width||0,o=v("div",{className:`slick-state-default slick-header-column ${d?"frozen":""}`,dataset:{group:n.columnGroup},style:{width:`${a-s}px`}}),v("span",{className:"slick-column-name",textContent:n.columnGroup||""},o),e.appendChild(o)),l=n.columnGroup||"")}translateHeaderGrouping(){const e=this._grid.getColumns();this.extensionUtility.translateItems(e,"columnGroupKey","columnGroup"),this._grid.setColumns(e),this.renderPreHeaderRowGroupingTitles()}}class gu{constructor(e,t,i,s){this.pubSubService=e,this.sharedService=t,this.backendUtilities=i,this.rxjs=s,this._initialized=!1,this._isLocalGrid=!0,this._dataFrom=1,this._dataTo=1,this._itemsPerPage=0,this._pageCount=1,this._pageNumber=1,this._totalItems=0,this._availablePageSizes=[],this._subscriptions=[],this._isCursorBased=!1,this._eventHandler=new pe}get dataView(){var e;return((e=this.grid)==null?void 0:e.getData())??{}}set paginationOptions(e){this._paginationOptions=e}get paginationOptions(){return this._paginationOptions}get availablePageSizes(){return this._availablePageSizes}get dataFrom(){return this._dataFrom}get dataTo(){return this._dataTo}get itemsPerPage(){return this._itemsPerPage}get pageCount(){return this._pageCount}get pageNumber(){return this._pageNumber}get totalItems(){return this._totalItems}set totalItems(e){this._totalItems=e,this._initialized&&this.refreshPagination()}get isCursorBased(){return this._isCursorBased}addRxJsResource(e){this.rxjs=e}init(e,t,i){var n,o;if(this._availablePageSizes=t.pageSizes||[],this.grid=e,this._backendServiceApi=i,this._paginationOptions=t,this._isLocalGrid=!i,this._pageNumber=t.pageNumber||1,this._isCursorBased=((n=i==null?void 0:i.options)==null?void 0:n.useCursor)??!1,i&&(!i.service||!i.process))throw new Error('BackendServiceApi requires the following 2 properties "process" and "service" to be defined.');this._isLocalGrid&&this.dataView&&(this._eventHandler.subscribe(this.dataView.onPagingInfoChanged,(l,a)=>{this._totalItems!==a.totalRows&&(this.updateTotalItems(a.totalRows),this._previousPagination={pageNumber:a.pageNum,pageSize:a.pageSize,pageSizes:this.availablePageSizes,totalItems:a.totalRows})}),queueMicrotask(()=>{this.dataView&&(this.dataView.setRefreshHints({isFilterUnchanged:!0}),this.dataView.setPagingOptions({pageSize:this.paginationOptions.pageSize,pageNum:this._pageNumber-1}))})),this._subscriptions.push(this.pubSubService.subscribe(["onFilterChanged","onFilterCleared"],()=>this.resetPagination())),(o=i==null?void 0:i.options)!=null&&o.infiniteScroll&&this._subscriptions.push(this.pubSubService.subscribe("onSortChanged",()=>this.resetPagination())),this.dataView&&(this._subscriptions.push(this.pubSubService.subscribe("onItemAdded",l=>this.processOnItemAddedOrRemoved(l,!0))),this._subscriptions.push(this.pubSubService.subscribe("onItemDeleted",l=>this.processOnItemAddedOrRemoved(l,!1)))),this.refreshPagination(!1,!1,!0);const s=this.getFullPagination();this._previousPagination={pageNumber:s.pageNumber,pageSize:s.pageSize,pageSizes:s.pageSizes,totalItems:this.totalItems},this._initialized=!0,hs(t,"totalItems",l=>this._totalItems=l)}dispose(){this._initialized=!1,this._eventHandler.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions)}getCurrentPagination(){return{pageNumber:this._pageNumber,pageSize:this._itemsPerPage,pageSizes:this._availablePageSizes}}getFullPagination(){return{pageCount:this._pageCount,pageNumber:this._pageNumber,pageSize:this._itemsPerPage,pageSizes:this._availablePageSizes,totalItems:this._totalItems,dataFrom:this._dataFrom,dataTo:this._dataTo}}getCurrentPageNumber(){return this._pageNumber}getCurrentItemPerPage(){return this._itemsPerPage}changeItemPerPage(e,t,i=!0){return this._pageNumber=1,this._pageCount=Math.ceil(this._totalItems/e),this._itemsPerPage=e,i?this.processOnPageChanged(this._pageNumber,t):Promise.resolve(this.getFullPagination())}goToFirstPage(e,t=!0){return this._pageNumber=1,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,first:this._itemsPerPage}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())}goToLastPage(e,t=!0){return this._pageNumber=this._pageCount||1,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,last:this._itemsPerPage}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())}goToNextPage(e,t=!0){return this._pageNumber<this._pageCount?(this._pageNumber++,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,first:this._itemsPerPage,after:this._cursorPageInfo.endCursor}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())):Promise.resolve(!1)}goToPageNumber(e,t,i=!0){if(this.isCursorBased)return console.assert(!0,"Cursor based navigation cannot navigate to arbitrary page"),Promise.resolve(!1);const s=this._pageNumber;return e<1?this._pageNumber=1:e>this._pageCount?this._pageNumber=this._pageCount:this._pageNumber=e,this._pageNumber!==s?i?this.processOnPageChanged(this._pageNumber,t):Promise.resolve(this.getFullPagination()):Promise.resolve(!1)}goToPreviousPage(e,t=!0){return this._pageNumber>1?(this._pageNumber--,t?this.isCursorBased&&this._cursorPageInfo?this.processOnPageChanged(this._pageNumber,e,{newPage:this._pageNumber,pageSize:this._itemsPerPage,last:this._itemsPerPage,before:this._cursorPageInfo.startCursor}):this.processOnPageChanged(this._pageNumber,e):Promise.resolve(this.getFullPagination())):Promise.resolve(!1)}refreshPagination(e=!1,t=!0,i=!1){var o,l,a;const s={...this.getFullPagination()};if(this._paginationOptions){const h=this._paginationOptions;this._itemsPerPage||(this._isLocalGrid?this._itemsPerPage=h.pageSize:this._itemsPerPage=+((a=(l=(o=this._backendServiceApi)==null?void 0:o.options)==null?void 0:l.paginationOptions)!=null&&a.first?this._backendServiceApi.options.paginationOptions.first:h.pageSize)),(e||this._totalItems!==h.totalItems)&&(e?(this._pageNumber=1,this.paginationOptions.pageNumber=1):!this._initialized&&h.pageNumber&&h.pageNumber>1&&(this._pageNumber=h.pageNumber||1),this._pageNumber===1&&this._backendServiceApi&&this._backendServiceApi.service.resetPaginationOptions()),this._availablePageSizes=h.pageSizes||[],!this._totalItems&&h.totalItems&&(this._totalItems=h.totalItems),this.recalculateFromToIndexes()}this._pageCount=Math.ceil(this._totalItems/this._itemsPerPage),this.sharedService.currentPagination=this.getCurrentPagination(),this.pubSubService.publish("onPaginationRefreshed",this.getFullPagination()),t&&!pt(s,this.getFullPagination())&&this.pubSubService.publish("onPaginationChanged",this.getFullPagination()),i&&!pt(s,this.getFullPagination())&&this.pubSubService.publish("onPaginationPresetsInitialized",this.getFullPagination());const n=this.getFullPagination();this._previousPagination={pageNumber:n.pageNumber,pageSize:n.pageSize,pageSizes:n.pageSizes,totalItems:this.totalItems}}resetPagination(e=!0,t=!0){var i,s;this._isLocalGrid&&this.dataView&&((s=(i=this.sharedService)==null?void 0:i.gridOptions)!=null&&s.enablePagination)&&this.dataView.setPagingOptions({pageSize:this._itemsPerPage,pageNum:0}),this._cursorPageInfo=void 0,this.refreshPagination(!0,e),t&&this.grid.scrollTo(0)}togglePaginationVisibility(e){var t;if(this.grid&&((t=this.sharedService)!=null&&t.gridOptions)){const i=e!==void 0?e:!this.sharedService.gridOptions.enablePagination;if(i&&this.goToFirstPage(),this._isLocalGrid&&this.dataView){const s=e?this._itemsPerPage:0;this.dataView.setPagingOptions({pageSize:s,pageNum:0})}this.sharedService.gridOptions.enablePagination=i,this.pubSubService.publish("onPaginationVisibilityChanged",{visible:i})}}processOnPageChanged(e,t,i){return console.assert(!this.isCursorBased||i,"Configured for cursor based pagination - cursorArgs expected"),this.pubSubService.publish("onBeforePaginationChange",this.getFullPagination())===!1?(this.resetToPreviousPagination(),Promise.resolve(this.getFullPagination())):new Promise((s,n)=>{var o,l,a;if(this.recalculateFromToIndexes(),this._isLocalGrid&&this.dataView)this.dataView.setPagingOptions({pageSize:this._itemsPerPage,pageNum:e-1}),this.pubSubService.publish("onPaginationChanged",this.getFullPagination()),this.pubSubService.publish("onPaginationRefreshed",this.getFullPagination()),s(this.getFullPagination());else{const h=+this._itemsPerPage,d=new Date;if((o=this._backendServiceApi)!=null&&o.preProcess&&this._backendServiceApi.preProcess(),(l=this._backendServiceApi)!=null&&l.process){const c=this.isCursorBased&&i?this._backendServiceApi.service.processOnPaginationChanged(t,i):this._backendServiceApi.service.processOnPaginationChanged(t,{newPage:e,pageSize:h}),u=this._backendServiceApi.process(c);u instanceof Promise?u.then(p=>{var f;(f=this.backendUtilities)==null||f.executeBackendProcessesCallback(d,p,this._backendServiceApi,this._totalItems);const m=this.getFullPagination();this._previousPagination={pageNumber:m.pageNumber,pageSize:m.pageSize,pageSizes:m.pageSizes,totalItems:this.totalItems},s(this.getFullPagination())}).catch(p=>{var m,f,g;this.resetToPreviousPagination(),(m=this.backendUtilities)==null||m.onBackendError(p,this._backendServiceApi),(!((f=this._backendServiceApi)!=null&&f.onError)||!((g=this.backendUtilities)!=null&&g.onBackendError))&&n(u)}):(a=this.rxjs)!=null&&a.isObservable(u)&&this._subscriptions.push(u.subscribe(p=>{var f;const m=this.getFullPagination();this._previousPagination={pageNumber:m.pageNumber,pageSize:m.pageSize,pageSizes:m.pageSizes,totalItems:this.totalItems},s((f=this.backendUtilities)==null?void 0:f.executeBackendProcessesCallback(d,p,this._backendServiceApi,this._totalItems))},p=>{var m,f,g;this.resetToPreviousPagination(),(m=this.backendUtilities)==null||m.onBackendError(p,this._backendServiceApi),(!((f=this._backendServiceApi)!=null&&f.onError)||!((g=this.backendUtilities)!=null&&g.onBackendError))&&n(u)})),this.pubSubService.publish("onPaginationRefreshed",this.getFullPagination()),this.pubSubService.publish("onPaginationChanged",this.getFullPagination())}}})}recalculateFromToIndexes(){((this._pageNumber-1)*this._itemsPerPage>this._totalItems||this._totalItems>0&&this._pageNumber===0)&&(this._pageNumber=1),this._totalItems===0?(this._dataFrom=0,this._dataTo=1,this._pageNumber=0):(this._dataFrom=this._pageNumber>1?this._pageNumber*this._itemsPerPage-this._itemsPerPage+1:1,this._dataTo=this._totalItems<this._itemsPerPage?this._totalItems:(this._pageNumber||1)*this._itemsPerPage,this._dataTo>this._totalItems&&(this._dataTo=this._totalItems)),this._dataTo>this._totalItems?this._dataTo=this._totalItems:this._totalItems<this._itemsPerPage&&(this._dataTo=this._totalItems)}resetToPreviousPagination(){var i,s,n,o,l,a,h,d,c;const e=((i=this._previousPagination)==null?void 0:i.pageNumber)!==this.getFullPagination().pageNumber,t=((s=this._previousPagination)==null?void 0:s.pageSize)!==this.getFullPagination().pageSize;t&&this.changeItemPerPage(((n=this._previousPagination)==null?void 0:n.pageSize)??0,null,!1),e&&this.goToPageNumber(((o=this._previousPagination)==null?void 0:o.pageNumber)??0,null,!1),(e||t)&&(this.refreshPagination(),(c=(a=(l=this._backendServiceApi)==null?void 0:l.service)==null?void 0:a.updatePagination)==null||c.call(a,((h=this._previousPagination)==null?void 0:h.pageNumber)??0,((d=this._previousPagination)==null?void 0:d.pageSize)??0))}setCursorBased(e){this._isCursorBased=e,e&&this.setCursorPageInfo({startCursor:"",endCursor:"",hasNextPage:!1,hasPreviousPage:!1}),this.goToFirstPage(),this.pubSubService.publish("onPaginationSetCursorBased",{isCursorBased:e})}setCursorPageInfo(e){this._cursorPageInfo=e}updateTotalItems(e,t=!1){this._totalItems=e,this._paginationOptions&&(this._paginationOptions.totalItems=e,this.refreshPagination(!1,t))}processOnItemAddedOrRemoved(e,t=!0){if(e!==null){const i=this._dataTo,s=Array.isArray(e)?e.length:1,n=t?+s:-s;this._totalItems+=n,this.recalculateFromToIndexes(),this._dataTo=i+n,this.pubSubService.publish("onPaginationChanged",this.getFullPagination())}}}const _u=20,Cu=25,vu=35,bu=180,Su=300,yu=200;class Eu{get autoHeightRecalcRow(){return this._autoHeightRecalcRow||100}get isAutoHeightEnabled(){var e;return!!(this.gridOptions.enableAutoResize&&((e=this.gridOptions.autoResize)!=null&&e.autoHeight))}get eventHandler(){return this._eventHandler}get gridOptions(){var e;return((e=this._grid)==null?void 0:e.getOptions())??{}}get dataView(){var e;return(e=this._grid)==null?void 0:e.getData()}get gridUid(){var e;return((e=this._grid)==null?void 0:e.getUID())??""}get gridUidSelector(){return this.gridUid?`.${this.gridUid}`:""}get intervalRetryDelay(){return this._intervalRetryDelay}set intervalRetryDelay(e){this._intervalRetryDelay=e}get resizeByContentOptions(){var e;return((e=this.gridOptions)==null?void 0:e.resizeByContentOptions)??{}}constructor(e){this.pubSubService=e,this._allHeaderHeight=0,this._autoHeightRecalcRow=0,this._intervalRetryDelay=yu,this._isStopResizeIntervalRequested=!1,this._hasResizedByContentAtLeastOnce=!1,this._totalColumnsWidthByContent=0,this._resizePaused=!1,this._subscriptions=[],this._eventHandler=new pe,this._bindingEventService=new Pe}dispose(){var e,t;(e=this._eventHandler)==null||e.unsubscribeAll(),this.pubSubService.unsubscribeAll(this._subscriptions),window.clearInterval(this._intervalId),window.clearTimeout(this._timer),((t=this.gridOptions.autoResize)==null?void 0:t.resizeDetection)==="container"&&this._resizeObserver&&this._resizeObserver.disconnect(),this._bindingEventService.unbindAll()}init(e,t){var s,n,o,l,a,h;if(!e||!this.gridOptions||!t)throw new Error(`
|
|
13
13
|
[Slickgrid-Universal] Resizer Service requires a valid Grid object and DOM Element Container to be provided.
|
|
14
14
|
You can fix this by setting your gridOption to use "enableAutoResize" or create an instance of the ResizerService by calling bindAutoResizeDataGrid() once.`);this._grid=e,this._gridContainerElm=t;const i=(s=this.gridOptions)!=null&&s.gridHeight||(n=this.gridOptions)!=null&&n.gridWidth?{height:(o=this.gridOptions)==null?void 0:o.gridHeight,width:(l=this.gridOptions)==null?void 0:l.gridWidth}:void 0;this._autoResizeOptions=((a=this.gridOptions)==null?void 0:a.autoResize)??{container:"grid1",bottomPadding:0},i!=null&&i.width&&(t!=null&&t.style)&&(t.style.width=typeof i.width=="string"?i.width:`${i.width}px`),this._gridDomElm=e.getContainerNode(),typeof this._autoResizeOptions.container=="string"?this._pageContainerElm=typeof this._autoResizeOptions.container=="string"?document.querySelector(this._autoResizeOptions.container):this._autoResizeOptions.container:this._pageContainerElm=this._autoResizeOptions.container,i&&(this._fixedHeight=i.height,this._fixedWidth=i.width),this.gridOptions.enableAutoResize&&(this._autoHeightRecalcRow=((h=this.gridOptions.autoResize)==null?void 0:h.autoHeightRecalcRow)??100,this.bindAutoResizeDataGrid()),this.gridOptions.autoResize&&this._subscriptions.push(this.pubSubService.subscribe("onFullResizeByContentRequested",()=>this.resizeColumnsByCellContent(!0))),this._eventHandler.subscribe(this._grid.onAutosizeColumns,()=>{this.cacheHeaderHeightTotal()}),this.gridOptions.enableColumnResizeOnDoubleClick&&(this._subscriptions.push(this.pubSubService.subscribe("onHeaderMenuColumnResizeByContent",d=>{this.handleSingleColumnResizeByContent(d.columnId)})),this._eventHandler.subscribe(this._grid.onColumnsResizeDblClick,(d,c)=>{this.handleSingleColumnResizeByContent(c.triggeredByColumn)}))}bindAutoResizeDataGrid(e){var t;if(((t=this.gridOptions.autoResize)==null?void 0:t.resizeDetection)==="container"){if(!this._pageContainerElm||!this._pageContainerElm)throw new Error(`
|
|
15
15
|
[Slickgrid-Universal] Resizer Service requires a container when gridOption.autoResize.resizeDetection="container"
|
|
16
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)return null;this.resizeGrid().then(()=>this.resizeGridWhenStylingIsBrokenUntilCorrected()).catch(i=>console.log("Error:",i)),this.resizeGrid(10,e),this._bindingEventService.bind(window,"resize",()=>{this.handleResizeGrid(e)})}}handleResizeGrid(e){this.pubSubService.publish("onGridBeforeResize"),this._resizePaused||(this.resizeGrid(0,e),this.resizeGrid(0,e))}resizeObserverCallback(){this._resizePaused||this.resizeGrid()}cacheHeaderHeightTotal(){const e=this._gridContainerElm.querySelector(`${this.gridUidSelector} .slick-topheader-panel`),t=this._gridContainerElm.querySelector(`${this.gridUidSelector} .slick-pane-header`),i=this._gridContainerElm.querySelector(`${this.gridUidSelector} .slick-headerrow`);this._allHeaderHeight=((e==null?void 0:e.offsetHeight)||0)+((t==null?void 0:t.offsetHeight)||0)+((i==null?void 0:i.offsetHeight)||0)}calculateGridNewDimensions(e){var f,g;const t=(e==null?void 0:e.autoResize)??{},i=ge(this._gridDomElm);if(!window||!this._gridDomElm)return null;let s=(t==null?void 0:t.bottomPadding)!==void 0?t.bottomPadding:_u;if(s&&e.enablePagination&&(s+=vu),s&&e.showCustomFooter){const _=((g=(f=this.gridOptions)==null?void 0:f.customFooterOptions)==null?void 0:g.footerHeight)??Cu;s+=parseInt(`${_}`,10)}let n=0,o=0;t.calculateAvailableSizeBy==="container"?n=us(this._pageContainerElm,"height")||0:(n=window.innerHeight||0,o=i.top);const l=n-o-s,a=us(this._pageContainerElm,"width")||window.innerWidth||0,h=t==null?void 0:t.maxHeight,d=(t==null?void 0:t.minHeight)??bu,c=t==null?void 0:t.maxWidth,u=(t==null?void 0:t.minWidth)??Su;let p=l,m=t!=null&&t.rightPadding?a-t.rightPadding:a;if(e.enableAutoResize&&this.isAutoHeightEnabled){const _=this.dataView.getLength();if(_<this.autoHeightRecalcRow){this._allHeaderHeight||this.cacheHeaderHeightTotal();const C=_*e.rowHeight,b=this._allHeaderHeight+C;b<p&&(p=b)}}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?(window.clearTimeout(this._timer),this._timer=window.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=Gs(t==null?void 0:t.formatter,i,s,t,e,this._grid),h=ei(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)??w.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=window.setInterval(async()=>{var b,S,E;const u=ge(i);let p=u.top;(b=this.gridOptions)!=null&&b.enableFiltering&&this.gridOptions.headerRowHeight&&(p+=this.gridOptions.headerRowHeight),(S=this.gridOptions)!=null&&S.createPreHeaderPanel&&this.gridOptions.showPreHeaderPanel&&this.gridOptions.preHeaderPanelHeight&&(p+=this.gridOptions.preHeaderPanelHeight),p+=44;const f=ge(s).top,g=ge(this._gridContainerElm);let _=(u==null?void 0:u.top)===0||p-f>2||g.left===0&&g.top===0;const C=((E=this._grid.getRenderedRange())==null?void 0:E.rightPx)??0;!_&&h>0&&C===0&&d.length>1&&(_=!0),this._isStopResizeIntervalRequested&&(_=!1,n=e),this.checkIsGridShown()&&(_||g.left===0||g.top===0)&&(await this.resizeGrid(),o<5&&this._grid.updateColumns(),this.checkIsGridShown()&&(_=!1)),this.checkIsGridShown()&&o++,this.checkIsGridShown()&&!_&&(o>=t||n++>=e)&&window.clearInterval(this._intervalId)},this.intervalRetryDelay)}}}class wu{constructor(){this.currentPagination=null,this.isItemsDateParsed=!1,this.frozenVisibleColumnId="",this.hasColumnsReordered=!1,this.hideHeaderRowAfterPageLoad=!1}get allColumns(){return this._allColumns}set allColumns(e){this._allColumns=e}get columnDefinitions(){var e;return((e=this.slickGrid)==null?void 0:e.getColumns())??[]}get gridOptions(){var e;return this._gridOptions||((e=this.slickGrid)==null?void 0:e.getOptions())||{}}set gridOptions(e){this._gridOptions=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 Tu{constructor(e,t,i,s,n){this.collectionService=e,this.sharedService=t,this.pubSubService=i,this.backendUtilities=s,this.rxjs=n,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)),this._gridOptions.preParseDateColumns&&(this._eventHandler.subscribe(e.onCellChange,(t,i)=>this.preParseSingleDateItem(i.item)),this.pubSubService.subscribe(["onItemAdded","onItemUpdated"],t=>this.preParseSingleDateItem(t)))}preParseSingleDateItem(e){this._gridOptions.preParseDateColumns&&(Array.isArray(e)?e:[e]).forEach(i=>this.collectionService.parseSingleDateItem(i,this._grid,this._gridOptions.preParseDateColumns))}preParseAllDateItems(){var e;if(this._gridOptions.preParseDateColumns){const t=((e=this._dataView)==null?void 0:e.getItems())||[];this.collectionService.preParseByMutationDateItems(t,this._grid,this._gridOptions.preParseDateColumns),this.sharedService.isItemsDateParsed=!0}}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?ut.ASC:ut.DESC})}),this.onLocalSortChanged(this._grid,i),this.emitSortChanged(oe.local)}clearSortByColumnId(e,t){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 l=this._gridOptions.multiColumnSort||!1?s:s[0];this._grid.onSort.notify(l)}const n=s.map(o=>{var l;return{columnId:((l=o==null?void 0:o.sortCol)==null?void 0:l.id)??"",sortAsc:o==null?void 0:o.sortAsc,sortCol:o==null?void 0:o.sortCol}});this._grid.setSortColumns(n)}Array.isArray(s)&&s.length===0&&this.sortLocalGridByDefaultSortFieldId()}clearSorting(e=!0){var t;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 i=(t=this._gridOptions.backendServiceApi)==null?void 0:t.service;i!=null&&i.clearSorters&&i.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){if(e===oe.remote&&this._gridOptions.backendServiceApi){let i=[];const s=this._gridOptions.backendServiceApi.service;s!=null&&s.getCurrentSorters&&(i=s.getCurrentSorters()),this.pubSubService.publish("onSortChanged",i)}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()===ut.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;if(this._gridOptions.enableTreeData&&this._gridOptions.treeDataOptions){const i=this._gridOptions.treeDataOptions;if(this._columnDefinitions.find(n=>n.id===i.columnId)){let n=ut.ASC,o={columnId:i.columnId};if((e=i==null?void 0:i.initialSort)!=null&&e.columnId){const l=i.initialSort.columnId,a=this._columnDefinitions.find(h=>h.id===l);n=(i.initialSort.direction||ut.ASC).toUpperCase(),o={columnId:l,sortCol:a,sortAsc:n===ut.ASC}}o!=null&&o.columnId&&((t=this.sharedService)!=null&&t.hierarchicalDataset)&&this.updateSorting([{columnId:o.columnId||"",direction:n}])}}}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){const n=this._gridOptions.datasetIdPropertyName||"id",o=this._gridOptions.enableTreeData||!1,l=e.getData();if(await this.pubSubService.publish("onBeforeSortChange",{sortColumns:t},0),e&&l){if(this._gridOptions.preParseDateColumns&&!this.sharedService.isItemsDateParsed&&t.some(a=>{var h;return It((h=a.sortCol)==null?void 0:h.type)})&&this.preParseAllDateItems(),i&&!o&&l.reSort(),o&&this._dataView&&this.sharedService&&Array.isArray(this.sharedService.hierarchicalDataset)){const a=this.sortHierarchicalDataset(this.sharedService.hierarchicalDataset,t);this._dataView.setItems(a.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(a=>{var h;return{columnId:((h=a.sortCol)==null?void 0:h.id)??"id",direction:a.sortAsc?ut.ASC:ut.DESC}}))}}sortHierarchicalDataset(e,t,i=!1){this.sortTreeData(e,t);const s=this._gridOptions.datasetIdPropertyName||"id",n=this._gridOptions.treeDataOptions||{columnId:""},o={...n,identifierPropName:n.identifierPropName??s,shouldAddTreeLevelNumber:!0},l=lo(e,o);if(i){this._currentLocalSorters=[],t.forEach(h=>{this._currentLocalSorters.push({columnId:h.columnId,direction:h.sortAsc?"ASC":"DESC"})});const a=this._gridOptions.backendServiceApi?oe.remote:oe.local;this.emitSortChanged(a)}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=n.type||w.string,l=e.sortAsc?ae.asc:ae.desc;let a=s||n.queryFieldSorter||n.queryField||n.field;this._gridOptions.preParseDateColumns&&It(o)&&(e!=null&&e.columnId)&&(a=typeof this._gridOptions.preParseDateColumns=="string"?`${this._gridOptions.preParseDateColumns}${e.columnId}`:`${e.columnId}`);let h=a;typeof n.queryFieldNameGetterFn=="function"&&(a=n.queryFieldNameGetterFn(t),h=n.queryFieldNameGetterFn(i));let d=t[a],c=i[h];if((a==null?void 0:a.indexOf("."))>=0&&(d=Ee(t,a)),(h==null?void 0:h.indexOf("."))>=0&&(c=Ee(i,h)),n.sortComparer){const u=n.sortComparer(d,c,l,n,this._gridOptions);if(u!==ae.neutral)return u}else{const u=_i(o,d,c,l,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 n;const s=((n=this._gridOptions.treeDataOptions)==null?void 0:n.childrenPropName)??"children";e.sort((o,l)=>this.sortComparer(t,o,l)??ae.neutral),e.forEach(o=>{o&&o.hasOwnProperty(s)&&Array.isArray(o[s])&&(i++,this.sortTreeChildren(o[s],t,i),i--)})}updateSorting(e,t=!0,i=!0){var s;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 n=this._gridOptions.backendServiceApi;if(n){const o=n==null?void 0:n.service;o!=null&&o.updateSorters&&(o.updateSorters(void 0,e),i&&((s=this.backendUtilities)==null||s.refreshBackendDataset(this._gridOptions)))}else this.loadGridSorters(e);if(t){const o=n?oe.remote:oe.local;this.emitSortChanged(o)}}}disableAllSortingCommands(e=!0){var s;const t=this._grid.getColumns();t.forEach(n=>{var o,l;n.sortable!==void 0&&(n.sortable=!e),(o=n==null?void 0:n.header)!=null&&o.menu&&((l=n.header.menu.commandItems)==null||l.forEach(a=>{if(a&&typeof a!="string"){const h=a.command;(h==="sort-asc"||h==="sort-desc"||h==="clear-sort")&&(a.hidden=e)}}))});const i=(s=this._gridOptions.gridMenu)==null?void 0:s.commandItems;return i&&i.forEach(n=>{n&&typeof n!="string"&&n.command==="clear-sorting"&&(n.hidden=e)}),t}}class Ou{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,window.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&&(window.clearTimeout(this._timer),this._timer=window.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=Ae(this.treeDataOptions,"collapsedPropName"),o=Ae(this.treeDataOptions,"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,!0),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?xt.toggleCollapse:xt.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=Ae(this.treeDataOptions,"levelPropName");return this.dataView.getItems().filter(i=>i[t]===e).length}return this.dataView.getItemCount()}getToggledItems(){return this._currentToggledItems}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 ao(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=>{Mi(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=Ae(this.treeDataOptions,"hasChildrenPropName");t&&await this.pubSubService.publish("onTreeFullToggleStart",{collapsing:e}),this.dataView.beginUpdate(!0);const o=this.dataView.getItems()||[];o.forEach(l=>{l[n]&&this.updateToggledItem(l,e,!1)}),this.sharedService.hierarchicalDataset=this.convertFlatParentChildToTreeDataset(o,this.gridOptions),this.dataView.endUpdate(),this.dataView.refresh(),this._isLastFullToggleCollapsed=e}const i=e?xt.fullCollapse:xt.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=Ae(this.treeDataOptions,"collapsedPropName"),o=Ae(this.treeDataOptions,"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=Li(this.sharedService.hierarchicalDataset||[],u,o);p&&(p[n]=h),this._grid.invalidate(),this._lastToggleStateChange={type:h?xt.toggleCollapse:xt.toggleExpand,previousFullToggleType:this._isLastFullToggleCollapsed?"full-collapse":"full-expand",toggledItems:this._currentToggledItems},this.pubSubService.publish("onTreeItemToggled",{...this._lastToggleStateChange,fromItemId:d})}e.stopImmediatePropagation()}}}updateToggledItem(e,t,i){var l;const s=((l=this.gridOptions)==null?void 0:l.datasetIdPropertyName)??"id",n=Ae(this.treeDataOptions,"childrenPropName"),o=Ae(this.treeDataOptions,"collapsedPropName");if(e&&(e[o]=t,this.dataView.updateItem(e[s],e),i)){const a=d=>d[s]===e[s],h=Li(this.sharedService.hierarchicalDataset||[],a,n);h&&(h[o]=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 Yt{constructor(e){this.translaterService=e,this._debounceTypingDelay=0,this._shouldTriggerQuery=!0,this._inputType="text",this.inputFilterType="single",this.searchTerms=[],this._bindEventService=new Pe}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=pi(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:w.string;let t,i="text";if((s=this.columnFilter)!=null&&s.compoundOperatorList)t=this.columnFilter.compoundOperatorList;else switch(e){case w.string:case w.text:case w.readonly:case w.password:i="text",t=Qh(this.gridOptions,this.translaterService);break;default:i="numeric",t=Nn(this.gridOptions,this.translaterService);break}return Hn(this.gridOptions,t,i),t}createDomFilterElement(e){var n,o,l,a;const t=((n=this.columnDef)==null?void 0:n.id)??"";ee(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)??`${Ct(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","slick-filter"),this._cellContainerElm.appendChild(this._filterInputElm),this._cellContainerElm.appendChild(document.createElement("span"));else{this._filterInputElm.classList.add("compound-input"),this._selectOperatorElm=Ln(this.getCompoundOperatorOptionValues(),this.grid),this._filterContainerElm=v("div",{className:`form-group search-filter slick-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=pi(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&&q(this._currentValue)||this._currentValue===""&&q(this._lastSearchValue);(this.inputFilterType==="single"||!c||u)&&(d>0?(window.clearTimeout(this._timer),this._timer=window.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 ya extends Yt{constructor(e){super(e),this.translaterService=e,this.inputType="text",this.inputFilterType="compound"}}class xu extends Yt{constructor(e){super(e),this.translaterService=e,this.inputType="number",this.inputFilterType="compound"}}class Iu extends Yt{constructor(e){super(e),this.translaterService=e,this.inputType="password",this.inputFilterType="compound"}}const Tr="#86bff8",qs=0,Ru=20;class Or{constructor(e){this.translaterService=e,this._clearFilterTriggered=!1,this._shouldTriggerQuery=!0,this._sliderTrackFilledColor=Tr,this.sliderType="double",this.searchTerms=[],this._bindEventService=new Pe}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")||Tr,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)):(q(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=pi(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);ee(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=Ln(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??`${Ct(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??`${Ct(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 slick-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=Nn(this.gridOptions,this.translaterService),Hn(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&&q(this._currentValue)||!q(this._currentValue)&&q(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)??qs)&&(this._sliderLeftInputElm.value=String(t-(((l=this.filterOptions)==null?void 0:l.stopGapBetweenSliderHandles)??qs))),this._sliderLeftInputElm&&this._sliderRightInputElm&&(+this._sliderLeftInputElm.value>=+this._sliderRightInputElm.value-Ru?(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)??qs)&&(this._sliderRightInputElm.value=String(t+(((l=this.filterOptions)==null?void 0:l.stopGapBetweenSliderHandles)??qs))),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||Tr).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 Au extends Or{constructor(e){super(e),this.translaterService=e,this.sliderType="compound"}}class Pu extends ql{constructor(e){super(e),this.translaterService=e,this.inputFilterType="range"}}class ku extends Yt{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
|
-
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 Fu extends Yt{constructor(e){super(e),this.translaterService=e,this.inputType="number"}}class Du extends Yt{constructor(e){super(e),this.translaterService=e,this.inputType="password"}}var Mu=Object.defineProperty,Lu=(r,e,t)=>e in r?Mu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,V=(r,e,t)=>Lu(r,typeof e!="symbol"?e+"":e,t),Nu=class{constructor(e){V(this,"_distinctEvent"),V(this,"_boundedEvents",[]),this._distinctEvent=(e==null?void 0:e.distinctEvent)??!1}get boundedEvents(){return this._boundedEvents}dispose(){this.unbindAll(),this._boundedEvents=[]}bind(e,t,i,s,n=""){let o=Array.isArray(t)?t:[t];if(typeof(e==null?void 0:e.forEach)=="function")e.forEach(l=>{for(let a of o)(!this._distinctEvent||this._distinctEvent&&!this.hasBinding(l,a))&&(l.addEventListener(a,i,s),this._boundedEvents.push({element:l,eventName:a,listener:i,groupName:n}))});else for(let l of o)(!this._distinctEvent||this._distinctEvent&&!this.hasBinding(e,l))&&(e.addEventListener(l,i,s),this._boundedEvents.push({element:e,eventName:l,listener:i,groupName:n}))}hasBinding(e,t){return this._boundedEvents.some(i=>i.element===e&&(!t||i.eventName===t))}unbind(e,t,i){var s;if(e){let n=Array.isArray(e)?e:[e],o=Array.isArray(t)?t||"":[t||""];for(let l of n){i||(i=this._boundedEvents.find(a=>{if(a.element===l&&(!t||a.eventName===t))return a.listener}));for(let a of o)(s=l==null?void 0:l.removeEventListener)==null||s.call(l,a,i)}}}unbindAll(e){if(e){let t=Array.isArray(e)?e:[e];for(let i=this._boundedEvents.length-1;i>=0;--i){let s=this._boundedEvents[i];if(t.some(n=>n===s.groupName)){let{element:n,eventName:o,listener:l}=s;this.unbind(n,o,l),this._boundedEvents.splice(i,1)}}}else for(;this._boundedEvents.length>0;){let t=this._boundedEvents.pop(),{element:i,eventName:s,listener:n}=t;this.unbind(i,s,n)}}},Ea=typeof window<"u"&&window.multipleSelect!==void 0?window.multipleSelect:{locales:{}},Hu={formatSelectAll(){return"[Select all]"},formatAllSelected(){return"All selected"},formatCountSelected(r,e){return`${r} of ${e} selected`},formatNoMatchesFound(){return"No matches found"},formatOkButton(){return"OK"}};Ea.locales["en-US"]=Hu;var wa=Ea.locales,Vu=50,Bu=4,Ta={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},zu=["init","getOptions","refreshOptions","getSelects","setSelects","enable","disable","open","close","check","uncheck","checkAll","uncheckAll","checkInvert","focus","blur","refresh","destroy"];Object.assign(Ta,wa["en-US"]);var $u={BLOCK_ROWS:Vu,CLUSTER_BLOCKS:Bu,DEFAULTS:Ta,METHODS:zu},gt=$u;function Wu(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 xr(r){let e=()=>{let s={};for(let n in r)Object.prototype.hasOwnProperty.call(r,n)&&(s[n]=xr(r[n]));return s},t=()=>r.map(s=>xr(s)),i=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return i==="object"?e():i==="array"?t():r}function Ir(r){return r!=null&&r!==""}function Gu(r,e){return typeof r=="object"?Object.fromEntries(e?Object.entries(r).filter(([t,i])=>!Ir(i)&&!e.includes(t)||Ir(i)):Object.entries(r).filter(([t,i])=>Ir(i))):r}function Uu(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 Ks(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 ju(r){return r.replace(/(\b)(on[a-z]+)(\s*)=([^>]*)|javascript:([^>]*)[^>]*|(<\s*)(\/*)script([<>]*).*(<\s*)(\/*)script(>*)|(<|<)(\/*)(script|script defer)(.*)(>|>|>">)/gi,"")}function Rr(r){return Object.keys(r).forEach(e=>r[e]===void 0?delete r[e]:""),r}function Oi(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 Ar(r){let e=0,t=0,i=0,s=0,n=window.innerHeight??0,o=window.innerWidth??0,l=Ku(),a=l.top,h=l.left,d=Fr(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 Pr(r=""){return r.split(" ").filter(e=>e)}function Ue(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 Oa(r,e,t){var n;let i=(n=r.props)!=null&&n.innerHTML?qu(r.props,"innerHTML"):r.props,s=Ue(r.tagName,Gu(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)Oa(o,s);return e==null||e.appendChild(s),s}function kr(r){return r.hasOwnProperty("tagName")?Oa(r):document.createElement("li")}function Xs(r){for(;r!=null&&r.firstChild;)r.lastChild&&r.removeChild(r.lastChild);return r}function Fr(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 Qs(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 xa(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 Yu(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 Ia(r,e){r!=null&&r.style&&(r.style.display=r.style.display==="none"&&e!==!1||e===!0?"block":"none")}function Ku(){return{left:window.pageXOffset||document.documentElement.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||0}}var Xu=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),Xs(this.contentEl)}}reset(e){this.lastCluster=0,this.cache={},Xs(this.contentEl),this.initDOM(e)}initDOM(e){if(typeof this.clusterHeight>"u"){this.cache.scrollTop=this.scrollEl.scrollTop;let o=kr(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);Xs(this.contentEl),i&&s?(t.topOffset&&this.contentEl.appendChild(this.getExtra("top",t.topOffset)),t.rows.forEach(o=>this.contentEl.appendChild(kr(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*gt.BLOCK_ROWS,this.clusterRows=gt.BLOCK_ROWS*gt.CLUSTER_BLOCKS,this.clusterHeight=this.blockHeight*gt.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<gt.BLOCK_ROWS)return{topOffset:0,bottomOffset:0,rowsAbove:0,rows:e};let i=Math.max((this.clusterRows-gt.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}},os=".ms-select-all, ul li[data-key]",Qu=".ms-select-all.highlighted, ul li[data-key].highlighted",Zu=class{constructor(r,e){this.elm=r,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({},gt.DEFAULTS,this.elm.dataset,e),this._bindEventService=new Nu({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(r=!0){var e,t,i,s,n;this.elm&&this.parentElm&&(this.options.onDestroy({hardDestroy:r}),r&&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(),(e=this.virtualScroll)==null||e.destroy(),(t=this.dropElm)==null||t.remove(),this.dropElm=void 0,(i=this.parentElm.parentNode)==null||i.removeChild(this.parentElm),this.fromHtml&&(delete this.options.data,this.fromHtml=!1),this.options.onAfterDestroy({hardDestroy:r}),r&&((n=(s=this.options).onAfterHardDestroy)==null||n.call(s),Object.keys(this.options).forEach(o=>delete this[o])))}initLocale(){if(this.options.locale){if(typeof this.options.locale=="object"){Object.assign(this.options,this.options.locale);return}let r=window.multipleSelect.locales,e=this.options.locale.split(/-|_/);if(e[0]=e[0].toLowerCase(),e[1]&&(e[1]=e[1].toUpperCase()),r[this.options.locale])Object.assign(this.options,r[this.options.locale]);else if(r[e.join("-")])Object.assign(this.options,r[e.join("-")]);else if(r[e[0]])Object.assign(this.options,r[e[0]]);else throw new Error(`[multiple-select-vanilla] invalid locales "${this.options.locale}", make sure to import it before using it`)}}initContainer(){var i;let r=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),(i=this.labelElm)!=null&&i.querySelector("input")&&(this.labelElm=null),typeof this.options.single>"u"&&(this.options.single=!this.elm.multiple),this.parentElm=Ue("div",{className:Pr(`ms-parent ${this.elm.className||""} ${this.options.classes}`).join(" "),dataset:{test:"sel"}}),this.options.darkMode&&this.parentElm.classList.add("ms-dark-mode");let e=this.elm.getAttribute("title")||"";e&&(this.parentElm.title=e),this.options.placeholder=this.options.placeholder||this.elm.getAttribute("placeholder")||"",this.choiceElm=Ue("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(Ue("span",{className:"ms-placeholder",textContent:this.options.placeholder})),this.options.showClear&&(this.selectClearElm=Ue("div",{className:"ms-icon ms-icon-close"}),this.selectClearElm.style.display="none",this.choiceElm.appendChild(this.selectClearElm)),this.choiceElm.appendChild(Ue("div",{className:"ms-icon ms-icon-caret"})),this.dropElm=Ue("div",{className:`ms-drop ${this.options.position}`,ariaExpanded:"false"},this.parentElm),this.options.darkMode&&this.dropElm.classList.add("ms-dark-mode"),r&&(this.dropElm.dataset.name=r);let t=this.elm.getAttribute("data-test")||this.options.dataTest;t&&(this.parentElm.dataset.test=t,this.dropElm.dataset.test=t),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`),Yu(this.elm,this.parentElm),this.elm.disabled&&(this.choiceElm.classList.add("disabled"),this.choiceElm.disabled=!0),this.selectAllName=`selectAll${r}`,this.selectGroupName=`selectGroup${r}`,this.selectItemName=`selectItem${r}`,this.options.keepOpen||(this._bindEventService.unbindAll("body-click"),this._bindEventService.bind(document.body,"click",s=>{this.getEventTarget(s)===this.choiceElm||xa(this.getEventTarget(s),".ms-choice")===this.choiceElm||(this.getEventTarget(s)===this.dropElm||xa(this.getEventTarget(s),".ms-drop")!==this.dropElm&&this.getEventTarget(s)!==this.elm)&&this.options.isOpen&&this.close("body.click")},void 0,"body-click"))}initData(){let r=[];if(this.options.data){if(Array.isArray(this.options.data))this.data=this.options.data.map(e=>typeof e=="string"||typeof e=="number"?{text:e,value:e}:e);else if(typeof this.options.data=="object"){for(let[e,t]of Object.entries(this.options.data))r.push({value:e,text:`${t}`});this.data=r}}else this.elm.childNodes.forEach(e=>{let t=this.initRow(e);t&&r.push(t)}),this.options.data=r,this.data=r,this.fromHtml=!0;this.dataTotal=Uu(this.data||[])}initRow(r,e){var i,s;let t={};return((i=r.tagName)==null?void 0:i.toLowerCase())==="option"?(t.type="option",t.text=this.options.textTemplate(r),t.value=r.value,t.visible=!0,t.selected=!!r.selected,t.disabled=e||r.disabled,t.classes=r.getAttribute("class")||"",t.title=r.getAttribute("title")||"",r.dataset.value&&(t._value=r.dataset.value),Object.keys(r.dataset).length&&(t._data=r.dataset,t._data.divider&&(t.divider=t._data.divider)),t):((s=r.tagName)==null?void 0:s.toLowerCase())==="optgroup"?(t.type="optgroup",t.label=this.options.labelTemplate(r),t.visible=!0,t.selected=!!r.selected,t.disabled=r.disabled,t.children=[],Object.keys(r.dataset).length&&(t._data=r.dataset),r.childNodes.forEach(n=>{t.children.push(this.initRow(n,t.disabled))}),t):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 r=0;for(let e of this.data||[])e.type==="optgroup"?r+=e.children.length:r+=1;this.options.filter=r>this.options.filterByDataLength}initList(){var r,e;if(this.options.filter&&(this.filterParentElm=Ue("div",{className:"ms-search"},this.dropElm),this.filterParentElm.appendChild(Ue("input",{autocomplete:"off",autocapitalize:"off",spellcheck:!1,type:"text",placeholder:this.options.filterPlaceholder||"🔎︎"})),this.options.showSearchClear&&this.filterParentElm.appendChild(Ue("span",{className:"ms-icon ms-icon-close"}))),this.options.selectAll&&!this.options.single){let t=this.elm.getAttribute("name")||this.options.name||"";this.selectAllParentElm=Ue("div",{className:"ms-select-all",dataset:{key:"select_all"}});let i=document.createElement("label"),s=`ms-icon ${this.isAllSelected?"ms-icon-check":this.isPartiallyAllSelected?"ms-icon-minus":"ms-icon-uncheck"}`,n=Ue("div",{className:"icon-checkbox-container"},i);Ue("input",{type:"checkbox",ariaChecked:String(this.isAllSelected),checked:this.isAllSelected,dataset:{name:`selectAll${t}`}},n),Ue("div",{className:s},n),i.appendChild(Ue("span",{textContent:this.formatSelectAll()})),this.selectAllParentElm.appendChild(i),(r=this.dropElm)==null||r.appendChild(this.selectAllParentElm)}this.ulElm=document.createElement("ul"),this.ulElm.role="combobox",this.ulElm.ariaExpanded="false",this.ulElm.ariaMultiSelectable=String(!this.options.single),(e=this.dropElm)==null||e.appendChild(this.ulElm),this.options.showOkButton&&!this.options.single&&(this.okButtonElm=Ue("button",{className:"ms-ok-button",type:"button",textContent:this.formatOkButton()},this.dropElm)),this.initListItems()}initListItems(){var t;let r=0,e=this.getListRows();if(this.options.selectAll&&!this.options.single&&(r=-1),e.length>gt.BLOCK_ROWS*gt.CLUSTER_BLOCKS){let i=this.dropElm&&((t=this.dropElm)==null?void 0:t.style.display)!=="none";!i&&this.dropElm&&(this.dropElm.style.left="-10000",this.dropElm.style.display="block",this.dropElm.ariaExpanded="true");let s=()=>{if(this.virtualScroll){this._currentHighlightIndex=0,this.updateDataStart=this.virtualScroll.dataStart+r,this.updateDataEnd=this.virtualScroll.dataEnd+r,this.updateDataStart<0&&(this.updateDataStart=0,this._currentHighlightIndex=0);let n=this.getDataLength();this.updateDataEnd>n&&(this.updateDataEnd=n),this.ulElm&&(this.isMoveUpRecalcRequired?this.recalculateArrowMove("up"):this.virtualScroll.dataStart>this.updateDataStart&&this.recalculateArrowMove("down"))}};this.ulElm&&(this.virtualScroll?this.virtualScroll.reset(e):this.virtualScroll=new Xu({rows:e,scrollEl:this.ulElm,contentEl:this.ulElm,sanitizer:this.options.sanitizer,callback:()=>{s(),this.events()}})),s(),!i&&this.dropElm&&(this.dropElm.style.left="0",this.dropElm.style.display="none",this.dropElm.ariaExpanded="false")}else this.ulElm&&(Xs(this.ulElm),e.forEach(i=>this.ulElm.appendChild(kr(i)))),this.updateDataStart=0,this.updateDataEnd=this.updateData.length;return this.events(),e}getEventTarget(r){return r.composedPath?r.composedPath()[0]:r.target}getListRows(){var e;let r=[];return this.updateData=[],(e=this.data)==null||e.forEach(t=>r.push(...this.initListItem(t))),this.options.infiniteScroll&&r.push({tagName:"li",props:{className:"ms-infinite-option",role:"option"}}),r.push({tagName:"li",props:{className:"ms-no-results",textContent:this.formatNoMatchesFound()}}),r}initListItem(r,e=0){let t=(r==null?void 0:r.title)||"",i=this.options.multiple?"multiple":"",s=this.options.single?"radio":"checkbox",n=!!(r!=null&&r.selected),o=this.options.single&&!this.options.singleRadio,l="";if(!(r!=null&&r.visible))return[];if(this.updateData.push(r),o&&(l="hide-radio "),r.selected&&(l+="selected "),r.type==="optgroup"){let f=[],g;if(this.options.hideOptgroupCheckboxes||this.options.single)g={tagName:"span",props:{dataset:{name:this.selectGroupName,key:r._key}}};else{let S={tagName:"input",props:{type:"checkbox",dataset:{name:this.selectGroupName,key:r._key},checked:n,disabled:r.disabled}};o?g=S:g={tagName:"div",props:{className:`icon-checkbox-container${s==="radio"?" radio":""}`},children:[S,{tagName:"div",props:{className:`ms-icon ${n?s==="radio"?"ms-icon-radio":"ms-icon-check":"ms-icon-uncheck"}`}}]}}!l.includes("hide-radio")&&(this.options.hideOptgroupCheckboxes||this.options.single)&&(l+="hide-radio ");let _={tagName:"span",props:{}};this.applyAsTextOrHtmlWhenEnabled(_.props,r.label);let C={tagName:"li",props:{className:Pr(`group${this.options.single||r.disabled?" disabled":""} ${l}`).join(" "),role:"option",ariaSelected:String(n),dataset:{key:r._key}},children:[{tagName:"label",props:{className:Pr(`optgroup${this.options.single||r.disabled?" disabled":""}`).join(" ")},children:[g,_]}]},b=this.options.cssStyler(r);return b&&(C.props.style=b),f.push(C),r.children.forEach(S=>f.push(...this.initListItem(S,1))),f}if(l+=r.classes||"",e&&this.options.single&&(l+=`option-level-${e} `),r.divider)return[{tagName:"li",props:{className:"option-divider"}}];let a=i||l?(i+l).trim():"";r.disabled&&(a+=" disabled");let h=`${r.disabled?"disabled":""}`,d={tagName:"span",props:{}};this.applyAsTextOrHtmlWhenEnabled(d.props,r.text);let c={tagName:"input",props:{type:s,value:encodeURI(r.value),dataset:{key:r._key,name:this.selectItemName},checked:n,disabled:!!r.disabled}};r.selected&&(c.attrs={checked:"checked"});let u={tagName:"div",props:{className:`icon-checkbox-container${s==="radio"?" radio":""}`},children:[c,{tagName:"div",props:{className:`ms-icon ${c.props.checked?s==="radio"?"ms-icon-radio":"ms-icon-check":"ms-icon-uncheck"}`}}]},p={tagName:"li",props:{role:"option",title:t,ariaSelected:String(n),dataset:{key:r._key}},children:[{tagName:"label",props:{className:h},children:[o?c:u,d]}]};a&&(p.props.className=a);let m=this.options.cssStyler(r);return m&&(p.props.style=m),[p]}initSelected(r=!1){var t,i;let e=0;for(let s of this.data||[])if(s.type==="optgroup"){let n=s.children.filter(o=>(o==null?void 0:o.selected)&&!o.disabled&&o.visible).length;s.children.length&&(s.selected=!this.options.single&&n&&n===s.children.filter(o=>o&&!o.disabled&&o.visible&&!o.divider).length),e+=n}else e+=s.selected&&!s.disabled&&s.visible?1:0;this.isAllSelected=((t=this.data)==null?void 0:t.filter(s=>s.selected&&!s.disabled&&s.visible).length)===((i=this.data)==null?void 0:i.filter(s=>!s.disabled&&s.visible&&!s.divider).length),this.isPartiallyAllSelected=!this.isAllSelected&&e>0,r||(this.isAllSelected?this.options.onCheckAll():e===0&&this.options.onUncheckAll())}initView(){let r;window.getComputedStyle?(r=window.getComputedStyle(this.elm).width,r==="auto"&&(r=Qs(this.dropElm,"outer","width")+20)):r=Qs(this.elm,"outer","width")+20,this.parentElm.style.width=`${this.options.width||r}px`,this.elm.classList.add("ms-offscreen")}events(){var e,t,i,s,n,o,l;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=(e=this.filterParentElm)==null?void 0:e.querySelector(".ms-icon-close"),this.searchInputElm=(t=this.dropElm)==null?void 0:t.querySelector(".ms-search input"),this.selectAllElm=(i=this.dropElm)==null?void 0:i.querySelector(`input[data-name="${this.selectAllName}"]`),this.selectGroupElms=(s=this.dropElm)==null?void 0:s.querySelectorAll(`input[data-name="${this.selectGroupName}"],span[data-name="${this.selectGroupName}"]`),this.selectItemElms=(n=this.dropElm)==null?void 0:n.querySelectorAll(`input[data-name="${this.selectItemName}"]:enabled`),this.noResultsElm=(o=this.dropElm)==null?void 0:o.querySelector(".ms-no-results");let r=a=>{a.preventDefault(),!this.getEventTarget(a).classList.contains("ms-icon-close")&&(this.options.isOpen?this.close("toggle.close"):this.open())};this.labelElm&&this._bindEventService.bind(this.labelElm,"click",a=>{this.getEventTarget(a).nodeName.toLowerCase()==="label"&&(r(a),(!this.options.filter||!this.options.isOpen)&&this.focus(),a.stopPropagation())}),this._bindEventService.bind(this.choiceElm,"click",r),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",a=>{a.code==="Escape"&&this.handleEscapeKey()}),this.closeElm&&this._bindEventService.bind(this.closeElm,"click",a=>{a.preventDefault(),this._checkAll(!1,!0),this.initSelected(!1),this.updateSelected(),this.update(),this.options.onClear()}),this.clearSearchIconElm&&this._bindEventService.bind(this.clearSearchIconElm,"click",a=>{a.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",a=>{a.code==="Tab"&&a.shiftKey&&this.close("key.shift+tab")},void 0,"search-input"),this._bindEventService.bind(this.searchInputElm,"keyup",a=>{var h,d,c;if(this.options.filterAcceptOnEnter&&["Enter","Space"].includes(a.code)&&((h=this.searchInputElm)!=null&&h.value)){if(this.options.single){let u=[];(d=this.selectItemElms)==null||d.forEach(p=>{var m;((m=p.closest("li"))==null?void 0:m.style.display)!=="none"&&u.push(p)}),u.length&&u[0].hasAttribute("data-name")&&this.setSelects([u[0].value])}else(c=this.selectAllElm)==null||c.click();this.close(`key.${a.code.toLowerCase()}`),this.focus();return}this.filter()},void 0,"search-input")),this.selectAllElm&&this._bindEventService.bind(this.selectAllElm,"click",a=>{var h;return this._checkAll((h=a.currentTarget)==null?void 0:h.checked)},void 0,"select-all-checkbox"),this.okButtonElm&&this._bindEventService.bind(this.okButtonElm,"click",a=>{r(a),a.stopPropagation()},void 0,"ok-button"),this.selectGroupElms&&this._bindEventService.bind(this.selectGroupElms,"click",a=>{let h=a.currentTarget,d=h.checked,c=Ks(this.data,"_key",h.dataset.key);this._checkGroup(c,d),this.options.onOptgroupClick(Rr({label:c.label,selected:c.selected,data:c._data,children:c.children.map(u=>{if(u)return Rr({text:u.text,value:u.value,selected:u.selected,disabled:u.disabled,data:u._data})})}))},void 0,"group-checkbox-list"),this.selectItemElms&&this._bindEventService.bind(this.selectItemElms,"click",a=>{let h=a.currentTarget,d=h.checked,c=Ks(this.data,"_key",h.dataset.key),u=()=>{this.options.single&&this.options.isOpen&&!this.options.keepOpen&&this.close("selection")};if(this.options.onBeforeClick(c)===!1){u();return}this._check(c,d),this.options.onClick(Rr({text:c.text,value:c.value,selected:c.selected,data:c._data})),u()},void 0,"input-checkbox-list"),this.lastFocusedItemKey&&this.dropElm&&((l=this.dropElm.querySelector(`li[data-key=${this.lastFocusedItemKey}]`))==null||l.focus()),this.options.navigationHighlight&&this.dropElm&&(this._bindEventService.bind(this.dropElm,"mouseover",a=>{var d,c;let h=this.getEventTarget(a).closest(".ms-select-all")||this.getEventTarget(a).closest("li");if((d=this.dropElm)!=null&&d.contains(h)&&this.lastMouseOverPosition!==`${a.clientX}:${a.clientY}`){let u=((c=this.dropElm)==null?void 0:c.querySelectorAll(os))||[],p=Array.from(u).findIndex(m=>m.dataset.key===h.dataset.key);this._currentHighlightIndex!==p&&!h.classList.contains("disabled")&&(this._currentSelectedElm=h,this._currentHighlightIndex=p,this.changeCurrentOptionHighlight(h))}this.lastMouseOverPosition=`${a.clientX}:${a.clientY}`},void 0,"hover-highlight"),this._bindEventService.bind(this.dropElm,"keydown",a=>{var h,d,c,u;switch(a.key){case"ArrowUp":a.preventDefault(),this.moveHighlightUp();break;case"ArrowDown":a.preventDefault(),this.moveHighlightDown();break;case"Escape":this.handleEscapeKey();break;case"Enter":case" ":{if(document.activeElement!==this.okButtonElm){let p=this.getEventTarget(a).closest(".ms-select-all")||this.getEventTarget(a).closest("li");if(a.key===" "&&this.options.filter||this.options.filterAcceptOnEnter&&!p)return;a.preventDefault(),(d=(h=this._currentSelectedElm)==null?void 0:h.querySelector("input"))==null||d.click(),this.options.single&&(this.choiceElm.focus(),this.lastFocusedItemKey=((c=this.choiceElm)==null?void 0:c.dataset.key)||"")}break}case"Tab":{a.preventDefault(),a.shiftKey?document.activeElement===this.okButtonElm?(this.focusSelectAllOrList(),this.highlightCurrentOption()):(this.close("key.shift+tab"),this.choiceElm.focus()):(this.changeCurrentOptionHighlight(),(u=this.okButtonElm)==null||u.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(r,e,t){let i=!1;r&&this.getEventTarget(r)&&this.ulElm&&this.scrolledByMouse?this.getEventTarget(r).scrollTop+this.getEventTarget(r).clientHeight===this.ulElm.scrollHeight&&(i=!0):e!==void 0&&e+1===t&&(i=!0),i&&this.ulElm&&(this.virtualScroll?this.initListItems():this.ulElm.scrollTop=0,this._currentHighlightIndex=0,this.highlightCurrentOption())}open(r=0){return new Promise(e=>{r!==null&&r>=0?(window.clearTimeout(this.openDelayTimer),this.openDelayTimer=window.setTimeout(()=>{this.openDrop(),e()},r)):(this.openDrop(),e())})}openDrop(){var i,s,n,o,l;if(!this.dropElm||(i=this.choiceElm)!=null&&i.classList.contains("disabled"))return;if(this.options.isOpen=!0,this.parentElm.classList.add("ms-parent-open"),(n=(s=this.choiceElm)==null?void 0:s.querySelector("div.ms-icon-caret"))==null||n.classList.add("open"),this.dropElm.style.display="block",this.dropElm.ariaExpanded="true",(o=this.selectAllElm)!=null&&o.parentElement&&(this.selectAllElm.parentElement.style.display="inline-flex"),this.noResultsElm&&(this.noResultsElm.style.display="none"),this.getDataLength()||((l=this.selectAllElm)!=null&&l.parentElement&&(this.selectAllElm.parentElement.style.display="none"),this.noResultsElm&&(this.noResultsElm.style.display="block")),this.options.container){let a=Fr(this.dropElm),h;this.options.container instanceof Node?h=this.options.container:typeof this.options.container=="string"&&(h=this.options.container==="body"?document.body:document.querySelector(this.options.container)),h.appendChild(this.dropElm),this.dropElm.style.top=`${(a==null?void 0:a.top)??0}px`,this.dropElm.style.left=`${(a==null?void 0:a.left)??0}px`,this.dropElm.style.minWidth="auto",this.dropElm.style.width=`${Qs(this.parentElm,"outer","width")}px`}let r=this.options.minHeight,e=this.options.maxHeight;this.options.maxHeightUnit==="row"&&(e=Qs(this.dropElm.querySelector("ul>li"),"outer","height")*this.options.maxHeight),this.ulElm??(this.ulElm=this.dropElm.querySelector("ul")),this.ulElm&&(r&&(this.ulElm.style.minHeight=`${r}px`),this.ulElm.style.maxHeight=`${e}px`),this.dropElm.querySelectorAll(".multiple").forEach(a=>{a.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 t=this.options.position;if(this.options.autoAdjustDropHeight){if(this.options.autoAdjustDropPosition){let{bottom:a,top:h}=Ar(this.dropElm),d=this.dropElm.getBoundingClientRect().height;t=a<d&&h>a?"top":"bottom"}this.adjustDropHeight(t)}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 e;let r=((e=this.dropElm)==null?void 0:e.querySelectorAll(os))||[];if(this._currentHighlightIndex<=r.length){let t=r[this._currentHighlightIndex];t&&(this.lastFocusedItemKey=t.dataset.key||"",this._currentSelectedElm=t,this.scrolledByMouse=!1,t.scrollIntoView({block:"nearest"}),this.changeCurrentOptionHighlight(t),window.setTimeout(()=>this.scrolledByMouse=!0,10))}}changeCurrentOptionHighlight(r){var e;r==null||r.classList.add("highlighted"),(((e=this.dropElm)==null?void 0:e.querySelectorAll(Qu))||[]).forEach(t=>{t!==r&&t.classList.remove("highlighted")})}moveHighlightDown(){var t,i;let r=((t=this.dropElm)==null?void 0:t.querySelectorAll(os))||[],e=r.length;this._currentHighlightIndex<e-1?(this._currentHighlightIndex++,(i=r[this._currentHighlightIndex])!=null&&i.classList.contains("disabled")&&this.moveHighlightDown()):this.options.infiniteScroll&&this.infiniteScrollHandler(null,this._currentHighlightIndex,e),this.highlightCurrentOption()}moveHighlightUp(){var t,i;let r=((t=this.dropElm)==null?void 0:t.querySelectorAll(os))||[],e=this.options.single?0:1;if(this.virtualScroll&&this._currentHighlightIndex<=e&&this.updateDataStart>0&&this.ulElm){let s=r[this._currentHighlightIndex+(this.options.single?0:1)],n=s==null?void 0:s.dataset.key;this.lastFocusedItemKey=n,this.ulElm.scrollTop=this.ulElm.scrollTop-(s==null?void 0:s.getBoundingClientRect().height)||10,this.isMoveUpRecalcRequired=!0;return}this._currentHighlightIndex>0&&(this._currentHighlightIndex--,(i=r[this._currentHighlightIndex])!=null&&i.classList.contains("disabled")&&this.moveHighlightUp()),this.highlightCurrentOption()}recalculateArrowMove(r){var i;let e=((i=this.dropElm)==null?void 0:i.querySelectorAll(os))||[],t=Array.from(e).findIndex(s=>s.dataset.key===this.lastFocusedItemKey);this._currentHighlightIndex=t-1,r==="down"?this.moveHighlightDown():r==="up"&&(this.moveHighlightUp(),this.isMoveUpRecalcRequired=!1)}close(r){var e,t;this.options.isOpen=!1,this.parentElm.classList.remove("ms-parent-open"),(t=(e=this.choiceElm)==null?void 0:e.querySelector("div.ms-icon-caret"))==null||t.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(r)}applyAsTextOrHtmlWhenEnabled(r,e){r||(r={}),this.isRenderAsHtml?r.innerHTML=typeof this.options.sanitizer=="function"?this.options.sanitizer(e):e:r.textContent=e}update(r=!1){var a;let e=this.getSelects(),t=this.getSelects("text");this.options.displayValues&&(t=e);let i=(a=this.choiceElm)==null?void 0:a.querySelector("span"),s=e.length,n=null,o=()=>{if(this.options.useSelectOptionLabel||this.options.useSelectOptionLabelToHtml){let h=e.join(this.options.displayDelimiter);return this.options.useSelectOptionLabelToHtml?ju(h):h}return t.join(this.options.displayDelimiter)};if(i){if(s===0){let h=this.options.placeholder||"";i.classList.add("ms-placeholder"),this.applyAsTextOrHtmlWhenEnabled(i,h)}else s<this.options.minimumCountSelected?n=o():this.formatAllSelected()&&s===this.dataTotal?n=this.formatAllSelected():this.options.ellipsis&&s>this.options.minimumCountSelected?n=`${t.slice(0,this.options.minimumCountSelected).join(this.options.displayDelimiter)}...`:this.formatCountSelected(s,this.dataTotal)&&s>this.options.minimumCountSelected?n=this.formatCountSelected(s,this.dataTotal):n=o();if(n!==null&&(i==null||i.classList.remove("ms-placeholder"),this.applyAsTextOrHtmlWhenEnabled(i,n)),this.options.showClear&&this.selectClearElm){let h=n?"block":"none";this.selectClearElm.style.display=h}if(this.options.displayTitle){let h=this.options.useSelectOptionLabel||this.options.useSelectOptionLabelToHtml?"value":"text";i.title=this.getSelects(h).join(this.options.displayDelimiter)}}let l=this.getSelects();this.options.single?this.elm.value=l.length?l[0]:"":Array.from(this.elm.options).forEach(h=>{h.selected=l.some(d=>d===h.value)}),r||this.elm.dispatchEvent(new Event("change"))}updateSelected(r){var t,i,s;for(let n=this.updateDataStart;n<this.updateDataEnd;n++){let o=this.updateData[n],l=(t=this.dropElm)==null?void 0:t.querySelector(`input[data-key=${o._key}]`);if(l){l.checked=o.selected;let a=l.closest("li"),h=a==null?void 0:a.querySelector(".icon-checkbox-container div");a&&(o.selected&&!a.classList.contains("selected")?(a.classList.add("selected"),a.ariaSelected="true",h&&(h.className=`ms-icon ms-icon-${l.type==="radio"?"radio":"check"}`)):o.selected||(a.classList.remove("selected"),a.ariaSelected="false",h&&(h.className="ms-icon ms-icon-uncheck")))}}let e=((i=this.data)==null?void 0:i.filter(n=>n.visible).length)===0;if(this.selectAllElm){this.selectAllElm.ariaChecked=String(this.isAllSelected);let n=(s=this.dropElm)==null?void 0:s.querySelector(".ms-select-all .icon-checkbox-container div");if(n){let o="";this.isAllSelected?o="ms-icon-check":this.isPartiallyAllSelected?o="ms-icon-minus":o="ms-icon-uncheck",n.className=`ms-icon ${o}`}this.selectAllElm.checked=this.isAllSelected,Ia(this.selectAllElm.closest("li"),!e)}Ia(this.noResultsElm,e),this.virtualScroll&&(this.virtualScroll.rows=r??this.getListRows())}getData(){return this.options.data}getDataLength(){var r;return((r=this.data)==null?void 0:r.length)??0}getOptions(r=!0){let e=Object.assign({},this.options);return delete e.data,r?xr(e):this.options}refreshOptions(r){Wu(this.options,r,!0)||(this.options=Object.assign(this.options,r),this.destroy(!1),this.init())}getDropElement(){return this.dropElm}getParentElement(){return this.parentElm}getSelects(r="value"){let e=[];for(let t of this.data||[])if(t.type==="optgroup"){let i=t.children.filter(s=>s==null?void 0:s.selected);if(!i.length)continue;if(r==="value"||this.options.single)e.push(...i.map(s=>r==="value"&&s._value||s[r]));else{let s=[];s.push("["),s.push(t.label),s.push(`: ${i.map(n=>n[r]).join(", ")}`),s.push("]"),e.push(s.join(""))}}else t.selected&&e.push(r==="value"&&t._value||t[r]);return e}setSelects(r,e="value",t=!1){let i=!1,s=n=>{var o;for(let l of n){let a=!1;if(e==="text"){let h=document.createElement("div");this.applyAsTextOrHtmlWhenEnabled(h,l.text),a=r.includes(((o=h.textContent)==null?void 0:o.trim())??"")}else a=r.includes(l._value||l.value),!a&&l.value===`${+l.value}`&&(a=r.includes(+l.value));l.selected!==a&&(i=!0),l.selected=a}};for(let n of this.data||[])n.type==="optgroup"?s(n.children):s([n]);i&&(this.initSelected(t),this.updateSelected(),this.update(t))}enable(){this.choiceElm&&(this.choiceElm.classList.remove("disabled"),this.choiceElm.disabled=!1)}disable(){var r;this.choiceElm&&((r=this.choiceElm)==null||r.classList.add("disabled"),this.choiceElm.disabled=!0)}check(r){let e=Ks(this.data,"value",r);e&&this._check(e,!0)}uncheck(r){let e=Ks(this.data,"value",r);e&&this._check(e,!1)}_check(r,e){this.options.single&&this._checkAll(!1,!0),r.selected=e,this.initSelected(),this.updateSelected(),this.update()}checkAll(){this._checkAll(!0)}uncheckAll(){this._checkAll(!1)}_checkAll(r,e){for(let t of this.data||[])t.type==="optgroup"?this._checkGroup(t,r,!0):!t.disabled&&!t.divider&&(e||t.visible)&&(t.selected=r);e||(this.initSelected(),this.updateSelected(),this.update())}_checkGroup(r,e,t){r.selected=e,r.children.forEach(i=>{i&&!i.disabled&&!i.divider&&(t||i.visible)&&(i.selected=e)}),t||(this.initSelected(),this.updateSelected(),this.update())}checkInvert(){if(!this.options.single){for(let r of this.data||[])if(r.type==="optgroup")for(let e of r.children)e&&(e.divider||(e.selected=!e.selected));else r&&!r.divider&&(r.selected=!r.selected);this.initSelected(),this.updateSelected(),this.update()}}focus(){var r;(r=this.choiceElm)==null||r.focus(),this.options.onFocus()}blur(){var r;(r=this.choiceElm)==null||r.blur(),this.options.onBlur()}refresh(){this.destroy(!1),this.init()}filter(r){var s;let e=((s=this.searchInputElm)==null?void 0:s.value.trim())??"",t=e.toLowerCase();if(this.filterText===t)return;this.filterText=t;for(let n of this.data||[])if(n.type==="optgroup")if(this.options.filterGroup){let o=`${(n==null?void 0:n.label)??""}`;if(n!=null){let l=this.options.customFilter({label:Oi(o.toString().toLowerCase(),this.options.diacriticParser),search:Oi(t,this.options.diacriticParser),originalLabel:o,originalSearch:e,row:n});n.visible=l;for(let a of n.children)a&&(a.visible=l)}}else{for(let o of n.children)if(o!=null){let l=`${(o==null?void 0:o.text)??""}`;o.visible=this.options.customFilter({text:Oi(l.toString().toLowerCase(),this.options.diacriticParser),search:Oi(t,this.options.diacriticParser),originalText:l,originalSearch:e,row:o,parent:n})}n.visible=n.children.filter(o=>o==null?void 0:o.visible).length>0}else{let o=`${(n==null?void 0:n.text)??""}`;n.visible=this.options.customFilter({text:Oi(o.toString().toLowerCase(),this.options.diacriticParser),search:Oi(t,this.options.diacriticParser),originalText:o,originalSearch:e,row:n})}let i=this.initListItems();this.initSelected(r),this.updateSelected(i),r||this.options.onFilter(e)}adjustDropHeight(r){var h,d,c,u;let e=r!=="top",t=((h=this.filterParentElm)==null?void 0:h.getBoundingClientRect().height)??0,i=((d=this.okButtonElm)==null?void 0:d.getBoundingClientRect().height)??0,s=this.options.single?0:((c=this.selectAllParentElm)==null?void 0:c.getBoundingClientRect().height)??0,n=t+i+s+5,{bottom:o,top:l}=Ar(this.parentElm),a=this.options.maxHeight;if(e?a=o-n-this.options.adjustedHeightPadding:a=l-n-this.options.adjustedHeightPadding,!this.options.maxHeight||this.options.maxHeight&&a<this.options.maxHeight){let p=(u=this.dropElm)==null?void 0:u.querySelector("ul");return p&&(p.style.maxHeight=`${a}px`),!0}return!1}adjustDropPosition(r){let e="bottom";if(this.dropElm&&this.parentElm){let{bottom:t,top:i}=Ar(this.dropElm),{top:s,left:n}=Fr(this.parentElm),o=this.dropElm.getBoundingClientRect().height,l=this.dropElm.getBoundingClientRect().width,a=document.body.offsetWidth||window.innerWidth,h=this.parentElm.getBoundingClientRect().width;if(t>o)e="bottom";else if(o>t&&i>t){if(this.options.container){let d=s-o;d<0&&(d=0),(d>0||r)&&(e="top",this.dropElm.style.top=`${d<0?0:d}px`)}else e="top",this.dropElm.classList.add(e);this.dropElm.classList.remove("bottom")}a-l<n&&(this.dropElm.style.left=`${n-(l-h)}px`)}return e}adjustDropWidthByText(){if(this.dropElm){let r=this.parentElm.scrollWidth;(this.options.dropWidth||this.options.width)&&(r=this.options.dropWidth||this.options.width||0);let e=this.dropElm.querySelector(".ms-select-all span"),t=this.dropElm.querySelector("ul"),i=26,s=(e==null?void 0:e.clientWidth)??0+i,n=t.scrollHeight>t.clientHeight?this.getScrollbarWidth():0,o=0;this.dropElm.querySelectorAll("li label").forEach(l=>{l.scrollWidth>o&&(o=l.scrollWidth)}),o+=i+n,o<s&&(o=s),this.options.maxWidth&&o>this.options.maxWidth&&(o=this.options.maxWidth),this.options.minWidth&&o<this.options.minWidth&&(o=this.options.minWidth),(r==="100%"||+r<o)&&(this.dropElm.style.width=`${o}px`,this.dropElm.style.maxWidth=`${o}px`)}}getScrollbarWidth(){var s;let r=document.createElement("div");r.style.visibility="hidden",r.style.width="100px",document.body.appendChild(r);let e=r.offsetWidth;r.style.overflow="scroll";let t=document.createElement("div");t.style.width="100%",r.appendChild(t);let i=t.offsetWidth;return(s=r.parentNode)==null||s.removeChild(r),e-i}formatAllSelected(){return this.options.allSelectedText||this.options.formatAllSelected()}formatCountSelected(r,e){return this.options.countSelectedText?this.options.countSelectedText.replace("#",`${r}`).replace("%",`${e}`):this.options.formatCountSelected(r,e)}formatNoMatchesFound(){return this.options.noMatchesFoundText||this.options.formatNoMatchesFound()}formatOkButton(){return this.options.okButtonText||this.options.formatOkButton()}formatSelectAll(){return this.options.selectAllText||this.options.formatSelectAll()}},xi=(r,e)=>typeof r=="string"?Dr(document.querySelectorAll(r),e):r instanceof Node?Dr([r],e):Dr(r,e);function Dr(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 Zu(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}xi.defaults=gt.DEFAULTS,xi.locales={...wa},xi.methods=gt.METHODS,typeof window<"u"&&(window.multipleSelect=xi);class Ra{constructor(e,t,i,s=!0){this.translaterService=e,this.collectionService=t,this.rxjs=i,this._isMultipleSelect=!0,this._collectionLength=0,this._collectionObservers=[],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?(_=Yo(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(),cs(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=>$i(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&&(this._collectionObservers.push(ci(this.columnFilter.collection,this.watchCallback.bind(this))),hs(this.columnFilter,"collection",this.propertyObserverCallback.bind(this)))}propertyObserverCallback(e){this.renderDomElement(e||[]),this.columnFilter.collection&&this._collectionObservers.push(ci(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=Xl("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,ee(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=xi(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 _=lt(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 Ju extends Ra{constructor(e,t,i){super(e,t,i,!0),this.translaterService=e,this.collectionService=t,this.rxjs=i}}class ep extends Ra{constructor(e,t,i){super(e,t,i,!1),this.translaterService=e,this.collectionService=t,this.rxjs=i}}class tp extends Or{constructor(e){super(e),this.translaterService=e,this.sliderType="single"}}class ip extends Or{constructor(e){super(e),this.translaterService=e,this.sliderType="double"}}const Zs={autocompleter:Rd,compoundDate:Nc,compoundInput:ya,compoundInputNumber:xu,compoundInputPassword:Iu,compoundInputText:ya,compoundSlider:Au,dateRange:Pu,input:Yt,inputMask:ku,inputNumber:Fu,inputPassword:Du,inputText:Yt,multipleSelect:Ju,singleSelect:ep,slider:tp,sliderRange:ip},Mr={alwaysShowVerticalScroll:!0,autoEdit:!1,asyncEditorLoading:!1,autoFitColumnsOnFirstLoad:!0,autoFixResizeTimeout:5*60*5,autoFixResizeRequiredGoodCount:2,autoFixResizeWhenBrokenStyleDetected:!1,autoParseInputFilterOperator:!0,autoResize:{applyResizeToContainer:!0,autoHeight:!0,autoHeightRecalcRow:100,calculateAvailableSizeBy:"window",bottomPadding:20,minHeight:250,minWidth:300,rightPadding:0},cellHighlightCssClass:"slick-cell-modified",checkboxSelector:{cssClass:"slick-cell-checkboxsel",width:40},columnGroupSeparator:" - ",columnPicker:{hideForceFitButton:!1,hideSyncResizeButton:!0,headerColumnValueExtractor:Aa},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:Zs.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:Ot.comma,exportWithFormatter:!1,filename:"export",format:ve.csv,groupingColumnHeaderTitle:"Group By",groupingAggregatorRowText:"",sanitizeDataExport:!0,useUtf8WithBom:!0},eventNamingStyle:at.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:Aa},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},rowDetailView:{collapseAllOnSort:!0,cssClass:"detail-view-toggle",panelRows:1,keyPrefix:"__",useRowClick:!1,saveDetailViewOnScroll:!1},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 Aa(r,e){let t=(r==null?void 0:r.columnPickerLabel)??(r==null?void 0:r.name)??"";(t instanceof HTMLElement||t instanceof DocumentFragment)&&(t=t.textContent||"");const i=(r==null?void 0:r.columnGroup)||"",s=(e==null?void 0:e.columnGroupSeparator)??" - ";return i?i+s+t:t}class sp{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 np{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 rp{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 op{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 lp{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,s;(!e||e[this._type]===void 0)&&(e[this._type]={});let t=this._count;this._isTreeAggregator?t+=e[this._type][this._field]:t=((s=(i=e.group)==null?void 0:i.rows)==null?void 0:s.length)??0,e[this._type][this._field]=t}}class ap{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 hp{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 Lr={Avg:hp,Clone:ap,Count:lp,Distinct:rp,Min:op,Max:np,Sum:sp};function Js(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 dp=3;class cp{constructor(e){var t,i;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 Pe,(t=this.gridOptions)!=null&&t.translater&&(this._translater=this.gridOptions.translater),this._locales=((i=this.gridOptions)==null?void 0:i.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===w.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=At(this.collection,h=>h&&Bt(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??"";We(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(){var i;const e=this.validate(),t=(e==null?void 0:e.valid)??!1;if(this.hasAutoCommitEdit&&t)this.grid.getEditorLock().commitCurrentEdit();else{const s=((i=this._lastInputKeyEvent)==null?void 0:i.key)!=="Enter";this.args.commitChanges(s)}}serializeValue(){var e,t,i,s,n;if(this._inputElm&&this.editorOptions.forceUserInput){const o=((e=this.editorOptions)==null?void 0:e.minLength)??dp;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)!==w.object&&((i=this.columnEditor)==null?void 0:i.type)!==w.object?this._currentValue[this.valueName]:this._currentValue&&this._currentValue.value!==void 0?((s=this.columnDef)==null?void 0:s.type)===w.object||((n=this.columnEditor)==null?void 0:n.type)===w.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 Js(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 i=e;this._currentValue=i,this._isValueTouched=!0;const s=this.args.compositeEditorOptions,n=((t=this.editorOptions)==null?void 0:t.renderItem)??!1,o=typeof i=="string"?i:n?i[this.labelName]:i.label;if(this.setValue(o),s?this.handleChangeOnCompositeEditor(null,s):this.save(),typeof this.editorOptions.onSelectItem=="function"){const{row:l,cell:a}=this.grid.getActiveCell()||{};this.editorOptions.onSelectItem(e,l,a,this.args.column,this.args.item)}window.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,_,C;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 b;return(b=this._inputElm)==null?void 0:b.select()}),this._bindEventService.bind(this._inputElm,"keydown",b=>{this._lastInputKeyEvent=b,(b.key==="ArrowLeft"||b.key==="ArrowRight"||b.key==="Home"||b.key==="End")&&b.stopImmediatePropagation(),b.key==="Enter"&&b.target.value===""&&this.columnEditor.alwaysSaveOnEnterKey&&(this._currentValue=null)});let o=e;if(o&&((c=this.columnEditor)!=null&&c.collectionOverride)){const b={column:this.columnDef,dataContext:this.dataContext,grid:this.grid,originalCollections:this.collection};if(this.args.compositeEditorOptions){const{formValues:S,modalType:E}=this.args.compositeEditorOptions;b.compositeEditorOptions={formValues:S,modalType:E}}o=this.columnEditor.collectionOverride(o,b)}o&&(this.finalCollection=o),Array.isArray(o)&&(this.collection.every(b=>$i(b))?o=o.map(b=>({label:b,value:b})):o=o.map(b=>({label:b==null?void 0:b[this.labelName],value:b==null?void 0:b[this.valueName],labelPrefix:(b==null?void 0:b[this.labelPrefixName])??"",labelSuffix:(b==null?void 0:b[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:(b,S,E)=>{E.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-${fi(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)),(C=this._autocompleterOptions)!=null&&C.fetch?(jo(this._inputElm,this._autocompleterOptions),this._instance=_s(this._autocompleterOptions)):this._instance=_s({...this._autocompleterOptions,fetch:(b,S)=>{o&&S(o.filter(E=>((typeof E=="string"?E:E==null?void 0:E.label)||"").toLowerCase().includes(b.toLowerCase())))}}),this.args.container.appendChild(this._editorInputGroupElm),this.args.compositeEditorOptions||window.setTimeout(()=>this.focus(),50)}}class up{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 Pe,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)??`${Ct(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,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(null,t),a=l&&l.valid?t:"";if(o){const h=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i??"";We(e,h,a)}else e[i]=a}}isValueChanged(){return this.serializeValue()!==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[t];this._originalValue=n,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 pp{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 Pe,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,a;if(this.args&&this.columnDef){const h=this.args.compositeEditorOptions,d=((e=this.columnDef)==null?void 0:e.id)??"",c=this.args.grid.getOptions()||{};this.defaultDate=(t=this.args.item)==null?void 0:t[this.columnDef.field];const u=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||w.dateUtc,p=Ke(u),m=((s=(i=this._translaterService)==null?void 0:i.getCurrentLanguage)==null?void 0:s.call(i))||c.locale||"en";p&&(p==="ISO8601"||p.toLowerCase().includes("h"))&&(this.hasTimePicker=!0);const f=Ke(this.hasTimePicker?w.dateTimeIsoAM_PM:w.dateIso),g={input:!0,jumpToSelectedDate:!0,sanitizer:b=>this.grid.sanitizeHtmlString(b),toggleSelected:!1,actions:{clickDay:()=>{this._lastClickIsDate=!0},changeToInput:(b,S)=>{if(S.HTMLInputElement){let E="";if(S.selectedDates[0]?(E=S.selectedDates[0],S.HTMLInputElement.value=vt(S.selectedDates[0],void 0,u)):S.HTMLInputElement.value="",E&&this.hasTimePicker){const y=gs(E,f);y.setHours(+(S.selectedHours||0)),y.setMinutes(+(S.selectedMinutes||0)),S.HTMLInputElement.value=vt(y,void 0,u)}this._lastClickIsDate&&(this.handleOnDateChange(),S.hide())}}},settings:{lang:m,iso8601:!1,visibility:{theme:(n=this.gridOptions)!=null&&n.darkMode?"dark":"light",positionToInput:"auto",weekend:!1}}};this.hasTimePicker&&(g.settings.selection={time:24}),this._pickerMergedOptions=de(!0,{},g,{settings:this.editorOptions,type:"default"});const _=`.editor-text.date-picker.editor-${d}.form-control.input-group-editor`;this._editorInputGroupElm=v("div",{className:"vanilla-picker input-group"});const C=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:_.replace(/\./g," "),dataset:{input:"",defaultdate:this.defaultDate},readOnly:((l=this.columnEditor.editorOptions)==null?void 0:l.allowInput)!==!0},this._editorInputGroupElm),this.args.container.appendChild(this._editorInputGroupElm),(a=this.columnEditor.editorOptions)!=null&&a.hideClearButton||(C.appendChild(this._clearButtonElm),this._editorInputGroupElm.appendChild(C),this._bindEventService.bind(this._clearButtonElm,"click",()=>{this.clear(),this.handleOnDateChange()})),this._bindEventService.bind(this._inputElm,"keydown",b=>{var S;((S=this.columnEditor.editorOptions)==null?void 0:S.allowInput)===!0&&(this._isValueTouched=!0,this._lastInputKeyEvent=b,(b.key==="ArrowLeft"||b.key==="ArrowRight"||b.key==="Home"||b.key==="End")&&b.stopImmediatePropagation())}),queueMicrotask(()=>{this.calendarInstance=new Yl(this._inputElm,this._pickerMergedOptions),this.calendarInstance.init(),h||(this.show(),this.focus()),this.calendarInstance&&Gi(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(),ee(this._editorInputGroupElm),ee(this._inputElm),(t=this._editorInputGroupElm)==null||t.remove(),(i=this._inputElm)==null||i.remove()}),this._bindEventService.unbindAll()}clear(){this._lastTriggeredByClearDate=!0,this.calendarInstance&&Mn(this.calendarInstance)}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&&Gi(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||w.dateUtc,l=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||w.dateUtc,a=i.indexOf(".")>0,h=this.validate(null,t),d=t&&(h!=null&&h.valid)?vt(t,l,o):"";if(a){const c=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i;We(e,c,d)}else e[i]=d}}isValueChanged(){var s,n,o;let e=!1;const t=this.getValue(),i=(s=this._lastInputKeyEvent)==null?void 0:s.key;return((n=this.columnEditor.editorOptions)==null?void 0:n.allowInput)===!0&&((o=this.columnEditor)!=null&&o.alwaysSaveOnEnterKey)&&i==="Enter"?!0:(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)||w.dateIso,a=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||w.dateIso,h=vt(o,l,a);this._originalDate=h!==""?o:"",this._inputElm.value=h}}reset(e,t=!0,i=!1){const s=e??this._originalDate??"";this.calendarInstance&&(this._originalDate=s,this.calendarInstance.settings.selected.dates=[s],s?Gi(this.columnEditor,this._inputElm,this.calendarInstance,{columnDef:this.columnDef,newVal:s}):Mn(this.calendarInstance)),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()}window.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 Pa(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 ka(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 mp(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 fp{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 Pe,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))):window.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==="Home"||e.key==="End"||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)??`${Ct(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 We(e,this._leftFieldName,o),We(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??"";We(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 We(e,this._leftFieldName,t),We(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 Pa(s,{...o,decimal:this.getDecimalPlaces(e),minValue:i.minValue,maxValue:i.maxValue,operatorConditionalType:i.operatorConditionalType});case"integer":return ka(s,{...o,minValue:i.minValue,maxValue:i.maxValue,operatorConditionalType:i.operatorConditionalType});case"text":case"password":default:return Js(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,_,C;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=((C=(_=this.gridOptions)==null?void 0:_.compositeEditorOptions)==null?void 0:C.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;window.clearTimeout(this._timer),this._timer=window.setTimeout(()=>this.handleChangeOnCompositeEditor(e,t),n)}}}const gp=0;class en{constructor(e,t="text"){var i;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=(i=e.grid)==null?void 0:i.getOptions(),this._bindEventService=new Pe,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)??`${Ct(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.key==="Home"||a.key==="End")&&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=gp),!e&&e!==0?0: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,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(null,t),a=l!=null&&l.valid?t:"";if(o){const h=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i??"";We(e,h,a)}else i&&(e[i]=a)}}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 Js(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;window.clearTimeout(this._timer),this._timer=window.setTimeout(()=>this.handleChangeOnCompositeEditor(e,t),s)}}handleOnMouseWheel(e){this._isValueTouched=!0;const t=this.args.compositeEditorOptions;t&&this.handleChangeOnCompositeEditor(e,t)}}class _p extends en{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=n;const o=this.getDecimalPlaces();o!==null&&(this._originalValue||this._originalValue===0)&&this._originalValue!==void 0&&(this._originalValue=(+this._originalValue).toFixed(o)),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 Pa(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 Cp extends en{constructor(e){super(e,"password"),this.args=e}}class vp extends en{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 ka(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 bp{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 Pe,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,_,C,b,S,E,y,x,O;let e="",t="";if(this._translater&&this._translater.translate&&this.gridOptions.enableTranslate){const I=lt(this.gridOptions),A=((d=this.editorOptions.buttonTexts)==null?void 0:d.cancelKey)??`${I}CANCEL`,D=((c=this.editorOptions.buttonTexts)==null?void 0:c.saveKey)??`${I}SAVE`;e=this._translater.translate(`${I}${A}`),t=this._translater.translate(`${I}${D}`)}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=((C=this.editorOptions)==null?void 0:C.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"}}),(b=this.gridOptions)!=null&&b.darkMode&&this._wrapperElm.classList.add("slick-dark-mode"),l.appendChild(this._wrapperElm),this._textareaElm=v("textarea",{ariaLabel:((S=this.columnEditor)==null?void 0:S.ariaLabel)??`${Ct(s+"")} Text Editor`,cols:((E=this.editorOptions)==null?void 0:E.cols)??40,rows:i&&o>3?3:o,placeholder:((y=this.columnEditor)==null?void 0:y.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=v("button",{className:"btn btn-save btn-primary btn-xs",textContent:t});this.editorOptions.saveButtonPosition==="left"?(a.appendChild(A),a.appendChild(I)):(a.appendChild(I),a.appendChild(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??"";We(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=ge(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=this.args.container?t.top:e.top??0,d=this.args.container?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 Js(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;window.clearTimeout(this._timer),this._timer=window.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 Fa{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=lt(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 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=new Set;if((((s=this._msInstance)==null?void 0:s.getSelects("value"))??[]).forEach(l=>e.add(l.toString())),this.collection.every(l=>typeof l=="number"||typeof l=="string"))return this.collection.filter(l=>e.has(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=>{var a;return e.has((a=l==null?void 0:l[this.valueName])==null?void 0:a.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 At(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=At(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(C=>C).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.
|
|
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 Fu extends Yt{constructor(e){super(e),this.translaterService=e,this.inputType="number"}}class Du extends Yt{constructor(e){super(e),this.translaterService=e,this.inputType="password"}}var Mu=Object.defineProperty,Lu=(r,e,t)=>e in r?Mu(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,V=(r,e,t)=>Lu(r,typeof e!="symbol"?e+"":e,t),Nu=class{constructor(e){V(this,"_distinctEvent"),V(this,"_boundedEvents",[]),this._distinctEvent=(e==null?void 0:e.distinctEvent)??!1}get boundedEvents(){return this._boundedEvents}dispose(){this.unbindAll(),this._boundedEvents=[]}bind(e,t,i,s,n=""){let o=Array.isArray(t)?t:[t];if(typeof(e==null?void 0:e.forEach)=="function")e.forEach(l=>{for(let a of o)(!this._distinctEvent||this._distinctEvent&&!this.hasBinding(l,a))&&(l.addEventListener(a,i,s),this._boundedEvents.push({element:l,eventName:a,listener:i,groupName:n}))});else for(let l of o)(!this._distinctEvent||this._distinctEvent&&!this.hasBinding(e,l))&&(e.addEventListener(l,i,s),this._boundedEvents.push({element:e,eventName:l,listener:i,groupName:n}))}hasBinding(e,t){return this._boundedEvents.some(i=>i.element===e&&(!t||i.eventName===t))}unbind(e,t,i){var s;if(e){let n=Array.isArray(e)?e:[e],o=Array.isArray(t)?t||"":[t||""];for(let l of n){i||(i=this._boundedEvents.find(a=>{if(a.element===l&&(!t||a.eventName===t))return a.listener}));for(let a of o)(s=l==null?void 0:l.removeEventListener)==null||s.call(l,a,i)}}}unbindAll(e){if(e){let t=Array.isArray(e)?e:[e];for(let i=this._boundedEvents.length-1;i>=0;--i){let s=this._boundedEvents[i];if(t.some(n=>n===s.groupName)){let{element:n,eventName:o,listener:l}=s;this.unbind(n,o,l),this._boundedEvents.splice(i,1)}}}else for(;this._boundedEvents.length>0;){let t=this._boundedEvents.pop(),{element:i,eventName:s,listener:n}=t;this.unbind(i,s,n)}}},Ea=typeof window<"u"&&window.multipleSelect!==void 0?window.multipleSelect:{locales:{}},Hu={formatSelectAll(){return"[Select all]"},formatAllSelected(){return"All selected"},formatCountSelected(r,e){return`${r} of ${e} selected`},formatNoMatchesFound(){return"No matches found"},formatOkButton(){return"OK"}};Ea.locales["en-US"]=Hu;var wa=Ea.locales,Vu=50,Bu=4,Ta={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},zu=["init","getOptions","refreshOptions","getSelects","setSelects","enable","disable","open","close","check","uncheck","checkAll","uncheckAll","checkInvert","focus","blur","refresh","destroy"];Object.assign(Ta,wa["en-US"]);var $u={BLOCK_ROWS:Vu,CLUSTER_BLOCKS:Bu,DEFAULTS:Ta,METHODS:zu},gt=$u;function Wu(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 xr(r){let e=()=>{let s={};for(let n in r)Object.prototype.hasOwnProperty.call(r,n)&&(s[n]=xr(r[n]));return s},t=()=>r.map(s=>xr(s)),i=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return i==="object"?e():i==="array"?t():r}function Ir(r){return r!=null&&r!==""}function Gu(r,e){return typeof r=="object"?Object.fromEntries(e?Object.entries(r).filter(([t,i])=>!Ir(i)&&!e.includes(t)||Ir(i)):Object.entries(r).filter(([t,i])=>Ir(i))):r}function Uu(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 Ks(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 ju(r){return r.replace(/(\b)(on[a-z]+)(\s*)=([^>]*)|javascript:([^>]*)[^>]*|(<\s*)(\/*)script([<>]*).*(<\s*)(\/*)script(>*)|(<|<)(\/*)(script|script defer)(.*)(>|>|>">)/gi,"")}function Rr(r){return Object.keys(r).forEach(e=>r[e]===void 0?delete r[e]:""),r}function Oi(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 Ar(r){let e=0,t=0,i=0,s=0,n=window.innerHeight??0,o=window.innerWidth??0,l=Ku(),a=l.top,h=l.left,d=Fr(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 Pr(r=""){return r.split(" ").filter(e=>e)}function Ue(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 Oa(r,e,t){var n;let i=(n=r.props)!=null&&n.innerHTML?qu(r.props,"innerHTML"):r.props,s=Ue(r.tagName,Gu(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)Oa(o,s);return e==null||e.appendChild(s),s}function kr(r){return r.hasOwnProperty("tagName")?Oa(r):document.createElement("li")}function Xs(r){for(;r!=null&&r.firstChild;)r.lastChild&&r.removeChild(r.lastChild);return r}function Fr(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 Qs(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 xa(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 Yu(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 Ia(r,e){r!=null&&r.style&&(r.style.display=r.style.display==="none"&&e!==!1||e===!0?"block":"none")}function Ku(){return{left:window.pageXOffset||document.documentElement.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||0}}var Xu=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),Xs(this.contentEl)}}reset(e){this.lastCluster=0,this.cache={},Xs(this.contentEl),this.initDOM(e)}initDOM(e){if(typeof this.clusterHeight>"u"){this.cache.scrollTop=this.scrollEl.scrollTop;let o=kr(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);Xs(this.contentEl),i&&s?(t.topOffset&&this.contentEl.appendChild(this.getExtra("top",t.topOffset)),t.rows.forEach(o=>this.contentEl.appendChild(kr(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*gt.BLOCK_ROWS,this.clusterRows=gt.BLOCK_ROWS*gt.CLUSTER_BLOCKS,this.clusterHeight=this.blockHeight*gt.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<gt.BLOCK_ROWS)return{topOffset:0,bottomOffset:0,rowsAbove:0,rows:e};let i=Math.max((this.clusterRows-gt.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}},os=".ms-select-all, ul li[data-key]",Qu=".ms-select-all.highlighted, ul li[data-key].highlighted",Zu=class{constructor(r,e){this.elm=r,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({},gt.DEFAULTS,this.elm.dataset,e),this._bindEventService=new Nu({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(r=!0){var e,t,i,s,n;this.elm&&this.parentElm&&(this.options.onDestroy({hardDestroy:r}),r&&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(),(e=this.virtualScroll)==null||e.destroy(),(t=this.dropElm)==null||t.remove(),this.dropElm=void 0,(i=this.parentElm.parentNode)==null||i.removeChild(this.parentElm),this.fromHtml&&(delete this.options.data,this.fromHtml=!1),this.options.onAfterDestroy({hardDestroy:r}),r&&((n=(s=this.options).onAfterHardDestroy)==null||n.call(s),Object.keys(this.options).forEach(o=>delete this[o])))}initLocale(){if(this.options.locale){if(typeof this.options.locale=="object"){Object.assign(this.options,this.options.locale);return}let r=window.multipleSelect.locales,e=this.options.locale.split(/-|_/);if(e[0]=e[0].toLowerCase(),e[1]&&(e[1]=e[1].toUpperCase()),r[this.options.locale])Object.assign(this.options,r[this.options.locale]);else if(r[e.join("-")])Object.assign(this.options,r[e.join("-")]);else if(r[e[0]])Object.assign(this.options,r[e[0]]);else throw new Error(`[multiple-select-vanilla] invalid locales "${this.options.locale}", make sure to import it before using it`)}}initContainer(){var i;let r=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),(i=this.labelElm)!=null&&i.querySelector("input")&&(this.labelElm=null),typeof this.options.single>"u"&&(this.options.single=!this.elm.multiple),this.parentElm=Ue("div",{className:Pr(`ms-parent ${this.elm.className||""} ${this.options.classes}`).join(" "),dataset:{test:"sel"}}),this.options.darkMode&&this.parentElm.classList.add("ms-dark-mode");let e=this.elm.getAttribute("title")||"";e&&(this.parentElm.title=e),this.options.placeholder=this.options.placeholder||this.elm.getAttribute("placeholder")||"",this.choiceElm=Ue("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(Ue("span",{className:"ms-placeholder",textContent:this.options.placeholder})),this.options.showClear&&(this.selectClearElm=Ue("div",{className:"ms-icon ms-icon-close"}),this.selectClearElm.style.display="none",this.choiceElm.appendChild(this.selectClearElm)),this.choiceElm.appendChild(Ue("div",{className:"ms-icon ms-icon-caret"})),this.dropElm=Ue("div",{className:`ms-drop ${this.options.position}`,ariaExpanded:"false"},this.parentElm),this.options.darkMode&&this.dropElm.classList.add("ms-dark-mode"),r&&(this.dropElm.dataset.name=r);let t=this.elm.getAttribute("data-test")||this.options.dataTest;t&&(this.parentElm.dataset.test=t,this.dropElm.dataset.test=t),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`),Yu(this.elm,this.parentElm),this.elm.disabled&&(this.choiceElm.classList.add("disabled"),this.choiceElm.disabled=!0),this.selectAllName=`selectAll${r}`,this.selectGroupName=`selectGroup${r}`,this.selectItemName=`selectItem${r}`,this.options.keepOpen||(this._bindEventService.unbindAll("body-click"),this._bindEventService.bind(document.body,"click",s=>{this.getEventTarget(s)===this.choiceElm||xa(this.getEventTarget(s),".ms-choice")===this.choiceElm||(this.getEventTarget(s)===this.dropElm||xa(this.getEventTarget(s),".ms-drop")!==this.dropElm&&this.getEventTarget(s)!==this.elm)&&this.options.isOpen&&this.close("body.click")},void 0,"body-click"))}initData(){let r=[];if(this.options.data){if(Array.isArray(this.options.data))this.data=this.options.data.map(e=>typeof e=="string"||typeof e=="number"?{text:e,value:e}:e);else if(typeof this.options.data=="object"){for(let[e,t]of Object.entries(this.options.data))r.push({value:e,text:`${t}`});this.data=r}}else this.elm.childNodes.forEach(e=>{let t=this.initRow(e);t&&r.push(t)}),this.options.data=r,this.data=r,this.fromHtml=!0;this.dataTotal=Uu(this.data||[])}initRow(r,e){var i,s;let t={};return((i=r.tagName)==null?void 0:i.toLowerCase())==="option"?(t.type="option",t.text=this.options.textTemplate(r),t.value=r.value,t.visible=!0,t.selected=!!r.selected,t.disabled=e||r.disabled,t.classes=r.getAttribute("class")||"",t.title=r.getAttribute("title")||"",r.dataset.value&&(t._value=r.dataset.value),Object.keys(r.dataset).length&&(t._data=r.dataset,t._data.divider&&(t.divider=t._data.divider)),t):((s=r.tagName)==null?void 0:s.toLowerCase())==="optgroup"?(t.type="optgroup",t.label=this.options.labelTemplate(r),t.visible=!0,t.selected=!!r.selected,t.disabled=r.disabled,t.children=[],Object.keys(r.dataset).length&&(t._data=r.dataset),r.childNodes.forEach(n=>{t.children.push(this.initRow(n,t.disabled))}),t):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 r=0;for(let e of this.data||[])e.type==="optgroup"?r+=e.children.length:r+=1;this.options.filter=r>this.options.filterByDataLength}initList(){var r,e;if(this.options.filter&&(this.filterParentElm=Ue("div",{className:"ms-search"},this.dropElm),this.filterParentElm.appendChild(Ue("input",{autocomplete:"off",autocapitalize:"off",spellcheck:!1,type:"text",placeholder:this.options.filterPlaceholder||"🔎︎"})),this.options.showSearchClear&&this.filterParentElm.appendChild(Ue("span",{className:"ms-icon ms-icon-close"}))),this.options.selectAll&&!this.options.single){let t=this.elm.getAttribute("name")||this.options.name||"";this.selectAllParentElm=Ue("div",{className:"ms-select-all",dataset:{key:"select_all"}});let i=document.createElement("label"),s=`ms-icon ${this.isAllSelected?"ms-icon-check":this.isPartiallyAllSelected?"ms-icon-minus":"ms-icon-uncheck"}`,n=Ue("div",{className:"icon-checkbox-container"},i);Ue("input",{type:"checkbox",ariaChecked:String(this.isAllSelected),checked:this.isAllSelected,dataset:{name:`selectAll${t}`}},n),Ue("div",{className:s},n),i.appendChild(Ue("span",{textContent:this.formatSelectAll()})),this.selectAllParentElm.appendChild(i),(r=this.dropElm)==null||r.appendChild(this.selectAllParentElm)}this.ulElm=document.createElement("ul"),this.ulElm.role="combobox",this.ulElm.ariaExpanded="false",this.ulElm.ariaMultiSelectable=String(!this.options.single),(e=this.dropElm)==null||e.appendChild(this.ulElm),this.options.showOkButton&&!this.options.single&&(this.okButtonElm=Ue("button",{className:"ms-ok-button",type:"button",textContent:this.formatOkButton()},this.dropElm)),this.initListItems()}initListItems(){var t;let r=0,e=this.getListRows();if(this.options.selectAll&&!this.options.single&&(r=-1),e.length>gt.BLOCK_ROWS*gt.CLUSTER_BLOCKS){let i=this.dropElm&&((t=this.dropElm)==null?void 0:t.style.display)!=="none";!i&&this.dropElm&&(this.dropElm.style.left="-10000",this.dropElm.style.display="block",this.dropElm.ariaExpanded="true");let s=()=>{if(this.virtualScroll){this._currentHighlightIndex=0,this.updateDataStart=this.virtualScroll.dataStart+r,this.updateDataEnd=this.virtualScroll.dataEnd+r,this.updateDataStart<0&&(this.updateDataStart=0,this._currentHighlightIndex=0);let n=this.getDataLength();this.updateDataEnd>n&&(this.updateDataEnd=n),this.ulElm&&(this.isMoveUpRecalcRequired?this.recalculateArrowMove("up"):this.virtualScroll.dataStart>this.updateDataStart&&this.recalculateArrowMove("down"))}};this.ulElm&&(this.virtualScroll?this.virtualScroll.reset(e):this.virtualScroll=new Xu({rows:e,scrollEl:this.ulElm,contentEl:this.ulElm,sanitizer:this.options.sanitizer,callback:()=>{s(),this.events()}})),s(),!i&&this.dropElm&&(this.dropElm.style.left="0",this.dropElm.style.display="none",this.dropElm.ariaExpanded="false")}else this.ulElm&&(Xs(this.ulElm),e.forEach(i=>this.ulElm.appendChild(kr(i)))),this.updateDataStart=0,this.updateDataEnd=this.updateData.length;return this.events(),e}getEventTarget(r){return r.composedPath?r.composedPath()[0]:r.target}getListRows(){var e;let r=[];return this.updateData=[],(e=this.data)==null||e.forEach(t=>r.push(...this.initListItem(t))),this.options.infiniteScroll&&r.push({tagName:"li",props:{className:"ms-infinite-option",role:"option"}}),r.push({tagName:"li",props:{className:"ms-no-results",textContent:this.formatNoMatchesFound()}}),r}initListItem(r,e=0){let t=(r==null?void 0:r.title)||"",i=this.options.multiple?"multiple":"",s=this.options.single?"radio":"checkbox",n=!!(r!=null&&r.selected),o=this.options.single&&!this.options.singleRadio,l="";if(!(r!=null&&r.visible))return[];if(this.updateData.push(r),o&&(l="hide-radio "),r.selected&&(l+="selected "),r.type==="optgroup"){let f=[],g;if(this.options.hideOptgroupCheckboxes||this.options.single)g={tagName:"span",props:{dataset:{name:this.selectGroupName,key:r._key}}};else{let S={tagName:"input",props:{type:"checkbox",dataset:{name:this.selectGroupName,key:r._key},checked:n,disabled:r.disabled}};o?g=S:g={tagName:"div",props:{className:`icon-checkbox-container${s==="radio"?" radio":""}`},children:[S,{tagName:"div",props:{className:`ms-icon ${n?s==="radio"?"ms-icon-radio":"ms-icon-check":"ms-icon-uncheck"}`}}]}}!l.includes("hide-radio")&&(this.options.hideOptgroupCheckboxes||this.options.single)&&(l+="hide-radio ");let _={tagName:"span",props:{}};this.applyAsTextOrHtmlWhenEnabled(_.props,r.label);let C={tagName:"li",props:{className:Pr(`group${this.options.single||r.disabled?" disabled":""} ${l}`).join(" "),role:"option",ariaSelected:String(n),dataset:{key:r._key}},children:[{tagName:"label",props:{className:Pr(`optgroup${this.options.single||r.disabled?" disabled":""}`).join(" ")},children:[g,_]}]},b=this.options.cssStyler(r);return b&&(C.props.style=b),f.push(C),r.children.forEach(S=>f.push(...this.initListItem(S,1))),f}if(l+=r.classes||"",e&&this.options.single&&(l+=`option-level-${e} `),r.divider)return[{tagName:"li",props:{className:"option-divider"}}];let a=i||l?(i+l).trim():"";r.disabled&&(a+=" disabled");let h=`${r.disabled?"disabled":""}`,d={tagName:"span",props:{}};this.applyAsTextOrHtmlWhenEnabled(d.props,r.text);let c={tagName:"input",props:{type:s,value:encodeURI(r.value),dataset:{key:r._key,name:this.selectItemName},checked:n,disabled:!!r.disabled}};r.selected&&(c.attrs={checked:"checked"});let u={tagName:"div",props:{className:`icon-checkbox-container${s==="radio"?" radio":""}`},children:[c,{tagName:"div",props:{className:`ms-icon ${c.props.checked?s==="radio"?"ms-icon-radio":"ms-icon-check":"ms-icon-uncheck"}`}}]},p={tagName:"li",props:{role:"option",title:t,ariaSelected:String(n),dataset:{key:r._key}},children:[{tagName:"label",props:{className:h},children:[o?c:u,d]}]};a&&(p.props.className=a);let m=this.options.cssStyler(r);return m&&(p.props.style=m),[p]}initSelected(r=!1){var t,i;let e=0;for(let s of this.data||[])if(s.type==="optgroup"){let n=s.children.filter(o=>(o==null?void 0:o.selected)&&!o.disabled&&o.visible).length;s.children.length&&(s.selected=!this.options.single&&n&&n===s.children.filter(o=>o&&!o.disabled&&o.visible&&!o.divider).length),e+=n}else e+=s.selected&&!s.disabled&&s.visible?1:0;this.isAllSelected=((t=this.data)==null?void 0:t.filter(s=>s.selected&&!s.disabled&&s.visible).length)===((i=this.data)==null?void 0:i.filter(s=>!s.disabled&&s.visible&&!s.divider).length),this.isPartiallyAllSelected=!this.isAllSelected&&e>0,r||(this.isAllSelected?this.options.onCheckAll():e===0&&this.options.onUncheckAll())}initView(){let r;window.getComputedStyle?(r=window.getComputedStyle(this.elm).width,r==="auto"&&(r=Qs(this.dropElm,"outer","width")+20)):r=Qs(this.elm,"outer","width")+20,this.parentElm.style.width=`${this.options.width||r}px`,this.elm.classList.add("ms-offscreen")}events(){var e,t,i,s,n,o,l;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=(e=this.filterParentElm)==null?void 0:e.querySelector(".ms-icon-close"),this.searchInputElm=(t=this.dropElm)==null?void 0:t.querySelector(".ms-search input"),this.selectAllElm=(i=this.dropElm)==null?void 0:i.querySelector(`input[data-name="${this.selectAllName}"]`),this.selectGroupElms=(s=this.dropElm)==null?void 0:s.querySelectorAll(`input[data-name="${this.selectGroupName}"],span[data-name="${this.selectGroupName}"]`),this.selectItemElms=(n=this.dropElm)==null?void 0:n.querySelectorAll(`input[data-name="${this.selectItemName}"]:enabled`),this.noResultsElm=(o=this.dropElm)==null?void 0:o.querySelector(".ms-no-results");let r=a=>{a.preventDefault(),!this.getEventTarget(a).classList.contains("ms-icon-close")&&(this.options.isOpen?this.close("toggle.close"):this.open())};this.labelElm&&this._bindEventService.bind(this.labelElm,"click",a=>{this.getEventTarget(a).nodeName.toLowerCase()==="label"&&(r(a),(!this.options.filter||!this.options.isOpen)&&this.focus(),a.stopPropagation())}),this._bindEventService.bind(this.choiceElm,"click",r),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",a=>{a.code==="Escape"&&this.handleEscapeKey()}),this.closeElm&&this._bindEventService.bind(this.closeElm,"click",a=>{a.preventDefault(),this._checkAll(!1,!0),this.initSelected(!1),this.updateSelected(),this.update(),this.options.onClear()}),this.clearSearchIconElm&&this._bindEventService.bind(this.clearSearchIconElm,"click",a=>{a.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",a=>{a.code==="Tab"&&a.shiftKey&&this.close("key.shift+tab")},void 0,"search-input"),this._bindEventService.bind(this.searchInputElm,"keyup",a=>{var h,d,c;if(this.options.filterAcceptOnEnter&&["Enter","Space"].includes(a.code)&&((h=this.searchInputElm)!=null&&h.value)){if(this.options.single){let u=[];(d=this.selectItemElms)==null||d.forEach(p=>{var m;((m=p.closest("li"))==null?void 0:m.style.display)!=="none"&&u.push(p)}),u.length&&u[0].hasAttribute("data-name")&&this.setSelects([u[0].value])}else(c=this.selectAllElm)==null||c.click();this.close(`key.${a.code.toLowerCase()}`),this.focus();return}this.filter()},void 0,"search-input")),this.selectAllElm&&this._bindEventService.bind(this.selectAllElm,"click",a=>{var h;return this._checkAll((h=a.currentTarget)==null?void 0:h.checked)},void 0,"select-all-checkbox"),this.okButtonElm&&this._bindEventService.bind(this.okButtonElm,"click",a=>{r(a),a.stopPropagation()},void 0,"ok-button"),this.selectGroupElms&&this._bindEventService.bind(this.selectGroupElms,"click",a=>{let h=a.currentTarget,d=h.checked,c=Ks(this.data,"_key",h.dataset.key);this._checkGroup(c,d),this.options.onOptgroupClick(Rr({label:c.label,selected:c.selected,data:c._data,children:c.children.map(u=>{if(u)return Rr({text:u.text,value:u.value,selected:u.selected,disabled:u.disabled,data:u._data})})}))},void 0,"group-checkbox-list"),this.selectItemElms&&this._bindEventService.bind(this.selectItemElms,"click",a=>{let h=a.currentTarget,d=h.checked,c=Ks(this.data,"_key",h.dataset.key),u=()=>{this.options.single&&this.options.isOpen&&!this.options.keepOpen&&this.close("selection")};if(this.options.onBeforeClick(c)===!1){u();return}this._check(c,d),this.options.onClick(Rr({text:c.text,value:c.value,selected:c.selected,data:c._data})),u()},void 0,"input-checkbox-list"),this.lastFocusedItemKey&&this.dropElm&&((l=this.dropElm.querySelector(`li[data-key=${this.lastFocusedItemKey}]`))==null||l.focus()),this.options.navigationHighlight&&this.dropElm&&(this._bindEventService.bind(this.dropElm,"mouseover",a=>{var d,c;let h=this.getEventTarget(a).closest(".ms-select-all")||this.getEventTarget(a).closest("li");if((d=this.dropElm)!=null&&d.contains(h)&&this.lastMouseOverPosition!==`${a.clientX}:${a.clientY}`){let u=((c=this.dropElm)==null?void 0:c.querySelectorAll(os))||[],p=Array.from(u).findIndex(m=>m.dataset.key===h.dataset.key);this._currentHighlightIndex!==p&&!h.classList.contains("disabled")&&(this._currentSelectedElm=h,this._currentHighlightIndex=p,this.changeCurrentOptionHighlight(h))}this.lastMouseOverPosition=`${a.clientX}:${a.clientY}`},void 0,"hover-highlight"),this._bindEventService.bind(this.dropElm,"keydown",a=>{var h,d,c,u;switch(a.key){case"ArrowUp":a.preventDefault(),this.moveHighlightUp();break;case"ArrowDown":a.preventDefault(),this.moveHighlightDown();break;case"Escape":this.handleEscapeKey();break;case"Enter":case" ":{if(document.activeElement!==this.okButtonElm){let p=this.getEventTarget(a).closest(".ms-select-all")||this.getEventTarget(a).closest("li");if(a.key===" "&&this.options.filter||this.options.filterAcceptOnEnter&&!p)return;a.preventDefault(),(d=(h=this._currentSelectedElm)==null?void 0:h.querySelector("input"))==null||d.click(),this.options.single&&(this.choiceElm.focus(),this.lastFocusedItemKey=((c=this.choiceElm)==null?void 0:c.dataset.key)||"")}break}case"Tab":{a.preventDefault(),a.shiftKey?document.activeElement===this.okButtonElm?(this.focusSelectAllOrList(),this.highlightCurrentOption()):(this.close("key.shift+tab"),this.choiceElm.focus()):(this.changeCurrentOptionHighlight(),(u=this.okButtonElm)==null||u.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(r,e,t){let i=!1;r&&this.getEventTarget(r)&&this.ulElm&&this.scrolledByMouse?this.getEventTarget(r).scrollTop+this.getEventTarget(r).clientHeight===this.ulElm.scrollHeight&&(i=!0):e!==void 0&&e+1===t&&(i=!0),i&&this.ulElm&&(this.virtualScroll?this.initListItems():this.ulElm.scrollTop=0,this._currentHighlightIndex=0,this.highlightCurrentOption())}open(r=0){return new Promise(e=>{r!==null&&r>=0?(window.clearTimeout(this.openDelayTimer),this.openDelayTimer=window.setTimeout(()=>{this.openDrop(),e()},r)):(this.openDrop(),e())})}openDrop(){var i,s,n,o,l;if(!this.dropElm||(i=this.choiceElm)!=null&&i.classList.contains("disabled"))return;if(this.options.isOpen=!0,this.parentElm.classList.add("ms-parent-open"),(n=(s=this.choiceElm)==null?void 0:s.querySelector("div.ms-icon-caret"))==null||n.classList.add("open"),this.dropElm.style.display="block",this.dropElm.ariaExpanded="true",(o=this.selectAllElm)!=null&&o.parentElement&&(this.selectAllElm.parentElement.style.display="inline-flex"),this.noResultsElm&&(this.noResultsElm.style.display="none"),this.getDataLength()||((l=this.selectAllElm)!=null&&l.parentElement&&(this.selectAllElm.parentElement.style.display="none"),this.noResultsElm&&(this.noResultsElm.style.display="block")),this.options.container){let a=Fr(this.dropElm),h;this.options.container instanceof Node?h=this.options.container:typeof this.options.container=="string"&&(h=this.options.container==="body"?document.body:document.querySelector(this.options.container)),h.appendChild(this.dropElm),this.dropElm.style.top=`${(a==null?void 0:a.top)??0}px`,this.dropElm.style.left=`${(a==null?void 0:a.left)??0}px`,this.dropElm.style.minWidth="auto",this.dropElm.style.width=`${Qs(this.parentElm,"outer","width")}px`}let r=this.options.minHeight,e=this.options.maxHeight;this.options.maxHeightUnit==="row"&&(e=Qs(this.dropElm.querySelector("ul>li"),"outer","height")*this.options.maxHeight),this.ulElm??(this.ulElm=this.dropElm.querySelector("ul")),this.ulElm&&(r&&(this.ulElm.style.minHeight=`${r}px`),this.ulElm.style.maxHeight=`${e}px`),this.dropElm.querySelectorAll(".multiple").forEach(a=>{a.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 t=this.options.position;if(this.options.autoAdjustDropHeight){if(this.options.autoAdjustDropPosition){let{bottom:a,top:h}=Ar(this.dropElm),d=this.dropElm.getBoundingClientRect().height;t=a<d&&h>a?"top":"bottom"}this.adjustDropHeight(t)}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 e;let r=((e=this.dropElm)==null?void 0:e.querySelectorAll(os))||[];if(this._currentHighlightIndex<=r.length){let t=r[this._currentHighlightIndex];t&&(this.lastFocusedItemKey=t.dataset.key||"",this._currentSelectedElm=t,this.scrolledByMouse=!1,t.scrollIntoView({block:"nearest"}),this.changeCurrentOptionHighlight(t),window.setTimeout(()=>this.scrolledByMouse=!0,10))}}changeCurrentOptionHighlight(r){var e;r==null||r.classList.add("highlighted"),(((e=this.dropElm)==null?void 0:e.querySelectorAll(Qu))||[]).forEach(t=>{t!==r&&t.classList.remove("highlighted")})}moveHighlightDown(){var t,i;let r=((t=this.dropElm)==null?void 0:t.querySelectorAll(os))||[],e=r.length;this._currentHighlightIndex<e-1?(this._currentHighlightIndex++,(i=r[this._currentHighlightIndex])!=null&&i.classList.contains("disabled")&&this.moveHighlightDown()):this.options.infiniteScroll&&this.infiniteScrollHandler(null,this._currentHighlightIndex,e),this.highlightCurrentOption()}moveHighlightUp(){var t,i;let r=((t=this.dropElm)==null?void 0:t.querySelectorAll(os))||[],e=this.options.single?0:1;if(this.virtualScroll&&this._currentHighlightIndex<=e&&this.updateDataStart>0&&this.ulElm){let s=r[this._currentHighlightIndex+(this.options.single?0:1)],n=s==null?void 0:s.dataset.key;this.lastFocusedItemKey=n,this.ulElm.scrollTop=this.ulElm.scrollTop-(s==null?void 0:s.getBoundingClientRect().height)||10,this.isMoveUpRecalcRequired=!0;return}this._currentHighlightIndex>0&&(this._currentHighlightIndex--,(i=r[this._currentHighlightIndex])!=null&&i.classList.contains("disabled")&&this.moveHighlightUp()),this.highlightCurrentOption()}recalculateArrowMove(r){var i;let e=((i=this.dropElm)==null?void 0:i.querySelectorAll(os))||[],t=Array.from(e).findIndex(s=>s.dataset.key===this.lastFocusedItemKey);this._currentHighlightIndex=t-1,r==="down"?this.moveHighlightDown():r==="up"&&(this.moveHighlightUp(),this.isMoveUpRecalcRequired=!1)}close(r){var e,t;this.options.isOpen=!1,this.parentElm.classList.remove("ms-parent-open"),(t=(e=this.choiceElm)==null?void 0:e.querySelector("div.ms-icon-caret"))==null||t.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(r)}applyAsTextOrHtmlWhenEnabled(r,e){r||(r={}),this.isRenderAsHtml?r.innerHTML=typeof this.options.sanitizer=="function"?this.options.sanitizer(e):e:r.textContent=e}update(r=!1){var a;let e=this.getSelects(),t=this.getSelects("text");this.options.displayValues&&(t=e);let i=(a=this.choiceElm)==null?void 0:a.querySelector("span"),s=e.length,n=null,o=()=>{if(this.options.useSelectOptionLabel||this.options.useSelectOptionLabelToHtml){let h=e.join(this.options.displayDelimiter);return this.options.useSelectOptionLabelToHtml?ju(h):h}return t.join(this.options.displayDelimiter)};if(i){if(s===0){let h=this.options.placeholder||"";i.classList.add("ms-placeholder"),this.applyAsTextOrHtmlWhenEnabled(i,h)}else s<this.options.minimumCountSelected?n=o():this.formatAllSelected()&&s===this.dataTotal?n=this.formatAllSelected():this.options.ellipsis&&s>this.options.minimumCountSelected?n=`${t.slice(0,this.options.minimumCountSelected).join(this.options.displayDelimiter)}...`:this.formatCountSelected(s,this.dataTotal)&&s>this.options.minimumCountSelected?n=this.formatCountSelected(s,this.dataTotal):n=o();if(n!==null&&(i==null||i.classList.remove("ms-placeholder"),this.applyAsTextOrHtmlWhenEnabled(i,n)),this.options.showClear&&this.selectClearElm){let h=n?"block":"none";this.selectClearElm.style.display=h}if(this.options.displayTitle){let h=this.options.useSelectOptionLabel||this.options.useSelectOptionLabelToHtml?"value":"text";i.title=this.getSelects(h).join(this.options.displayDelimiter)}}let l=this.getSelects();this.options.single?this.elm.value=l.length?l[0]:"":Array.from(this.elm.options).forEach(h=>{h.selected=l.some(d=>d===h.value)}),r||this.elm.dispatchEvent(new Event("change"))}updateSelected(r){var t,i,s;for(let n=this.updateDataStart;n<this.updateDataEnd;n++){let o=this.updateData[n],l=(t=this.dropElm)==null?void 0:t.querySelector(`input[data-key=${o._key}]`);if(l){l.checked=o.selected;let a=l.closest("li"),h=a==null?void 0:a.querySelector(".icon-checkbox-container div");a&&(o.selected&&!a.classList.contains("selected")?(a.classList.add("selected"),a.ariaSelected="true",h&&(h.className=`ms-icon ms-icon-${l.type==="radio"?"radio":"check"}`)):o.selected||(a.classList.remove("selected"),a.ariaSelected="false",h&&(h.className="ms-icon ms-icon-uncheck")))}}let e=((i=this.data)==null?void 0:i.filter(n=>n.visible).length)===0;if(this.selectAllElm){this.selectAllElm.ariaChecked=String(this.isAllSelected);let n=(s=this.dropElm)==null?void 0:s.querySelector(".ms-select-all .icon-checkbox-container div");if(n){let o="";this.isAllSelected?o="ms-icon-check":this.isPartiallyAllSelected?o="ms-icon-minus":o="ms-icon-uncheck",n.className=`ms-icon ${o}`}this.selectAllElm.checked=this.isAllSelected,Ia(this.selectAllElm.closest("li"),!e)}Ia(this.noResultsElm,e),this.virtualScroll&&(this.virtualScroll.rows=r??this.getListRows())}getData(){return this.options.data}getDataLength(){var r;return((r=this.data)==null?void 0:r.length)??0}getOptions(r=!0){let e=Object.assign({},this.options);return delete e.data,r?xr(e):this.options}refreshOptions(r){Wu(this.options,r,!0)||(this.options=Object.assign(this.options,r),this.destroy(!1),this.init())}getDropElement(){return this.dropElm}getParentElement(){return this.parentElm}getSelects(r="value"){let e=[];for(let t of this.data||[])if(t.type==="optgroup"){let i=t.children.filter(s=>s==null?void 0:s.selected);if(!i.length)continue;if(r==="value"||this.options.single)e.push(...i.map(s=>r==="value"&&s._value||s[r]));else{let s=[];s.push("["),s.push(t.label),s.push(`: ${i.map(n=>n[r]).join(", ")}`),s.push("]"),e.push(s.join(""))}}else t.selected&&e.push(r==="value"&&t._value||t[r]);return e}setSelects(r,e="value",t=!1){let i=!1,s=n=>{var o;for(let l of n){let a=!1;if(e==="text"){let h=document.createElement("div");this.applyAsTextOrHtmlWhenEnabled(h,l.text),a=r.includes(((o=h.textContent)==null?void 0:o.trim())??"")}else a=r.includes(l._value||l.value),!a&&l.value===`${+l.value}`&&(a=r.includes(+l.value));l.selected!==a&&(i=!0),l.selected=a}};for(let n of this.data||[])n.type==="optgroup"?s(n.children):s([n]);i&&(this.initSelected(t),this.updateSelected(),this.update(t))}enable(){this.choiceElm&&(this.choiceElm.classList.remove("disabled"),this.choiceElm.disabled=!1)}disable(){var r;this.choiceElm&&((r=this.choiceElm)==null||r.classList.add("disabled"),this.choiceElm.disabled=!0)}check(r){let e=Ks(this.data,"value",r);e&&this._check(e,!0)}uncheck(r){let e=Ks(this.data,"value",r);e&&this._check(e,!1)}_check(r,e){this.options.single&&this._checkAll(!1,!0),r.selected=e,this.initSelected(),this.updateSelected(),this.update()}checkAll(){this._checkAll(!0)}uncheckAll(){this._checkAll(!1)}_checkAll(r,e){for(let t of this.data||[])t.type==="optgroup"?this._checkGroup(t,r,!0):!t.disabled&&!t.divider&&(e||t.visible)&&(t.selected=r);e||(this.initSelected(),this.updateSelected(),this.update())}_checkGroup(r,e,t){r.selected=e,r.children.forEach(i=>{i&&!i.disabled&&!i.divider&&(t||i.visible)&&(i.selected=e)}),t||(this.initSelected(),this.updateSelected(),this.update())}checkInvert(){if(!this.options.single){for(let r of this.data||[])if(r.type==="optgroup")for(let e of r.children)e&&(e.divider||(e.selected=!e.selected));else r&&!r.divider&&(r.selected=!r.selected);this.initSelected(),this.updateSelected(),this.update()}}focus(){var r;(r=this.choiceElm)==null||r.focus(),this.options.onFocus()}blur(){var r;(r=this.choiceElm)==null||r.blur(),this.options.onBlur()}refresh(){this.destroy(!1),this.init()}filter(r){var s;let e=((s=this.searchInputElm)==null?void 0:s.value.trim())??"",t=e.toLowerCase();if(this.filterText===t)return;this.filterText=t;for(let n of this.data||[])if(n.type==="optgroup")if(this.options.filterGroup){let o=`${(n==null?void 0:n.label)??""}`;if(n!=null){let l=this.options.customFilter({label:Oi(o.toString().toLowerCase(),this.options.diacriticParser),search:Oi(t,this.options.diacriticParser),originalLabel:o,originalSearch:e,row:n});n.visible=l;for(let a of n.children)a&&(a.visible=l)}}else{for(let o of n.children)if(o!=null){let l=`${(o==null?void 0:o.text)??""}`;o.visible=this.options.customFilter({text:Oi(l.toString().toLowerCase(),this.options.diacriticParser),search:Oi(t,this.options.diacriticParser),originalText:l,originalSearch:e,row:o,parent:n})}n.visible=n.children.filter(o=>o==null?void 0:o.visible).length>0}else{let o=`${(n==null?void 0:n.text)??""}`;n.visible=this.options.customFilter({text:Oi(o.toString().toLowerCase(),this.options.diacriticParser),search:Oi(t,this.options.diacriticParser),originalText:o,originalSearch:e,row:n})}let i=this.initListItems();this.initSelected(r),this.updateSelected(i),r||this.options.onFilter(e)}adjustDropHeight(r){var h,d,c,u;let e=r!=="top",t=((h=this.filterParentElm)==null?void 0:h.getBoundingClientRect().height)??0,i=((d=this.okButtonElm)==null?void 0:d.getBoundingClientRect().height)??0,s=this.options.single?0:((c=this.selectAllParentElm)==null?void 0:c.getBoundingClientRect().height)??0,n=t+i+s+5,{bottom:o,top:l}=Ar(this.parentElm),a=this.options.maxHeight;if(e?a=o-n-this.options.adjustedHeightPadding:a=l-n-this.options.adjustedHeightPadding,!this.options.maxHeight||this.options.maxHeight&&a<this.options.maxHeight){let p=(u=this.dropElm)==null?void 0:u.querySelector("ul");return p&&(p.style.maxHeight=`${a}px`),!0}return!1}adjustDropPosition(r){let e="bottom";if(this.dropElm&&this.parentElm){let{bottom:t,top:i}=Ar(this.dropElm),{top:s,left:n}=Fr(this.parentElm),o=this.dropElm.getBoundingClientRect().height,l=this.dropElm.getBoundingClientRect().width,a=document.body.offsetWidth||window.innerWidth,h=this.parentElm.getBoundingClientRect().width;if(t>o)e="bottom";else if(o>t&&i>t){if(this.options.container){let d=s-o;d<0&&(d=0),(d>0||r)&&(e="top",this.dropElm.style.top=`${d<0?0:d}px`)}else e="top",this.dropElm.classList.add(e);this.dropElm.classList.remove("bottom")}a-l<n&&(this.dropElm.style.left=`${n-(l-h)}px`)}return e}adjustDropWidthByText(){if(this.dropElm){let r=this.parentElm.scrollWidth;(this.options.dropWidth||this.options.width)&&(r=this.options.dropWidth||this.options.width||0);let e=this.dropElm.querySelector(".ms-select-all span"),t=this.dropElm.querySelector("ul"),i=26,s=(e==null?void 0:e.clientWidth)??0+i,n=t.scrollHeight>t.clientHeight?this.getScrollbarWidth():0,o=0;this.dropElm.querySelectorAll("li label").forEach(l=>{l.scrollWidth>o&&(o=l.scrollWidth)}),o+=i+n,o<s&&(o=s),this.options.maxWidth&&o>this.options.maxWidth&&(o=this.options.maxWidth),this.options.minWidth&&o<this.options.minWidth&&(o=this.options.minWidth),(r==="100%"||+r<o)&&(this.dropElm.style.width=`${o}px`,this.dropElm.style.maxWidth=`${o}px`)}}getScrollbarWidth(){var s;let r=document.createElement("div");r.style.visibility="hidden",r.style.width="100px",document.body.appendChild(r);let e=r.offsetWidth;r.style.overflow="scroll";let t=document.createElement("div");t.style.width="100%",r.appendChild(t);let i=t.offsetWidth;return(s=r.parentNode)==null||s.removeChild(r),e-i}formatAllSelected(){return this.options.allSelectedText||this.options.formatAllSelected()}formatCountSelected(r,e){return this.options.countSelectedText?this.options.countSelectedText.replace("#",`${r}`).replace("%",`${e}`):this.options.formatCountSelected(r,e)}formatNoMatchesFound(){return this.options.noMatchesFoundText||this.options.formatNoMatchesFound()}formatOkButton(){return this.options.okButtonText||this.options.formatOkButton()}formatSelectAll(){return this.options.selectAllText||this.options.formatSelectAll()}},xi=(r,e)=>typeof r=="string"?Dr(document.querySelectorAll(r),e):r instanceof Node?Dr([r],e):Dr(r,e);function Dr(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 Zu(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}xi.defaults=gt.DEFAULTS,xi.locales={...wa},xi.methods=gt.METHODS,typeof window<"u"&&(window.multipleSelect=xi);class Ra{constructor(e,t,i,s=!0){this.translaterService=e,this.collectionService=t,this.rxjs=i,this._isMultipleSelect=!0,this._collectionLength=0,this._collectionObservers=[],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?(_=Yo(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(),cs(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=>$i(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&&(this._collectionObservers.push(ci(this.columnFilter.collection,this.watchCallback.bind(this))),hs(this.columnFilter,"collection",this.propertyObserverCallback.bind(this)))}propertyObserverCallback(e){this.renderDomElement(e||[]),this.columnFilter.collection&&this._collectionObservers.push(ci(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=Xl("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,ee(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=xi(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 _=lt(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 Ju extends Ra{constructor(e,t,i){super(e,t,i,!0),this.translaterService=e,this.collectionService=t,this.rxjs=i}}class ep extends Ra{constructor(e,t,i){super(e,t,i,!1),this.translaterService=e,this.collectionService=t,this.rxjs=i}}class tp extends Or{constructor(e){super(e),this.translaterService=e,this.sliderType="single"}}class ip extends Or{constructor(e){super(e),this.translaterService=e,this.sliderType="double"}}const Zs={autocompleter:Rd,compoundDate:Nc,compoundInput:ya,compoundInputNumber:xu,compoundInputPassword:Iu,compoundInputText:ya,compoundSlider:Au,dateRange:Pu,input:Yt,inputMask:ku,inputNumber:Fu,inputPassword:Du,inputText:Yt,multipleSelect:Ju,singleSelect:ep,slider:tp,sliderRange:ip},Mr={alwaysShowVerticalScroll:!0,autoEdit:!1,asyncEditorLoading:!1,autoFitColumnsOnFirstLoad:!0,autoFixResizeTimeout:5*60*5,autoFixResizeRequiredGoodCount:2,autoFixResizeWhenBrokenStyleDetected:!1,autoParseInputFilterOperator:!0,autoResize:{applyResizeToContainer:!0,autoHeight:!0,autoHeightRecalcRow:100,calculateAvailableSizeBy:"window",bottomPadding:20,minHeight:250,minWidth:300,rightPadding:0},cellHighlightCssClass:"slick-cell-modified",checkboxSelector:{cssClass:"slick-cell-checkboxsel",width:40},columnGroupSeparator:" - ",columnPicker:{hideForceFitButton:!1,hideSyncResizeButton:!0,headerColumnValueExtractor:Aa},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:Zs.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:Ot.comma,exportWithFormatter:!1,filename:"export",format:ve.csv,groupingColumnHeaderTitle:"Group By",groupingAggregatorRowText:"",sanitizeDataExport:!0,useUtf8WithBom:!0},eventNamingStyle:at.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:Aa},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},rowDetailView:{collapseAllOnSort:!0,cssClass:"detail-view-toggle",panelRows:1,keyPrefix:"__",useRowClick:!1,saveDetailViewOnScroll:!1},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 Aa(r,e){let t=(r==null?void 0:r.columnPickerLabel)??(r==null?void 0:r.name)??"";(t instanceof HTMLElement||t instanceof DocumentFragment)&&(t=t.textContent||"");const i=(r==null?void 0:r.columnGroup)||"",s=(e==null?void 0:e.columnGroupSeparator)??" - ";return i?i+s+t:t}class sp{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 np{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 rp{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 op{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 lp{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,s;(!e||e[this._type]===void 0)&&(e[this._type]={});let t=this._count;this._isTreeAggregator?t+=e[this._type][this._field]:t=((s=(i=e.group)==null?void 0:i.rows)==null?void 0:s.length)??0,e[this._type][this._field]=t}}class ap{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 hp{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 Lr={Avg:hp,Clone:ap,Count:lp,Distinct:rp,Min:op,Max:np,Sum:sp};function Js(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 dp=3;class cp{constructor(e){var t,i;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 Pe,(t=this.gridOptions)!=null&&t.translater&&(this._translater=this.gridOptions.translater),this._locales=((i=this.gridOptions)==null?void 0:i.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===w.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=At(this.collection,h=>h&&Bt(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??"";We(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(){var i;const e=this.validate(),t=(e==null?void 0:e.valid)??!1;if(this.hasAutoCommitEdit&&t)this.grid.getEditorLock().commitCurrentEdit();else{const s=((i=this._lastInputKeyEvent)==null?void 0:i.key)!=="Enter";this.args.commitChanges(s)}}serializeValue(){var e,t,i,s,n;if(this._inputElm&&this.editorOptions.forceUserInput){const o=((e=this.editorOptions)==null?void 0:e.minLength)??dp;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)!==w.object&&((i=this.columnEditor)==null?void 0:i.type)!==w.object?this._currentValue[this.valueName]:this._currentValue&&this._currentValue.value!==void 0?((s=this.columnDef)==null?void 0:s.type)===w.object||((n=this.columnEditor)==null?void 0:n.type)===w.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 Js(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 i=e;this._currentValue=i,this._isValueTouched=!0;const s=this.args.compositeEditorOptions,n=((t=this.editorOptions)==null?void 0:t.renderItem)??!1,o=typeof i=="string"?i:n?i[this.labelName]:i.label;if(this.setValue(o),s?this.handleChangeOnCompositeEditor(null,s):this.save(),typeof this.editorOptions.onSelectItem=="function"){const{row:l,cell:a}=this.grid.getActiveCell()||{};this.editorOptions.onSelectItem(e,l,a,this.args.column,this.args.item)}window.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,_,C;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 b;return(b=this._inputElm)==null?void 0:b.select()}),this._bindEventService.bind(this._inputElm,"keydown",b=>{this._lastInputKeyEvent=b,(b.key==="ArrowLeft"||b.key==="ArrowRight"||b.key==="Home"||b.key==="End")&&b.stopImmediatePropagation(),b.key==="Enter"&&b.target.value===""&&this.columnEditor.alwaysSaveOnEnterKey&&(this._currentValue=null)});let o=e;if(o&&((c=this.columnEditor)!=null&&c.collectionOverride)){const b={column:this.columnDef,dataContext:this.dataContext,grid:this.grid,originalCollections:this.collection};if(this.args.compositeEditorOptions){const{formValues:S,modalType:E}=this.args.compositeEditorOptions;b.compositeEditorOptions={formValues:S,modalType:E}}o=this.columnEditor.collectionOverride(o,b)}o&&(this.finalCollection=o),Array.isArray(o)&&(this.collection.every(b=>$i(b))?o=o.map(b=>({label:b,value:b})):o=o.map(b=>({label:b==null?void 0:b[this.labelName],value:b==null?void 0:b[this.valueName],labelPrefix:(b==null?void 0:b[this.labelPrefixName])??"",labelSuffix:(b==null?void 0:b[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:(b,S,E)=>{E.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-${fi(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)),(C=this._autocompleterOptions)!=null&&C.fetch?(jo(this._inputElm,this._autocompleterOptions),this._instance=_s(this._autocompleterOptions)):this._instance=_s({...this._autocompleterOptions,fetch:(b,S)=>{o&&S(o.filter(E=>((typeof E=="string"?E:E==null?void 0:E.label)||"").toLowerCase().includes(b.toLowerCase())))}}),this.args.container.appendChild(this._editorInputGroupElm),this.args.compositeEditorOptions||window.setTimeout(()=>this.focus(),50)}}class up{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 Pe,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)??`${Ct(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,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(null,t),a=l&&l.valid?t:"";if(o){const h=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i??"";We(e,h,a)}else e[i]=a}}isValueChanged(){return this.serializeValue()!==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[t];this._originalValue=n,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 pp{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 Pe,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,a;if(this.args&&this.columnDef){const h=this.args.compositeEditorOptions,d=((e=this.columnDef)==null?void 0:e.id)??"",c=this.args.grid.getOptions()||{};this.defaultDate=(t=this.args.item)==null?void 0:t[this.columnDef.field];const u=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||w.dateUtc,p=Ke(u),m=((s=(i=this._translaterService)==null?void 0:i.getCurrentLanguage)==null?void 0:s.call(i))||c.locale||"en";p&&(p==="ISO8601"||p.toLowerCase().includes("h"))&&(this.hasTimePicker=!0);const f=Ke(this.hasTimePicker?w.dateTimeIsoAM_PM:w.dateIso),g={input:!0,jumpToSelectedDate:!0,sanitizer:b=>this.grid.sanitizeHtmlString(b),toggleSelected:!1,actions:{clickDay:()=>{this._lastClickIsDate=!0},changeToInput:(b,S)=>{if(S.HTMLInputElement){let E="";if(S.selectedDates[0]?(E=S.selectedDates[0],S.HTMLInputElement.value=vt(S.selectedDates[0],void 0,u)):S.HTMLInputElement.value="",E&&this.hasTimePicker){const y=gs(E,f);y.setHours(+(S.selectedHours||0)),y.setMinutes(+(S.selectedMinutes||0)),S.HTMLInputElement.value=vt(y,void 0,u)}this._lastClickIsDate&&(this.handleOnDateChange(),S.hide())}}},settings:{lang:m,iso8601:!1,visibility:{theme:(n=this.gridOptions)!=null&&n.darkMode?"dark":"light",positionToInput:"auto",weekend:!1}}};this.hasTimePicker&&(g.settings.selection={time:24}),this._pickerMergedOptions=de(!0,{},g,{settings:this.editorOptions,type:"default"});const _=`.editor-text.date-picker.editor-${d}.form-control.input-group-editor`;this._editorInputGroupElm=v("div",{className:"vanilla-picker input-group"});const C=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:_.replace(/\./g," "),dataset:{input:"",defaultdate:this.defaultDate},readOnly:((l=this.columnEditor.editorOptions)==null?void 0:l.allowInput)!==!0},this._editorInputGroupElm),this.args.container.appendChild(this._editorInputGroupElm),(a=this.columnEditor.editorOptions)!=null&&a.hideClearButton||(C.appendChild(this._clearButtonElm),this._editorInputGroupElm.appendChild(C),this._bindEventService.bind(this._clearButtonElm,"click",()=>{this.clear(),this.handleOnDateChange()})),this._bindEventService.bind(this._inputElm,"keydown",b=>{var S;((S=this.columnEditor.editorOptions)==null?void 0:S.allowInput)===!0&&(this._isValueTouched=!0,this._lastInputKeyEvent=b,(b.key==="ArrowLeft"||b.key==="ArrowRight"||b.key==="Home"||b.key==="End")&&b.stopImmediatePropagation())}),queueMicrotask(()=>{this.calendarInstance=new Yl(this._inputElm,this._pickerMergedOptions),this.calendarInstance.init(),h||(this.show(),this.focus()),this.calendarInstance&&Gi(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(),ee(this._editorInputGroupElm),ee(this._inputElm),(t=this._editorInputGroupElm)==null||t.remove(),(i=this._inputElm)==null||i.remove()}),this._bindEventService.unbindAll()}clear(){this._lastTriggeredByClearDate=!0,this.calendarInstance&&Mn(this.calendarInstance)}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&&Gi(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||w.dateUtc,l=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||w.dateUtc,a=i.indexOf(".")>0,h=this.validate(null,t),d=t&&(h!=null&&h.valid)?vt(t,l,o):"";if(a){const c=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i;We(e,c,d)}else e[i]=d}}isValueChanged(){var s,n,o;let e=!1;const t=this.getValue(),i=(s=this._lastInputKeyEvent)==null?void 0:s.key;return((n=this.columnEditor.editorOptions)==null?void 0:n.allowInput)===!0&&((o=this.columnEditor)!=null&&o.alwaysSaveOnEnterKey)&&i==="Enter"?!0:(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)||w.dateIso,a=this.columnDef.outputType||this.columnEditor.type||this.columnDef.type||w.dateIso,h=vt(o,l,a);this._originalDate=h!==""?o:"",this._inputElm.value=h}}reset(e,t=!0,i=!1){const s=e??this._originalDate??"";this.calendarInstance&&(this._originalDate=s,this.calendarInstance.settings.selected.dates=[s],s?Gi(this.columnEditor,this._inputElm,this.calendarInstance,{columnDef:this.columnDef,newVal:s}):Mn(this.calendarInstance)),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()}window.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 Pa(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 ka(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 mp(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 fp{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 Pe,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))):window.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==="Home"||e.key==="End"||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)??`${Ct(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 We(e,this._leftFieldName,o),We(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??"";We(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 We(e,this._leftFieldName,t),We(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 Pa(s,{...o,decimal:this.getDecimalPlaces(e),minValue:i.minValue,maxValue:i.maxValue,operatorConditionalType:i.operatorConditionalType});case"integer":return ka(s,{...o,minValue:i.minValue,maxValue:i.maxValue,operatorConditionalType:i.operatorConditionalType});case"text":case"password":default:return Js(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,_,C;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=((C=(_=this.gridOptions)==null?void 0:_.compositeEditorOptions)==null?void 0:C.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;window.clearTimeout(this._timer),this._timer=window.setTimeout(()=>this.handleChangeOnCompositeEditor(e,t),n)}}}const gp=0;class en{constructor(e,t="text"){var i;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=(i=e.grid)==null?void 0:i.getOptions(),this._bindEventService=new Pe,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)??`${Ct(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.key==="Home"||a.key==="End")&&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=gp),!e&&e!==0?0: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,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(null,t),a=l!=null&&l.valid?t:"";if(o){const h=((n=this.columnEditor)==null?void 0:n.complexObjectPath)??i??"";We(e,h,a)}else i&&(e[i]=a)}}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 Js(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;window.clearTimeout(this._timer),this._timer=window.setTimeout(()=>this.handleChangeOnCompositeEditor(e,t),s)}}handleOnMouseWheel(e){this._isValueTouched=!0;const t=this.args.compositeEditorOptions;t&&this.handleChangeOnCompositeEditor(e,t)}}class _p extends en{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=n;const o=this.getDecimalPlaces();o!==null&&(this._originalValue||this._originalValue===0)&&this._originalValue!==void 0&&(this._originalValue=(+this._originalValue).toFixed(o)),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 Pa(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 Cp extends en{constructor(e){super(e,"password"),this.args=e}}class vp extends en{constructor(e){super(e,"number"),this.args=e}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[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 ka(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 bp{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 Pe,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,_,C,b,S,E,y,x,O;let e="",t="";if(this._translater&&this._translater.translate&&this.gridOptions.enableTranslate){const I=lt(this.gridOptions),A=((d=this.editorOptions.buttonTexts)==null?void 0:d.cancelKey)??`${I}CANCEL`,D=((c=this.editorOptions.buttonTexts)==null?void 0:c.saveKey)??`${I}SAVE`;e=this._translater.translate(`${I}${A}`),t=this._translater.translate(`${I}${D}`)}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=((C=this.editorOptions)==null?void 0:C.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"}}),(b=this.gridOptions)!=null&&b.darkMode&&this._wrapperElm.classList.add("slick-dark-mode"),l.appendChild(this._wrapperElm),this._textareaElm=v("textarea",{ariaLabel:((S=this.columnEditor)==null?void 0:S.ariaLabel)??`${Ct(s+"")} Text Editor`,cols:((E=this.editorOptions)==null?void 0:E.cols)??40,rows:i&&o>3?3:o,placeholder:((y=this.columnEditor)==null?void 0:y.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=v("button",{className:"btn btn-save btn-primary btn-xs",textContent:t});this.editorOptions.saveButtonPosition==="left"?(a.appendChild(A),a.appendChild(I)):(a.appendChild(I),a.appendChild(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??"";We(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=ge(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=this.args.container?t.top:e.top??0,d=this.args.container?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 Js(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;window.clearTimeout(this._timer),this._timer=window.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 Fa{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=lt(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 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=new Set;if((((s=this._msInstance)==null?void 0:s.getSelects("value"))??[]).forEach(l=>e.add(l.toString())),this.collection.every(l=>typeof l=="number"||typeof l=="string"))return this.collection.filter(l=>e.has(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=>{var a;return e.has((a=l==null?void 0:l[this.valueName])==null?void 0:a.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 At(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=At(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(C=>C).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 Kl(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===w.number||s===w.integer||s===w.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??"";We(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!pt(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=Xl("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"&&(ee(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=xi(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 Sp extends Fa{constructor(e,t=0){super(e,!0,t),this.args=e,this.delayOpening=t}}class yp extends Fa{constructor(e,t=0){super(e,!1,t),this.args=e,this.delayOpening=t}}class Ep{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 Pe,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??"";We(e,a,l)}else e&&(e[i]=l)}}changeEditorOption(e,t){var i;if(this.columnEditor)switch((i=this.columnEditor).editorOptions??(i.editorOptions={}),this.columnEditor.editorOptions[e]=t,this._sliderOptions[e]=t,e){case"hideSliderNumber":this.renderSliderNumber(this._editorElm,0);break;case"sliderStartValue":this._inputElm.value=`${t}`,this._inputElm.defaultValue=`${t}`;break;case"maxValue":case"minValue":case"step":this._inputElm[e.replace("Value","")]=`${t}`;break}}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 mp(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??`${Ct(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"});return a.appendChild(this._sliderTrackElm),a.appendChild(this._inputElm),l.appendChild(a),this.renderSliderNumber(l,o),this._sliderOptions={minValue:i,maxValue:s,step:n},l}renderSliderNumber(e,t){var i;if(this.editorOptions.hideSliderNumber)(i=e.querySelector(".slider-value"))==null||i.remove();else{e.classList.add("input-group");const s=v("div",{className:"input-group-addon input-group-append slider-value"});this._sliderNumberElm=v("span",{className:"input-group-text",textContent:`${t}`}),s.appendChild(this._sliderNumberElm),e.appendChild(s)}}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 Nr={autocompleter:cp,checkbox:up,date:pp,dualInput:fp,float:_p,integer:vp,longText:bp,multipleSelect:Sp,password:Cp,singleSelect:yp,slider:Ep,text:en},wp=(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.
|
|
20
20
|
For example, if we have an array of user objects that have the property of firstName & lastName then we need to pass in your column definition:: { params: { propertyNames: ['firtName'] }}.
|