').appendTo(v),f.iconCssClass&&g.addClass(f.iconCssClass),f.iconImage&&g.css("background-image","url("+f.iconImage+")"),g=U('').text(f.title).appendTo(v),f.textCssClass&&g.addClass(f.textCssClass)))}}}if(!x.hideCommandSection&&0'),d=(x.hideCloseButton||0!==l.length&&!x.hideOptionSection||U(n).on("click",E).appendTo(s),a.appendTo(s),x),C=a,h=o,w={cell:M,row:D,column:t,dataContext:i,grid:T};if(w&&h&&d){d&&d.commandTitle&&U('').append(d.commandTitle).appendTo(C);for(var b=0,k=h.length;b').data("command",void 0!==y.command?y.command:"").data("item",y).on("click",H).appendTo(C),y.divider||"divider"===y?S.addClass("slick-cell-menu-item-divider"):(!y.disabled&&O||S.addClass("slick-cell-menu-item-disabled"),y.hidden&&S.addClass("slick-cell-menu-item-hidden"),y.cssClass&&S.addClass(y.cssClass),y.tooltip&&S.attr("title",y.tooltip),O=U('').appendTo(S),y.iconCssClass&&O.addClass(y.iconCssClass),y.iconImage&&O.css("background-image","url("+y.iconImage+")"),O=U('').text(y.title).appendTo(S),y.textCssClass&&O.addClass(y.textCssClass)))}}}if(s.show(),s.appendTo("body"),0!=I.onAfterMenuShow.notify({cell:M,row:D,grid:T},e,I))return s}}function E(e){e.isDefaultPrevented()||B(e)}function B(e,t){(p=p||U(".slick-cell-menu."+A))&&p.remove&&(0=T.getGridPosition().width?"left":"right")?(p.removeClass("dropright").addClass("dropleft"),n=n-(d-s)-u):(p.removeClass("dropleft").addClass("dropright"),n+=u)),p.css("top",e),p.css("left",n)}function s(e,t){var i=T.getCellFromEvent(e),o=T.getDataItem(i.row),i=T.getColumns()[i.cell];i&&i.cellMenu&&e.preventDefault(),x=U.extend({},x,i.cellMenu),(t=t||{}).columnDef=i,t.dataContext=o,t.grid=T,j(x.menuUsabilityOverride,t)&&((p=l(e))&&(n(e),p.data("cell",M).data("row",D).show()),U("body").on("mousedown."+A,a))}function a(e){!p||p[0]==e.target||U.contains(p[0],e.target)||e.isDefaultPrevented()||d(e,{cell:M,row:D})}function d(e,t){p&&0=s.width?"left":"right")?(h.classList.remove("dropright"),h.classList.add("dropleft"),e=e-(l-i)-a):(h.classList.remove("dropleft"),h.classList.add("dropright"),e+=a)),h.style.top=t+"px",h.style.left=e+"px"}h.setAttribute("aria-expanded","true"),h.style.display="block"}v.bind(document.body,"mousedown",function(e){h==e.target||h&&h.contains(e.target)||e.defaultPrevented||k(e,{cell:u,row:m})}.bind(this))}}function k(e,t){h&&0!=c.onBeforeMenuClose.notify({cell:t&&t.cell,row:t&&t.row,grid:p,menu:h},e,c).getReturnValue()&&h&&h.remove&&(h.remove(),h=null)}function w(e,t){var l,i,n,o,s;!e||e.disabled||e.divider||"divider"===e||(s=e.command||"",l=m,i=u,n=p.getColumns()[i],o=p.getDataItem(l),null!==s&&""!==s&&(s={cell:i,row:l,grid:p,command:s,item:e,column:n,dataContext:o},c.onCommand.notify(s,t,c),"function"==typeof e.action&&e.action.call(this,t,s),t.defaultPrevented||k(t,{cell:i,row:l})))}function S(e,t){var l,i,n,o,s;!e||e.disabled||e.divider||"divider"===e||p.getEditorLock().commitCurrentEdit()&&(s=void 0!==e.option?e.option:"",l=m,i=u,n=p.getColumns()[i],o=p.getDataItem(l),void 0!==s)&&(s={cell:i,row:l,grid:p,option:s,item:e,column:n,dataContext:o},c.onOptionSelected.notify(s,t,c),"function"==typeof e.action&&e.action.call(this,t,s),t.defaultPrevented||k(t,{cell:i,row:l}))}function y(e,t){return"function"!=typeof e||e.call(this,t)}Slick.Utils.extend(this,{init:function(e){p=e,f=e.getOptions(),r=Slick.Utils.extend({},i,t),d=e&&e.getUID?e.getUID():"",l.subscribe(p.onClick,n),r.hideMenuOnScroll&&l.subscribe(p.onScroll,b)},closeMenu:b,destroy:function(){c.onAfterMenuShow.unsubscribe(),c.onBeforeMenuShow.unsubscribe(),c.onBeforeMenuClose.unsubscribe(),c.onCommand.unsubscribe(),c.onOptionSelected.unsubscribe(),l.unsubscribeAll(),v.unbindAll(),h&&h.remove&&h.remove(),a=null,g=null,h=null},pluginName:"CellMenu",setOptions:function(e){r=Slick.Utils.extend({},r,e)},onAfterMenuShow:new Slick.Event,onBeforeMenuShow:new Slick.Event,onBeforeMenuClose:new Slick.Event,onCommand:new Slick.Event,onOptionSelected:new Slick.Event})}}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.cellrangedecorator.min.js b/dist/plugins/slick.cellrangedecorator.min.js
index baa9199d..8a621b6e 100644
--- a/dist/plugins/slick.cellrangedecorator.min.js
+++ b/dist/plugins/slick.cellrangedecorator.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.cellrangedecorator.js
*/
-!function(n){n.extend(!0,window,{Slick:{CellRangeDecorator:function(o,s){var l;function e(){l&&(l.remove(),l=null)}s=n.extend(!0,{},{selectionCssClass:"slick-range-decorator",selectionCss:{zIndex:"9999",border:"2px dashed red"},offset:{top:-1,left:-1,height:-2,width:-2}},s),n.extend(this,{pluginName:"CellRangeDecorator",show:function(e){l=l||n("",{css:s.selectionCss}).addClass(s.selectionCssClass).css("position","absolute").appendTo(o.getActiveCanvasNode());var t=o.getCellNodeBox(e.fromRow,e.fromCell),e=o.getCellNodeBox(e.toRow,e.toCell);return t&&e&&s&&s.offset&&l.css({top:t.top+s.offset.top,left:t.left+s.offset.left,height:e.bottom-t.top+s.offset.height,width:e.right-t.left+s.offset.width}),l},hide:e,destroy:function(){e()}})}}})}(jQuery);
\ No newline at end of file
+!function(e){Slick.Utils.extend(!0,e,{Slick:{CellRangeDecorator:function(o,l){var s;function e(){s&&(s.remove(),s=null)}l=Slick.Utils.extend(!0,{},{selectionCssClass:"slick-range-decorator",selectionCss:{zIndex:"9999",border:"2px dashed red"},offset:{top:-1,left:-1,height:-2,width:-2}},l),Slick.Utils.extend(this,{pluginName:"CellRangeDecorator",show:function(e){!s&&((s=document.createElement("div")).className=l.selectionCssClass,Object.keys(l.selectionCss).forEach(e=>{s.style[e]=l.selectionCss[e]}),s.style.position="absolute",t=o.getActiveCanvasNode())&&t.appendChild(s);var t=o.getCellNodeBox(e.fromRow,e.fromCell),e=o.getCellNodeBox(e.toRow,e.toCell);return t&&e&&l&&l.offset&&(s.style.top=t.top+l.offset.top+"px",s.style.left=t.left+l.offset.left+"px",s.style.height=e.bottom-t.top+l.offset.height+"px",s.style.width=e.right-t.left+l.offset.width+"px"),s},hide:e,destroy:function(){e()}})}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.cellrangeselector.min.js b/dist/plugins/slick.cellrangeselector.min.js
index 6a83bb11..068e2681 100644
--- a/dist/plugins/slick.cellrangeselector.min.js
+++ b/dist/plugins/slick.cellrangeselector.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.cellrangeselector.js
*/
-!function(Y){Y.extend(!0,window,{Slick:{CellRangeSelector:function(f){var l,n,r,a,i,c,s,g,u,d,w,p,v,h,m,C,o,S,b,x=this,t=new Slick.EventHandler,I={autoScroll:!0,minIntervalToShowNextCell:30,maxIntervalToShowNextCell:600,accelerateInterval:5,selectionCss:{border:"2px dashed blue"}},y=!1,R=0,D=0;function N(e,t){R=t.scrollTop,D=t.scrollLeft}function k(e,t){i=Y(l.getActiveCanvasNode(e)),p=Y(l.getActiveViewportNode(e));var o=l.getDisplayedScrollbarDimensions();v=p.width()-o.width,h=p.height()-o.height,C={x:l.getAbsoluteColumnMinWidth()/2,y:l.getOptions().rowHeight/2},y=!(!l.getPluginByName("RowMoveManager")&&!l.getPluginByName("CrossGridRowMoveManager")),i.offset();u=g=0,w=i.hasClass("grid-canvas-bottom"),-1f&&(e.offset.x=o.pageX-f);o.pageYc&&(e.offset.y=c-o.pageY);return e.isOutsideViewport=!!e.offset.x||!!e.offset.y,e}(e,t)).isOutsideViewport)return S=f.maxIntervalToShowNextCell-Math.abs(m.offset.x)*f.accelerateInterval,b=f.maxIntervalToShowNextCell-Math.abs(m.offset.y)*f.accelerateInterval,void(o||(s=i=0,o=setInterval(function(){var e,t,o,n,l,r=!1,a=!1;m.offset.x?(i+=f.minIntervalToShowNextCell,r=S<=i):i=0,m.offset.y?(s+=f.minIntervalToShowNextCell,a=b<=s):s=0,(r||a)&&(r&&(i=0),a&&(s=0),r=r,a=a,e=m.e.pageX,t=m.e.pageY,o=m.offset.x,n=m.offset.y,l=m.viewport.offset,r&&o&&(e=0a.frozenColumn||d&&e.cell<=a.frozenColumn||0<=a.frozenRow&&!w&&e.row>=a.frozenRow||w&&e.rown.right||o.topn.bottom)&&l.scrollCellIntoView(e.row,e.cell)}l.canCellBeSelected(e.row,e.cell)&&t&&t.range&&(t.range.end=e,o=new Slick.Range(t.range.start.row,t.range.start.cell,e.row,e.cell),s.show(o),x.onCellRangeSelecting.notify({range:o}))}}function X(e,t){c&&(c=!1,e.stopImmediatePropagation(),B(),s.hide(),x.onCellRangeSelected.notify({range:new Slick.Range(t.range.start.row,t.range.start.cell,t.range.end.row,t.range.end.cell)}))}Y.extend(this,{init:function(e){if(void 0===Slick.Draggable)throw new Error('Slick.Draggable is undefined, make sure to import "slick.interactions.js"');f=Y.extend(!0,{},I,f),s=f.cellDecorator||new Slick.CellRangeDecorator(e,f),r=(l=e).getCanvasNode(),a=l.getOptions(),t.subscribe(l.onScroll,N).subscribe(l.onDragInit,k).subscribe(l.onDragStart,z).subscribe(l.onDrag,T).subscribe(l.onDragEnd,X)},destroy:function(){t.unsubscribeAll(),r=p=i=null,s&&s.destroy&&s.destroy()},pluginName:"CellRangeSelector",getCellDecorator:function(){return s},getCurrentRange:function(){return n},onBeforeCellRangeSelected:new Slick.Event,onCellRangeSelected:new Slick.Event,onCellRangeSelecting:new Slick.Event})}}})}(jQuery);
\ No newline at end of file
+!function(e){Slick.Utils.extend(!0,e,{Slick:{CellRangeSelector:function(s){var r,a,i,c,n,f,g,u,d,w,p,v,S,m,h,C,o,b,x,y=this,t=new Slick.EventHandler,l={autoScroll:!0,minIntervalToShowNextCell:30,maxIntervalToShowNextCell:600,accelerateInterval:5,selectionCss:{border:"2px dashed blue"}},I=!1,R=0,k=0;function N(e,t){R=t.scrollTop,k=t.scrollLeft}function D(e){n=r.getActiveCanvasNode(e),v=r.getActiveViewportNode(e);var t=r.getDisplayedScrollbarDimensions();S=v.offsetWidth-t.width,m=v.offsetHeight-t.height,C={x:r.getAbsoluteColumnMinWidth()/2,y:r.getOptions().rowHeight/2},I=!(!r.getPluginByName("RowMoveManager")&&!r.getPluginByName("CrossGridRowMoveManager")),d=u=0,p=n.classList.contains("grid-canvas-bottom"),-1s&&(e.offset.x=o.pageX-s);o.pageYf&&(e.offset.y=f-o.pageY);return e.isOutsideViewport=!!e.offset.x||!!e.offset.y,e}(e,t)).isOutsideViewport)return b=s.maxIntervalToShowNextCell-Math.abs(h.offset.x)*s.accelerateInterval,x=s.maxIntervalToShowNextCell-Math.abs(h.offset.y)*s.accelerateInterval,void(o||(c=i=0,o=setInterval(function(){var e,t,o,l,n,r=!1,a=!1;h.offset.x?(i+=s.minIntervalToShowNextCell,r=b<=i):i=0,h.offset.y?(c+=s.minIntervalToShowNextCell,a=x<=c):c=0,(r||a)&&(r&&(i=0),a&&(c=0),r=r,a=a,e=h.e.pageX,t=h.e.pageY,o=h.offset.x,l=h.offset.y,n=h.viewport.offset,r&&o&&(e=0c.frozenColumn||w&&e.cell<=c.frozenColumn||0<=c.frozenRow&&!p&&e.row>=c.frozenRow||p&&e.rowl.right||o.topl.bottom)&&r.scrollCellIntoView(e.row,e.cell)}r.canCellBeSelected(e.row,e.cell)&&t&&t.range&&(t.range.end=e,o=new Slick.Range(t.range.start.row,t.range.start.cell,e.row,e.cell),g.show(o),y.onCellRangeSelecting.notify({range:o}))}}function P(e,t){f&&(f=!1,e.stopImmediatePropagation(),B(),g.hide(),y.onCellRangeSelected.notify({range:new Slick.Range(t.range.start.row,t.range.start.cell,t.range.end.row,t.range.end.cell)}))}Slick.Utils.extend(this,{init:function(e){if(void 0===Slick.Draggable)throw new Error('Slick.Draggable is undefined, make sure to import "slick.interactions.js"');s=Slick.Utils.extend(!0,{},l,s),g=s.cellDecorator||new Slick.CellRangeDecorator(e,s),i=(r=e).getCanvasNode(),c=r.getOptions(),t.subscribe(r.onScroll,N).subscribe(r.onDragInit,D).subscribe(r.onDragStart,z).subscribe(r.onDrag,T).subscribe(r.onDragEnd,P)},destroy:function(){t.unsubscribeAll(),i=v=n=null,g&&g.destroy&&g.destroy()},pluginName:"CellRangeSelector",getCellDecorator:function(){return g},getCurrentRange:function(){return a},onBeforeCellRangeSelected:new Slick.Event,onCellRangeSelected:new Slick.Event,onCellRangeSelecting:new Slick.Event})}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.cellselectionmodel.min.js b/dist/plugins/slick.cellselectionmodel.min.js
index eede4255..ccda567c 100644
--- a/dist/plugins/slick.cellselectionmodel.min.js
+++ b/dist/plugins/slick.cellselectionmodel.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.cellselectionmodel.js
*/
-!function(h){h.extend(!0,window,{Slick:{CellSelectionModel:function(l){var a,n,o,s=[],t=this;n=void 0===l||void 0===l.cellRangeSelector?new Slick.CellRangeSelector({selectionCss:{border:"2px solid black"}}):l.cellRangeSelector;var c={selectActiveCell:!0};function g(e){for(var l=[],n=0;n=u.getDataLength(),h&&p.applySelectOnAllPages||(p.hideInColumnTitleRow||p.hideSelectAllCheckbox||S(g),p.hideInFilterHeaderRow||x("#header-filter-selector"+a).prop("checked",g)),0=t.length,p.hideInColumnTitleRow||p.hideSelectAllCheckbox||S(g),p.hideInFilterHeaderRow||x("#header-filter-selector"+a).prop("checked",g)}function i(e,t){32==e.which&&u.getColumns()[t.cell].id===p.columnId&&(u.getEditorLock().isActive()&&!u.getEditorLock().commitCurrentEdit()||b(t.row),e.preventDefault(),e.stopImmediatePropagation())}function r(e,t){u.getColumns()[t.cell].id===p.columnId&&x(e.target).is(":checkbox")&&(u.getEditorLock().isActive()&&!u.getEditorLock().commitCurrentEdit()?e.preventDefault():(b(t.row),e.stopPropagation()),e.stopImmediatePropagation())}function b(t){var e=u.getDataItem(t);I(t,e,u)&&(f[t]?u.setSelectedRows(x.grep(u.getSelectedRows(),function(e){return e!=t}),"click.toggle"):u.setSelectedRows(u.getSelectedRows().concat(t),"click.toggle"),u.setActiveCell(t,function(){if(null===k){k=0;for(var e=u.getColumns(),t=0;t":"":null}function I(e,t,l){return"function"!=typeof d||d(e,t,l)}function S(e){e?u.updateColumnHeader(p.columnId,"",p.toolTip):u.updateColumnHeader(p.columnId,"",p.toolTip)}function R(e){d=e}x.extend(this,{init:function(e){u=e,(h=!Array.isArray(e.getData()))&&(s=e.getData()),t.subscribe(u.onSelectedRowsChanged,n).subscribe(u.onClick,r).subscribe(u.onKeyDown,i),h&&s&&p.applySelectOnAllPages&&t.subscribe(s.onSelectedRowIdsChanged,c).subscribe(s.onPagingInfoChanged,c),p.hideInFilterHeaderRow||t.subscribe(e.onHeaderRowCellRendered,function(e,t){"sel"===t.column.field&&(x(t.node).empty(),x("").appendTo(t.node).on("click",function(e){m(e,t)}))}),p.hideInColumnTitleRow||t.subscribe(u.onHeaderClick,m)},destroy:function(){t.unsubscribeAll()},pluginName:"CheckboxSelectColumn",deSelectRows:function(e){for(var t=e.length,l=[],o=0;o",toolTip:p.hideSelectAllCheckbox||p.hideInColumnTitleRow?"":p.toolTip,field:"sel",width:p.width,resizable:!1,sortable:!1,cssClass:p.cssClass,hideSelectAllCheckbox:p.hideSelectAllCheckbox,formatter:w}},getOptions:function(){return p},selectableOverride:R,setOptions:function(e){(p=x.extend(!0,{},p,e)).hideSelectAllCheckbox?(l(),o()):(p.hideInColumnTitleRow?l():(S(g),t.subscribe(u.onHeaderClick,m)),p.hideInFilterHeaderRow?o():((e=x("#filter-checkbox-selectall-container")).show(),e.find('input[type="checkbox"]').prop("checked",g)))}})}}})}(jQuery);
\ No newline at end of file
+!function(e){Slick.Utils.extend(!0,e,{Slick:{CheckboxSelectColumn:function(e){let d,u,h=!1,f=null,g,p=w(),t=new Slick.EventHandler,m={},b=!1,n=new Slick.BindingEventService,k=Slick.Utils.extend(!0,{},{columnId:"_checkbox_selector",cssClass:null,hideSelectAllCheckbox:!1,toolTip:"Select/Deselect All",width:30,applySelectOnAllPages:!1,hideInColumnTitleRow:!1,hideInFilterHeaderRow:!0},e);"function"==typeof k.selectableOverride&&R(k.selectableOverride);function l(){u.updateColumnHeader(k.columnId,"","")}function o(){var e=g&&g.querySelector("#filter-checkbox-selectall-container");e&&(e.style.display="none")}function c(){var e=u.getSelectedRows();let t={},l,o,c,n=0;if("function"==typeof f)for(c=0;c=u.getDataLength(),h&&k.applySelectOnAllPages||(k.hideInColumnTitleRow||k.hideSelectAllCheckbox||y(b),k.hideInFilterHeaderRow)||(r=g&&g.querySelector("#header-filter-selector"+p))&&(r.checked=b),0=o.length,k.hideInColumnTitleRow||k.hideSelectAllCheckbox||y(b),k.hideInFilterHeaderRow||(e=g&&g.querySelector("#header-filter-selector"+p))&&(e.checked=b)}function r(e,t){32==e.which&&u.getColumns()[t.cell].id===k.columnId&&(u.getEditorLock().isActive()&&!u.getEditorLock().commitCurrentEdit()||s(t.row),e.preventDefault(),e.stopImmediatePropagation())}function a(e,t){u.getColumns()[t.cell].id===k.columnId&&"checkbox"===e.target.type&&(u.getEditorLock().isActive()&&!u.getEditorLock().commitCurrentEdit()?e.preventDefault():(s(t.row),e.stopPropagation()),e.stopImmediatePropagation())}function s(t){var e=u.getDataItem(t);x(t,e,u)&&(m[t]?(e=u.getSelectedRows().filter(e=>e!==t),u.setSelectedRows(e,"click.toggle")):u.setSelectedRows(u.getSelectedRows().concat(t),"click.toggle"),u.setActiveCell(t,function(){if(null===C){C=0;var t=u.getColumns();for(let e=0;e":"":null}function x(e,t,l){return"function"!=typeof f||f(e,t,l)}function y(e){e?u.updateColumnHeader(k.columnId,"",k.toolTip):u.updateColumnHeader(k.columnId,"",k.toolTip)}function R(e){f=e}Slick.Utils.extend(this,{init:function(e){u=e,(h=!Array.isArray(e.getData()))&&(d=e.getData()),t.subscribe(u.onSelectedRowsChanged,c).subscribe(u.onClick,a).subscribe(u.onKeyDown,r),h&&d&&k.applySelectOnAllPages&&t.subscribe(d.onSelectedRowIdsChanged,i).subscribe(d.onPagingInfoChanged,i),k.hideInFilterHeaderRow||(e=e,t.subscribe(e.onHeaderRowCellRendered,function(e,t){var l,o,c;"sel"===t.column.field&&(Slick.Utils.emptyElement(t.node),(l=document.createElement("span")).id="filter-checkbox-selectall-container",(o=document.createElement("input")).type="checkbox",o.id="header-filter-selector"+p,(c=document.createElement("label")).htmlFor="header-filter-selector"+p,l.appendChild(o),l.appendChild(c),t.node.appendChild(l),g=t.node,n.bind(l,"click",e=>S(e,t)))})),k.hideInColumnTitleRow||t.subscribe(u.onHeaderClick,S)},destroy:function(){t.unsubscribeAll(),n.unbindAll()},pluginName:"CheckboxSelectColumn",deSelectRows:function(e){let t,l=e.length,o=[];for(t=0;to.indexOf(e)<0),"SlickCheckboxSelectColumn.deSelectRows")},selectRows:function(e){let t,l=e.length,o=[];for(t=0;t",toolTip:k.hideSelectAllCheckbox||k.hideInColumnTitleRow?"":k.toolTip,field:"sel",width:k.width,resizable:!1,sortable:!1,cssClass:k.cssClass,hideSelectAllCheckbox:k.hideSelectAllCheckbox,formatter:I}},getOptions:function(){return k},selectableOverride:R,setOptions:function(e){(k=Slick.Utils.extend(!0,{},k,e)).hideSelectAllCheckbox?(l(),o()):(k.hideInColumnTitleRow?l():(y(b),t.subscribe(u.onHeaderClick,S)),k.hideInFilterHeaderRow?o():(e=g.querySelector("#filter-checkbox-selectall-container"))&&(e.style.display="flex",e=e.querySelector('input[type="checkbox"]'))&&(e.checked=b))}})}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.contextmenu.min.js b/dist/plugins/slick.contextmenu.min.js
index 664801ea..ee7950ac 100644
--- a/dist/plugins/slick.contextmenu.min.js
+++ b/dist/plugins/slick.contextmenu.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.contextmenu.js
*/
-!function(V){V.extend(!0,window,{Slick:{Plugins:{ContextMenu:function(t){var T,M,c,r,D=-1,A=-1,E="",o=new Slick.EventHandler,j=this,n={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:-4,autoAlignSideOffset:0,hideMenuOnScroll:!1,maxHeight:"none",width:"auto",optionShownOverColumnIds:[],commandShownOverColumnIds:[]};function u(e){var t=e.touches?e.touches[0]:e,o=M.getCellFromEvent(e),o=(D=o&&o.cell,A=o&&o.row,M.getColumns()[D]),n=M.getDataItem(A),i=P(T.optionShownOverColumnIds,o.id),s=P(T.commandShownOverColumnIds,o.id),l=T.commandItems||[],a=T.optionItems||[];if(o&&(s||i)&&(l.length||a.length)&&(H(e),0!=j.onBeforeMenuShow.notify({cell:D,row:A,grid:M},e,j))){var d=isNaN(T.maxHeight)?T.maxHeight:T.maxHeight+"px",c=isNaN(T.width)?T.width:T.width+"px",c=V('').css("top",t.pageY).css("left",t.pageX).css("display","none"),d='';if(!T.hideOptionSection&&i&&0'),r=(T.hideCloseButton||V(d).on("click",B).appendTo(c),t.appendTo(c),T),u=t,m=a,p={cell:D,row:A,column:o,dataContext:n,grid:M};if(p&&m&&r){r&&r.optionTitle&&V('').append(r.optionTitle).appendTo(u);for(var h=0,v=m.length;h').data("option",void 0!==f.option?f.option:"").data("item",f).on("click",N).appendTo(u),f.divider||"divider"===f?C.addClass("slick-context-menu-item-divider"):(!f.disabled&&g||C.addClass("slick-context-menu-item-disabled"),f.hidden&&C.addClass("slick-context-menu-item-hidden"),f.cssClass&&C.addClass(f.cssClass),f.tooltip&&C.attr("title",f.tooltip),g=V('').appendTo(C),f.iconCssClass&&g.addClass(f.iconCssClass),f.iconImage&&g.css("background-image","url("+f.iconImage+")"),g=V('').text(f.title).appendTo(C),f.textCssClass&&g.addClass(f.textCssClass)))}}}if(!T.hideCommandSection&&s&&0'),r=(T.hideCloseButton||i&&0!==a.length&&!T.hideOptionSection||V(d).on("click",B).appendTo(c),t.appendTo(c),T),w=t,b=l,x={cell:D,row:A,column:o,dataContext:n,grid:M};if(x&&b&&r){r&&r.commandTitle&&V('').append(r.commandTitle).appendTo(w);for(var O=0,S=b.length;O').data("command",void 0!==k.command?k.command:"").data("item",k).on("click",U).appendTo(w),k.divider||"divider"===k?y.addClass("slick-context-menu-item-divider"):(!k.disabled&&I||y.addClass("slick-context-menu-item-disabled"),k.hidden&&y.addClass("slick-context-menu-item-hidden"),k.cssClass&&y.addClass(k.cssClass),k.tooltip&&y.attr("title",k.tooltip),I=V('').appendTo(y),k.iconCssClass&&I.addClass(k.iconCssClass),k.iconImage&&I.css("background-image","url("+k.iconImage+")"),I=V('').text(k.title).appendTo(y),k.textCssClass&&I.addClass(k.textCssClass)))}}}if(c.show(),c.appendTo("body"),0!=j.onAfterMenuShow.notify({cell:D,row:A,grid:M},e,j))return c}}function B(e){e.isDefaultPrevented()||H(e)}function H(e,t){(r=r||V(".slick-context-menu."+E))&&0=s.width?"left":"right")?(r.removeClass("dropright").addClass("dropleft"),d=d-e-i):(r.removeClass("dropleft").addClass("dropright"),d+=i)),r.css("top",a),r.css("left",d),r.data("cell",D).data("row",A).show()),V("body").one("click",function(e){e.isDefaultPrevented()||H(e,{cell:D,row:A})}))}function U(e){var t,o,n,i,s,l=V(this).data("command"),a=V(this).data("item");!a||a.disabled||a.divider||(t=r.data("row"),s=r.data("cell"),o=M.getColumns()[s],n=M.getDataItem(t),Object.prototype.hasOwnProperty.call(n,o&&o.field)&&(i=n[o.field]),null!=l&&""!==l&&(s={cell:s,row:t,grid:M,command:l,item:a,column:o,dataContext:n,value:i},j.onCommand.notify(s,e,j),"function"==typeof a.action&&a.action.call(this,e,s)))}function N(e){var t,o,n,i,s=V(this).data("option"),l=V(this).data("item");l.disabled||l.divider||M.getEditorLock().commitCurrentEdit()&&(t=r.data("row"),i=r.data("cell"),o=M.getColumns()[i],n=M.getDataItem(t),void 0!==s&&(i={cell:i,row:t,grid:M,option:s,item:l,column:o,dataContext:n},j.onOptionSelected.notify(i,e,j),"function"==typeof l.action&&l.action.call(this,e,i)))}function F(e,t){return"function"!=typeof e||e.call(this,t)}V.extend(this,{init:function(e){c=(M=e).getOptions(),T=V.extend({},n,t),E=e&&e.getUID?e.getUID():"",o.subscribe(M.onContextMenu,i),T.hideMenuOnScroll&&o.subscribe(M.onScroll,H)},closeMenu:H,destroy:function(){j.onAfterMenuShow.unsubscribe(),j.onBeforeMenuShow.unsubscribe(),j.onBeforeMenuClose.unsubscribe(),j.onCommand.unsubscribe(),j.onOptionSelected.unsubscribe(),o.unsubscribeAll(),r&&r.remove&&r.remove(),r=null},pluginName:"ContextMenu",setOptions:function(e){T=V.extend({},T,e),e.commandShownOverColumnIds&&(T.commandShownOverColumnIds=e.commandShownOverColumnIds),e.optionShownOverColumnIds&&(T.optionShownOverColumnIds=e.optionShownOverColumnIds)},onAfterMenuShow:new Slick.Event,onBeforeMenuShow:new Slick.Event,onBeforeMenuClose:new Slick.Event,onCommand:new Slick.Event,onOptionSelected:new Slick.Event})}}}})}(jQuery);
\ No newline at end of file
+!function(e){Slick.Utils.extend(!0,e,{Slick:{Plugins:{ContextMenu:function(t){let r,m=-1,u=-1,p,a,h="",n=new Slick.EventHandler,f=this,v,C,g,b=new Slick.BindingEventService,i={autoAdjustDrop:!0,autoAlignSide:!0,autoAdjustDropOffset:-4,autoAlignSideOffset:0,hideMenuOnScroll:!1,maxHeight:"none",width:"auto",optionShownOverColumnIds:[],commandShownOverColumnIds:[]};function e(e){var t=(e=e instanceof Slick.EventData?e.getNativeEvent():e).touches?e.touches[0]:e,n=p.getCellFromEvent(e),n=(m=n&&n.cell,u=n&&n.row,p.getColumns()[m]),i=p.getDataItem(u),o=x(r.optionShownOverColumnIds,n.id),l=x(r.commandShownOverColumnIds,n.id),s=r.commandItems||[],d=r.optionItems||[];if(n&&(l||o)&&(s.length||d.length)&&(S(e),0!=f.onBeforeMenuShow.notify({cell:m,row:u,grid:p},e,f).getReturnValue())){var c=isNaN(r.maxHeight)?r.maxHeight:r.maxHeight+"px",a=isNaN(r.width)?r.width:r.width+"px",a=((g=document.createElement("div")).className="slick-context-menu "+h,g.role="menu",g.style.width=a,g.style.maxHeight=c,g.style.top=t.pageY+"px",g.style.left=t.pageX+"px",g.style.display="none",document.createElement("button")),c=(a.type="button",a.className="close",a.dataset.dismiss="slick-context-menu",a.ariaLabel="Close",document.createElement("span"));if(c.className="close",c.ariaHidden="true",c.innerHTML="×",a.appendChild(c),!r.hideOptionSection&&o&&0=l.width?"left":"right")?(g.classList.remove("dropright"),g.classList.add("dropleft"),e=e-d-c):(g.classList.remove("dropleft"),g.classList.add("dropright"),e+=c));g.style.top=t+"px",g.style.left=e+"px"}g.style.display="block"}b.bind(document.body,"click",e=>{e.defaultPrevented||S(e,{cell:m,row:u})})}}function k(t,n){if(t&&!t.disabled&&!t.divider){var i=t.command||"",o=u,l=m,s=p.getColumns()[l],d=p.getDataItem(o);let e;Object.prototype.hasOwnProperty.call(d,s&&s.field)&&(e=d[s.field]),null!=i&&""!==i&&(l={cell:l,row:o,grid:p,command:i,item:t,column:s,dataContext:d,value:e},f.onCommand.notify(l,n,f),"function"==typeof t.action)&&t.action.call(this,n,l)}}function y(e,t){var n,i,o,l,s;e.disabled||e.divider||p.getEditorLock().commitCurrentEdit()&&(n=void 0!==e.option?e.option:"",i=u,s=m,o=p.getColumns()[s],l=p.getDataItem(i),void 0!==n)&&(s={cell:s,row:i,grid:p,option:n,item:e,column:o,dataContext:l},f.onOptionSelected.notify(s,t,f),"function"==typeof e.action)&&e.action.call(this,t,s)}function O(e,t){return"function"!=typeof e||e.call(this,t)}Slick.Utils.extend(this,{init:function(e){p=e,a=e.getOptions(),r=Slick.Utils.extend({},i,t),h=e&&e.getUID?e.getUID():"",n.subscribe(p.onContextMenu,o),r.hideMenuOnScroll&&n.subscribe(p.onScroll,S)},closeMenu:S,destroy:function(){f.onAfterMenuShow.unsubscribe(),f.onBeforeMenuShow.unsubscribe(),f.onBeforeMenuClose.unsubscribe(),f.onCommand.unsubscribe(),f.onOptionSelected.unsubscribe(),n.unsubscribeAll(),b.unbindAll(),g&&g.remove&&g.remove(),C=null,v=null,g=null},pluginName:"ContextMenu",setOptions:function(e){r=Slick.Utils.extend({},r,e),e.commandShownOverColumnIds&&(r.commandShownOverColumnIds=e.commandShownOverColumnIds),e.optionShownOverColumnIds&&(r.optionShownOverColumnIds=e.optionShownOverColumnIds)},onAfterMenuShow:new Slick.Event,onBeforeMenuShow:new Slick.Event,onBeforeMenuClose:new Slick.Event,onCommand:new Slick.Event,onOptionSelected:new Slick.Event})}}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.crossgridrowmovemanager.min.js b/dist/plugins/slick.crossgridrowmovemanager.min.js
index a0518db5..99441144 100644
--- a/dist/plugins/slick.crossgridrowmovemanager.min.js
+++ b/dist/plugins/slick.crossgridrowmovemanager.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.crossgridrowmovemanager.js
*/
-!function(M){M.extend(!0,window,{Slick:{CrossGridRowMoveManager:function(i){var s,r,c,a,d,n=this,l=null,o=new Slick.EventHandler,t={columnId:"_move",cssClass:null,cancelEditOnDrag:!1,disableRowSelection:!1,hideRowMoveShadow:!0,rowMoveShadowMarginTop:0,rowMoveShadowMarginLeft:0,rowMoveShadowOpacity:.95,rowMoveShadowScale:.75,singleRowMove:!1,width:40};i&&"function"==typeof i.usabilityOverride&&h(i.usabilityOverride);function w(e){e.stopImmediatePropagation()}function u(e,o){var t=s.getCellFromEvent(e),n=t&&t.row;if(f(n,s.getDataItem(n),s)){if(i.cancelEditOnDrag&&s.getEditorLock().isActive()&&s.getEditorLock().cancelCurrentEdit(),s.getEditorLock().isActive()||!p(t.cell))return!1;d=!0,e.stopImmediatePropagation(),i.hideRowMoveShadow||(n=M(s.getCellNode(t.row,t.cell)).closest(".slick-row"))&&(o.clonedSlickRow=n.clone(),o.clonedSlickRow.addClass("slick-reorder-shadow-row").css("marginTop",i.rowMoveShadowMarginTop||0).css("marginLeft",i.rowMoveShadowMarginLeft||0).css("opacity",i.rowMoveShadowOpacity||.95).css("transform","scale("+i.rowMoveShadowScale+")").hide().appendTo(r));e=i.singleRowMove?[t.row]:s.getSelectedRows(),n=(0!==e.length&&-1!=M.inArray(t.row,e)||(e=[t.row],i.disableRowSelection||s.setSelectedRows(e)),e.sort(function(e,o){return e-o}),s.getOptions().rowHeight);o.fromGrid=s,o.toGrid=c,o.selectedRows=e,o.selectionProxy=M("").css("position","absolute").css("zIndex","99999").css("width",M(a).innerWidth()).css("height",n*e.length).hide().appendTo(a),o.guide=M("").css("position","absolute").css("zIndex","99998").css("width",M(a).innerWidth()).css("top",-1e3).appendTo(a),o.insertBefore=-1}}function g(e,o){var t;d&&(e.stopImmediatePropagation(),t=e.pageY-M(a).offset().top,o.selectionProxy.css("top",t-5).show(),o.clonedSlickRow&&(e=e.pageY-M(r).offset().top,o.clonedSlickRow.css("top",e-6).show()),(e=Math.max(0,Math.min(Math.round(t/c.getOptions().rowHeight),c.getDataLength())))!==o.insertBefore&&(!(t={fromGrid:s,toGrid:c,rows:o.selectedRows,insertBefore:e})===n.onBeforeMoveRows.notify(t)?o.canMove=!1:o.canMove=!0,l&&o.canMove&&(t=c.getDataItem(e),o.canMove=f(e,t,c)),o.canMove?o.guide.css("top",e*c.getOptions().rowHeight):o.guide.css("top",-1e3),o.insertBefore=e))}function v(e,o){d&&(d=!1,e.stopImmediatePropagation(),o.guide.remove(),o.selectionProxy.remove(),o.clonedSlickRow&&(o.clonedSlickRow.remove(),o.clonedSlickRow=null),o.canMove&&(e={fromGrid:s,toGrid:c,rows:o.selectedRows,insertBefore:o.insertBefore},n.onMoveRows.notify(e)))}function e(e,o,t,n,i,s){return f(e,i,s)?{addClasses:"cell-reorder dnd",text:""}:null}function f(e,o,t){return"function"!=typeof l||l(e,o,t)}function h(e){l=e}function p(e){return/move|selectAndMove/.test(s.getColumns()[e].behavior)}M.extend(this,{onBeforeMoveRows:new Slick.Event,onMoveRows:new Slick.Event,init:function(e){i=M.extend(!0,{},t,i),r=(s=e).getCanvasNode(),c=i.toGrid,a=c.getCanvasNode(),o.subscribe(s.onDragInit,w).subscribe(s.onDragStart,u).subscribe(s.onDrag,g).subscribe(s.onDragEnd,v)},destroy:function(){o.unsubscribeAll()},getColumnDefinition:function(){return{id:i.columnId||"_move",name:"",field:"move",width:i.width||40,behavior:"selectAndMove",selectable:!1,resizable:!1,cssClass:i.cssClass,formatter:e}},setOptions:function(e){i=M.extend({},i,e)},usabilityOverride:h,isHandlerColumn:p,pluginName:"CrossGridRowMoveManager"})}}})}(jQuery);
\ No newline at end of file
+!function(e){Slick.Utils.extend(!0,e,{Slick:{CrossGridRowMoveManager:function(n){var l,s,r,c,d,i=this,a=null,o=new Slick.EventHandler,t={columnId:"_move",cssClass:null,cancelEditOnDrag:!1,disableRowSelection:!1,hideRowMoveShadow:!0,rowMoveShadowMarginTop:0,rowMoveShadowMarginLeft:0,rowMoveShadowOpacity:.95,rowMoveShadowScale:.75,singleRowMove:!1,width:40};n&&"function"==typeof n.usabilityOverride&&y(n.usabilityOverride);function w(e){e.stopImmediatePropagation()}function u(e,o){var t=l.getCellFromEvent(e),i=t&&t.row;if(p(i,l.getDataItem(i),l)){if(n.cancelEditOnDrag&&l.getEditorLock().isActive()&&l.getEditorLock().cancelCurrentEdit(),l.getEditorLock().isActive()||!f(t.cell))return!1;d=!0,e.stopImmediatePropagation(),n.hideRowMoveShadow||(e=(i=l.getCellNode(t.row,t.cell))&&i.closest(".slick-row"))&&(o.clonedSlickRow=e.cloneNode(!0),o.clonedSlickRow.classList.add("slick-reorder-shadow-row"),o.clonedSlickRow.style.display="none",o.clonedSlickRow.style.marginLeft=Number(n.rowMoveShadowMarginLeft||0)+"px",o.clonedSlickRow.style.marginTop=Number(n.rowMoveShadowMarginTop||0)+"px",o.clonedSlickRow.style.opacity=""+(n.rowMoveShadowOpacity||.95),o.clonedSlickRow.style.transform=`scale(${n.rowMoveShadowScale||.75})`,s.appendChild(o.clonedSlickRow));i=n.singleRowMove?[t.row]:l.getSelectedRows(),e=(0!==i.length&&i.some(e=>e===t.row)||(i=[t.row],n.disableRowSelection)||l.setSelectedRows(i),i.sort(function(e,o){return e-o}),l.getOptions().rowHeight);o.fromGrid=l,o.toGrid=r,o.selectedRows=i,o.selectionProxy=document.createElement("div"),o.selectionProxy.className="slick-reorder-proxy",o.selectionProxy.style.display="none",o.selectionProxy.style.position="absolute",o.selectionProxy.style.zIndex="99999",o.selectionProxy.style.width=c.clientWidth+"px",o.selectionProxy.style.height=e*i.length+"px",c.appendChild(o.selectionProxy),o.guide=document.createElement("div"),o.guide.className="slick-reorder-guide",o.guide.style.position="absolute",o.guide.style.zIndex="99999",o.guide.style.width=c.clientWidth+"px",o.guide.style.top="-1000px",c.appendChild(o.guide),o.insertBefore=-1}}function g(e,o){var t;d&&(e.stopImmediatePropagation(),e=((e=e.getNativeEvent()).touches?e.touches[0]:e).pageY-(Slick.Utils.offset(c).top||0),o.selectionProxy.style.top=e-5+"px",o.selectionProxy.style.display="block",o.clonedSlickRow&&(o.clonedSlickRow.style.top=e-6+"px",o.clonedSlickRow.style.display="block"),(e=Math.max(0,Math.min(Math.round(e/r.getOptions().rowHeight),r.getDataLength())))!==o.insertBefore)&&(!(t={fromGrid:l,toGrid:r,rows:o.selectedRows,insertBefore:e})===i.onBeforeMoveRows.notify(t).getReturnValue()?o.canMove=!1:o.canMove=!0,a&&o.canMove&&(t=r.getDataItem(e),o.canMove=p(e,t,r)),o.canMove?o.guide.style.top=e*(r.getOptions().rowHeight||0)+"px":o.guide.style.top="-1000px",o.insertBefore=e)}function v(e,o){d&&(d=!1,e.stopImmediatePropagation(),o.guide.remove(),o.selectionProxy.remove(),o.clonedSlickRow&&(o.clonedSlickRow.remove(),o.clonedSlickRow=null),o.canMove)&&(e={fromGrid:l,toGrid:r,rows:o.selectedRows,insertBefore:o.insertBefore},i.onMoveRows.notify(e))}function e(e,o,t,i,n,l){return p(e,n,l)?{addClasses:"cell-reorder dnd",text:""}:null}function p(e,o,t){return"function"!=typeof a||a(e,o,t)}function y(e){a=e}function f(e){return/move|selectAndMove/.test(l.getColumns()[e].behavior)}Slick.Utils.extend(this,{onBeforeMoveRows:new Slick.Event,onMoveRows:new Slick.Event,init:function(e){n=Slick.Utils.extend(!0,{},t,n),s=(l=e).getCanvasNode(),r=n.toGrid,c=r.getCanvasNode(),o.subscribe(l.onDragInit,w).subscribe(l.onDragStart,u).subscribe(l.onDrag,g).subscribe(l.onDragEnd,v)},destroy:function(){o.unsubscribeAll()},getColumnDefinition:function(){return{id:n.columnId||"_move",name:"",field:"move",width:n.width||40,behavior:"selectAndMove",selectable:!1,resizable:!1,cssClass:n.cssClass,formatter:e}},setOptions:function(e){n=Slick.Utils.extend({},n,e)},usabilityOverride:y,isHandlerColumn:f,pluginName:"CrossGridRowMoveManager"})}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.customtooltip.min.js b/dist/plugins/slick.customtooltip.min.js
index 3cc9083e..1ce2cdad 100644
--- a/dist/plugins/slick.customtooltip.min.js
+++ b/dist/plugins/slick.customtooltip.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.customtooltip.js
*/
-!function(H){H.extend(!0,window,{Slick:{Plugins:{CustomTooltip:function(o){var i,d,r,f,m,p,c,n={className:"slick-custom-tooltip",offsetLeft:0,offsetRight:0,offsetTopBottom:4,hideArrow:!1,tooltipTextMaxLength:700,regularTooltipWhiteSpace:"pre-line",whiteSpace:"normal"},l=new Slick.EventHandler,g={};function a(t,e){u(t,e,"slick-header-column")}function s(t,e){u(t,e,"slick-headerrow-column")}function u(t,e,o){b();var i,r={row:-1,cell:f.getColumns().findIndex(function(t){return e&&e.column&&e.column.id===t.id})},n=e.column,l={},a="slick-headerrow-column"===o;(e=e||{}).cell=r.cell,e.row=r.row,e.columnDef=n,e.dataContext=l,e.grid=f,e.type=a?"header-row":"header",g=H.extend(!0,{},c,n.customTooltip),n&&n.disableTooltip||!C(g.usabilityOverride,e)||n&&t.target&&(t=t.target,i=o,d="function"!=typeof t.closest?t.classList.contains(i)?t:t.parentElement.classList.contains(i)?t.parentElement:null:t.closest("."+i),t=(a="slick-headerrow-column"===o)?g.headerRowFormatter:g.headerFormatter,g.useRegularTooltip||!t?y(a?g.useRegularTooltip?null:t:n.name,r,null,n,l):d&&"function"==typeof t&&S(t,r,null,n,l))}function h(t,e){if(b(),f&&t){var n=f.getCellFromEvent(t);if(n){var l=r?r.getItem(n.row):f.getDataItem(n.row),a=f.getColumns()[n.cell];if(d=f.getCellNode(n.row,n.cell),g=H.extend(!0,{},c,a.customTooltip),l&&a&&((e=e||{}).cell=n.cell,e.row=n.row,e.columnDef=a,e.dataContext=l,e.grid=f,e.type="cell",!(a&&a.disableTooltip||!C(g.usabilityOverride,e)))){var s=l.hasOwnProperty(a.field)?l[a.field]:null;if(g.useRegularTooltip||!g.formatter)y(a.formatter,n,s,a,l);else if("function"==typeof g.formatter&&S(g.formatter,n,s,a,l),"function"==typeof g.asyncProcess){t=g.asyncProcess(n.row,n.cell,s,a,l,f);if(!g.asyncPostFormatter)throw new Error('[SlickGrid] when using "asyncProcess", you must also provide an "asyncPostFormatter" formatter');t instanceof Promise&&(i=function(t){var e=!1;if(t instanceof Promise)return{promise:t.then(function(t){if(e)throw{isPromiseCancelled:!0};return t}),cancel:function(){e=!0}};return t}(t)).promise.then(function(t){var e=n,o=s,i=a,r=l;b(),r=H.extend(!0,{},r,{[g.asyncParamsPropName||"__params"]:t}),S(g.asyncPostFormatter,e,o,i,r)}).catch(function(t){if(!t.isPromiseCancelled)throw t})}}}}}function w(e,t){var o;return e?(t.forEach(function(t){t=e.getAttribute(t);t&&(o=t)}),o):null}function y(t,e,o,i,r){var n,l=document.createElement("div"),a=(l.innerHTML=T(t,e,o,i,r),i.toolTip||"");a||(d&&d.clientWidthg.tooltipTextMaxLength&&(a=a.substring(0,g.tooltipTextMaxLength-3)+"..."),n=d):(g.useRegularTooltipFromFormatterOnly?n=l.querySelector("[title], [data-slick-tooltip]"):(n=w(d,["title","data-slick-tooltip"])?d:l.querySelector("[title], [data-slick-tooltip]"))&&w(n,["title","data-slick-tooltip"])||!d||(n=d.querySelector("[title], [data-slick-tooltip]")),(!a||"function"==typeof t&&g.useRegularTooltipFromFormatterOnly)&&(a=w(n,["title","data-slick-tooltip"])||""))),""!==a&&S(t,e,o,i,r,a),x(n,a)}function x(t,e){t=t||d&&(d.hasAttribute("title")&&d.getAttribute("title")?d:d.querySelector("[title]"));t&&(t.setAttribute("data-slick-tooltip",e||""),t.hasAttribute("title")&&t.setAttribute("title",""))}function v(t){var e=0,o=(window.pageXOffset||document.documentElement.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||0),t=L(t);return e=t?t.top-o:e}function L(t){var e,o,i,r;if(t)return void(r=i=o=e=0)!==(t=t.getBoundingClientRect()).top&&void 0!==t.left&&(e=t.top+window.pageYOffset,o=t.left+window.pageXOffset,r=t.right,i=t.bottom),{top:e,left:o,bottom:i,right:r}}function b(){i&&i.cancel&&i.cancel();var t=document.body.querySelector("."+g.className+"."+f.getUID());t&&t.remove&&t.remove()}function T(t,e,o,i,r){return"function"==typeof t?(o="object"==typeof(e=t(e.row,e.cell,o,i,r,f))&&e&&e.text?e.text:"string"==typeof e?e:"",f.sanitizeHtmlString(o)):"string"==typeof t?f.sanitizeHtmlString(t):""}function S(t,e,o,i,r,n,l){(p=document.createElement("div")).className=g.className,p.classList.add(f.getUID()),p.classList.add("l"+e.cell),p.classList.add("r"+e.cell);var a,s,c,t=n||T(t,e,o,i,r)||"",t=g.tooltipTextMaxLength&&t.length>g.tooltipTextMaxLength?t.substring(0,g.tooltipTextMaxLength-3)+"...":t;let u="";!n||g&&g.renderRegularTooltipAsHtml?(u=f.sanitizeHtmlString(t),p.innerHTML=u,p.style.whiteSpace=g&&g.whiteSpace||_defaultOptions.whiteSpace):(u=t||"",p.textContent=u,p.style.whiteSpace=g&&g.regularTooltipWhiteSpace||_defaultOptions.regularTooltipWhiteSpace),g.maxHeight&&(p.style.maxHeight=g.maxHeight+"px"),g.maxWidth&&(p.style.maxWidth=g.maxWidth+"px"),u&&(document.body.appendChild(p),o=e,p&&(o=L(d=d||f.getCellNode(o.row,o.cell)),i=d.offsetWidth,r=p.getBoundingClientRect().height,n=p.getBoundingClientRect().width,e=document.body.offsetWidth||window.innerWidth,a=o.top-p.offsetHeight-(g.offsetTopBottom||0),s=(o&&o.left||0)-(g.offsetRight||0),"center"===(c=g.position||"auto")?(s+=i/2-n/2+(g.offsetRight||0),p.classList.remove("arrow-left-align"),p.classList.remove("arrow-right-align"),p.classList.add("arrow-center-align")):"right-align"===c||("auto"===c||"left-align"!==c)&&ev(d)?(a=o.top+(m.rowHeight||0)+(g.offsetTopBottom||0),p.classList.remove("arrow-down"),p.classList.add("arrow-up")):(p.classList.add("arrow-down"),p.classList.remove("arrow-up")),p.style.top=a+"px",p.style.left=s+"px"),g.hideArrow||p.classList.add("tooltip-arrow"),x(l,t))}function C(t,e){return"function"!=typeof t||t.call(this,e)}H.extend(this,{init:function(t){var e=(f=t)&&t.getData()||[];r=Array.isArray(e)?null:e,m=t.getOptions()||{},c=H.extend(!0,{},n,m.customTooltip,o),l.subscribe(t.onMouseEnter,h).subscribe(t.onHeaderMouseEnter,a).subscribe(t.onHeaderRowMouseEnter,s).subscribe(t.onMouseLeave,b).subscribe(t.onHeaderMouseLeave,b).subscribe(t.onHeaderRowMouseLeave,b)},destroy:function(){b(),l.unsubscribeAll()},hide:b,setOptions:function(t){c=H.extend({},c,t)},pluginName:"CustomTooltip"})}}}})}(jQuery);
\ No newline at end of file
+!function(C){Slick.Utils.extend(!0,C,{Slick:{Plugins:{CustomTooltip:function(o){var i,f,l,d,m,p,c,g={className:"slick-custom-tooltip",offsetLeft:0,offsetRight:0,offsetTopBottom:4,hideArrow:!1,tooltipTextMaxLength:700,regularTooltipWhiteSpace:"pre-line",whiteSpace:"normal"},r=new Slick.EventHandler,h={};function n(t,e){s(t,e,"slick-header-column")}function a(t,e){s(t,e,"slick-headerrow-column")}function s(t,e,o){b();var i={row:-1,cell:d.getColumns().findIndex(function(t){return e&&e.column&&e.column.id===t.id})},l=e.column,r={},n="slick-headerrow-column"===o;(e=e||{}).cell=i.cell,e.row=i.row,e.columnDef=l,e.dataContext=r,e.grid=d,e.type=n?"header-row":"header",h=Slick.Utils.extend(!0,{},c,l.customTooltip),l&&l.disableTooltip||!k(h.usabilityOverride,e)||l&&t.target&&(t=t.target,o=o,f="function"!=typeof t.closest?t.classList.contains(o)?t:t.parentElement.classList.contains(o)?t.parentElement:null:t.closest("."+o),t=n?h.headerRowFormatter:h.headerFormatter,h.useRegularTooltip||!t?y(n?h.useRegularTooltip?null:t:l.name,i,null,l,r):f&&"function"==typeof t&&S(t,i,null,l,r))}function u(t,e){if(b(),d&&t){var r=d.getCellFromEvent(t);if(r){var n=l?l.getItem(r.row):d.getDataItem(r.row),a=d.getColumns()[r.cell];if(f=d.getCellNode(r.row,r.cell),h=Slick.Utils.extend(!0,{},c,a.customTooltip),n&&a&&((e=e||{}).cell=r.cell,e.row=r.row,e.columnDef=a,e.dataContext=n,e.grid=d,e.type="cell",!(a&&a.disableTooltip||!k(h.usabilityOverride,e)))){var s=n.hasOwnProperty(a.field)?n[a.field]:null;if(h.useRegularTooltip||!h.formatter)y(a.formatter,r,s,a,n);else if("function"==typeof h.formatter&&S(h.formatter,r,s,a,n),"function"==typeof h.asyncProcess){t=h.asyncProcess(r.row,r.cell,s,a,n,d);if(!h.asyncPostFormatter)throw new Error('[SlickGrid] when using "asyncProcess", you must also provide an "asyncPostFormatter" formatter');t instanceof Promise&&(i=function(t){var e=!1;if(t instanceof Promise)return{promise:t.then(function(t){if(e)throw{isPromiseCancelled:!0};return t}),cancel:function(){e=!0}};return t}(t)).promise.then(function(t){var e=r,o=s,i=a,l=n;b(),l=Slick.Utils.extend(!0,{},l,{[h.asyncParamsPropName||"__params"]:t}),S(h.asyncPostFormatter,e,o,i,l)}).catch(function(t){if(!t.isPromiseCancelled)throw t})}}}}}function w(e,t){var o;return e?(t.forEach(function(t){t=e.getAttribute(t);t&&(o=t)}),o):null}function y(t,e,o,i,l){var r,n=document.createElement("div"),a=(n.innerHTML=T(t,e,o,i,l),i.toolTip||"");a||(f&&f.clientWidthh.tooltipTextMaxLength&&(a=a.substring(0,h.tooltipTextMaxLength-3)+"..."),r=f):(h.useRegularTooltipFromFormatterOnly?r=n.querySelector("[title], [data-slick-tooltip]"):(r=w(f,["title","data-slick-tooltip"])?f:n.querySelector("[title], [data-slick-tooltip]"))&&w(r,["title","data-slick-tooltip"])||!f||(r=f.querySelector("[title], [data-slick-tooltip]")),(!a||"function"==typeof t&&h.useRegularTooltipFromFormatterOnly)&&(a=w(r,["title","data-slick-tooltip"])||""))),""!==a&&S(t,e,o,i,l,a),x(r,a)}function x(t,e){t=t||f&&(f.hasAttribute("title")&&f.getAttribute("title")?f:f.querySelector("[title]"));t&&(t.setAttribute("data-slick-tooltip",e||""),t.hasAttribute("title"))&&t.setAttribute("title","")}function v(t){var e=0,o=(C.pageXOffset||document.documentElement.scrollLeft,C.pageYOffset||document.documentElement.scrollTop||0),t=L(t);return e=t?t.top-o:e}function L(t){var e,o,i,l;if(t)return void(l=i=o=e=0)!==(t=t.getBoundingClientRect()).top&&void 0!==t.left&&(e=t.top+C.pageYOffset,o=t.left+C.pageXOffset,l=t.right,i=t.bottom),{top:e,left:o,bottom:i,right:l}}function b(){i&&i.cancel&&i.cancel();var t=document.body.querySelector("."+h.className+"."+d.getUID());t&&t.remove&&t.remove()}function T(t,e,o,i,l){return"function"==typeof t?(o="object"==typeof(e=t(e.row,e.cell,o,i,l,d))&&e&&e.text?e.text:"string"==typeof e?e:"",d.sanitizeHtmlString(o)):"string"==typeof t?d.sanitizeHtmlString(t):""}function S(t,e,o,i,l,r,n){(p=document.createElement("div")).className=h.className,p.classList.add(d.getUID()),p.classList.add("l"+e.cell),p.classList.add("r"+e.cell);var a,s,c,t=r||T(t,e,o,i,l)||"",t=h.tooltipTextMaxLength&&t.length>h.tooltipTextMaxLength?t.substring(0,h.tooltipTextMaxLength-3)+"...":t;let u="";!r||h&&h.renderRegularTooltipAsHtml?(u=d.sanitizeHtmlString(t),p.innerHTML=u,p.style.whiteSpace=h&&h.whiteSpace||g.whiteSpace):(u=t||"",p.textContent=u,p.style.whiteSpace=h&&h.regularTooltipWhiteSpace||g.regularTooltipWhiteSpace),h.maxHeight&&(p.style.maxHeight=h.maxHeight+"px"),h.maxWidth&&(p.style.maxWidth=h.maxWidth+"px"),u&&(document.body.appendChild(p),o=e,p&&(o=L(f=f||d.getCellNode(o.row,o.cell)),i=f.offsetWidth,l=p.getBoundingClientRect().height,r=p.getBoundingClientRect().width,e=document.body.offsetWidth||C.innerWidth,a=o.top-p.offsetHeight-(h.offsetTopBottom||0),s=(o&&o.left||0)-(h.offsetRight||0),"center"===(c=h.position||"auto")?(s+=i/2-r/2+(h.offsetRight||0),p.classList.remove("arrow-left-align"),p.classList.remove("arrow-right-align"),p.classList.add("arrow-center-align")):"right-align"===c||("auto"===c||"left-align"!==c)&&ev(f)?(a=o.top+(m.rowHeight||0)+(h.offsetTopBottom||0),p.classList.remove("arrow-down"),p.classList.add("arrow-up")):(p.classList.add("arrow-down"),p.classList.remove("arrow-up")),p.style.top=a+"px",p.style.left=s+"px"),h.hideArrow||p.classList.add("tooltip-arrow"),x(n,t))}function k(t,e){return"function"!=typeof t||t.call(this,e)}Slick.Utils.extend(this,{init:function(t){var e=(d=t)&&t.getData()||[];l=Array.isArray(e)?null:e,m=t.getOptions()||{},c=Slick.Utils.extend(!0,{},g,m.customTooltip,o),r.subscribe(t.onMouseEnter,u).subscribe(t.onHeaderMouseEnter,n).subscribe(t.onHeaderRowMouseEnter,a).subscribe(t.onMouseLeave,b).subscribe(t.onHeaderMouseLeave,b).subscribe(t.onHeaderRowMouseLeave,b)},destroy:function(){b(),r.unsubscribeAll()},hide:b,setOptions:function(t){c=Slick.Utils.extend({},c,t)},pluginName:"CustomTooltip"})}}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.draggablegrouping.min.css b/dist/plugins/slick.draggablegrouping.min.css
index dd55cc25..0524f15d 100644
--- a/dist/plugins/slick.draggablegrouping.min.css
+++ b/dist/plugins/slick.draggablegrouping.min.css
@@ -1 +1 @@
-.slick-group-toggle-all.expanded{background:url('../images/collapse.gif') no-repeat center center;width:9px;height:9px;position:absolute;display:inline-block;right:10px}.slick-group-toggle-all.collapsed{background:url('../images/expand.gif') no-repeat center center;width:9px;height:9px;position:absolute;display:inline-block;right:10px}.slick-column-groupable{width:9px;height:9px;display:inline-block;margin-left:4px}.slick-column-groupable-image{background:url('../images/column-grouping.png') no-repeat center center}.slick-dropped-grouping{display:inline-block;margin-right:5px;vertical-align:middle;cursor:pointer;z-index:-1}.slick-groupby-remove{padding-right:20px;display:inline-flex}.slick-groupby-remove-image{margin-left:5px;background:url(../images/delete.png) no-repeat center right}.slick-groupby-remove-image::before{content:".";display:block;clear:both}.slick-placeholder{font-size:11px;height:100%}.slick-droppable-sortitem-hover{opacity:0.5}.slick-dropzone{padding:4px}.slick-dropzone-hover{border:1px dashed rgb(255,95,95)}.slick-dropzone-placeholder-hover{color:#545454;background-color:#f3f3f3;background-clip:border-box}
\ No newline at end of file
+.slick-group-toggle-all.expanded{background:url('../images/collapse.gif') no-repeat center center;width:9px;height:9px;position:absolute;display:inline-block;right:10px}.slick-group-toggle-all.collapsed{background:url('../images/expand.gif') no-repeat center center;width:9px;height:9px;position:absolute;display:inline-block;right:10px}.slick-column-groupable{width:9px;height:9px;display:inline-block;margin-left:4px}.slick-column-groupable-image{background:url('../images/column-grouping.png') no-repeat center center}.slick-dropped-grouping{display:inline-block;margin-right:5px;vertical-align:middle;cursor:pointer;z-index:-1}.slick-groupby-remove{padding-right:20px;display:inline-flex}.slick-groupby-remove-image{margin-left:5px;background:url(../images/delete.png) no-repeat center right}.slick-groupby-remove-image::before{content:".";display:block;clear:both}.slick-placeholder{font-size:11px;height:100%;width:100%}.slick-droppable-sortitem-hover{opacity:0.5}.slick-dropzone{padding:4px}.slick-dropzone-hover{border:1px dashed rgb(255,95,95)}.slick-dropzone-placeholder-hover{color:#545454;background-color:#f3f3f3;background-clip:border-box}
\ No newline at end of file
diff --git a/dist/plugins/slick.draggablegrouping.min.js b/dist/plugins/slick.draggablegrouping.min.js
index a78d5bea..48b027db 100644
--- a/dist/plugins/slick.draggablegrouping.min.js
+++ b/dist/plugins/slick.draggablegrouping.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.draggablegrouping.js
*/
-!function(I){I.extend(!0,window,{Slick:{DraggableGrouping:function(c){var n,p,g,a,k,u,m,C,b,s={},o=new Slick.Event,i=new Slick.EventHandler,y=[];var h=[];function t(d,i){var t=i.attr("data-id").replace(this._gridUid,""),l=!0;h.forEach(function(e,o,r){e.id==t&&(l=!1)}),l&&(g.forEach(function(e,o,r){var l,n,a,s;e.id!=t||null==e.grouping||I.isEmptyObject(e.grouping)||(l=I("
"),n=i.find(".slick-column-name"),I("
"+(0").appendTo(l),n=I(""),c.deleteIconCssClass&&n.addClass(c.deleteIconCssClass),c.deleteIconImage&&n.css("background","url("+c.deleteIconImage+") no-repeat center right"),c.deleteIconCssClass||c.deleteIconImage||n.addClass("slick-groupby-remove-image"),n.appendTo(l),I("
"),u=k.find(".slick-placeholder"),(m=k.find(".slick-group-toggle-all")).hide(),e=k[0],d=Sortable.create(e,{group:"shared",ghostClass:"slick-droppable-sortitem-hover",draggable:".slick-dropped-grouping",dragoverBubble:!0,onAdd:function(e){var o=e.item;o.getAttribute("id").replace(p,"")&&t(k[0],I(Sortable.utils.clone(e.item))),e.clone.style.opacity=.5,o.parentNode.removeChild(o)},onUpdate:function(e){for(var o=d.toArray(),r=[],l=0,n=o.length;l"),c.groupIconCssClass&&r.addClass(c.groupIconCssClass),c.groupIconImage&&r.css("background","url("+c.groupIconImage+") no-repeat center center"),I(o).css("cursor","pointer").append(r))});for(var r=0;r{for(const o of g.boundedEvents.filter(e=>e.element===t))g.unbind(o.element,"click",o.listener);var e=r,l=(n.remove(),[]);u.forEach(function(e){l[e.id]=e}),function(e){var l,o,r=arguments,t=r.length;for(;1{var l=e.item,o=l.getAttribute("id");o&&o.replace(p,"")&&f(r,Sortable.utils.clone(e.item)),e.clone.style.opacity=".5",l.parentNode&&l.parentNode.removeChild(l)},onUpdate:()=>{for(var e=a&&a.toArray()||[],l=[],o=0,r=e.length;oe.preventDefault),g.bind(e,"dragenter",()=>s.classList.add("slick-dropzone-hover")),g.bind(e,"dragleave",()=>s.classList.remove("slick-dropzone-hover"))),h&&g.bind(h,"click",e=>{var l,o,e=e.target;[e,l=!0,o=!0]=[e,e&&e.classList.contains("expanded")],e&&(!0===l?(e.classList.add("collapsed"),e.classList.remove("expanded"),o&&n.collapseAllGroups()):(e.classList.remove("collapsed"),e.classList.add("expanded"),o&&n.expandAllGroups()))})}c.subscribe(t.onHeaderCellRendered,function(e,l){var o=l.column,l=l.node;!Slick.Utils.isEmptyObject(o.grouping)&&l&&(l.style.cursor="pointer",d.groupIconCssClass||d.groupIconImage)&&((o=document.createElement("span")).className="slick-column-groupable",d.groupIconCssClass&&o.classList.add(d.groupIconCssClass.split(" ")),d.groupIconImage&&(o.style.background="url("+d.groupIconImage+") no-repeat center center"),l.appendChild(o))});for(var l=0;le.style.display="none")},onEnd:function(e){var l=m.querySelector(".slick-placeholder"),o=(m.classList.remove("slick-dropzone-hover"),l.classList.remove("slick-dropzone-placeholder-hover"),y&&(y.style.display="none"),l&&l.parentElement&&l.parentElement.classList.remove("slick-dropzone-placeholder-hover"),m.querySelectorAll(".slick-dropped-grouping"));if(o.forEach(e=>e.style.display="inline-block"),o.length&&(l&&(l.style.display="none"),h.style.display="inline-block"),i.getEditorLock().commitCurrentEdit()){var r=v&&v.toArray()||[];if(1").addClass(i.buttonCssClass).data("column",n).data("button",o),o.disabled&&d.addClass("slick-header-button-disabled"),o.showOnHover&&d.addClass("slick-header-button-hidden"),o.image&&d.css("backgroundImage","url("+o.image+")"),o.cssClass&&d.addClass(o.cssClass),o.tooltip&&d.attr("title",o.tooltip),o.command&&d.data("command",o.command),o.handler&&d.on("click",o.handler),d.on("click",l).appendTo(e.node))}}function o(t,e){var n=e.column;n.header&&n.header.buttons&&u(e.node).find("."+i.buttonCssClass).remove()}function l(t){var e=u(this).data("command"),n=u(this).data("column"),a=u(this).data("button"),o={grid:d,column:n,button:a};null!=e&&(o.command=e),"function"==typeof a.action&&a.action.call(this,t,o),null==e||a.disabled||(s.onCommand.notify(o,t,s),d.updateColumnHeader(n.id)),t.preventDefault(),t.stopPropagation()}function r(t,e){return"function"!=typeof t||t.call(this,e)}u.extend(this,{init:function(t){i=u.extend(!0,{},n,i),d=t,e.subscribe(d.onHeaderCellRendered,a).subscribe(d.onBeforeHeaderCellDestroy,o),d.setColumns(d.getColumns())},destroy:function(){e.unsubscribeAll()},pluginName:"HeaderButtons",onCommand:new Slick.Event})}}}})}(jQuery);
\ No newline at end of file
+!function(e){Slick.Utils.extend(!0,e,{Slick:{Plugins:{HeaderButtons:function(a){var s,o=this,t=new Slick.EventHandler,d=new Slick.BindingEventService,n={buttonCssClass:"slick-header-button"};function i(e,t){var n=t.column;if(n.header&&n.header.buttons)for(var i=n.header.buttons.length;i--;){var l=n.header.buttons[i],s=c(l.itemVisibilityOverride,t),o=c(l.itemUsabilityOverride,t);s&&(Object.prototype.hasOwnProperty.call(l,"itemUsabilityOverride")&&(l.disabled=!o),(s=document.createElement("div")).className=a.buttonCssClass,s.ariaLabel="Header Button",s.role="button",l.disabled&&s.classList.add("slick-header-button-disabled"),l.showOnHover&&s.classList.add("slick-header-button-hidden"),l.image&&(s.style.backgroundImage="url("+l.image+")"),l.cssClass&&s.classList.add(l.cssClass),l.tooltip&&(s.title=l.tooltip),l.handler&&d.bind(s,"click",l.handler),d.bind(s,"click",r.bind(this,l,t.column)),t.node.appendChild(s))}}function l(e,t){var n=t.column;n.header&&n.header.buttons&&(n=(a.buttonCssClass||"").replace(/(\s+)/g,"."))&&t.node.querySelectorAll("."+n).forEach(e=>e.remove())}function r(e,t,n){var i=e.command||"",l={grid:s,column:t,button:e};null!=i&&(l.command=i),"function"==typeof e.action&&e.action.call(this,n,l),null==i||e.disabled||(o.onCommand.notify(l,n,o),s.updateColumnHeader(t.id)),n.preventDefault(),n.stopPropagation()}function c(e,t){return"function"!=typeof e||e.call(this,t)}Slick.Utils.extend(this,{init:function(e){a=Slick.Utils.extend(!0,{},n,a),s=e,t.subscribe(s.onHeaderCellRendered,i).subscribe(s.onBeforeHeaderCellDestroy,l),s.setColumns(s.getColumns())},destroy:function(){t.unsubscribeAll(),d.unbindAll()},pluginName:"HeaderButtons",onCommand:new Slick.Event})}}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.headermenu.min.js b/dist/plugins/slick.headermenu.min.js
index 94c294bd..e9d73be9 100644
--- a/dist/plugins/slick.headermenu.min.js
+++ b/dist/plugins/slick.headermenu.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.headermenu.js
*/
-!function(g){g.extend(!0,window,{Slick:{Plugins:{HeaderMenu:function(m){var f,h,v,p=this,t=new Slick.EventHandler,n={buttonCssClass:null,buttonImage:null,minWidth:100,autoAlign:!0,autoAlignOffset:0};function i(e){h&&h[0]!=e.target&&!g.contains(h[0],e.target)&&a()}function a(){h&&(h.remove(),h=null,v.removeClass("slick-header-column-active"))}function o(e,t){var n=t.column,i=n.header&&n.header.menu;i&&b(m.menuUsabilityOverride,t)&&(n=g("").addClass("slick-header-menubutton").data("column",n).data("menu",i),m.buttonCssClass&&n.addClass(m.buttonCssClass),m.buttonImage&&n.css("background-image","url("+m.buttonImage+")"),m.tooltip&&n.attr("title",m.tooltip),n.on("click",d).appendTo(t.node))}function s(e,t){var n=t.column;n.header&&n.header.menu&&g(t.node).find(".slick-header-menubutton").remove()}function d(e){var t=g(this),n=t.data("menu"),i=t.data("column"),a={grid:f,column:i,menu:n};if(0!=p.onBeforeMenuShow.notify(a,e,p)){(h=h||g("").appendTo(f.getContainerNode())).empty();for(var o=0;o").data("command",void 0!==d.command?d.command:"").data("column",i).data("item",d).on("click",C).appendTo(h),d.divider||"divider"===d?l.addClass("slick-header-menuitem-divider"):(d.disabled&&l.addClass("slick-header-menuitem-disabled"),d.hidden&&l.addClass("slick-header-menuitem-hidden"),d.cssClass&&l.addClass(d.cssClass),d.tooltip&&l.attr("title",d.tooltip),u=g("").appendTo(l),d.iconCssClass&&u.addClass(d.iconCssClass),d.iconImage&&u.css("background-image","url("+d.iconImage+")"),s=g("").text(d.title).appendTo(l),d.textCssClass&&s.addClass(d.textCssClass),l=s=u=null))}var r,c=g(this).offset().left;m.autoAlign&&(r=f.getGridPosition(),c+h.width()>=r.width&&(c=c+t.outerWidth()-h.outerWidth()+m.autoAlignOffset)),h.offset({top:g(this).offset().top+g(this).height(),left:c}),(v=t.closest(".slick-header-column")).addClass("slick-header-column-active"),0!=p.onAfterMenuShow.notify(a,e,p)&&(e.preventDefault(),e.stopPropagation())}}function C(e){var t=g(this).data("command"),n=g(this).data("column"),i=g(this).data("item");i.disabled||i.divider||"divider"===i||(null!=t&&""!==t&&(n={grid:f,column:n,command:t,item:i},p.onCommand.notify(n,e,p),"function"==typeof i.action&&i.action.call(this,e,n)),e.isDefaultPrevented()||a(),e.preventDefault(),e.stopPropagation())}function b(e,t){return"function"!=typeof e||e.call(this,t)}g.extend(this,{init:function(e){m=g.extend(!0,{},n,m),f=e,t.subscribe(f.onHeaderCellRendered,o).subscribe(f.onBeforeHeaderCellDestroy,s),f.setColumns(f.getColumns()),g(document.body).on("mousedown",i)},destroy:function(){t.unsubscribeAll(),g(document.body).off("mousedown",i),h&&h.remove(),h=v=h=null},pluginName:"HeaderMenu",setOptions:function(e){m=g.extend(!0,{},m,e)},onAfterMenuShow:new Slick.Event,onBeforeMenuShow:new Slick.Event,onCommand:new Slick.Event})}}}})}(jQuery);
\ No newline at end of file
+!function(e){Slick.Utils.extend(!0,e,{Slick:{Plugins:{HeaderMenu:function(f){var h,v,b,p=this,t=new Slick.EventHandler,g=new Slick.BindingEventService,i={buttonCssClass:null,buttonImage:null,minWidth:100,autoAlign:!0,autoAlignOffset:0};function l(){b&&(b.remove(),b=void 0),v&&v.classList.remove("slick-header-column-active")}function n(e,t){var i=t.column,n=i.header&&i.header.menu;n&&C(f.menuUsabilityOverride,t)&&((i=document.createElement("div")).className="slick-header-menubutton",i.ariaLabel="Header Menu",i.role="button",f.buttonCssClass&&i.classList.add(f.buttonCssClass),f.buttonImage&&(i.style.backgroundImage="url("+f.buttonImage+")"),f.tooltip&&(i.title=f.tooltip),g.bind(i,"click",e=>function(t,i,n){var l={grid:h,column:n,menu:i};if(0!=p.onBeforeMenuShow.notify(l,t,p).getReturnValue()){!b&&((b=document.createElement("div")).className="slick-header-menu",b.role="menu",b.style.minWidth=f.minWidth+"px",b.setAttribute("aria-expanded","true"),r=h.getContainerNode())&&r.appendChild(b),Slick.Utils.emptyElement(this._menuElm);for(var s=0;s=c.width)&&(e=e+r.clientWidth-b.clientWidth+(f.autoAlignOffset||0)),b.style.top=(r.clientHeight||u&&u.top||0)+(f&&f.menuOffsetTop||0)+"px",b.style.left=e-m.left+"px",(v=b.closest(".slick-header-column"))&&v.classList.add("slick-header-column-active"),0!=p.onAfterMenuShow.notify(l,t,p).getReturnValue()&&(t.preventDefault(),t.stopPropagation())}}(e,n,t.column)),t.node.appendChild(i))}function s(e,t){var i=t.column;i.header&&i.header.menu&&t.node.querySelectorAll(".slick-header-menubutton").forEach(e=>e.remove())}function k(e,t,i){var n=e.command||"";if(e.disabled||e.divider||"divider"===e)return!1;null!=n&&""!==n&&(t={grid:h,column:t,command:n,item:e},p.onCommand.notify(t,i,p),"function"==typeof e.action)&&e.action.call(this,i,t),i.defaultPrevented||l(),i.preventDefault(),i.stopPropagation()}function C(e,t){return"function"!=typeof e||e.call(this,t)}Slick.Utils.extend(this,{init:function(e){f=Slick.Utils.extend(!0,{},i,f),h=e,t.subscribe(h.onHeaderCellRendered,n).subscribe(h.onBeforeHeaderCellDestroy,s),h.setColumns(h.getColumns()),g.bind(document.body,"mousedown",function(e){(b===e.target||b&&b.contains(e.target))&&"close"!==e.target.className||l()}.bind(this))},destroy:function(){var e;t.unsubscribeAll(),g.unbindAll(),(b=b||document.body.querySelector(".slick-header-menu"+((e=h.getUID()||"")?"."+e:"")))&&b.remove(),v=void 0},pluginName:"HeaderMenu",setOptions:function(e){f=Slick.Utils.extend(!0,{},f,e)},onAfterMenuShow:new Slick.Event,onBeforeMenuShow:new Slick.Event,onCommand:new Slick.Event})}}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.resizer.min.js b/dist/plugins/slick.resizer.min.js
index c06ce955..bee03536 100644
--- a/dist/plugins/slick.resizer.min.js
+++ b/dist/plugins/slick.resizer.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.resizer.js
*/
-"use strict";!function(G){G.extend(!0,window,{Slick:{Plugins:{Resizer:function(e,n){var d,s,o,r,u,a,h,g,f,c,l=180,w=300,m=20,t=this,z=!1,v={bottomPadding:20,applyResizeToContainer:!1,minHeight:180,minWidth:300,rightPadding:0},R={};function p(i){R=G.extend(!0,{},v,R,i)}function C(e){void 0===g&&void 0===g.offset()||(y(0,e,null),G(window).on("resize.grid."+u,function(i){t.onGridBeforeResize.notify({grid:o},i,t),z||(y(0,e,i),y(0,e,i))}))}function b(){t.onGridBeforeResize.unsubscribe(),t.onGridAfterResize.unsubscribe(),G(window).off("resize.grid."+u)}function y(e,n,t){if(e=e||0,"function"==typeof Promise)return new Promise(function(i){0o&&(u=o),cd&&(c=d),{height:g||u,width:f||c}}();if((i||e)&&m)try{var t=(i&&i.height?i:e).height,n=(i&&i.width?i:e).width;r.autoHeight||(m.style.height=t+"px"),m.style.width=n+"px",z&&(z.style.width=n+"px"),null===new RegExp("MSIE [6-8]").exec(navigator.userAgent)&&o&&o.resizeCanvas&&o.resizeCanvas(),r&&r.enableAutoSizeColumns&&o.autosizeColumns&&d&&document.querySelector("."+d)&&o.autosizeColumns(),s={height:t,width:n}}catch(i){b()}return s}(i);return n.onGridAfterResize.notify({grid:o,dimensions:i},e,n),i}Slick.Utils.extend(this,{init:function(i){y(e),o=i,r=o.getOptions(),d=o.getUID(),m=o.getContainerNode(),v="string"==typeof e.container&&"string"==typeof e.container?document.querySelector(e.container):e.container,w.gridContainer&&(z=w.gridContainer),t&&(g=t.height,f=t.width),r&&R()},destroy:b,pluginName:"Resizer",bindAutoResizeDataGrid:R,getLastResizeDimensions:function(){return s},pauseResizer:function(i){c=i},resizeGrid:k,setOptions:y,onGridAfterResize:new Slick.Event,onGridBeforeResize:new Slick.Event})}}}})}(window);
\ No newline at end of file
diff --git a/dist/plugins/slick.rowdetailview.min.js b/dist/plugins/slick.rowdetailview.min.js
index 2f8d9f2e..c339a989 100644
--- a/dist/plugins/slick.rowdetailview.min.js
+++ b/dist/plugins/slick.rowdetailview.min.js
@@ -1,9 +1,9 @@
/**
- * SlickGrid v3.0.4
+ * SlickGrid v4.0.0-beta.0
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
- * date: 2023-02-15
+ * date: 2023-05-17
* file: ./plugins/slick.rowdetailview.js
*/
-!function(A){A.extend(!0,window,{Slick:{Plugins:{RowDetailView:function(e){var d,r,u,c,p="id",n=null,o=this,l=null,s=[],t=new Slick.EventHandler,w=5,g=0,i={columnId:"_detail_selector",cssClass:"detailView-toggle",expandedClass:null,collapsedClass:null,keyPrefix:"_",loadOnce:!1,collapseAllOnSort:!0,saveDetailViewOnScroll:!0,singleRowExpand:!1,useSimpleViewportCalc:!1,alwaysRenderColumn:!0,toolTip:"",width:30,maxRows:null},f=i.keyPrefix,m=0,R=[],h=A.extend(!0,{},i,e);"function"==typeof h.expandableOverride&&k(h.expandableOverride);function v(e,t){if(e)for(var i=0;i2*g)return!0;return!1}(c.getRowById(e[p]),i);!t&&0<=v(R,e[p])?y(e,e[p]):t&&x(e,e[p])}));else if(d){var o=d.getRenderedRange();if(0o.top||0===l.top&&0===o.top&&l.bottom>o.bottom)&&(a="UP")}}s.forEach(function(e){var t=c.getRowById(e[p]),i=e[f+"sizePadding"],n=0<=v(R,e[p]);"UP"===a?(h.saveDetailViewOnScroll&&t>=o.bottom-m&&P(e),n&&t-w=o.top?y(e,e[p]):!n&&t+i>o.bottom&&x(e,e[p])):"DOWN"===a&&(h.saveDetailViewOnScroll&&t<=o.top+m&&P(e),n&&t+i+w>o.bottom&&t'):(a=[],e=r.rowHeight,l=o[f+"sizePadding"]*r.rowHeight,null!==h.maxRows&&o[f+"sizePadding"]>h.maxRows&&(l=h.maxRows*e,o[f+"sizePadding"]=h.maxRows),s=h.cssClass+" collapse ",h.expandedClass&&(s+=h.expandedClass),a.push(''),a.push('
'),a.push('
'),a.push('
',o[f+"detailContent"],"
"),a.join(""))}function E(e,t,i){return"function"!=typeof n||n(e,t,i)}function k(e){n=e}A.extend(this,{init:function(e){if(!e)throw new Error('RowDetailView Plugin requires the Grid instance to be passed as argument to the "init()" method');u=(d=e).getUID(),r=e.getOptions()||{},c=d.getData(),f=h&&h.keyPrefix||"_",m=d.getOptions().minRowBuffer,d.getOptions().minRowBuffer=h.panelRows+3,t.subscribe(d.onClick,a).subscribe(d.onScroll,b),h.collapseAllOnSort&&(t.subscribe(d.onSort,D),s=[],R=[]),t.subscribe(d.getData().onRowCountChanged,function(){d.updateRowCount(),d.render()}),t.subscribe(d.getData().onRowsChanged,function(e,t){d.invalidateRows(t.rows),d.render()}),o.onAsyncResponse.subscribe(function(e,t){if(!t||!t.item&&!t.itemDetail)throw'Slick.RowDetailView plugin requires the onAsyncResponse() to supply "args.item" property.';var i=t.item||t.itemDetail;t.detailView?i[f+"detailContent"]=t.detailView:i[f+"detailContent"]=h.postTemplate(i),i[f+"detailViewLoaded"]=!0,c.updateItem(i[p],i),o.onAsyncEndUpdate.notify({grid:d,item:i,itemDetail:i},e,o)}),t.subscribe(c.onSetItemsCalled,function(e,t){p=c&&c.getIdPropertyName()||"id"}),h.useSimpleViewportCalc&&t.subscribe(d.onRendered,function(e,t){t&&t.endRow&&(g=t.endRow-t.startRow)})},destroy:function(){t.unsubscribeAll(),o.onAsyncResponse.unsubscribe(),o.onAsyncEndUpdate.unsubscribe(),o.onAfterRowDetailToggle.unsubscribe(),o.onBeforeRowDetailToggle.unsubscribe(),o.onRowOutOfViewportRange.unsubscribe(),o.onRowBackToViewportRange.unsubscribe()},pluginName:"RowDetailView",collapseAll:D,collapseDetailView:V,expandDetailView:I,expandableOverride:k,getColumnDefinition:function(){return{id:h.columnId,name:"",toolTip:h.toolTip,field:"sel",width:h.width,resizable:!1,sortable:!1,alwaysRenderColumn:h.alwaysRenderColumn,cssClass:h.cssClass,formatter:z}},getExpandedRows:function(){return s},getFilterItem:function(e){return e=e[f+"isPadding"]&&e[f+"parent"]?e[f+"parent"]:e},getOptions:function(){return h},resizeDetailView:function(e){if(e){var t=document.querySelector("."+u+" .detailViewContainer_"+e[p]),i=document.querySelector("."+u+" .cellDetailView_"+e[p]),n=document.querySelector("."+u+" .innerDetailView_"+e[p]);if(t&&i&&n){for(var o=1;o<=e[f+"sizePadding"];o++)c.deleteItem(e[p]+"."+o);for(var n=r.rowHeight,a=(t.style.minHeight=null,t.scrollHeight),l=Math.ceil(a/n),l=(e[f+"sizePadding"]=Math.ceil(2*l*13/n),e[f+"height"]=a,e[f+"sizePadding"]*n),s=(null!==h.maxRows&&e[f+"sizePadding"]>h.maxRows&&(l=h.maxRows*n,e[f+"sizePadding"]=h.maxRows),d.getOptions().minRowBuffer2*w)return!0;return!1}(u.getRowById(e[p]),i);!t&&0<=h(m,e[p])?y(e,e[p]):t&&x(e,e[p])}));else if(d){var o=d.getRenderedRange();if(0o.top||0===t.top&&0===o.top&&t.bottom>o.bottom)&&(a="UP")}}l.forEach(function(e){var t=u.getRowById(e[p]),i=e[g+"sizePadding"],n=0<=h(m,e[p]);"UP"===a?(R.saveDetailViewOnScroll&&t>=o.bottom-f&&P(e),n&&t-s=o.top?y(e,e[p]):!n&&t+i>o.bottom&&x(e,e[p])):"DOWN"===a&&(R.saveDetailViewOnScroll&&t<=o.top+f&&P(e),n&&t+i+s>o.bottom&&t
Resize the columns until see ellipsis in column or header. Hover over cell to see tooltip.
-
For jQueryUI tooltips, call the .tooltips() function on the document to convert all tooltips
- to jQueryUI. To style jQueryUI tooltips, use the generic jQueryUI class 'ui-tooltip', or pass in a class name as an option.
Usage:
plugin = new Slick.AutoTooltips(pluginOptions);
grid.registerPlugin(plugin);
grid.render();